This commit is contained in:
thomas committed 2026-10-18 14:06:40 +02:00
commit 2c2202e60d
2491 files changed
+1295990

No files matched your search

Binary file not shown.
@@ -0,0 +1 @@
63
@@ -0,0 +1,38 @@
32
44
45
46
48
49
50
51
52
53
54
55
56
57
58
63
65
66
67
68
69
70
72
73
75
76
77
78
79
80
82
84
85
86
88
97
120
122
@@ -0,0 +1,23 @@
43
45
48
49
50
63
65
66
67
68
69
72
73
76
78
79
81
82
83
84
85
86
90
@@ -0,0 +1 @@
{"typographies":[["Default","arial.ttf",20,4],["Large","arial.ttf",40,4],["Small","arial.ttf",10,4]],"generate_font_format":"0"}
@@ -0,0 +1 @@
{"typographies":[["Default","arial.ttf",20,4],["Large","arial.ttf",40,4],["Small","arial.ttf",10,4]],"generate_font_format":"0"}
@@ -0,0 +1 @@
{"cache_size":4096}
@@ -0,0 +1 @@
{"cache_size":4096}
@@ -0,0 +1,2 @@
AH:0 BA:1 FC:63 EC:0 FF:0 CF:1 FU:0 ZB:0
63
@@ -0,0 +1,39 @@
AH:0 BA:1 FC:63 EC:0 FF:0 CF:0 FU:0 ZB:0
32
44
45
46
48
49
50
51
52
53
54
55
56
57
58
63
65
66
67
68
69
70
72
73
75
76
77
78
79
80
82
84
85
86
88
97
120
122
@@ -0,0 +1,24 @@
AH:0 BA:1 FC:63 EC:0 FF:0 CF:0 FU:0 ZB:0
43
45
48
49
50
63
65
66
67
68
69
72
73
76
78
79
81
82
83
84
85
86
90
@@ -0,0 +1 @@
{"max_floats":0,"max_commands":0,"max_font":""}
@@ -0,0 +1,44 @@
/* DO NOT EDIT THIS FILE */
/* This file is autogenerated by the text-database code generator */
#ifndef TOUCHGFX_APPLICATIONFONTPROVIDER_HPP
#define TOUCHGFX_APPLICATIONFONTPROVIDER_HPP
#include <touchgfx/FontManager.hpp>
namespace touchgfx
{
class FlashDataReader;
}
struct Typography
{
static const touchgfx::FontId DEFAULT = 0;
static const touchgfx::FontId LARGE = 1;
static const touchgfx::FontId SMALL = 2;
};
struct TypographyFontIndex
{
static const touchgfx::FontId DEFAULT = 0; // arial_20_4bpp
static const touchgfx::FontId LARGE = 1; // arial_40_4bpp
static const touchgfx::FontId SMALL = 2; // arial_10_4bpp
static const uint16_t NUMBER_OF_FONTS = 3;
};
class ApplicationFontProvider : public touchgfx::FontProvider
{
public:
virtual touchgfx::Font* getFont(touchgfx::FontId typography);
static void setFlashReader(touchgfx::FlashDataReader* /*flashReader*/)
{
}
static touchgfx::FlashDataReader* getFlashReader()
{
return 0;
}
};
#endif // TOUCHGFX_APPLICATIONFONTPROVIDER_HPP
@@ -0,0 +1,93 @@
/* DO NOT EDIT THIS FILE */
/* This file is autogenerated by the text-database code generator */
#ifndef TOUCHGFX_CACHEDFONT_HPP
#define TOUCHGFX_CACHEDFONT_HPP
#include <fonts/FontCache.hpp>
#include <fonts/GeneratedFont.hpp>
namespace touchgfx
{
class CachedFont : public GeneratedFont
{
public:
CachedFont(const struct touchgfx::BinaryFontData* data, FontId id, FontCache* _cache, const GeneratedFont* _flashFont)
: GeneratedFont(0, // GlyphNode*
data->numberOfGlyphs,
data->fontHeight,
data->baseline,
data->pixAboveTop,
data->pixBelowBottom,
data->bitsPerPixel,
data->byteAlignRow,
data->maxLeft,
data->maxRight,
0, // glyphDataPointer
0, // Kerning table not used for cached font
data->fallbackChar,
data->ellipsisChar,
0, // lsubTablePointer
0), // contextualFormsPointer
fontId(id),
cache(_cache),
flashFont(_flashFont)
{
}
CachedFont()
: GeneratedFont()
{
}
using GeneratedFont::getGlyph;
virtual const GlyphNode* getGlyph(Unicode::UnicodeChar unicode, const uint8_t*& pixelData, uint8_t& bitsPerPixel) const;
virtual const uint8_t* getPixelData(const GlyphNode* glyph) const;
virtual int8_t getKerning(Unicode::UnicodeChar prevChar, const GlyphNode* glyph) const;
void setFontCache(FontCache& cache);
FontId getFontId() const
{
return fontId;
}
virtual const uint16_t* getGSUBTable() const
{
if (gsubTable != 0)
{
return gsubTable;
}
return flashFont->getGSUBTable();
}
virtual void setGSUBTable(const uint16_t* table)
{
gsubTable = table;
}
virtual const FontContextualFormsTable* getContextualFormsTable() const
{
if (arabicTable != 0)
{
return arabicTable;
}
return flashFont->getContextualFormsTable();
}
virtual void setContextualFormsTable(const FontContextualFormsTable* table)
{
arabicTable = table;
}
private:
FontId fontId;
FontCache* cache;
const GeneratedFont* flashFont;
};
} // namespace touchgfx
#endif // TOUCHGFX_CACHEDFONT_HPP
@@ -0,0 +1,42 @@
/* DO NOT EDIT THIS FILE */
/* This file is autogenerated by the text-database code generator */
#ifndef TOUCHGFX_COMPRESSEDFONTCACHE_HPP
#define TOUCHGFX_COMPRESSEDFONTCACHE_HPP
#include <touchgfx/hal/Types.hpp>
#include <touchgfx/Font.hpp>
namespace touchgfx
{
class CompressedFontCache
{
public:
static void clearCache();
static const uint8_t* hasCachedGlyph(const GlyphNode* glyphNode);
static void unableToCache(const GlyphNode* glyphNode, int byteSize);
static const uint8_t* cacheGlyph(const GlyphNode* glyph, const uint8_t* compressedData);
static int usedMemory()
{
return pixelsTop - (uint8_t*)bitmapFontCache + glyphsAllocated * sizeof(BitmapFontCacheKey);
}
static int cacheClearCounter;
private:
static uint8_t* decompressGlyph(uint8_t* pixelsTop, const GlyphNode* glyphNode, const uint8_t* compressedData);
struct BitmapFontCacheKey
{
const void* glyphNode;
const uint8_t* pixels;
};
static const int cacheSizeBytes = 4096;
static const int cacheWords = (cacheSizeBytes + 3) / 4;
static uint32_t bitmapFontCache[cacheWords];
static uint8_t* pixelsTop;
static int glyphsAllocated;
};
} // namespace touchgfx
#endif // TOUCHGFX_COMPRESSEDFONTCACHE_HPP
@@ -0,0 +1,46 @@
/* DO NOT EDIT THIS FILE */
/* This file is autogenerated by the text-database code generator */
#ifndef TOUCHGFX_COMPRESSEDUNMAPPEDFONTCACHE_HPP
#define TOUCHGFX_COMPRESSEDUNMAPPEDFONTCACHE_HPP
#include <touchgfx/hal/FlashDataReader.hpp>
#include <touchgfx/hal/Types.hpp>
#include <touchgfx/Font.hpp>
namespace touchgfx
{
class CompressedUnmappedFontCache
{
public:
static void clearCache();
static const GlyphNode* hasCachedGlyphNode(const GlyphNode* glyphNode);
static const GlyphNode* hasCachedGlyphData(const GlyphNode* glyphNode, const uint8_t*& pixelData);
static void unableToCache(const GlyphNode* glyphNode, int byteSize);
static GlyphNode* cacheGlyphNode(const GlyphNode* glyph);
static const uint8_t* cacheGlyphData(const GlyphNode* glyph, const uint8_t* compressedData, touchgfx::FlashDataReader* reader);
static int usedMemory()
{
return pixelsTop - (uint8_t*)bitmapFontCache + glyphsAllocated * sizeof(BitmapFontCacheKey);
}
static int cacheClearCounter;
private:
static uint8_t* decompressGlyph(uint8_t* pixelsTop, const GlyphNode* glyphNode, const uint8_t* compressedData, touchgfx::FlashDataReader* reader);
struct BitmapFontCacheKey
{
const void* glyphNodeSrc;
GlyphNode glyphNodeCopy;
const uint8_t* pixels;
};
static const int cacheSizeBytes = 4096;
static const int cacheWords = (cacheSizeBytes + 3) / 4;
static uint32_t bitmapFontCache[cacheWords];
static uint8_t* pixelsTop;
static int glyphsAllocated;
};
} // namespace touchgfx
#endif // TOUCHGFX_COMPRESSEDUNMAPPEDFONTCACHE_HPP
@@ -0,0 +1,112 @@
/* DO NOT EDIT THIS FILE */
/* This file is autogenerated by the text-database code generator */
#ifndef TOUCHGFX_FONTCACHE_HPP
#define TOUCHGFX_FONTCACHE_HPP
#include <touchgfx/Font.hpp>
#include <touchgfx/TypedText.hpp>
#include <fonts/ApplicationFontProvider.hpp>
namespace touchgfx
{
class CachedFont;
class FontDataReader
{
public:
virtual ~FontDataReader()
{
}
virtual void open() = 0;
virtual void close() = 0;
virtual void setPosition(uint32_t position) = 0;
virtual void readData(void* out, uint32_t numberOfBytes) = 0;
};
class FontCache
{
public:
FontCache();
void setReader(FontDataReader* reader);
void clear(bool keepGsubOrContextTable = false);
void setMemory(uint8_t* memory, uint32_t size);
void initializeCachedFont(TypedText t, CachedFont* font, bool loadGsubOrContextTable = false);
bool cacheString(TypedText t, const Unicode::UnicodeChar* string);
bool cacheLigatures(CachedFont* font, TypedText t, const Unicode::UnicodeChar* string);
const GlyphNode* getGlyph(Unicode::UnicodeChar unicode, FontId font) const;
uint32_t getMemoryUsage()
{
return memorySize - (gsubStart - top);
}
void open();
void close();
static inline const uint8_t* getPixelData(const GlyphNode* glyph)
{
return ((const uint8_t*)glyph) + SizeGlyphNode + sizeof(void*);
}
static inline bool isCached(const GlyphNode* g)
{
return g->dataOffset == 0xFFFFFFFF;
}
private:
static const uint32_t SizeGlyphNode = 16;
bool contains(Unicode::UnicodeChar unicode, FontId font) const;
void insert(Unicode::UnicodeChar unicode, FontId font, bool& outOfMemory);
uint8_t* copyGlyph(uint8_t* top, Unicode::UnicodeChar unicode, FontId font, bool& outOfMemory);
void cacheData(GlyphNode* first);
bool cacheSortedString(TypedText t);
bool createSortedString(const Unicode::UnicodeChar* string);
bool createSortedLigatures(CachedFont* font, TypedText t, const Unicode::UnicodeChar* string, ...);
bool sortSortedString(int n);
void setPosition(uint32_t position);
void readData(void* out, uint32_t numberOfBytes);
uint32_t getGlyphSize(const GlyphNode* gn)
{
if (byteAlignRow)
{
// Round up line width to byte boundary and multiply by height
return (gn->width() * bpp + 7) / 8 * gn->height();
}
// Calculate number of pixels and round up to byte bounday
return (gn->width() * gn->height() * bpp + 7) / 8;
}
struct
{
uint8_t* first; // First GlyphNode, glyph in cache;
uint8_t* last; // Last GlyphNode, glyph in cache;
} fontTable[MAX(TypographyFontIndex::NUMBER_OF_FONTS, 1)];
uint32_t memorySize;
uint8_t* memory; // Start of memory
uint8_t* top; // First unused byte
uint8_t* gsubStart; // First address of GSUB tables, allocated in the end of the cache
FontDataReader* reader;
Unicode::UnicodeChar* sortedString;
// Must be bigger than BinaryFontData
static const uint32_t MAX_BUFFER_SIZE = 64;
char buffer[MAX_BUFFER_SIZE];
uint32_t glyphDataOffset;
uint16_t numGlyphs;
uint16_t currentFileGlyphNumber;
uint8_t bpp;
uint8_t byteAlignRow;
GlyphNode currentFileGlyphNode;
};
} // namespace touchgfx
#endif // TOUCHGFX_FONTCACHE_HPP
@@ -0,0 +1,227 @@
/* DO NOT EDIT THIS FILE */
/* This file is autogenerated by the text-database code generator */
#ifndef TOUCHGFX_GENERATEDFONT_HPP
#define TOUCHGFX_GENERATEDFONT_HPP
#include <touchgfx/ConstFont.hpp>
namespace touchgfx
{
class GeneratedFont : public ConstFont
{
public:
GeneratedFont(const GlyphNode* glyphs, uint16_t numGlyphs, uint16_t height, uint16_t baseline, uint8_t pixAboveTop, uint8_t pixBelowBottom, uint8_t bitsPerPixel, uint8_t byteAlignRow, uint8_t maxLeft, uint8_t maxRight, const uint8_t* const* glyphDataInternalFlash, const KerningNode* kerningList, const Unicode::UnicodeChar fallbackChar, const Unicode::UnicodeChar ellipsisChar, const uint16_t* const gsubData, const FontContextualFormsTable* formsTable);
using ConstFont::getGlyph;
virtual const uint8_t* getPixelData(const GlyphNode* glyph) const;
virtual int8_t getKerning(Unicode::UnicodeChar prevChar, const GlyphNode* glyph) const;
virtual const uint16_t* getGSUBTable() const
{
return gsubTable;
}
virtual const FontContextualFormsTable* getContextualFormsTable() const
{
return arabicTable;
}
protected:
GeneratedFont()
: ConstFont(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0), glyphData(0), kerningData(0), gsubTable(0), arabicTable(0)
{
}
const void* glyphData; ///< The glyphs
const KerningNode* kerningData; ///< The kerning
const uint16_t* gsubTable; ///< The GSUB tables
const FontContextualFormsTable* arabicTable; ///< Contextual forms
};
class FusedFont : public GeneratedFont
{
public:
FusedFont(const GlyphNode* glyphs, uint16_t numGlyphs, uint16_t height, uint16_t baseline, uint8_t pixAboveTop, uint8_t pixBelowBottom, uint8_t bitsPerPixel, uint8_t byteAlignRow, uint8_t maxLeft, uint8_t maxRight, const uint8_t* const* glyphDataInternalFlash, const KerningNode* kerningList, const Unicode::UnicodeChar fallbackChar, const Unicode::UnicodeChar ellipsisChar, const uint16_t* const gsubData, const FontContextualFormsTable* formsTable, GlyphNode& fontFusedNode)
: GeneratedFont(glyphs, numGlyphs, height, baseline, pixAboveTop, pixBelowBottom, bitsPerPixel, byteAlignRow,
maxLeft, maxRight, glyphDataInternalFlash, kerningList, fallbackChar, ellipsisChar,
gsubData, formsTable), fusedNode(fontFusedNode)
{ }
using GeneratedFont::getGlyph;
virtual const GlyphNode* getGlyph(Unicode::UnicodeChar unicode, const uint8_t*& pixelData, uint8_t& bitsPerPixel) const;
private:
GlyphNode& fusedNode;
};
struct VectorFontNode
{
uint32_t dataOffset; ///< The index to the data of this glyph in words
Unicode::UnicodeChar unicode; ///< The Unicode of this glyph.
uint16_t width; ///< Width of the actual glyph data
uint16_t height; ///< Height of the actual glyph data
int16_t top; ///< Vertical offset from baseline of the glyph
int16_t left; ///< Horizontal offset from the left of the glyph
uint16_t advance; ///< Width of the glyph (including space to the left and right)
uint16_t kerningTablePos; ///< Where are the kerning information for this glyph stored in the kerning table
uint8_t kerningTableSize; ///< How many entries are there in the kerning table (following kerningTablePos) for this glyph
};
struct VectorKerningNode
{
Unicode::UnicodeChar unicodePrevChar; ///< The Unicode for the first character in the kerning pair
int16_t distance; ///< The kerning distance
};
struct VectorFontData
{
uint16_t numberOfGlyphs;
uint16_t baselineHeight;
uint16_t maxLeft;
uint16_t maxRight;
uint16_t maxAboveTop;
uint16_t maxBelowBottom;
const Unicode::UnicodeChar fallbackChar;
const Unicode::UnicodeChar ellipsisChar;
};
class GeneratedVectorFont : public Font
{
public:
GeneratedVectorFont(uint16_t baseline, float scale, const VectorFontNode* vectorGlyphs, const VectorFontData& fontData,
const uint16_t* const* glyphData, const VectorKerningNode* kerningTable,
const uint16_t* const gsubData, const FontContextualFormsTable* formsTable);
virtual const GlyphNode* getGlyph(Unicode::UnicodeChar unicode) const;
virtual const GlyphNode* getGlyph(Unicode::UnicodeChar unicode, const uint8_t*& pixelData, uint8_t& bitsPerPixel) const;
virtual int8_t getKerning(Unicode::UnicodeChar prevChar, const GlyphNode* glyph) const;
virtual bool isVectorBasedFont() const { return true; }
virtual float getScaleFactor() const { return scaleFactor; }
virtual const uint16_t* getGSUBTable() const { return gsubTable; }
virtual const FontContextualFormsTable* getContextualFormsTable() const { return arabicTable; }
private:
const VectorFontNode* find(Unicode::UnicodeChar unicode) const;
const GlyphNode* getGlyphNode(const VectorFontNode* node) const;
float scaleFactor;
const VectorFontNode* vectorNodes;
const uint16_t* const* vectorTable;
const VectorKerningNode* kerningTable;
const uint16_t* gsubTable;
const FontContextualFormsTable* arabicTable;
uint16_t numberOfGlyphs;
static GlyphNode glyphNode;
};
struct BinaryFontData
{
uint32_t fontIndex; // The font index (as used by TypedTextDatabase)
uint32_t sizeOfFontData; // Size of the complete BinaryFont
uint32_t offsetToTable; // GlyphNode[]
uint32_t offsetToKerning; // KerningNode[]
uint32_t offsetToGlyphs; // uint8_t[]
uint32_t offsetToGSUB; // uint16_t[]
uint32_t offsetToArabicTable; // FontContextualFormsTable
uint16_t numberOfGlyphs; // Number of glyphs in Table and Glyphs
uint16_t fontHeight; // Font height
uint16_t baseline; // Distance to baseline
uint8_t pixAboveTop; // Max pixels above top
uint8_t pixBelowBottom; // Max pixels below bottom
uint8_t bitsPerPixel; // Bpp
uint8_t byteAlignRow; // A4/A2/A1
uint8_t maxLeft; // The maximum a glyph extends to the left
uint8_t maxRight; // The maximum a glyph extends to the right
Unicode::UnicodeChar fallbackChar; // Fallback Character for the font
Unicode::UnicodeChar ellipsisChar; // Ellipsis Character for the font
};
class BinaryFont : public GeneratedFont
{
public:
BinaryFont(const struct touchgfx::BinaryFontData* data)
: GeneratedFont((const GlyphNode*)((const uint8_t*)data + data->offsetToTable),
data->numberOfGlyphs,
data->fontHeight,
data->baseline,
data->pixAboveTop,
data->pixBelowBottom,
data->bitsPerPixel,
data->byteAlignRow,
data->maxLeft,
data->maxRight,
0,
(const KerningNode*)((const uint8_t*)data + data->offsetToKerning),
data->fallbackChar,
data->ellipsisChar,
(data->offsetToGSUB == 0) ? 0 : (const uint16_t*)((const uint8_t*)data + data->offsetToGSUB),
0),
glyphData((const uint8_t*)data + data->offsetToGlyphs)
{
if (data->offsetToArabicTable > 0)
{
setupContextualTable(data);
}
}
BinaryFont()
: GeneratedFont()
{
}
virtual const uint8_t* getPixelData(const GlyphNode* glyph) const
{
const uint8_t* data = (const uint8_t*)glyphData;
return &(data[glyph->dataOffset]);
}
protected:
const uint8_t* glyphData;
FontContextualFormsTable contextualForms;
private:
typedef const Unicode::UnicodeChar (*array5ptr)[5];
typedef const Unicode::UnicodeChar (*array4ptr)[4];
void setupContextualTable(const struct touchgfx::BinaryFontData* data)
{
const uint16_t* const base = (const uint16_t*)(((const uint8_t*)data) + data->offsetToArabicTable);
// First elements in binary font are offsets to arrays in 16bit words
contextualForms.contextualForms4Long = (array5ptr)(base + base[0]);
contextualForms.contextualForms3Long = (array5ptr)(base + base[1]);
contextualForms.contextualForms2Long = (array5ptr)(base + base[2]);
contextualForms.contextualForms0621_063a = (array4ptr)(base + base[3]);
contextualForms.contextualForms0641_064a = (array4ptr)(base + base[4]);
contextualForms.contextualForms06XX = (array5ptr)(base + base[5]);
contextualForms.contextualForms4LongSize = base[6];
contextualForms.contextualForms3LongSize = base[7];
contextualForms.contextualForms2LongSize = base[8];
contextualForms.contextualForms06XXSize = base[9];
arabicTable = &contextualForms;
}
};
class CompressedMappedFont : public GeneratedFont
{
public:
CompressedMappedFont(const GlyphNode* glyphs, uint16_t numGlyphs, uint16_t height, uint16_t baseline, uint8_t pixAboveTop, uint8_t pixBelowBottom, uint8_t bitsPerPixel, uint8_t byteAlignRow, uint8_t maxLeft, uint8_t maxRight, const uint8_t* const* glyphDataInternalFlash, const KerningNode* kerningList, const Unicode::UnicodeChar fallbackChar, const Unicode::UnicodeChar ellipsisChar, const uint16_t* const gsubData, const FontContextualFormsTable* formsTable);
using GeneratedFont::getGlyph;
virtual const GlyphNode* getGlyph(Unicode::UnicodeChar unicode) const;
virtual const uint8_t* getPixelData(const GlyphNode* glyph) const;
};
} // namespace touchgfx
#endif // TOUCHGFX_GENERATEDFONT_HPP
@@ -0,0 +1,137 @@
/* DO NOT EDIT THIS FILE */
/* This file is autogenerated by the text-database code generator */
#ifndef TOUCHGFX_UNMAPPEDDATAFONT_HPP
#define TOUCHGFX_UNMAPPEDDATAFONT_HPP
#include <touchgfx/Font.hpp>
namespace touchgfx
{
/**
* An UnmappedDataFont has both glyph table and glyph data placed in a
* flash which does not support random access read (indirect
* access). A unicode table is located in a flash with random read
* access (direct access).
*
* @see Font, ConstFont
*/
class UnmappedDataFont : public Font
{
public:
/**
* Construct the UnmappedDataFont.
*
* @param glyphs The array of glyphs known to this font (indirect).
* @param unicodes The array of unicodes known to this font (direct).
* @param numGlyphs The number of glyphs in list.
* @param height The height in pixels of the highest character in this font.
* @param baseline The height of the baseline in pixels.
* @param pixBelowBottom The maximum number of pixels that can be drawn below the
* bottom in this font.
* @param bitsPerPixel The number of bits per pixel in this font.
* @param byteAlignRow Are glyphs encoded using A4 format
* @param maxLeft The maximum a character extends to the left.
* @param maxRight The maximum a character extends to the right.
* @param glyphDataList Pointer to pointers the glyph data for the font (indirect).
* @param kerningList pointer to the kerning data for the font (direct).
* @param fallbackChar The fallback character for the typography in case no glyph is
* available.
* @param ellipsisChar The ellipsis character used for truncating long texts.
* @param gsubTable Pointer to GSUB table (direct).
*/
UnmappedDataFont(const GlyphNode* glyphs, const uint16_t* unicodes, uint16_t numGlyphs, uint16_t height, uint16_t baseline, uint8_t pixAboveTop, uint8_t pixBelowBottom, uint8_t bitsPerPixel, uint8_t byteAlignRow, uint8_t maxLeft, uint8_t maxRight, const uint8_t* const* glyphDataList, const KerningNode* kerningList, const Unicode::UnicodeChar fallbackChar, const Unicode::UnicodeChar ellipsisChar, const uint16_t* const gsubData, const FontContextualFormsTable* formsTable);
using Font::getGlyph;
/**
* Gets the glyph data associated with the specified Unicode. The
GlyphNode is allocated in the buffer passed to the constructor.
*
* Please note that in case of Thai letters and Arabic letters
* where diacritics can be placed relative to the previous
* character(s), please use TextProvider::getNextLigature()
* instead as it will create a temporary GlyphNode that will be
* adjusted with respect to X/Y position.
*
* @param unicode The character to look up.
* @param pixelData Pointer to the pixel data for the glyph if the glyph is
* found. This is set by this method.
* @param [out] bitsPerPixel Reference where to place the number of bits per pixel.
*
* @return A pointer to the glyph node or null if the glyph was not found.
*/
virtual const GlyphNode* getGlyph(Unicode::UnicodeChar unicode, const uint8_t*& pixelData, uint8_t& bitsPerPixel) const;
/**
* Obtains the address to the pixel data for the specified glyph.
*
* @param glyph The glyph to get the pixels data of.
*
* @return The address of the pixel data of the glyph.
*/
virtual const uint8_t* getPixelData(const GlyphNode* glyph) const;
/**
* Gets the kerning distance between two characters.
*
* @param prevChar The unicode value of the previous character.
* @param glyph the glyph object for the current character.
*
* @return The kerning distance between prevChar and glyph char.
*/
virtual int8_t getKerning(Unicode::UnicodeChar prevChar, const GlyphNode* glyph) const;
/**
* Gets GSUB table.
*
* @return The GSUB table or null if font has GSUB no table
*/
virtual const uint16_t* getGSUBTable() const
{
return gsubTable;
}
/**
* Gets the contextual forms table used in arabic fonts.
*
* @return The FontContextualFormsTable or null if the font has no table.
*/
virtual const FontContextualFormsTable* getContextualFormsTable() const
{
return arabicTable;
}
protected:
UnmappedDataFont()
: Font(0, 0, 0, 0, 0, 0, 0, 0, 0, 0), glyphList(0), unicodes(0), glyphDataList(0), kerningData(0), gsubTable(0)
{
}
int lookupUnicode(uint16_t unicode) const;
const GlyphNode* glyphList; ///< The list of glyphs
uint16_t listSize; ///< The size of the list of glyphs
const uint16_t* unicodes; ///< LookupTable with all unicodes in this font
const void* glyphDataList; ///< The glyphs (list of pointers)
const KerningNode* kerningData; ///< The kerning
const uint16_t* gsubTable; ///< The GSUB tables
const FontContextualFormsTable* arabicTable; ///< Contextual forms
static GlyphNode glyphNodeBuffer; ///< Buffer for GlyphNodes read from unmapped flash
};
class CompressedUnmappedDataFont : public UnmappedDataFont
{
public:
CompressedUnmappedDataFont(const GlyphNode* glyphs, const uint16_t* unicodes, uint16_t numGlyphs, uint16_t height, uint16_t baseline, uint8_t pixAboveTop, uint8_t pixBelowBottom, uint8_t bitsPerPixel, uint8_t byteAlignRow, uint8_t maxLeft, uint8_t maxRight, const uint8_t* const* glyphDataList, const KerningNode* kerningList, const Unicode::UnicodeChar fallbackChar, const Unicode::UnicodeChar ellipsisChar, const uint16_t* const gsubData, const FontContextualFormsTable* formsTable);
virtual const GlyphNode* getGlyph(Unicode::UnicodeChar unicode) const;
virtual const GlyphNode* getGlyph(Unicode::UnicodeChar unicode, const uint8_t*& pixelData, uint8_t& bitsPerPixel) const;
virtual const uint8_t* getPixelData(const GlyphNode* glyph) const;
};
} // namespace touchgfx
#endif // TOUCHGFX_UNMAPPEDDATAFONT_HPP
@@ -0,0 +1,24 @@
/* DO NOT EDIT THIS FILE */
/* This file is autogenerated by the text-database code generator */
#include <fonts/ApplicationFontProvider.hpp>
#include <fonts/GeneratedFont.hpp>
#include <texts/TypedTextDatabase.hpp>
touchgfx::Font* ApplicationFontProvider::getFont(touchgfx::FontId typography)
{
switch (typography)
{
case Typography::DEFAULT:
// arial_20_4bpp
return const_cast<touchgfx::Font*>(TypedTextDatabase::getFonts()[0]);
case Typography::LARGE:
// arial_40_4bpp
return const_cast<touchgfx::Font*>(TypedTextDatabase::getFonts()[1]);
case Typography::SMALL:
// arial_10_4bpp
return const_cast<touchgfx::Font*>(TypedTextDatabase::getFonts()[2]);
default:
return 0;
}
}
@@ -0,0 +1,55 @@
/* DO NOT EDIT THIS FILE */
/* This file is autogenerated by the text-database code generator */
#include <fonts/CachedFont.hpp>
namespace touchgfx
{
const uint8_t* CachedFont::getPixelData(const GlyphNode* glyph) const
{
// If glyph is cached, then data is present just after the GlyphNode
if (FontCache::isCached(glyph))
{
const uint8_t* data = FontCache::getPixelData(glyph);
return data;
}
return flashFont->getPixelData(glyph);
}
const GlyphNode* CachedFont::getGlyph(Unicode::UnicodeChar unicode, const uint8_t*& pixelData, uint8_t& bitsPerPixel) const
{
// Look first in internal flash font
const GlyphNode* n = flashFont->find(unicode);
if ((n == 0) && (cache != 0))
{
// Now look in FontCache table
n = cache->getGlyph(unicode, fontId);
}
// Revert to normal behaviour if still not found
if (n == 0 && unicode != 0 && unicode != '\n')
{
Unicode::UnicodeChar fallbackChar = flashFont->getFallbackChar();
n = flashFont->find(fallbackChar);
if (n == 0)
{
n = cache->getGlyph(fallbackChar, fontId);
}
}
if (n != 0)
{
pixelData = getPixelData(n);
bitsPerPixel = getBitsPerPixel();
return n;
}
return (const GlyphNode*)0;
}
int8_t CachedFont::getKerning(Unicode::UnicodeChar prevChar, const GlyphNode* glyph) const
{
// Kerning is not supported by Font Caching
return 0;
}
} // namespace touchgfx
@@ -0,0 +1,183 @@
/* DO NOT EDIT THIS FILE */
/* This file is autogenerated by the text-database code generator */
#include <fonts/CompressedFontCache.hpp>
#include <touchgfx/hal/HAL.hpp>
#include <touchgfx/hal/Paint.hpp>
namespace touchgfx
{
LOCATION_PRAGMA_32("TouchGFX_CompressedFontCache")
uint32_t CompressedFontCache::bitmapFontCache[cacheWords] LOCATION_ATTRIBUTE_32("TouchGFX_CompressedFontCache");
uint8_t* CompressedFontCache::pixelsTop = (uint8_t*)CompressedFontCache::bitmapFontCache;
int CompressedFontCache::glyphsAllocated = 0;
int CompressedFontCache::cacheClearCounter = 0;
namespace
{
/* Read nibbles from a compressed data array */
struct NibReader
{
NibReader(const uint8_t* buffer)
: buffer(buffer), byteIndex(0), low(true)
{}
const uint8_t* buffer;
int byteIndex;
bool low;
uint8_t getNext()
{
if (low)
{
const uint8_t val = buffer[byteIndex] & 0xF;
low = false;
return val;
}
const uint8_t val = buffer[byteIndex] >> 4;
low = true;
byteIndex++;
return val;
}
};
struct NibWriter
{
NibWriter(uint8_t* buffer, int size)
: buffer(buffer), bufferEnd(buffer + size), low(true) {}
uint8_t* buffer;
uint8_t* bufferEnd;
int low;
void put(uint8_t v)
{
if (low)
{
*buffer = v;
low = false;
return;
}
*buffer |= (v << 4);
buffer++;
low = true;
}
bool eof() { return buffer >= bufferEnd; }
};
} // anonymous namespace
uint8_t* CompressedFontCache::decompressGlyph(uint8_t* pixelsTop, const GlyphNode* glyphNode, const uint8_t* compressedData)
{
const int byteSize = (glyphNode->width() + 1) / 2 * glyphNode->height();
NibWriter writer(pixelsTop, byteSize);
NibReader reader(compressedData);
uint8_t* const pixelsEnd = pixelsTop + byteSize;
const int algorithm = glyphNode->dataOffset >> 30;
if (algorithm == 1)
{
// RLE1
while (!writer.eof())
{
const uint8_t value = reader.getNext();
if (value == 0)
{
int zeroCount = reader.getNext();
while (zeroCount)
{
writer.put(0);
zeroCount--;
}
}
writer.put(value);
}
}
else if (algorithm == 2)
{
// RLE2
while (!writer.eof())
{
const uint8_t value = reader.getNext();
if (value == 0 || value == 0xF)
{
int count = reader.getNext();
while (count)
{
writer.put(value);
count--;
}
}
writer.put(value);
}
}
else
{
// Uncompressed
while (pixelsTop < pixelsEnd)
{
*pixelsTop++ = *compressedData++;
}
}
return pixelsEnd;
}
void CompressedFontCache::clearCache()
{
// Wait for DMA2D/GPU2D to finish drawing
HAL::getInstance()->lockUnlockFrameBuffer();
glyphsAllocated = 0;
cacheClearCounter++;
pixelsTop = (uint8_t*)bitmapFontCache;
}
void CompressedFontCache::unableToCache(const GlyphNode* glyphNode, int byteSize)
{
while(1);
}
const uint8_t* CompressedFontCache::hasCachedGlyph(const GlyphNode* glyphNode)
{
const BitmapFontCacheKey* end = (const BitmapFontCacheKey*)&bitmapFontCache[cacheWords];
const BitmapFontCacheKey* first = end - glyphsAllocated;
while (first < end)
{
if (first->glyphNode == glyphNode)
{
return first->pixels;
}
first++;
}
return 0;
}
const uint8_t* CompressedFontCache::cacheGlyph(const GlyphNode* glyph, const uint8_t* compressedData)
{
const int byteSize = (glyph->width() + 1) / 2 * glyph->height();
if (byteSize + 8 > cacheSizeBytes)
{
unableToCache(glyph, byteSize);
return 0;
}
const BitmapFontCacheKey* end = (const BitmapFontCacheKey*)&bitmapFontCache[cacheWords];
if (pixelsTop + byteSize + 8 > (const uint8_t*)&end[-glyphsAllocated])
{
// Unable to fit glyph in data, clear cache
clearCache();
}
const uint8_t* glyphData = pixelsTop;
pixelsTop = decompressGlyph(pixelsTop, glyph, compressedData);
// Flush the cache lines, must be 32byte aligned
uint8_t* rowStart = reinterpret_cast<uint8_t*>(reinterpret_cast<uintptr_t>(glyphData) & ~0x1F);
int alignmentOffset = glyphData - rowStart;
paint::flushLine((uint32_t*)rowStart, byteSize + alignmentOffset);
paint::invalidateTextureCache();
glyphsAllocated++;
BitmapFontCacheKey* key = const_cast<BitmapFontCacheKey*>(end - glyphsAllocated);
key->glyphNode = glyph;
key->pixels = glyphData;
return glyphData;
}
} // namespace touchgfx
@@ -0,0 +1,263 @@
/* DO NOT EDIT THIS FILE */
/* This file is autogenerated by the text-database code generator */
#include <fonts/CompressedUnmappedFontCache.hpp>
#include <touchgfx/hal/HAL.hpp>
#include <touchgfx/hal/Paint.hpp>
namespace touchgfx
{
LOCATION_PRAGMA_32("TouchGFX_CompressedUnmappedFontCache")
uint32_t CompressedUnmappedFontCache::bitmapFontCache[cacheWords] LOCATION_ATTRIBUTE_32("TouchGFX_CompressedUnmappedFontCache");
uint8_t* CompressedUnmappedFontCache::pixelsTop = (uint8_t*)CompressedUnmappedFontCache::bitmapFontCache;
int CompressedUnmappedFontCache::glyphsAllocated = 0;
int CompressedUnmappedFontCache::cacheClearCounter = 0;
namespace
{
/* Read nibbles from compressed data in unmapped flash. Must read through reader object */
struct NibUnmapReader
{
NibUnmapReader(const uint8_t* srcAddress, touchgfx::FlashDataReader* reader)
: address(srcAddress), reader(reader), byteIndex(0), low(true)
{
address += bufferSize;
reader->copyData(srcAddress, buffer, sizeof(buffer));
}
const uint8_t* address; //next reading address
touchgfx::FlashDataReader* reader;
static const int bufferSize = 16;
uint8_t buffer[bufferSize];
uint8_t value;
int byteIndex;
bool low;
uint8_t getNext()
{
if (low)
{
value = buffer[byteIndex];
const uint8_t val = value & 0xF;
low = false;
return val;
}
const uint8_t val = value >> 4;
low = true;
if (byteIndex == bufferSize - 1)
{
reader->copyData(address, buffer, bufferSize);
address += bufferSize;
byteIndex = 0;
}
else
{
byteIndex++;
}
return val;
}
};
struct NibWriter
{
NibWriter(uint8_t* buffer, int size)
: buffer(buffer), bufferEnd(buffer + size), low(true) {}
uint8_t* buffer;
uint8_t* bufferEnd;
int low;
void put(uint8_t v)
{
if (low)
{
*buffer = v;
low = false;
return;
}
*buffer |= (v << 4);
buffer++;
low = true;
}
bool eof() { return buffer >= bufferEnd; }
};
} // anonymous namespace
uint8_t* CompressedUnmappedFontCache::decompressGlyph(uint8_t* pixelsTop, const GlyphNode* glyphNode, const uint8_t* compressedData, touchgfx::FlashDataReader* flashReader)
{
const int byteSize = (glyphNode->width() + 1) / 2 * glyphNode->height();
NibWriter writer(pixelsTop, byteSize);
NibUnmapReader reader(compressedData, flashReader);
uint8_t* const pixelsEnd = pixelsTop + byteSize;
const int algorithm = glyphNode->dataOffset >> 30;
if (algorithm == 1)
{
// RLE1
while (!writer.eof())
{
const uint8_t value = reader.getNext();
if (value == 0)
{
int zeroCount = reader.getNext();
while (zeroCount)
{
writer.put(0);
zeroCount--;
}
}
writer.put(value);
}
}
else if (algorithm == 2)
{
// RLE2
while (!writer.eof())
{
const uint8_t value = reader.getNext();
if (value == 0 || value == 0xF)
{
int count = reader.getNext();
while (count)
{
writer.put(value);
count--;
}
}
writer.put(value);
}
}
else
{
// Uncompressed
flashReader->copyData(compressedData, pixelsTop, byteSize);
}
return pixelsEnd;
}
void CompressedUnmappedFontCache::clearCache()
{
// Wait for DMA2D/GPU2D to finish drawing
HAL::getInstance()->lockUnlockFrameBuffer();
glyphsAllocated = 0;
cacheClearCounter++;
pixelsTop = (uint8_t*)bitmapFontCache;
}
void CompressedUnmappedFontCache::unableToCache(const GlyphNode* glyphNode, int byteSize)
{
while(1);
}
const GlyphNode* CompressedUnmappedFontCache::hasCachedGlyphNode(const GlyphNode* glyphNode)
{
const BitmapFontCacheKey* end = (const BitmapFontCacheKey*)&bitmapFontCache[cacheWords];
const BitmapFontCacheKey* first = end - glyphsAllocated;
while (first < end)
{
if (first->glyphNodeSrc == glyphNode)
{
return &first->glyphNodeCopy;
}
first++;
}
return 0;
}
const GlyphNode* CompressedUnmappedFontCache::hasCachedGlyphData(const GlyphNode* glyphNode, const uint8_t*& pixelData)
{
const BitmapFontCacheKey* end = (const BitmapFontCacheKey*)&bitmapFontCache[cacheWords];
const BitmapFontCacheKey* first = end - glyphsAllocated;
while (first < end)
{
if (first->glyphNodeSrc == glyphNode)
{
//Pixel data can be zero!
pixelData = first->pixels;
return &first->glyphNodeCopy;
}
first++;
}
return 0;
}
GlyphNode* CompressedUnmappedFontCache::cacheGlyphNode(const GlyphNode* glyph)
{
const BitmapFontCacheKey* end = (const BitmapFontCacheKey*)&bitmapFontCache[cacheWords];
if (pixelsTop + sizeof(BitmapFontCacheKey) > (const uint8_t*)&end[-glyphsAllocated])
{
// Unable to fit GlyphNode in data, clear cache
clearCache();
}
glyphsAllocated++;
BitmapFontCacheKey* key = const_cast<BitmapFontCacheKey*>(end - glyphsAllocated);
key->glyphNodeSrc = glyph;
key->pixels = 0;
return &key->glyphNodeCopy;
}
const uint8_t* CompressedUnmappedFontCache::cacheGlyphData(const GlyphNode* glyph, const uint8_t* compressedData, touchgfx::FlashDataReader* reader)
{
// Search keys for glyph
BitmapFontCacheKey* end = (BitmapFontCacheKey*)&bitmapFontCache[cacheWords];
BitmapFontCacheKey* it = end - glyphsAllocated;
while (it < end)
{
if (it->glyphNodeSrc == glyph)
{
break;
}
it++;
}
if (it == end)
{
// broken invariant!
return 0;
}
const int byteSize = (it->glyphNodeCopy.width() + 1) / 2 * it->glyphNodeCopy.height();
// Check if pixels can fit in cache
if (pixelsTop + byteSize > (const uint8_t*)&end[-glyphsAllocated])
{
// Can it fit in a clean cache?
if (byteSize + sizeof(BitmapFontCacheKey) > cacheSizeBytes)
{
unableToCache(glyph, byteSize);
return 0;
}
// Unable to fit pixel in data, must clear cache
// Save address of GlyphNode in cache
const GlyphNode* cachedGn = &it->glyphNodeCopy;
// Now clear (reset pointer)
clearCache();
// Insert glyph node again
glyphsAllocated++;
it = const_cast<BitmapFontCacheKey*>(end - 1);
it->glyphNodeSrc = glyph;
it->pixels = 0;
// Copy GlyphNode content from previous position in cache
it->glyphNodeCopy = *cachedGn;
}
//Now decompress data
const uint8_t* glyphData = pixelsTop;
pixelsTop = decompressGlyph(pixelsTop, &it->glyphNodeCopy, compressedData, reader);
// Flush the cache lines, must be 32byte aligned
uint8_t* rowStart = reinterpret_cast<uint8_t*>(reinterpret_cast<uintptr_t>(glyphData) & ~0x1F);
int alignmentOffset = glyphData - rowStart;
paint::flushLine((uint32_t*)rowStart, byteSize + alignmentOffset);
paint::invalidateTextureCache();
it->pixels = glyphData;
return glyphData;
}
} // namespace touchgfx
@@ -0,0 +1,424 @@
/* DO NOT EDIT THIS FILE */
/* This file is autogenerated by the text-database code generator */
#include <cstring>
#include <touchgfx/TextProvider.hpp>
#include <touchgfx/Utils.hpp>
#include <fonts/CachedFont.hpp>
#include <fonts/FontCache.hpp>
#include <texts/TypedTextDatabase.hpp>
namespace touchgfx
{
FontCache::FontCache()
: memorySize(0), memory(0), top(0), gsubStart(0), reader(0)
{
}
void FontCache::clear(bool keepGsubOrContextTable /* = false */)
{
memset(fontTable, 0, sizeof(fontTable));
// Top is beginning of memory, no glyphs are cached yet
top = memory;
if (!keepGsubOrContextTable)
{
// gsubStart points to end of memory (nothing loaded yet)
gsubStart = memory + memorySize;
// Round down to 32bit address
gsubStart = (uint8_t*)((uintptr_t)gsubStart & ~(sizeof(void*) - 1));
}
}
void FontCache::setMemory(uint8_t* _memory, uint32_t size)
{
memory = _memory;
memorySize = size;
clear();
}
void FontCache::setReader(FontDataReader* _reader)
{
reader = _reader;
}
const GlyphNode* FontCache::getGlyph(Unicode::UnicodeChar unicode, FontId font) const
{
GlyphNode* g = (GlyphNode*)fontTable[font].first;
while (g)
{
if (g->unicode == unicode)
{
return g;
}
GlyphNode** next = (GlyphNode**)((uint8_t*)g + SizeGlyphNode);
g = *next;
}
return 0;
}
void FontCache::open()
{
if (reader)
{
reader->open();
}
}
void FontCache::close()
{
if (reader)
{
reader->close();
}
}
void FontCache::initializeCachedFont(TypedText t, CachedFont* font, bool loadGsubOrContextTable /*= false*/)
{
// Get font index from typed text
FontId fontId = t.getFontId();
// Reset to start of file
open();
setPosition(0);
assert(sizeof(touchgfx::BinaryFontData) < MAX_BUFFER_SIZE);
readData(buffer, sizeof(touchgfx::BinaryFontData));
const struct touchgfx::BinaryFontData* binaryFontData = reinterpret_cast<const struct touchgfx::BinaryFontData*>(buffer);
const Font** flashFonts = TypedTextDatabase::getFonts();
const GeneratedFont* flashFont = static_cast<const GeneratedFont*>(flashFonts[fontId]);
*font = CachedFont(reinterpret_cast<const struct touchgfx::BinaryFontData*>(buffer), fontId, this, flashFont);
if (loadGsubOrContextTable && (binaryFontData->offsetToGSUB != 0))
{
setPosition(binaryFontData->offsetToGSUB);
const uint32_t sizeOfGSUB = (binaryFontData->offsetToArabicTable != 0 ? binaryFontData->offsetToArabicTable : binaryFontData->sizeOfFontData) - binaryFontData->offsetToGSUB;
if (top + sizeOfGSUB < gsubStart) // Room for this GSUB table
{
// Round down to aligned address
uint8_t* const gsubPosition = (uint8_t*)((uintptr_t)(gsubStart - sizeOfGSUB) & ~(sizeof(void*) - 1));
readData(gsubPosition, sizeOfGSUB);
font->setGSUBTable(reinterpret_cast<uint16_t*>(gsubPosition));
gsubStart = gsubPosition;
}
else
{
font->setGSUBTable(0);
}
}
if (loadGsubOrContextTable && (binaryFontData->offsetToArabicTable != 0))
{
setPosition(binaryFontData->offsetToArabicTable);
const uint32_t sizeTableData = binaryFontData->sizeOfFontData - binaryFontData->offsetToArabicTable;
if (top + sizeTableData + sizeof(FontContextualFormsTable) < gsubStart) // Room for the ContextualFormsTables
{
// Allocate FontContextualFormsTable first
gsubStart -= sizeof(FontContextualFormsTable);
// Round down to 32bit address
gsubStart = (uint8_t*)((uintptr_t)gsubStart & ~(sizeof(void*) - 1));
FontContextualFormsTable* table = (FontContextualFormsTable*)gsubStart;
font->setContextualFormsTable(table);
gsubStart -= sizeTableData;
readData(gsubStart, sizeTableData);
// Set pointers in table
const uint16_t* const base = (const uint16_t*)gsubStart;
// First elements in binary font are offsets to arrays in 16bit words
table->contextualForms4Long = (FontContextualFormsTable::arrayOf5UnicodesPtr)(base + base[0]);
table->contextualForms3Long = (FontContextualFormsTable::arrayOf5UnicodesPtr)(base + base[1]);
table->contextualForms2Long = (FontContextualFormsTable::arrayOf5UnicodesPtr)(base + base[2]);
table->contextualForms0621_063a = (FontContextualFormsTable::arrayOf4UnicodesPtr)(base + base[3]);
table->contextualForms0641_064a = (FontContextualFormsTable::arrayOf4UnicodesPtr)(base + base[4]);
table->contextualForms06XX = (FontContextualFormsTable::arrayOf5UnicodesPtr)(base + base[5]);
table->contextualForms4LongSize = base[6];
table->contextualForms3LongSize = base[7];
table->contextualForms2LongSize = base[8];
table->contextualForms06XXSize = base[9];
}
else
{
font->setContextualFormsTable(0);
}
}
close();
}
bool FontCache::cacheString(TypedText t, const Unicode::UnicodeChar* string)
{
open();
if (!createSortedString(string))
{
close();
return false;
}
const bool result = cacheSortedString(t);
close();
return result;
}
bool FontCache::cacheLigatures(CachedFont* font, TypedText t, const Unicode::UnicodeChar* string)
{
open();
if (!createSortedLigatures(font, t, string, 0, 0))
{
close();
return false;
}
const bool result = cacheSortedString(t);
close();
return result;
}
bool FontCache::cacheSortedString(TypedText t)
{
setPosition(8); // Skip font index and size
uint32_t glyphNodeOffset;
uint32_t dummy;
readData(&glyphNodeOffset, sizeof(uint32_t)); // offsetToTable
readData(&dummy, sizeof(uint32_t)); // offsetToKerning
readData(&glyphDataOffset, sizeof(uint32_t)); // offsetToGlyphs
readData(&dummy, sizeof(uint32_t)); // offsetToGlyphs
readData(&dummy, sizeof(uint32_t)); // offsetToArabicTable
readData(&numGlyphs, sizeof(uint16_t)); // numberOfGlyphs
FontId fontId = t.getFontId(); // Get font index from typed text
bpp = t.getFont()->getBitsPerPixel(); // Get BPP from standard font
byteAlignRow = t.getFont()->getByteAlignRow(); // Get ByteAlign from font
setPosition(glyphNodeOffset); // Go to glyph nodes for font
currentFileGlyphNumber = 0;
currentFileGlyphNode.unicode = 0; // Force reading of first glyph
const Unicode::UnicodeChar* string = sortedString;
Unicode::UnicodeChar last = 0;
GlyphNode* firstNewGlyph = 0;
bool outOfMemory = false;
while (*string)
{
Unicode::UnicodeChar ch = *string;
if (ch != last)
{
if (!contains(ch, fontId))
{
insert(ch, fontId, outOfMemory);
if (outOfMemory)
{
break;
}
if (firstNewGlyph == 0)
{
firstNewGlyph = (GlyphNode*)fontTable[fontId].last;
}
}
}
last = ch;
string++;
}
cacheData(firstNewGlyph);
return !outOfMemory;
}
bool FontCache::contains(Unicode::UnicodeChar unicode, FontId font) const
{
GlyphNode* g = (GlyphNode*)fontTable[font].first;
while (g)
{
if (g->unicode == unicode)
{
return true;
}
GlyphNode** next = (GlyphNode**)((uint8_t*)g + SizeGlyphNode);
g = *next;
}
return false;
}
void FontCache::insert(Unicode::UnicodeChar unicode, FontId font, bool& outOfMemory)
{
// Insert new glyphnode and glyph after last for font.
uint8_t* oldTop = top;
top = copyGlyph(top, unicode, font, outOfMemory);
if (top == oldTop)
{
return;
}
if (fontTable[font].last == 0)
{
// First glyph
fontTable[font].first = oldTop;
fontTable[font].last = oldTop;
}
else
{
// Set next pointer of old last glyph
uint8_t** old_next = (uint8_t**)(fontTable[font].last + SizeGlyphNode);
*old_next = oldTop;
// Save new glyph as last glyph
fontTable[font].last = oldTop;
}
}
uint8_t* FontCache::copyGlyph(uint8_t* top, Unicode::UnicodeChar unicode, FontId font, bool& outOfMemory)
{
while (currentFileGlyphNumber < numGlyphs && currentFileGlyphNode.unicode < unicode)
{
readData(&currentFileGlyphNode, sizeof(GlyphNode));
currentFileGlyphNumber++;
}
if (currentFileGlyphNode.unicode != unicode)
{
// GlyphNode not found
return top;
}
// GlyphNode found
uint32_t glyphSize = getGlyphSize(&currentFileGlyphNode);
const int alignment = sizeof(void*);
glyphSize = (glyphSize + (alignment - 1)) & ~(alignment - 1);
uint32_t requiredMem = SizeGlyphNode + sizeof(void*) + glyphSize; // GlyphNode + next ptr + glyph
// Is space available before sortedString
if (top + requiredMem > (uint8_t*)sortedString)
{
outOfMemory = true;
return top;
}
*(GlyphNode*)top = currentFileGlyphNode;
// Clear next pointer
uint8_t** next = (uint8_t**)(top + SizeGlyphNode);
*next = 0;
top += requiredMem;
return top;
}
void FontCache::cacheData(GlyphNode* first)
{
GlyphNode* gn = first;
while (gn)
{
uint8_t* p = (uint8_t*)gn;
if (gn->dataOffset != 0xFFFFFFFF)
{
p += SizeGlyphNode;
// Next pointer
p += sizeof(void*);
// Seek and copy
setPosition(glyphDataOffset + gn->dataOffset);
readData(p, getGlyphSize(gn));
// Mark glyphNode as cached
gn->dataOffset = 0xFFFFFFFF;
}
GlyphNode** next = (GlyphNode**)((uint8_t*)gn + SizeGlyphNode);
gn = *next;
}
}
bool FontCache::createSortedString(const Unicode::UnicodeChar* string)
{
int length = Unicode::strlen(string);
// Sorted string is allocated at end of buffer
sortedString = (Unicode::UnicodeChar*)(gsubStart - (length + 1) * 2);
if ((uint8_t*)sortedString < top)
{
// Unable to allocate string buffer in end of memory
return false;
}
int n = 0;
Unicode::UnicodeChar* uc = sortedString;
while (*string)
{
*uc++ = *string++;
n++;
}
*uc = 0;
return sortSortedString(n);
}
bool FontCache::createSortedLigatures(CachedFont* font, TypedText t, const Unicode::UnicodeChar* string, ...)
{
va_list pArg;
va_start(pArg, string);
TextProvider tp;
tp.initialize(string, pArg, font->getGSUBTable(), font->getContextualFormsTable());
va_end(pArg);
Unicode::UnicodeChar ligature;
sortedString = (Unicode::UnicodeChar*)(gsubStart);
if ((uint8_t*)(sortedString - 1) < top)
{
return false;
}
*--sortedString = 0;
int n = 0;
while ((ligature = tp.getNextLigature(t.getTextDirection())) != 0)
{
if ((uint8_t*)(sortedString - 1) < top)
{
return false;
}
*--sortedString = ligature;
n++;
}
return sortSortedString(n);
}
bool FontCache::sortSortedString(int n)
{
Unicode::UnicodeChar* uc = sortedString;
for (int i = 0; i < n - 1; i++)
{
bool swapped = false;
for (int j = 0; j < n - i - 1; j++)
{
if (uc[j] > uc[j + 1])
{
Unicode::UnicodeChar temp = uc[j];
uc[j] = uc[j + 1];
uc[j + 1] = temp;
swapped = true;
}
}
// If no two elements were swapped by inner loop, then break
if (!swapped)
{
break;
}
}
return true;
}
void FontCache::setPosition(uint32_t position)
{
if (reader)
{
reader->setPosition(position);
}
}
void FontCache::readData(void* out, uint32_t numberOfBytes)
{
if (reader)
{
reader->readData(out, numberOfBytes);
}
}
} // namespace touchgfx
@@ -0,0 +1,8 @@
#include <touchgfx/hal/Types.hpp>
FONT_GLYPH_LOCATION_FLASH_PRAGMA
KEEP extern const uint8_t unicodes_arial_10_4bpp_0[] FONT_GLYPH_LOCATION_FLASH_ATTRIBUTE = {
// Unicode: [0x003F, question]
0xA0, 0xBB, 0x05, 0x86, 0x10, 0x0D, 0x00, 0x20, 0x0D, 0x00, 0xC2, 0x03, 0x00, 0x49, 0x00, 0x00,
0x13, 0x00, 0x00, 0x4B, 0x00
};
@@ -0,0 +1,243 @@
#include <touchgfx/hal/Types.hpp>
FONT_GLYPH_LOCATION_FLASH_PRAGMA
KEEP extern const uint8_t unicodes_arial_20_4bpp_0[] FONT_GLYPH_LOCATION_FLASH_ATTRIBUTE = {
// Unicode: [0x0020, space]
// (Has no glyph data)
// Unicode: [0x002C, comma]
0x10, 0x01, 0xF3, 0x0C, 0xF3, 0x0C, 0x40, 0x0B, 0x90, 0x08, 0xA2, 0x01,
// Unicode: [0x002D, hyphen]
0xC4, 0xCC, 0xCC, 0xF5, 0xFF, 0xFF,
// Unicode: [0x002E, period]
0x10, 0x01, 0xF3, 0x0C, 0xF3, 0x0C,
// Unicode: [0x0030, zero]
0x00, 0x70, 0xFD, 0x7D, 0x00, 0x00, 0x00, 0xFA, 0x8B, 0xFC, 0x0A, 0x00, 0x40, 0xAF, 0x00, 0xA0,
0x4F, 0x00, 0xA0, 0x2F, 0x00, 0x20, 0xAF, 0x00, 0xE0, 0x0D, 0x00, 0x00, 0xED, 0x00, 0xF1, 0x0B,
0x00, 0x00, 0xFB, 0x01, 0xF2, 0x0A, 0x00, 0x00, 0xFA, 0x02, 0xF2, 0x0A, 0x00, 0x00, 0xFA, 0x02,
0xF2, 0x0A, 0x00, 0x00, 0xFA, 0x02, 0xF1, 0x0B, 0x00, 0x00, 0xFB, 0x01, 0xE0, 0x0D, 0x00, 0x00,
0xDD, 0x00, 0xA0, 0x2F, 0x00, 0x20, 0xAF, 0x00, 0x50, 0x9F, 0x00, 0xA0, 0x4F, 0x00, 0x00, 0xFA,
0x8C, 0xFC, 0x0A, 0x00, 0x00, 0x80, 0xFD, 0x7D, 0x00, 0x00,
// Unicode: [0x0031, one]
0x00, 0x10, 0x7E, 0x00, 0xB0, 0x7F, 0x10, 0xFC, 0x7F, 0xE6, 0xBF, 0x7F, 0xDC, 0x54, 0x7F, 0x04,
0x50, 0x7F, 0x00, 0x50, 0x7F, 0x00, 0x50, 0x7F, 0x00, 0x50, 0x7F, 0x00, 0x50, 0x7F, 0x00, 0x50,
0x7F, 0x00, 0x50, 0x7F, 0x00, 0x50, 0x7F, 0x00, 0x50, 0x7F, 0x00, 0x50, 0x7F,
// Unicode: [0x0032, two]
0x00, 0x91, 0xFD, 0xAE, 0x02, 0x00, 0x20, 0xFD, 0x8B, 0xFB, 0x2E, 0x00, 0x90, 0x7F, 0x00, 0x60,
0xAF, 0x00, 0xE0, 0x0E, 0x00, 0x00, 0xFD, 0x00, 0x60, 0x06, 0x00, 0x00, 0xFC, 0x00, 0x00, 0x00,
0x00, 0x20, 0xCF, 0x00, 0x00, 0x00, 0x00, 0xB0, 0x6F, 0x00, 0x00, 0x00, 0x00, 0xF9, 0x0B, 0x00,
0x00, 0x00, 0x90, 0xCF, 0x01, 0x00, 0x00, 0x10, 0xFB, 0x1B, 0x00, 0x00, 0x00, 0xC1, 0xAF, 0x00,
0x00, 0x00, 0x00, 0xFC, 0x08, 0x00, 0x00, 0x00, 0x80, 0x9F, 0x00, 0x00, 0x00, 0x00, 0xF1, 0xCF,
0xBB, 0xBB, 0xBB, 0x01, 0xF5, 0xFF, 0xFF, 0xFF, 0xFF, 0x01,
// Unicode: [0x0033, three]
0x00, 0x91, 0xED, 0x7C, 0x00, 0x00, 0x10, 0xFD, 0x8A, 0xFC, 0x0A, 0x00, 0x90, 0x6F, 0x00, 0xA0,
0x4F, 0x00, 0xA0, 0x0C, 0x00, 0x50, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x80, 0x5F, 0x00, 0x00, 0x00,
0x31, 0xF8, 0x0C, 0x00, 0x00, 0x00, 0xF9, 0xDF, 0x02, 0x00, 0x00, 0x00, 0x54, 0xE7, 0x4E, 0x00,
0x00, 0x00, 0x00, 0x40, 0xDF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0x02, 0x61, 0x05, 0x00, 0x00,
0xFB, 0x03, 0xF0, 0x0D, 0x00, 0x00, 0xFD, 0x01, 0xA0, 0x7F, 0x00, 0x80, 0xAF, 0x00, 0x20, 0xFD,
0x8B, 0xFC, 0x1D, 0x00, 0x00, 0x91, 0xFE, 0x8D, 0x01, 0x00,
// Unicode: [0x0034, four]
0x00, 0x00, 0x00, 0xF8, 0x03, 0x00, 0x00, 0x00, 0x30, 0xFF, 0x03, 0x00, 0x00, 0x00, 0xC0, 0xFF,
0x03, 0x00, 0x00, 0x00, 0xF8, 0xFB, 0x03, 0x00, 0x00, 0x30, 0x8F, 0xF8, 0x03, 0x00, 0x00, 0xC0,
0x0D, 0xF8, 0x03, 0x00, 0x00, 0xF7, 0x04, 0xF8, 0x03, 0x00, 0x20, 0x9F, 0x00, 0xF8, 0x03, 0x00,
0xB0, 0x1D, 0x00, 0xF8, 0x03, 0x00, 0xF6, 0x05, 0x00, 0xF8, 0x03, 0x00, 0xFB, 0xFF, 0xFF, 0xFF,
0xFF, 0x02, 0xA8, 0xAA, 0xAA, 0xFD, 0xAB, 0x02, 0x00, 0x00, 0x00, 0xF8, 0x03, 0x00, 0x00, 0x00,
0x00, 0xF8, 0x03, 0x00, 0x00, 0x00, 0x00, 0xF8, 0x03, 0x00,
// Unicode: [0x0035, five]
0x00, 0xF8, 0xFF, 0xFF, 0xAF, 0x00, 0x00, 0xFB, 0xBB, 0xBB, 0x7B, 0x00, 0x00, 0xCE, 0x00, 0x00,
0x00, 0x00, 0x10, 0x9F, 0x00, 0x00, 0x00, 0x00, 0x40, 0x6F, 0x00, 0x00, 0x00, 0x00, 0x70, 0x7F,
0xEB, 0xAE, 0x02, 0x00, 0x90, 0xFF, 0xAC, 0xFD, 0x3E, 0x00, 0xA0, 0x4E, 0x00, 0x70, 0xCF, 0x00,
0x00, 0x00, 0x00, 0x00, 0xFC, 0x03, 0x00, 0x00, 0x00, 0x00, 0xF9, 0x04, 0x20, 0x03, 0x00, 0x00,
0xFA, 0x04, 0xF1, 0x0D, 0x00, 0x00, 0xFD, 0x01, 0xB0, 0x6F, 0x00, 0x70, 0x9F, 0x00, 0x20, 0xFE,
0x8B, 0xFB, 0x1D, 0x00, 0x00, 0x92, 0xFE, 0x8D, 0x01, 0x00,
// Unicode: [0x0036, six]
0x00, 0x50, 0xEC, 0xAE, 0x02, 0x00, 0x00, 0xF8, 0x8D, 0xFA, 0x2E, 0x00, 0x30, 0xBF, 0x01, 0x50,
0xAF, 0x00, 0x90, 0x2F, 0x00, 0x00, 0x89, 0x00, 0xE0, 0x0C, 0x00, 0x00, 0x00, 0x00, 0xF1, 0x29,
0xEA, 0xAE, 0x02, 0x00, 0xF3, 0xEA, 0xAD, 0xFC, 0x2E, 0x00, 0xF3, 0xAF, 0x00, 0x70, 0xBF, 0x00,
0xF3, 0x1F, 0x00, 0x00, 0xFD, 0x01, 0xF2, 0x0D, 0x00, 0x00, 0xFA, 0x03, 0xF0, 0x0D, 0x00, 0x00,
0xFA, 0x02, 0xC0, 0x2F, 0x00, 0x00, 0xED, 0x00, 0x60, 0xAF, 0x00, 0x60, 0x9F, 0x00, 0x00, 0xFA,
0x8C, 0xFB, 0x1D, 0x00, 0x00, 0x70, 0xFC, 0x9D, 0x01, 0x00,
// Unicode: [0x0037, seven]
0xF1, 0xFF, 0xFF, 0xFF, 0xFF, 0x03, 0xB1, 0xBB, 0xBB, 0xCB, 0xFF, 0x02, 0x00, 0x00, 0x00, 0x90,
0x6F, 0x00, 0x00, 0x00, 0x00, 0xF4, 0x0B, 0x00, 0x00, 0x00, 0x00, 0xFD, 0x02, 0x00, 0x00, 0x00,
0x60, 0x8F, 0x00, 0x00, 0x00, 0x00, 0xD0, 0x1F, 0x00, 0x00, 0x00, 0x00, 0xF5, 0x09, 0x00, 0x00,
0x00, 0x00, 0xFB, 0x03, 0x00, 0x00, 0x00, 0x10, 0xDF, 0x00, 0x00, 0x00, 0x00, 0x50, 0x8F, 0x00,
0x00, 0x00, 0x00, 0x80, 0x4F, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x1F, 0x00, 0x00, 0x00, 0x00, 0xE0,
0x0E, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x0C, 0x00, 0x00, 0x00,
// Unicode: [0x0038, eight]
0x00, 0x81, 0xFD, 0x9D, 0x01, 0x00, 0x00, 0xFC, 0x8B, 0xFB, 0x1C, 0x00, 0x60, 0x9F, 0x00, 0x90,
0x6F, 0x00, 0x90, 0x4F, 0x00, 0x30, 0x9F, 0x00, 0x80, 0x6F, 0x00, 0x50, 0x8F, 0x00, 0x20, 0xEE,
0x36, 0xE6, 0x2D, 0x00, 0x00, 0xD3, 0xFF, 0xDF, 0x02, 0x00, 0x10, 0xFB, 0x68, 0xF8, 0x2D, 0x00,
0xA0, 0x4F, 0x00, 0x40, 0xCF, 0x00, 0xF1, 0x0C, 0x00, 0x00, 0xFB, 0x02, 0xF2, 0x0A, 0x00, 0x00,
0xF9, 0x03, 0xF1, 0x0C, 0x00, 0x00, 0xFB, 0x02, 0xB0, 0x6F, 0x00, 0x50, 0xBF, 0x00, 0x20, 0xFE,
0x8B, 0xFB, 0x2E, 0x00, 0x00, 0x92, 0xFD, 0x9E, 0x02, 0x00,
// Unicode: [0x0039, nine]
0x00, 0x91, 0xEE, 0x6C, 0x00, 0x00, 0x20, 0xFD, 0x9C, 0xFB, 0x0A, 0x00, 0xA0, 0x8F, 0x00, 0x80,
0x5F, 0x00, 0xF0, 0x0E, 0x00, 0x00, 0xCE, 0x00, 0xF2, 0x0B, 0x00, 0x00, 0xFB, 0x01, 0xF2, 0x0B,
0x00, 0x00, 0xFC, 0x03, 0xE0, 0x2E, 0x00, 0x20, 0xFF, 0x03, 0x80, 0xCF, 0x13, 0xC3, 0xFE, 0x04,
0x00, 0xFA, 0xFF, 0xBF, 0xF8, 0x03, 0x00, 0x40, 0x88, 0x05, 0xF9, 0x02, 0x00, 0x00, 0x00, 0x00,
0xEC, 0x00, 0xA0, 0x0C, 0x00, 0x20, 0xAF, 0x00, 0x80, 0x5F, 0x00, 0xC1, 0x3F, 0x00, 0x10, 0xFE,
0x89, 0xFD, 0x07, 0x00, 0x00, 0xA2, 0xEE, 0x5C, 0x00, 0x00,
// Unicode: [0x003A, colon]
0xF3, 0x0C, 0xF3, 0x0C, 0x10, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x10, 0x01, 0xF3, 0x0C, 0xF3, 0x0C,
// Unicode: [0x003F, question]
0x20, 0xD9, 0xEF, 0x2A, 0x00, 0xD1, 0xBF, 0xB8, 0xEF, 0x03, 0xF9, 0x08, 0x00, 0xF6, 0x0C, 0xEE,
0x00, 0x00, 0xC0, 0x1F, 0x55, 0x00, 0x00, 0xB0, 0x1F, 0x00, 0x00, 0x00, 0xF3, 0x0C, 0x00, 0x00,
0x30, 0xEE, 0x03, 0x00, 0x00, 0xE3, 0x4E, 0x00, 0x00, 0x00, 0xFD, 0x04, 0x00, 0x00, 0x40, 0x9F,
0x00, 0x00, 0x00, 0x60, 0x5F, 0x00, 0x00, 0x00, 0x20, 0x25, 0x00, 0x00, 0x00, 0x10, 0x11, 0x00,
0x00, 0x00, 0x80, 0x8F, 0x00, 0x00, 0x00, 0x80, 0x8F, 0x00, 0x00,
// Unicode: [0x0041, A]
0x00, 0x00, 0xB0, 0xBF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF1, 0xFE, 0x02, 0x00, 0x00, 0x00, 0x00,
0xF7, 0xF7, 0x07, 0x00, 0x00, 0x00, 0x00, 0xEC, 0xE1, 0x0D, 0x00, 0x00, 0x00, 0x30, 0xAF, 0x90,
0x4F, 0x00, 0x00, 0x00, 0x80, 0x5F, 0x40, 0xAF, 0x00, 0x00, 0x00, 0xE0, 0x0E, 0x00, 0xFE, 0x01,
0x00, 0x00, 0xF4, 0x09, 0x00, 0xF9, 0x07, 0x00, 0x00, 0xFA, 0x04, 0x00, 0xF3, 0x0D, 0x00, 0x10,
0xFE, 0xFF, 0xFF, 0xFF, 0x3F, 0x00, 0x60, 0xCF, 0x99, 0x99, 0xB9, 0x9F, 0x00, 0xB0, 0x4F, 0x00,
0x00, 0x20, 0xEF, 0x01, 0xF2, 0x0D, 0x00, 0x00, 0x00, 0xFB, 0x06, 0xF7, 0x08, 0x00, 0x00, 0x00,
0xF5, 0x0C, 0xFD, 0x02, 0x00, 0x00, 0x00, 0xE0, 0x3F,
// Unicode: [0x0042, B]
0xF8, 0xFF, 0xFF, 0xCE, 0x07, 0x00, 0xF8, 0xBD, 0xBB, 0xFC, 0xBF, 0x00, 0xF8, 0x05, 0x00, 0x10,
0xFC, 0x04, 0xF8, 0x05, 0x00, 0x00, 0xF5, 0x08, 0xF8, 0x05, 0x00, 0x00, 0xF5, 0x07, 0xF8, 0x05,
0x00, 0x10, 0xEC, 0x02, 0xF8, 0xBD, 0xBB, 0xFC, 0x4E, 0x00, 0xF8, 0xFF, 0xFF, 0xFF, 0x9F, 0x00,
0xF8, 0x05, 0x00, 0x31, 0xFB, 0x0A, 0xF8, 0x05, 0x00, 0x00, 0xE0, 0x2F, 0xF8, 0x05, 0x00, 0x00,
0xB0, 0x4F, 0xF8, 0x05, 0x00, 0x00, 0xD0, 0x3F, 0xF8, 0x05, 0x00, 0x00, 0xF7, 0x0D, 0xF8, 0xBD,
0xBB, 0xEC, 0xFF, 0x04, 0xF8, 0xFF, 0xFF, 0xDF, 0x3A, 0x00,
// Unicode: [0x0043, C]
0x00, 0x30, 0xD9, 0xEE, 0x6B, 0x00, 0x00, 0x00, 0xF8, 0xDF, 0xCB, 0xFF, 0x0B, 0x00, 0x80, 0xCF,
0x03, 0x00, 0xC2, 0x9F, 0x00, 0xF2, 0x1E, 0x00, 0x00, 0x10, 0xFE, 0x01, 0xF8, 0x07, 0x00, 0x00,
0x00, 0x76, 0x02, 0xFC, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC,
0x03, 0x00, 0x00, 0x00, 0x21, 0x00, 0xF7, 0x07, 0x00, 0x00, 0x00, 0xF8, 0x07, 0xF2, 0x1E, 0x00,
0x00, 0x20, 0xFE, 0x03, 0x80, 0xDF, 0x03, 0x00, 0xC3, 0x9F, 0x00, 0x00, 0xF9, 0xCF, 0xCB, 0xFF,
0x1B, 0x00, 0x00, 0x40, 0xDA, 0xEF, 0x6B, 0x00, 0x00,
// Unicode: [0x0044, D]
0xF7, 0xFF, 0xFF, 0xDE, 0x29, 0x00, 0x00, 0xF7, 0xBD, 0xBB, 0xEC, 0xFF, 0x05, 0x00, 0xF7, 0x07,
0x00, 0x00, 0xF7, 0x2E, 0x00, 0xF7, 0x07, 0x00, 0x00, 0x80, 0x9F, 0x00, 0xF7, 0x07, 0x00, 0x00,
0x10, 0xEE, 0x00, 0xF7, 0x07, 0x00, 0x00, 0x00, 0xFB, 0x03, 0xF7, 0x07, 0x00, 0x00, 0x00, 0xF9,
0x05, 0xF7, 0x07, 0x00, 0x00, 0x00, 0xF9, 0x05, 0xF7, 0x07, 0x00, 0x00, 0x00, 0xFA, 0x05, 0xF7,
0x07, 0x00, 0x00, 0x00, 0xFC, 0x03, 0xF7, 0x07, 0x00, 0x00, 0x10, 0xEF, 0x00, 0xF7, 0x07, 0x00,
0x00, 0x80, 0x9F, 0x00, 0xF7, 0x07, 0x00, 0x00, 0xF7, 0x2E, 0x00, 0xF7, 0xBD, 0xBB, 0xEC, 0xFF,
0x04, 0x00, 0xF7, 0xFF, 0xFF, 0xDE, 0x29, 0x00, 0x00,
// Unicode: [0x0045, E]
0xF6, 0xFF, 0xFF, 0xFF, 0xFF, 0x0E, 0xF6, 0xBD, 0xBB, 0xBB, 0xBB, 0x0B, 0xF6, 0x07, 0x00, 0x00,
0x00, 0x00, 0xF6, 0x07, 0x00, 0x00, 0x00, 0x00, 0xF6, 0x07, 0x00, 0x00, 0x00, 0x00, 0xF6, 0x07,
0x00, 0x00, 0x00, 0x00, 0xF6, 0xBD, 0xBB, 0xBB, 0xBB, 0x04, 0xF6, 0xFF, 0xFF, 0xFF, 0xFF, 0x06,
0xF6, 0x07, 0x00, 0x00, 0x00, 0x00, 0xF6, 0x07, 0x00, 0x00, 0x00, 0x00, 0xF6, 0x07, 0x00, 0x00,
0x00, 0x00, 0xF6, 0x07, 0x00, 0x00, 0x00, 0x00, 0xF6, 0x07, 0x00, 0x00, 0x00, 0x00, 0xF6, 0xBD,
0xBB, 0xBB, 0xBB, 0x3B, 0xF6, 0xFF, 0xFF, 0xFF, 0xFF, 0x4F,
// Unicode: [0x0046, F]
0xF5, 0xFF, 0xFF, 0xFF, 0xFF, 0x04, 0xF5, 0xBD, 0xBB, 0xBB, 0xBB, 0x03, 0xF5, 0x08, 0x00, 0x00,
0x00, 0x00, 0xF5, 0x08, 0x00, 0x00, 0x00, 0x00, 0xF5, 0x08, 0x00, 0x00, 0x00, 0x00, 0xF5, 0x08,
0x00, 0x00, 0x00, 0x00, 0xF5, 0xBD, 0xBB, 0xBB, 0x3B, 0x00, 0xF5, 0xFF, 0xFF, 0xFF, 0x4F, 0x00,
0xF5, 0x08, 0x00, 0x00, 0x00, 0x00, 0xF5, 0x08, 0x00, 0x00, 0x00, 0x00, 0xF5, 0x08, 0x00, 0x00,
0x00, 0x00, 0xF5, 0x08, 0x00, 0x00, 0x00, 0x00, 0xF5, 0x08, 0x00, 0x00, 0x00, 0x00, 0xF5, 0x08,
0x00, 0x00, 0x00, 0x00, 0xF5, 0x08, 0x00, 0x00, 0x00, 0x00,
// Unicode: [0x0048, H]
0xF6, 0x08, 0x00, 0x00, 0x10, 0xCF, 0xF6, 0x08, 0x00, 0x00, 0x10, 0xCF, 0xF6, 0x08, 0x00, 0x00,
0x10, 0xCF, 0xF6, 0x08, 0x00, 0x00, 0x10, 0xCF, 0xF6, 0x08, 0x00, 0x00, 0x10, 0xCF, 0xF6, 0x08,
0x00, 0x00, 0x10, 0xCF, 0xF6, 0xBD, 0xBB, 0xBB, 0xCB, 0xCF, 0xF6, 0xFF, 0xFF, 0xFF, 0xFF, 0xCF,
0xF6, 0x08, 0x00, 0x00, 0x10, 0xCF, 0xF6, 0x08, 0x00, 0x00, 0x10, 0xCF, 0xF6, 0x08, 0x00, 0x00,
0x10, 0xCF, 0xF6, 0x08, 0x00, 0x00, 0x10, 0xCF, 0xF6, 0x08, 0x00, 0x00, 0x10, 0xCF, 0xF6, 0x08,
0x00, 0x00, 0x10, 0xCF, 0xF6, 0x08, 0x00, 0x00, 0x10, 0xCF,
// Unicode: [0x0049, I]
0xF2, 0x0C, 0xF2, 0x0C, 0xF2, 0x0C, 0xF2, 0x0C, 0xF2, 0x0C, 0xF2, 0x0C, 0xF2, 0x0C, 0xF2, 0x0C,
0xF2, 0x0C, 0xF2, 0x0C, 0xF2, 0x0C, 0xF2, 0x0C, 0xF2, 0x0C, 0xF2, 0x0C, 0xF2, 0x0C,
// Unicode: [0x004B, K]
0xF8, 0x05, 0x00, 0x00, 0xD2, 0x8F, 0x00, 0xF8, 0x05, 0x00, 0x20, 0xFD, 0x08, 0x00, 0xF8, 0x05,
0x00, 0xD1, 0x8F, 0x00, 0x00, 0xF8, 0x05, 0x10, 0xFC, 0x09, 0x00, 0x00, 0xF8, 0x05, 0xC1, 0x9F,
0x00, 0x00, 0x00, 0xF8, 0x15, 0xFB, 0x09, 0x00, 0x00, 0x00, 0xF8, 0xB6, 0xFF, 0x05, 0x00, 0x00,
0x00, 0xF8, 0xFE, 0xFB, 0x2E, 0x00, 0x00, 0x00, 0xF8, 0x9F, 0x90, 0xBF, 0x00, 0x00, 0x00, 0xF8,
0x0A, 0x10, 0xFD, 0x07, 0x00, 0x00, 0xF8, 0x05, 0x00, 0xF3, 0x2F, 0x00, 0x00, 0xF8, 0x05, 0x00,
0x80, 0xCF, 0x00, 0x00, 0xF8, 0x05, 0x00, 0x10, 0xFD, 0x08, 0x00, 0xF8, 0x05, 0x00, 0x00, 0xF3,
0x4F, 0x00, 0xF8, 0x05, 0x00, 0x00, 0x80, 0xDF, 0x01,
// Unicode: [0x004C, L]
0xF8, 0x05, 0x00, 0x00, 0x00, 0xF8, 0x05, 0x00, 0x00, 0x00, 0xF8, 0x05, 0x00, 0x00, 0x00, 0xF8,
0x05, 0x00, 0x00, 0x00, 0xF8, 0x05, 0x00, 0x00, 0x00, 0xF8, 0x05, 0x00, 0x00, 0x00, 0xF8, 0x05,
0x00, 0x00, 0x00, 0xF8, 0x05, 0x00, 0x00, 0x00, 0xF8, 0x05, 0x00, 0x00, 0x00, 0xF8, 0x05, 0x00,
0x00, 0x00, 0xF8, 0x05, 0x00, 0x00, 0x00, 0xF8, 0x05, 0x00, 0x00, 0x00, 0xF8, 0x05, 0x00, 0x00,
0x00, 0xF8, 0xBD, 0xBB, 0xBB, 0x5B, 0xF8, 0xFF, 0xFF, 0xFF, 0x6F,
// Unicode: [0x004D, M]
0xF8, 0x8F, 0x00, 0x00, 0x00, 0x90, 0xFF, 0x02, 0xF8, 0xCF, 0x00, 0x00, 0x00, 0xD0, 0xFF, 0x02,
0xF8, 0xFE, 0x02, 0x00, 0x00, 0xF3, 0xFE, 0x02, 0xF8, 0xF9, 0x07, 0x00, 0x00, 0xE8, 0xFB, 0x02,
0xF8, 0xE5, 0x0C, 0x00, 0x00, 0xAD, 0xFA, 0x02, 0xF8, 0x95, 0x1F, 0x00, 0x30, 0x5F, 0xFA, 0x02,
0xF8, 0x55, 0x6F, 0x00, 0x80, 0x0E, 0xFA, 0x02, 0xF8, 0x05, 0xBE, 0x00, 0xD0, 0x0A, 0xFA, 0x02,
0xF8, 0x05, 0xFA, 0x01, 0xF3, 0x05, 0xFA, 0x02, 0xF8, 0x05, 0xF5, 0x05, 0xE8, 0x00, 0xFA, 0x02,
0xF8, 0x05, 0xE1, 0x0A, 0xAD, 0x00, 0xFA, 0x02, 0xF8, 0x05, 0xA0, 0x3E, 0x5F, 0x00, 0xFA, 0x02,
0xF8, 0x05, 0x50, 0xCF, 0x1E, 0x00, 0xFA, 0x02, 0xF8, 0x05, 0x10, 0xFF, 0x0A, 0x00, 0xFA, 0x02,
0xF8, 0x05, 0x00, 0xFB, 0x05, 0x00, 0xFA, 0x02,
// Unicode: [0x004E, N]
0xF7, 0x0C, 0x00, 0x00, 0x00, 0xCF, 0xF7, 0x6F, 0x00, 0x00, 0x00, 0xCF, 0xF7, 0xEF, 0x02, 0x00,
0x00, 0xCF, 0xF7, 0xFC, 0x0A, 0x00, 0x00, 0xCF, 0xF7, 0xC5, 0x5F, 0x00, 0x00, 0xCF, 0xF7, 0x35,
0xEF, 0x01, 0x00, 0xCF, 0xF7, 0x05, 0xF8, 0x09, 0x00, 0xCF, 0xF7, 0x05, 0xD1, 0x4F, 0x00, 0xCF,
0xF7, 0x05, 0x40, 0xDF, 0x00, 0xCF, 0xF7, 0x05, 0x00, 0xFA, 0x08, 0xCF, 0xF7, 0x05, 0x00, 0xE1,
0x3F, 0xCF, 0xF7, 0x05, 0x00, 0x60, 0xCF, 0xCF, 0xF7, 0x05, 0x00, 0x00, 0xFB, 0xCF, 0xF7, 0x05,
0x00, 0x00, 0xE2, 0xCF, 0xF7, 0x05, 0x00, 0x00, 0x70, 0xCF,
// Unicode: [0x004F, O]
0x00, 0x30, 0xD9, 0xEF, 0x6C, 0x01, 0x00, 0x00, 0xF7, 0xDF, 0xCB, 0xFE, 0x3D, 0x00, 0x70, 0xDF,
0x04, 0x00, 0x81, 0xEF, 0x02, 0xF2, 0x2E, 0x00, 0x00, 0x00, 0xF8, 0x0A, 0xF8, 0x07, 0x00, 0x00,
0x00, 0xD0, 0x2F, 0xFC, 0x02, 0x00, 0x00, 0x00, 0x80, 0x6F, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x60,
0x8F, 0xEF, 0x00, 0x00, 0x00, 0x00, 0x50, 0x9F, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x60, 0x8F, 0xFC,
0x02, 0x00, 0x00, 0x00, 0x80, 0x6F, 0xF8, 0x07, 0x00, 0x00, 0x00, 0xD0, 0x2F, 0xE2, 0x2E, 0x00,
0x00, 0x00, 0xF7, 0x0B, 0x60, 0xDF, 0x04, 0x00, 0x81, 0xEF, 0x02, 0x00, 0xF6, 0xDF, 0xBB, 0xFE,
0x3D, 0x00, 0x00, 0x20, 0xD9, 0xEE, 0x6C, 0x01, 0x00,
// Unicode: [0x0050, P]
0xF7, 0xFF, 0xFF, 0xEF, 0x5B, 0x00, 0xF7, 0xBD, 0xBB, 0xDB, 0xFF, 0x07, 0xF7, 0x07, 0x00, 0x00,
0xF4, 0x1F, 0xF7, 0x07, 0x00, 0x00, 0xA0, 0x6F, 0xF7, 0x07, 0x00, 0x00, 0x80, 0x7F, 0xF7, 0x07,
0x00, 0x00, 0xA0, 0x5F, 0xF7, 0x07, 0x00, 0x00, 0xF5, 0x1E, 0xF7, 0xBD, 0xBB, 0xDC, 0xFF, 0x06,
0xF7, 0xFF, 0xFF, 0xEF, 0x4A, 0x00, 0xF7, 0x07, 0x00, 0x00, 0x00, 0x00, 0xF7, 0x07, 0x00, 0x00,
0x00, 0x00, 0xF7, 0x07, 0x00, 0x00, 0x00, 0x00, 0xF7, 0x07, 0x00, 0x00, 0x00, 0x00, 0xF7, 0x07,
0x00, 0x00, 0x00, 0x00, 0xF7, 0x07, 0x00, 0x00, 0x00, 0x00,
// Unicode: [0x0052, R]
0xF6, 0xFF, 0xFF, 0xEF, 0xAD, 0x02, 0x00, 0xF6, 0xAC, 0xAA, 0xBA, 0xFE, 0x2E, 0x00, 0xF6, 0x07,
0x00, 0x00, 0xA0, 0xAF, 0x00, 0xF6, 0x07, 0x00, 0x00, 0x10, 0xEF, 0x00, 0xF6, 0x07, 0x00, 0x00,
0x00, 0xFF, 0x00, 0xF6, 0x07, 0x00, 0x00, 0x40, 0xCF, 0x00, 0xF6, 0x07, 0x00, 0x10, 0xD5, 0x6F,
0x00, 0xF6, 0xFF, 0xFF, 0xFF, 0xFF, 0x08, 0x00, 0xF6, 0xBD, 0xCB, 0xFF, 0x29, 0x00, 0x00, 0xF6,
0x07, 0x00, 0xD2, 0x5F, 0x00, 0x00, 0xF6, 0x07, 0x00, 0x30, 0xFF, 0x04, 0x00, 0xF6, 0x07, 0x00,
0x00, 0xF7, 0x1D, 0x00, 0xF6, 0x07, 0x00, 0x00, 0xC0, 0x9F, 0x00, 0xF6, 0x07, 0x00, 0x00, 0x30,
0xFF, 0x03, 0xF6, 0x07, 0x00, 0x00, 0x00, 0xF8, 0x0D,
// Unicode: [0x0054, T]
0xF8, 0xFF, 0xFF, 0xFF, 0xFF, 0xCF, 0xB6, 0xBB, 0xEB, 0xCF, 0xBB, 0x9B, 0x00, 0x00, 0xC0, 0x1F,
0x00, 0x00, 0x00, 0x00, 0xC0, 0x1F, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x1F, 0x00, 0x00, 0x00, 0x00,
0xC0, 0x1F, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x1F, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x1F, 0x00, 0x00,
0x00, 0x00, 0xC0, 0x1F, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x1F, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x1F,
0x00, 0x00, 0x00, 0x00, 0xC0, 0x1F, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x1F, 0x00, 0x00, 0x00, 0x00,
0xC0, 0x1F, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x1F, 0x00, 0x00,
// Unicode: [0x0055, U]
0xF6, 0x07, 0x00, 0x00, 0x10, 0xCF, 0xF6, 0x07, 0x00, 0x00, 0x10, 0xCF, 0xF6, 0x07, 0x00, 0x00,
0x10, 0xCF, 0xF6, 0x07, 0x00, 0x00, 0x10, 0xCF, 0xF6, 0x07, 0x00, 0x00, 0x10, 0xCF, 0xF6, 0x07,
0x00, 0x00, 0x10, 0xCF, 0xF6, 0x07, 0x00, 0x00, 0x10, 0xCF, 0xF6, 0x07, 0x00, 0x00, 0x10, 0xCF,
0xF6, 0x07, 0x00, 0x00, 0x10, 0xCF, 0xF5, 0x08, 0x00, 0x00, 0x20, 0xCF, 0xF4, 0x09, 0x00, 0x00,
0x40, 0xAF, 0xF1, 0x1D, 0x00, 0x00, 0x80, 0x7F, 0xB0, 0xAF, 0x01, 0x00, 0xE5, 0x2F, 0x20, 0xFD,
0xCF, 0xEC, 0xFF, 0x06, 0x00, 0x81, 0xEC, 0xDF, 0x3A, 0x00,
// Unicode: [0x0056, V]
0xFB, 0x05, 0x00, 0x00, 0x00, 0xE0, 0x1E, 0xF5, 0x0A, 0x00, 0x00, 0x00, 0xF4, 0x09, 0xE1, 0x1E,
0x00, 0x00, 0x00, 0xFA, 0x04, 0x90, 0x5F, 0x00, 0x00, 0x10, 0xDE, 0x00, 0x40, 0xAF, 0x00, 0x00,
0x50, 0x8F, 0x00, 0x00, 0xFD, 0x01, 0x00, 0xB0, 0x2F, 0x00, 0x00, 0xF8, 0x05, 0x00, 0xF1, 0x0B,
0x00, 0x00, 0xF2, 0x0B, 0x00, 0xF6, 0x06, 0x00, 0x00, 0xC0, 0x1F, 0x00, 0xEB, 0x01, 0x00, 0x00,
0x60, 0x6F, 0x20, 0xAF, 0x00, 0x00, 0x00, 0x10, 0xBF, 0x70, 0x4F, 0x00, 0x00, 0x00, 0x00, 0xFA,
0xC1, 0x0D, 0x00, 0x00, 0x00, 0x00, 0xF4, 0xF7, 0x08, 0x00, 0x00, 0x00, 0x00, 0xE0, 0xFE, 0x02,
0x00, 0x00, 0x00, 0x00, 0x80, 0xBF, 0x00, 0x00, 0x00,
// Unicode: [0x0058, X]
0xD1, 0x5F, 0x00, 0x00, 0x00, 0xF9, 0x07, 0x40, 0xEF, 0x01, 0x00, 0x50, 0xBF, 0x00, 0x00, 0xF8,
0x0A, 0x00, 0xE2, 0x2E, 0x00, 0x00, 0xD0, 0x5F, 0x00, 0xFB, 0x05, 0x00, 0x00, 0x30, 0xEF, 0x71,
0x9F, 0x00, 0x00, 0x00, 0x00, 0xF8, 0xFB, 0x1D, 0x00, 0x00, 0x00, 0x00, 0xC0, 0xFF, 0x03, 0x00,
0x00, 0x00, 0x00, 0x90, 0xEF, 0x02, 0x00, 0x00, 0x00, 0x00, 0xF5, 0xFE, 0x0C, 0x00, 0x00, 0x00,
0x10, 0xFE, 0xC2, 0x7F, 0x00, 0x00, 0x00, 0xB0, 0x7F, 0x30, 0xFF, 0x03, 0x00, 0x00, 0xF6, 0x0B,
0x00, 0xF7, 0x0C, 0x00, 0x30, 0xEF, 0x02, 0x00, 0xC0, 0x8F, 0x00, 0xC0, 0x6F, 0x00, 0x00, 0x20,
0xFF, 0x03, 0xF8, 0x0B, 0x00, 0x00, 0x00, 0xF7, 0x0D,
// Unicode: [0x0061, a]
0x00, 0xA3, 0xFD, 0xBE, 0x05, 0x00, 0x30, 0xEE, 0x8A, 0xFA, 0x4F, 0x00, 0xB0, 0x3F, 0x00, 0x50,
0x9F, 0x00, 0x50, 0x06, 0x00, 0x10, 0xBF, 0x00, 0x00, 0x10, 0x64, 0xC8, 0xBF, 0x00, 0x20, 0xFA,
0xFF, 0xAD, 0xBF, 0x00, 0xD0, 0x9F, 0x14, 0x10, 0xBF, 0x00, 0xF3, 0x0B, 0x00, 0x40, 0xBF, 0x00,
0xF3, 0x0B, 0x00, 0xC1, 0xBF, 0x00, 0xC0, 0xBF, 0x87, 0xED, 0xCE, 0x00, 0x20, 0xD9, 0xDE, 0x2A,
0xFA, 0x02,
// Unicode: [0x0078, x]
0xF4, 0x1D, 0x00, 0xC0, 0x4F, 0x90, 0x8F, 0x00, 0xF8, 0x08, 0x10, 0xFD, 0x33, 0xCF, 0x00, 0x00,
0xF4, 0xDB, 0x3F, 0x00, 0x00, 0x90, 0xFF, 0x07, 0x00, 0x00, 0x40, 0xFF, 0x04, 0x00, 0x00, 0xD0,
0xEE, 0x0D, 0x00, 0x00, 0xF8, 0x77, 0x8F, 0x00, 0x30, 0xCF, 0x00, 0xFD, 0x03, 0xD0, 0x3F, 0x00,
0xF4, 0x0D, 0xF8, 0x09, 0x00, 0x90, 0x8F,
// Unicode: [0x007A, z]
0xF3, 0xFF, 0xFF, 0xFF, 0x4F, 0x71, 0x77, 0x77, 0xF8, 0x1E, 0x00, 0x00, 0x10, 0xFC, 0x04, 0x00,
0x00, 0xA0, 0x6F, 0x00, 0x00, 0x00, 0xF8, 0x0A, 0x00, 0x00, 0x50, 0xCF, 0x00, 0x00, 0x00, 0xE3,
0x2E, 0x00, 0x00, 0x10, 0xFD, 0x04, 0x00, 0x00, 0xB0, 0x6F, 0x00, 0x00, 0x00, 0xF7, 0x8D, 0x88,
0x88, 0x58, 0xF9, 0xFF, 0xFF, 0xFF, 0x9F
};
@@ -0,0 +1,471 @@
#include <touchgfx/hal/Types.hpp>
FONT_GLYPH_LOCATION_FLASH_PRAGMA
KEEP extern const uint8_t unicodes_arial_40_4bpp_0[] FONT_GLYPH_LOCATION_FLASH_ATTRIBUTE = {
// Unicode: [0x002B, plus]
0x00, 0x00, 0x00, 0x00, 0xBB, 0x4B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x5F,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x5F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0xFF, 0x5F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x5F, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x5F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xFF, 0x5F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x5F, 0x00, 0x00, 0x00, 0x00,
0xFC, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x2F, 0xFC, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0x2F, 0xFC, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x2F, 0x43, 0x44,
0x44, 0x44, 0xFF, 0x7F, 0x44, 0x44, 0x44, 0x04, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x5F, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x5F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xFF, 0x5F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x5F, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0xFF, 0x5F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x5F,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x5F, 0x00, 0x00, 0x00, 0x00,
// Unicode: [0x002D, hyphen]
0x86, 0x88, 0x88, 0x88, 0x88, 0x18, 0xFB, 0xFF, 0xFF, 0xFF, 0xFF, 0x1F, 0xFB, 0xFF, 0xFF, 0xFF,
0xFF, 0x1F, 0xFB, 0xFF, 0xFF, 0xFF, 0xFF, 0x1F,
// Unicode: [0x0030, zero]
0x00, 0x00, 0x00, 0xA5, 0xED, 0xDE, 0x4A, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC2, 0xFF, 0xFF, 0xFF,
0xFF, 0x2C, 0x00, 0x00, 0x00, 0x30, 0xFE, 0xFF, 0xEF, 0xFE, 0xFF, 0xEF, 0x02, 0x00, 0x00, 0xD1,
0xFF, 0x8F, 0x02, 0x20, 0xFA, 0xFF, 0x1D, 0x00, 0x00, 0xF8, 0xFF, 0x06, 0x00, 0x00, 0x70, 0xFF,
0x7F, 0x00, 0x10, 0xFE, 0xAF, 0x00, 0x00, 0x00, 0x00, 0xFA, 0xEF, 0x01, 0x60, 0xFF, 0x4F, 0x00,
0x00, 0x00, 0x00, 0xF3, 0xFF, 0x05, 0xA0, 0xFF, 0x0E, 0x00, 0x00, 0x00, 0x00, 0xE0, 0xFF, 0x0A,
0xD0, 0xFF, 0x0B, 0x00, 0x00, 0x00, 0x00, 0xA0, 0xFF, 0x0D, 0xF1, 0xFF, 0x08, 0x00, 0x00, 0x00,
0x00, 0x80, 0xFF, 0x1F, 0xF3, 0xFF, 0x07, 0x00, 0x00, 0x00, 0x00, 0x60, 0xFF, 0x3F, 0xF4, 0xFF,
0x05, 0x00, 0x00, 0x00, 0x00, 0x50, 0xFF, 0x4F, 0xF5, 0xFF, 0x05, 0x00, 0x00, 0x00, 0x00, 0x50,
0xFF, 0x4F, 0xF5, 0xFF, 0x04, 0x00, 0x00, 0x00, 0x00, 0x40, 0xFF, 0x5F, 0xF5, 0xFF, 0x04, 0x00,
0x00, 0x00, 0x00, 0x40, 0xFF, 0x5F, 0xF5, 0xFF, 0x05, 0x00, 0x00, 0x00, 0x00, 0x50, 0xFF, 0x4F,
0xF4, 0xFF, 0x05, 0x00, 0x00, 0x00, 0x00, 0x50, 0xFF, 0x4F, 0xF3, 0xFF, 0x06, 0x00, 0x00, 0x00,
0x00, 0x60, 0xFF, 0x2F, 0xF1, 0xFF, 0x08, 0x00, 0x00, 0x00, 0x00, 0x80, 0xFF, 0x1F, 0xD0, 0xFF,
0x0A, 0x00, 0x00, 0x00, 0x00, 0xA0, 0xFF, 0x0D, 0xA0, 0xFF, 0x0D, 0x00, 0x00, 0x00, 0x00, 0xE0,
0xFF, 0x0A, 0x60, 0xFF, 0x3F, 0x00, 0x00, 0x00, 0x00, 0xF3, 0xFF, 0x06, 0x10, 0xFE, 0xAF, 0x00,
0x00, 0x00, 0x00, 0xFA, 0xEF, 0x01, 0x00, 0xF9, 0xFF, 0x07, 0x00, 0x00, 0x70, 0xFF, 0x8F, 0x00,
0x00, 0xD1, 0xFF, 0x9F, 0x02, 0x20, 0xF9, 0xFF, 0x1D, 0x00, 0x00, 0x30, 0xFE, 0xFF, 0xEF, 0xFE,
0xFF, 0xEF, 0x03, 0x00, 0x00, 0x00, 0xC3, 0xFF, 0xFF, 0xFF, 0xFF, 0x3C, 0x00, 0x00, 0x00, 0x00,
0x00, 0xA5, 0xED, 0xDF, 0x5A, 0x00, 0x00, 0x00,
// Unicode: [0x0031, one]
0x00, 0x00, 0x00, 0x00, 0xFA, 0x0E, 0x00, 0x00, 0x00, 0x50, 0xFF, 0x0E, 0x00, 0x00, 0x00, 0xF4,
0xFF, 0x0E, 0x00, 0x00, 0x40, 0xFE, 0xFF, 0x0E, 0x00, 0x00, 0xF8, 0xFF, 0xFF, 0x0E, 0x00, 0xB3,
0xFF, 0xFF, 0xFF, 0x0E, 0x92, 0xFF, 0xFF, 0xBD, 0xFF, 0x0E, 0xFA, 0xFF, 0xAF, 0x91, 0xFF, 0x0E,
0xFA, 0xDF, 0x04, 0x90, 0xFF, 0x0E, 0xDA, 0x06, 0x00, 0x90, 0xFF, 0x0E, 0x02, 0x00, 0x00, 0x90,
0xFF, 0x0E, 0x00, 0x00, 0x00, 0x90, 0xFF, 0x0E, 0x00, 0x00, 0x00, 0x90, 0xFF, 0x0E, 0x00, 0x00,
0x00, 0x90, 0xFF, 0x0E, 0x00, 0x00, 0x00, 0x90, 0xFF, 0x0E, 0x00, 0x00, 0x00, 0x90, 0xFF, 0x0E,
0x00, 0x00, 0x00, 0x90, 0xFF, 0x0E, 0x00, 0x00, 0x00, 0x90, 0xFF, 0x0E, 0x00, 0x00, 0x00, 0x90,
0xFF, 0x0E, 0x00, 0x00, 0x00, 0x90, 0xFF, 0x0E, 0x00, 0x00, 0x00, 0x90, 0xFF, 0x0E, 0x00, 0x00,
0x00, 0x90, 0xFF, 0x0E, 0x00, 0x00, 0x00, 0x90, 0xFF, 0x0E, 0x00, 0x00, 0x00, 0x90, 0xFF, 0x0E,
0x00, 0x00, 0x00, 0x90, 0xFF, 0x0E, 0x00, 0x00, 0x00, 0x90, 0xFF, 0x0E, 0x00, 0x00, 0x00, 0x90,
0xFF, 0x0E, 0x00, 0x00, 0x00, 0x90, 0xFF, 0x0E,
// Unicode: [0x0032, two]
0x00, 0x00, 0x10, 0xB7, 0xED, 0xEF, 0x8C, 0x02, 0x00, 0x00, 0x00, 0x00, 0xF8, 0xFF, 0xFF, 0xFF,
0xFF, 0xAF, 0x01, 0x00, 0x00, 0xB0, 0xFF, 0xFF, 0xEF, 0xFE, 0xFF, 0xFF, 0x1D, 0x00, 0x00, 0xF9,
0xFF, 0x6E, 0x01, 0x10, 0xD5, 0xFF, 0xCF, 0x00, 0x30, 0xFF, 0xDF, 0x01, 0x00, 0x00, 0x10, 0xFC,
0xFF, 0x05, 0x80, 0xFF, 0x3F, 0x00, 0x00, 0x00, 0x00, 0xF2, 0xFF, 0x0B, 0xD0, 0xFF, 0x0C, 0x00,
0x00, 0x00, 0x00, 0xA0, 0xFF, 0x0F, 0xF1, 0xFF, 0x09, 0x00, 0x00, 0x00, 0x00, 0x80, 0xFF, 0x1F,
0x20, 0x54, 0x03, 0x00, 0x00, 0x00, 0x00, 0x90, 0xFF, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0xD0, 0xFF, 0x0D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF5, 0xFF, 0x08, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x10, 0xFD, 0xFF, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xB0, 0xFF,
0x8F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFA, 0xFF, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0xA0, 0xFF, 0xDF, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0xFB, 0xFF, 0x2D, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0xD2, 0xFF, 0xCF, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0xFE, 0xFF,
0x1B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF7, 0xFF, 0x9F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x90, 0xFF, 0xFF, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFA, 0xFF, 0x4E, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0xA0, 0xFF, 0xDF, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF7, 0xFF, 0x1C,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0xFF, 0xDF, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xC0, 0xFF, 0x8F, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x15, 0xF4, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0x2F, 0xF9, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x2F, 0xFB, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x2F,
// Unicode: [0x003F, question]
0x00, 0x00, 0x10, 0xB7, 0xED, 0xDF, 0x8B, 0x02, 0x00, 0x00, 0x00, 0x00, 0xF8, 0xFF, 0xFF, 0xFF,
0xFF, 0xAF, 0x01, 0x00, 0x00, 0xB0, 0xFF, 0xFF, 0xEF, 0xFE, 0xFF, 0xFF, 0x2D, 0x00, 0x00, 0xF9,
0xFF, 0x7E, 0x01, 0x10, 0xD6, 0xFF, 0xDF, 0x01, 0x30, 0xFF, 0xEF, 0x03, 0x00, 0x00, 0x10, 0xFC,
0xFF, 0x08, 0x90, 0xFF, 0x5F, 0x00, 0x00, 0x00, 0x00, 0xE2, 0xFF, 0x0E, 0xE0, 0xFF, 0x0D, 0x00,
0x00, 0x00, 0x00, 0x90, 0xFF, 0x2F, 0xF2, 0xFF, 0x09, 0x00, 0x00, 0x00, 0x00, 0x60, 0xFF, 0x3F,
0x10, 0x43, 0x02, 0x00, 0x00, 0x00, 0x00, 0x70, 0xFF, 0x2F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0xC0, 0xFF, 0x0D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF7, 0xFF, 0x07, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x70, 0xFF, 0xCF, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF9, 0xFF,
0x2D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xB1, 0xFF, 0xDF, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0xFB, 0xFF, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xFF, 0xBF, 0x01, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0xF2, 0xFF, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF7, 0xFF,
0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFA, 0xDF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0xFB, 0xAF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0x9F, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x21, 0x12, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00,
// Unicode: [0x0041, A]
0x00, 0x00, 0x00, 0x00, 0x00, 0xF4, 0xFF, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0xFA, 0xFF, 0xAF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x10, 0xFF, 0xFF, 0xFF, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0xFF,
0xEB, 0xFF, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0xFF, 0x97, 0xFF,
0x0D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF3, 0xFF, 0x33, 0xFF, 0x5F, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF9, 0xDF, 0x00, 0xFD, 0xBF, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0xFE, 0x8F, 0x00, 0xF7, 0xFF, 0x02, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x60, 0xFF, 0x2F, 0x00, 0xF1, 0xFF, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0xC0, 0xFF, 0x0B, 0x00, 0xA0, 0xFF, 0x1E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF3,
0xFF, 0x06, 0x00, 0x40, 0xFF, 0x6F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF9, 0xEF, 0x01,
0x00, 0x00, 0xFD, 0xCF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0xFE, 0x9F, 0x00, 0x00, 0x00,
0xF7, 0xFF, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0xFF, 0x3F, 0x00, 0x00, 0x00, 0xF2, 0xFF,
0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0xB0, 0xFF, 0x0C, 0x00, 0x00, 0x00, 0xA0, 0xFF, 0x2F, 0x00,
0x00, 0x00, 0x00, 0x00, 0xF2, 0xFF, 0x06, 0x00, 0x00, 0x00, 0x40, 0xFF, 0x8F, 0x00, 0x00, 0x00,
0x00, 0x00, 0xF8, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xEF, 0x00, 0x00, 0x00, 0x00, 0x00,
0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x05, 0x00, 0x00, 0x00, 0x50, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x0B, 0x00, 0x00, 0x00, 0xB0, 0xFF, 0x1E, 0x11, 0x11,
0x11, 0x11, 0x11, 0xB1, 0xFF, 0x3F, 0x00, 0x00, 0x00, 0xF2, 0xFF, 0x09, 0x00, 0x00, 0x00, 0x00,
0x00, 0x60, 0xFF, 0x9F, 0x00, 0x00, 0x00, 0xF8, 0xFF, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10,
0xFE, 0xEF, 0x01, 0x00, 0x00, 0xFD, 0xDF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFA, 0xFF,
0x06, 0x00, 0x40, 0xFF, 0x8F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF4, 0xFF, 0x0D, 0x00,
0xA0, 0xFF, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xD0, 0xFF, 0x4F, 0x00, 0xF1, 0xFF,
0x0D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xFF, 0xAF, 0x00, 0xF7, 0xFF, 0x07, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0xFF, 0xFF, 0x02, 0xFD, 0xFF, 0x02, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0xFF, 0x08,
// Unicode: [0x0042, B]
0xF1, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xEF, 0x9C, 0x04, 0x00, 0x00, 0x00, 0xF1, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xCF, 0x03, 0x00, 0x00, 0xF1, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0x4F, 0x00, 0x00, 0xF1, 0xFF, 0x5C, 0x55, 0x55, 0x55, 0x76, 0xFA, 0xFF, 0xEF, 0x02, 0x00,
0xF1, 0xFF, 0x0B, 0x00, 0x00, 0x00, 0x00, 0x20, 0xFC, 0xFF, 0x09, 0x00, 0xF1, 0xFF, 0x0B, 0x00,
0x00, 0x00, 0x00, 0x00, 0xF2, 0xFF, 0x0E, 0x00, 0xF1, 0xFF, 0x0B, 0x00, 0x00, 0x00, 0x00, 0x00,
0xB0, 0xFF, 0x2F, 0x00, 0xF1, 0xFF, 0x0B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x90, 0xFF, 0x2F, 0x00,
0xF1, 0xFF, 0x0B, 0x00, 0x00, 0x00, 0x00, 0x00, 0xA0, 0xFF, 0x0E, 0x00, 0xF1, 0xFF, 0x0B, 0x00,
0x00, 0x00, 0x00, 0x00, 0xE1, 0xFF, 0x09, 0x00, 0xF1, 0xFF, 0x0B, 0x00, 0x00, 0x00, 0x00, 0x20,
0xFC, 0xFF, 0x02, 0x00, 0xF1, 0xFF, 0x5C, 0x55, 0x55, 0x55, 0x76, 0xFA, 0xFF, 0x5F, 0x00, 0x00,
0xF1, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xCF, 0x03, 0x00, 0x00, 0xF1, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xDF, 0x17, 0x00, 0x00, 0xF1, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xDF, 0x03, 0x00, 0xF1, 0xFF, 0x0B, 0x00, 0x00, 0x00, 0x10, 0x74, 0xFE, 0xFF, 0x2E, 0x00,
0xF1, 0xFF, 0x0B, 0x00, 0x00, 0x00, 0x00, 0x00, 0xB1, 0xFF, 0xBF, 0x00, 0xF1, 0xFF, 0x0B, 0x00,
0x00, 0x00, 0x00, 0x00, 0x10, 0xFE, 0xFF, 0x02, 0xF1, 0xFF, 0x0B, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0xF9, 0xFF, 0x06, 0xF1, 0xFF, 0x0B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF6, 0xFF, 0x08,
0xF1, 0xFF, 0x0B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF7, 0xFF, 0x07, 0xF1, 0xFF, 0x0B, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0xFA, 0xFF, 0x05, 0xF1, 0xFF, 0x0B, 0x00, 0x00, 0x00, 0x00, 0x00,
0x30, 0xFF, 0xFF, 0x01, 0xF1, 0xFF, 0x0B, 0x00, 0x00, 0x00, 0x00, 0x00, 0xD3, 0xFF, 0xAF, 0x00,
0xF1, 0xFF, 0x5C, 0x55, 0x55, 0x55, 0x65, 0xC8, 0xFF, 0xFF, 0x2E, 0x00, 0xF1, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x04, 0x00, 0xF1, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0x3C, 0x00, 0x00, 0xF1, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xEF, 0xAD, 0x38, 0x00, 0x00, 0x00,
// Unicode: [0x0043, C]
0x00, 0x00, 0x00, 0x00, 0x73, 0xDA, 0xFE, 0xDE, 0x7A, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xC5, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x9F, 0x01, 0x00, 0x00, 0x00, 0x00, 0xB1, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0x4E, 0x00, 0x00, 0x00, 0x20, 0xFD, 0xFF, 0xDF, 0x69, 0x44, 0x74, 0xFB,
0xFF, 0xFF, 0x05, 0x00, 0x00, 0xD1, 0xFF, 0xEF, 0x06, 0x00, 0x00, 0x00, 0x30, 0xFC, 0xFF, 0x2E,
0x00, 0x00, 0xFB, 0xFF, 0x2C, 0x00, 0x00, 0x00, 0x00, 0x00, 0xB0, 0xFF, 0xBF, 0x00, 0x50, 0xFF,
0xEF, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0xFE, 0xFF, 0x04, 0xC0, 0xFF, 0x5F, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0xF7, 0xFF, 0x09, 0xF3, 0xFF, 0x0D, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0xA1, 0x47, 0x01, 0xF7, 0xFF, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0xFA, 0xFF, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFD,
0xFF, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0xFF, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xEF, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xEF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0xFE, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xFC, 0xFF, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF9, 0xFF, 0x04,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF6, 0xFF, 0x08, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0xA0, 0x8C, 0x15, 0xF1, 0xFF, 0x0D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0xE0, 0xFF, 0x2F, 0xB0, 0xFF, 0x5F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF6, 0xFF,
0x0B, 0x40, 0xFF, 0xEF, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0xFE, 0xFF, 0x05, 0x00, 0xFB,
0xFF, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC1, 0xFF, 0xCF, 0x00, 0x00, 0xE2, 0xFF, 0xEF, 0x05,
0x00, 0x00, 0x00, 0x40, 0xFD, 0xFF, 0x2E, 0x00, 0x00, 0x30, 0xFE, 0xFF, 0xDF, 0x58, 0x34, 0x75,
0xFC, 0xFF, 0xFF, 0x05, 0x00, 0x00, 0x00, 0xD3, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x4E,
0x00, 0x00, 0x00, 0x00, 0x10, 0xE8, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x9F, 0x01, 0x00, 0x00, 0x00,
0x00, 0x00, 0x10, 0x95, 0xEC, 0xFE, 0xDE, 0x6A, 0x01, 0x00, 0x00, 0x00,
// Unicode: [0x0044, D]
0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xCE, 0x7A, 0x02, 0x00, 0x00, 0x00, 0xFE, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xAF, 0x02, 0x00, 0x00, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0x5E, 0x00, 0x00, 0xFE, 0xEF, 0x55, 0x55, 0x55, 0x65, 0x97, 0xFD, 0xFF, 0xFF, 0x05, 0x00,
0xFE, 0xDF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0xFD, 0xFF, 0x3F, 0x00, 0xFE, 0xDF, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0xC1, 0xFF, 0xCF, 0x00, 0xFE, 0xDF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x20, 0xFE, 0xFF, 0x05, 0xFE, 0xDF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF6, 0xFF, 0x0B,
0xFE, 0xDF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0xFF, 0x1F, 0xFE, 0xDF, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0xA0, 0xFF, 0x5F, 0xFE, 0xDF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x60, 0xFF, 0x8F, 0xFE, 0xDF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0xFF, 0x9F,
0xFE, 0xDF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0xFF, 0xBF, 0xFE, 0xDF, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0xFF, 0xBF, 0xFE, 0xDF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x30, 0xFF, 0xBF, 0xFE, 0xDF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0xFF, 0xAF,
0xFE, 0xDF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, 0xFF, 0x9F, 0xFE, 0xDF, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xFF, 0x7F, 0xFE, 0xDF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0xB0, 0xFF, 0x3F, 0xFE, 0xDF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF1, 0xFF, 0x0E,
0xFE, 0xDF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF8, 0xFF, 0x09, 0xFE, 0xDF, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x20, 0xFE, 0xFF, 0x03, 0xFE, 0xDF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xC1, 0xFF, 0xAF, 0x00, 0xFE, 0xDF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, 0xFD, 0xFF, 0x2E, 0x00,
0xFE, 0xEF, 0x55, 0x55, 0x55, 0x65, 0xA7, 0xFD, 0xFF, 0xFF, 0x04, 0x00, 0xFE, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x4E, 0x00, 0x00, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0x9F, 0x02, 0x00, 0x00, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0xEF, 0xCE, 0x69, 0x01, 0x00, 0x00, 0x00,
// Unicode: [0x0045, E]
0xFC, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x0D, 0xFC, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x0D, 0xFC, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0x0D, 0xFC, 0xFF, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x05, 0xFC, 0xEF, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0xEF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0xFC, 0xEF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0xEF, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0xEF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0xFC, 0xEF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0xEF,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0xFF, 0x55, 0x55, 0x55, 0x55, 0x55,
0x55, 0x55, 0x45, 0x00, 0xFC, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xCF, 0x00, 0xFC,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xCF, 0x00, 0xFC, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xCF, 0x00, 0xFC, 0xEF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xFC, 0xEF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0xEF, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0xEF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0xFC, 0xEF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0xEF, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0xEF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0xFC, 0xEF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0xEF, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0xFF, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
0x55, 0x55, 0x35, 0xFC, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x8F, 0xFC, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x8F, 0xFC, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0x8F,
// Unicode: [0x0048, H]
0xFC, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF2, 0xFF, 0x0A, 0xFC, 0xFF, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0xF2, 0xFF, 0x0A, 0xFC, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0xF2, 0xFF, 0x0A, 0xFC, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF2, 0xFF, 0x0A,
0xFC, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF2, 0xFF, 0x0A, 0xFC, 0xFF, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0xF2, 0xFF, 0x0A, 0xFC, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0xF2, 0xFF, 0x0A, 0xFC, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF2, 0xFF, 0x0A,
0xFC, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF2, 0xFF, 0x0A, 0xFC, 0xFF, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0xF2, 0xFF, 0x0A, 0xFC, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0xF2, 0xFF, 0x0A, 0xFC, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x0A,
0xFC, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x0A, 0xFC, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x0A, 0xFC, 0xFF, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
0x55, 0xF6, 0xFF, 0x0A, 0xFC, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF2, 0xFF, 0x0A,
0xFC, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF2, 0xFF, 0x0A, 0xFC, 0xFF, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0xF2, 0xFF, 0x0A, 0xFC, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0xF2, 0xFF, 0x0A, 0xFC, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF2, 0xFF, 0x0A,
0xFC, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF2, 0xFF, 0x0A, 0xFC, 0xFF, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0xF2, 0xFF, 0x0A, 0xFC, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0xF2, 0xFF, 0x0A, 0xFC, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF2, 0xFF, 0x0A,
0xFC, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF2, 0xFF, 0x0A, 0xFC, 0xFF, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0xF2, 0xFF, 0x0A, 0xFC, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0xF2, 0xFF, 0x0A, 0xFC, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF2, 0xFF, 0x0A,
// Unicode: [0x0049, I]
0xF4, 0xFF, 0x08, 0xF4, 0xFF, 0x08, 0xF4, 0xFF, 0x08, 0xF4, 0xFF, 0x08, 0xF4, 0xFF, 0x08, 0xF4,
0xFF, 0x08, 0xF4, 0xFF, 0x08, 0xF4, 0xFF, 0x08, 0xF4, 0xFF, 0x08, 0xF4, 0xFF, 0x08, 0xF4, 0xFF,
0x08, 0xF4, 0xFF, 0x08, 0xF4, 0xFF, 0x08, 0xF4, 0xFF, 0x08, 0xF4, 0xFF, 0x08, 0xF4, 0xFF, 0x08,
0xF4, 0xFF, 0x08, 0xF4, 0xFF, 0x08, 0xF4, 0xFF, 0x08, 0xF4, 0xFF, 0x08, 0xF4, 0xFF, 0x08, 0xF4,
0xFF, 0x08, 0xF4, 0xFF, 0x08, 0xF4, 0xFF, 0x08, 0xF4, 0xFF, 0x08, 0xF4, 0xFF, 0x08, 0xF4, 0xFF,
0x08, 0xF4, 0xFF, 0x08,
// Unicode: [0x004C, L]
0xF1, 0xFF, 0x0B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF1, 0xFF, 0x0B, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0xF1, 0xFF, 0x0B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF1, 0xFF,
0x0B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF1, 0xFF, 0x0B, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0xF1, 0xFF, 0x0B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF1, 0xFF, 0x0B, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF1, 0xFF, 0x0B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xF1, 0xFF, 0x0B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF1, 0xFF, 0x0B, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0xF1, 0xFF, 0x0B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF1, 0xFF,
0x0B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF1, 0xFF, 0x0B, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0xF1, 0xFF, 0x0B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF1, 0xFF, 0x0B, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF1, 0xFF, 0x0B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xF1, 0xFF, 0x0B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF1, 0xFF, 0x0B, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0xF1, 0xFF, 0x0B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF1, 0xFF,
0x0B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF1, 0xFF, 0x0B, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0xF1, 0xFF, 0x0B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF1, 0xFF, 0x0B, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF1, 0xFF, 0x0B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xF1, 0xFF, 0x5C, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x04, 0xF1, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0x0C, 0xF1, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x0C, 0xF1, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x0C,
// Unicode: [0x004E, N]
0xFE, 0xFF, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0xFF, 0x09, 0xFE, 0xFF, 0x1D, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0xFF, 0x09, 0xFE, 0xFF, 0xAF, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0xF0, 0xFF, 0x09, 0xFE, 0xFF, 0xFF, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0xFF, 0x09,
0xFE, 0xFF, 0xFF, 0x1E, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0xFF, 0x09, 0xFE, 0xFF, 0xFF, 0xAF,
0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0xFF, 0x09, 0xFE, 0xBF, 0xFE, 0xFF, 0x06, 0x00, 0x00, 0x00,
0x00, 0xF0, 0xFF, 0x09, 0xFE, 0xAF, 0xF4, 0xFF, 0x2E, 0x00, 0x00, 0x00, 0x00, 0xF0, 0xFF, 0x09,
0xFE, 0xAF, 0x90, 0xFF, 0xBF, 0x00, 0x00, 0x00, 0x00, 0xF0, 0xFF, 0x09, 0xFE, 0xAF, 0x10, 0xFD,
0xFF, 0x06, 0x00, 0x00, 0x00, 0xF0, 0xFF, 0x09, 0xFE, 0xAF, 0x00, 0xF4, 0xFF, 0x2E, 0x00, 0x00,
0x00, 0xF0, 0xFF, 0x09, 0xFE, 0xAF, 0x00, 0x80, 0xFF, 0xCF, 0x00, 0x00, 0x00, 0xF0, 0xFF, 0x09,
0xFE, 0xAF, 0x00, 0x00, 0xFD, 0xFF, 0x07, 0x00, 0x00, 0xF0, 0xFF, 0x09, 0xFE, 0xAF, 0x00, 0x00,
0xF3, 0xFF, 0x3F, 0x00, 0x00, 0xF0, 0xFF, 0x09, 0xFE, 0xAF, 0x00, 0x00, 0x80, 0xFF, 0xCF, 0x00,
0x00, 0xF0, 0xFF, 0x09, 0xFE, 0xAF, 0x00, 0x00, 0x00, 0xFC, 0xFF, 0x08, 0x00, 0xF0, 0xFF, 0x09,
0xFE, 0xAF, 0x00, 0x00, 0x00, 0xF3, 0xFF, 0x3F, 0x00, 0xF0, 0xFF, 0x09, 0xFE, 0xAF, 0x00, 0x00,
0x00, 0x70, 0xFF, 0xDF, 0x01, 0xF0, 0xFF, 0x09, 0xFE, 0xAF, 0x00, 0x00, 0x00, 0x00, 0xFB, 0xFF,
0x09, 0xF0, 0xFF, 0x09, 0xFE, 0xAF, 0x00, 0x00, 0x00, 0x00, 0xE2, 0xFF, 0x4F, 0xF0, 0xFF, 0x09,
0xFE, 0xAF, 0x00, 0x00, 0x00, 0x00, 0x60, 0xFF, 0xDF, 0xF1, 0xFF, 0x09, 0xFE, 0xAF, 0x00, 0x00,
0x00, 0x00, 0x00, 0xFB, 0xFF, 0xFA, 0xFF, 0x09, 0xFE, 0xAF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE2,
0xFF, 0xFF, 0xFF, 0x09, 0xFE, 0xAF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, 0xFF, 0xFF, 0xFF, 0x09,
0xFE, 0xAF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFA, 0xFF, 0xFF, 0x09, 0xFE, 0xAF, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0xE1, 0xFF, 0xFF, 0x09, 0xFE, 0xAF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x50, 0xFF, 0xFF, 0x09, 0xFE, 0xAF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF9, 0xFF, 0x09,
// Unicode: [0x004F, O]
0x00, 0x00, 0x00, 0x00, 0x20, 0xA6, 0xEC, 0xEF, 0xBD, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x30, 0xFB, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x5C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0xF9, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x2B, 0x00, 0x00, 0x00, 0x00, 0x00, 0xB1,
0xFF, 0xFF, 0xBF, 0x57, 0x44, 0x96, 0xFE, 0xFF, 0xEF, 0x03, 0x00, 0x00, 0x00, 0x00, 0xFB, 0xFF,
0x9F, 0x02, 0x00, 0x00, 0x00, 0x71, 0xFE, 0xFF, 0x2E, 0x00, 0x00, 0x00, 0x90, 0xFF, 0xEF, 0x04,
0x00, 0x00, 0x00, 0x00, 0x00, 0xD2, 0xFF, 0xCF, 0x00, 0x00, 0x00, 0xF3, 0xFF, 0x3E, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x10, 0xFD, 0xFF, 0x07, 0x00, 0x00, 0xFA, 0xFF, 0x06, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0xF4, 0xFF, 0x0E, 0x00, 0x20, 0xFF, 0xDF, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0xB0, 0xFF, 0x6F, 0x00, 0x60, 0xFF, 0x8F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x50, 0xFF, 0xAF, 0x00, 0xA0, 0xFF, 0x4F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x10, 0xFF, 0xEF, 0x00, 0xD0, 0xFF, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0xFC, 0xFF, 0x02, 0xE0, 0xFF, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xFA, 0xFF, 0x03, 0xF0, 0xFF, 0x0E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF9,
0xFF, 0x04, 0xF1, 0xFF, 0x0D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF9, 0xFF,
0x04, 0xF0, 0xFF, 0x0E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFB, 0xFF, 0x03,
0xD0, 0xFF, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0xFF, 0x02, 0xB0,
0xFF, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0xFF, 0xEF, 0x00, 0x70, 0xFF,
0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0xFF, 0xBF, 0x00, 0x20, 0xFF, 0xDF,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xB0, 0xFF, 0x6F, 0x00, 0x00, 0xFB, 0xFF, 0x07,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF3, 0xFF, 0x1E, 0x00, 0x00, 0xF3, 0xFF, 0x3F, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0xFD, 0xFF, 0x07, 0x00, 0x00, 0x90, 0xFF, 0xEF, 0x04, 0x00,
0x00, 0x00, 0x00, 0x00, 0xC2, 0xFF, 0xDF, 0x00, 0x00, 0x00, 0x00, 0xFC, 0xFF, 0x8F, 0x01, 0x00,
0x00, 0x00, 0x60, 0xFE, 0xFF, 0x2E, 0x00, 0x00, 0x00, 0x00, 0xB1, 0xFF, 0xFF, 0xAE, 0x46, 0x43,
0x96, 0xFE, 0xFF, 0xEF, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF8, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0x2B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0xFB, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0x5C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0xA7, 0xED, 0xEF, 0xBD, 0x37, 0x00,
0x00, 0x00, 0x00, 0x00,
// Unicode: [0x0051, Q]
0x00, 0x00, 0x00, 0x00, 0x30, 0xB8, 0xED, 0xEF, 0xAD, 0x27, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x50, 0xFC, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x4B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x20, 0xFB, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x19, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE3,
0xFF, 0xFF, 0xAE, 0x56, 0x54, 0xA7, 0xFF, 0xFF, 0xCF, 0x01, 0x00, 0x00, 0x00, 0x20, 0xFE, 0xFF,
0x7E, 0x01, 0x00, 0x00, 0x00, 0x91, 0xFF, 0xFF, 0x1C, 0x00, 0x00, 0x00, 0xC0, 0xFF, 0xCF, 0x02,
0x00, 0x00, 0x00, 0x00, 0x00, 0xE4, 0xFF, 0xAF, 0x00, 0x00, 0x00, 0xF6, 0xFF, 0x1D, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x30, 0xFF, 0xFF, 0x04, 0x00, 0x00, 0xFD, 0xFF, 0x03, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0xF7, 0xFF, 0x0B, 0x00, 0x50, 0xFF, 0xBF, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0xD0, 0xFF, 0x3F, 0x00, 0xA0, 0xFF, 0x4F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x80, 0xFF, 0x7F, 0x00, 0xE0, 0xFF, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x30, 0xFF, 0xBF, 0x00, 0xF1, 0xFF, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0xFF, 0xEF, 0x00, 0xF3, 0xFF, 0x0B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xFD, 0xFF, 0x00, 0xF4, 0xFF, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC,
0xFF, 0x01, 0xF4, 0xFF, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFD, 0xFF,
0x01, 0xF3, 0xFF, 0x0B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0xFF, 0x01,
0xF1, 0xFF, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xEF, 0x00, 0xE0,
0xFF, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0xFF, 0xBF, 0x00, 0xA0, 0xFF,
0x5F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xFF, 0x8F, 0x00, 0x50, 0xFF, 0xBF,
0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0xD0, 0xFF, 0x3F, 0x00, 0x00, 0xFD, 0xFF, 0x04,
0x00, 0x00, 0x00, 0xC0, 0x7C, 0x01, 0x00, 0xF7, 0xFF, 0x0C, 0x00, 0x00, 0xF6, 0xFF, 0x1D, 0x00,
0x00, 0x00, 0xF2, 0xFF, 0x6E, 0x40, 0xFE, 0xFF, 0x04, 0x00, 0x00, 0xC0, 0xFF, 0xDF, 0x02, 0x00,
0x00, 0xD4, 0xFF, 0xFF, 0xEB, 0xFF, 0x9F, 0x00, 0x00, 0x00, 0x20, 0xFD, 0xFF, 0x7E, 0x00, 0x00,
0x00, 0xB3, 0xFF, 0xFF, 0xFF, 0x1C, 0x00, 0x00, 0x00, 0x00, 0xD2, 0xFF, 0xFF, 0x9E, 0x46, 0x43,
0xA6, 0xFF, 0xFF, 0xEF, 0x02, 0x00, 0x00, 0x00, 0x00, 0x10, 0xFB, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0x6E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, 0xFC, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0x6A, 0xFE, 0xFF, 0x6D, 0x01, 0x00, 0x00, 0x00, 0x00, 0x30, 0xB8, 0xED, 0xEF, 0xAD, 0x26, 0x00,
0xB2, 0xFF, 0xFF, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xD5, 0xFF, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x75, 0x00,
// Unicode: [0x0052, R]
0xFD, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xDE, 0x9B, 0x04, 0x00, 0x00, 0x00, 0xFD, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xCF, 0x03, 0x00, 0x00, 0xFD, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0x3E, 0x00, 0x00, 0xFD, 0xEF, 0x22, 0x22, 0x22, 0x22, 0x32, 0x64, 0xFB,
0xFF, 0xDF, 0x00, 0x00, 0xFD, 0xEF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0xFE, 0xFF, 0x06,
0x00, 0xFD, 0xEF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF6, 0xFF, 0x0B, 0x00, 0xFD, 0xEF,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF1, 0xFF, 0x0E, 0x00, 0xFD, 0xEF, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0xE0, 0xFF, 0x0F, 0x00, 0xFD, 0xEF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0xF1, 0xFF, 0x0E, 0x00, 0xFD, 0xEF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF7, 0xFF,
0x0B, 0x00, 0xFD, 0xEF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0xFF, 0xFF, 0x05, 0x00, 0xFD,
0xEF, 0x00, 0x00, 0x00, 0x00, 0x10, 0x52, 0xFA, 0xFF, 0xBF, 0x00, 0x00, 0xFD, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x1C, 0x00, 0x00, 0xFD, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0x8E, 0x01, 0x00, 0x00, 0xFD, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xDF, 0x6A, 0x01,
0x00, 0x00, 0x00, 0xFD, 0xEF, 0x44, 0x44, 0x44, 0xC6, 0xFF, 0xCF, 0x03, 0x00, 0x00, 0x00, 0x00,
0xFD, 0xEF, 0x00, 0x00, 0x00, 0x00, 0xF6, 0xFF, 0x6F, 0x00, 0x00, 0x00, 0x00, 0xFD, 0xEF, 0x00,
0x00, 0x00, 0x00, 0x60, 0xFF, 0xFF, 0x05, 0x00, 0x00, 0x00, 0xFD, 0xEF, 0x00, 0x00, 0x00, 0x00,
0x00, 0xF9, 0xFF, 0x3F, 0x00, 0x00, 0x00, 0xFD, 0xEF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0xFF,
0xDF, 0x01, 0x00, 0x00, 0xFD, 0xEF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0xFF, 0xFF, 0x09, 0x00,
0x00, 0xFD, 0xEF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF8, 0xFF, 0x4F, 0x00, 0x00, 0xFD, 0xEF,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xD0, 0xFF, 0xDF, 0x00, 0x00, 0xFD, 0xEF, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x40, 0xFF, 0xFF, 0x08, 0x00, 0xFD, 0xEF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0xF9, 0xFF, 0x3F, 0x00, 0xFD, 0xEF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE1, 0xFF,
0xCF, 0x00, 0xFD, 0xEF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, 0xFF, 0xFF, 0x06, 0xFD,
0xEF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFB, 0xFF, 0x2E,
// Unicode: [0x0053, S]
0x00, 0x00, 0x00, 0x41, 0xC9, 0xED, 0xDE, 0x9C, 0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0xFE,
0xFF, 0xFF, 0xFF, 0xFF, 0xEF, 0x19, 0x00, 0x00, 0x00, 0x10, 0xFC, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xDF, 0x03, 0x00, 0x00, 0xB0, 0xFF, 0xFF, 0x8C, 0x56, 0x65, 0xC8, 0xFF, 0xFF, 0x2E, 0x00,
0x00, 0xF6, 0xFF, 0x4E, 0x00, 0x00, 0x00, 0x00, 0xD4, 0xFF, 0xAF, 0x00, 0x00, 0xFC, 0xFF, 0x03,
0x00, 0x00, 0x00, 0x00, 0x20, 0xFE, 0xFF, 0x03, 0x00, 0xFF, 0xAF, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0xF7, 0xFF, 0x07, 0x10, 0xFF, 0x9F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF1, 0xFF, 0x0A,
0x00, 0xFE, 0xCF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x45, 0x02, 0x00, 0xFB, 0xFF, 0x07,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF3, 0xFF, 0xCF, 0x16, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0xFF, 0xFF, 0xFF, 0x8C, 0x15, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0xE6, 0xFF, 0xFF, 0xFF, 0xFF, 0x9D, 0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0xD8,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x3A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x73, 0xEB, 0xFF, 0xFF,
0xFF, 0xFF, 0x1A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x63, 0xEA, 0xFF, 0xFF, 0xCF, 0x01,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xA4, 0xFF, 0xFF, 0x09, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0xE4, 0xFF, 0x2F, 0x41, 0x75, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x70, 0xFF, 0x6F, 0xF2, 0xFF, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0xFF, 0x8F,
0xE0, 0xFF, 0x0D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0xFF, 0x8F, 0xB0, 0xFF, 0x6F, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0xFF, 0x6F, 0x50, 0xFF, 0xEF, 0x04, 0x00, 0x00, 0x00, 0x00,
0x00, 0xE2, 0xFF, 0x1F, 0x00, 0xFB, 0xFF, 0x9F, 0x02, 0x00, 0x00, 0x00, 0x60, 0xFE, 0xFF, 0x09,
0x00, 0xD1, 0xFF, 0xFF, 0xDF, 0x79, 0x66, 0xA7, 0xFE, 0xFF, 0xCF, 0x01, 0x00, 0x20, 0xFC, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x1C, 0x00, 0x00, 0x00, 0x70, 0xFD, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0x7E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0xB8, 0xED, 0xFF, 0xCE, 0x59, 0x00, 0x00, 0x00,
// Unicode: [0x0054, T]
0xF1, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xAF, 0xF1, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xAF, 0xF1, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xAF, 0x50, 0x55, 0x55, 0x55, 0x55, 0xFB, 0xFF, 0x57, 0x55, 0x55, 0x55, 0x35,
0x00, 0x00, 0x00, 0x00, 0x00, 0xF9, 0xFF, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0xF9, 0xFF, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF9, 0xFF, 0x02,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF9, 0xFF, 0x02, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0xF9, 0xFF, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0xF9, 0xFF, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF9, 0xFF, 0x02,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF9, 0xFF, 0x02, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0xF9, 0xFF, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0xF9, 0xFF, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF9, 0xFF, 0x02,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF9, 0xFF, 0x02, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0xF9, 0xFF, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0xF9, 0xFF, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF9, 0xFF, 0x02,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF9, 0xFF, 0x02, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0xF9, 0xFF, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0xF9, 0xFF, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF9, 0xFF, 0x02,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF9, 0xFF, 0x02, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0xF9, 0xFF, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0xF9, 0xFF, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF9, 0xFF, 0x02,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF9, 0xFF, 0x02, 0x00, 0x00, 0x00, 0x00,
// Unicode: [0x0055, U]
0xFD, 0xEF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF2, 0xFF, 0x0A, 0xFD, 0xEF, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0xF2, 0xFF, 0x0A, 0xFD, 0xEF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0xF2, 0xFF, 0x0A, 0xFD, 0xEF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF2, 0xFF, 0x0A,
0xFD, 0xEF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF2, 0xFF, 0x0A, 0xFD, 0xEF, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0xF2, 0xFF, 0x0A, 0xFD, 0xEF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0xF2, 0xFF, 0x0A, 0xFD, 0xEF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF2, 0xFF, 0x0A,
0xFD, 0xEF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF2, 0xFF, 0x0A, 0xFD, 0xEF, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0xF2, 0xFF, 0x0A, 0xFD, 0xEF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0xF2, 0xFF, 0x0A, 0xFD, 0xEF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF2, 0xFF, 0x0A,
0xFD, 0xEF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF2, 0xFF, 0x0A, 0xFD, 0xEF, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0xF2, 0xFF, 0x0A, 0xFD, 0xEF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0xF2, 0xFF, 0x0A, 0xFD, 0xEF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF2, 0xFF, 0x0A,
0xFD, 0xEF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF2, 0xFF, 0x0A, 0xFC, 0xFF, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0xF3, 0xFF, 0x09, 0xFB, 0xFF, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0xF4, 0xFF, 0x08, 0xF9, 0xFF, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF7, 0xFF, 0x06,
0xF7, 0xFF, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFB, 0xFF, 0x04, 0xF3, 0xFF, 0x0D, 0x00,
0x00, 0x00, 0x00, 0x00, 0x10, 0xFF, 0xFF, 0x01, 0xD0, 0xFF, 0x9F, 0x00, 0x00, 0x00, 0x00, 0x00,
0xB0, 0xFF, 0xAF, 0x00, 0x60, 0xFF, 0xFF, 0x2A, 0x00, 0x00, 0x00, 0x30, 0xFB, 0xFF, 0x3F, 0x00,
0x00, 0xFB, 0xFF, 0xFF, 0x8B, 0x67, 0x97, 0xFC, 0xFF, 0xFF, 0x07, 0x00, 0x00, 0xB1, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x7F, 0x00, 0x00, 0x00, 0x00, 0xE6, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xCF, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x95, 0xEC, 0xFE, 0xDE, 0x8B, 0x03, 0x00, 0x00, 0x00,
// Unicode: [0x0056, V]
0xFA, 0xFF, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFA, 0xFF, 0x03, 0xF4, 0xFF,
0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0xFF, 0xCF, 0x00, 0xD0, 0xFF, 0x3F, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0xFF, 0x6F, 0x00, 0x70, 0xFF, 0x8F, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0xC0, 0xFF, 0x1E, 0x00, 0x10, 0xFF, 0xEF, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0xF3, 0xFF, 0x09, 0x00, 0x00, 0xFA, 0xFF, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xF9, 0xFF, 0x03, 0x00, 0x00, 0xF4, 0xFF, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0xCF,
0x00, 0x00, 0x00, 0xD0, 0xFF, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, 0xFF, 0x6F, 0x00, 0x00,
0x00, 0x70, 0xFF, 0x6F, 0x00, 0x00, 0x00, 0x00, 0x00, 0xB0, 0xFF, 0x1E, 0x00, 0x00, 0x00, 0x10,
0xFF, 0xBF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF2, 0xFF, 0x09, 0x00, 0x00, 0x00, 0x00, 0xFA, 0xFF,
0x02, 0x00, 0x00, 0x00, 0x00, 0xF7, 0xFF, 0x03, 0x00, 0x00, 0x00, 0x00, 0xF4, 0xFF, 0x07, 0x00,
0x00, 0x00, 0x00, 0xFD, 0xCF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xD0, 0xFF, 0x0D, 0x00, 0x00, 0x00,
0x40, 0xFF, 0x5F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0xFF, 0x3F, 0x00, 0x00, 0x00, 0xA0, 0xFF,
0x0E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0xFF, 0x9F, 0x00, 0x00, 0x00, 0xE1, 0xFF, 0x08, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0xFA, 0xEF, 0x00, 0x00, 0x00, 0xF6, 0xFF, 0x02, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0xF4, 0xFF, 0x05, 0x00, 0x00, 0xFC, 0xBF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0xD0, 0xFF, 0x0A, 0x00, 0x20, 0xFF, 0x5F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80,
0xFF, 0x1F, 0x00, 0x80, 0xFF, 0x0E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0xFF, 0x6F,
0x00, 0xE0, 0xFF, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFB, 0xCF, 0x00, 0xF4,
0xFF, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF5, 0xFF, 0x02, 0xF9, 0xBF, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0xFF, 0x07, 0xFE, 0x5F, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xFF, 0x5C, 0xFF, 0x0E, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x20, 0xFF, 0xBF, 0xFF, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0xFB, 0xFF, 0xFF, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0xF5, 0xFF, 0xBF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0,
0xFF, 0x5F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
// Unicode: [0x005A, Z]
0x00, 0xF8, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x0F, 0x00, 0xF8, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x0F, 0x00, 0xF8, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0x0F, 0x00, 0x53, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0xFD, 0xFF, 0x0C,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xA0, 0xFF, 0xEF, 0x02, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0xF8, 0xFF, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60,
0xFF, 0xFF, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF4, 0xFF, 0x8F, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0xFE, 0xFF, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0xC1, 0xFF, 0xCF, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFA, 0xFF,
0x2E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xFF, 0xFF, 0x03, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0xF5, 0xFF, 0x5F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x30, 0xFE, 0xFF, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xD1, 0xFF, 0xAF, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0xFF, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x90, 0xFF, 0xEF, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF7,
0xFF, 0x4F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0xFF, 0xFF, 0x06, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE2, 0xFF, 0x8F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x10, 0xFD, 0xFF, 0x0B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xB0, 0xFF, 0xDF,
0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF8, 0xFF, 0x2E, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x60, 0xFF, 0xEF, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xF2, 0xFF, 0xAF, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x25, 0xF3, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x7F, 0xF3, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0x7F, 0xF3, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x7F
};
@@ -0,0 +1,310 @@
/* DO NOT EDIT THIS FILE */
/* This file is autogenerated by the text-database code generator */
#include <fonts/GeneratedFont.hpp>
#include <fonts/CompressedFontCache.hpp>
#include <math.h>
#include <stddef.h>
namespace touchgfx
{
GeneratedFont::GeneratedFont(const GlyphNode* glyphs, uint16_t numGlyphs, uint16_t height, uint16_t baseline, uint8_t pixAboveTop, uint8_t pixBelowBottom, uint8_t bitsPerPixel, uint8_t byteAlignRow, uint8_t maxLeft, uint8_t maxRight, const uint8_t* const* glyphDataInternalFlash, const KerningNode* kerningList, const Unicode::UnicodeChar fallbackChar, const Unicode::UnicodeChar ellipsisChar, const uint16_t* const gsubData, const FontContextualFormsTable* formsTable)
: ConstFont(glyphs, numGlyphs, height, baseline, pixAboveTop, pixBelowBottom, bitsPerPixel, byteAlignRow, maxLeft, maxRight, fallbackChar, ellipsisChar),
glyphData(glyphDataInternalFlash),
kerningData(kerningList),
gsubTable(gsubData),
arabicTable(formsTable)
{
}
const uint8_t* GeneratedFont::getPixelData(const GlyphNode* glyph) const
{
// Read dataOffset as 16bit, as it may be unaligned
volatile const uint16_t* dataOffset = (const uint16_t*)((const uint8_t*)glyph + offsetof(GlyphNode, dataOffset));
uint32_t offset = dataOffset[0];
offset |= dataOffset[1] << 16;
const uint8_t* const* table = (const uint8_t* const*)glyphData;
const uint8_t* pixels = table[glyph->unicode / 2048];
return pixels + offset;
}
int8_t GeneratedFont::getKerning(Unicode::UnicodeChar prevChar, const GlyphNode* glyph) const
{
if (!glyph || glyph->kerningTableSize == 0)
{
return 0;
}
const KerningNode* kerndata = kerningData + glyph->kerningTablePos();
for (uint16_t i = glyph->kerningTableSize; i > 0; i--, kerndata++)
{
if (prevChar == kerndata->unicodePrevChar)
{
return kerndata->distance;
}
if (prevChar < kerndata->unicodePrevChar)
{
break;
}
}
return 0;
}
const GlyphNode* FusedFont::getGlyph(Unicode::UnicodeChar unicode, const uint8_t*& pixelData, uint8_t& bitsPerPixel) const
{
if (unicode < 0xAC00 || unicode > 0xD7A3)
{
return GeneratedFont::getGlyph(unicode, pixelData, bitsPerPixel);
}
else
{
fusedNode.unicode = unicode;
bitsPerPixel = 1;
pixelData = 0;
return const_cast<const GlyphNode*>(&fusedNode);
}
}
GlyphNode GeneratedVectorFont::glyphNode; // Static member
GeneratedVectorFont::GeneratedVectorFont(uint16_t baseline, float scale, const VectorFontNode* vectorGlyphs, const VectorFontData& fontData,
const uint16_t* const* glyphData, const VectorKerningNode* kerning,
const uint16_t* const gsubData, const FontContextualFormsTable* formsTable)
: Font((int)ceilf((fontData.maxBelowBottom + fontData.baselineHeight) * scale), baseline,
(uint8_t)ceilf(fontData.maxAboveTop * scale),
(uint8_t)ceilf(fontData.maxBelowBottom * scale), 0 /*bitsPerPixel*/, 0 /*byteAlignRow*/,
(uint8_t)ceilf(fontData.maxLeft * scale),
(uint8_t)ceilf(fontData.maxRight * scale),
fontData.fallbackChar,
fontData.ellipsisChar),
scaleFactor(scale), vectorNodes(vectorGlyphs), vectorTable(glyphData), kerningTable(kerning),
arabicTable(formsTable), numberOfGlyphs(fontData.numberOfGlyphs)
{
if (gsubData[0] != 0)
{
gsubTable = gsubData;
}
else
{
gsubTable = 0;
}
}
const GlyphNode* GeneratedVectorFont::getGlyph(Unicode::UnicodeChar unicode) const
{
const VectorFontNode* const node = find(unicode);
if (node == 0)
{
return 0;
}
else
{
return getGlyphNode(node);
}
}
const GlyphNode* GeneratedVectorFont::getGlyph(Unicode::UnicodeChar unicode, const uint8_t*& pixelData, uint8_t& bitsPerPixel) const
{
const VectorFontNode* const node = find(unicode);
if (node == 0)
{
return 0;
}
else
{
const uint16_t* contourData = &(vectorTable[unicode / 2048][node->dataOffset]);
pixelData = (const uint8_t*)contourData;
bitsPerPixel = 0xFF;
return getGlyphNode(node);
}
}
const GlyphNode* GeneratedVectorFont::getGlyphNode(const VectorFontNode* node) const
{
glyphNode.dataOffset = 0;
uint8_t flags = 0;
//Convert data from VectorFontNode to glyphNode using scaleFactor
glyphNode.unicode = node->unicode;
const int width = (node->width == 0) ? 0 : ((int)ceilf(node->width * scaleFactor) + 1);
glyphNode._width = width; // Save low 8 bit
// Set flags bits for values above 8 bit
if (width > 255)
{
flags |= GLYPH_DATA_WIDTH_BIT8;
}
const int height = (int)ceilf(node->height * scaleFactor);
glyphNode._height = height;
if (height > 255)
{
flags |= GLYPH_DATA_HEIGHT_BIT8;
}
const int top = (int)ceilf(node->top * scaleFactor);
glyphNode._top = top;
if (top > 255)
{
flags |= ((top & 0x300) >> 3); // GLYPH_DATA_TOP_BIT8 + 9
}
const int left = (int)(node->left * scaleFactor);
glyphNode.left = left;
const int advance = (int)(node->advance * scaleFactor + 0.5f);
glyphNode._advance = advance;
if (advance > 255)
{
flags |= GLYPH_DATA_ADVANCE_BIT8;
}
glyphNode._kerningTablePos = (uint8_t)node->kerningTablePos;
if (node->kerningTablePos > 255)
{
flags |= (node->kerningTablePos >> 8) & GLYPH_DATA_KERNINGTABLEPOS_BIT8_10;
}
glyphNode.kerningTableSize = node->kerningTableSize;
glyphNode.flags = flags;
return &glyphNode;
}
int8_t GeneratedVectorFont::getKerning(Unicode::UnicodeChar prevChar, const GlyphNode* glyph) const
{
if (!glyph || glyph->kerningTableSize == 0)
{
return 0;
}
const VectorKerningNode* kerndata = kerningTable + glyph->kerningTablePos();
for (uint16_t i = glyph->kerningTableSize; i > 0; i--, kerndata++)
{
if (prevChar == kerndata->unicodePrevChar)
{
const float scaledDistance = kerndata->distance * scaleFactor;
return (int)(scaledDistance >= 0.0f ? (scaledDistance + 0.5f) : (scaledDistance - 0.5f));
}
if (prevChar < kerndata->unicodePrevChar)
{
break;
}
}
return 0;
}
const VectorFontNode* GeneratedVectorFont::find(Unicode::UnicodeChar unicode) const
{
// Some fonts does not have a glyphList. Cannot be searched...
if (vectorNodes == 0)
{
return 0;
}
int32_t min = 0;
int32_t max = numberOfGlyphs - 1;
int32_t mid = min + (unicode - vectorNodes[min].unicode); // Linear up from [min].unicode
if (mid < min)
{
// Unicode < [min].unicode => not found
return (VectorFontNode*)0;
}
if (mid > max)
{
// Linear up ends too high
mid = max - (vectorNodes[max].unicode - unicode); // Linear down from [max].unicode
if (mid > max)
{
// Unicode > [max].unicode => not found
return (VectorFontNode*)0;
}
if (mid < min)
{
// Linear down ends too low, take the middle element
mid = (min + max) / 2;
}
}
while (min <= max)
{
const Unicode::UnicodeChar midUnicode = vectorNodes[mid].unicode;
if (unicode == midUnicode)
{
// Found at [mid]
return vectorNodes + mid;
}
if (unicode < midUnicode)
{
// Unicode is in lower half
max = mid - 1;
if (max < min)
{
// Range is empty => not found
break;
}
// We adjusted max, try linear down from [max].unicode
mid = max - (vectorNodes[max].unicode - unicode);
if (mid > max)
{
// Unicode > [max].unicode => not found
break;
}
if (mid < min)
{
// Linear down ends too low, take the middle element
mid = (min + max) / 2;
}
}
else
{
// Unicode is in upper half
min = mid + 1;
if (min > max)
{
// Range is empty => not found
break;
}
// We adjusted min, try linear up from [min].unicode
mid = min + (unicode - vectorNodes[min].unicode);
if (mid < min)
{
// Unicode < [min].unicode => not found
break;
}
if (mid > max)
{
// Linear up ends too high, take the middle element
mid = (min + max) / 2;
}
}
}
return (VectorFontNode*)0;
}
CompressedMappedFont::CompressedMappedFont(const GlyphNode* glyphs, uint16_t numGlyphs, uint16_t height, uint16_t baseline, uint8_t pixAboveTop, uint8_t pixBelowBottom, uint8_t bitsPerPixel, uint8_t byteAlignRow, uint8_t maxLeft, uint8_t maxRight, const uint8_t* const* glyphDataInternalFlash, const KerningNode* kerningList, const Unicode::UnicodeChar fallbackChar, const Unicode::UnicodeChar ellipsisChar, const uint16_t* const gsubData, const FontContextualFormsTable* formsTable)
: GeneratedFont(glyphs, numGlyphs, height, baseline, pixAboveTop, pixBelowBottom, bitsPerPixel, byteAlignRow, maxLeft, maxRight, glyphDataInternalFlash, kerningList, fallbackChar, ellipsisChar, gsubData, formsTable)
{
}
const GlyphNode* CompressedMappedFont::getGlyph(Unicode::UnicodeChar unicode) const
{
return find(unicode);
}
const uint8_t* CompressedMappedFont::getPixelData(const GlyphNode* glyph) const
{
const uint8_t* pixelData = CompressedFontCache::hasCachedGlyph(glyph);
if (pixelData)
{
return pixelData;
}
const uint8_t* const* table = (const uint8_t* const*)glyphData;
const uint8_t* compressedData = &(table[glyph->unicode / 2048][glyph->dataOffset & 0x3FFFFFFF]);
return CompressedFontCache::cacheGlyph(glyph, compressedData);
}
} // namespace touchgfx
@@ -0,0 +1,6 @@
#include <touchgfx/Font.hpp>
FONT_KERNING_LOCATION_FLASH_PRAGMA
KEEP extern const touchgfx::KerningNode kerning_arial_10_4bpp[] FONT_KERNING_LOCATION_FLASH_ATTRIBUTE = {
{ 0, 0 }
};
@@ -0,0 +1,31 @@
#include <touchgfx/Font.hpp>
FONT_KERNING_LOCATION_FLASH_PRAGMA
KEEP extern const touchgfx::KerningNode kerning_arial_20_4bpp[] FONT_KERNING_LOCATION_FLASH_ATTRIBUTE = {
{ 0x0041, -1 }, // (First char = [0x0041, A], Second char = [0x0020, space], Kerning dist = -1)
{ 0x004C, -1 }, // (First char = [0x004C, L], Second char = [0x0020, space], Kerning dist = -1)
{ 0x0046, -2 }, // (First char = [0x0046, F], Second char = [0x002C, comma], Kerning dist = -2)
{ 0x0050, -2 }, // (First char = [0x0050, P], Second char = [0x002C, comma], Kerning dist = -2)
{ 0x0054, -2 }, // (First char = [0x0054, T], Second char = [0x002C, comma], Kerning dist = -2)
{ 0x0056, -1 }, // (First char = [0x0056, V], Second char = [0x002C, comma], Kerning dist = -1)
{ 0x0054, -1 }, // (First char = [0x0054, T], Second char = [0x002D, hyphen], Kerning dist = -1)
{ 0x0056, -1 }, // (First char = [0x0056, V], Second char = [0x002D, hyphen], Kerning dist = -1)
{ 0x0046, -2 }, // (First char = [0x0046, F], Second char = [0x002E, period], Kerning dist = -2)
{ 0x0050, -2 }, // (First char = [0x0050, P], Second char = [0x002E, period], Kerning dist = -2)
{ 0x0054, -2 }, // (First char = [0x0054, T], Second char = [0x002E, period], Kerning dist = -2)
{ 0x0056, -1 }, // (First char = [0x0056, V], Second char = [0x002E, period], Kerning dist = -1)
{ 0x0031, -1 }, // (First char = [0x0031, one], Second char = [0x0031, one], Kerning dist = -1)
{ 0x0054, -2 }, // (First char = [0x0054, T], Second char = [0x003A, colon], Kerning dist = -2)
{ 0x0056, -1 }, // (First char = [0x0056, V], Second char = [0x003A, colon], Kerning dist = -1)
{ 0x0020, -1 }, // (First char = [0x0020, space], Second char = [0x0041, A], Kerning dist = -1)
{ 0x0046, -1 }, // (First char = [0x0046, F], Second char = [0x0041, A], Kerning dist = -1)
{ 0x0050, -1 }, // (First char = [0x0050, P], Second char = [0x0041, A], Kerning dist = -1)
{ 0x0054, -1 }, // (First char = [0x0054, T], Second char = [0x0041, A], Kerning dist = -1)
{ 0x0056, -1 }, // (First char = [0x0056, V], Second char = [0x0041, A], Kerning dist = -1)
{ 0x0041, -1 }, // (First char = [0x0041, A], Second char = [0x0054, T], Kerning dist = -1)
{ 0x004C, -1 }, // (First char = [0x004C, L], Second char = [0x0054, T], Kerning dist = -1)
{ 0x0041, -1 }, // (First char = [0x0041, A], Second char = [0x0056, V], Kerning dist = -1)
{ 0x004C, -1 }, // (First char = [0x004C, L], Second char = [0x0056, V], Kerning dist = -1)
{ 0x0054, -2 }, // (First char = [0x0054, T], Second char = [0x0061, a], Kerning dist = -2)
{ 0x0056, -1 }, // (First char = [0x0056, V], Second char = [0x0061, a], Kerning dist = -1)
};
@@ -0,0 +1,17 @@
#include <touchgfx/Font.hpp>
FONT_KERNING_LOCATION_FLASH_PRAGMA
KEEP extern const touchgfx::KerningNode kerning_arial_40_4bpp[] FONT_KERNING_LOCATION_FLASH_ATTRIBUTE = {
{ 0x0054, -2 }, // (First char = [0x0054, T], Second char = [0x002D, hyphen], Kerning dist = -2)
{ 0x0056, -2 }, // (First char = [0x0056, V], Second char = [0x002D, hyphen], Kerning dist = -2)
{ 0x0031, -3 }, // (First char = [0x0031, one], Second char = [0x0031, one], Kerning dist = -3)
{ 0x0054, -3 }, // (First char = [0x0054, T], Second char = [0x0041, A], Kerning dist = -3)
{ 0x0056, -3 }, // (First char = [0x0056, V], Second char = [0x0041, A], Kerning dist = -3)
{ 0x0054, -1 }, // (First char = [0x0054, T], Second char = [0x004F, O], Kerning dist = -1)
{ 0x0041, -3 }, // (First char = [0x0041, A], Second char = [0x0054, T], Kerning dist = -3)
{ 0x004C, -3 }, // (First char = [0x004C, L], Second char = [0x0054, T], Kerning dist = -3)
{ 0x0052, -1 }, // (First char = [0x0052, R], Second char = [0x0054, T], Kerning dist = -1)
{ 0x0041, -3 }, // (First char = [0x0041, A], Second char = [0x0056, V], Kerning dist = -3)
{ 0x004C, -3 }, // (First char = [0x004C, L], Second char = [0x0056, V], Kerning dist = -3)
{ 0x0052, -1 }, // (First char = [0x0052, R], Second char = [0x0056, V], Kerning dist = -1)
};
@@ -0,0 +1,122 @@
// Autogenerated, do not edit
#include <fonts/GeneratedFont.hpp>
FONT_TABLE_LOCATION_FLASH_PRAGMA
KEEP extern const touchgfx::GlyphNode glyphs_arial_10_4bpp[] FONT_TABLE_LOCATION_FLASH_ATTRIBUTE = {
{ 0, 0x003F, 5, 7, 7, 0, 6, 0, 0, 0x00 } // question
};
// arial_10_4bpp
FONT_TABLE_LOCATION_FLASH_PRAGMA
KEEP extern const touchgfx::GlyphNode glyphs_arial_10_4bpp[] FONT_TABLE_LOCATION_FLASH_ATTRIBUTE;
FONT_GLYPH_LOCATION_FLASH_PRAGMA
KEEP extern const uint8_t unicodes_arial_10_4bpp_0[] FONT_GLYPH_LOCATION_FLASH_ATTRIBUTE;
FONT_SEARCHTABLE_LOCATION_FLASH_PRAGMA
KEEP extern const uint8_t* const unicodes_arial_10_4bpp[] FONT_SEARCHTABLE_LOCATION_FLASH_ATTRIBUTE = {
unicodes_arial_10_4bpp_0
};
FONT_KERNING_LOCATION_FLASH_PRAGMA
KEEP extern const touchgfx::KerningNode kerning_arial_10_4bpp[] FONT_KERNING_LOCATION_FLASH_ATTRIBUTE;
static const touchgfx::Unicode::UnicodeChar contextualForms4Long[][5] = {
// key, isol, key2
{ /*0627 0644 0644 0647*/ 0x02ED, 0xFDF2, 0x0644, 0x0000, 0x0000 } // ARABIC LIGATURE ALLAH
};
static const touchgfx::Unicode::UnicodeChar contextualForms3Long[][5] = {
// key, isol, fina, init, medi
{ /*0020 064C 0651*/ 0xD4F5, 0xFC5E, 0x0000, 0x0000, 0x0000 }, // ARABIC LIGATURE SHADDA WITH DAMMATAN
{ /*0020 064D 0651*/ 0xD51D, 0xFC5F, 0x0000, 0x0000, 0x0000 }, // ARABIC LIGATURE SHADDA WITH KASRATAN
{ /*0020 064E 0651*/ 0xD545, 0xFC60, 0x0000, 0x0000, 0x0000 }, // ARABIC LIGATURE SHADDA WITH FATHA
{ /*0020 064F 0651*/ 0xD56D, 0xFC61, 0x0000, 0x0000, 0x0000 }, // ARABIC LIGATURE SHADDA WITH DAMMA
{ /*0020 0650 0651*/ 0xD595, 0xFC62, 0x0000, 0x0000, 0x0000 } // ARABIC LIGATURE SHADDA WITH KASRA
};
static const touchgfx::Unicode::UnicodeChar contextualForms2Long[][5] = {
// key, isol, fina, init, medi
{ /*0644 0622*/ 0x4422, 0xFEF5, 0xFEF6, 0x0000, 0x0000 }, // ARABIC LIGATURE LAM WITH ALEF WITH MADDA ABOVE
{ /*0644 0623*/ 0x4423, 0xFEF7, 0xFEF8, 0x0000, 0x0000 }, // ARABIC LIGATURE LAM WITH ALEF WITH HAMZA ABOVE
{ /*0644 0625*/ 0x4425, 0xFEF9, 0xFEFA, 0x0000, 0x0000 }, // ARABIC LIGATURE LAM WITH ALEF WITH HAMZA BELOW
{ /*0644 0627*/ 0x4427, 0xFEFB, 0xFEFC, 0x0000, 0x0000 } // ARABIC LIGATURE LAM WITH ALEF
};
static const touchgfx::Unicode::UnicodeChar contextualForms0621_063a[][4] = {
// isol, fina, init, medi
{ /*0621*/ 0xFE80, 0x0000, 0x0000, 0x0000 }, // ARABIC LETTER HAMZA
{ /*0622*/ 0xFE81, 0xFE82, 0x0000, 0x0000 }, // ARABIC LETTER ALEF WITH MADDA ABOVE
{ /*0623*/ 0xFE83, 0xFE84, 0x0000, 0x0000 }, // ARABIC LETTER ALEF WITH HAMZA ABOVE
{ /*0624*/ 0xFE85, 0xFE86, 0x0000, 0x0000 }, // ARABIC LETTER WAW WITH HAMZA ABOVE
{ /*0625*/ 0xFE87, 0xFE88, 0x0000, 0x0000 }, // ARABIC LETTER ALEF WITH HAMZA BELOW
{ /*0626*/ 0xFE89, 0xFE8A, 0xFE8B, 0xFE8C }, // ARABIC LETTER YEH WITH HAMZA ABOVE
{ /*0627*/ 0xFE8D, 0xFE8E, 0x0000, 0x0000 }, // ARABIC LETTER ALEF
{ /*0628*/ 0xFE8F, 0xFE90, 0xFE91, 0xFE92 }, // ARABIC LETTER BEH
{ /*0629*/ 0xFE93, 0xFE94, 0x0000, 0x0000 }, // ARABIC LETTER TEH MARBUTA
{ /*062A*/ 0xFE95, 0xFE96, 0xFE97, 0xFE98 }, // ARABIC LETTER TEH
{ /*062B*/ 0xFE99, 0xFE9A, 0xFE9B, 0xFE9C }, // ARABIC LETTER THEH
{ /*062C*/ 0xFE9D, 0xFE9E, 0xFE9F, 0xFEA0 }, // ARABIC LETTER JEEM
{ /*062D*/ 0xFEA1, 0xFEA2, 0xFEA3, 0xFEA4 }, // ARABIC LETTER HAH
{ /*062E*/ 0xFEA5, 0xFEA6, 0xFEA7, 0xFEA8 }, // ARABIC LETTER KHAH
{ /*062F*/ 0xFEA9, 0xFEAA, 0x0000, 0x0000 }, // ARABIC LETTER DAL
{ /*0630*/ 0xFEAB, 0xFEAC, 0x0000, 0x0000 }, // ARABIC LETTER THAL
{ /*0631*/ 0xFEAD, 0xFEAE, 0x0000, 0x0000 }, // ARABIC LETTER REH
{ /*0632*/ 0xFEAF, 0xFEB0, 0x0000, 0x0000 }, // ARABIC LETTER ZAIN
{ /*0633*/ 0xFEB1, 0xFEB2, 0xFEB3, 0xFEB4 }, // ARABIC LETTER SEEN
{ /*0634*/ 0xFEB5, 0xFEB6, 0xFEB7, 0xFEB8 }, // ARABIC LETTER SHEEN
{ /*0635*/ 0xFEB9, 0xFEBA, 0xFEBB, 0xFEBC }, // ARABIC LETTER SAD
{ /*0636*/ 0xFEBD, 0xFEBE, 0xFEBF, 0xFEC0 }, // ARABIC LETTER DAD
{ /*0637*/ 0xFEC1, 0xFEC2, 0xFEC3, 0xFEC4 }, // ARABIC LETTER TAH
{ /*0638*/ 0xFEC5, 0xFEC6, 0xFEC7, 0xFEC8 }, // ARABIC LETTER ZAH
{ /*0639*/ 0xFEC9, 0xFECA, 0xFECB, 0xFECC }, // ARABIC LETTER AIN
{ /*063A*/ 0xFECD, 0xFECE, 0xFECF, 0xFED0 } // ARABIC LETTER GHAIN
};
static const touchgfx::Unicode::UnicodeChar contextualForms0641_064a[][4] = {
// isol, fina, init, medi
{ /*0641*/ 0xFED1, 0xFED2, 0xFED3, 0xFED4 }, // ARABIC LETTER FEH
{ /*0642*/ 0xFED5, 0xFED6, 0xFED7, 0xFED8 }, // ARABIC LETTER QAF
{ /*0643*/ 0xFED9, 0xFEDA, 0xFEDB, 0xFEDC }, // ARABIC LETTER KAF
{ /*0644*/ 0xFEDD, 0xFEDE, 0xFEDF, 0xFEE0 }, // ARABIC LETTER LAM
{ /*0645*/ 0xFEE1, 0xFEE2, 0xFEE3, 0xFEE4 }, // ARABIC LETTER MEEM
{ /*0646*/ 0xFEE5, 0xFEE6, 0xFEE7, 0xFEE8 }, // ARABIC LETTER NOON
{ /*0647*/ 0xFEE9, 0xFEEA, 0xFEEB, 0xFEEC }, // ARABIC LETTER HEH
{ /*0648*/ 0xFEED, 0xFEEE, 0x0000, 0x0000 }, // ARABIC LETTER WAW
{ /*0649*/ 0xFEEF, 0xFEF0, 0x0000, 0x0000 }, // ARABIC LETTER ALEF MAKSURA / ARABIC LETTER UIGHUR KAZAKH KIRGHIZ ALEF MAKSURA
{ /*064A*/ 0xFEF1, 0xFEF2, 0xFEF3, 0xFEF4 } // ARABIC LETTER YEH
};
static const touchgfx::Unicode::UnicodeChar contextualForms06XX[][5] = {
// key, isol, fina, init, medi
{ /*0671*/ 0x0671, 0xFB50, 0x0000, 0x0000, 0x0000 }, // ARABIC LETTER ALEF WASLA
{ /*067E*/ 0x067E, 0xFB56, 0xFB57, 0xFB58, 0xFB59 }, // ARABIC LETTER PEH
{ /*0686*/ 0x0686, 0xFB7A, 0xFB7B, 0xFB7C, 0xFB7D }, // ARABIC LETTER TCHEH
{ /*0698*/ 0x0698, 0xFB8A, 0xFB8B, 0x0000, 0x0000 }, // ARABIC LETTER JEH
{ /*06A4*/ 0x06A4, 0xFB6A, 0x0000, 0x0000, 0x0000 }, // ARABIC LETTER VEH
{ /*06A9*/ 0x06A9, 0xFB8E, 0xFB8F, 0xFB90, 0xFB91 }, // ARABIC LETTER KEHEH
{ /*06AF*/ 0x06AF, 0xFB92, 0xFB93, 0xFB94, 0xFB95 }, // ARABIC LETTER GAF
{ /*06CC*/ 0x06CC, 0xFBFC, 0xFBFD, 0xFBFE, 0xFBFF } // ARABIC LETTER FARSI YEH
};
extern const touchgfx::FontContextualFormsTable arial_contextualFormsTable;
const touchgfx::FontContextualFormsTable arial_contextualFormsTable =
{
contextualForms4Long,
contextualForms3Long,
contextualForms2Long,
contextualForms0621_063a,
contextualForms0641_064a,
contextualForms06XX,
sizeof(contextualForms4Long)/sizeof(contextualForms4Long[0]),
sizeof(contextualForms3Long)/sizeof(contextualForms3Long[0]),
sizeof(contextualForms2Long)/sizeof(contextualForms2Long[0]),
sizeof(contextualForms06XX)/sizeof(contextualForms06XX[0])
};
touchgfx::GeneratedFont& getFont_arial_10_4bpp();
touchgfx::GeneratedFont& getFont_arial_10_4bpp()
{
static touchgfx::GeneratedFont arial_10_4bpp(glyphs_arial_10_4bpp, 1, 10, 10, 0, 0, 4, 1, 0, 0, unicodes_arial_10_4bpp, kerning_arial_10_4bpp, 63, 0, 0, &arial_contextualFormsTable);
return arial_10_4bpp;
}
@@ -0,0 +1,65 @@
// Autogenerated, do not edit
#include <fonts/GeneratedFont.hpp>
FONT_TABLE_LOCATION_FLASH_PRAGMA
KEEP extern const touchgfx::GlyphNode glyphs_arial_20_4bpp[] FONT_TABLE_LOCATION_FLASH_ATTRIBUTE = {
{ 0, 0x0020, 0, 0, 0, 0, 6, 0, 2, 0x00 }, // space
{ 0, 0x002C, 3, 6, 3, 1, 6, 2, 4, 0x00 }, // comma
{ 12, 0x002D, 6, 2, 6, 0, 7, 6, 2, 0x00 }, // hyphen
{ 18, 0x002E, 3, 3, 3, 1, 6, 8, 4, 0x00 }, // period
{ 24, 0x0030, 11, 15, 15, 0, 11, 0, 0, 0x00 }, // zero
{ 114, 0x0031, 6, 15, 15, 2, 11, 12, 1, 0x00 }, // one
{ 159, 0x0032, 11, 15, 15, 0, 11, 0, 0, 0x00 }, // two
{ 249, 0x0033, 11, 15, 15, 0, 11, 0, 0, 0x00 }, // three
{ 339, 0x0034, 11, 15, 15, 0, 11, 0, 0, 0x00 }, // four
{ 429, 0x0035, 11, 15, 15, 0, 11, 0, 0, 0x00 }, // five
{ 519, 0x0036, 11, 15, 15, 0, 11, 0, 0, 0x00 }, // six
{ 609, 0x0037, 11, 15, 15, 0, 11, 0, 0, 0x00 }, // seven
{ 699, 0x0038, 11, 15, 15, 0, 11, 0, 0, 0x00 }, // eight
{ 789, 0x0039, 11, 15, 15, 0, 11, 0, 0, 0x00 }, // nine
{ 879, 0x003A, 3, 11, 11, 1, 6, 13, 2, 0x00 }, // colon
{ 901, 0x003F, 10, 15, 15, 1, 11, 0, 0, 0x00 }, // question
{ 976, 0x0041, 14, 15, 15, 0, 13, 15, 5, 0x00 }, // A
{ 1081, 0x0042, 12, 15, 15, 1, 13, 0, 0, 0x00 }, // B
{ 1171, 0x0043, 13, 15, 15, 1, 14, 0, 0, 0x00 }, // C
{ 1276, 0x0044, 13, 15, 15, 1, 14, 0, 0, 0x00 }, // D
{ 1381, 0x0045, 12, 15, 15, 1, 13, 0, 0, 0x00 }, // E
{ 1471, 0x0046, 11, 15, 15, 1, 12, 0, 0, 0x00 }, // F
{ 1561, 0x0048, 12, 15, 15, 1, 14, 0, 0, 0x00 }, // H
{ 1651, 0x0049, 3, 15, 15, 1, 6, 0, 0, 0x00 }, // I
{ 1681, 0x004B, 13, 15, 15, 1, 13, 0, 0, 0x00 }, // K
{ 1786, 0x004C, 10, 15, 15, 1, 11, 0, 0, 0x00 }, // L
{ 1861, 0x004D, 15, 15, 15, 1, 17, 0, 0, 0x00 }, // M
{ 1981, 0x004E, 12, 15, 15, 1, 14, 0, 0, 0x00 }, // N
{ 2071, 0x004F, 14, 15, 15, 1, 16, 0, 0, 0x00 }, // O
{ 2176, 0x0050, 12, 15, 15, 1, 13, 0, 0, 0x00 }, // P
{ 2266, 0x0052, 13, 15, 15, 1, 14, 0, 0, 0x00 }, // R
{ 2371, 0x0054, 12, 15, 15, 0, 12, 20, 2, 0x00 }, // T
{ 2461, 0x0055, 12, 15, 15, 1, 14, 0, 0, 0x00 }, // U
{ 2551, 0x0056, 14, 15, 15, 0, 13, 22, 2, 0x00 }, // V
{ 2656, 0x0058, 13, 15, 15, 0, 13, 0, 0, 0x00 }, // X
{ 2761, 0x0061, 11, 11, 11, 0, 11, 24, 2, 0x00 }, // a
{ 2827, 0x0078, 10, 11, 11, 0, 10, 0, 0, 0x00 }, // x
{ 2882, 0x007A, 10, 11, 11, 0, 10, 0, 0, 0x00 } // z
};
// arial_20_4bpp
FONT_TABLE_LOCATION_FLASH_PRAGMA
KEEP extern const touchgfx::GlyphNode glyphs_arial_20_4bpp[] FONT_TABLE_LOCATION_FLASH_ATTRIBUTE;
FONT_GLYPH_LOCATION_FLASH_PRAGMA
KEEP extern const uint8_t unicodes_arial_20_4bpp_0[] FONT_GLYPH_LOCATION_FLASH_ATTRIBUTE;
FONT_SEARCHTABLE_LOCATION_FLASH_PRAGMA
KEEP extern const uint8_t* const unicodes_arial_20_4bpp[] FONT_SEARCHTABLE_LOCATION_FLASH_ATTRIBUTE = {
unicodes_arial_20_4bpp_0
};
FONT_KERNING_LOCATION_FLASH_PRAGMA
KEEP extern const touchgfx::KerningNode kerning_arial_20_4bpp[] FONT_KERNING_LOCATION_FLASH_ATTRIBUTE;
extern const touchgfx::FontContextualFormsTable arial_contextualFormsTable;
touchgfx::GeneratedFont& getFont_arial_20_4bpp();
touchgfx::GeneratedFont& getFont_arial_20_4bpp()
{
static touchgfx::GeneratedFont arial_20_4bpp(glyphs_arial_20_4bpp, 38, 23, 20, 0, 0, 4, 1, 0, 1, unicodes_arial_20_4bpp, kerning_arial_20_4bpp, 63, 0, 0, &arial_contextualFormsTable);
return arial_20_4bpp;
}
@@ -0,0 +1,50 @@
// Autogenerated, do not edit
#include <fonts/GeneratedFont.hpp>
FONT_TABLE_LOCATION_FLASH_PRAGMA
KEEP extern const touchgfx::GlyphNode glyphs_arial_40_4bpp[] FONT_TABLE_LOCATION_FLASH_ATTRIBUTE = {
{ 0, 0x002B, 20, 19, 24, 2, 23, 0, 0, 0x00 }, // plus
{ 190, 0x002D, 12, 4, 13, 1, 13, 0, 2, 0x00 }, // hyphen
{ 214, 0x0030, 20, 28, 28, 1, 22, 0, 0, 0x00 }, // zero
{ 494, 0x0031, 11, 28, 28, 4, 22, 2, 1, 0x00 }, // one
{ 662, 0x0032, 20, 28, 28, 1, 22, 0, 0, 0x00 }, // two
{ 942, 0x003F, 20, 28, 28, 1, 22, 0, 0, 0x00 }, // question
{ 1222, 0x0041, 27, 28, 28, 0, 27, 3, 2, 0x00 }, // A
{ 1614, 0x0042, 23, 28, 28, 2, 27, 0, 0, 0x00 }, // B
{ 1950, 0x0043, 26, 28, 28, 2, 29, 0, 0, 0x00 }, // C
{ 2314, 0x0044, 24, 28, 28, 3, 29, 0, 0, 0x00 }, // D
{ 2650, 0x0045, 22, 28, 28, 3, 27, 0, 0, 0x00 }, // E
{ 2958, 0x0048, 23, 28, 28, 3, 29, 0, 0, 0x00 }, // H
{ 3294, 0x0049, 5, 28, 28, 3, 11, 0, 0, 0x00 }, // I
{ 3378, 0x004C, 19, 28, 28, 2, 22, 0, 0, 0x00 }, // L
{ 3658, 0x004E, 23, 28, 28, 3, 29, 0, 0, 0x00 }, // N
{ 3994, 0x004F, 29, 28, 28, 1, 31, 5, 1, 0x00 }, // O
{ 4414, 0x0051, 29, 30, 28, 1, 31, 0, 0, 0x00 }, // Q
{ 4864, 0x0052, 26, 28, 28, 3, 29, 0, 0, 0x00 }, // R
{ 5228, 0x0053, 24, 28, 28, 1, 27, 0, 0, 0x00 }, // S
{ 5564, 0x0054, 24, 28, 28, 0, 24, 6, 3, 0x00 }, // T
{ 5900, 0x0055, 23, 28, 28, 3, 29, 0, 0, 0x00 }, // U
{ 6236, 0x0056, 27, 28, 28, 0, 27, 9, 3, 0x00 }, // V
{ 6628, 0x005A, 24, 28, 28, 0, 24, 0, 0, 0x00 } // Z
};
// arial_40_4bpp
FONT_TABLE_LOCATION_FLASH_PRAGMA
KEEP extern const touchgfx::GlyphNode glyphs_arial_40_4bpp[] FONT_TABLE_LOCATION_FLASH_ATTRIBUTE;
FONT_GLYPH_LOCATION_FLASH_PRAGMA
KEEP extern const uint8_t unicodes_arial_40_4bpp_0[] FONT_GLYPH_LOCATION_FLASH_ATTRIBUTE;
FONT_SEARCHTABLE_LOCATION_FLASH_PRAGMA
KEEP extern const uint8_t* const unicodes_arial_40_4bpp[] FONT_SEARCHTABLE_LOCATION_FLASH_ATTRIBUTE = {
unicodes_arial_40_4bpp_0
};
FONT_KERNING_LOCATION_FLASH_PRAGMA
KEEP extern const touchgfx::KerningNode kerning_arial_40_4bpp[] FONT_KERNING_LOCATION_FLASH_ATTRIBUTE;
extern const touchgfx::FontContextualFormsTable arial_contextualFormsTable;
touchgfx::GeneratedFont& getFont_arial_40_4bpp();
touchgfx::GeneratedFont& getFont_arial_40_4bpp()
{
static touchgfx::GeneratedFont arial_40_4bpp(glyphs_arial_40_4bpp, 23, 42, 40, 0, 0, 4, 1, 0, 0, unicodes_arial_40_4bpp, kerning_arial_40_4bpp, 63, 0, 0, &arial_contextualFormsTable);
return arial_40_4bpp;
}
@@ -0,0 +1,236 @@
/* DO NOT EDIT THIS FILE */
/* This file is autogenerated by the text-database code generator */
#include <touchgfx/hal/FlashDataReader.hpp>
#include <fonts/ApplicationFontProvider.hpp>
#include <fonts/CompressedUnmappedFontCache.hpp>
#include <fonts/UnmappedDataFont.hpp>
namespace touchgfx
{
GlyphNode UnmappedDataFont::glyphNodeBuffer;
UnmappedDataFont::UnmappedDataFont(const GlyphNode* glyphs, const uint16_t* unicodeList, uint16_t numGlyphs, uint16_t height, uint16_t baseline, uint8_t pixAboveTop, uint8_t pixBelowBottom, uint8_t bitsPerPixel, uint8_t byteAlignRow, uint8_t maxLeft, uint8_t maxRight, const uint8_t* const* glyphDataList, const KerningNode* kerningList, const Unicode::UnicodeChar fallbackChar, const Unicode::UnicodeChar ellipsisChar, const uint16_t* const gsubData, const FontContextualFormsTable* formsTable)
: Font(height, baseline, pixAboveTop, pixBelowBottom, bitsPerPixel, byteAlignRow, maxLeft, maxRight, fallbackChar, ellipsisChar),
glyphList(glyphs),
listSize(numGlyphs),
unicodes(unicodeList),
glyphDataList(glyphDataList),
kerningData(kerningList),
gsubTable(gsubData),
arabicTable(formsTable)
{
}
const GlyphNode* UnmappedDataFont::getGlyph(Unicode::UnicodeChar unicode, const uint8_t*& pixelData, uint8_t& bitsPerPixel) const
{
int index = lookupUnicode(unicode);
if (index != -1)
{
// Read glyphNode from unmapped flash
touchgfx::FlashDataReader* const flashReader = ApplicationFontProvider::getFlashReader();
if (flashReader)
{
flashReader->copyData(glyphList + index, &glyphNodeBuffer, sizeof(GlyphNode));
pixelData = getPixelData(const_cast<const GlyphNode*>(&glyphNodeBuffer));
bitsPerPixel = getBitsPerPixel();
return &glyphNodeBuffer;
}
}
return 0;
}
const uint8_t* UnmappedDataFont::getPixelData(const GlyphNode* glyph) const
{
const uint8_t* const* table = (const uint8_t* const*)glyphDataList;
return &(table[glyph->unicode / 2048][glyph->dataOffset]);
}
int8_t UnmappedDataFont::getKerning(Unicode::UnicodeChar prevChar, const GlyphNode* glyph) const
{
if (!glyph || glyph->kerningTableSize == 0)
{
return 0;
}
const KerningNode* kerndata = kerningData + glyph->kerningTablePos();
for (uint16_t i = glyph->kerningTableSize; i > 0; i--, kerndata++)
{
if (prevChar == kerndata->unicodePrevChar)
{
return kerndata->distance;
}
if (prevChar < kerndata->unicodePrevChar)
{
break;
}
}
return 0;
}
int UnmappedDataFont::lookupUnicode(uint16_t unicode) const
{
int32_t min = 0;
int32_t max = listSize - 1;
int32_t mid = min + (unicode - unicodes[min]); // Linear up from [min].unicode
if (mid < min)
{
// Unicode < unicodes[min] => not found
return -1;
}
if (mid > max)
{
// Linear up ends too high
mid = max - (unicodes[max] - unicode); // Linear down from [max].unicode
if (mid > max)
{
// Unicode > unicodes[max] => not found
return -1;
}
if (mid < min)
{
// Linear down ends too low, take the middle element
mid = (min + max) / 2;
}
}
while (min <= max)
{
if (unicode == unicodes[mid])
{
// Found at [mid]
return mid;
}
if (unicode < unicodes[mid])
{
// Unicode is in lower half
max = mid - 1;
if (max < min)
{
// Range is empty => not found
break;
}
// We adjusted max, try linear down from [max].unicode
mid = max - (unicodes[max] - unicode);
if (mid > max)
{
// Unicode > [max].unicode => not found
break;
}
if (mid < min)
{
// Linear down ends too low, take the middle element
mid = (min + max) / 2;
}
}
else
{
// Unicode is in upper half
min = mid + 1;
if (min > max)
{
// Range is empty => not found
break;
}
// We adjusted min, try linear up from [min].unicode
mid = min + (unicode - unicodes[min]);
if (mid < min)
{
// Unicode < [min].unicode => not found
break;
}
if (mid > max)
{
// Linear up ends too high, take the middle element
mid = (min + max) / 2;
}
}
}
return -1;
}
CompressedUnmappedDataFont::CompressedUnmappedDataFont(const GlyphNode* glyphs, const uint16_t* unicodes, uint16_t numGlyphs, uint16_t height, uint16_t baseline, uint8_t pixAboveTop, uint8_t pixBelowBottom, uint8_t bitsPerPixel, uint8_t byteAlignRow, uint8_t maxLeft, uint8_t maxRight, const uint8_t* const* glyphDataList, const KerningNode* kerningList, const Unicode::UnicodeChar fallbackChar, const Unicode::UnicodeChar ellipsisChar, const uint16_t* const gsubData, const FontContextualFormsTable* formsTable)
: UnmappedDataFont(glyphs, unicodes, numGlyphs, height, baseline, pixAboveTop, pixBelowBottom, bitsPerPixel, byteAlignRow, maxLeft, maxRight, glyphDataList, kerningList, fallbackChar, ellipsisChar, gsubData, formsTable)
{
}
const GlyphNode* CompressedUnmappedDataFont::getGlyph(Unicode::UnicodeChar unicode) const
{
const int index = lookupUnicode(unicode);
if (index != -1)
{
const GlyphNode* glyphNode = glyphList + index;
// Is the GlyphNode already cached
const GlyphNode* cachedNode = CompressedUnmappedFontCache::hasCachedGlyphNode(glyphNode);
if (cachedNode)
{
return cachedNode;
}
// Read glyphNode from unmapped flash
touchgfx::FlashDataReader* const flashReader = ApplicationFontProvider::getFlashReader();
if (flashReader)
{
GlyphNode* newGlyphNode = CompressedUnmappedFontCache::cacheGlyphNode(glyphNode);
flashReader->copyData(glyphList + index, (uint8_t*)newGlyphNode, sizeof(GlyphNode));
return newGlyphNode;
}
}
return 0;
}
const GlyphNode* CompressedUnmappedDataFont::getGlyph(Unicode::UnicodeChar unicode, const uint8_t*& pixelData, uint8_t& bitsPerPixel) const
{
const int index = lookupUnicode(unicode);
if (index != -1)
{
const GlyphNode* glyphNode = glyphList + index;
const uint8_t* pixels = 0;
const GlyphNode* cachedNode = CompressedUnmappedFontCache::hasCachedGlyphData(glyphNode, pixels);
if (pixels)
{
pixelData = pixels;
bitsPerPixel = 4;
return cachedNode;
}
// Cache glyphNode if not found already
if (cachedNode == 0)
{
cachedNode = getGlyph(unicode);
}
if (cachedNode->width() == 0)
{
bitsPerPixel = 4;
pixelData = 0;
return cachedNode;
}
// Read data from unmapped flash
touchgfx::FlashDataReader* const flashReader = ApplicationFontProvider::getFlashReader();
if (flashReader)
{
const uint8_t* const* table = (const uint8_t* const*)glyphDataList;
const uint32_t dataOffset = cachedNode->dataOffset & 0x3FFFFFFF;
const uint8_t* compressedData = &(table[unicode / 2048][dataOffset]);
const uint8_t* cachedData = CompressedUnmappedFontCache::cacheGlyphData(glyphNode, compressedData, flashReader);
if (cachedData)
{
bitsPerPixel = 4;
pixelData = cachedData;
return cachedNode;
}
}
}
return 0;
}
const uint8_t* CompressedUnmappedDataFont::getPixelData(const GlyphNode* glyph) const
{
return 0;
}
} // namespace touchgfx
@@ -0,0 +1,11 @@
/* DO NOT EDIT THIS FILE */
/* This file is autogenerated by the text-database code generator */
#include <touchgfx/VectorFontRendererImpl.hpp>
void touchgfx::VectorFontRendererImpl::getVectorFontBuffers(float*& pointArray, int& pointArraySize, uint8_t*& commandArray, int& commandArraySize)
{
pointArray = 0;
pointArraySize = 0;
commandArray = 0;
commandArraySize = 0;
}
@@ -0,0 +1,83 @@
/*********************************************************************************/
/********** THIS FILE IS GENERATED BY TOUCHGFX DESIGNER, DO NOT MODIFY ***********/
/*********************************************************************************/
#ifndef FRONTENDAPPLICATIONBASE_HPP
#define FRONTENDAPPLICATIONBASE_HPP
#include <mvp/MVPApplication.hpp>
#include <gui/model/Model.hpp>
class FrontendHeap;
class FrontendApplicationBase : public touchgfx::MVPApplication
{
public:
FrontendApplicationBase(Model& m, FrontendHeap& heap);
virtual ~FrontendApplicationBase() { }
virtual void changeToStartScreen()
{
gotoInitScreenScreenNoTransition();
}
// InitScreen
void gotoInitScreenScreenNoTransition();
// Overview
void gotoOverviewScreenNoTransition();
// Overdrive
void gotoOverdriveScreenNoTransition();
// Octaver
void gotoOctaverScreenNoTransition();
// Saturation
void gotoSaturationScreenNoTransition();
// Echo
void gotoEchoScreenNoTransition();
// Reverb
void gotoReverbScreenNoTransition();
// Equalizer
void gotoEqualizerScreenNoTransition();
// Oscillo
void gotoOscilloScreenNoTransition();
protected:
touchgfx::Callback<FrontendApplicationBase> transitionCallback;
FrontendHeap& frontendHeap;
Model& model;
// InitScreen
void gotoInitScreenScreenNoTransitionImpl();
// Overview
void gotoOverviewScreenNoTransitionImpl();
// Overdrive
void gotoOverdriveScreenNoTransitionImpl();
// Octaver
void gotoOctaverScreenNoTransitionImpl();
// Saturation
void gotoSaturationScreenNoTransitionImpl();
// Echo
void gotoEchoScreenNoTransitionImpl();
// Reverb
void gotoReverbScreenNoTransitionImpl();
// Equalizer
void gotoEqualizerScreenNoTransitionImpl();
// Oscillo
void gotoOscilloScreenNoTransitionImpl();
};
#endif // FRONTENDAPPLICATIONBASE_HPP
@@ -0,0 +1,119 @@
/*********************************************************************************/
/********** THIS FILE IS GENERATED BY TOUCHGFX DESIGNER, DO NOT MODIFY ***********/
/*********************************************************************************/
#ifndef FRONTENDHEAPBASE_HPP
#define FRONTENDHEAPBASE_HPP
#include <common/Meta.hpp>
#include <common/Partition.hpp>
#include <mvp/MVPHeap.hpp>
#include <touchgfx/transitions/NoTransition.hpp>
#include <gui/common/FrontendApplication.hpp>
#include <gui/model/Model.hpp>
#include <gui/initscreen_screen/InitScreenView.hpp>
#include <gui/initscreen_screen/InitScreenPresenter.hpp>
#include <gui/overview_screen/OverviewView.hpp>
#include <gui/overview_screen/OverviewPresenter.hpp>
#include <gui/overdrive_screen/OverdriveView.hpp>
#include <gui/overdrive_screen/OverdrivePresenter.hpp>
#include <gui/octaver_screen/OctaverView.hpp>
#include <gui/octaver_screen/OctaverPresenter.hpp>
#include <gui/saturation_screen/SaturationView.hpp>
#include <gui/saturation_screen/SaturationPresenter.hpp>
#include <gui/echo_screen/EchoView.hpp>
#include <gui/echo_screen/EchoPresenter.hpp>
#include <gui/reverb_screen/ReverbView.hpp>
#include <gui/reverb_screen/ReverbPresenter.hpp>
#include <gui/equalizer_screen/EqualizerView.hpp>
#include <gui/equalizer_screen/EqualizerPresenter.hpp>
#include <gui/oscillo_screen/OscilloView.hpp>
#include <gui/oscillo_screen/OscilloPresenter.hpp>
/**
* This class provides the memory that shall be used for memory allocations
* in the frontend. A single instance of the FrontendHeap is allocated once (in heap
* memory), and all other frontend objects such as views, presenters and data model are
* allocated within the scope of this FrontendHeap. As such, the RAM usage of the entire
* user interface is sizeof(FrontendHeap).
*
* @note The FrontendHeap reserves memory for the most memory-consuming presenter and
* view only. The largest of these classes are determined at compile-time using template
* magic. As such, it is important to add all presenters, views and transitions to the
* type lists in this class.
*
*/
class FrontendHeapBase : public touchgfx::MVPHeap
{
public:
/**
* A list of all view types. Must end with meta::Nil.
* @note All view types used in the application MUST be added to this list!
*/
typedef touchgfx::meta::TypeList< InitScreenView,
touchgfx::meta::TypeList< OverviewView,
touchgfx::meta::TypeList< OverdriveView,
touchgfx::meta::TypeList< OctaverView,
touchgfx::meta::TypeList< SaturationView,
touchgfx::meta::TypeList< EchoView,
touchgfx::meta::TypeList< ReverbView,
touchgfx::meta::TypeList< EqualizerView,
touchgfx::meta::TypeList< OscilloView,
touchgfx::meta::Nil > > > > > > > >
> GeneratedViewTypes;
/**
* Determine (compile time) the View type of largest size.
*/
typedef touchgfx::meta::select_type_maxsize< GeneratedViewTypes >::type MaxGeneratedViewType;
/**
* A list of all presenter types. Must end with meta::Nil.
* @note All presenter types used in the application MUST be added to this list!
*/
typedef touchgfx::meta::TypeList< InitScreenPresenter,
touchgfx::meta::TypeList< OverviewPresenter,
touchgfx::meta::TypeList< OverdrivePresenter,
touchgfx::meta::TypeList< OctaverPresenter,
touchgfx::meta::TypeList< SaturationPresenter,
touchgfx::meta::TypeList< EchoPresenter,
touchgfx::meta::TypeList< ReverbPresenter,
touchgfx::meta::TypeList< EqualizerPresenter,
touchgfx::meta::TypeList< OscilloPresenter,
touchgfx::meta::Nil > > > > > > > >
> GeneratedPresenterTypes;
/**
* Determine (compile time) the Presenter type of largest size.
*/
typedef touchgfx::meta::select_type_maxsize< GeneratedPresenterTypes >::type MaxGeneratedPresenterType;
/**
* A list of all transition types. Must end with meta::Nil.
* @note All transition types used in the application MUST be added to this list!
*/
typedef touchgfx::meta::TypeList< touchgfx::NoTransition,
touchgfx::meta::Nil
> GeneratedTransitionTypes;
/**
* Determine (compile time) the Transition type of largest size.
*/
typedef touchgfx::meta::select_type_maxsize< GeneratedTransitionTypes >::type MaxGeneratedTransitionType;
virtual void gotoStartScreen(FrontendApplication& app)
{
app.gotoInitScreenScreenNoTransition();
}
protected:
FrontendHeapBase(touchgfx::AbstractPartition& presenters, touchgfx::AbstractPartition& views, touchgfx::AbstractPartition& transitions, FrontendApplication& app)
: MVPHeap(presenters, views, transitions, app)
{
}
};
#endif // FRONTENDHEAPBASE_HPP
@@ -0,0 +1,11 @@
/*********************************************************************************/
/********** THIS FILE IS GENERATED BY TOUCHGFX DESIGNER, DO NOT MODIFY ***********/
/*********************************************************************************/
#ifndef SIMCONSTANTS_HPP
#define SIMCONSTANTS_HPP
static unsigned short SIM_WIDTH = 800;
static unsigned short SIM_HEIGHT = 480;
#define SIM_TITLE "CelloEffects"
#endif // SIMCONSTANTS_HPP
@@ -0,0 +1,82 @@
/*********************************************************************************/
/********** THIS FILE IS GENERATED BY TOUCHGFX DESIGNER, DO NOT MODIFY ***********/
/*********************************************************************************/
#ifndef ECHOVIEWBASE_HPP
#define ECHOVIEWBASE_HPP
#include <gui/common/FrontendApplication.hpp>
#include <mvp/View.hpp>
#include <gui/echo_screen/EchoPresenter.hpp>
#include <touchgfx/widgets/Box.hpp>
#include <touchgfx/widgets/Image.hpp>
#include <touchgfx/mixins/Draggable.hpp>
#include <touchgfx/widgets/TextArea.hpp>
#include <touchgfx/containers/Slider.hpp>
#include <touchgfx/widgets/ButtonWithLabel.hpp>
#include <touchgfx/widgets/ToggleButton.hpp>
class EchoViewBase : public touchgfx::View<EchoPresenter>
{
public:
EchoViewBase();
virtual ~EchoViewBase();
virtual void setupScreen();
/*
* Virtual Action Handlers
*/
virtual void toggleClicked()
{
// Override and implement this function in Echo
}
virtual void sliderDelaiChanged(int value)
{
// Override and implement this function in Echo
}
virtual void sliderFeedbackChanged(int value)
{
// Override and implement this function in Echo
}
virtual void sliderMixChanged(int value)
{
// Override and implement this function in Echo
}
protected:
FrontendApplication& application() {
return *static_cast<FrontendApplication*>(touchgfx::Application::getInstance());
}
/*
* Member Declarations
*/
touchgfx::Box __background;
touchgfx::Image image1;
touchgfx::Draggable< touchgfx::Box > box1;
touchgfx::TextArea textArea2;
touchgfx::TextArea textArea2_1;
touchgfx::TextArea textArea2_2;
touchgfx::Slider slider1;
touchgfx::Slider slider2;
touchgfx::ButtonWithLabel buttonWithLabel1;
touchgfx::Slider slider3;
touchgfx::ToggleButton toggleButton1;
touchgfx::TextArea textArea1;
private:
/*
* Callback Declarations
*/
touchgfx::Callback<EchoViewBase, const touchgfx::AbstractButton&> buttonCallback;
touchgfx::Callback<EchoViewBase, const touchgfx::Slider&, int> sliderValueChangedCallback;
/*
* Callback Handler Declarations
*/
void buttonCallbackHandler(const touchgfx::AbstractButton& src);
void sliderValueChangedCallbackHandler(const touchgfx::Slider& src, int value);
};
#endif // ECHOVIEWBASE_HPP
@@ -0,0 +1,123 @@
/*********************************************************************************/
/********** THIS FILE IS GENERATED BY TOUCHGFX DESIGNER, DO NOT MODIFY ***********/
/*********************************************************************************/
#ifndef EQUALIZERVIEWBASE_HPP
#define EQUALIZERVIEWBASE_HPP
#include <gui/common/FrontendApplication.hpp>
#include <mvp/View.hpp>
#include <gui/equalizer_screen/EqualizerPresenter.hpp>
#include <touchgfx/widgets/Box.hpp>
#include <touchgfx/widgets/Image.hpp>
#include <touchgfx/containers/Slider.hpp>
#include <touchgfx/widgets/ButtonWithLabel.hpp>
#include <touchgfx/widgets/TextArea.hpp>
#include <touchgfx/widgets/ToggleButton.hpp>
class EqualizerViewBase : public touchgfx::View<EqualizerPresenter>
{
public:
EqualizerViewBase();
virtual ~EqualizerViewBase();
virtual void setupScreen();
/*
* Virtual Action Handlers
*/
virtual void toggleClicked()
{
// Override and implement this function in Equalizer
}
virtual void sliderBand1Changed(int value)
{
// Override and implement this function in Equalizer
}
virtual void sliderBand2Changed(int value)
{
// Override and implement this function in Equalizer
}
virtual void sliderBand3Changed(int value)
{
// Override and implement this function in Equalizer
}
virtual void sliderBand4Changed(int value)
{
// Override and implement this function in Equalizer
}
virtual void sliderBand5Changed(int value)
{
// Override and implement this function in Equalizer
}
virtual void sliderBand6Changed(int value)
{
// Override and implement this function in Equalizer
}
virtual void sliderBand7Changed(int value)
{
// Override and implement this function in Equalizer
}
virtual void sliderBand8Changed(int value)
{
// Override and implement this function in Equalizer
}
virtual void sliderBand9Changed(int value)
{
// Override and implement this function in Equalizer
}
virtual void sliderBand10Changed(int value)
{
// Override and implement this function in Equalizer
}
protected:
FrontendApplication& application() {
return *static_cast<FrontendApplication*>(touchgfx::Application::getInstance());
}
/*
* Member Declarations
*/
touchgfx::Box __background;
touchgfx::Image image1;
touchgfx::Box box1;
touchgfx::Slider bandSlider1;
touchgfx::Slider bandSlider2;
touchgfx::Slider bandSlider3;
touchgfx::ButtonWithLabel buttonWithLabel1;
touchgfx::Slider bandSlider4;
touchgfx::Slider bandSlider5;
touchgfx::Slider bandSlider6;
touchgfx::Slider bandSlider7;
touchgfx::Slider bandSlider8;
touchgfx::Slider bandSlider9;
touchgfx::Slider bandSlider10;
touchgfx::TextArea textArea1;
touchgfx::TextArea textArea2;
touchgfx::TextArea textArea2_1;
touchgfx::TextArea textArea2_2;
touchgfx::TextArea textArea2_3;
touchgfx::TextArea textArea2_4;
touchgfx::TextArea textArea2_5;
touchgfx::TextArea textArea2_6;
touchgfx::TextArea textArea2_7;
touchgfx::TextArea textArea2_8;
touchgfx::TextArea textArea2_9;
touchgfx::ToggleButton toggleButton1;
private:
/*
* Callback Declarations
*/
touchgfx::Callback<EqualizerViewBase, const touchgfx::AbstractButton&> buttonCallback;
touchgfx::Callback<EqualizerViewBase, const touchgfx::Slider&, int> sliderValueChangedCallback;
/*
* Callback Handler Declarations
*/
void buttonCallbackHandler(const touchgfx::AbstractButton& src);
void sliderValueChangedCallbackHandler(const touchgfx::Slider& src, int value);
};
#endif // EQUALIZERVIEWBASE_HPP
@@ -0,0 +1,47 @@
/*********************************************************************************/
/********** THIS FILE IS GENERATED BY TOUCHGFX DESIGNER, DO NOT MODIFY ***********/
/*********************************************************************************/
#ifndef INITSCREENVIEWBASE_HPP
#define INITSCREENVIEWBASE_HPP
#include <gui/common/FrontendApplication.hpp>
#include <mvp/View.hpp>
#include <gui/initscreen_screen/InitScreenPresenter.hpp>
#include <touchgfx/widgets/Box.hpp>
#include <touchgfx/widgets/Image.hpp>
#include <touchgfx/widgets/ButtonWithIcon.hpp>
class InitScreenViewBase : public touchgfx::View<InitScreenPresenter>
{
public:
InitScreenViewBase();
virtual ~InitScreenViewBase();
virtual void setupScreen();
protected:
FrontendApplication& application() {
return *static_cast<FrontendApplication*>(touchgfx::Application::getInstance());
}
/*
* Member Declarations
*/
touchgfx::Box __background;
touchgfx::Image image1;
touchgfx::ButtonWithIcon buttonWithIcon1;
private:
/*
* Callback Declarations
*/
touchgfx::Callback<InitScreenViewBase, const touchgfx::AbstractButton&> buttonCallback;
/*
* Callback Handler Declarations
*/
void buttonCallbackHandler(const touchgfx::AbstractButton& src);
};
#endif // INITSCREENVIEWBASE_HPP
@@ -0,0 +1,93 @@
/*********************************************************************************/
/********** THIS FILE IS GENERATED BY TOUCHGFX DESIGNER, DO NOT MODIFY ***********/
/*********************************************************************************/
#ifndef OCTAVERVIEWBASE_HPP
#define OCTAVERVIEWBASE_HPP
#include <gui/common/FrontendApplication.hpp>
#include <mvp/View.hpp>
#include <gui/octaver_screen/OctaverPresenter.hpp>
#include <touchgfx/widgets/Box.hpp>
#include <touchgfx/widgets/Image.hpp>
#include <touchgfx/widgets/TextArea.hpp>
#include <touchgfx/containers/Slider.hpp>
#include <touchgfx/widgets/ToggleButton.hpp>
#include <touchgfx/widgets/ButtonWithLabel.hpp>
class OctaverViewBase : public touchgfx::View<OctaverPresenter>
{
public:
OctaverViewBase();
virtual ~OctaverViewBase();
virtual void setupScreen();
/*
* Virtual Action Handlers
*/
virtual void toggleClicked()
{
// Override and implement this function in Octaver
}
virtual void slider1Clicked(int value)
{
// Override and implement this function in Octaver
}
virtual void slider2Clicked(int value)
{
// Override and implement this function in Octaver
}
virtual void slider3Clicked(int value)
{
// Override and implement this function in Octaver
}
virtual void slider4Clicked(int value)
{
// Override and implement this function in Octaver
}
virtual void slider5Clicked(int value)
{
// Override and implement this function in Octaver
}
protected:
FrontendApplication& application() {
return *static_cast<FrontendApplication*>(touchgfx::Application::getInstance());
}
/*
* Member Declarations
*/
touchgfx::Box __background;
touchgfx::Image image1;
touchgfx::Box box1;
touchgfx::TextArea textArea2;
touchgfx::TextArea textArea3;
touchgfx::TextArea textArea4;
touchgfx::TextArea textArea5;
touchgfx::TextArea textArea6;
touchgfx::Slider slider1;
touchgfx::Slider slider2;
touchgfx::Slider slider3;
touchgfx::Slider slider4;
touchgfx::Slider slider5;
touchgfx::TextArea textArea1;
touchgfx::ToggleButton toggleButton1;
touchgfx::ButtonWithLabel buttonWithLabel1;
private:
/*
* Callback Declarations
*/
touchgfx::Callback<OctaverViewBase, const touchgfx::AbstractButton&> buttonCallback;
touchgfx::Callback<OctaverViewBase, const touchgfx::Slider&, int> sliderValueChangedCallback;
/*
* Callback Handler Declarations
*/
void buttonCallbackHandler(const touchgfx::AbstractButton& src);
void sliderValueChangedCallbackHandler(const touchgfx::Slider& src, int value);
};
#endif // OCTAVERVIEWBASE_HPP
@@ -0,0 +1,85 @@
/*********************************************************************************/
/********** THIS FILE IS GENERATED BY TOUCHGFX DESIGNER, DO NOT MODIFY ***********/
/*********************************************************************************/
#ifndef OSCILLOVIEWBASE_HPP
#define OSCILLOVIEWBASE_HPP
#include <gui/common/FrontendApplication.hpp>
#include <mvp/View.hpp>
#include <gui/oscillo_screen/OscilloPresenter.hpp>
#include <touchgfx/widgets/Box.hpp>
#include <touchgfx/widgets/Image.hpp>
#include <touchgfx/widgets/TextArea.hpp>
#include <touchgfx/widgets/ToggleButton.hpp>
#include <touchgfx/widgets/ButtonWithLabel.hpp>
#include <touchgfx/widgets/graph/Graph.hpp>
#include <touchgfx/widgets/graph/GraphElements.hpp>
#include <touchgfx/widgets/graph/GraphLabels.hpp>
#include <touchgfx/widgets/canvas/PainterRGB565.hpp>
#include <touchgfx/widgets/TextAreaWithWildcard.hpp>
class OscilloViewBase : public touchgfx::View<OscilloPresenter>
{
public:
OscilloViewBase();
virtual ~OscilloViewBase();
virtual void setupScreen();
/*
* Virtual Action Handlers
*/
virtual void toggleClicked()
{
// Override and implement this function in Oscillo
}
protected:
FrontendApplication& application() {
return *static_cast<FrontendApplication*>(touchgfx::Application::getInstance());
}
/*
* Member Declarations
*/
touchgfx::Box __background;
touchgfx::Image image1;
touchgfx::Box box1;
touchgfx::TextArea textArea1;
touchgfx::ToggleButton toggleButton1;
touchgfx::ButtonWithLabel buttonWithLabel1;
touchgfx::Graph<1024> graph1;
touchgfx::GraphElementGridX graph1MajorXAxisGrid;
touchgfx::GraphElementGridY graph1MajorYAxisGrid;
touchgfx::GraphLabelsX graph1MajorXAxisLabel;
touchgfx::GraphElementLine graph1Line1;
touchgfx::PainterRGB565 graph1Line1Painter;
touchgfx::Image image2;
touchgfx::TextAreaWithOneWildcard textArea2;
/*
* Wildcard Buffers
*/
static const uint16_t TEXTAREA2_SIZE = 10;
touchgfx::Unicode::UnicodeChar textArea2Buffer[TEXTAREA2_SIZE];
private:
/*
* Canvas Buffer Size
*/
static const uint32_t CANVAS_BUFFER_SIZE = 12000;
uint8_t canvasBuffer[CANVAS_BUFFER_SIZE];
/*
* Callback Declarations
*/
touchgfx::Callback<OscilloViewBase, const touchgfx::AbstractButton&> buttonCallback;
/*
* Callback Handler Declarations
*/
void buttonCallbackHandler(const touchgfx::AbstractButton& src);
};
#endif // OSCILLOVIEWBASE_HPP
@@ -0,0 +1,81 @@
/*********************************************************************************/
/********** THIS FILE IS GENERATED BY TOUCHGFX DESIGNER, DO NOT MODIFY ***********/
/*********************************************************************************/
#ifndef OVERDRIVEVIEWBASE_HPP
#define OVERDRIVEVIEWBASE_HPP
#include <gui/common/FrontendApplication.hpp>
#include <mvp/View.hpp>
#include <gui/overdrive_screen/OverdrivePresenter.hpp>
#include <touchgfx/widgets/Box.hpp>
#include <touchgfx/widgets/Image.hpp>
#include <touchgfx/widgets/ToggleButton.hpp>
#include <touchgfx/containers/Slider.hpp>
#include <touchgfx/widgets/ButtonWithLabel.hpp>
#include <touchgfx/widgets/TextArea.hpp>
class OverdriveViewBase : public touchgfx::View<OverdrivePresenter>
{
public:
OverdriveViewBase();
virtual ~OverdriveViewBase();
virtual void setupScreen();
/*
* Virtual Action Handlers
*/
virtual void toggleClicked()
{
// Override and implement this function in Overdrive
}
virtual void sliderDriveChanged(int value)
{
// Override and implement this function in Overdrive
}
virtual void sliderToneChanged(int value)
{
// Override and implement this function in Overdrive
}
virtual void sliderLevelChanged(int value)
{
// Override and implement this function in Overdrive
}
protected:
FrontendApplication& application() {
return *static_cast<FrontendApplication*>(touchgfx::Application::getInstance());
}
/*
* Member Declarations
*/
touchgfx::Box __background;
touchgfx::Image image1;
touchgfx::Box box1;
touchgfx::ToggleButton toggleButton1;
touchgfx::Slider slider1;
touchgfx::Slider slider2;
touchgfx::Slider slider3;
touchgfx::ButtonWithLabel buttonWithLabel1;
touchgfx::TextArea textArea1;
touchgfx::TextArea textArea2;
touchgfx::TextArea textArea2_1;
touchgfx::TextArea textArea2_2;
private:
/*
* Callback Declarations
*/
touchgfx::Callback<OverdriveViewBase, const touchgfx::AbstractButton&> buttonCallback;
touchgfx::Callback<OverdriveViewBase, const touchgfx::Slider&, int> sliderValueChangedCallback;
/*
* Callback Handler Declarations
*/
void buttonCallbackHandler(const touchgfx::AbstractButton& src);
void sliderValueChangedCallbackHandler(const touchgfx::Slider& src, int value);
};
#endif // OVERDRIVEVIEWBASE_HPP
@@ -0,0 +1,80 @@
/*********************************************************************************/
/********** THIS FILE IS GENERATED BY TOUCHGFX DESIGNER, DO NOT MODIFY ***********/
/*********************************************************************************/
#ifndef OVERVIEWVIEWBASE_HPP
#define OVERVIEWVIEWBASE_HPP
#include <gui/common/FrontendApplication.hpp>
#include <mvp/View.hpp>
#include <gui/overview_screen/OverviewPresenter.hpp>
#include <touchgfx/widgets/Box.hpp>
#include <touchgfx/widgets/Image.hpp>
#include <touchgfx/widgets/ButtonWithLabel.hpp>
#include <touchgfx/widgets/ToggleButton.hpp>
#include <touchgfx/containers/Slider.hpp>
#include <touchgfx/widgets/ScalableImage.hpp>
#include <touchgfx/widgets/RepeatButton.hpp>
class OverviewViewBase : public touchgfx::View<OverviewPresenter>
{
public:
OverviewViewBase();
virtual ~OverviewViewBase();
virtual void setupScreen();
/*
* Virtual Action Handlers
*/
virtual void toggleAudioOnOFF()
{
// Override and implement this function in Overview
}
virtual void slider1Changed(int value)
{
// Override and implement this function in Overview
}
virtual void repeatButtonClicked()
{
// Override and implement this function in Overview
}
protected:
FrontendApplication& application() {
return *static_cast<FrontendApplication*>(touchgfx::Application::getInstance());
}
/*
* Member Declarations
*/
touchgfx::Box __background;
touchgfx::Image image1;
touchgfx::Box box1;
touchgfx::ButtonWithLabel buttonWithLabel1;
touchgfx::ButtonWithLabel buttonWithLabel2;
touchgfx::ButtonWithLabel buttonWithLabel3;
touchgfx::ButtonWithLabel buttonWithLabel4;
touchgfx::ButtonWithLabel buttonWithLabel5;
touchgfx::ButtonWithLabel buttonWithLabel6;
touchgfx::ButtonWithLabel buttonWithLabel7;
touchgfx::ToggleButton toggleButton1;
touchgfx::Slider slider1;
touchgfx::ScalableImage scalableImage1;
touchgfx::RepeatButton repeatButton1;
private:
/*
* Callback Declarations
*/
touchgfx::Callback<OverviewViewBase, const touchgfx::AbstractButton&> buttonCallback;
touchgfx::Callback<OverviewViewBase, const touchgfx::Slider&, int> sliderValueChangedCallback;
/*
* Callback Handler Declarations
*/
void buttonCallbackHandler(const touchgfx::AbstractButton& src);
void sliderValueChangedCallbackHandler(const touchgfx::Slider& src, int value);
};
#endif // OVERVIEWVIEWBASE_HPP
@@ -0,0 +1,81 @@
/*********************************************************************************/
/********** THIS FILE IS GENERATED BY TOUCHGFX DESIGNER, DO NOT MODIFY ***********/
/*********************************************************************************/
#ifndef REVERBVIEWBASE_HPP
#define REVERBVIEWBASE_HPP
#include <gui/common/FrontendApplication.hpp>
#include <mvp/View.hpp>
#include <gui/reverb_screen/ReverbPresenter.hpp>
#include <touchgfx/widgets/Box.hpp>
#include <touchgfx/widgets/Image.hpp>
#include <touchgfx/widgets/TextArea.hpp>
#include <touchgfx/containers/Slider.hpp>
#include <touchgfx/widgets/ButtonWithLabel.hpp>
#include <touchgfx/widgets/ToggleButton.hpp>
class ReverbViewBase : public touchgfx::View<ReverbPresenter>
{
public:
ReverbViewBase();
virtual ~ReverbViewBase();
virtual void setupScreen();
/*
* Virtual Action Handlers
*/
virtual void toggleClicked()
{
// Override and implement this function in Reverb
}
virtual void sliderTailleChanged(int value)
{
// Override and implement this function in Reverb
}
virtual void sliderAmortiChanged(int value)
{
// Override and implement this function in Reverb
}
virtual void sliderMixChanged(int value)
{
// Override and implement this function in Reverb
}
protected:
FrontendApplication& application() {
return *static_cast<FrontendApplication*>(touchgfx::Application::getInstance());
}
/*
* Member Declarations
*/
touchgfx::Box __background;
touchgfx::Image image1;
touchgfx::Box box1;
touchgfx::TextArea textArea2;
touchgfx::TextArea textArea2_1;
touchgfx::TextArea textArea2_2;
touchgfx::Slider slider1;
touchgfx::Slider slider2;
touchgfx::Slider slider3;
touchgfx::TextArea textArea1;
touchgfx::ButtonWithLabel buttonWithLabel1;
touchgfx::ToggleButton toggleButton1;
private:
/*
* Callback Declarations
*/
touchgfx::Callback<ReverbViewBase, const touchgfx::AbstractButton&> buttonCallback;
touchgfx::Callback<ReverbViewBase, const touchgfx::Slider&, int> sliderValueChangedCallback;
/*
* Callback Handler Declarations
*/
void buttonCallbackHandler(const touchgfx::AbstractButton& src);
void sliderValueChangedCallbackHandler(const touchgfx::Slider& src, int value);
};
#endif // REVERBVIEWBASE_HPP
@@ -0,0 +1,75 @@
/*********************************************************************************/
/********** THIS FILE IS GENERATED BY TOUCHGFX DESIGNER, DO NOT MODIFY ***********/
/*********************************************************************************/
#ifndef SATURATIONVIEWBASE_HPP
#define SATURATIONVIEWBASE_HPP
#include <gui/common/FrontendApplication.hpp>
#include <mvp/View.hpp>
#include <gui/saturation_screen/SaturationPresenter.hpp>
#include <touchgfx/widgets/Box.hpp>
#include <touchgfx/widgets/Image.hpp>
#include <touchgfx/widgets/TextArea.hpp>
#include <touchgfx/containers/Slider.hpp>
#include <touchgfx/widgets/ToggleButton.hpp>
#include <touchgfx/widgets/ButtonWithLabel.hpp>
class SaturationViewBase : public touchgfx::View<SaturationPresenter>
{
public:
SaturationViewBase();
virtual ~SaturationViewBase();
virtual void setupScreen();
/*
* Virtual Action Handlers
*/
virtual void toggleClicked()
{
// Override and implement this function in Saturation
}
virtual void sliderDriveClicked(int value)
{
// Override and implement this function in Saturation
}
virtual void sliderLevelClicked(int value)
{
// Override and implement this function in Saturation
}
protected:
FrontendApplication& application() {
return *static_cast<FrontendApplication*>(touchgfx::Application::getInstance());
}
/*
* Member Declarations
*/
touchgfx::Box __background;
touchgfx::Image image1;
touchgfx::Box box1;
touchgfx::TextArea textArea2;
touchgfx::TextArea textArea2_1;
touchgfx::Slider slider1;
touchgfx::Slider slider2;
touchgfx::TextArea textArea1;
touchgfx::ToggleButton toggleButton1;
touchgfx::ButtonWithLabel buttonWithLabel1;
private:
/*
* Callback Declarations
*/
touchgfx::Callback<SaturationViewBase, const touchgfx::AbstractButton&> buttonCallback;
touchgfx::Callback<SaturationViewBase, const touchgfx::Slider&, int> sliderValueChangedCallback;
/*
* Callback Handler Declarations
*/
void buttonCallbackHandler(const touchgfx::AbstractButton& src);
void sliderValueChangedCallbackHandler(const touchgfx::Slider& src, int value);
};
#endif // SATURATIONVIEWBASE_HPP
@@ -0,0 +1,169 @@
/*********************************************************************************/
/********** THIS FILE IS GENERATED BY TOUCHGFX DESIGNER, DO NOT MODIFY ***********/
/*********************************************************************************/
#include <new>
#include <gui_generated/common/FrontendApplicationBase.hpp>
#include <gui/common/FrontendHeap.hpp>
#include <touchgfx/transitions/NoTransition.hpp>
#include <texts/TextKeysAndLanguages.hpp>
#include <touchgfx/Texts.hpp>
#include <touchgfx/hal/HAL.hpp>
#ifdef SIMULATOR
#include <platform/driver/lcd/LCD16bpp.hpp>
#endif
#include <gui/initscreen_screen/InitScreenView.hpp>
#include <gui/initscreen_screen/InitScreenPresenter.hpp>
#include <gui/overview_screen/OverviewView.hpp>
#include <gui/overview_screen/OverviewPresenter.hpp>
#include <gui/overdrive_screen/OverdriveView.hpp>
#include <gui/overdrive_screen/OverdrivePresenter.hpp>
#include <gui/octaver_screen/OctaverView.hpp>
#include <gui/octaver_screen/OctaverPresenter.hpp>
#include <gui/saturation_screen/SaturationView.hpp>
#include <gui/saturation_screen/SaturationPresenter.hpp>
#include <gui/echo_screen/EchoView.hpp>
#include <gui/echo_screen/EchoPresenter.hpp>
#include <gui/reverb_screen/ReverbView.hpp>
#include <gui/reverb_screen/ReverbPresenter.hpp>
#include <gui/equalizer_screen/EqualizerView.hpp>
#include <gui/equalizer_screen/EqualizerPresenter.hpp>
#include <gui/oscillo_screen/OscilloView.hpp>
#include <gui/oscillo_screen/OscilloPresenter.hpp>
using namespace touchgfx;
FrontendApplicationBase::FrontendApplicationBase(Model& m, FrontendHeap& heap)
: touchgfx::MVPApplication(),
transitionCallback(),
frontendHeap(heap),
model(m)
{
touchgfx::HAL::getInstance()->setDisplayOrientation(touchgfx::ORIENTATION_LANDSCAPE);
touchgfx::Texts::setLanguage(GB);
#ifdef SIMULATOR
reinterpret_cast<touchgfx::LCD16bpp&>(touchgfx::HAL::lcd()).enableTextureMapperAll();
reinterpret_cast<touchgfx::LCD16bpp&>(touchgfx::HAL::lcd()).enableDecompressorL8_All();
reinterpret_cast<touchgfx::LCD16bpp&>(touchgfx::HAL::lcd()).enableDecompressorRGB();
#endif
}
/*
* Screen Transition Declarations
*/
// InitScreen
void FrontendApplicationBase::gotoInitScreenScreenNoTransition()
{
transitionCallback = touchgfx::Callback<FrontendApplicationBase>(this, &FrontendApplicationBase::gotoInitScreenScreenNoTransitionImpl);
pendingScreenTransitionCallback = &transitionCallback;
}
void FrontendApplicationBase::gotoInitScreenScreenNoTransitionImpl()
{
touchgfx::makeTransition<InitScreenView, InitScreenPresenter, touchgfx::NoTransition, Model >(&currentScreen, &currentPresenter, frontendHeap, &currentTransition, &model);
}
// Overview
void FrontendApplicationBase::gotoOverviewScreenNoTransition()
{
transitionCallback = touchgfx::Callback<FrontendApplicationBase>(this, &FrontendApplicationBase::gotoOverviewScreenNoTransitionImpl);
pendingScreenTransitionCallback = &transitionCallback;
}
void FrontendApplicationBase::gotoOverviewScreenNoTransitionImpl()
{
touchgfx::makeTransition<OverviewView, OverviewPresenter, touchgfx::NoTransition, Model >(&currentScreen, &currentPresenter, frontendHeap, &currentTransition, &model);
}
// Overdrive
void FrontendApplicationBase::gotoOverdriveScreenNoTransition()
{
transitionCallback = touchgfx::Callback<FrontendApplicationBase>(this, &FrontendApplicationBase::gotoOverdriveScreenNoTransitionImpl);
pendingScreenTransitionCallback = &transitionCallback;
}
void FrontendApplicationBase::gotoOverdriveScreenNoTransitionImpl()
{
touchgfx::makeTransition<OverdriveView, OverdrivePresenter, touchgfx::NoTransition, Model >(&currentScreen, &currentPresenter, frontendHeap, &currentTransition, &model);
}
// Octaver
void FrontendApplicationBase::gotoOctaverScreenNoTransition()
{
transitionCallback = touchgfx::Callback<FrontendApplicationBase>(this, &FrontendApplicationBase::gotoOctaverScreenNoTransitionImpl);
pendingScreenTransitionCallback = &transitionCallback;
}
void FrontendApplicationBase::gotoOctaverScreenNoTransitionImpl()
{
touchgfx::makeTransition<OctaverView, OctaverPresenter, touchgfx::NoTransition, Model >(&currentScreen, &currentPresenter, frontendHeap, &currentTransition, &model);
}
// Saturation
void FrontendApplicationBase::gotoSaturationScreenNoTransition()
{
transitionCallback = touchgfx::Callback<FrontendApplicationBase>(this, &FrontendApplicationBase::gotoSaturationScreenNoTransitionImpl);
pendingScreenTransitionCallback = &transitionCallback;
}
void FrontendApplicationBase::gotoSaturationScreenNoTransitionImpl()
{
touchgfx::makeTransition<SaturationView, SaturationPresenter, touchgfx::NoTransition, Model >(&currentScreen, &currentPresenter, frontendHeap, &currentTransition, &model);
}
// Echo
void FrontendApplicationBase::gotoEchoScreenNoTransition()
{
transitionCallback = touchgfx::Callback<FrontendApplicationBase>(this, &FrontendApplicationBase::gotoEchoScreenNoTransitionImpl);
pendingScreenTransitionCallback = &transitionCallback;
}
void FrontendApplicationBase::gotoEchoScreenNoTransitionImpl()
{
touchgfx::makeTransition<EchoView, EchoPresenter, touchgfx::NoTransition, Model >(&currentScreen, &currentPresenter, frontendHeap, &currentTransition, &model);
}
// Reverb
void FrontendApplicationBase::gotoReverbScreenNoTransition()
{
transitionCallback = touchgfx::Callback<FrontendApplicationBase>(this, &FrontendApplicationBase::gotoReverbScreenNoTransitionImpl);
pendingScreenTransitionCallback = &transitionCallback;
}
void FrontendApplicationBase::gotoReverbScreenNoTransitionImpl()
{
touchgfx::makeTransition<ReverbView, ReverbPresenter, touchgfx::NoTransition, Model >(&currentScreen, &currentPresenter, frontendHeap, &currentTransition, &model);
}
// Equalizer
void FrontendApplicationBase::gotoEqualizerScreenNoTransition()
{
transitionCallback = touchgfx::Callback<FrontendApplicationBase>(this, &FrontendApplicationBase::gotoEqualizerScreenNoTransitionImpl);
pendingScreenTransitionCallback = &transitionCallback;
}
void FrontendApplicationBase::gotoEqualizerScreenNoTransitionImpl()
{
touchgfx::makeTransition<EqualizerView, EqualizerPresenter, touchgfx::NoTransition, Model >(&currentScreen, &currentPresenter, frontendHeap, &currentTransition, &model);
}
// Oscillo
void FrontendApplicationBase::gotoOscilloScreenNoTransition()
{
transitionCallback = touchgfx::Callback<FrontendApplicationBase>(this, &FrontendApplicationBase::gotoOscilloScreenNoTransitionImpl);
pendingScreenTransitionCallback = &transitionCallback;
}
void FrontendApplicationBase::gotoOscilloScreenNoTransitionImpl()
{
touchgfx::makeTransition<OscilloView, OscilloPresenter, touchgfx::NoTransition, Model >(&currentScreen, &currentPresenter, frontendHeap, &currentTransition, &model);
}
@@ -0,0 +1,139 @@
/*********************************************************************************/
/********** THIS FILE IS GENERATED BY TOUCHGFX DESIGNER, DO NOT MODIFY ***********/
/*********************************************************************************/
#include <gui_generated/echo_screen/EchoViewBase.hpp>
#include <touchgfx/Color.hpp>
#include <images/BitmapDatabase.hpp>
#include <texts/TextKeysAndLanguages.hpp>
EchoViewBase::EchoViewBase() :
buttonCallback(this, &EchoViewBase::buttonCallbackHandler),
sliderValueChangedCallback(this, &EchoViewBase::sliderValueChangedCallbackHandler)
{
__background.setPosition(0, 0, 800, 480);
__background.setColor(touchgfx::Color::getColorFromRGB(0, 0, 0));
add(__background);
image1.setXY(0, -1);
image1.setBitmap(touchgfx::Bitmap(BITMAP_FONDHORLOGERIE1_ID));
add(image1);
box1.setPosition(0, 0, 800, 480);
box1.setColor(touchgfx::Color::getColorFromRGB(35, 24, 15));
box1.setAlpha(240);
add(box1);
textArea2.setXY(130, 161);
textArea2.setColor(touchgfx::Color::getColorFromRGB(230, 214, 170));
textArea2.setLinespacing(0);
textArea2.setTypedText(touchgfx::TypedText(T_DELAY));
add(textArea2);
textArea2_1.setXY(112, 271);
textArea2_1.setColor(touchgfx::Color::getColorFromRGB(230, 214, 170));
textArea2_1.setLinespacing(0);
textArea2_1.setTypedText(touchgfx::TypedText(T_FEEDBACK));
add(textArea2_1);
textArea2_2.setXY(142, 371);
textArea2_2.setColor(touchgfx::Color::getColorFromRGB(230, 214, 170));
textArea2_2.setLinespacing(0);
textArea2_2.setTypedText(touchgfx::TypedText(T_MIX));
add(textArea2_2);
slider1.setXY(280, 145);
slider1.setBitmaps(touchgfx::Bitmap(BITMAP_GLASS_THEME_IMAGES_WIDGETS_SLIDER_HORIZONTAL_THICK_TRACK_LARGE_ID), touchgfx::Bitmap(BITMAP_GLASS_THEME_IMAGES_WIDGETS_SLIDER_HORIZONTAL_THICK_FILLER_LARGE_ID), touchgfx::Bitmap(BITMAP_GLASS_THEME_IMAGES_WIDGETS_SLIDER_HORIZONTAL_THICK_ROUNDED_DARK_ID));
slider1.setupHorizontalSlider(28, 21, 0, 0, 400);
slider1.setValueRange(0, 100);
slider1.setValue(0);
slider1.setNewValueCallback(sliderValueChangedCallback);
add(slider1);
slider2.setXY(280, 255);
slider2.setBitmaps(touchgfx::Bitmap(BITMAP_GLASS_THEME_IMAGES_WIDGETS_SLIDER_HORIZONTAL_THICK_TRACK_LARGE_ID), touchgfx::Bitmap(BITMAP_GLASS_THEME_IMAGES_WIDGETS_SLIDER_HORIZONTAL_THICK_FILLER_LARGE_ID), touchgfx::Bitmap(BITMAP_GLASS_THEME_IMAGES_WIDGETS_SLIDER_HORIZONTAL_THICK_ROUNDED_DARK_ID));
slider2.setupHorizontalSlider(28, 21, 0, 0, 400);
slider2.setValueRange(0, 100);
slider2.setValue(0);
slider2.setNewValueCallback(sliderValueChangedCallback);
add(slider2);
buttonWithLabel1.setXY(0, 0);
buttonWithLabel1.setBitmaps(touchgfx::Bitmap(BITMAP_GLASS_THEME_IMAGES_WIDGETS_BUTTON_REGULAR_HEIGHT_50_SMALL_ROUNDED_NORMAL_ID), touchgfx::Bitmap(BITMAP_GLASS_THEME_IMAGES_WIDGETS_BUTTON_REGULAR_HEIGHT_50_SMALL_ROUNDED_PRESSED_ID));
buttonWithLabel1.setLabelText(touchgfx::TypedText(T_BACK));
buttonWithLabel1.setLabelColor(touchgfx::Color::getColorFromRGB(230, 214, 170));
buttonWithLabel1.setLabelColorPressed(touchgfx::Color::getColorFromRGB(230, 214, 170));
buttonWithLabel1.setAction(buttonCallback);
add(buttonWithLabel1);
slider3.setXY(280, 365);
slider3.setBitmaps(touchgfx::Bitmap(BITMAP_GLASS_THEME_IMAGES_WIDGETS_SLIDER_HORIZONTAL_THICK_TRACK_LARGE_ID), touchgfx::Bitmap(BITMAP_GLASS_THEME_IMAGES_WIDGETS_SLIDER_HORIZONTAL_THICK_FILLER_LARGE_ID), touchgfx::Bitmap(BITMAP_GLASS_THEME_IMAGES_WIDGETS_SLIDER_HORIZONTAL_THICK_ROUNDED_DARK_ID));
slider3.setupHorizontalSlider(28, 21, 0, 0, 400);
slider3.setValueRange(0, 100);
slider3.setValue(0);
slider3.setNewValueCallback(sliderValueChangedCallback);
add(slider3);
toggleButton1.setXY(576, 20);
toggleButton1.setBitmaps(touchgfx::Bitmap(BITMAP_GLASS_THEME_IMAGES_WIDGETS_TOGGLEBUTTON_LARGE_ROUND_TEXT_OFF_NORMAL_ID), touchgfx::Bitmap(BITMAP_GLASS_THEME_IMAGES_WIDGETS_TOGGLEBUTTON_LARGE_ROUND_TEXT_ON_ACTIVE_ID));
toggleButton1.setAction(buttonCallback);
add(toggleButton1);
textArea1.setXY(342, 27);
textArea1.setColor(touchgfx::Color::getColorFromRGB(230, 214, 170));
textArea1.setLinespacing(0);
textArea1.setTypedText(touchgfx::TypedText(T_ECHO));
add(textArea1);
}
EchoViewBase::~EchoViewBase()
{
}
void EchoViewBase::setupScreen()
{
}
void EchoViewBase::buttonCallbackHandler(const touchgfx::AbstractButton& src)
{
if (&src == &buttonWithLabel1)
{
//Interaction1
//When buttonWithLabel1 clicked change screen to Overview
//Go to Overview with no screen transition
application().gotoOverviewScreenNoTransition();
}
if (&src == &toggleButton1)
{
//Interaction2
//When toggleButton1 clicked call virtual function
//Call toggleClicked
toggleClicked();
}
}
void EchoViewBase::sliderValueChangedCallbackHandler(const touchgfx::Slider& src, int value)
{
if (&src == &slider1)
{
//Interaction3
//When slider1 value changed call virtual function
//Call sliderDelaiChanged
sliderDelaiChanged(value);
}
if (&src == &slider2)
{
//Interaction4
//When slider2 value changed call virtual function
//Call sliderFeedbackChanged
sliderFeedbackChanged(value);
}
if (&src == &slider3)
{
//Interaction5
//When slider3 value changed call virtual function
//Call sliderMixChanged
sliderMixChanged(value);
}
}
@@ -0,0 +1,286 @@
/*********************************************************************************/
/********** THIS FILE IS GENERATED BY TOUCHGFX DESIGNER, DO NOT MODIFY ***********/
/*********************************************************************************/
#include <gui_generated/equalizer_screen/EqualizerViewBase.hpp>
#include <touchgfx/Color.hpp>
#include <images/BitmapDatabase.hpp>
#include <texts/TextKeysAndLanguages.hpp>
EqualizerViewBase::EqualizerViewBase() :
buttonCallback(this, &EqualizerViewBase::buttonCallbackHandler),
sliderValueChangedCallback(this, &EqualizerViewBase::sliderValueChangedCallbackHandler)
{
__background.setPosition(0, 0, 800, 480);
__background.setColor(touchgfx::Color::getColorFromRGB(0, 0, 0));
add(__background);
image1.setXY(0, -1);
image1.setBitmap(touchgfx::Bitmap(BITMAP_FONDHORLOGERIE1_ID));
add(image1);
box1.setPosition(0, 0, 800, 480);
box1.setColor(touchgfx::Color::getColorFromRGB(35, 24, 15));
box1.setAlpha(240);
add(box1);
bandSlider1.setXY(30, 80);
bandSlider1.setBitmaps(touchgfx::Bitmap(BITMAP_GLASS_THEME_IMAGES_WIDGETS_SLIDER_VERTICAL_THICK_TRACK_MEDIUM_ID), touchgfx::Bitmap(BITMAP_GLASS_THEME_IMAGES_WIDGETS_SLIDER_VERTICAL_THICK_FILLER_MEDIUM_ID), touchgfx::Bitmap(BITMAP_GLASS_THEME_IMAGES_WIDGETS_SLIDER_VERTICAL_THICK_ROUNDED_DARK_ID));
bandSlider1.setupVerticalSlider(23, 26, 0, 0, 300);
bandSlider1.setValueRange(0, 100);
bandSlider1.setValue(0);
bandSlider1.setNewValueCallback(sliderValueChangedCallback);
add(bandSlider1);
bandSlider2.setXY(105, 80);
bandSlider2.setBitmaps(touchgfx::Bitmap(BITMAP_GLASS_THEME_IMAGES_WIDGETS_SLIDER_VERTICAL_THICK_TRACK_MEDIUM_ID), touchgfx::Bitmap(BITMAP_GLASS_THEME_IMAGES_WIDGETS_SLIDER_VERTICAL_THICK_FILLER_MEDIUM_ID), touchgfx::Bitmap(BITMAP_GLASS_THEME_IMAGES_WIDGETS_SLIDER_VERTICAL_THICK_ROUNDED_DARK_ID));
bandSlider2.setupVerticalSlider(23, 26, 0, 0, 300);
bandSlider2.setValueRange(0, 100);
bandSlider2.setValue(0);
bandSlider2.setNewValueCallback(sliderValueChangedCallback);
add(bandSlider2);
bandSlider3.setXY(180, 80);
bandSlider3.setBitmaps(touchgfx::Bitmap(BITMAP_GLASS_THEME_IMAGES_WIDGETS_SLIDER_VERTICAL_THICK_TRACK_MEDIUM_ID), touchgfx::Bitmap(BITMAP_GLASS_THEME_IMAGES_WIDGETS_SLIDER_VERTICAL_THICK_FILLER_MEDIUM_ID), touchgfx::Bitmap(BITMAP_GLASS_THEME_IMAGES_WIDGETS_SLIDER_VERTICAL_THICK_ROUNDED_DARK_ID));
bandSlider3.setupVerticalSlider(23, 26, 0, 0, 300);
bandSlider3.setValueRange(0, 100);
bandSlider3.setValue(0);
bandSlider3.setNewValueCallback(sliderValueChangedCallback);
add(bandSlider3);
buttonWithLabel1.setXY(0, 0);
buttonWithLabel1.setBitmaps(touchgfx::Bitmap(BITMAP_GLASS_THEME_IMAGES_WIDGETS_BUTTON_REGULAR_HEIGHT_50_SMALL_ROUNDED_NORMAL_ID), touchgfx::Bitmap(BITMAP_GLASS_THEME_IMAGES_WIDGETS_BUTTON_REGULAR_HEIGHT_50_SMALL_ROUNDED_PRESSED_ID));
buttonWithLabel1.setLabelText(touchgfx::TypedText(T_BACK));
buttonWithLabel1.setLabelColor(touchgfx::Color::getColorFromRGB(230, 214, 170));
buttonWithLabel1.setLabelColorPressed(touchgfx::Color::getColorFromRGB(230, 214, 170));
buttonWithLabel1.setAction(buttonCallback);
add(buttonWithLabel1);
bandSlider4.setXY(255, 80);
bandSlider4.setBitmaps(touchgfx::Bitmap(BITMAP_GLASS_THEME_IMAGES_WIDGETS_SLIDER_VERTICAL_THICK_TRACK_MEDIUM_ID), touchgfx::Bitmap(BITMAP_GLASS_THEME_IMAGES_WIDGETS_SLIDER_VERTICAL_THICK_FILLER_MEDIUM_ID), touchgfx::Bitmap(BITMAP_GLASS_THEME_IMAGES_WIDGETS_SLIDER_VERTICAL_THICK_ROUNDED_DARK_ID));
bandSlider4.setupVerticalSlider(23, 26, 0, 0, 300);
bandSlider4.setValueRange(0, 100);
bandSlider4.setValue(0);
bandSlider4.setNewValueCallback(sliderValueChangedCallback);
add(bandSlider4);
bandSlider5.setXY(330, 80);
bandSlider5.setBitmaps(touchgfx::Bitmap(BITMAP_GLASS_THEME_IMAGES_WIDGETS_SLIDER_VERTICAL_THICK_TRACK_MEDIUM_ID), touchgfx::Bitmap(BITMAP_GLASS_THEME_IMAGES_WIDGETS_SLIDER_VERTICAL_THICK_FILLER_MEDIUM_ID), touchgfx::Bitmap(BITMAP_GLASS_THEME_IMAGES_WIDGETS_SLIDER_VERTICAL_THICK_ROUNDED_DARK_ID));
bandSlider5.setupVerticalSlider(23, 26, 0, 0, 300);
bandSlider5.setValueRange(0, 100);
bandSlider5.setValue(0);
bandSlider5.setNewValueCallback(sliderValueChangedCallback);
add(bandSlider5);
bandSlider6.setXY(420, 80);
bandSlider6.setBitmaps(touchgfx::Bitmap(BITMAP_GLASS_THEME_IMAGES_WIDGETS_SLIDER_VERTICAL_THICK_TRACK_MEDIUM_ID), touchgfx::Bitmap(BITMAP_GLASS_THEME_IMAGES_WIDGETS_SLIDER_VERTICAL_THICK_FILLER_MEDIUM_ID), touchgfx::Bitmap(BITMAP_GLASS_THEME_IMAGES_WIDGETS_SLIDER_VERTICAL_THICK_ROUNDED_DARK_ID));
bandSlider6.setupVerticalSlider(23, 26, 0, 0, 300);
bandSlider6.setValueRange(0, 100);
bandSlider6.setValue(0);
bandSlider6.setNewValueCallback(sliderValueChangedCallback);
add(bandSlider6);
bandSlider7.setXY(495, 80);
bandSlider7.setBitmaps(touchgfx::Bitmap(BITMAP_GLASS_THEME_IMAGES_WIDGETS_SLIDER_VERTICAL_THICK_TRACK_MEDIUM_ID), touchgfx::Bitmap(BITMAP_GLASS_THEME_IMAGES_WIDGETS_SLIDER_VERTICAL_THICK_FILLER_MEDIUM_ID), touchgfx::Bitmap(BITMAP_GLASS_THEME_IMAGES_WIDGETS_SLIDER_VERTICAL_THICK_ROUNDED_DARK_ID));
bandSlider7.setupVerticalSlider(23, 26, 0, 0, 300);
bandSlider7.setValueRange(0, 100);
bandSlider7.setValue(0);
bandSlider7.setNewValueCallback(sliderValueChangedCallback);
add(bandSlider7);
bandSlider8.setXY(570, 80);
bandSlider8.setBitmaps(touchgfx::Bitmap(BITMAP_GLASS_THEME_IMAGES_WIDGETS_SLIDER_VERTICAL_THICK_TRACK_MEDIUM_ID), touchgfx::Bitmap(BITMAP_GLASS_THEME_IMAGES_WIDGETS_SLIDER_VERTICAL_THICK_FILLER_MEDIUM_ID), touchgfx::Bitmap(BITMAP_GLASS_THEME_IMAGES_WIDGETS_SLIDER_VERTICAL_THICK_ROUNDED_DARK_ID));
bandSlider8.setupVerticalSlider(23, 26, 0, 0, 300);
bandSlider8.setValueRange(0, 100);
bandSlider8.setValue(0);
bandSlider8.setNewValueCallback(sliderValueChangedCallback);
add(bandSlider8);
bandSlider9.setXY(645, 80);
bandSlider9.setBitmaps(touchgfx::Bitmap(BITMAP_GLASS_THEME_IMAGES_WIDGETS_SLIDER_VERTICAL_THICK_TRACK_MEDIUM_ID), touchgfx::Bitmap(BITMAP_GLASS_THEME_IMAGES_WIDGETS_SLIDER_VERTICAL_THICK_FILLER_MEDIUM_ID), touchgfx::Bitmap(BITMAP_GLASS_THEME_IMAGES_WIDGETS_SLIDER_VERTICAL_THICK_ROUNDED_DARK_ID));
bandSlider9.setupVerticalSlider(23, 26, 0, 0, 300);
bandSlider9.setValueRange(0, 100);
bandSlider9.setValue(0);
bandSlider9.setNewValueCallback(sliderValueChangedCallback);
add(bandSlider9);
bandSlider10.setXY(720, 80);
bandSlider10.setBitmaps(touchgfx::Bitmap(BITMAP_GLASS_THEME_IMAGES_WIDGETS_SLIDER_VERTICAL_THICK_TRACK_MEDIUM_ID), touchgfx::Bitmap(BITMAP_GLASS_THEME_IMAGES_WIDGETS_SLIDER_VERTICAL_THICK_FILLER_MEDIUM_ID), touchgfx::Bitmap(BITMAP_GLASS_THEME_IMAGES_WIDGETS_SLIDER_VERTICAL_THICK_ROUNDED_DARK_ID));
bandSlider10.setupVerticalSlider(23, 26, 0, 0, 300);
bandSlider10.setValueRange(0, 100);
bandSlider10.setValue(0);
bandSlider10.setNewValueCallback(sliderValueChangedCallback);
add(bandSlider10);
textArea1.setXY(287, 24);
textArea1.setColor(touchgfx::Color::getColorFromRGB(230, 214, 170));
textArea1.setLinespacing(0);
textArea1.setTypedText(touchgfx::TypedText(T_EQUALIZER));
add(textArea1);
textArea2.setXY(47, 440);
textArea2.setColor(touchgfx::Color::getColorFromRGB(230, 214, 170));
textArea2.setLinespacing(0);
textArea2.setTypedText(touchgfx::TypedText(T_EQ_31));
add(textArea2);
textArea2_1.setXY(122, 440);
textArea2_1.setColor(touchgfx::Color::getColorFromRGB(230, 214, 170));
textArea2_1.setLinespacing(0);
textArea2_1.setTypedText(touchgfx::TypedText(T_EQ_62));
add(textArea2_1);
textArea2_2.setXY(192, 440);
textArea2_2.setColor(touchgfx::Color::getColorFromRGB(230, 214, 170));
textArea2_2.setLinespacing(0);
textArea2_2.setTypedText(touchgfx::TypedText(T_EQ_125));
add(textArea2_2);
textArea2_3.setXY(267, 440);
textArea2_3.setColor(touchgfx::Color::getColorFromRGB(230, 214, 170));
textArea2_3.setLinespacing(0);
textArea2_3.setTypedText(touchgfx::TypedText(T_EQ_250));
add(textArea2_3);
textArea2_4.setXY(342, 440);
textArea2_4.setColor(touchgfx::Color::getColorFromRGB(230, 214, 170));
textArea2_4.setLinespacing(0);
textArea2_4.setTypedText(touchgfx::TypedText(T_EQ_500));
add(textArea2_4);
textArea2_5.setXY(436, 440);
textArea2_5.setColor(touchgfx::Color::getColorFromRGB(230, 214, 170));
textArea2_5.setLinespacing(0);
textArea2_5.setTypedText(touchgfx::TypedText(T_EQ_1K));
add(textArea2_5);
textArea2_6.setXY(511, 440);
textArea2_6.setColor(touchgfx::Color::getColorFromRGB(230, 214, 170));
textArea2_6.setLinespacing(0);
textArea2_6.setTypedText(touchgfx::TypedText(T_EQ_2K));
add(textArea2_6);
textArea2_7.setXY(586, 440);
textArea2_7.setColor(touchgfx::Color::getColorFromRGB(230, 214, 170));
textArea2_7.setLinespacing(0);
textArea2_7.setTypedText(touchgfx::TypedText(T_EQ_4K));
add(textArea2_7);
textArea2_8.setXY(661, 440);
textArea2_8.setColor(touchgfx::Color::getColorFromRGB(230, 214, 170));
textArea2_8.setLinespacing(0);
textArea2_8.setTypedText(touchgfx::TypedText(T_EQ_8K));
add(textArea2_8);
textArea2_9.setXY(731, 440);
textArea2_9.setColor(touchgfx::Color::getColorFromRGB(230, 214, 170));
textArea2_9.setLinespacing(0);
textArea2_9.setTypedText(touchgfx::TypedText(T_EQ_16K));
add(textArea2_9);
toggleButton1.setXY(576, 20);
toggleButton1.setBitmaps(touchgfx::Bitmap(BITMAP_GLASS_THEME_IMAGES_WIDGETS_TOGGLEBUTTON_LARGE_ROUND_TEXT_OFF_NORMAL_ID), touchgfx::Bitmap(BITMAP_GLASS_THEME_IMAGES_WIDGETS_TOGGLEBUTTON_LARGE_ROUND_TEXT_ON_ACTIVE_ID));
toggleButton1.setAction(buttonCallback);
add(toggleButton1);
}
EqualizerViewBase::~EqualizerViewBase()
{
}
void EqualizerViewBase::setupScreen()
{
}
void EqualizerViewBase::buttonCallbackHandler(const touchgfx::AbstractButton& src)
{
if (&src == &buttonWithLabel1)
{
//Interaction1
//When buttonWithLabel1 clicked change screen to Overview
//Go to Overview with no screen transition
application().gotoOverviewScreenNoTransition();
}
if (&src == &toggleButton1)
{
//Interaction2
//When toggleButton1 clicked call virtual function
//Call toggleClicked
toggleClicked();
}
}
void EqualizerViewBase::sliderValueChangedCallbackHandler(const touchgfx::Slider& src, int value)
{
if (&src == &bandSlider1)
{
//Interaction3
//When bandSlider1 value changed call virtual function
//Call sliderBand1Changed
sliderBand1Changed(value);
}
if (&src == &bandSlider2)
{
//Interaction4
//When bandSlider2 value changed call virtual function
//Call sliderBand2Changed
sliderBand2Changed(value);
}
if (&src == &bandSlider3)
{
//Interaction5
//When bandSlider3 value changed call virtual function
//Call sliderBand3Changed
sliderBand3Changed(value);
}
if (&src == &bandSlider4)
{
//Interaction6
//When bandSlider4 value changed call virtual function
//Call sliderBand4Changed
sliderBand4Changed(value);
}
if (&src == &bandSlider5)
{
//Interaction7
//When bandSlider5 value changed call virtual function
//Call sliderBand5Changed
sliderBand5Changed(value);
}
if (&src == &bandSlider6)
{
//Interaction8
//When bandSlider6 value changed call virtual function
//Call sliderBand6Changed
sliderBand6Changed(value);
}
if (&src == &bandSlider7)
{
//Interaction9
//When bandSlider7 value changed call virtual function
//Call sliderBand7Changed
sliderBand7Changed(value);
}
if (&src == &bandSlider8)
{
//Interaction10
//When bandSlider8 value changed call virtual function
//Call sliderBand8Changed
sliderBand8Changed(value);
}
if (&src == &bandSlider9)
{
//Interaction11
//When bandSlider9 value changed call virtual function
//Call sliderBand9Changed
sliderBand9Changed(value);
}
if (&src == &bandSlider10)
{
//Interaction12
//When bandSlider10 value changed call virtual function
//Call sliderBand10Changed
sliderBand10Changed(value);
}
}
@@ -0,0 +1,45 @@
/*********************************************************************************/
/********** THIS FILE IS GENERATED BY TOUCHGFX DESIGNER, DO NOT MODIFY ***********/
/*********************************************************************************/
#include <gui_generated/initscreen_screen/InitScreenViewBase.hpp>
#include <touchgfx/Color.hpp>
#include <images/BitmapDatabase.hpp>
InitScreenViewBase::InitScreenViewBase() :
buttonCallback(this, &InitScreenViewBase::buttonCallbackHandler)
{
__background.setPosition(0, 0, 800, 480);
__background.setColor(touchgfx::Color::getColorFromRGB(0, 0, 0));
add(__background);
image1.setXY(0, -1);
image1.setBitmap(touchgfx::Bitmap(BITMAP_FONDHORLOGERIE1_ID));
add(image1);
buttonWithIcon1.setXY(329, 91);
buttonWithIcon1.setBitmaps(touchgfx::Bitmap(BITMAP_GLASS_THEME_IMAGES_WIDGETS_BUTTON_ICON_ROUND_HUGE_FILL_NORMAL_ID), touchgfx::Bitmap(BITMAP_GLASS_THEME_IMAGES_WIDGETS_BUTTON_ICON_ROUND_HUGE_FILL_PRESSED_ID), touchgfx::Bitmap(BITMAP_ICON_THEME_IMAGES_AV_FIBER_MANUAL_RECORD_50_50_5E3E10_SVG_ID), touchgfx::Bitmap(BITMAP_ICON_THEME_IMAGES_ACTION_DONE_50_50_B5241F_SVG_ID));
buttonWithIcon1.setIconXY(142, 136);
buttonWithIcon1.setAction(buttonCallback);
add(buttonWithIcon1);
}
InitScreenViewBase::~InitScreenViewBase()
{
}
void InitScreenViewBase::setupScreen()
{
}
void InitScreenViewBase::buttonCallbackHandler(const touchgfx::AbstractButton& src)
{
if (&src == &buttonWithIcon1)
{
//Interaction1
//When buttonWithIcon1 clicked change screen to Overview
//Go to Overview with no screen transition
application().gotoOverviewScreenNoTransition();
}
}
@@ -0,0 +1,181 @@
/*********************************************************************************/
/********** THIS FILE IS GENERATED BY TOUCHGFX DESIGNER, DO NOT MODIFY ***********/
/*********************************************************************************/
#include <gui_generated/octaver_screen/OctaverViewBase.hpp>
#include <touchgfx/Color.hpp>
#include <images/BitmapDatabase.hpp>
#include <texts/TextKeysAndLanguages.hpp>
OctaverViewBase::OctaverViewBase() :
buttonCallback(this, &OctaverViewBase::buttonCallbackHandler),
sliderValueChangedCallback(this, &OctaverViewBase::sliderValueChangedCallbackHandler)
{
__background.setPosition(0, 0, 800, 480);
__background.setColor(touchgfx::Color::getColorFromRGB(0, 0, 0));
add(__background);
image1.setXY(0, -1);
image1.setBitmap(touchgfx::Bitmap(BITMAP_FONDHORLOGERIE1_ID));
add(image1);
box1.setPosition(0, 0, 800, 480);
box1.setColor(touchgfx::Color::getColorFromRGB(35, 24, 15));
box1.setAlpha(240);
add(box1);
textArea2.setXY(102, 427);
textArea2.setColor(touchgfx::Color::getColorFromRGB(230, 214, 170));
textArea2.setLinespacing(0);
textArea2.setTypedText(touchgfx::TypedText(T_OCT_M2));
add(textArea2);
textArea3.setXY(244, 427);
textArea3.setColor(touchgfx::Color::getColorFromRGB(230, 214, 170));
textArea3.setLinespacing(0);
textArea3.setTypedText(touchgfx::TypedText(T_OCT_M1));
add(textArea3);
textArea4.setXY(389, 427);
textArea4.setColor(touchgfx::Color::getColorFromRGB(230, 214, 170));
textArea4.setLinespacing(0);
textArea4.setTypedText(touchgfx::TypedText(T_OCT_0));
add(textArea4);
textArea5.setXY(526, 427);
textArea5.setColor(touchgfx::Color::getColorFromRGB(230, 214, 170));
textArea5.setLinespacing(0);
textArea5.setTypedText(touchgfx::TypedText(T_OCT_P1));
add(textArea5);
textArea6.setXY(665, 427);
textArea6.setColor(touchgfx::Color::getColorFromRGB(230, 214, 170));
textArea6.setLinespacing(0);
textArea6.setTypedText(touchgfx::TypedText(T_OCT_P2));
add(textArea6);
slider1.setXY(91, 82);
slider1.setBitmaps(touchgfx::Bitmap(BITMAP_GLASS_THEME_IMAGES_WIDGETS_SLIDER_VERTICAL_THICK_TRACK_MEDIUM_ID), touchgfx::Bitmap(BITMAP_GLASS_THEME_IMAGES_WIDGETS_SLIDER_VERTICAL_THICK_FILLER_MEDIUM_ID), touchgfx::Bitmap(BITMAP_GLASS_THEME_IMAGES_WIDGETS_SLIDER_VERTICAL_THICK_ROUNDED_DARK_ID));
slider1.setupVerticalSlider(23, 26, 0, 0, 300);
slider1.setValueRange(0, 100);
slider1.setValue(0);
slider1.setNewValueCallback(sliderValueChangedCallback);
add(slider1);
slider2.setXY(233, 82);
slider2.setBitmaps(touchgfx::Bitmap(BITMAP_GLASS_THEME_IMAGES_WIDGETS_SLIDER_VERTICAL_THICK_TRACK_MEDIUM_ID), touchgfx::Bitmap(BITMAP_GLASS_THEME_IMAGES_WIDGETS_SLIDER_VERTICAL_THICK_FILLER_MEDIUM_ID), touchgfx::Bitmap(BITMAP_GLASS_THEME_IMAGES_WIDGETS_SLIDER_VERTICAL_THICK_ROUNDED_DARK_ID));
slider2.setupVerticalSlider(23, 26, 0, 0, 300);
slider2.setValueRange(0, 100);
slider2.setValue(0);
slider2.setNewValueCallback(sliderValueChangedCallback);
add(slider2);
slider3.setXY(372, 82);
slider3.setBitmaps(touchgfx::Bitmap(BITMAP_GLASS_THEME_IMAGES_WIDGETS_SLIDER_VERTICAL_THICK_TRACK_MEDIUM_ID), touchgfx::Bitmap(BITMAP_GLASS_THEME_IMAGES_WIDGETS_SLIDER_VERTICAL_THICK_FILLER_MEDIUM_ID), touchgfx::Bitmap(BITMAP_GLASS_THEME_IMAGES_WIDGETS_SLIDER_VERTICAL_THICK_ROUNDED_DARK_ID));
slider3.setupVerticalSlider(23, 26, 0, 0, 300);
slider3.setValueRange(0, 100);
slider3.setValue(0);
slider3.setNewValueCallback(sliderValueChangedCallback);
add(slider3);
slider4.setXY(520, 82);
slider4.setBitmaps(touchgfx::Bitmap(BITMAP_GLASS_THEME_IMAGES_WIDGETS_SLIDER_VERTICAL_THICK_TRACK_MEDIUM_ID), touchgfx::Bitmap(BITMAP_GLASS_THEME_IMAGES_WIDGETS_SLIDER_VERTICAL_THICK_FILLER_MEDIUM_ID), touchgfx::Bitmap(BITMAP_GLASS_THEME_IMAGES_WIDGETS_SLIDER_VERTICAL_THICK_ROUNDED_DARK_ID));
slider4.setupVerticalSlider(23, 26, 0, 0, 300);
slider4.setValueRange(0, 100);
slider4.setValue(0);
slider4.setNewValueCallback(sliderValueChangedCallback);
add(slider4);
slider5.setXY(661, 82);
slider5.setBitmaps(touchgfx::Bitmap(BITMAP_GLASS_THEME_IMAGES_WIDGETS_SLIDER_VERTICAL_THICK_TRACK_MEDIUM_ID), touchgfx::Bitmap(BITMAP_GLASS_THEME_IMAGES_WIDGETS_SLIDER_VERTICAL_THICK_FILLER_MEDIUM_ID), touchgfx::Bitmap(BITMAP_GLASS_THEME_IMAGES_WIDGETS_SLIDER_VERTICAL_THICK_ROUNDED_DARK_ID));
slider5.setupVerticalSlider(23, 26, 0, 0, 300);
slider5.setValueRange(0, 100);
slider5.setValue(0);
slider5.setNewValueCallback(sliderValueChangedCallback);
add(slider5);
textArea1.setXY(295, 26);
textArea1.setColor(touchgfx::Color::getColorFromRGB(230, 214, 170));
textArea1.setLinespacing(0);
textArea1.setTypedText(touchgfx::TypedText(T_OCTAVER));
add(textArea1);
toggleButton1.setXY(576, 20);
toggleButton1.setBitmaps(touchgfx::Bitmap(BITMAP_GLASS_THEME_IMAGES_WIDGETS_TOGGLEBUTTON_LARGE_ROUND_TEXT_OFF_NORMAL_ID), touchgfx::Bitmap(BITMAP_GLASS_THEME_IMAGES_WIDGETS_TOGGLEBUTTON_LARGE_ROUND_TEXT_ON_ACTIVE_ID));
toggleButton1.setAction(buttonCallback);
add(toggleButton1);
buttonWithLabel1.setXY(0, 0);
buttonWithLabel1.setBitmaps(touchgfx::Bitmap(BITMAP_GLASS_THEME_IMAGES_WIDGETS_BUTTON_REGULAR_HEIGHT_50_SMALL_ROUNDED_NORMAL_ID), touchgfx::Bitmap(BITMAP_GLASS_THEME_IMAGES_WIDGETS_BUTTON_REGULAR_HEIGHT_50_SMALL_ROUNDED_PRESSED_ID));
buttonWithLabel1.setLabelText(touchgfx::TypedText(T_BACK));
buttonWithLabel1.setLabelColor(touchgfx::Color::getColorFromRGB(230, 214, 170));
buttonWithLabel1.setLabelColorPressed(touchgfx::Color::getColorFromRGB(230, 214, 170));
buttonWithLabel1.setAction(buttonCallback);
add(buttonWithLabel1);
}
OctaverViewBase::~OctaverViewBase()
{
}
void OctaverViewBase::setupScreen()
{
}
void OctaverViewBase::buttonCallbackHandler(const touchgfx::AbstractButton& src)
{
if (&src == &buttonWithLabel1)
{
//Interaction1
//When buttonWithLabel1 clicked change screen to Overview
//Go to Overview with no screen transition
application().gotoOverviewScreenNoTransition();
}
if (&src == &toggleButton1)
{
//Interaction2
//When toggleButton1 clicked call virtual function
//Call toggleClicked
toggleClicked();
}
}
void OctaverViewBase::sliderValueChangedCallbackHandler(const touchgfx::Slider& src, int value)
{
if (&src == &slider1)
{
//Interaction3
//When slider1 value changed call virtual function
//Call slider1Clicked
slider1Clicked(value);
}
if (&src == &slider2)
{
//Interaction4
//When slider2 value changed call virtual function
//Call slider2Clicked
slider2Clicked(value);
}
if (&src == &slider3)
{
//Interaction5
//When slider3 value changed call virtual function
//Call slider3Clicked
slider3Clicked(value);
}
if (&src == &slider4)
{
//Interaction6
//When slider4 value changed call virtual function
//Call slider4Clicked
slider4Clicked(value);
}
if (&src == &slider5)
{
//Interaction7
//When slider5 value changed call virtual function
//Call slider5Clicked
slider5Clicked(value);
}
}
@@ -0,0 +1,831 @@
/*********************************************************************************/
/********** THIS FILE IS GENERATED BY TOUCHGFX DESIGNER, DO NOT MODIFY ***********/
/*********************************************************************************/
#include <gui_generated/oscillo_screen/OscilloViewBase.hpp>
#include <touchgfx/canvas_widget_renderer/CanvasWidgetRenderer.hpp>
#include <touchgfx/Color.hpp>
#include <images/BitmapDatabase.hpp>
#include <texts/TextKeysAndLanguages.hpp>
OscilloViewBase::OscilloViewBase() :
buttonCallback(this, &OscilloViewBase::buttonCallbackHandler)
{
touchgfx::CanvasWidgetRenderer::setupBuffer(canvasBuffer, CANVAS_BUFFER_SIZE);
__background.setPosition(0, 0, 800, 480);
__background.setColor(touchgfx::Color::getColorFromRGB(0, 0, 0));
add(__background);
image1.setXY(0, -1);
image1.setBitmap(touchgfx::Bitmap(BITMAP_FONDHORLOGERIE1_ID));
add(image1);
box1.setPosition(0, 0, 800, 480);
box1.setColor(touchgfx::Color::getColorFromRGB(35, 24, 15));
box1.setAlpha(240);
add(box1);
textArea1.setXY(314, 26);
textArea1.setColor(touchgfx::Color::getColorFromRGB(230, 214, 170));
textArea1.setLinespacing(0);
textArea1.setTypedText(touchgfx::TypedText(T_OSCILLO));
add(textArea1);
toggleButton1.setXY(576, 20);
toggleButton1.setBitmaps(touchgfx::Bitmap(BITMAP_GLASS_THEME_IMAGES_WIDGETS_TOGGLEBUTTON_LARGE_ROUND_TEXT_OFF_NORMAL_ID), touchgfx::Bitmap(BITMAP_GLASS_THEME_IMAGES_WIDGETS_TOGGLEBUTTON_LARGE_ROUND_TEXT_ON_ACTIVE_ID));
toggleButton1.setAction(buttonCallback);
add(toggleButton1);
buttonWithLabel1.setXY(0, 0);
buttonWithLabel1.setBitmaps(touchgfx::Bitmap(BITMAP_GLASS_THEME_IMAGES_WIDGETS_BUTTON_REGULAR_HEIGHT_50_SMALL_ROUNDED_NORMAL_ID), touchgfx::Bitmap(BITMAP_GLASS_THEME_IMAGES_WIDGETS_BUTTON_REGULAR_HEIGHT_50_SMALL_ROUNDED_PRESSED_ID));
buttonWithLabel1.setLabelText(touchgfx::TypedText(T_BACK));
buttonWithLabel1.setLabelColor(touchgfx::Color::getColorFromRGB(230, 214, 170));
buttonWithLabel1.setLabelColorPressed(touchgfx::Color::getColorFromRGB(230, 214, 170));
buttonWithLabel1.setAction(buttonCallback);
add(buttonWithLabel1);
graph1.setPosition(0, 94, 800, 386);
graph1.setScaleX(1);
graph1.setScaleY(1);
graph1.setGraphAreaMargin(0, 16, 16, 63);
graph1.setGraphAreaPadding(0, 0, 0, 17);
graph1.setGraphRangeX(0, 24000);
graph1.setGraphRangeY(0, 100);
graph1MajorXAxisGrid.setColor(touchgfx::Color::getColorFromRGB(230, 214, 170));
graph1MajorXAxisGrid.setInterval(2400);
graph1MajorXAxisGrid.setLineWidth(1);
graph1MajorXAxisGrid.setScale(1);
graph1.addGraphElement(graph1MajorXAxisGrid);
graph1MajorYAxisGrid.setColor(touchgfx::Color::getColorFromRGB(230, 214, 170));
graph1MajorYAxisGrid.setInterval(25);
graph1MajorYAxisGrid.setLineWidth(1);
graph1MajorYAxisGrid.setScale(1);
graph1.addGraphElement(graph1MajorYAxisGrid);
graph1MajorXAxisLabel.setInterval(2400);
graph1MajorXAxisLabel.setLabelTypedText(touchgfx::TypedText(T___SINGLEUSE_2C9Q));
graph1MajorXAxisLabel.setLabelRotation(touchgfx::TEXT_ROTATE_270);
graph1MajorXAxisLabel.setColor(touchgfx::Color::getColorFromRGB(230, 214, 170));
graph1MajorXAxisLabel.setScale(1);
graph1.addBottomElement(graph1MajorXAxisLabel);
graph1Line1Painter.setColor(touchgfx::Color::getColorFromRGB(20, 151, 197));
graph1Line1.setPainter(graph1Line1Painter);
graph1Line1.setLineWidth(2);
graph1.addGraphElement(graph1Line1);
graph1.addDataPoint(0, 47);
graph1.addDataPoint(47, 48);
graph1.addDataPoint(94, 49);
graph1.addDataPoint(141, 50);
graph1.addDataPoint(211, 51);
graph1.addDataPoint(492, 50);
graph1.addDataPoint(563, 49);
graph1.addDataPoint(609, 48);
graph1.addDataPoint(656, 47);
graph1.addDataPoint(680, 46);
graph1.addDataPoint(727, 45);
graph1.addDataPoint(750, 44);
graph1.addDataPoint(773, 43);
graph1.addDataPoint(797, 42);
graph1.addDataPoint(844, 41);
graph1.addDataPoint(867, 40);
graph1.addDataPoint(891, 39);
graph1.addDataPoint(914, 38);
graph1.addDataPoint(938, 37);
graph1.addDataPoint(961, 36);
graph1.addDataPoint(984, 35);
graph1.addDataPoint(1008, 34);
graph1.addDataPoint(1031, 32);
graph1.addDataPoint(1055, 31);
graph1.addDataPoint(1078, 30);
graph1.addDataPoint(1102, 29);
graph1.addDataPoint(1125, 28);
graph1.addDataPoint(1148, 27);
graph1.addDataPoint(1172, 26);
graph1.addDataPoint(1195, 25);
graph1.addDataPoint(1219, 24);
graph1.addDataPoint(1242, 23);
graph1.addDataPoint(1266, 22);
graph1.addDataPoint(1289, 21);
graph1.addDataPoint(1313, 20);
graph1.addDataPoint(1336, 19);
graph1.addDataPoint(1359, 18);
graph1.addDataPoint(1383, 17);
graph1.addDataPoint(1406, 16);
graph1.addDataPoint(1430, 15);
graph1.addDataPoint(1477, 14);
graph1.addDataPoint(1500, 13);
graph1.addDataPoint(1547, 12);
graph1.addDataPoint(1570, 11);
graph1.addDataPoint(1641, 10);
graph1.addDataPoint(1711, 9);
graph1.addDataPoint(1875, 10);
graph1.addDataPoint(1945, 11);
graph1.addDataPoint(1992, 12);
graph1.addDataPoint(2039, 13);
graph1.addDataPoint(2063, 14);
graph1.addDataPoint(2086, 15);
graph1.addDataPoint(2109, 16);
graph1.addDataPoint(2156, 17);
graph1.addDataPoint(2180, 19);
graph1.addDataPoint(2203, 20);
graph1.addDataPoint(2227, 21);
graph1.addDataPoint(2250, 22);
graph1.addDataPoint(2273, 23);
graph1.addDataPoint(2297, 25);
graph1.addDataPoint(2320, 26);
graph1.addDataPoint(2344, 27);
graph1.addDataPoint(2367, 29);
graph1.addDataPoint(2391, 30);
graph1.addDataPoint(2414, 32);
graph1.addDataPoint(2438, 33);
graph1.addDataPoint(2461, 35);
graph1.addDataPoint(2484, 36);
graph1.addDataPoint(2508, 38);
graph1.addDataPoint(2531, 40);
graph1.addDataPoint(2555, 41);
graph1.addDataPoint(2578, 43);
graph1.addDataPoint(2602, 45);
graph1.addDataPoint(2625, 46);
graph1.addDataPoint(2648, 48);
graph1.addDataPoint(2672, 50);
graph1.addDataPoint(2695, 52);
graph1.addDataPoint(2719, 53);
graph1.addDataPoint(2742, 55);
graph1.addDataPoint(2766, 57);
graph1.addDataPoint(2789, 58);
graph1.addDataPoint(2813, 60);
graph1.addDataPoint(2836, 62);
graph1.addDataPoint(2859, 63);
graph1.addDataPoint(2883, 65);
graph1.addDataPoint(2906, 66);
graph1.addDataPoint(2930, 68);
graph1.addDataPoint(2953, 69);
graph1.addDataPoint(2977, 71);
graph1.addDataPoint(3000, 72);
graph1.addDataPoint(3023, 74);
graph1.addDataPoint(3047, 75);
graph1.addDataPoint(3070, 76);
graph1.addDataPoint(3094, 78);
graph1.addDataPoint(3117, 79);
graph1.addDataPoint(3141, 80);
graph1.addDataPoint(3164, 81);
graph1.addDataPoint(3188, 82);
graph1.addDataPoint(3211, 83);
graph1.addDataPoint(3234, 84);
graph1.addDataPoint(3258, 85);
graph1.addDataPoint(3281, 86);
graph1.addDataPoint(3305, 87);
graph1.addDataPoint(3352, 88);
graph1.addDataPoint(3375, 89);
graph1.addDataPoint(3422, 90);
graph1.addDataPoint(3492, 91);
graph1.addDataPoint(3656, 90);
graph1.addDataPoint(3750, 89);
graph1.addDataPoint(3797, 88);
graph1.addDataPoint(3844, 87);
graph1.addDataPoint(3867, 86);
graph1.addDataPoint(3914, 85);
graph1.addDataPoint(3938, 84);
graph1.addDataPoint(3961, 83);
graph1.addDataPoint(3984, 82);
graph1.addDataPoint(4008, 81);
graph1.addDataPoint(4031, 80);
graph1.addDataPoint(4055, 79);
graph1.addDataPoint(4078, 78);
graph1.addDataPoint(4102, 77);
graph1.addDataPoint(4125, 76);
graph1.addDataPoint(4148, 75);
graph1.addDataPoint(4172, 74);
graph1.addDataPoint(4195, 73);
graph1.addDataPoint(4219, 72);
graph1.addDataPoint(4242, 71);
graph1.addDataPoint(4266, 70);
graph1.addDataPoint(4289, 69);
graph1.addDataPoint(4313, 68);
graph1.addDataPoint(4336, 67);
graph1.addDataPoint(4359, 66);
graph1.addDataPoint(4383, 65);
graph1.addDataPoint(4406, 64);
graph1.addDataPoint(4430, 63);
graph1.addDataPoint(4453, 62);
graph1.addDataPoint(4477, 61);
graph1.addDataPoint(4500, 60);
graph1.addDataPoint(4523, 59);
graph1.addDataPoint(4547, 58);
graph1.addDataPoint(4570, 57);
graph1.addDataPoint(4594, 56);
graph1.addDataPoint(4617, 55);
graph1.addDataPoint(4664, 54);
graph1.addDataPoint(4688, 53);
graph1.addDataPoint(4734, 52);
graph1.addDataPoint(4758, 51);
graph1.addDataPoint(4805, 50);
graph1.addDataPoint(4875, 49);
graph1.addDataPoint(5156, 50);
graph1.addDataPoint(5227, 51);
graph1.addDataPoint(5273, 52);
graph1.addDataPoint(5320, 53);
graph1.addDataPoint(5367, 54);
graph1.addDataPoint(5391, 55);
graph1.addDataPoint(5438, 56);
graph1.addDataPoint(5461, 57);
graph1.addDataPoint(5484, 58);
graph1.addDataPoint(5531, 59);
graph1.addDataPoint(5555, 60);
graph1.addDataPoint(5578, 61);
graph1.addDataPoint(5602, 62);
graph1.addDataPoint(5648, 63);
graph1.addDataPoint(5672, 64);
graph1.addDataPoint(5695, 65);
graph1.addDataPoint(5719, 66);
graph1.addDataPoint(5766, 67);
graph1.addDataPoint(5789, 68);
graph1.addDataPoint(5813, 69);
graph1.addDataPoint(5836, 70);
graph1.addDataPoint(5883, 71);
graph1.addDataPoint(5906, 72);
graph1.addDataPoint(5953, 73);
graph1.addDataPoint(5977, 74);
graph1.addDataPoint(6023, 75);
graph1.addDataPoint(6094, 76);
graph1.addDataPoint(6164, 77);
graph1.addDataPoint(6352, 76);
graph1.addDataPoint(6422, 75);
graph1.addDataPoint(6469, 74);
graph1.addDataPoint(6516, 73);
graph1.addDataPoint(6563, 72);
graph1.addDataPoint(6586, 71);
graph1.addDataPoint(6609, 70);
graph1.addDataPoint(6633, 69);
graph1.addDataPoint(6656, 68);
graph1.addDataPoint(6680, 67);
graph1.addDataPoint(6703, 66);
graph1.addDataPoint(6727, 65);
graph1.addDataPoint(6750, 64);
graph1.addDataPoint(6773, 63);
graph1.addDataPoint(6797, 61);
graph1.addDataPoint(6820, 60);
graph1.addDataPoint(6844, 59);
graph1.addDataPoint(6867, 57);
graph1.addDataPoint(6891, 56);
graph1.addDataPoint(6914, 54);
graph1.addDataPoint(6938, 53);
graph1.addDataPoint(6961, 51);
graph1.addDataPoint(6984, 50);
graph1.addDataPoint(7008, 48);
graph1.addDataPoint(7031, 47);
graph1.addDataPoint(7055, 45);
graph1.addDataPoint(7078, 44);
graph1.addDataPoint(7102, 42);
graph1.addDataPoint(7125, 40);
graph1.addDataPoint(7148, 39);
graph1.addDataPoint(7172, 37);
graph1.addDataPoint(7195, 36);
graph1.addDataPoint(7219, 34);
graph1.addDataPoint(7242, 32);
graph1.addDataPoint(7266, 31);
graph1.addDataPoint(7289, 29);
graph1.addDataPoint(7313, 28);
graph1.addDataPoint(7336, 26);
graph1.addDataPoint(7359, 25);
graph1.addDataPoint(7383, 23);
graph1.addDataPoint(7406, 22);
graph1.addDataPoint(7430, 20);
graph1.addDataPoint(7453, 19);
graph1.addDataPoint(7477, 17);
graph1.addDataPoint(7500, 16);
graph1.addDataPoint(7523, 15);
graph1.addDataPoint(7547, 14);
graph1.addDataPoint(7570, 12);
graph1.addDataPoint(7594, 11);
graph1.addDataPoint(7617, 10);
graph1.addDataPoint(7641, 9);
graph1.addDataPoint(7664, 8);
graph1.addDataPoint(7688, 7);
graph1.addDataPoint(7711, 6);
graph1.addDataPoint(7758, 5);
graph1.addDataPoint(7781, 4);
graph1.addDataPoint(7828, 3);
graph1.addDataPoint(7875, 2);
graph1.addDataPoint(7922, 1);
graph1.addDataPoint(8109, 2);
graph1.addDataPoint(8180, 3);
graph1.addDataPoint(8227, 4);
graph1.addDataPoint(8250, 5);
graph1.addDataPoint(8297, 6);
graph1.addDataPoint(8320, 7);
graph1.addDataPoint(8344, 8);
graph1.addDataPoint(8367, 9);
graph1.addDataPoint(8391, 10);
graph1.addDataPoint(8414, 11);
graph1.addDataPoint(8438, 12);
graph1.addDataPoint(8461, 13);
graph1.addDataPoint(8484, 14);
graph1.addDataPoint(8508, 15);
graph1.addDataPoint(8531, 16);
graph1.addDataPoint(8555, 18);
graph1.addDataPoint(8578, 19);
graph1.addDataPoint(8602, 20);
graph1.addDataPoint(8625, 22);
graph1.addDataPoint(8648, 23);
graph1.addDataPoint(8672, 24);
graph1.addDataPoint(8695, 26);
graph1.addDataPoint(8719, 27);
graph1.addDataPoint(8742, 28);
graph1.addDataPoint(8766, 30);
graph1.addDataPoint(8789, 31);
graph1.addDataPoint(8813, 32);
graph1.addDataPoint(8836, 34);
graph1.addDataPoint(8859, 35);
graph1.addDataPoint(8883, 37);
graph1.addDataPoint(8906, 38);
graph1.addDataPoint(8930, 39);
graph1.addDataPoint(8953, 41);
graph1.addDataPoint(8977, 42);
graph1.addDataPoint(9000, 43);
graph1.addDataPoint(9023, 44);
graph1.addDataPoint(9047, 46);
graph1.addDataPoint(9070, 47);
graph1.addDataPoint(9094, 48);
graph1.addDataPoint(9117, 49);
graph1.addDataPoint(9141, 50);
graph1.addDataPoint(9164, 51);
graph1.addDataPoint(9188, 52);
graph1.addDataPoint(9211, 53);
graph1.addDataPoint(9234, 54);
graph1.addDataPoint(9258, 55);
graph1.addDataPoint(9281, 56);
graph1.addDataPoint(9305, 57);
graph1.addDataPoint(9352, 58);
graph1.addDataPoint(9375, 59);
graph1.addDataPoint(9422, 60);
graph1.addDataPoint(9492, 61);
graph1.addDataPoint(9563, 62);
graph1.addDataPoint(9727, 61);
graph1.addDataPoint(9820, 60);
graph1.addDataPoint(9867, 59);
graph1.addDataPoint(9914, 58);
graph1.addDataPoint(9961, 57);
graph1.addDataPoint(10008, 56);
graph1.addDataPoint(10055, 55);
graph1.addDataPoint(10078, 54);
graph1.addDataPoint(10102, 53);
graph1.addDataPoint(10148, 52);
graph1.addDataPoint(10172, 51);
graph1.addDataPoint(10219, 50);
graph1.addDataPoint(10242, 49);
graph1.addDataPoint(10266, 48);
graph1.addDataPoint(10313, 47);
graph1.addDataPoint(10336, 46);
graph1.addDataPoint(10383, 45);
graph1.addDataPoint(10406, 44);
graph1.addDataPoint(10453, 43);
graph1.addDataPoint(10477, 42);
graph1.addDataPoint(10523, 41);
graph1.addDataPoint(10570, 40);
graph1.addDataPoint(10641, 39);
graph1.addDataPoint(10734, 38);
graph1.addDataPoint(10875, 39);
graph1.addDataPoint(10969, 40);
graph1.addDataPoint(11016, 41);
graph1.addDataPoint(11063, 42);
graph1.addDataPoint(11109, 43);
graph1.addDataPoint(11133, 44);
graph1.addDataPoint(11156, 45);
graph1.addDataPoint(11203, 46);
graph1.addDataPoint(11227, 47);
graph1.addDataPoint(11250, 48);
graph1.addDataPoint(11273, 49);
graph1.addDataPoint(11297, 50);
graph1.addDataPoint(11320, 51);
graph1.addDataPoint(11344, 52);
graph1.addDataPoint(11367, 54);
graph1.addDataPoint(11391, 55);
graph1.addDataPoint(11414, 56);
graph1.addDataPoint(11438, 57);
graph1.addDataPoint(11461, 59);
graph1.addDataPoint(11484, 60);
graph1.addDataPoint(11508, 61);
graph1.addDataPoint(11531, 63);
graph1.addDataPoint(11555, 64);
graph1.addDataPoint(11578, 65);
graph1.addDataPoint(11602, 67);
graph1.addDataPoint(11625, 68);
graph1.addDataPoint(11648, 69);
graph1.addDataPoint(11672, 71);
graph1.addDataPoint(11695, 72);
graph1.addDataPoint(11719, 74);
graph1.addDataPoint(11742, 75);
graph1.addDataPoint(11766, 76);
graph1.addDataPoint(11789, 78);
graph1.addDataPoint(11813, 79);
graph1.addDataPoint(11836, 80);
graph1.addDataPoint(11859, 82);
graph1.addDataPoint(11883, 83);
graph1.addDataPoint(11906, 84);
graph1.addDataPoint(11930, 85);
graph1.addDataPoint(11953, 86);
graph1.addDataPoint(11977, 87);
graph1.addDataPoint(12000, 89);
graph1.addDataPoint(12023, 90);
graph1.addDataPoint(12047, 91);
graph1.addDataPoint(12070, 92);
graph1.addDataPoint(12117, 93);
graph1.addDataPoint(12141, 94);
graph1.addDataPoint(12164, 95);
graph1.addDataPoint(12188, 96);
graph1.addDataPoint(12234, 97);
graph1.addDataPoint(12281, 98);
graph1.addDataPoint(12352, 99);
graph1.addDataPoint(12516, 98);
graph1.addDataPoint(12586, 97);
graph1.addDataPoint(12633, 96);
graph1.addDataPoint(12680, 95);
graph1.addDataPoint(12703, 94);
graph1.addDataPoint(12727, 93);
graph1.addDataPoint(12750, 92);
graph1.addDataPoint(12797, 91);
graph1.addDataPoint(12820, 89);
graph1.addDataPoint(12844, 88);
graph1.addDataPoint(12867, 87);
graph1.addDataPoint(12891, 86);
graph1.addDataPoint(12914, 85);
graph1.addDataPoint(12938, 83);
graph1.addDataPoint(12961, 82);
graph1.addDataPoint(12984, 81);
graph1.addDataPoint(13008, 79);
graph1.addDataPoint(13031, 78);
graph1.addDataPoint(13055, 76);
graph1.addDataPoint(13078, 75);
graph1.addDataPoint(13102, 73);
graph1.addDataPoint(13125, 72);
graph1.addDataPoint(13148, 70);
graph1.addDataPoint(13172, 69);
graph1.addDataPoint(13195, 67);
graph1.addDataPoint(13219, 65);
graph1.addDataPoint(13242, 64);
graph1.addDataPoint(13266, 62);
graph1.addDataPoint(13289, 61);
graph1.addDataPoint(13313, 59);
graph1.addDataPoint(13336, 57);
graph1.addDataPoint(13359, 56);
graph1.addDataPoint(13383, 54);
graph1.addDataPoint(13406, 53);
graph1.addDataPoint(13430, 51);
graph1.addDataPoint(13453, 50);
graph1.addDataPoint(13477, 48);
graph1.addDataPoint(13500, 47);
graph1.addDataPoint(13523, 45);
graph1.addDataPoint(13547, 44);
graph1.addDataPoint(13570, 42);
graph1.addDataPoint(13594, 41);
graph1.addDataPoint(13617, 39);
graph1.addDataPoint(13641, 38);
graph1.addDataPoint(13664, 37);
graph1.addDataPoint(13688, 36);
graph1.addDataPoint(13711, 35);
graph1.addDataPoint(13734, 33);
graph1.addDataPoint(13758, 32);
graph1.addDataPoint(13781, 31);
graph1.addDataPoint(13805, 30);
graph1.addDataPoint(13852, 29);
graph1.addDataPoint(13875, 28);
graph1.addDataPoint(13898, 27);
graph1.addDataPoint(13945, 26);
graph1.addDataPoint(13969, 25);
graph1.addDataPoint(14016, 24);
graph1.addDataPoint(14086, 23);
graph1.addDataPoint(14297, 24);
graph1.addDataPoint(14367, 25);
graph1.addDataPoint(14414, 26);
graph1.addDataPoint(14461, 27);
graph1.addDataPoint(14508, 28);
graph1.addDataPoint(14531, 29);
graph1.addDataPoint(14578, 30);
graph1.addDataPoint(14602, 31);
graph1.addDataPoint(14648, 32);
graph1.addDataPoint(14672, 33);
graph1.addDataPoint(14695, 34);
graph1.addDataPoint(14719, 35);
graph1.addDataPoint(14766, 36);
graph1.addDataPoint(14789, 37);
graph1.addDataPoint(14813, 38);
graph1.addDataPoint(14836, 39);
graph1.addDataPoint(14859, 40);
graph1.addDataPoint(14906, 41);
graph1.addDataPoint(14930, 42);
graph1.addDataPoint(14953, 43);
graph1.addDataPoint(14977, 44);
graph1.addDataPoint(15023, 45);
graph1.addDataPoint(15047, 46);
graph1.addDataPoint(15094, 47);
graph1.addDataPoint(15141, 48);
graph1.addDataPoint(15164, 49);
graph1.addDataPoint(15234, 50);
graph1.addDataPoint(15281, 51);
graph1.addDataPoint(15586, 50);
graph1.addDataPoint(15633, 49);
graph1.addDataPoint(15680, 48);
graph1.addDataPoint(15727, 47);
graph1.addDataPoint(15773, 46);
graph1.addDataPoint(15797, 45);
graph1.addDataPoint(15820, 44);
graph1.addDataPoint(15867, 43);
graph1.addDataPoint(15891, 42);
graph1.addDataPoint(15914, 41);
graph1.addDataPoint(15938, 40);
graph1.addDataPoint(15961, 39);
graph1.addDataPoint(15984, 38);
graph1.addDataPoint(16008, 37);
graph1.addDataPoint(16031, 36);
graph1.addDataPoint(16055, 35);
graph1.addDataPoint(16078, 34);
graph1.addDataPoint(16102, 33);
graph1.addDataPoint(16125, 32);
graph1.addDataPoint(16148, 31);
graph1.addDataPoint(16172, 30);
graph1.addDataPoint(16195, 29);
graph1.addDataPoint(16219, 27);
graph1.addDataPoint(16242, 26);
graph1.addDataPoint(16266, 25);
graph1.addDataPoint(16289, 24);
graph1.addDataPoint(16313, 23);
graph1.addDataPoint(16336, 22);
graph1.addDataPoint(16359, 21);
graph1.addDataPoint(16383, 20);
graph1.addDataPoint(16406, 19);
graph1.addDataPoint(16430, 18);
graph1.addDataPoint(16453, 17);
graph1.addDataPoint(16500, 16);
graph1.addDataPoint(16523, 15);
graph1.addDataPoint(16547, 14);
graph1.addDataPoint(16594, 13);
graph1.addDataPoint(16617, 12);
graph1.addDataPoint(16664, 11);
graph1.addDataPoint(16711, 10);
graph1.addDataPoint(16781, 9);
graph1.addDataPoint(16945, 10);
graph1.addDataPoint(17016, 11);
graph1.addDataPoint(17063, 12);
graph1.addDataPoint(17109, 13);
graph1.addDataPoint(17133, 14);
graph1.addDataPoint(17180, 15);
graph1.addDataPoint(17203, 16);
graph1.addDataPoint(17227, 17);
graph1.addDataPoint(17250, 18);
graph1.addDataPoint(17273, 19);
graph1.addDataPoint(17297, 20);
graph1.addDataPoint(17320, 22);
graph1.addDataPoint(17344, 23);
graph1.addDataPoint(17367, 24);
graph1.addDataPoint(17391, 25);
graph1.addDataPoint(17414, 27);
graph1.addDataPoint(17438, 28);
graph1.addDataPoint(17461, 30);
graph1.addDataPoint(17484, 31);
graph1.addDataPoint(17508, 33);
graph1.addDataPoint(17531, 34);
graph1.addDataPoint(17555, 36);
graph1.addDataPoint(17578, 37);
graph1.addDataPoint(17602, 39);
graph1.addDataPoint(17625, 41);
graph1.addDataPoint(17648, 42);
graph1.addDataPoint(17672, 44);
graph1.addDataPoint(17695, 46);
graph1.addDataPoint(17719, 47);
graph1.addDataPoint(17742, 49);
graph1.addDataPoint(17766, 51);
graph1.addDataPoint(17789, 53);
graph1.addDataPoint(17813, 54);
graph1.addDataPoint(17836, 56);
graph1.addDataPoint(17859, 58);
graph1.addDataPoint(17883, 59);
graph1.addDataPoint(17906, 61);
graph1.addDataPoint(17930, 63);
graph1.addDataPoint(17953, 64);
graph1.addDataPoint(17977, 66);
graph1.addDataPoint(18000, 67);
graph1.addDataPoint(18023, 69);
graph1.addDataPoint(18047, 70);
graph1.addDataPoint(18070, 72);
graph1.addDataPoint(18094, 73);
graph1.addDataPoint(18117, 75);
graph1.addDataPoint(18141, 76);
graph1.addDataPoint(18164, 77);
graph1.addDataPoint(18188, 78);
graph1.addDataPoint(18211, 80);
graph1.addDataPoint(18234, 81);
graph1.addDataPoint(18258, 82);
graph1.addDataPoint(18281, 83);
graph1.addDataPoint(18305, 84);
graph1.addDataPoint(18328, 85);
graph1.addDataPoint(18352, 86);
graph1.addDataPoint(18398, 87);
graph1.addDataPoint(18422, 88);
graph1.addDataPoint(18469, 89);
graph1.addDataPoint(18516, 90);
graph1.addDataPoint(18586, 91);
graph1.addDataPoint(18750, 90);
graph1.addDataPoint(18820, 89);
graph1.addDataPoint(18867, 88);
graph1.addDataPoint(18914, 87);
graph1.addDataPoint(18938, 86);
graph1.addDataPoint(18984, 85);
graph1.addDataPoint(19008, 84);
graph1.addDataPoint(19031, 83);
graph1.addDataPoint(19078, 82);
graph1.addDataPoint(19102, 81);
graph1.addDataPoint(19125, 80);
graph1.addDataPoint(19148, 79);
graph1.addDataPoint(19172, 78);
graph1.addDataPoint(19195, 77);
graph1.addDataPoint(19219, 76);
graph1.addDataPoint(19242, 75);
graph1.addDataPoint(19266, 74);
graph1.addDataPoint(19289, 73);
graph1.addDataPoint(19313, 71);
graph1.addDataPoint(19336, 70);
graph1.addDataPoint(19359, 69);
graph1.addDataPoint(19383, 68);
graph1.addDataPoint(19406, 67);
graph1.addDataPoint(19430, 66);
graph1.addDataPoint(19453, 65);
graph1.addDataPoint(19477, 64);
graph1.addDataPoint(19500, 63);
graph1.addDataPoint(19523, 62);
graph1.addDataPoint(19547, 61);
graph1.addDataPoint(19570, 60);
graph1.addDataPoint(19594, 59);
graph1.addDataPoint(19617, 58);
graph1.addDataPoint(19641, 57);
graph1.addDataPoint(19664, 56);
graph1.addDataPoint(19711, 55);
graph1.addDataPoint(19734, 54);
graph1.addDataPoint(19758, 53);
graph1.addDataPoint(19805, 52);
graph1.addDataPoint(19852, 51);
graph1.addDataPoint(19898, 50);
graph1.addDataPoint(19945, 49);
graph1.addDataPoint(20250, 50);
graph1.addDataPoint(20320, 51);
graph1.addDataPoint(20367, 52);
graph1.addDataPoint(20414, 53);
graph1.addDataPoint(20438, 54);
graph1.addDataPoint(20484, 55);
graph1.addDataPoint(20508, 56);
graph1.addDataPoint(20555, 57);
graph1.addDataPoint(20578, 58);
graph1.addDataPoint(20602, 59);
graph1.addDataPoint(20625, 60);
graph1.addDataPoint(20672, 61);
graph1.addDataPoint(20695, 62);
graph1.addDataPoint(20719, 63);
graph1.addDataPoint(20742, 64);
graph1.addDataPoint(20766, 65);
graph1.addDataPoint(20813, 66);
graph1.addDataPoint(20836, 67);
graph1.addDataPoint(20859, 68);
graph1.addDataPoint(20883, 69);
graph1.addDataPoint(20930, 70);
graph1.addDataPoint(20953, 71);
graph1.addDataPoint(21000, 72);
graph1.addDataPoint(21023, 73);
graph1.addDataPoint(21070, 74);
graph1.addDataPoint(21117, 75);
graph1.addDataPoint(21164, 76);
graph1.addDataPoint(21234, 77);
graph1.addDataPoint(21445, 76);
graph1.addDataPoint(21516, 75);
graph1.addDataPoint(21563, 74);
graph1.addDataPoint(21609, 73);
graph1.addDataPoint(21633, 72);
graph1.addDataPoint(21656, 71);
graph1.addDataPoint(21680, 70);
graph1.addDataPoint(21727, 69);
graph1.addDataPoint(21750, 68);
graph1.addDataPoint(21773, 67);
graph1.addDataPoint(21797, 65);
graph1.addDataPoint(21820, 64);
graph1.addDataPoint(21844, 63);
graph1.addDataPoint(21867, 62);
graph1.addDataPoint(21891, 61);
graph1.addDataPoint(21914, 59);
graph1.addDataPoint(21938, 58);
graph1.addDataPoint(21961, 56);
graph1.addDataPoint(21984, 55);
graph1.addDataPoint(22008, 54);
graph1.addDataPoint(22031, 52);
graph1.addDataPoint(22055, 51);
graph1.addDataPoint(22078, 49);
graph1.addDataPoint(22102, 47);
graph1.addDataPoint(22125, 46);
graph1.addDataPoint(22148, 44);
graph1.addDataPoint(22172, 43);
graph1.addDataPoint(22195, 41);
graph1.addDataPoint(22219, 39);
graph1.addDataPoint(22242, 38);
graph1.addDataPoint(22266, 36);
graph1.addDataPoint(22289, 35);
graph1.addDataPoint(22313, 33);
graph1.addDataPoint(22336, 31);
graph1.addDataPoint(22359, 30);
graph1.addDataPoint(22383, 28);
graph1.addDataPoint(22406, 27);
graph1.addDataPoint(22430, 25);
graph1.addDataPoint(22453, 24);
graph1.addDataPoint(22477, 22);
graph1.addDataPoint(22500, 21);
graph1.addDataPoint(22523, 19);
graph1.addDataPoint(22547, 18);
graph1.addDataPoint(22570, 17);
graph1.addDataPoint(22594, 15);
graph1.addDataPoint(22617, 14);
graph1.addDataPoint(22641, 13);
graph1.addDataPoint(22664, 12);
graph1.addDataPoint(22688, 11);
graph1.addDataPoint(22711, 10);
graph1.addDataPoint(22734, 9);
graph1.addDataPoint(22758, 8);
graph1.addDataPoint(22781, 7);
graph1.addDataPoint(22805, 6);
graph1.addDataPoint(22828, 5);
graph1.addDataPoint(22852, 4);
graph1.addDataPoint(22898, 3);
graph1.addDataPoint(22945, 2);
graph1.addDataPoint(23016, 1);
graph1.addDataPoint(23180, 2);
graph1.addDataPoint(23250, 3);
graph1.addDataPoint(23297, 4);
graph1.addDataPoint(23344, 5);
graph1.addDataPoint(23367, 6);
graph1.addDataPoint(23391, 7);
graph1.addDataPoint(23414, 8);
graph1.addDataPoint(23461, 9);
graph1.addDataPoint(23484, 10);
graph1.addDataPoint(23508, 11);
graph1.addDataPoint(23531, 12);
graph1.addDataPoint(23555, 14);
graph1.addDataPoint(23578, 15);
graph1.addDataPoint(23602, 16);
graph1.addDataPoint(23625, 17);
graph1.addDataPoint(23648, 18);
graph1.addDataPoint(23672, 20);
graph1.addDataPoint(23695, 21);
graph1.addDataPoint(23719, 22);
graph1.addDataPoint(23742, 24);
graph1.addDataPoint(23766, 25);
graph1.addDataPoint(23789, 26);
graph1.addDataPoint(23813, 28);
graph1.addDataPoint(23836, 29);
graph1.addDataPoint(23859, 31);
graph1.addDataPoint(23883, 32);
graph1.addDataPoint(23906, 33);
graph1.addDataPoint(23930, 35);
graph1.addDataPoint(23953, 36);
graph1.addDataPoint(23977, 37);
add(graph1);
image2.setXY(535, 74);
image2.setBitmap(touchgfx::Bitmap(BITMAP_GLASS_THEME_IMAGES_WIDGETS_BUTTON_REGULAR_HEIGHT_36_MEDIUM_ROUND_ACTION_ID));
add(image2);
textArea2.setPosition(582, 104, 181, 23);
textArea2.setColor(touchgfx::Color::getColorFromRGB(230, 214, 170));
textArea2.setLinespacing(0);
Unicode::snprintf(textArea2Buffer, TEXTAREA2_SIZE, "%s", touchgfx::TypedText(T___SINGLEUSE_U5V0).getText());
textArea2.setWildcard(textArea2Buffer);
textArea2.setTypedText(touchgfx::TypedText(T_TEXTAREAMAX));
add(textArea2);
}
OscilloViewBase::~OscilloViewBase()
{
touchgfx::CanvasWidgetRenderer::resetBuffer();
}
void OscilloViewBase::setupScreen()
{
}
void OscilloViewBase::buttonCallbackHandler(const touchgfx::AbstractButton& src)
{
if (&src == &buttonWithLabel1)
{
//Interaction1
//When buttonWithLabel1 clicked change screen to Overview
//Go to Overview with no screen transition
application().gotoOverviewScreenNoTransition();
}
if (&src == &toggleButton1)
{
//Interaction2
//When toggleButton1 clicked call virtual function
//Call toggleClicked
toggleClicked();
}
}
@@ -0,0 +1,139 @@
/*********************************************************************************/
/********** THIS FILE IS GENERATED BY TOUCHGFX DESIGNER, DO NOT MODIFY ***********/
/*********************************************************************************/
#include <gui_generated/overdrive_screen/OverdriveViewBase.hpp>
#include <touchgfx/Color.hpp>
#include <images/BitmapDatabase.hpp>
#include <texts/TextKeysAndLanguages.hpp>
OverdriveViewBase::OverdriveViewBase() :
buttonCallback(this, &OverdriveViewBase::buttonCallbackHandler),
sliderValueChangedCallback(this, &OverdriveViewBase::sliderValueChangedCallbackHandler)
{
__background.setPosition(0, 0, 800, 480);
__background.setColor(touchgfx::Color::getColorFromRGB(0, 0, 0));
add(__background);
image1.setXY(0, -1);
image1.setBitmap(touchgfx::Bitmap(BITMAP_FONDHORLOGERIE1_ID));
add(image1);
box1.setPosition(0, 0, 800, 480);
box1.setColor(touchgfx::Color::getColorFromRGB(35, 24, 15));
box1.setAlpha(241);
add(box1);
toggleButton1.setXY(576, 20);
toggleButton1.setBitmaps(touchgfx::Bitmap(BITMAP_GLASS_THEME_IMAGES_WIDGETS_TOGGLEBUTTON_LARGE_ROUND_TEXT_OFF_NORMAL_ID), touchgfx::Bitmap(BITMAP_GLASS_THEME_IMAGES_WIDGETS_TOGGLEBUTTON_LARGE_ROUND_TEXT_ON_ACTIVE_ID));
toggleButton1.setAction(buttonCallback);
add(toggleButton1);
slider1.setXY(290, 134);
slider1.setBitmaps(touchgfx::Bitmap(BITMAP_GLASS_THEME_IMAGES_WIDGETS_SLIDER_HORIZONTAL_THICK_TRACK_LARGE_ID), touchgfx::Bitmap(BITMAP_GLASS_THEME_IMAGES_WIDGETS_SLIDER_HORIZONTAL_THICK_FILLER_LARGE_ID), touchgfx::Bitmap(BITMAP_GLASS_THEME_IMAGES_WIDGETS_SLIDER_HORIZONTAL_THICK_ROUNDED_DARK_ID));
slider1.setupHorizontalSlider(28, 21, 0, 0, 400);
slider1.setValueRange(0, 100);
slider1.setValue(0);
slider1.setNewValueCallback(sliderValueChangedCallback);
add(slider1);
slider2.setXY(290, 244);
slider2.setBitmaps(touchgfx::Bitmap(BITMAP_GLASS_THEME_IMAGES_WIDGETS_SLIDER_HORIZONTAL_THICK_TRACK_LARGE_ID), touchgfx::Bitmap(BITMAP_GLASS_THEME_IMAGES_WIDGETS_SLIDER_HORIZONTAL_THICK_FILLER_LARGE_ID), touchgfx::Bitmap(BITMAP_GLASS_THEME_IMAGES_WIDGETS_SLIDER_HORIZONTAL_THICK_ROUNDED_DARK_ID));
slider2.setupHorizontalSlider(28, 21, 0, 0, 400);
slider2.setValueRange(0, 100);
slider2.setValue(0);
slider2.setNewValueCallback(sliderValueChangedCallback);
add(slider2);
slider3.setXY(290, 354);
slider3.setBitmaps(touchgfx::Bitmap(BITMAP_GLASS_THEME_IMAGES_WIDGETS_SLIDER_HORIZONTAL_THICK_TRACK_LARGE_ID), touchgfx::Bitmap(BITMAP_GLASS_THEME_IMAGES_WIDGETS_SLIDER_HORIZONTAL_THICK_FILLER_LARGE_ID), touchgfx::Bitmap(BITMAP_GLASS_THEME_IMAGES_WIDGETS_SLIDER_HORIZONTAL_THICK_ROUNDED_DARK_ID));
slider3.setupHorizontalSlider(28, 21, 0, 0, 400);
slider3.setValueRange(0, 100);
slider3.setValue(0);
slider3.setNewValueCallback(sliderValueChangedCallback);
add(slider3);
buttonWithLabel1.setXY(0, 0);
buttonWithLabel1.setBitmaps(touchgfx::Bitmap(BITMAP_GLASS_THEME_IMAGES_WIDGETS_BUTTON_REGULAR_HEIGHT_50_SMALL_ROUNDED_NORMAL_ID), touchgfx::Bitmap(BITMAP_GLASS_THEME_IMAGES_WIDGETS_BUTTON_REGULAR_HEIGHT_50_SMALL_ROUNDED_PRESSED_ID));
buttonWithLabel1.setLabelText(touchgfx::TypedText(T_BACK));
buttonWithLabel1.setLabelColor(touchgfx::Color::getColorFromRGB(230, 214, 170));
buttonWithLabel1.setLabelColorPressed(touchgfx::Color::getColorFromRGB(230, 214, 170));
buttonWithLabel1.setAction(buttonCallback);
add(buttonWithLabel1);
textArea1.setXY(282, 24);
textArea1.setColor(touchgfx::Color::getColorFromRGB(230, 214, 170));
textArea1.setLinespacing(0);
textArea1.setTypedText(touchgfx::TypedText(T_OVERDRIVE));
add(textArea1);
textArea2.setXY(130, 150);
textArea2.setColor(touchgfx::Color::getColorFromRGB(230, 214, 170));
textArea2.setLinespacing(0);
textArea2.setTypedText(touchgfx::TypedText(T_DRIVE));
add(textArea2);
textArea2_1.setXY(130, 260);
textArea2_1.setColor(touchgfx::Color::getColorFromRGB(230, 214, 170));
textArea2_1.setLinespacing(0);
textArea2_1.setTypedText(touchgfx::TypedText(T_TONE));
add(textArea2_1);
textArea2_2.setXY(130, 370);
textArea2_2.setColor(touchgfx::Color::getColorFromRGB(230, 214, 170));
textArea2_2.setLinespacing(0);
textArea2_2.setTypedText(touchgfx::TypedText(T_LEVEL));
add(textArea2_2);
}
OverdriveViewBase::~OverdriveViewBase()
{
}
void OverdriveViewBase::setupScreen()
{
}
void OverdriveViewBase::buttonCallbackHandler(const touchgfx::AbstractButton& src)
{
if (&src == &buttonWithLabel1)
{
//Interaction1
//When buttonWithLabel1 clicked change screen to Overview
//Go to Overview with no screen transition
application().gotoOverviewScreenNoTransition();
}
if (&src == &toggleButton1)
{
//Interaction2
//When toggleButton1 clicked call virtual function
//Call toggleClicked
toggleClicked();
}
}
void OverdriveViewBase::sliderValueChangedCallbackHandler(const touchgfx::Slider& src, int value)
{
if (&src == &slider1)
{
//Interaction3
//When slider1 value changed call virtual function
//Call sliderDriveChanged
sliderDriveChanged(value);
}
if (&src == &slider2)
{
//Interaction4
//When slider2 value changed call virtual function
//Call sliderToneChanged
sliderToneChanged(value);
}
if (&src == &slider3)
{
//Interaction5
//When slider3 value changed call virtual function
//Call sliderLevelChanged
sliderLevelChanged(value);
}
}
@@ -0,0 +1,195 @@
/*********************************************************************************/
/********** THIS FILE IS GENERATED BY TOUCHGFX DESIGNER, DO NOT MODIFY ***********/
/*********************************************************************************/
#include <gui_generated/overview_screen/OverviewViewBase.hpp>
#include <touchgfx/Color.hpp>
#include <images/BitmapDatabase.hpp>
#include <texts/TextKeysAndLanguages.hpp>
OverviewViewBase::OverviewViewBase() :
buttonCallback(this, &OverviewViewBase::buttonCallbackHandler),
sliderValueChangedCallback(this, &OverviewViewBase::sliderValueChangedCallbackHandler)
{
__background.setPosition(0, 0, 800, 480);
__background.setColor(touchgfx::Color::getColorFromRGB(0, 0, 0));
add(__background);
image1.setXY(0, -1);
image1.setBitmap(touchgfx::Bitmap(BITMAP_FONDHORLOGERIE1_ID));
add(image1);
box1.setPosition(0, 0, 800, 480);
box1.setColor(touchgfx::Color::getColorFromRGB(35, 24, 15));
box1.setAlpha(182);
add(box1);
buttonWithLabel1.setXY(0, 134);
buttonWithLabel1.setBitmaps(touchgfx::Bitmap(BITMAP_GLASS_THEME_IMAGES_WIDGETS_BUTTON_REGULAR_HEIGHT_50_LARGE_ROUNDED_NORMAL_ID), touchgfx::Bitmap(BITMAP_GLASS_THEME_IMAGES_WIDGETS_BUTTON_REGULAR_HEIGHT_50_LARGE_ROUNDED_PRESSED_ID));
buttonWithLabel1.setLabelText(touchgfx::TypedText(T_EQUALIZER));
buttonWithLabel1.setLabelColor(touchgfx::Color::getColorFromRGB(230, 214, 170));
buttonWithLabel1.setLabelColorPressed(touchgfx::Color::getColorFromRGB(255, 255, 255));
buttonWithLabel1.setAction(buttonCallback);
add(buttonWithLabel1);
buttonWithLabel2.setXY(0, 322);
buttonWithLabel2.setBitmaps(touchgfx::Bitmap(BITMAP_GLASS_THEME_IMAGES_WIDGETS_BUTTON_REGULAR_HEIGHT_50_LARGE_ROUNDED_NORMAL_ID), touchgfx::Bitmap(BITMAP_GLASS_THEME_IMAGES_WIDGETS_BUTTON_REGULAR_HEIGHT_50_LARGE_ROUNDED_PRESSED_ID));
buttonWithLabel2.setLabelText(touchgfx::TypedText(T_OVERDRIVE));
buttonWithLabel2.setLabelColor(touchgfx::Color::getColorFromRGB(230, 214, 170));
buttonWithLabel2.setLabelColorPressed(touchgfx::Color::getColorFromRGB(230, 214, 170));
buttonWithLabel2.setAction(buttonCallback);
add(buttonWithLabel2);
buttonWithLabel3.setXY(380, 322);
buttonWithLabel3.setBitmaps(touchgfx::Bitmap(BITMAP_GLASS_THEME_IMAGES_WIDGETS_BUTTON_REGULAR_HEIGHT_50_LARGE_ROUNDED_NORMAL_ID), touchgfx::Bitmap(BITMAP_GLASS_THEME_IMAGES_WIDGETS_BUTTON_REGULAR_HEIGHT_50_LARGE_ROUNDED_PRESSED_ID));
buttonWithLabel3.setLabelText(touchgfx::TypedText(T_SATURATION));
buttonWithLabel3.setLabelColor(touchgfx::Color::getColorFromRGB(230, 214, 170));
buttonWithLabel3.setLabelColorPressed(touchgfx::Color::getColorFromRGB(230, 214, 170));
buttonWithLabel3.setAction(buttonCallback);
add(buttonWithLabel3);
buttonWithLabel4.setXY(0, 228);
buttonWithLabel4.setBitmaps(touchgfx::Bitmap(BITMAP_GLASS_THEME_IMAGES_WIDGETS_BUTTON_REGULAR_HEIGHT_50_LARGE_ROUNDED_NORMAL_ID), touchgfx::Bitmap(BITMAP_GLASS_THEME_IMAGES_WIDGETS_BUTTON_REGULAR_HEIGHT_50_LARGE_ROUNDED_PRESSED_ID));
buttonWithLabel4.setLabelText(touchgfx::TypedText(T_ECHO));
buttonWithLabel4.setLabelColor(touchgfx::Color::getColorFromRGB(230, 214, 170));
buttonWithLabel4.setLabelColorPressed(touchgfx::Color::getColorFromRGB(230, 214, 170));
buttonWithLabel4.setAction(buttonCallback);
add(buttonWithLabel4);
buttonWithLabel5.setXY(380, 228);
buttonWithLabel5.setBitmaps(touchgfx::Bitmap(BITMAP_GLASS_THEME_IMAGES_WIDGETS_BUTTON_REGULAR_HEIGHT_50_LARGE_ROUNDED_NORMAL_ID), touchgfx::Bitmap(BITMAP_GLASS_THEME_IMAGES_WIDGETS_BUTTON_REGULAR_HEIGHT_50_LARGE_ROUNDED_PRESSED_ID));
buttonWithLabel5.setLabelText(touchgfx::TypedText(T_REVERB));
buttonWithLabel5.setLabelColor(touchgfx::Color::getColorFromRGB(230, 214, 170));
buttonWithLabel5.setLabelColorPressed(touchgfx::Color::getColorFromRGB(230, 214, 170));
buttonWithLabel5.setAction(buttonCallback);
add(buttonWithLabel5);
buttonWithLabel6.setXY(380, 134);
buttonWithLabel6.setBitmaps(touchgfx::Bitmap(BITMAP_GLASS_THEME_IMAGES_WIDGETS_BUTTON_REGULAR_HEIGHT_50_LARGE_ROUNDED_NORMAL_ID), touchgfx::Bitmap(BITMAP_GLASS_THEME_IMAGES_WIDGETS_BUTTON_REGULAR_HEIGHT_50_LARGE_ROUNDED_PRESSED_ID));
buttonWithLabel6.setLabelText(touchgfx::TypedText(T_OCTAVER));
buttonWithLabel6.setLabelColor(touchgfx::Color::getColorFromRGB(230, 214, 170));
buttonWithLabel6.setLabelColorPressed(touchgfx::Color::getColorFromRGB(230, 214, 170));
buttonWithLabel6.setAction(buttonCallback);
add(buttonWithLabel6);
buttonWithLabel7.setXY(190, 396);
buttonWithLabel7.setBitmaps(touchgfx::Bitmap(BITMAP_GLASS_THEME_IMAGES_WIDGETS_BUTTON_REGULAR_HEIGHT_50_LARGE_ROUNDED_NORMAL_ID), touchgfx::Bitmap(BITMAP_GLASS_THEME_IMAGES_WIDGETS_BUTTON_REGULAR_HEIGHT_50_LARGE_ROUNDED_PRESSED_ID));
buttonWithLabel7.setLabelText(touchgfx::TypedText(T_OSCILLO));
buttonWithLabel7.setLabelColor(touchgfx::Color::getColorFromRGB(230, 214, 170));
buttonWithLabel7.setLabelColorPressed(touchgfx::Color::getColorFromRGB(230, 214, 170));
buttonWithLabel7.setAction(buttonCallback);
add(buttonWithLabel7);
toggleButton1.setXY(135, 18);
toggleButton1.setBitmaps(touchgfx::Bitmap(BITMAP_GLASS_THEME_IMAGES_WIDGETS_TOGGLEBUTTON_LARGE_ROUNDED_TEXT_OFF_NORMAL_ID), touchgfx::Bitmap(BITMAP_GLASS_THEME_IMAGES_WIDGETS_TOGGLEBUTTON_LARGE_ROUNDED_TEXT_ON_ACTIVE_ID));
toggleButton1.setAction(buttonCallback);
add(toggleButton1);
slider1.setXY(329, 22);
slider1.setBitmaps(touchgfx::Bitmap(BITMAP_GLASS_THEME_IMAGES_WIDGETS_SLIDER_HORIZONTAL_THICK_TRACK_LARGE_ID), touchgfx::Bitmap(BITMAP_GLASS_THEME_IMAGES_WIDGETS_SLIDER_HORIZONTAL_THICK_FILLER_LARGE_ID), touchgfx::Bitmap(BITMAP_GLASS_THEME_IMAGES_WIDGETS_SLIDER_HORIZONTAL_THICK_ROUNDED_DARK_ID));
slider1.setupHorizontalSlider(28, 21, 0, 0, 400);
slider1.setValueRange(0, 100);
slider1.setValue(0);
slider1.setNewValueCallback(sliderValueChangedCallback);
add(slider1);
scalableImage1.setBitmap(touchgfx::Bitmap(BITMAP_ICON_THEME_IMAGES_HARDWARE_HEADSET_50_50_FFFFFF_SVG_ID));
scalableImage1.setPosition(15, 4, 105, 95);
scalableImage1.setScalingAlgorithm(touchgfx::ScalableImage::BILINEAR_INTERPOLATION);
scalableImage1.setAlpha(149);
add(scalableImage1);
repeatButton1.setXY(45, 382);
repeatButton1.setBitmaps(touchgfx::Bitmap(BITMAP_GLASS_THEME_IMAGES_WIDGETS_BUTTON_ICON_ROUND_TINY_FILL_NORMAL_ID), touchgfx::Bitmap(BITMAP_GLASS_THEME_IMAGES_WIDGETS_BUTTON_ICON_ROUND_TINY_FILL_PRESSED_ID));
repeatButton1.setDelay(12);
repeatButton1.setInterval(60);
repeatButton1.setAction(buttonCallback);
add(repeatButton1);
}
OverviewViewBase::~OverviewViewBase()
{
}
void OverviewViewBase::setupScreen()
{
}
void OverviewViewBase::buttonCallbackHandler(const touchgfx::AbstractButton& src)
{
if (&src == &buttonWithLabel1)
{
//Interaction1
//When buttonWithLabel1 clicked change screen to Equalizer
//Go to Equalizer with no screen transition
application().gotoEqualizerScreenNoTransition();
}
if (&src == &buttonWithLabel2)
{
//Interaction2
//When buttonWithLabel2 clicked change screen to Overdrive
//Go to Overdrive with no screen transition
application().gotoOverdriveScreenNoTransition();
}
if (&src == &buttonWithLabel3)
{
//Interaction3
//When buttonWithLabel3 clicked change screen to Saturation
//Go to Saturation with no screen transition
application().gotoSaturationScreenNoTransition();
}
if (&src == &buttonWithLabel4)
{
//Interaction4
//When buttonWithLabel4 clicked change screen to Echo
//Go to Echo with no screen transition
application().gotoEchoScreenNoTransition();
}
if (&src == &buttonWithLabel5)
{
//Interaction5
//When buttonWithLabel5 clicked change screen to Reverb
//Go to Reverb with no screen transition
application().gotoReverbScreenNoTransition();
}
if (&src == &toggleButton1)
{
//Interaction6
//When toggleButton1 clicked call virtual function
//Call toggleAudioOnOFF
toggleAudioOnOFF();
}
if (&src == &buttonWithLabel6)
{
//Interaction7
//When buttonWithLabel6 clicked change screen to Octaver
//Go to Octaver with no screen transition
application().gotoOctaverScreenNoTransition();
}
if (&src == &buttonWithLabel7)
{
//Interaction10
//When buttonWithLabel7 clicked change screen to Oscillo
//Go to Oscillo with no screen transition
application().gotoOscilloScreenNoTransition();
}
if (&src == &repeatButton1)
{
//Interaction11
//When repeatButton1 clicked call virtual function
//Call repeatButtonClicked
repeatButtonClicked();
}
}
void OverviewViewBase::sliderValueChangedCallbackHandler(const touchgfx::Slider& src, int value)
{
if (&src == &slider1)
{
//Interaction8
//When slider1 value changed call virtual function
//Call slider1Changed
slider1Changed(value);
}
}
@@ -0,0 +1,139 @@
/*********************************************************************************/
/********** THIS FILE IS GENERATED BY TOUCHGFX DESIGNER, DO NOT MODIFY ***********/
/*********************************************************************************/
#include <gui_generated/reverb_screen/ReverbViewBase.hpp>
#include <touchgfx/Color.hpp>
#include <images/BitmapDatabase.hpp>
#include <texts/TextKeysAndLanguages.hpp>
ReverbViewBase::ReverbViewBase() :
buttonCallback(this, &ReverbViewBase::buttonCallbackHandler),
sliderValueChangedCallback(this, &ReverbViewBase::sliderValueChangedCallbackHandler)
{
__background.setPosition(0, 0, 800, 480);
__background.setColor(touchgfx::Color::getColorFromRGB(0, 0, 0));
add(__background);
image1.setXY(0, -1);
image1.setBitmap(touchgfx::Bitmap(BITMAP_FONDHORLOGERIE1_ID));
add(image1);
box1.setPosition(0, 0, 800, 480);
box1.setColor(touchgfx::Color::getColorFromRGB(35, 24, 15));
box1.setAlpha(240);
add(box1);
textArea2.setXY(142, 380);
textArea2.setColor(touchgfx::Color::getColorFromRGB(230, 214, 170));
textArea2.setLinespacing(0);
textArea2.setTypedText(touchgfx::TypedText(T_MIX));
add(textArea2);
textArea2_1.setXY(130, 271);
textArea2_1.setColor(touchgfx::Color::getColorFromRGB(230, 214, 170));
textArea2_1.setLinespacing(0);
textArea2_1.setTypedText(touchgfx::TypedText(T_DAMPING));
add(textArea2_1);
textArea2_2.setXY(130, 161);
textArea2_2.setColor(touchgfx::Color::getColorFromRGB(230, 214, 170));
textArea2_2.setLinespacing(0);
textArea2_2.setTypedText(touchgfx::TypedText(T_DRIVE));
add(textArea2_2);
slider1.setXY(280, 145);
slider1.setBitmaps(touchgfx::Bitmap(BITMAP_GLASS_THEME_IMAGES_WIDGETS_SLIDER_HORIZONTAL_THICK_TRACK_LARGE_ID), touchgfx::Bitmap(BITMAP_GLASS_THEME_IMAGES_WIDGETS_SLIDER_HORIZONTAL_THICK_FILLER_LARGE_ID), touchgfx::Bitmap(BITMAP_GLASS_THEME_IMAGES_WIDGETS_SLIDER_HORIZONTAL_THICK_ROUNDED_DARK_ID));
slider1.setupHorizontalSlider(28, 21, 0, 0, 400);
slider1.setValueRange(0, 100);
slider1.setValue(0);
slider1.setNewValueCallback(sliderValueChangedCallback);
add(slider1);
slider2.setXY(280, 255);
slider2.setBitmaps(touchgfx::Bitmap(BITMAP_GLASS_THEME_IMAGES_WIDGETS_SLIDER_HORIZONTAL_THICK_TRACK_LARGE_ID), touchgfx::Bitmap(BITMAP_GLASS_THEME_IMAGES_WIDGETS_SLIDER_HORIZONTAL_THICK_FILLER_LARGE_ID), touchgfx::Bitmap(BITMAP_GLASS_THEME_IMAGES_WIDGETS_SLIDER_HORIZONTAL_THICK_ROUNDED_DARK_ID));
slider2.setupHorizontalSlider(28, 21, 0, 0, 400);
slider2.setValueRange(0, 100);
slider2.setValue(0);
slider2.setNewValueCallback(sliderValueChangedCallback);
add(slider2);
slider3.setXY(280, 365);
slider3.setBitmaps(touchgfx::Bitmap(BITMAP_GLASS_THEME_IMAGES_WIDGETS_SLIDER_HORIZONTAL_THICK_TRACK_LARGE_ID), touchgfx::Bitmap(BITMAP_GLASS_THEME_IMAGES_WIDGETS_SLIDER_HORIZONTAL_THICK_FILLER_LARGE_ID), touchgfx::Bitmap(BITMAP_GLASS_THEME_IMAGES_WIDGETS_SLIDER_HORIZONTAL_THICK_ROUNDED_DARK_ID));
slider3.setupHorizontalSlider(28, 21, 0, 0, 400);
slider3.setValueRange(0, 100);
slider3.setValue(0);
slider3.setNewValueCallback(sliderValueChangedCallback);
add(slider3);
textArea1.setXY(317, 27);
textArea1.setColor(touchgfx::Color::getColorFromRGB(230, 214, 170));
textArea1.setLinespacing(0);
textArea1.setTypedText(touchgfx::TypedText(T_REVERB));
add(textArea1);
buttonWithLabel1.setXY(0, 0);
buttonWithLabel1.setBitmaps(touchgfx::Bitmap(BITMAP_GLASS_THEME_IMAGES_WIDGETS_BUTTON_REGULAR_HEIGHT_50_SMALL_ROUNDED_NORMAL_ID), touchgfx::Bitmap(BITMAP_GLASS_THEME_IMAGES_WIDGETS_BUTTON_REGULAR_HEIGHT_50_SMALL_ROUNDED_PRESSED_ID));
buttonWithLabel1.setLabelText(touchgfx::TypedText(T_BACK));
buttonWithLabel1.setLabelColor(touchgfx::Color::getColorFromRGB(230, 214, 170));
buttonWithLabel1.setLabelColorPressed(touchgfx::Color::getColorFromRGB(230, 214, 170));
buttonWithLabel1.setAction(buttonCallback);
add(buttonWithLabel1);
toggleButton1.setXY(576, 20);
toggleButton1.setBitmaps(touchgfx::Bitmap(BITMAP_GLASS_THEME_IMAGES_WIDGETS_TOGGLEBUTTON_LARGE_ROUND_TEXT_OFF_NORMAL_ID), touchgfx::Bitmap(BITMAP_GLASS_THEME_IMAGES_WIDGETS_TOGGLEBUTTON_LARGE_ROUND_TEXT_ON_ACTIVE_ID));
toggleButton1.setAction(buttonCallback);
add(toggleButton1);
}
ReverbViewBase::~ReverbViewBase()
{
}
void ReverbViewBase::setupScreen()
{
}
void ReverbViewBase::buttonCallbackHandler(const touchgfx::AbstractButton& src)
{
if (&src == &buttonWithLabel1)
{
//Interaction1
//When buttonWithLabel1 clicked change screen to Overview
//Go to Overview with no screen transition
application().gotoOverviewScreenNoTransition();
}
if (&src == &toggleButton1)
{
//Interaction2
//When toggleButton1 clicked call virtual function
//Call toggleClicked
toggleClicked();
}
}
void ReverbViewBase::sliderValueChangedCallbackHandler(const touchgfx::Slider& src, int value)
{
if (&src == &slider1)
{
//Interaction3
//When slider1 value changed call virtual function
//Call sliderTailleChanged
sliderTailleChanged(value);
}
if (&src == &slider2)
{
//Interaction4
//When slider2 value changed call virtual function
//Call sliderAmortiChanged
sliderAmortiChanged(value);
}
if (&src == &slider3)
{
//Interaction5
//When slider3 value changed call virtual function
//Call sliderMixChanged
sliderMixChanged(value);
}
}
@@ -0,0 +1,118 @@
/*********************************************************************************/
/********** THIS FILE IS GENERATED BY TOUCHGFX DESIGNER, DO NOT MODIFY ***********/
/*********************************************************************************/
#include <gui_generated/saturation_screen/SaturationViewBase.hpp>
#include <touchgfx/Color.hpp>
#include <images/BitmapDatabase.hpp>
#include <texts/TextKeysAndLanguages.hpp>
SaturationViewBase::SaturationViewBase() :
buttonCallback(this, &SaturationViewBase::buttonCallbackHandler),
sliderValueChangedCallback(this, &SaturationViewBase::sliderValueChangedCallbackHandler)
{
__background.setPosition(0, 0, 800, 480);
__background.setColor(touchgfx::Color::getColorFromRGB(0, 0, 0));
add(__background);
image1.setXY(0, -1);
image1.setBitmap(touchgfx::Bitmap(BITMAP_FONDHORLOGERIE1_ID));
add(image1);
box1.setPosition(0, 0, 800, 480);
box1.setColor(touchgfx::Color::getColorFromRGB(35, 24, 15));
box1.setAlpha(240);
add(box1);
textArea2.setXY(130, 161);
textArea2.setColor(touchgfx::Color::getColorFromRGB(230, 214, 170));
textArea2.setLinespacing(0);
textArea2.setTypedText(touchgfx::TypedText(T_DRIVE));
add(textArea2);
textArea2_1.setXY(130, 270);
textArea2_1.setColor(touchgfx::Color::getColorFromRGB(230, 214, 170));
textArea2_1.setLinespacing(0);
textArea2_1.setTypedText(touchgfx::TypedText(T_LEVEL));
add(textArea2_1);
slider1.setXY(280, 145);
slider1.setBitmaps(touchgfx::Bitmap(BITMAP_GLASS_THEME_IMAGES_WIDGETS_SLIDER_HORIZONTAL_THICK_TRACK_LARGE_ID), touchgfx::Bitmap(BITMAP_GLASS_THEME_IMAGES_WIDGETS_SLIDER_HORIZONTAL_THICK_FILLER_LARGE_ID), touchgfx::Bitmap(BITMAP_GLASS_THEME_IMAGES_WIDGETS_SLIDER_HORIZONTAL_THICK_ROUNDED_DARK_ID));
slider1.setupHorizontalSlider(28, 21, 0, 0, 400);
slider1.setValueRange(0, 100);
slider1.setValue(0);
slider1.setNewValueCallback(sliderValueChangedCallback);
add(slider1);
slider2.setXY(280, 255);
slider2.setBitmaps(touchgfx::Bitmap(BITMAP_GLASS_THEME_IMAGES_WIDGETS_SLIDER_HORIZONTAL_THICK_TRACK_LARGE_ID), touchgfx::Bitmap(BITMAP_GLASS_THEME_IMAGES_WIDGETS_SLIDER_HORIZONTAL_THICK_FILLER_LARGE_ID), touchgfx::Bitmap(BITMAP_GLASS_THEME_IMAGES_WIDGETS_SLIDER_HORIZONTAL_THICK_ROUNDED_DARK_ID));
slider2.setupHorizontalSlider(28, 21, 0, 0, 400);
slider2.setValueRange(0, 100);
slider2.setValue(0);
slider2.setNewValueCallback(sliderValueChangedCallback);
add(slider2);
textArea1.setXY(274, 24);
textArea1.setColor(touchgfx::Color::getColorFromRGB(230, 214, 170));
textArea1.setLinespacing(0);
textArea1.setTypedText(touchgfx::TypedText(T_SATURATION));
add(textArea1);
toggleButton1.setXY(576, 20);
toggleButton1.setBitmaps(touchgfx::Bitmap(BITMAP_GLASS_THEME_IMAGES_WIDGETS_TOGGLEBUTTON_LARGE_ROUND_TEXT_OFF_NORMAL_ID), touchgfx::Bitmap(BITMAP_GLASS_THEME_IMAGES_WIDGETS_TOGGLEBUTTON_LARGE_ROUND_TEXT_ON_ACTIVE_ID));
toggleButton1.setAction(buttonCallback);
add(toggleButton1);
buttonWithLabel1.setXY(0, 0);
buttonWithLabel1.setBitmaps(touchgfx::Bitmap(BITMAP_GLASS_THEME_IMAGES_WIDGETS_BUTTON_REGULAR_HEIGHT_50_SMALL_ROUNDED_NORMAL_ID), touchgfx::Bitmap(BITMAP_GLASS_THEME_IMAGES_WIDGETS_BUTTON_REGULAR_HEIGHT_50_SMALL_ROUNDED_PRESSED_ID));
buttonWithLabel1.setLabelText(touchgfx::TypedText(T_BACK));
buttonWithLabel1.setLabelColor(touchgfx::Color::getColorFromRGB(230, 214, 170));
buttonWithLabel1.setLabelColorPressed(touchgfx::Color::getColorFromRGB(230, 214, 170));
buttonWithLabel1.setAction(buttonCallback);
add(buttonWithLabel1);
}
SaturationViewBase::~SaturationViewBase()
{
}
void SaturationViewBase::setupScreen()
{
}
void SaturationViewBase::buttonCallbackHandler(const touchgfx::AbstractButton& src)
{
if (&src == &buttonWithLabel1)
{
//Interaction1
//When buttonWithLabel1 clicked change screen to Overview
//Go to Overview with no screen transition
application().gotoOverviewScreenNoTransition();
}
if (&src == &toggleButton1)
{
//Interaction2
//When toggleButton1 clicked call virtual function
//Call toggleClicked
toggleClicked();
}
}
void SaturationViewBase::sliderValueChangedCallbackHandler(const touchgfx::Slider& src, int value)
{
if (&src == &slider1)
{
//Interaction3
//When slider1 value changed call virtual function
//Call sliderDriveClicked
sliderDriveClicked(value);
}
if (&src == &slider2)
{
//Interaction4
//When slider2 value changed call virtual function
//Call sliderLevelClicked
sliderLevelClicked(value);
}
}
@@ -0,0 +1 @@
#include <images/BitmapDatabase.hpp>
@@ -0,0 +1,39 @@
// Generated by imageconverter. Please, do not edit!
#ifndef TOUCHGFX_BITMAPDATABASE_HPP
#define TOUCHGFX_BITMAPDATABASE_HPP
#include <touchgfx/hal/Types.hpp>
#include <touchgfx/Bitmap.hpp>
const uint16_t BITMAP_FONDHORLOGERIE1_ID = 0;
const uint16_t BITMAP_GLASS_THEME_IMAGES_WIDGETS_BUTTON_ICON_ROUND_HUGE_FILL_NORMAL_ID = 1;
const uint16_t BITMAP_GLASS_THEME_IMAGES_WIDGETS_BUTTON_ICON_ROUND_HUGE_FILL_PRESSED_ID = 2;
const uint16_t BITMAP_GLASS_THEME_IMAGES_WIDGETS_BUTTON_ICON_ROUND_TINY_FILL_NORMAL_ID = 3;
const uint16_t BITMAP_GLASS_THEME_IMAGES_WIDGETS_BUTTON_ICON_ROUND_TINY_FILL_PRESSED_ID = 4;
const uint16_t BITMAP_GLASS_THEME_IMAGES_WIDGETS_BUTTON_REGULAR_HEIGHT_36_MEDIUM_ROUND_ACTION_ID = 5;
const uint16_t BITMAP_GLASS_THEME_IMAGES_WIDGETS_BUTTON_REGULAR_HEIGHT_50_LARGE_ROUNDED_NORMAL_ID = 6;
const uint16_t BITMAP_GLASS_THEME_IMAGES_WIDGETS_BUTTON_REGULAR_HEIGHT_50_LARGE_ROUNDED_PRESSED_ID = 7;
const uint16_t BITMAP_GLASS_THEME_IMAGES_WIDGETS_BUTTON_REGULAR_HEIGHT_50_SMALL_ROUNDED_NORMAL_ID = 8;
const uint16_t BITMAP_GLASS_THEME_IMAGES_WIDGETS_BUTTON_REGULAR_HEIGHT_50_SMALL_ROUNDED_PRESSED_ID = 9;
const uint16_t BITMAP_GLASS_THEME_IMAGES_WIDGETS_SLIDER_HORIZONTAL_THICK_FILLER_LARGE_ID = 10;
const uint16_t BITMAP_GLASS_THEME_IMAGES_WIDGETS_SLIDER_HORIZONTAL_THICK_ROUNDED_DARK_ID = 11;
const uint16_t BITMAP_GLASS_THEME_IMAGES_WIDGETS_SLIDER_HORIZONTAL_THICK_TRACK_LARGE_ID = 12;
const uint16_t BITMAP_GLASS_THEME_IMAGES_WIDGETS_SLIDER_VERTICAL_THICK_FILLER_MEDIUM_ID = 13;
const uint16_t BITMAP_GLASS_THEME_IMAGES_WIDGETS_SLIDER_VERTICAL_THICK_ROUNDED_DARK_ID = 14;
const uint16_t BITMAP_GLASS_THEME_IMAGES_WIDGETS_SLIDER_VERTICAL_THICK_TRACK_MEDIUM_ID = 15;
const uint16_t BITMAP_GLASS_THEME_IMAGES_WIDGETS_TOGGLEBUTTON_LARGE_ROUND_TEXT_OFF_NORMAL_ID = 16;
const uint16_t BITMAP_GLASS_THEME_IMAGES_WIDGETS_TOGGLEBUTTON_LARGE_ROUND_TEXT_ON_ACTIVE_ID = 17;
const uint16_t BITMAP_GLASS_THEME_IMAGES_WIDGETS_TOGGLEBUTTON_LARGE_ROUNDED_TEXT_OFF_NORMAL_ID = 18;
const uint16_t BITMAP_GLASS_THEME_IMAGES_WIDGETS_TOGGLEBUTTON_LARGE_ROUNDED_TEXT_ON_ACTIVE_ID = 19;
const uint16_t BITMAP_ICON_THEME_IMAGES_ACTION_DONE_50_50_B5241F_SVG_ID = 20;
const uint16_t BITMAP_ICON_THEME_IMAGES_AV_FIBER_MANUAL_RECORD_50_50_5E3E10_SVG_ID = 21;
const uint16_t BITMAP_ICON_THEME_IMAGES_HARDWARE_HEADSET_50_50_FFFFFF_SVG_ID = 22;
namespace BitmapDatabase
{
const touchgfx::Bitmap::BitmapData* getInstance();
uint16_t getInstanceSize();
} // namespace BitmapDatabase
#endif // TOUCHGFX_BITMAPDATABASE_HPP
@@ -0,0 +1,20 @@
// Generated by imageconverter. Please, do not edit!
#ifndef TOUCHGFX_SVGDATABASE_HPP
#define TOUCHGFX_SVGDATABASE_HPP
#include <touchgfx/hal/Types.hpp>
#include <touchgfx/hal/VGData.hpp>
enum SVGImages
{
NUMBER_OF_SVG_IMAGES = 0
};
namespace SVGDatabase
{
const touchgfx::VGObject* getInstance();
uint16_t getInstanceSize();
} // namespace SVGDatabase
#endif // TOUCHGFX_SVGDATABASE_HPP
@@ -0,0 +1,68 @@
// 4.26.1 0xd94e70b0
// Generated by imageconverter. Please, do not edit!
#include <images/BitmapDatabase.hpp>
#include <touchgfx/Bitmap.hpp>
extern const unsigned char image_fondhorlogerie1[]; // BITMAP_FONDHORLOGERIE1_ID = 0, Size: 800x483 pixels
extern const unsigned char image_glass_theme_images_widgets_button_icon_round_huge_fill_normal[]; // BITMAP_GLASS_THEME_IMAGES_WIDGETS_BUTTON_ICON_ROUND_HUGE_FILL_NORMAL_ID = 1, Size: 334x322 pixels
extern const unsigned char image_glass_theme_images_widgets_button_icon_round_huge_fill_pressed[]; // BITMAP_GLASS_THEME_IMAGES_WIDGETS_BUTTON_ICON_ROUND_HUGE_FILL_PRESSED_ID = 2, Size: 334x322 pixels
extern const unsigned char image_glass_theme_images_widgets_button_icon_round_tiny_fill_normal[]; // BITMAP_GLASS_THEME_IMAGES_WIDGETS_BUTTON_ICON_ROUND_TINY_FILL_NORMAL_ID = 3, Size: 128x116 pixels
extern const unsigned char image_glass_theme_images_widgets_button_icon_round_tiny_fill_pressed[]; // BITMAP_GLASS_THEME_IMAGES_WIDGETS_BUTTON_ICON_ROUND_TINY_FILL_PRESSED_ID = 4, Size: 128x116 pixels
extern const unsigned char image_glass_theme_images_widgets_button_regular_height_36_medium_round_action[]; // BITMAP_GLASS_THEME_IMAGES_WIDGETS_BUTTON_REGULAR_HEIGHT_36_MEDIUM_ROUND_ACTION_ID = 5, Size: 264x80 pixels
extern const unsigned char image_glass_theme_images_widgets_button_regular_height_50_large_rounded_normal[]; // BITMAP_GLASS_THEME_IMAGES_WIDGETS_BUTTON_REGULAR_HEIGHT_50_LARGE_ROUNDED_NORMAL_ID = 6, Size: 420x94 pixels
extern const unsigned char image_glass_theme_images_widgets_button_regular_height_50_large_rounded_pressed[]; // BITMAP_GLASS_THEME_IMAGES_WIDGETS_BUTTON_REGULAR_HEIGHT_50_LARGE_ROUNDED_PRESSED_ID = 7, Size: 420x94 pixels
extern const unsigned char image_glass_theme_images_widgets_button_regular_height_50_small_rounded_normal[]; // BITMAP_GLASS_THEME_IMAGES_WIDGETS_BUTTON_REGULAR_HEIGHT_50_SMALL_ROUNDED_NORMAL_ID = 8, Size: 225x94 pixels
extern const unsigned char image_glass_theme_images_widgets_button_regular_height_50_small_rounded_pressed[]; // BITMAP_GLASS_THEME_IMAGES_WIDGETS_BUTTON_REGULAR_HEIGHT_50_SMALL_ROUNDED_PRESSED_ID = 9, Size: 225x94 pixels
extern const unsigned char image_glass_theme_images_widgets_slider_horizontal_thick_filler_large[]; // BITMAP_GLASS_THEME_IMAGES_WIDGETS_SLIDER_HORIZONTAL_THICK_FILLER_LARGE_ID = 10, Size: 400x10 pixels
extern const unsigned char image_glass_theme_images_widgets_slider_horizontal_thick_rounded_dark[]; // BITMAP_GLASS_THEME_IMAGES_WIDGETS_SLIDER_HORIZONTAL_THICK_ROUNDED_DARK_ID = 11, Size: 56x52 pixels
extern const unsigned char image_glass_theme_images_widgets_slider_horizontal_thick_track_large[]; // BITMAP_GLASS_THEME_IMAGES_WIDGETS_SLIDER_HORIZONTAL_THICK_TRACK_LARGE_ID = 12, Size: 400x10 pixels
extern const unsigned char image_glass_theme_images_widgets_slider_vertical_thick_filler_medium[]; // BITMAP_GLASS_THEME_IMAGES_WIDGETS_SLIDER_VERTICAL_THICK_FILLER_MEDIUM_ID = 13, Size: 10x300 pixels
extern const unsigned char image_glass_theme_images_widgets_slider_vertical_thick_rounded_dark[]; // BITMAP_GLASS_THEME_IMAGES_WIDGETS_SLIDER_VERTICAL_THICK_ROUNDED_DARK_ID = 14, Size: 56x52 pixels
extern const unsigned char image_glass_theme_images_widgets_slider_vertical_thick_track_medium[]; // BITMAP_GLASS_THEME_IMAGES_WIDGETS_SLIDER_VERTICAL_THICK_TRACK_MEDIUM_ID = 15, Size: 10x300 pixels
extern const unsigned char image_glass_theme_images_widgets_togglebutton_large_round_text_off_normal[]; // BITMAP_GLASS_THEME_IMAGES_WIDGETS_TOGGLEBUTTON_LARGE_ROUND_TEXT_OFF_NORMAL_ID = 16, Size: 170x60 pixels
extern const unsigned char image_glass_theme_images_widgets_togglebutton_large_round_text_on_active[]; // BITMAP_GLASS_THEME_IMAGES_WIDGETS_TOGGLEBUTTON_LARGE_ROUND_TEXT_ON_ACTIVE_ID = 17, Size: 170x60 pixels
extern const unsigned char image_glass_theme_images_widgets_togglebutton_large_rounded_text_off_normal[]; // BITMAP_GLASS_THEME_IMAGES_WIDGETS_TOGGLEBUTTON_LARGE_ROUNDED_TEXT_OFF_NORMAL_ID = 18, Size: 170x60 pixels
extern const unsigned char image_glass_theme_images_widgets_togglebutton_large_rounded_text_on_active[]; // BITMAP_GLASS_THEME_IMAGES_WIDGETS_TOGGLEBUTTON_LARGE_ROUNDED_TEXT_ON_ACTIVE_ID = 19, Size: 170x60 pixels
extern const unsigned char image_icon_theme_images_action_done_50_50_b5241f_svg[]; // BITMAP_ICON_THEME_IMAGES_ACTION_DONE_50_50_B5241F_SVG_ID = 20, Size: 50x50 pixels
extern const unsigned char image_icon_theme_images_av_fiber_manual_record_50_50_5e3e10_svg[]; // BITMAP_ICON_THEME_IMAGES_AV_FIBER_MANUAL_RECORD_50_50_5E3E10_SVG_ID = 21, Size: 50x50 pixels
extern const unsigned char image_icon_theme_images_hardware_headset_50_50_ffffff_svg[]; // BITMAP_ICON_THEME_IMAGES_HARDWARE_HEADSET_50_50_FFFFFF_SVG_ID = 22, Size: 50x50 pixels
const touchgfx::Bitmap::BitmapData bitmap_database[] = {
{ image_fondhorlogerie1, 0, 800, 483, 0, 0, 800, ((uint8_t)touchgfx::Bitmap::RGB565) >> 3, 483, ((uint8_t)touchgfx::Bitmap::RGB565) & 0x7 },
{ image_glass_theme_images_widgets_button_icon_round_huge_fill_normal, 0, 334, 322, 0, 0, 0, ((uint8_t)touchgfx::Bitmap::ARGB8888) >> 3, 0, ((uint8_t)touchgfx::Bitmap::ARGB8888) & 0x7 },
{ image_glass_theme_images_widgets_button_icon_round_huge_fill_pressed, 0, 334, 322, 298, 144, 1, ((uint8_t)touchgfx::Bitmap::ARGB8888) >> 3, 34, ((uint8_t)touchgfx::Bitmap::ARGB8888) & 0x7 },
{ image_glass_theme_images_widgets_button_icon_round_tiny_fill_normal, 0, 128, 116, 0, 0, 0, ((uint8_t)touchgfx::Bitmap::ARGB8888) >> 3, 0, ((uint8_t)touchgfx::Bitmap::ARGB8888) & 0x7 },
{ image_glass_theme_images_widgets_button_icon_round_tiny_fill_pressed, 0, 128, 116, 92, 50, 1, ((uint8_t)touchgfx::Bitmap::ARGB8888) >> 3, 16, ((uint8_t)touchgfx::Bitmap::ARGB8888) & 0x7 },
{ image_glass_theme_images_widgets_button_regular_height_36_medium_round_action, 0, 264, 80, 42, 22, 180, ((uint8_t)touchgfx::Bitmap::ARGB8888) >> 3, 36, ((uint8_t)touchgfx::Bitmap::ARGB8888) & 0x7 },
{ image_glass_theme_images_widgets_button_regular_height_50_large_rounded_normal, 0, 420, 94, 0, 0, 0, ((uint8_t)touchgfx::Bitmap::ARGB8888) >> 3, 0, ((uint8_t)touchgfx::Bitmap::ARGB8888) & 0x7 },
{ image_glass_theme_images_widgets_button_regular_height_50_large_rounded_pressed, 0, 420, 94, 31, 23, 360, ((uint8_t)touchgfx::Bitmap::ARGB8888) >> 3, 2, ((uint8_t)touchgfx::Bitmap::ARGB8888) & 0x7 },
{ image_glass_theme_images_widgets_button_regular_height_50_small_rounded_normal, 0, 225, 94, 0, 0, 0, ((uint8_t)touchgfx::Bitmap::ARGB8888) >> 3, 0, ((uint8_t)touchgfx::Bitmap::ARGB8888) & 0x7 },
{ image_glass_theme_images_widgets_button_regular_height_50_small_rounded_pressed, 0, 225, 94, 31, 23, 165, ((uint8_t)touchgfx::Bitmap::ARGB8888) >> 3, 2, ((uint8_t)touchgfx::Bitmap::ARGB8888) & 0x7 },
{ image_glass_theme_images_widgets_slider_horizontal_thick_filler_large, 0, 400, 10, 5, 0, 390, ((uint8_t)touchgfx::Bitmap::ARGB8888) >> 3, 10, ((uint8_t)touchgfx::Bitmap::ARGB8888) & 0x7 },
{ image_glass_theme_images_widgets_slider_horizontal_thick_rounded_dark, 0, 56, 52, 14, 12, 28, ((uint8_t)touchgfx::Bitmap::ARGB8888) >> 3, 28, ((uint8_t)touchgfx::Bitmap::ARGB8888) & 0x7 },
{ image_glass_theme_images_widgets_slider_horizontal_thick_track_large, 0, 400, 10, 0, 0, 0, ((uint8_t)touchgfx::Bitmap::ARGB8888) >> 3, 0, ((uint8_t)touchgfx::Bitmap::ARGB8888) & 0x7 },
{ image_glass_theme_images_widgets_slider_vertical_thick_filler_medium, 0, 10, 300, 0, 5, 10, ((uint8_t)touchgfx::Bitmap::ARGB8888) >> 3, 290, ((uint8_t)touchgfx::Bitmap::ARGB8888) & 0x7 },
{ image_glass_theme_images_widgets_slider_vertical_thick_rounded_dark, 0, 56, 52, 14, 12, 28, ((uint8_t)touchgfx::Bitmap::ARGB8888) >> 3, 28, ((uint8_t)touchgfx::Bitmap::ARGB8888) & 0x7 },
{ image_glass_theme_images_widgets_slider_vertical_thick_track_medium, 0, 10, 300, 0, 0, 0, ((uint8_t)touchgfx::Bitmap::ARGB8888) >> 3, 0, ((uint8_t)touchgfx::Bitmap::ARGB8888) & 0x7 },
{ image_glass_theme_images_widgets_togglebutton_large_round_text_off_normal, 0, 170, 60, 0, 0, 0, ((uint8_t)touchgfx::Bitmap::ARGB8888) >> 3, 0, ((uint8_t)touchgfx::Bitmap::ARGB8888) & 0x7 },
{ image_glass_theme_images_widgets_togglebutton_large_round_text_on_active, 0, 170, 60, 96, 12, 55, ((uint8_t)touchgfx::Bitmap::ARGB8888) >> 3, 36, ((uint8_t)touchgfx::Bitmap::ARGB8888) & 0x7 },
{ image_glass_theme_images_widgets_togglebutton_large_rounded_text_off_normal, 0, 170, 60, 0, 0, 0, ((uint8_t)touchgfx::Bitmap::ARGB8888) >> 3, 0, ((uint8_t)touchgfx::Bitmap::ARGB8888) & 0x7 },
{ image_glass_theme_images_widgets_togglebutton_large_rounded_text_on_active, 0, 170, 60, 88, 10, 71, ((uint8_t)touchgfx::Bitmap::ARGB8888) >> 3, 40, ((uint8_t)touchgfx::Bitmap::ARGB8888) & 0x7 },
{ image_icon_theme_images_action_done_50_50_b5241f_svg, 0, 50, 50, 15, 32, 6, ((uint8_t)touchgfx::Bitmap::ARGB8888) >> 3, 4, ((uint8_t)touchgfx::Bitmap::ARGB8888) & 0x7 },
{ image_icon_theme_images_av_fiber_manual_record_50_50_5e3e10_svg, 0, 50, 50, 18, 9, 12, ((uint8_t)touchgfx::Bitmap::ARGB8888) >> 3, 4, ((uint8_t)touchgfx::Bitmap::ARGB8888) & 0x7 },
{ image_icon_theme_images_hardware_headset_50_50_ffffff_svg, 0, 50, 50, 38, 14, 4, ((uint8_t)touchgfx::Bitmap::ARGB8888) >> 3, 22, ((uint8_t)touchgfx::Bitmap::ARGB8888) & 0x7 }
};
namespace BitmapDatabase
{
const touchgfx::Bitmap::BitmapData* getInstance()
{
return bitmap_database;
}
uint16_t getInstanceSize()
{
return (uint16_t)(sizeof(bitmap_database) / sizeof(touchgfx::Bitmap::BitmapData));
}
} // namespace BitmapDatabase
@@ -0,0 +1,19 @@
// Generated by imageconverter. Please, do not edit!
#include <images/SVGDatabase.hpp>
using namespace touchgfx;
namespace SVGDatabase
{
const touchgfx::VGObject* getInstance()
{
return (const touchgfx::VGObject*)0;
}
uint16_t getInstanceSize()
{
return 0;
}
} // namespace SVGDatabase
@@ -0,0 +1,979 @@
// 4.26.1 0xfc493005 D2 AY R0 FARGB8888 U565 N0 SExtFlashSection
// Generated by imageconverter. Please, do not edit!
#include <touchgfx/hal/Config.hpp>
LOCATION_PRAGMA_32("ExtFlashSection")
KEEP extern const unsigned char image_glass_theme_images_widgets_slider_horizontal_thick_rounded_dark[] LOCATION_ATTRIBUTE_32("ExtFlashSection") = { // 56x52 ARGB8888 pixels.
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xf8, 0xfc, 0xf8, 0x00, 0xf8, 0xfc, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00,
0xf8, 0xfc, 0xf8, 0x00, 0xf8, 0xfc, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xfc, 0xf8, 0x00,
0xf8, 0xfc, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xfc, 0xf8, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xfc, 0xf8, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xfc, 0xf8, 0x00,
0xf8, 0xfc, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0xf8, 0xfc, 0xf8, 0x00, 0xf8, 0xfc, 0xf8, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0xf8, 0xfc, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0xf8, 0xfc, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xf8, 0xfc, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xfc, 0xf8, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xfc, 0xf8, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xfc, 0xf8, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xfc, 0xf8, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xf8, 0xfc, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xf8, 0xfc, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xfc, 0xf8, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x04, 0x80, 0x80, 0x80, 0x04, 0x00, 0x00, 0x00, 0x04,
0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x58, 0x54, 0x58, 0x04,
0x00, 0x00, 0x00, 0x04, 0x80, 0x80, 0x80, 0x04, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04,
0x00, 0x00, 0x00, 0x04, 0x58, 0x54, 0x58, 0x04, 0x00, 0x00, 0x00, 0x04,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0xf8, 0xfc, 0xf8, 0x00, 0xf8, 0xfc, 0xf8, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xfc, 0xf8, 0x00,
0x00, 0x00, 0x00, 0x00, 0xf8, 0xfc, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xfc, 0xf8, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04,
0x00, 0x00, 0x00, 0x04, 0x58, 0x54, 0x58, 0x04, 0x40, 0x40, 0x40, 0x04,
0x00, 0x00, 0x00, 0x04, 0x40, 0x40, 0x40, 0x04, 0x00, 0x00, 0x00, 0x04,
0x40, 0x40, 0x40, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04,
0x30, 0x34, 0x30, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04,
0x00, 0x00, 0x00, 0x04, 0x30, 0x34, 0x30, 0x04, 0x30, 0x34, 0x30, 0x04,
0x00, 0x00, 0x00, 0x04, 0x30, 0x34, 0x30, 0x04, 0x00, 0x00, 0x00, 0x04,
0x30, 0x34, 0x30, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04,
0x00, 0x00, 0x00, 0x04, 0x30, 0x34, 0x30, 0x04, 0x00, 0x00, 0x00, 0x04,
0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04,
0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x80, 0x80, 0x80, 0x04,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xfc, 0xf8, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xfc, 0xf8, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xf8, 0xfc, 0xf8, 0x00, 0xf8, 0xfc, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00,
0xf8, 0xfc, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04,
0x58, 0x54, 0x58, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04,
0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x28, 0x28, 0x28, 0x04,
0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08,
0x20, 0x24, 0x20, 0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08,
0x00, 0x00, 0x00, 0x08, 0x20, 0x20, 0x20, 0x08, 0x20, 0x20, 0x20, 0x08,
0x00, 0x00, 0x00, 0x08, 0x28, 0x24, 0x28, 0x08, 0x00, 0x00, 0x00, 0x08,
0x00, 0x00, 0x00, 0x08, 0x28, 0x24, 0x28, 0x08, 0x00, 0x00, 0x00, 0x08,
0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08, 0x20, 0x24, 0x20, 0x08,
0x00, 0x00, 0x00, 0x08, 0x28, 0x24, 0x28, 0x08, 0x00, 0x00, 0x00, 0x08,
0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04,
0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xfc, 0xf8, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04,
0x30, 0x34, 0x30, 0x04, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08,
0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x08,
0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x0c,
0x18, 0x18, 0x18, 0x0c, 0x18, 0x18, 0x18, 0x08, 0x00, 0x00, 0x00, 0x0c,
0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x0c,
0x18, 0x18, 0x18, 0x0c, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x0c,
0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x08,
0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x0c, 0x18, 0x18, 0x18, 0x08,
0x00, 0x00, 0x00, 0x0c, 0x18, 0x18, 0x18, 0x08, 0x00, 0x00, 0x00, 0x08,
0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x04,
0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0xf8, 0xfc, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0xf8, 0xfc, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00,
0x80, 0x80, 0x80, 0x04, 0x00, 0x00, 0x00, 0x04, 0x30, 0x34, 0x30, 0x04,
0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x08, 0x18, 0x1c, 0x18, 0x08,
0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x0c,
0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x0c,
0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x10,
0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x10,
0x10, 0x10, 0x10, 0x10, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x10,
0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x10,
0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x10,
0x00, 0x00, 0x00, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x0c,
0x18, 0x14, 0x18, 0x0c, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x0c,
0x00, 0x00, 0x00, 0x0c, 0x18, 0x1c, 0x18, 0x08, 0x00, 0x00, 0x00, 0x08,
0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04,
0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04,
0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x08, 0x20, 0x20, 0x20, 0x08,
0x00, 0x00, 0x00, 0x08, 0x18, 0x14, 0x18, 0x0c, 0x00, 0x00, 0x00, 0x10,
0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x14,
0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x14, 0x10, 0x0c, 0x10, 0x14,
0x08, 0x0c, 0x08, 0x14, 0x00, 0x00, 0x00, 0x14, 0x10, 0x0c, 0x10, 0x14,
0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x14,
0x00, 0x00, 0x00, 0x14, 0x10, 0x0c, 0x10, 0x14, 0x00, 0x00, 0x00, 0x14,
0x08, 0x0c, 0x08, 0x14, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x14,
0x10, 0x0c, 0x10, 0x14, 0x10, 0x0c, 0x10, 0x14, 0x00, 0x00, 0x00, 0x14,
0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x14,
0x00, 0x00, 0x00, 0x10, 0x10, 0x10, 0x10, 0x10, 0x00, 0x00, 0x00, 0x10,
0x18, 0x14, 0x18, 0x0c, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x08,
0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0xf8, 0xfc, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0xf8, 0xfc, 0xf8, 0x00, 0xf8, 0xfc, 0xf8, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x20, 0x24, 0x20, 0x08,
0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x0c,
0x00, 0x00, 0x00, 0x10, 0x70, 0x74, 0x70, 0x20, 0xe0, 0xe4, 0xe0, 0x8a,
0xf0, 0xf0, 0xf0, 0xc3, 0xf8, 0xf8, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xf8, 0xf8, 0xff, 0xf8, 0xf8, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xf8, 0xf8, 0xff, 0xf8, 0xf8, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xf8, 0xf8, 0xff, 0xf8, 0xf8, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xf8, 0xf8, 0xff, 0xf8, 0xf8, 0xf8, 0xff, 0xf8, 0xf8, 0xf8, 0xff,
0xf8, 0xf8, 0xf8, 0xff, 0xf8, 0xf8, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xf8, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xf8, 0xf8, 0xff, 0xf8, 0xf8, 0xf8, 0xff, 0xf0, 0xf4, 0xf0, 0xd3,
0xd8, 0xd8, 0xd8, 0x6d, 0x00, 0x00, 0x00, 0x14, 0x10, 0x10, 0x10, 0x10,
0x10, 0x14, 0x10, 0x0c, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x08,
0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04,
0xf8, 0xfc, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04,
0xf8, 0xfc, 0xf8, 0x00, 0xf8, 0xfc, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xfc, 0xf8, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04,
0x00, 0x00, 0x00, 0x04, 0x20, 0x20, 0x20, 0x08, 0x18, 0x18, 0x18, 0x08,
0x00, 0x00, 0x00, 0x0c, 0x10, 0x10, 0x10, 0x10, 0xa0, 0xa0, 0xa0, 0x30,
0xf0, 0xec, 0xf0, 0xe3, 0xf8, 0xf8, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xf8, 0xf8, 0xff,
0xf0, 0xec, 0xf0, 0xe3, 0x98, 0x98, 0x98, 0x30, 0x10, 0x10, 0x10, 0x10,
0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x0c, 0x20, 0x20, 0x20, 0x08,
0x00, 0x00, 0x00, 0x08, 0x40, 0x40, 0x40, 0x04, 0x00, 0x00, 0x00, 0x04,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xfc, 0xf8, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x58, 0x54, 0x58, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x08,
0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x0c, 0x10, 0x10, 0x10, 0x10,
0x00, 0x00, 0x00, 0x14, 0xe8, 0xe8, 0xe8, 0xe3, 0xf8, 0xf4, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xf4, 0xf8, 0xff,
0xe8, 0xe8, 0xe8, 0xe3, 0x68, 0x64, 0x68, 0x24, 0x00, 0x00, 0x00, 0x10,
0x00, 0x00, 0x00, 0x0c, 0x18, 0x18, 0x18, 0x08, 0x00, 0x00, 0x00, 0x08,
0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x80, 0x80, 0x80, 0x04,
0x00, 0x00, 0x00, 0x00, 0xf8, 0xfc, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0xf8, 0xfc, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04,
0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x0c,
0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x14, 0xc8, 0xc8, 0xc8, 0x6d,
0xf0, 0xec, 0xf0, 0xff, 0xf8, 0xf8, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xf8, 0xf8, 0xff, 0xe8, 0xec, 0xe8, 0xff,
0xd0, 0xd4, 0xd0, 0x8a, 0x10, 0x0c, 0x10, 0x14, 0x00, 0x00, 0x00, 0x10,
0x18, 0x18, 0x18, 0x0c, 0x00, 0x00, 0x00, 0x08, 0x28, 0x28, 0x28, 0x04,
0x58, 0x54, 0x58, 0x04, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0xf8, 0xfc, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xfc, 0xf8, 0x00,
0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04,
0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x14,
0x08, 0x0c, 0x08, 0x18, 0xe0, 0xe0, 0xe0, 0xd3, 0xf0, 0xf0, 0xf0, 0xff,
0xf8, 0xf8, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xf8, 0xf8, 0xff, 0xf0, 0xf0, 0xf0, 0xff, 0xe0, 0xdc, 0xe0, 0xc3,
0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x10,
0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04,
0x80, 0x80, 0x80, 0x04, 0xf8, 0xfc, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xf8, 0xfc, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04,
0x00, 0x00, 0x00, 0x04, 0x20, 0x20, 0x20, 0x08, 0x00, 0x00, 0x00, 0x0c,
0x10, 0x10, 0x10, 0x10, 0x10, 0x0c, 0x10, 0x14, 0x00, 0x00, 0x00, 0x18,
0xe0, 0xe4, 0xe0, 0xff, 0xf0, 0xf0, 0xf0, 0xff, 0xf8, 0xf8, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xf8, 0xf8, 0xff,
0xf0, 0xf0, 0xf0, 0xff, 0xe0, 0xe4, 0xe0, 0xff, 0x00, 0x00, 0x00, 0x18,
0x10, 0x0c, 0x10, 0x14, 0x00, 0x00, 0x00, 0x10, 0x18, 0x18, 0x18, 0x0c,
0x20, 0x24, 0x20, 0x08, 0x40, 0x40, 0x40, 0x04, 0x00, 0x00, 0x00, 0x04,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x80, 0x80, 0x80, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x08,
0x18, 0x1c, 0x18, 0x08, 0x18, 0x14, 0x18, 0x0c, 0x10, 0x10, 0x10, 0x10,
0x00, 0x00, 0x00, 0x18, 0x08, 0x08, 0x08, 0x1c, 0xe8, 0xe4, 0xe8, 0xff,
0xf0, 0xf0, 0xf0, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xf8, 0xf8, 0xff, 0xf0, 0xf0, 0xf0, 0xff,
0xe0, 0xe4, 0xe0, 0xff, 0x08, 0x08, 0x08, 0x1c, 0x00, 0x00, 0x00, 0x14,
0x00, 0x00, 0x00, 0x10, 0x18, 0x14, 0x18, 0x0c, 0x00, 0x00, 0x00, 0x08,
0x30, 0x34, 0x30, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xf8, 0xfc, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x58, 0x54, 0x58, 0x04, 0x30, 0x34, 0x30, 0x04, 0x00, 0x00, 0x00, 0x0c,
0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x10, 0x08, 0x0c, 0x08, 0x18,
0x00, 0x00, 0x00, 0x1c, 0xe0, 0xe4, 0xe0, 0xff, 0xf0, 0xf0, 0xf0, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf0, 0xf0, 0xf0, 0xff, 0xe0, 0xe4, 0xe0, 0xff,
0x08, 0x08, 0x08, 0x1c, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x10,
0x10, 0x14, 0x10, 0x0c, 0x20, 0x1c, 0x20, 0x08, 0x00, 0x00, 0x00, 0x08,
0x58, 0x54, 0x58, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04,
0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08, 0x10, 0x14, 0x10, 0x0c,
0x00, 0x00, 0x00, 0x14, 0x08, 0x0c, 0x08, 0x18, 0x08, 0x08, 0x08, 0x1c,
0xe8, 0xe4, 0xe8, 0xff, 0xf0, 0xf0, 0xf0, 0xff, 0xf8, 0xf8, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xf8, 0xf8, 0xff,
0xf0, 0xf0, 0xf0, 0xff, 0xe0, 0xe4, 0xe0, 0xff, 0x08, 0x08, 0x08, 0x1c,
0x08, 0x0c, 0x08, 0x18, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x10,
0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04,
0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xfc, 0xf8, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x08,
0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x10, 0x10, 0x0c, 0x10, 0x14,
0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x1c, 0xe8, 0xe4, 0xe8, 0xff,
0xf0, 0xf0, 0xf0, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf0, 0xf0, 0xf0, 0xff,
0xe8, 0xe4, 0xe8, 0xff, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x18,
0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x10, 0x18, 0x18, 0x18, 0x08,
0x00, 0x00, 0x00, 0x08, 0x40, 0x40, 0x40, 0x04, 0x80, 0x80, 0x80, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0xf8, 0xfc, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x04,
0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08,
0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x18,
0x00, 0x00, 0x00, 0x20, 0xe0, 0xe4, 0xe0, 0xff, 0xf0, 0xf0, 0xf0, 0xff,
0xf8, 0xf8, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xf8, 0xf8, 0xff, 0xf0, 0xf0, 0xf0, 0xff, 0xe0, 0xe4, 0xe0, 0xff,
0x08, 0x08, 0x08, 0x1c, 0x00, 0x00, 0x00, 0x18, 0x10, 0x0c, 0x10, 0x14,
0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x0c, 0x20, 0x24, 0x20, 0x08,
0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x04, 0x00, 0x00, 0x00, 0x04,
0x20, 0x24, 0x20, 0x08, 0x18, 0x18, 0x18, 0x0c, 0x00, 0x00, 0x00, 0x10,
0x00, 0x00, 0x00, 0x14, 0x08, 0x08, 0x08, 0x18, 0x08, 0x08, 0x08, 0x20,
0xe0, 0xe4, 0xe0, 0xff, 0xf0, 0xf0, 0xf0, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xf8, 0xf8, 0xff,
0xf0, 0xf0, 0xf0, 0xff, 0xe0, 0xe4, 0xe0, 0xff, 0x00, 0x00, 0x00, 0x1c,
0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x14, 0x10, 0x10, 0x10, 0x10,
0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04,
0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xfc, 0xf8, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x28, 0x24, 0x28, 0x08,
0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x14,
0x08, 0x08, 0x08, 0x18, 0x00, 0x00, 0x00, 0x20, 0xe8, 0xe4, 0xe8, 0xff,
0xf0, 0xf0, 0xf0, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xf8, 0xf8, 0xff, 0xf0, 0xf0, 0xf0, 0xff,
0xe8, 0xe4, 0xe8, 0xff, 0x00, 0x00, 0x00, 0x20, 0x08, 0x0c, 0x08, 0x1c,
0x00, 0x00, 0x00, 0x14, 0x10, 0x14, 0x10, 0x10, 0x00, 0x00, 0x00, 0x0c,
0x00, 0x00, 0x00, 0x08, 0x40, 0x40, 0x40, 0x04, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0xf8, 0xfc, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0xf8, 0xfc, 0xf8, 0x00, 0x80, 0x80, 0x80, 0x04,
0x30, 0x34, 0x30, 0x04, 0x20, 0x24, 0x20, 0x08, 0x00, 0x00, 0x00, 0x0c,
0x00, 0x00, 0x00, 0x10, 0x10, 0x0c, 0x10, 0x14, 0x08, 0x0c, 0x08, 0x18,
0x08, 0x08, 0x08, 0x20, 0xe8, 0xe4, 0xe8, 0xff, 0xf0, 0xf0, 0xf0, 0xff,
0xf8, 0xf8, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf0, 0xf0, 0xf0, 0xff, 0xe0, 0xe4, 0xe0, 0xff,
0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x14,
0x00, 0x00, 0x00, 0x10, 0x18, 0x18, 0x18, 0x0c, 0x00, 0x00, 0x00, 0x08,
0x40, 0x40, 0x40, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04,
0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x10,
0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x20,
0xe8, 0xe4, 0xe8, 0xff, 0xf0, 0xf0, 0xf0, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xf8, 0xf8, 0xff,
0xf0, 0xf0, 0xf0, 0xff, 0xe0, 0xe4, 0xe0, 0xff, 0x00, 0x00, 0x00, 0x1c,
0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x10,
0x00, 0x00, 0x00, 0x08, 0x28, 0x28, 0x28, 0x04, 0x00, 0x00, 0x00, 0x04,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x08,
0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x14,
0x00, 0x00, 0x00, 0x18, 0x08, 0x08, 0x08, 0x20, 0xe0, 0xe4, 0xe0, 0xff,
0xf0, 0xf0, 0xf0, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf0, 0xf0, 0xf0, 0xff,
0xe8, 0xe4, 0xe8, 0xff, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x1c,
0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x08,
0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x04,
0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x0c,
0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x14, 0x08, 0x08, 0x08, 0x18,
0x00, 0x00, 0x00, 0x20, 0xe8, 0xe4, 0xe8, 0xff, 0xf0, 0xf0, 0xf0, 0xff,
0xf8, 0xf8, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xf8, 0xf8, 0xff, 0xf0, 0xf0, 0xf0, 0xff, 0xe0, 0xe4, 0xe0, 0xff,
0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x18, 0x10, 0x0c, 0x10, 0x14,
0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x0c, 0x28, 0x24, 0x28, 0x08,
0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xfc, 0xf8, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xf8, 0xfc, 0xf8, 0x00, 0x58, 0x54, 0x58, 0x04, 0x00, 0x00, 0x00, 0x04,
0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x10,
0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x20,
0xe8, 0xe4, 0xe8, 0xff, 0xf0, 0xf0, 0xf0, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xf8, 0xf8, 0xff,
0xf0, 0xf0, 0xf0, 0xff, 0xe0, 0xe4, 0xe0, 0xff, 0x00, 0x00, 0x00, 0x20,
0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x10,
0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x04,
0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0xf8, 0xfc, 0xf8, 0x00, 0xf8, 0xfc, 0xf8, 0x00,
0x80, 0x80, 0x80, 0x04, 0x40, 0x40, 0x40, 0x04, 0x00, 0x00, 0x00, 0x08,
0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x14,
0x08, 0x08, 0x08, 0x18, 0x00, 0x00, 0x00, 0x1c, 0xe0, 0xe4, 0xe0, 0xff,
0xf0, 0xf0, 0xf0, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xf8, 0xf8, 0xff, 0xf0, 0xf0, 0xf0, 0xff,
0xe8, 0xe4, 0xe8, 0xff, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x18,
0x10, 0x0c, 0x10, 0x14, 0x10, 0x10, 0x10, 0x10, 0x18, 0x18, 0x18, 0x08,
0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04,
0x00, 0x00, 0x00, 0x04, 0x20, 0x24, 0x20, 0x08, 0x18, 0x18, 0x18, 0x0c,
0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x1c,
0x08, 0x08, 0x08, 0x20, 0xe0, 0xe4, 0xe0, 0xff, 0xf0, 0xf0, 0xf0, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf0, 0xf0, 0xf0, 0xff, 0xe0, 0xe4, 0xe0, 0xff,
0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x14,
0x00, 0x00, 0x00, 0x10, 0x18, 0x18, 0x18, 0x08, 0x00, 0x00, 0x00, 0x08,
0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04,
0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x0c, 0x10, 0x10, 0x10, 0x10,
0x00, 0x00, 0x00, 0x14, 0x08, 0x0c, 0x08, 0x18, 0x08, 0x08, 0x08, 0x20,
0xe8, 0xe4, 0xe8, 0xff, 0xf0, 0xf0, 0xf0, 0xff, 0xf8, 0xf8, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xf8, 0xf8, 0xff,
0xf0, 0xf0, 0xf0, 0xff, 0xe0, 0xe4, 0xe0, 0xff, 0x00, 0x00, 0x00, 0x1c,
0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x10,
0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x04, 0x40, 0x40, 0x40, 0x04,
0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xfc, 0xf8, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x08,
0x18, 0x18, 0x18, 0x08, 0x10, 0x10, 0x10, 0x10, 0x00, 0x00, 0x00, 0x14,
0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x20, 0xe8, 0xe4, 0xe8, 0xff,
0xf0, 0xf0, 0xf0, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xf8, 0xf8, 0xff, 0xf0, 0xf0, 0xf0, 0xff,
0xe8, 0xe4, 0xe8, 0xff, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x18,
0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x0c,
0x00, 0x00, 0x00, 0x08, 0x40, 0x40, 0x40, 0x04, 0x00, 0x00, 0x00, 0x04,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04,
0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x0c,
0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x18,
0x08, 0x08, 0x08, 0x20, 0xe0, 0xe4, 0xe0, 0xff, 0xf0, 0xf0, 0xf0, 0xff,
0xf8, 0xf8, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xf8, 0xf8, 0xff, 0xf0, 0xf0, 0xf0, 0xff, 0xe0, 0xe4, 0xe0, 0xff,
0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x14,
0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x08, 0x28, 0x24, 0x28, 0x08,
0x40, 0x40, 0x40, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xf8, 0xfc, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xf8, 0xfc, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x04, 0x30, 0x34, 0x30, 0x04,
0x00, 0x00, 0x00, 0x08, 0x18, 0x14, 0x18, 0x0c, 0x00, 0x00, 0x00, 0x10,
0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x20,
0xe0, 0xe4, 0xe0, 0xff, 0xf0, 0xf0, 0xf0, 0xff, 0xf8, 0xf8, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xf8, 0xf8, 0xff,
0xf0, 0xf0, 0xf0, 0xff, 0xe0, 0xe0, 0xe0, 0xff, 0x08, 0x08, 0x08, 0x20,
0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x10,
0x18, 0x18, 0x18, 0x08, 0x00, 0x00, 0x00, 0x08, 0x40, 0x40, 0x40, 0x04,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x80, 0x80, 0x80, 0x00, 0x30, 0x30, 0x30, 0x04, 0x00, 0x00, 0x00, 0x08,
0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x14,
0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x20, 0xe0, 0xe0, 0xe0, 0xff,
0xf0, 0xec, 0xf0, 0xff, 0xf8, 0xf8, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xf8, 0xf8, 0xff, 0xf0, 0xf0, 0xf0, 0xff,
0xe0, 0xe0, 0xe0, 0xff, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x18,
0x00, 0x00, 0x00, 0x14, 0x10, 0x10, 0x10, 0x10, 0x18, 0x18, 0x18, 0x08,
0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04,
0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x08, 0x18, 0x18, 0x18, 0x0c,
0x10, 0x10, 0x10, 0x10, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x18,
0x00, 0x00, 0x00, 0x20, 0xe0, 0xdc, 0xe0, 0xff, 0xe8, 0xec, 0xe8, 0xff,
0xf8, 0xf4, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xf4, 0xf8, 0xff, 0xe8, 0xec, 0xe8, 0xff, 0xe0, 0xdc, 0xe0, 0xff,
0x00, 0x00, 0x00, 0x1c, 0x08, 0x08, 0x08, 0x18, 0x10, 0x0c, 0x10, 0x14,
0x00, 0x00, 0x00, 0x0c, 0x18, 0x18, 0x18, 0x08, 0x00, 0x00, 0x00, 0x08,
0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xf8, 0xfc, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04,
0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x10,
0x00, 0x00, 0x00, 0x14, 0x08, 0x08, 0x08, 0x18, 0x00, 0x00, 0x00, 0x1c,
0xd8, 0xd4, 0xd8, 0xff, 0xe8, 0xe4, 0xe8, 0xff, 0xf0, 0xf0, 0xf0, 0xff,
0xf8, 0xf8, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xf8, 0xf8, 0xff, 0xf0, 0xf0, 0xf0, 0xff,
0xe0, 0xe4, 0xe0, 0xff, 0xd8, 0xd4, 0xd8, 0xff, 0x00, 0x00, 0x00, 0x20,
0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x10,
0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x04,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xfc, 0xf8, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x40, 0x40, 0x40, 0x04, 0x00, 0x00, 0x00, 0x08,
0x00, 0x00, 0x00, 0x08, 0x10, 0x10, 0x10, 0x0c, 0x00, 0x00, 0x00, 0x14,
0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x1c, 0xc8, 0xc8, 0xc8, 0xc7,
0xd8, 0xdc, 0xd8, 0xff, 0xe8, 0xe8, 0xe8, 0xff, 0xf0, 0xf0, 0xf0, 0xff,
0xf8, 0xf4, 0xf8, 0xff, 0xf8, 0xf8, 0xf8, 0xff, 0xf8, 0xf8, 0xf8, 0xff,
0xf8, 0xf8, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xf8, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xf8, 0xf8, 0xff,
0xf8, 0xf8, 0xf8, 0xff, 0xf8, 0xf8, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xf8, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xf8, 0xf8, 0xff, 0xf8, 0xf8, 0xf8, 0xff,
0xf8, 0xf8, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xf8, 0xf8, 0xff,
0xf8, 0xf8, 0xf8, 0xff, 0xf8, 0xf8, 0xf8, 0xff, 0xf8, 0xf8, 0xf8, 0xff,
0xf0, 0xf0, 0xf0, 0xff, 0xe8, 0xe8, 0xe8, 0xff, 0xd8, 0xdc, 0xd8, 0xff,
0xc8, 0xc8, 0xc8, 0xd3, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x18,
0x10, 0x10, 0x10, 0x10, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x08,
0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04,
0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x08,
0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x18,
0x08, 0x08, 0x08, 0x1c, 0xb8, 0xb4, 0xb8, 0x8e, 0xd0, 0xd0, 0xd0, 0xff,
0xd8, 0xdc, 0xd8, 0xff, 0xe8, 0xe4, 0xe8, 0xff, 0xe8, 0xec, 0xe8, 0xff,
0xf0, 0xf0, 0xf0, 0xff, 0xf0, 0xf0, 0xf0, 0xff, 0xf0, 0xf0, 0xf0, 0xff,
0xf0, 0xf0, 0xf0, 0xff, 0xf0, 0xf0, 0xf0, 0xff, 0xf0, 0xf0, 0xf0, 0xff,
0xf0, 0xf0, 0xf0, 0xff, 0xf0, 0xf0, 0xf0, 0xff, 0xf0, 0xf0, 0xf0, 0xff,
0xf0, 0xf0, 0xf0, 0xff, 0xf0, 0xf0, 0xf0, 0xff, 0xf0, 0xf0, 0xf0, 0xff,
0xf0, 0xf0, 0xf0, 0xff, 0xf0, 0xf0, 0xf0, 0xff, 0xf0, 0xf0, 0xf0, 0xff,
0xf0, 0xf0, 0xf0, 0xff, 0xf0, 0xf0, 0xf0, 0xff, 0xf0, 0xf0, 0xf0, 0xff,
0xf0, 0xf0, 0xf0, 0xff, 0xf0, 0xf0, 0xf0, 0xff, 0xf0, 0xf0, 0xf0, 0xff,
0xf0, 0xf0, 0xf0, 0xff, 0xe8, 0xec, 0xe8, 0xff, 0xe8, 0xe4, 0xe8, 0xff,
0xd8, 0xdc, 0xd8, 0xff, 0xd0, 0xd0, 0xd0, 0xff, 0xa8, 0xa8, 0xa8, 0x71,
0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x14,
0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x04,
0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x04, 0x00, 0x00, 0x00, 0x04,
0x30, 0x34, 0x30, 0x04, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x0c,
0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x1c,
0x48, 0x4c, 0x48, 0x2c, 0xc8, 0xc4, 0xc8, 0xe3, 0xd0, 0xd0, 0xd0, 0xff,
0xd8, 0xd8, 0xd8, 0xff, 0xe0, 0xdc, 0xe0, 0xff, 0xe0, 0xe0, 0xe0, 0xff,
0xe0, 0xe4, 0xe0, 0xff, 0xe8, 0xe4, 0xe8, 0xff, 0xe0, 0xe4, 0xe0, 0xff,
0xe8, 0xe4, 0xe8, 0xff, 0xe0, 0xe4, 0xe0, 0xff, 0xe8, 0xe4, 0xe8, 0xff,
0xe0, 0xe4, 0xe0, 0xff, 0xe8, 0xe4, 0xe8, 0xff, 0xe0, 0xe4, 0xe0, 0xff,
0xe0, 0xe4, 0xe0, 0xff, 0xe8, 0xe4, 0xe8, 0xff, 0xe0, 0xe4, 0xe0, 0xff,
0xe0, 0xe4, 0xe0, 0xff, 0xe8, 0xe4, 0xe8, 0xff, 0xe0, 0xe4, 0xe0, 0xff,
0xe0, 0xe4, 0xe0, 0xff, 0xe8, 0xe4, 0xe8, 0xff, 0xe0, 0xe4, 0xe0, 0xff,
0xe0, 0xe4, 0xe0, 0xff, 0xe0, 0xe4, 0xe0, 0xff, 0xe0, 0xe0, 0xe0, 0xff,
0xe0, 0xdc, 0xe0, 0xff, 0xd8, 0xd8, 0xd8, 0xff, 0xd0, 0xd0, 0xd0, 0xff,
0xc8, 0xc4, 0xc8, 0xe3, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x18,
0x00, 0x00, 0x00, 0x14, 0x10, 0x10, 0x10, 0x10, 0x00, 0x00, 0x00, 0x0c,
0x00, 0x00, 0x00, 0x08, 0x30, 0x34, 0x30, 0x04, 0x58, 0x54, 0x58, 0x04,
0xf8, 0xfc, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x40, 0x40, 0x40, 0x04,
0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x0c, 0x10, 0x10, 0x10, 0x10,
0x00, 0x00, 0x00, 0x14, 0x08, 0x0c, 0x08, 0x18, 0x00, 0x00, 0x00, 0x1c,
0x68, 0x6c, 0x68, 0x3c, 0xc0, 0xc4, 0xc0, 0xe3, 0xc8, 0xcc, 0xc8, 0xff,
0xd0, 0xd0, 0xd0, 0xff, 0xd0, 0xd0, 0xd0, 0xff, 0xd0, 0xd4, 0xd0, 0xff,
0xd0, 0xd4, 0xd0, 0xff, 0xd8, 0xd4, 0xd8, 0xff, 0xd0, 0xd4, 0xd0, 0xff,
0xd0, 0xd4, 0xd0, 0xff, 0xd8, 0xd4, 0xd8, 0xff, 0xd0, 0xd4, 0xd0, 0xff,
0xd0, 0xd4, 0xd0, 0xff, 0xd8, 0xd4, 0xd8, 0xff, 0xd0, 0xd4, 0xd0, 0xff,
0xd8, 0xd4, 0xd8, 0xff, 0xd0, 0xd4, 0xd0, 0xff, 0xd8, 0xd4, 0xd8, 0xff,
0xd0, 0xd4, 0xd0, 0xff, 0xd8, 0xd4, 0xd8, 0xff, 0xd0, 0xd4, 0xd0, 0xff,
0xd8, 0xd4, 0xd8, 0xff, 0xd8, 0xd4, 0xd8, 0xff, 0xd0, 0xd4, 0xd0, 0xff,
0xd0, 0xd0, 0xd0, 0xff, 0xd0, 0xd0, 0xd0, 0xff, 0xd0, 0xd0, 0xd0, 0xff,
0xc8, 0xc8, 0xc8, 0xff, 0xc0, 0xc0, 0xc0, 0xe3, 0x68, 0x6c, 0x68, 0x3c,
0x08, 0x08, 0x08, 0x1c, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x14,
0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x0c, 0x28, 0x24, 0x28, 0x08,
0x40, 0x40, 0x40, 0x04, 0x00, 0x00, 0x00, 0x04, 0xf8, 0xfc, 0xf8, 0x00,
0x00, 0x00, 0x00, 0x00, 0xf8, 0xfc, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xfc, 0xf8, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x08,
0x20, 0x1c, 0x20, 0x08, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x14,
0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x20,
0x00, 0x00, 0x00, 0x20, 0xa0, 0xa0, 0xa0, 0x75, 0xc0, 0xbc, 0xc0, 0xd7,
0xc8, 0xc4, 0xc8, 0xff, 0xc8, 0xc4, 0xc8, 0xff, 0xc8, 0xc4, 0xc8, 0xff,
0xc8, 0xc4, 0xc8, 0xff, 0xc8, 0xc4, 0xc8, 0xff, 0xc8, 0xc4, 0xc8, 0xff,
0xc8, 0xc4, 0xc8, 0xff, 0xc8, 0xc4, 0xc8, 0xff, 0xc8, 0xc4, 0xc8, 0xff,
0xc8, 0xc4, 0xc8, 0xff, 0xc8, 0xc4, 0xc8, 0xff, 0xc8, 0xc4, 0xc8, 0xff,
0xc8, 0xc4, 0xc8, 0xff, 0xc8, 0xc4, 0xc8, 0xff, 0xc8, 0xc4, 0xc8, 0xff,
0xc8, 0xc4, 0xc8, 0xff, 0xc8, 0xc4, 0xc8, 0xff, 0xc0, 0xc4, 0xc0, 0xff,
0xc8, 0xc4, 0xc8, 0xff, 0xc8, 0xc4, 0xc8, 0xff, 0xc8, 0xc4, 0xc8, 0xff,
0xc8, 0xc4, 0xc8, 0xff, 0xb8, 0xbc, 0xb8, 0xc7, 0xa8, 0xac, 0xa8, 0x92,
0x40, 0x40, 0x40, 0x30, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x18,
0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x0c,
0x18, 0x1c, 0x18, 0x08, 0x00, 0x00, 0x00, 0x04, 0x40, 0x40, 0x40, 0x04,
0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xfc, 0xf8, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xfc, 0xf8, 0x00,
0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08,
0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x14,
0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x20,
0x00, 0x00, 0x00, 0x20, 0x08, 0x08, 0x08, 0x24, 0x00, 0x00, 0x00, 0x24,
0x00, 0x00, 0x00, 0x24, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, 0x24,
0x08, 0x08, 0x08, 0x24, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, 0x24,
0x00, 0x00, 0x00, 0x24, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, 0x28,
0x00, 0x00, 0x00, 0x24, 0x08, 0x08, 0x08, 0x24, 0x00, 0x00, 0x00, 0x28,
0x00, 0x00, 0x00, 0x24, 0x00, 0x00, 0x00, 0x24, 0x00, 0x00, 0x00, 0x28,
0x00, 0x00, 0x00, 0x28, 0x08, 0x08, 0x08, 0x24, 0x00, 0x00, 0x00, 0x24,
0x00, 0x00, 0x00, 0x24, 0x00, 0x00, 0x00, 0x24, 0x00, 0x00, 0x00, 0x24,
0x00, 0x00, 0x00, 0x24, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x1c,
0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x14,
0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x08,
0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00,
0xf8, 0xfc, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0xf8, 0xfc, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00,
0xf8, 0xfc, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x04,
0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08,
0x18, 0x14, 0x18, 0x0c, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x14,
0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x1c,
0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x20,
0x08, 0x08, 0x08, 0x24, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x24,
0x00, 0x00, 0x00, 0x24, 0x00, 0x00, 0x00, 0x24, 0x08, 0x08, 0x08, 0x24,
0x00, 0x00, 0x00, 0x24, 0x08, 0x08, 0x08, 0x24, 0x00, 0x00, 0x00, 0x20,
0x00, 0x00, 0x00, 0x24, 0x08, 0x08, 0x08, 0x24, 0x08, 0x08, 0x08, 0x20,
0x00, 0x00, 0x00, 0x24, 0x00, 0x00, 0x00, 0x24, 0x08, 0x08, 0x08, 0x24,
0x08, 0x08, 0x08, 0x24, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x24,
0x08, 0x08, 0x08, 0x20, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x20,
0x00, 0x00, 0x00, 0x1c, 0x08, 0x08, 0x08, 0x18, 0x00, 0x00, 0x00, 0x18,
0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x0c,
0x00, 0x00, 0x00, 0x08, 0x28, 0x2c, 0x28, 0x08, 0x40, 0x40, 0x40, 0x04,
0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0xf8, 0xfc, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x04, 0x58, 0x54, 0x58, 0x04,
0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08,
0x00, 0x00, 0x00, 0x0c, 0x10, 0x10, 0x10, 0x10, 0x00, 0x00, 0x00, 0x14,
0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x1c,
0x08, 0x08, 0x08, 0x1c, 0x00, 0x00, 0x00, 0x1c, 0x08, 0x08, 0x08, 0x20,
0x08, 0x08, 0x08, 0x20, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x1c,
0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x20,
0x08, 0x08, 0x08, 0x20, 0x08, 0x08, 0x08, 0x20, 0x00, 0x00, 0x00, 0x20,
0x00, 0x00, 0x00, 0x20, 0x08, 0x08, 0x08, 0x20, 0x08, 0x08, 0x08, 0x20,
0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x20,
0x08, 0x08, 0x08, 0x1c, 0x00, 0x00, 0x00, 0x20, 0x08, 0x08, 0x08, 0x1c,
0x08, 0x08, 0x08, 0x1c, 0x00, 0x00, 0x00, 0x1c, 0x08, 0x0c, 0x08, 0x18,
0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x14, 0x10, 0x10, 0x10, 0x10,
0x10, 0x14, 0x10, 0x0c, 0x18, 0x18, 0x18, 0x0c, 0x00, 0x00, 0x00, 0x08,
0x00, 0x00, 0x00, 0x04, 0x58, 0x54, 0x58, 0x04, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04,
0x30, 0x34, 0x30, 0x04, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x0c,
0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x10, 0x10, 0x10, 0x10, 0x10,
0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x18,
0x08, 0x08, 0x08, 0x18, 0x00, 0x00, 0x00, 0x18, 0x08, 0x08, 0x08, 0x18,
0x08, 0x08, 0x08, 0x18, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x18,
0x00, 0x00, 0x00, 0x18, 0x08, 0x08, 0x08, 0x18, 0x00, 0x00, 0x00, 0x18,
0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x18,
0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x18,
0x08, 0x08, 0x08, 0x18, 0x08, 0x08, 0x08, 0x18, 0x08, 0x0c, 0x08, 0x18,
0x00, 0x00, 0x00, 0x18, 0x08, 0x0c, 0x08, 0x18, 0x00, 0x00, 0x00, 0x18,
0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x10,
0x10, 0x10, 0x10, 0x10, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x0c,
0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x04, 0x58, 0x54, 0x58, 0x04,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xf8, 0xfc, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04,
0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x0c,
0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x10,
0x00, 0x00, 0x00, 0x10, 0x10, 0x0c, 0x10, 0x10, 0x00, 0x00, 0x00, 0x14,
0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x14,
0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x14,
0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x14,
0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x14,
0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x14,
0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x14,
0x10, 0x0c, 0x10, 0x14, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x10,
0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x0c,
0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x04,
0x00, 0x00, 0x00, 0x04, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0xf8, 0xfc, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00,
0xf8, 0xfc, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xf8, 0xfc, 0xf8, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x40, 0x40, 0x40, 0x04,
0x30, 0x34, 0x30, 0x04, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08,
0x00, 0x00, 0x00, 0x08, 0x18, 0x18, 0x18, 0x0c, 0x00, 0x00, 0x00, 0x0c,
0x00, 0x00, 0x00, 0x0c, 0x10, 0x14, 0x10, 0x10, 0x00, 0x00, 0x00, 0x10,
0x10, 0x10, 0x10, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x10,
0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x10,
0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x10,
0x10, 0x10, 0x10, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x10,
0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x10,
0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x10,
0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x0c, 0x18, 0x14, 0x18, 0x0c,
0x18, 0x18, 0x18, 0x0c, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x04,
0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04,
0x00, 0x00, 0x00, 0x04, 0xf8, 0xfc, 0xf8, 0x00, 0xf8, 0xfc, 0xf8, 0x00,
0xf8, 0xfc, 0xf8, 0x04, 0xf8, 0xfc, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xf8, 0xfc, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x04,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04,
0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04,
0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08,
0x00, 0x00, 0x00, 0x08, 0x18, 0x18, 0x18, 0x08, 0x00, 0x00, 0x00, 0x08,
0x18, 0x18, 0x18, 0x0c, 0x18, 0x18, 0x18, 0x08, 0x00, 0x00, 0x00, 0x0c,
0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08,
0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x08,
0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x08,
0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x0c,
0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08,
0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08, 0x28, 0x2c, 0x28, 0x04,
0x38, 0x34, 0x38, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xfc, 0xf8, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0xf8, 0xfc, 0xf8, 0x00, 0xf8, 0xfc, 0xf8, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0xf8, 0xfc, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04,
0x00, 0x00, 0x00, 0x04, 0x28, 0x28, 0x28, 0x08, 0x00, 0x00, 0x00, 0x08,
0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x08,
0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08,
0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x08, 0x20, 0x24, 0x20, 0x08,
0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08, 0x20, 0x24, 0x20, 0x08,
0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x04,
0x20, 0x24, 0x20, 0x08, 0x28, 0x2c, 0x28, 0x04, 0x00, 0x00, 0x00, 0x08,
0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04,
0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04,
0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xf8, 0xfc, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xfc, 0xf8, 0x00,
0xf8, 0xfc, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xfc, 0xf8, 0x00,
0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x58, 0x54, 0x58, 0x04,
0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04,
0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04,
0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04,
0x00, 0x00, 0x00, 0x04, 0x50, 0x54, 0x50, 0x04, 0x00, 0x00, 0x00, 0x04,
0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x40, 0x40, 0x40, 0x04,
0x40, 0x40, 0x40, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04,
0x58, 0x54, 0x58, 0x04, 0x40, 0x40, 0x40, 0x04, 0x00, 0x00, 0x00, 0x04,
0x00, 0x00, 0x00, 0x04, 0x80, 0x80, 0x80, 0x04, 0x00, 0x00, 0x00, 0x04,
0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x80, 0x80, 0x80, 0x04, 0xf8, 0xfc, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0xf8, 0xfc, 0xf8, 0x00, 0xf8, 0xfc, 0xf8, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0xf8, 0xfc, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x00, 0x80, 0x80, 0x80, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x00,
0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x04, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xf8, 0xfc, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xfc, 0xf8, 0x00,
0x00, 0x00, 0x00, 0x00, 0xf8, 0xfc, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0xf8, 0xfc, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0xf8, 0xfc, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
};
@@ -0,0 +1,979 @@
// 4.26.1 0xfc493005 D2 AY R0 FARGB8888 U565 N0 SExtFlashSection
// Generated by imageconverter. Please, do not edit!
#include <touchgfx/hal/Config.hpp>
LOCATION_PRAGMA_32("ExtFlashSection")
KEEP extern const unsigned char image_glass_theme_images_widgets_slider_vertical_thick_rounded_dark[] LOCATION_ATTRIBUTE_32("ExtFlashSection") = { // 56x52 ARGB8888 pixels.
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xf8, 0xfc, 0xf8, 0x00, 0xf8, 0xfc, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00,
0xf8, 0xfc, 0xf8, 0x00, 0xf8, 0xfc, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xfc, 0xf8, 0x00,
0xf8, 0xfc, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xfc, 0xf8, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xfc, 0xf8, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xfc, 0xf8, 0x00,
0xf8, 0xfc, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0xf8, 0xfc, 0xf8, 0x00, 0xf8, 0xfc, 0xf8, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0xf8, 0xfc, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0xf8, 0xfc, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xf8, 0xfc, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xfc, 0xf8, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xfc, 0xf8, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xfc, 0xf8, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xfc, 0xf8, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xf8, 0xfc, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xf8, 0xfc, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xfc, 0xf8, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x04, 0x80, 0x80, 0x80, 0x04, 0x00, 0x00, 0x00, 0x04,
0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x58, 0x54, 0x58, 0x04,
0x00, 0x00, 0x00, 0x04, 0x80, 0x80, 0x80, 0x04, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04,
0x00, 0x00, 0x00, 0x04, 0x58, 0x54, 0x58, 0x04, 0x00, 0x00, 0x00, 0x04,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0xf8, 0xfc, 0xf8, 0x00, 0xf8, 0xfc, 0xf8, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xfc, 0xf8, 0x00,
0x00, 0x00, 0x00, 0x00, 0xf8, 0xfc, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xfc, 0xf8, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04,
0x00, 0x00, 0x00, 0x04, 0x58, 0x54, 0x58, 0x04, 0x40, 0x40, 0x40, 0x04,
0x00, 0x00, 0x00, 0x04, 0x40, 0x40, 0x40, 0x04, 0x00, 0x00, 0x00, 0x04,
0x40, 0x40, 0x40, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04,
0x30, 0x34, 0x30, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04,
0x00, 0x00, 0x00, 0x04, 0x30, 0x34, 0x30, 0x04, 0x30, 0x34, 0x30, 0x04,
0x00, 0x00, 0x00, 0x04, 0x30, 0x34, 0x30, 0x04, 0x00, 0x00, 0x00, 0x04,
0x30, 0x34, 0x30, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04,
0x00, 0x00, 0x00, 0x04, 0x30, 0x34, 0x30, 0x04, 0x00, 0x00, 0x00, 0x04,
0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04,
0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x80, 0x80, 0x80, 0x04,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xfc, 0xf8, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xfc, 0xf8, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xf8, 0xfc, 0xf8, 0x00, 0xf8, 0xfc, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00,
0xf8, 0xfc, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04,
0x58, 0x54, 0x58, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04,
0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x28, 0x28, 0x28, 0x04,
0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08,
0x20, 0x24, 0x20, 0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08,
0x00, 0x00, 0x00, 0x08, 0x20, 0x20, 0x20, 0x08, 0x20, 0x20, 0x20, 0x08,
0x00, 0x00, 0x00, 0x08, 0x28, 0x24, 0x28, 0x08, 0x00, 0x00, 0x00, 0x08,
0x00, 0x00, 0x00, 0x08, 0x28, 0x24, 0x28, 0x08, 0x00, 0x00, 0x00, 0x08,
0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08, 0x20, 0x24, 0x20, 0x08,
0x00, 0x00, 0x00, 0x08, 0x28, 0x24, 0x28, 0x08, 0x00, 0x00, 0x00, 0x08,
0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04,
0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xfc, 0xf8, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04,
0x30, 0x34, 0x30, 0x04, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08,
0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x08,
0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x0c,
0x18, 0x18, 0x18, 0x0c, 0x18, 0x18, 0x18, 0x08, 0x00, 0x00, 0x00, 0x0c,
0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x0c,
0x18, 0x18, 0x18, 0x0c, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x0c,
0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x08,
0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x0c, 0x18, 0x18, 0x18, 0x08,
0x00, 0x00, 0x00, 0x0c, 0x18, 0x18, 0x18, 0x08, 0x00, 0x00, 0x00, 0x08,
0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x04,
0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0xf8, 0xfc, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0xf8, 0xfc, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00,
0x80, 0x80, 0x80, 0x04, 0x00, 0x00, 0x00, 0x04, 0x30, 0x34, 0x30, 0x04,
0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x08, 0x18, 0x1c, 0x18, 0x08,
0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x0c,
0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x0c,
0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x10,
0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x10,
0x10, 0x10, 0x10, 0x10, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x10,
0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x10,
0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x10,
0x00, 0x00, 0x00, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x0c,
0x18, 0x14, 0x18, 0x0c, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x0c,
0x00, 0x00, 0x00, 0x0c, 0x18, 0x1c, 0x18, 0x08, 0x00, 0x00, 0x00, 0x08,
0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04,
0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04,
0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x08, 0x20, 0x20, 0x20, 0x08,
0x00, 0x00, 0x00, 0x08, 0x18, 0x14, 0x18, 0x0c, 0x00, 0x00, 0x00, 0x10,
0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x14,
0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x14, 0x10, 0x0c, 0x10, 0x14,
0x08, 0x0c, 0x08, 0x14, 0x00, 0x00, 0x00, 0x14, 0x10, 0x0c, 0x10, 0x14,
0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x14,
0x00, 0x00, 0x00, 0x14, 0x10, 0x0c, 0x10, 0x14, 0x00, 0x00, 0x00, 0x14,
0x08, 0x0c, 0x08, 0x14, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x14,
0x10, 0x0c, 0x10, 0x14, 0x10, 0x0c, 0x10, 0x14, 0x00, 0x00, 0x00, 0x14,
0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x14,
0x00, 0x00, 0x00, 0x10, 0x10, 0x10, 0x10, 0x10, 0x00, 0x00, 0x00, 0x10,
0x18, 0x14, 0x18, 0x0c, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x08,
0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0xf8, 0xfc, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0xf8, 0xfc, 0xf8, 0x00, 0xf8, 0xfc, 0xf8, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x20, 0x24, 0x20, 0x08,
0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x0c,
0x00, 0x00, 0x00, 0x10, 0x70, 0x74, 0x70, 0x20, 0xe0, 0xe4, 0xe0, 0x8a,
0xf0, 0xf0, 0xf0, 0xc3, 0xf8, 0xf8, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xf8, 0xf8, 0xff, 0xf8, 0xf8, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xf8, 0xf8, 0xff, 0xf8, 0xf8, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xf8, 0xf8, 0xff, 0xf8, 0xf8, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xf8, 0xf8, 0xff, 0xf8, 0xf8, 0xf8, 0xff, 0xf8, 0xf8, 0xf8, 0xff,
0xf8, 0xf8, 0xf8, 0xff, 0xf8, 0xf8, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xf8, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xf8, 0xf8, 0xff, 0xf8, 0xf8, 0xf8, 0xff, 0xf0, 0xf4, 0xf0, 0xd3,
0xd8, 0xd8, 0xd8, 0x6d, 0x00, 0x00, 0x00, 0x14, 0x10, 0x10, 0x10, 0x10,
0x10, 0x14, 0x10, 0x0c, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x08,
0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04,
0xf8, 0xfc, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04,
0xf8, 0xfc, 0xf8, 0x00, 0xf8, 0xfc, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xfc, 0xf8, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04,
0x00, 0x00, 0x00, 0x04, 0x20, 0x20, 0x20, 0x08, 0x18, 0x18, 0x18, 0x08,
0x00, 0x00, 0x00, 0x0c, 0x10, 0x10, 0x10, 0x10, 0xa0, 0xa0, 0xa0, 0x30,
0xf0, 0xec, 0xf0, 0xe3, 0xf8, 0xf8, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xf8, 0xf8, 0xff,
0xf0, 0xec, 0xf0, 0xe3, 0x98, 0x98, 0x98, 0x30, 0x10, 0x10, 0x10, 0x10,
0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x0c, 0x20, 0x20, 0x20, 0x08,
0x00, 0x00, 0x00, 0x08, 0x40, 0x40, 0x40, 0x04, 0x00, 0x00, 0x00, 0x04,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xfc, 0xf8, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x58, 0x54, 0x58, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x08,
0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x0c, 0x10, 0x10, 0x10, 0x10,
0x00, 0x00, 0x00, 0x14, 0xe8, 0xe8, 0xe8, 0xe3, 0xf8, 0xf4, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xf4, 0xf8, 0xff,
0xe8, 0xe8, 0xe8, 0xe3, 0x68, 0x64, 0x68, 0x24, 0x00, 0x00, 0x00, 0x10,
0x00, 0x00, 0x00, 0x0c, 0x18, 0x18, 0x18, 0x08, 0x00, 0x00, 0x00, 0x08,
0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x80, 0x80, 0x80, 0x04,
0x00, 0x00, 0x00, 0x00, 0xf8, 0xfc, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0xf8, 0xfc, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04,
0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x0c,
0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x14, 0xc8, 0xc8, 0xc8, 0x6d,
0xf0, 0xec, 0xf0, 0xff, 0xf8, 0xf8, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xf8, 0xf8, 0xff, 0xe8, 0xec, 0xe8, 0xff,
0xd0, 0xd4, 0xd0, 0x8a, 0x10, 0x0c, 0x10, 0x14, 0x00, 0x00, 0x00, 0x10,
0x18, 0x18, 0x18, 0x0c, 0x00, 0x00, 0x00, 0x08, 0x28, 0x28, 0x28, 0x04,
0x58, 0x54, 0x58, 0x04, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0xf8, 0xfc, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xfc, 0xf8, 0x00,
0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04,
0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x14,
0x08, 0x0c, 0x08, 0x18, 0xe0, 0xe0, 0xe0, 0xd3, 0xf0, 0xf0, 0xf0, 0xff,
0xf8, 0xf8, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xf8, 0xf8, 0xff, 0xf0, 0xf0, 0xf0, 0xff, 0xe0, 0xdc, 0xe0, 0xc3,
0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x10,
0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04,
0x80, 0x80, 0x80, 0x04, 0xf8, 0xfc, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xf8, 0xfc, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04,
0x00, 0x00, 0x00, 0x04, 0x20, 0x20, 0x20, 0x08, 0x00, 0x00, 0x00, 0x0c,
0x10, 0x10, 0x10, 0x10, 0x10, 0x0c, 0x10, 0x14, 0x00, 0x00, 0x00, 0x18,
0xe0, 0xe4, 0xe0, 0xff, 0xf0, 0xf0, 0xf0, 0xff, 0xf8, 0xf8, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xf8, 0xf8, 0xff,
0xf0, 0xf0, 0xf0, 0xff, 0xe0, 0xe4, 0xe0, 0xff, 0x00, 0x00, 0x00, 0x18,
0x10, 0x0c, 0x10, 0x14, 0x00, 0x00, 0x00, 0x10, 0x18, 0x18, 0x18, 0x0c,
0x20, 0x24, 0x20, 0x08, 0x40, 0x40, 0x40, 0x04, 0x00, 0x00, 0x00, 0x04,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x80, 0x80, 0x80, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x08,
0x18, 0x1c, 0x18, 0x08, 0x18, 0x14, 0x18, 0x0c, 0x10, 0x10, 0x10, 0x10,
0x00, 0x00, 0x00, 0x18, 0x08, 0x08, 0x08, 0x1c, 0xe8, 0xe4, 0xe8, 0xff,
0xf0, 0xf0, 0xf0, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xf8, 0xf8, 0xff, 0xf0, 0xf0, 0xf0, 0xff,
0xe0, 0xe4, 0xe0, 0xff, 0x08, 0x08, 0x08, 0x1c, 0x00, 0x00, 0x00, 0x14,
0x00, 0x00, 0x00, 0x10, 0x18, 0x14, 0x18, 0x0c, 0x00, 0x00, 0x00, 0x08,
0x30, 0x34, 0x30, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xf8, 0xfc, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x58, 0x54, 0x58, 0x04, 0x30, 0x34, 0x30, 0x04, 0x00, 0x00, 0x00, 0x0c,
0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x10, 0x08, 0x0c, 0x08, 0x18,
0x00, 0x00, 0x00, 0x1c, 0xe0, 0xe4, 0xe0, 0xff, 0xf0, 0xf0, 0xf0, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf0, 0xf0, 0xf0, 0xff, 0xe0, 0xe4, 0xe0, 0xff,
0x08, 0x08, 0x08, 0x1c, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x10,
0x10, 0x14, 0x10, 0x0c, 0x20, 0x1c, 0x20, 0x08, 0x00, 0x00, 0x00, 0x08,
0x58, 0x54, 0x58, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04,
0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08, 0x10, 0x14, 0x10, 0x0c,
0x00, 0x00, 0x00, 0x14, 0x08, 0x0c, 0x08, 0x18, 0x08, 0x08, 0x08, 0x1c,
0xe8, 0xe4, 0xe8, 0xff, 0xf0, 0xf0, 0xf0, 0xff, 0xf8, 0xf8, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xf8, 0xf8, 0xff,
0xf0, 0xf0, 0xf0, 0xff, 0xe0, 0xe4, 0xe0, 0xff, 0x08, 0x08, 0x08, 0x1c,
0x08, 0x0c, 0x08, 0x18, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x10,
0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04,
0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xfc, 0xf8, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x08,
0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x10, 0x10, 0x0c, 0x10, 0x14,
0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x1c, 0xe8, 0xe4, 0xe8, 0xff,
0xf0, 0xf0, 0xf0, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf0, 0xf0, 0xf0, 0xff,
0xe8, 0xe4, 0xe8, 0xff, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x18,
0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x10, 0x18, 0x18, 0x18, 0x08,
0x00, 0x00, 0x00, 0x08, 0x40, 0x40, 0x40, 0x04, 0x80, 0x80, 0x80, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0xf8, 0xfc, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x04,
0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08,
0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x18,
0x00, 0x00, 0x00, 0x20, 0xe0, 0xe4, 0xe0, 0xff, 0xf0, 0xf0, 0xf0, 0xff,
0xf8, 0xf8, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xf8, 0xf8, 0xff, 0xf0, 0xf0, 0xf0, 0xff, 0xe0, 0xe4, 0xe0, 0xff,
0x08, 0x08, 0x08, 0x1c, 0x00, 0x00, 0x00, 0x18, 0x10, 0x0c, 0x10, 0x14,
0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x0c, 0x20, 0x24, 0x20, 0x08,
0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x04, 0x00, 0x00, 0x00, 0x04,
0x20, 0x24, 0x20, 0x08, 0x18, 0x18, 0x18, 0x0c, 0x00, 0x00, 0x00, 0x10,
0x00, 0x00, 0x00, 0x14, 0x08, 0x08, 0x08, 0x18, 0x08, 0x08, 0x08, 0x20,
0xe0, 0xe4, 0xe0, 0xff, 0xf0, 0xf0, 0xf0, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xf8, 0xf8, 0xff,
0xf0, 0xf0, 0xf0, 0xff, 0xe0, 0xe4, 0xe0, 0xff, 0x00, 0x00, 0x00, 0x1c,
0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x14, 0x10, 0x10, 0x10, 0x10,
0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04,
0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xfc, 0xf8, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x28, 0x24, 0x28, 0x08,
0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x14,
0x08, 0x08, 0x08, 0x18, 0x00, 0x00, 0x00, 0x20, 0xe8, 0xe4, 0xe8, 0xff,
0xf0, 0xf0, 0xf0, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xf8, 0xf8, 0xff, 0xf0, 0xf0, 0xf0, 0xff,
0xe8, 0xe4, 0xe8, 0xff, 0x00, 0x00, 0x00, 0x20, 0x08, 0x0c, 0x08, 0x1c,
0x00, 0x00, 0x00, 0x14, 0x10, 0x14, 0x10, 0x10, 0x00, 0x00, 0x00, 0x0c,
0x00, 0x00, 0x00, 0x08, 0x40, 0x40, 0x40, 0x04, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0xf8, 0xfc, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0xf8, 0xfc, 0xf8, 0x00, 0x80, 0x80, 0x80, 0x04,
0x30, 0x34, 0x30, 0x04, 0x20, 0x24, 0x20, 0x08, 0x00, 0x00, 0x00, 0x0c,
0x00, 0x00, 0x00, 0x10, 0x10, 0x0c, 0x10, 0x14, 0x08, 0x0c, 0x08, 0x18,
0x08, 0x08, 0x08, 0x20, 0xe8, 0xe4, 0xe8, 0xff, 0xf0, 0xf0, 0xf0, 0xff,
0xf8, 0xf8, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf0, 0xf0, 0xf0, 0xff, 0xe0, 0xe4, 0xe0, 0xff,
0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x14,
0x00, 0x00, 0x00, 0x10, 0x18, 0x18, 0x18, 0x0c, 0x00, 0x00, 0x00, 0x08,
0x40, 0x40, 0x40, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04,
0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x10,
0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x20,
0xe8, 0xe4, 0xe8, 0xff, 0xf0, 0xf0, 0xf0, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xf8, 0xf8, 0xff,
0xf0, 0xf0, 0xf0, 0xff, 0xe0, 0xe4, 0xe0, 0xff, 0x00, 0x00, 0x00, 0x1c,
0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x10,
0x00, 0x00, 0x00, 0x08, 0x28, 0x28, 0x28, 0x04, 0x00, 0x00, 0x00, 0x04,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x08,
0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x14,
0x00, 0x00, 0x00, 0x18, 0x08, 0x08, 0x08, 0x20, 0xe0, 0xe4, 0xe0, 0xff,
0xf0, 0xf0, 0xf0, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf0, 0xf0, 0xf0, 0xff,
0xe8, 0xe4, 0xe8, 0xff, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x1c,
0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x08,
0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x04,
0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x0c,
0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x14, 0x08, 0x08, 0x08, 0x18,
0x00, 0x00, 0x00, 0x20, 0xe8, 0xe4, 0xe8, 0xff, 0xf0, 0xf0, 0xf0, 0xff,
0xf8, 0xf8, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xf8, 0xf8, 0xff, 0xf0, 0xf0, 0xf0, 0xff, 0xe0, 0xe4, 0xe0, 0xff,
0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x18, 0x10, 0x0c, 0x10, 0x14,
0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x0c, 0x28, 0x24, 0x28, 0x08,
0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xfc, 0xf8, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xf8, 0xfc, 0xf8, 0x00, 0x58, 0x54, 0x58, 0x04, 0x00, 0x00, 0x00, 0x04,
0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x10,
0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x20,
0xe8, 0xe4, 0xe8, 0xff, 0xf0, 0xf0, 0xf0, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xf8, 0xf8, 0xff,
0xf0, 0xf0, 0xf0, 0xff, 0xe0, 0xe4, 0xe0, 0xff, 0x00, 0x00, 0x00, 0x20,
0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x10,
0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x04,
0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0xf8, 0xfc, 0xf8, 0x00, 0xf8, 0xfc, 0xf8, 0x00,
0x80, 0x80, 0x80, 0x04, 0x40, 0x40, 0x40, 0x04, 0x00, 0x00, 0x00, 0x08,
0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x14,
0x08, 0x08, 0x08, 0x18, 0x00, 0x00, 0x00, 0x1c, 0xe0, 0xe4, 0xe0, 0xff,
0xf0, 0xf0, 0xf0, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xf8, 0xf8, 0xff, 0xf0, 0xf0, 0xf0, 0xff,
0xe8, 0xe4, 0xe8, 0xff, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x18,
0x10, 0x0c, 0x10, 0x14, 0x10, 0x10, 0x10, 0x10, 0x18, 0x18, 0x18, 0x08,
0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04,
0x00, 0x00, 0x00, 0x04, 0x20, 0x24, 0x20, 0x08, 0x18, 0x18, 0x18, 0x0c,
0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x1c,
0x08, 0x08, 0x08, 0x20, 0xe0, 0xe4, 0xe0, 0xff, 0xf0, 0xf0, 0xf0, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf0, 0xf0, 0xf0, 0xff, 0xe0, 0xe4, 0xe0, 0xff,
0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x14,
0x00, 0x00, 0x00, 0x10, 0x18, 0x18, 0x18, 0x08, 0x00, 0x00, 0x00, 0x08,
0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04,
0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x0c, 0x10, 0x10, 0x10, 0x10,
0x00, 0x00, 0x00, 0x14, 0x08, 0x0c, 0x08, 0x18, 0x08, 0x08, 0x08, 0x20,
0xe8, 0xe4, 0xe8, 0xff, 0xf0, 0xf0, 0xf0, 0xff, 0xf8, 0xf8, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xf8, 0xf8, 0xff,
0xf0, 0xf0, 0xf0, 0xff, 0xe0, 0xe4, 0xe0, 0xff, 0x00, 0x00, 0x00, 0x1c,
0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x10,
0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x04, 0x40, 0x40, 0x40, 0x04,
0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xfc, 0xf8, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x08,
0x18, 0x18, 0x18, 0x08, 0x10, 0x10, 0x10, 0x10, 0x00, 0x00, 0x00, 0x14,
0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x20, 0xe8, 0xe4, 0xe8, 0xff,
0xf0, 0xf0, 0xf0, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xf8, 0xf8, 0xff, 0xf0, 0xf0, 0xf0, 0xff,
0xe8, 0xe4, 0xe8, 0xff, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x18,
0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x0c,
0x00, 0x00, 0x00, 0x08, 0x40, 0x40, 0x40, 0x04, 0x00, 0x00, 0x00, 0x04,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04,
0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x0c,
0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x18,
0x08, 0x08, 0x08, 0x20, 0xe0, 0xe4, 0xe0, 0xff, 0xf0, 0xf0, 0xf0, 0xff,
0xf8, 0xf8, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xf8, 0xf8, 0xff, 0xf0, 0xf0, 0xf0, 0xff, 0xe0, 0xe4, 0xe0, 0xff,
0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x14,
0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x08, 0x28, 0x24, 0x28, 0x08,
0x40, 0x40, 0x40, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xf8, 0xfc, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xf8, 0xfc, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x04, 0x30, 0x34, 0x30, 0x04,
0x00, 0x00, 0x00, 0x08, 0x18, 0x14, 0x18, 0x0c, 0x00, 0x00, 0x00, 0x10,
0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x20,
0xe0, 0xe4, 0xe0, 0xff, 0xf0, 0xf0, 0xf0, 0xff, 0xf8, 0xf8, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xf8, 0xf8, 0xff,
0xf0, 0xf0, 0xf0, 0xff, 0xe0, 0xe0, 0xe0, 0xff, 0x08, 0x08, 0x08, 0x20,
0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x10,
0x18, 0x18, 0x18, 0x08, 0x00, 0x00, 0x00, 0x08, 0x40, 0x40, 0x40, 0x04,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x80, 0x80, 0x80, 0x00, 0x30, 0x30, 0x30, 0x04, 0x00, 0x00, 0x00, 0x08,
0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x14,
0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x20, 0xe0, 0xe0, 0xe0, 0xff,
0xf0, 0xec, 0xf0, 0xff, 0xf8, 0xf8, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xf8, 0xf8, 0xff, 0xf0, 0xf0, 0xf0, 0xff,
0xe0, 0xe0, 0xe0, 0xff, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x18,
0x00, 0x00, 0x00, 0x14, 0x10, 0x10, 0x10, 0x10, 0x18, 0x18, 0x18, 0x08,
0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04,
0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x08, 0x18, 0x18, 0x18, 0x0c,
0x10, 0x10, 0x10, 0x10, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x18,
0x00, 0x00, 0x00, 0x20, 0xe0, 0xdc, 0xe0, 0xff, 0xe8, 0xec, 0xe8, 0xff,
0xf8, 0xf4, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xf4, 0xf8, 0xff, 0xe8, 0xec, 0xe8, 0xff, 0xe0, 0xdc, 0xe0, 0xff,
0x00, 0x00, 0x00, 0x1c, 0x08, 0x08, 0x08, 0x18, 0x10, 0x0c, 0x10, 0x14,
0x00, 0x00, 0x00, 0x0c, 0x18, 0x18, 0x18, 0x08, 0x00, 0x00, 0x00, 0x08,
0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xf8, 0xfc, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04,
0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x10,
0x00, 0x00, 0x00, 0x14, 0x08, 0x08, 0x08, 0x18, 0x00, 0x00, 0x00, 0x1c,
0xd8, 0xd4, 0xd8, 0xff, 0xe8, 0xe4, 0xe8, 0xff, 0xf0, 0xf0, 0xf0, 0xff,
0xf8, 0xf8, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xf8, 0xf8, 0xff, 0xf0, 0xf0, 0xf0, 0xff,
0xe0, 0xe4, 0xe0, 0xff, 0xd8, 0xd4, 0xd8, 0xff, 0x00, 0x00, 0x00, 0x20,
0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x10,
0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x04,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xfc, 0xf8, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x40, 0x40, 0x40, 0x04, 0x00, 0x00, 0x00, 0x08,
0x00, 0x00, 0x00, 0x08, 0x10, 0x10, 0x10, 0x0c, 0x00, 0x00, 0x00, 0x14,
0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x1c, 0xc8, 0xc8, 0xc8, 0xc7,
0xd8, 0xdc, 0xd8, 0xff, 0xe8, 0xe8, 0xe8, 0xff, 0xf0, 0xf0, 0xf0, 0xff,
0xf8, 0xf4, 0xf8, 0xff, 0xf8, 0xf8, 0xf8, 0xff, 0xf8, 0xf8, 0xf8, 0xff,
0xf8, 0xf8, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xf8, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xf8, 0xf8, 0xff,
0xf8, 0xf8, 0xf8, 0xff, 0xf8, 0xf8, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xf8, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xf8, 0xf8, 0xff, 0xf8, 0xf8, 0xf8, 0xff,
0xf8, 0xf8, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xf8, 0xf8, 0xff,
0xf8, 0xf8, 0xf8, 0xff, 0xf8, 0xf8, 0xf8, 0xff, 0xf8, 0xf8, 0xf8, 0xff,
0xf0, 0xf0, 0xf0, 0xff, 0xe8, 0xe8, 0xe8, 0xff, 0xd8, 0xdc, 0xd8, 0xff,
0xc8, 0xc8, 0xc8, 0xd3, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x18,
0x10, 0x10, 0x10, 0x10, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x08,
0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04,
0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x08,
0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x18,
0x08, 0x08, 0x08, 0x1c, 0xb8, 0xb4, 0xb8, 0x8e, 0xd0, 0xd0, 0xd0, 0xff,
0xd8, 0xdc, 0xd8, 0xff, 0xe8, 0xe4, 0xe8, 0xff, 0xe8, 0xec, 0xe8, 0xff,
0xf0, 0xf0, 0xf0, 0xff, 0xf0, 0xf0, 0xf0, 0xff, 0xf0, 0xf0, 0xf0, 0xff,
0xf0, 0xf0, 0xf0, 0xff, 0xf0, 0xf0, 0xf0, 0xff, 0xf0, 0xf0, 0xf0, 0xff,
0xf0, 0xf0, 0xf0, 0xff, 0xf0, 0xf0, 0xf0, 0xff, 0xf0, 0xf0, 0xf0, 0xff,
0xf0, 0xf0, 0xf0, 0xff, 0xf0, 0xf0, 0xf0, 0xff, 0xf0, 0xf0, 0xf0, 0xff,
0xf0, 0xf0, 0xf0, 0xff, 0xf0, 0xf0, 0xf0, 0xff, 0xf0, 0xf0, 0xf0, 0xff,
0xf0, 0xf0, 0xf0, 0xff, 0xf0, 0xf0, 0xf0, 0xff, 0xf0, 0xf0, 0xf0, 0xff,
0xf0, 0xf0, 0xf0, 0xff, 0xf0, 0xf0, 0xf0, 0xff, 0xf0, 0xf0, 0xf0, 0xff,
0xf0, 0xf0, 0xf0, 0xff, 0xe8, 0xec, 0xe8, 0xff, 0xe8, 0xe4, 0xe8, 0xff,
0xd8, 0xdc, 0xd8, 0xff, 0xd0, 0xd0, 0xd0, 0xff, 0xa8, 0xa8, 0xa8, 0x71,
0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x14,
0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x04,
0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x04, 0x00, 0x00, 0x00, 0x04,
0x30, 0x34, 0x30, 0x04, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x0c,
0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x1c,
0x48, 0x4c, 0x48, 0x2c, 0xc8, 0xc4, 0xc8, 0xe3, 0xd0, 0xd0, 0xd0, 0xff,
0xd8, 0xd8, 0xd8, 0xff, 0xe0, 0xdc, 0xe0, 0xff, 0xe0, 0xe0, 0xe0, 0xff,
0xe0, 0xe4, 0xe0, 0xff, 0xe8, 0xe4, 0xe8, 0xff, 0xe0, 0xe4, 0xe0, 0xff,
0xe8, 0xe4, 0xe8, 0xff, 0xe0, 0xe4, 0xe0, 0xff, 0xe8, 0xe4, 0xe8, 0xff,
0xe0, 0xe4, 0xe0, 0xff, 0xe8, 0xe4, 0xe8, 0xff, 0xe0, 0xe4, 0xe0, 0xff,
0xe0, 0xe4, 0xe0, 0xff, 0xe8, 0xe4, 0xe8, 0xff, 0xe0, 0xe4, 0xe0, 0xff,
0xe0, 0xe4, 0xe0, 0xff, 0xe8, 0xe4, 0xe8, 0xff, 0xe0, 0xe4, 0xe0, 0xff,
0xe0, 0xe4, 0xe0, 0xff, 0xe8, 0xe4, 0xe8, 0xff, 0xe0, 0xe4, 0xe0, 0xff,
0xe0, 0xe4, 0xe0, 0xff, 0xe0, 0xe4, 0xe0, 0xff, 0xe0, 0xe0, 0xe0, 0xff,
0xe0, 0xdc, 0xe0, 0xff, 0xd8, 0xd8, 0xd8, 0xff, 0xd0, 0xd0, 0xd0, 0xff,
0xc8, 0xc4, 0xc8, 0xe3, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x18,
0x00, 0x00, 0x00, 0x14, 0x10, 0x10, 0x10, 0x10, 0x00, 0x00, 0x00, 0x0c,
0x00, 0x00, 0x00, 0x08, 0x30, 0x34, 0x30, 0x04, 0x58, 0x54, 0x58, 0x04,
0xf8, 0xfc, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x40, 0x40, 0x40, 0x04,
0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x0c, 0x10, 0x10, 0x10, 0x10,
0x00, 0x00, 0x00, 0x14, 0x08, 0x0c, 0x08, 0x18, 0x00, 0x00, 0x00, 0x1c,
0x68, 0x6c, 0x68, 0x3c, 0xc0, 0xc4, 0xc0, 0xe3, 0xc8, 0xcc, 0xc8, 0xff,
0xd0, 0xd0, 0xd0, 0xff, 0xd0, 0xd0, 0xd0, 0xff, 0xd0, 0xd4, 0xd0, 0xff,
0xd0, 0xd4, 0xd0, 0xff, 0xd8, 0xd4, 0xd8, 0xff, 0xd0, 0xd4, 0xd0, 0xff,
0xd0, 0xd4, 0xd0, 0xff, 0xd8, 0xd4, 0xd8, 0xff, 0xd0, 0xd4, 0xd0, 0xff,
0xd0, 0xd4, 0xd0, 0xff, 0xd8, 0xd4, 0xd8, 0xff, 0xd0, 0xd4, 0xd0, 0xff,
0xd8, 0xd4, 0xd8, 0xff, 0xd0, 0xd4, 0xd0, 0xff, 0xd8, 0xd4, 0xd8, 0xff,
0xd0, 0xd4, 0xd0, 0xff, 0xd8, 0xd4, 0xd8, 0xff, 0xd0, 0xd4, 0xd0, 0xff,
0xd8, 0xd4, 0xd8, 0xff, 0xd8, 0xd4, 0xd8, 0xff, 0xd0, 0xd4, 0xd0, 0xff,
0xd0, 0xd0, 0xd0, 0xff, 0xd0, 0xd0, 0xd0, 0xff, 0xd0, 0xd0, 0xd0, 0xff,
0xc8, 0xc8, 0xc8, 0xff, 0xc0, 0xc0, 0xc0, 0xe3, 0x68, 0x6c, 0x68, 0x3c,
0x08, 0x08, 0x08, 0x1c, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x14,
0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x0c, 0x28, 0x24, 0x28, 0x08,
0x40, 0x40, 0x40, 0x04, 0x00, 0x00, 0x00, 0x04, 0xf8, 0xfc, 0xf8, 0x00,
0x00, 0x00, 0x00, 0x00, 0xf8, 0xfc, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xfc, 0xf8, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x08,
0x20, 0x1c, 0x20, 0x08, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x14,
0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x20,
0x00, 0x00, 0x00, 0x20, 0xa0, 0xa0, 0xa0, 0x75, 0xc0, 0xbc, 0xc0, 0xd7,
0xc8, 0xc4, 0xc8, 0xff, 0xc8, 0xc4, 0xc8, 0xff, 0xc8, 0xc4, 0xc8, 0xff,
0xc8, 0xc4, 0xc8, 0xff, 0xc8, 0xc4, 0xc8, 0xff, 0xc8, 0xc4, 0xc8, 0xff,
0xc8, 0xc4, 0xc8, 0xff, 0xc8, 0xc4, 0xc8, 0xff, 0xc8, 0xc4, 0xc8, 0xff,
0xc8, 0xc4, 0xc8, 0xff, 0xc8, 0xc4, 0xc8, 0xff, 0xc8, 0xc4, 0xc8, 0xff,
0xc8, 0xc4, 0xc8, 0xff, 0xc8, 0xc4, 0xc8, 0xff, 0xc8, 0xc4, 0xc8, 0xff,
0xc8, 0xc4, 0xc8, 0xff, 0xc8, 0xc4, 0xc8, 0xff, 0xc0, 0xc4, 0xc0, 0xff,
0xc8, 0xc4, 0xc8, 0xff, 0xc8, 0xc4, 0xc8, 0xff, 0xc8, 0xc4, 0xc8, 0xff,
0xc8, 0xc4, 0xc8, 0xff, 0xb8, 0xbc, 0xb8, 0xc7, 0xa8, 0xac, 0xa8, 0x92,
0x40, 0x40, 0x40, 0x30, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x18,
0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x0c,
0x18, 0x1c, 0x18, 0x08, 0x00, 0x00, 0x00, 0x04, 0x40, 0x40, 0x40, 0x04,
0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xfc, 0xf8, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xfc, 0xf8, 0x00,
0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08,
0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x14,
0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x20,
0x00, 0x00, 0x00, 0x20, 0x08, 0x08, 0x08, 0x24, 0x00, 0x00, 0x00, 0x24,
0x00, 0x00, 0x00, 0x24, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, 0x24,
0x08, 0x08, 0x08, 0x24, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, 0x24,
0x00, 0x00, 0x00, 0x24, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, 0x28,
0x00, 0x00, 0x00, 0x24, 0x08, 0x08, 0x08, 0x24, 0x00, 0x00, 0x00, 0x28,
0x00, 0x00, 0x00, 0x24, 0x00, 0x00, 0x00, 0x24, 0x00, 0x00, 0x00, 0x28,
0x00, 0x00, 0x00, 0x28, 0x08, 0x08, 0x08, 0x24, 0x00, 0x00, 0x00, 0x24,
0x00, 0x00, 0x00, 0x24, 0x00, 0x00, 0x00, 0x24, 0x00, 0x00, 0x00, 0x24,
0x00, 0x00, 0x00, 0x24, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x1c,
0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x14,
0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x08,
0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00,
0xf8, 0xfc, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0xf8, 0xfc, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00,
0xf8, 0xfc, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x04,
0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08,
0x18, 0x14, 0x18, 0x0c, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x14,
0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x1c,
0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x20,
0x08, 0x08, 0x08, 0x24, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x24,
0x00, 0x00, 0x00, 0x24, 0x00, 0x00, 0x00, 0x24, 0x08, 0x08, 0x08, 0x24,
0x00, 0x00, 0x00, 0x24, 0x08, 0x08, 0x08, 0x24, 0x00, 0x00, 0x00, 0x20,
0x00, 0x00, 0x00, 0x24, 0x08, 0x08, 0x08, 0x24, 0x08, 0x08, 0x08, 0x20,
0x00, 0x00, 0x00, 0x24, 0x00, 0x00, 0x00, 0x24, 0x08, 0x08, 0x08, 0x24,
0x08, 0x08, 0x08, 0x24, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x24,
0x08, 0x08, 0x08, 0x20, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x20,
0x00, 0x00, 0x00, 0x1c, 0x08, 0x08, 0x08, 0x18, 0x00, 0x00, 0x00, 0x18,
0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x0c,
0x00, 0x00, 0x00, 0x08, 0x28, 0x2c, 0x28, 0x08, 0x40, 0x40, 0x40, 0x04,
0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0xf8, 0xfc, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x04, 0x58, 0x54, 0x58, 0x04,
0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08,
0x00, 0x00, 0x00, 0x0c, 0x10, 0x10, 0x10, 0x10, 0x00, 0x00, 0x00, 0x14,
0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x1c,
0x08, 0x08, 0x08, 0x1c, 0x00, 0x00, 0x00, 0x1c, 0x08, 0x08, 0x08, 0x20,
0x08, 0x08, 0x08, 0x20, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x1c,
0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x20,
0x08, 0x08, 0x08, 0x20, 0x08, 0x08, 0x08, 0x20, 0x00, 0x00, 0x00, 0x20,
0x00, 0x00, 0x00, 0x20, 0x08, 0x08, 0x08, 0x20, 0x08, 0x08, 0x08, 0x20,
0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x20,
0x08, 0x08, 0x08, 0x1c, 0x00, 0x00, 0x00, 0x20, 0x08, 0x08, 0x08, 0x1c,
0x08, 0x08, 0x08, 0x1c, 0x00, 0x00, 0x00, 0x1c, 0x08, 0x0c, 0x08, 0x18,
0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x14, 0x10, 0x10, 0x10, 0x10,
0x10, 0x14, 0x10, 0x0c, 0x18, 0x18, 0x18, 0x0c, 0x00, 0x00, 0x00, 0x08,
0x00, 0x00, 0x00, 0x04, 0x58, 0x54, 0x58, 0x04, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04,
0x30, 0x34, 0x30, 0x04, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x0c,
0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x10, 0x10, 0x10, 0x10, 0x10,
0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x18,
0x08, 0x08, 0x08, 0x18, 0x00, 0x00, 0x00, 0x18, 0x08, 0x08, 0x08, 0x18,
0x08, 0x08, 0x08, 0x18, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x18,
0x00, 0x00, 0x00, 0x18, 0x08, 0x08, 0x08, 0x18, 0x00, 0x00, 0x00, 0x18,
0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x18,
0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x18,
0x08, 0x08, 0x08, 0x18, 0x08, 0x08, 0x08, 0x18, 0x08, 0x0c, 0x08, 0x18,
0x00, 0x00, 0x00, 0x18, 0x08, 0x0c, 0x08, 0x18, 0x00, 0x00, 0x00, 0x18,
0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x10,
0x10, 0x10, 0x10, 0x10, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x0c,
0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x04, 0x58, 0x54, 0x58, 0x04,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xf8, 0xfc, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04,
0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x0c,
0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x10,
0x00, 0x00, 0x00, 0x10, 0x10, 0x0c, 0x10, 0x10, 0x00, 0x00, 0x00, 0x14,
0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x14,
0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x14,
0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x14,
0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x14,
0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x14,
0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x14,
0x10, 0x0c, 0x10, 0x14, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x10,
0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x0c,
0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x04,
0x00, 0x00, 0x00, 0x04, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0xf8, 0xfc, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00,
0xf8, 0xfc, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xf8, 0xfc, 0xf8, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x40, 0x40, 0x40, 0x04,
0x30, 0x34, 0x30, 0x04, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08,
0x00, 0x00, 0x00, 0x08, 0x18, 0x18, 0x18, 0x0c, 0x00, 0x00, 0x00, 0x0c,
0x00, 0x00, 0x00, 0x0c, 0x10, 0x14, 0x10, 0x10, 0x00, 0x00, 0x00, 0x10,
0x10, 0x10, 0x10, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x10,
0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x10,
0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x10,
0x10, 0x10, 0x10, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x10,
0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x10,
0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x10,
0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x0c, 0x18, 0x14, 0x18, 0x0c,
0x18, 0x18, 0x18, 0x0c, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x04,
0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04,
0x00, 0x00, 0x00, 0x04, 0xf8, 0xfc, 0xf8, 0x00, 0xf8, 0xfc, 0xf8, 0x00,
0xf8, 0xfc, 0xf8, 0x04, 0xf8, 0xfc, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xf8, 0xfc, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x04,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04,
0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04,
0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08,
0x00, 0x00, 0x00, 0x08, 0x18, 0x18, 0x18, 0x08, 0x00, 0x00, 0x00, 0x08,
0x18, 0x18, 0x18, 0x0c, 0x18, 0x18, 0x18, 0x08, 0x00, 0x00, 0x00, 0x0c,
0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08,
0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x08,
0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x08,
0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x0c,
0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08,
0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08, 0x28, 0x2c, 0x28, 0x04,
0x38, 0x34, 0x38, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xfc, 0xf8, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0xf8, 0xfc, 0xf8, 0x00, 0xf8, 0xfc, 0xf8, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0xf8, 0xfc, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04,
0x00, 0x00, 0x00, 0x04, 0x28, 0x28, 0x28, 0x08, 0x00, 0x00, 0x00, 0x08,
0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x08,
0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08,
0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x08, 0x20, 0x24, 0x20, 0x08,
0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08, 0x20, 0x24, 0x20, 0x08,
0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x04,
0x20, 0x24, 0x20, 0x08, 0x28, 0x2c, 0x28, 0x04, 0x00, 0x00, 0x00, 0x08,
0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04,
0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04,
0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xf8, 0xfc, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xfc, 0xf8, 0x00,
0xf8, 0xfc, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xfc, 0xf8, 0x00,
0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x58, 0x54, 0x58, 0x04,
0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04,
0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04,
0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04,
0x00, 0x00, 0x00, 0x04, 0x50, 0x54, 0x50, 0x04, 0x00, 0x00, 0x00, 0x04,
0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x40, 0x40, 0x40, 0x04,
0x40, 0x40, 0x40, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04,
0x58, 0x54, 0x58, 0x04, 0x40, 0x40, 0x40, 0x04, 0x00, 0x00, 0x00, 0x04,
0x00, 0x00, 0x00, 0x04, 0x80, 0x80, 0x80, 0x04, 0x00, 0x00, 0x00, 0x04,
0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x80, 0x80, 0x80, 0x04, 0xf8, 0xfc, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0xf8, 0xfc, 0xf8, 0x00, 0xf8, 0xfc, 0xf8, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0xf8, 0xfc, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x00, 0x80, 0x80, 0x80, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x00,
0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x04, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xf8, 0xfc, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xfc, 0xf8, 0x00,
0x00, 0x00, 0x00, 0x00, 0xf8, 0xfc, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0xf8, 0xfc, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0xf8, 0xfc, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
};
@@ -0,0 +1,842 @@
// 4.26.1 0x30c6fcdc D2 AY R0 FARGB8888 U565 N0 SExtFlashSection
// Generated by imageconverter. Please, do not edit!
#include <touchgfx/hal/Config.hpp>
LOCATION_PRAGMA_32("ExtFlashSection")
KEEP extern const unsigned char image_icon_theme_images_action_done_50_50_b5241f_svg[] LOCATION_ATTRIBUTE_32("ExtFlashSection") = { // 50x50 ARGB8888 pixels.
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x24, 0xb8, 0xff,
0x20, 0x24, 0xb8, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x20, 0x24, 0xb0, 0xff, 0x20, 0x24, 0xb8, 0xff, 0x20, 0x24, 0xb0, 0xff,
0x20, 0x24, 0xb8, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x20, 0x24, 0xb8, 0xff, 0x20, 0x24, 0xb8, 0xff,
0x20, 0x24, 0xb0, 0xff, 0x20, 0x24, 0xb8, 0xff, 0x20, 0x24, 0xb0, 0xff,
0x20, 0x24, 0xb8, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x24, 0xb8, 0xff,
0x20, 0x24, 0xb0, 0xff, 0x20, 0x24, 0xb8, 0xff, 0x20, 0x24, 0xb8, 0xff,
0x20, 0x24, 0xb0, 0xff, 0x20, 0x24, 0xb8, 0xff, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x20, 0x24, 0xb8, 0xff, 0x20, 0x24, 0xb0, 0xff, 0x20, 0x24, 0xb8, 0xff,
0x20, 0x24, 0xb0, 0xff, 0x18, 0x24, 0xb8, 0xff, 0x20, 0x24, 0xb8, 0xff,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x20, 0x24, 0xb8, 0xff, 0x20, 0x24, 0xb0, 0xff,
0x20, 0x24, 0xb8, 0xff, 0x20, 0x24, 0xb8, 0xff, 0x20, 0x24, 0xb0, 0xff,
0x20, 0x24, 0xb8, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x24, 0xb8, 0xff,
0x20, 0x24, 0xb0, 0xff, 0x20, 0x24, 0xb8, 0xff, 0x20, 0x24, 0xb8, 0xff,
0x20, 0x24, 0xb0, 0xff, 0x20, 0x24, 0xb8, 0xff, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x20, 0x24, 0xb8, 0xff, 0x20, 0x24, 0xb0, 0xff, 0x20, 0x24, 0xb8, 0xff,
0x20, 0x24, 0xb8, 0xff, 0x18, 0x24, 0xb0, 0xff, 0x20, 0x24, 0xb8, 0xff,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x20, 0x24, 0xb8, 0xff, 0x20, 0x24, 0xb0, 0xff,
0x20, 0x24, 0xb8, 0xff, 0x20, 0x24, 0xb8, 0xff, 0x20, 0x24, 0xb0, 0xff,
0x20, 0x24, 0xb8, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x24, 0xb8, 0xff,
0x20, 0x24, 0xb0, 0xff, 0x20, 0x24, 0xb8, 0xff, 0x20, 0x24, 0xb8, 0xff,
0x18, 0x24, 0xb0, 0xff, 0x20, 0x24, 0xb0, 0xff, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x20, 0x24, 0xb8, 0xff, 0x20, 0x24, 0xb0, 0xff, 0x20, 0x24, 0xb8, 0xff,
0x20, 0x24, 0xb8, 0xff, 0x20, 0x24, 0xb0, 0xff, 0x20, 0x24, 0xb8, 0xff,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x20, 0x24, 0xb8, 0xff, 0x20, 0x24, 0xb0, 0xff,
0x20, 0x24, 0xb8, 0xff, 0x20, 0x24, 0xb8, 0xff, 0x18, 0x24, 0xb0, 0xff,
0x20, 0x24, 0xb8, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x24, 0xb8, 0xff,
0x20, 0x24, 0xb0, 0xff, 0x20, 0x24, 0xb8, 0xff, 0x20, 0x24, 0xb8, 0xff,
0x20, 0x24, 0xb0, 0xff, 0x20, 0x24, 0xb0, 0xff, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x24, 0xb8, 0xff,
0x20, 0x24, 0xb8, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x20, 0x24, 0xb8, 0xff, 0x20, 0x24, 0xb0, 0xff, 0x20, 0x24, 0xb8, 0xff,
0x20, 0x24, 0xb8, 0xff, 0x18, 0x24, 0xb0, 0xff, 0x20, 0x24, 0xb8, 0xff,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x20, 0x24, 0xb0, 0xff, 0x20, 0x24, 0xb8, 0xff, 0x20, 0x24, 0xb0, 0xff,
0x20, 0x24, 0xb8, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x20, 0x24, 0xb8, 0xff, 0x20, 0x24, 0xb0, 0xff,
0x20, 0x24, 0xb8, 0xff, 0x20, 0x24, 0xb8, 0xff, 0x20, 0x24, 0xb0, 0xff,
0x20, 0x24, 0xb8, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x20, 0x24, 0xb8, 0xff, 0x20, 0x24, 0xb8, 0xff,
0x20, 0x24, 0xb0, 0xff, 0x20, 0x24, 0xb8, 0xff, 0x20, 0x24, 0xb0, 0xff,
0x20, 0x24, 0xb8, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x24, 0xb8, 0xff,
0x20, 0x24, 0xb0, 0xff, 0x20, 0x24, 0xb8, 0xff, 0x20, 0x24, 0xb8, 0xff,
0x18, 0x24, 0xb0, 0xff, 0x20, 0x24, 0xb0, 0xff, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x20, 0x24, 0xb8, 0xff, 0x20, 0x24, 0xb8, 0xff,
0x20, 0x24, 0xb0, 0xff, 0x20, 0x24, 0xb8, 0xff, 0x20, 0x24, 0xb8, 0xff,
0x20, 0x24, 0xb0, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x20, 0x24, 0xb8, 0xff, 0x20, 0x24, 0xb0, 0xff, 0x20, 0x24, 0xb8, 0xff,
0x20, 0x24, 0xb8, 0xff, 0x20, 0x24, 0xb0, 0xff, 0x20, 0x24, 0xb8, 0xff,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x20, 0x24, 0xb0, 0xff, 0x18, 0x24, 0xb8, 0xff,
0x20, 0x24, 0xb8, 0xff, 0x20, 0x24, 0xb0, 0xff, 0x20, 0x24, 0xb8, 0xff,
0x20, 0x24, 0xb8, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x20, 0x24, 0xb8, 0xff, 0x20, 0x24, 0xb0, 0xff,
0x20, 0x24, 0xb8, 0xff, 0x20, 0x24, 0xb8, 0xff, 0x18, 0x24, 0xb0, 0xff,
0x20, 0x24, 0xb8, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x20, 0x24, 0xb8, 0xff, 0x20, 0x24, 0xb0, 0xff,
0x20, 0x24, 0xb8, 0xff, 0x20, 0x24, 0xb0, 0xff, 0x20, 0x24, 0xb8, 0xff,
0x20, 0x24, 0xb0, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x24, 0xb8, 0xff,
0x20, 0x24, 0xb0, 0xff, 0x20, 0x24, 0xb8, 0xff, 0x20, 0x24, 0xb8, 0xff,
0x20, 0x24, 0xb0, 0xff, 0x20, 0x24, 0xb0, 0xff, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x20, 0x24, 0xb8, 0xff, 0x18, 0x24, 0xb0, 0xff,
0x20, 0x24, 0xb8, 0xff, 0x20, 0x24, 0xb8, 0xff, 0x20, 0x24, 0xb8, 0xff,
0x20, 0x24, 0xb0, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x20, 0x24, 0xb8, 0xff, 0x20, 0x24, 0xb0, 0xff, 0x20, 0x24, 0xb8, 0xff,
0x20, 0x24, 0xb8, 0xff, 0x18, 0x24, 0xb0, 0xff, 0x20, 0x24, 0xb8, 0xff,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x20, 0x24, 0xb8, 0xff, 0x20, 0x24, 0xb0, 0xff,
0x20, 0x24, 0xb8, 0xff, 0x18, 0x24, 0xb8, 0xff, 0x20, 0x24, 0xb8, 0xff,
0x20, 0x24, 0xb0, 0xff, 0x20, 0x24, 0xb8, 0xff, 0x20, 0x24, 0xb8, 0xff,
0x20, 0x24, 0xb0, 0xff, 0x20, 0x24, 0xb8, 0xff, 0x20, 0x24, 0xb0, 0xff,
0x20, 0x24, 0xb8, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x20, 0x24, 0xb0, 0xff, 0x20, 0x24, 0xb0, 0xff,
0x20, 0x24, 0xb8, 0xff, 0x20, 0x24, 0xb0, 0xff, 0x20, 0x24, 0xb8, 0xff,
0x20, 0x24, 0xb8, 0xff, 0x20, 0x24, 0xb0, 0xff, 0x18, 0x24, 0xb8, 0xff,
0x20, 0x24, 0xb8, 0xff, 0x20, 0x24, 0xb0, 0xff, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x20, 0x24, 0xb8, 0xff, 0x20, 0x24, 0xb8, 0xff,
0x20, 0x24, 0xb0, 0xff, 0x18, 0x24, 0xb8, 0xff, 0x20, 0x24, 0xb8, 0xff,
0x20, 0x24, 0xb0, 0xff, 0x20, 0x24, 0xb8, 0xff, 0x20, 0x24, 0xb8, 0xff,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x20, 0x24, 0xb8, 0xff, 0x20, 0x24, 0xb0, 0xff,
0x20, 0x24, 0xb8, 0xff, 0x20, 0x24, 0xb0, 0xff, 0x20, 0x24, 0xb8, 0xff,
0x20, 0x24, 0xb0, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x20, 0x24, 0xb8, 0xff, 0x20, 0x24, 0xb0, 0xff,
0x18, 0x24, 0xb8, 0xff, 0x20, 0x24, 0xb8, 0xff, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x20, 0x24, 0xb8, 0xff, 0x20, 0x24, 0xb0, 0xff,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00
};
@@ -0,0 +1,842 @@
// 4.26.1 0xa96654c7 D2 AY R0 FARGB8888 U565 N0 SExtFlashSection
// Generated by imageconverter. Please, do not edit!
#include <touchgfx/hal/Config.hpp>
LOCATION_PRAGMA_32("ExtFlashSection")
KEEP extern const unsigned char image_icon_theme_images_av_fiber_manual_record_50_50_5e3e10_svg[] LOCATION_ATTRIBUTE_32("ExtFlashSection") = { // 50x50 ARGB8888 pixels.
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x10, 0x3c, 0x60, 0xff, 0x10, 0x3c, 0x60, 0xff, 0x10, 0x40, 0x60, 0xff,
0x10, 0x3c, 0x60, 0xff, 0x10, 0x3c, 0x60, 0xff, 0x10, 0x40, 0x60, 0xff,
0x10, 0x3c, 0x60, 0xff, 0x10, 0x3c, 0x60, 0xff, 0x10, 0x40, 0x60, 0xff,
0x10, 0x3c, 0x60, 0xff, 0x10, 0x3c, 0x60, 0xff, 0x10, 0x40, 0x60, 0xff,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x10, 0x3c, 0x60, 0xff, 0x10, 0x40, 0x60, 0xff,
0x10, 0x40, 0x58, 0xff, 0x10, 0x3c, 0x60, 0xff, 0x10, 0x40, 0x60, 0xff,
0x10, 0x3c, 0x58, 0xff, 0x10, 0x40, 0x60, 0xff, 0x10, 0x3c, 0x60, 0xff,
0x10, 0x40, 0x58, 0xff, 0x10, 0x40, 0x60, 0xff, 0x10, 0x3c, 0x60, 0xff,
0x10, 0x3c, 0x58, 0xff, 0x10, 0x40, 0x60, 0xff, 0x10, 0x3c, 0x60, 0xff,
0x10, 0x3c, 0x60, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x3c, 0x60, 0xff,
0x10, 0x40, 0x60, 0xff, 0x10, 0x3c, 0x58, 0xff, 0x10, 0x3c, 0x60, 0xff,
0x10, 0x40, 0x60, 0xff, 0x10, 0x3c, 0x58, 0xff, 0x10, 0x40, 0x60, 0xff,
0x10, 0x3c, 0x60, 0xff, 0x10, 0x40, 0x58, 0xff, 0x10, 0x3c, 0x60, 0xff,
0x10, 0x40, 0x60, 0xff, 0x10, 0x40, 0x58, 0xff, 0x10, 0x3c, 0x60, 0xff,
0x10, 0x40, 0x60, 0xff, 0x10, 0x40, 0x58, 0xff, 0x10, 0x3c, 0x60, 0xff,
0x10, 0x40, 0x60, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x10, 0x3c, 0x60, 0xff, 0x10, 0x40, 0x60, 0xff, 0x10, 0x40, 0x60, 0xff,
0x10, 0x3c, 0x60, 0xff, 0x10, 0x40, 0x60, 0xff, 0x10, 0x40, 0x60, 0xff,
0x10, 0x3c, 0x60, 0xff, 0x10, 0x40, 0x60, 0xff, 0x10, 0x40, 0x60, 0xff,
0x10, 0x3c, 0x60, 0xff, 0x10, 0x3c, 0x60, 0xff, 0x10, 0x3c, 0x60, 0xff,
0x10, 0x40, 0x60, 0xff, 0x10, 0x3c, 0x60, 0xff, 0x10, 0x3c, 0x60, 0xff,
0x10, 0x40, 0x58, 0xff, 0x10, 0x3c, 0x60, 0xff, 0x10, 0x3c, 0x60, 0xff,
0x10, 0x40, 0x58, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x10, 0x3c, 0x60, 0xff, 0x10, 0x40, 0x60, 0xff, 0x10, 0x3c, 0x58, 0xff,
0x10, 0x3c, 0x60, 0xff, 0x10, 0x40, 0x58, 0xff, 0x10, 0x3c, 0x60, 0xff,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x10, 0x40, 0x60, 0xff, 0x10, 0x3c, 0x60, 0xff,
0x10, 0x40, 0x60, 0xff, 0x10, 0x3c, 0x60, 0xff, 0x10, 0x3c, 0x60, 0xff,
0x10, 0x40, 0x60, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x3c, 0x60, 0xff,
0x10, 0x40, 0x60, 0xff, 0x10, 0x40, 0x60, 0xff, 0x10, 0x3c, 0x58, 0xff,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x40, 0x58, 0xff,
0x10, 0x40, 0x60, 0xff, 0x10, 0x3c, 0x60, 0xff, 0x10, 0x3c, 0x58, 0xff,
0x10, 0x40, 0x60, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x10, 0x3c, 0x60, 0xff, 0x10, 0x40, 0x58, 0xff, 0x10, 0x3c, 0x60, 0xff,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x10, 0x40, 0x60, 0xff, 0x10, 0x3c, 0x60, 0xff, 0x10, 0x3c, 0x60, 0xff,
0x10, 0x3c, 0x60, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x10, 0x3c, 0x60, 0xff, 0x10, 0x40, 0x60, 0xff,
0x10, 0x40, 0x60, 0xff, 0x10, 0x3c, 0x58, 0xff, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x10, 0x40, 0x58, 0xff, 0x10, 0x40, 0x60, 0xff, 0x10, 0x3c, 0x60, 0xff,
0x10, 0x40, 0x58, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x3c, 0x60, 0xff,
0x10, 0x40, 0x60, 0xff, 0x10, 0x3c, 0x58, 0xff, 0x10, 0x3c, 0x60, 0xff,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x3c, 0x58, 0xff,
0x10, 0x40, 0x60, 0xff, 0x10, 0x40, 0x60, 0xff, 0x10, 0x3c, 0x60, 0xff,
0x10, 0x3c, 0x60, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x10, 0x3c, 0x60, 0xff, 0x10, 0x40, 0x60, 0xff, 0x10, 0x40, 0x58, 0xff,
0x10, 0x3c, 0x60, 0xff, 0x10, 0x40, 0x60, 0xff, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x3c, 0x60, 0xff,
0x10, 0x40, 0x60, 0xff, 0x10, 0x3c, 0x58, 0xff, 0x10, 0x40, 0x60, 0xff,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x3c, 0x60, 0xff,
0x10, 0x40, 0x60, 0xff, 0x10, 0x3c, 0x60, 0xff, 0x10, 0x40, 0x60, 0xff,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x10, 0x3c, 0x60, 0xff, 0x10, 0x40, 0x58, 0xff,
0x10, 0x3c, 0x60, 0xff, 0x10, 0x40, 0x60, 0xff, 0x10, 0x3c, 0x60, 0xff,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x10, 0x40, 0x58, 0xff, 0x10, 0x3c, 0x60, 0xff,
0x10, 0x3c, 0x60, 0xff, 0x10, 0x40, 0x58, 0xff, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x10, 0x3c, 0x60, 0xff, 0x10, 0x40, 0x60, 0xff,
0x10, 0x3c, 0x58, 0xff, 0x10, 0x40, 0x60, 0xff, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x10, 0x3c, 0x60, 0xff, 0x10, 0x40, 0x60, 0xff, 0x10, 0x40, 0x58, 0xff,
0x10, 0x3c, 0x60, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x10, 0x40, 0x60, 0xff, 0x10, 0x3c, 0x60, 0xff, 0x10, 0x40, 0x58, 0xff,
0x10, 0x3c, 0x60, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x3c, 0x60, 0xff,
0x10, 0x40, 0x60, 0xff, 0x10, 0x3c, 0x60, 0xff, 0x10, 0x3c, 0x60, 0xff,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x40, 0x58, 0xff,
0x10, 0x3c, 0x60, 0xff, 0x10, 0x40, 0x60, 0xff, 0x10, 0x3c, 0x60, 0xff,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x10, 0x40, 0x58, 0xff, 0x10, 0x3c, 0x60, 0xff,
0x10, 0x40, 0x60, 0xff, 0x10, 0x40, 0x58, 0xff, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x10, 0x3c, 0x60, 0xff, 0x10, 0x40, 0x60, 0xff,
0x10, 0x3c, 0x60, 0xff, 0x10, 0x40, 0x58, 0xff, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x3c, 0x60, 0xff,
0x10, 0x40, 0x60, 0xff, 0x10, 0x3c, 0x60, 0xff, 0x10, 0x3c, 0x58, 0xff,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x10, 0x40, 0x60, 0xff, 0x10, 0x3c, 0x58, 0xff, 0x10, 0x40, 0x60, 0xff,
0x10, 0x3c, 0x60, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x40, 0x60, 0xff,
0x10, 0x40, 0x60, 0xff, 0x10, 0x3c, 0x60, 0xff, 0x10, 0x40, 0x60, 0xff,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x3c, 0x58, 0xff,
0x10, 0x40, 0x60, 0xff, 0x10, 0x3c, 0x60, 0xff, 0x10, 0x40, 0x60, 0xff,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x10, 0x3c, 0x58, 0xff, 0x10, 0x40, 0x60, 0xff,
0x10, 0x3c, 0x60, 0xff, 0x10, 0x40, 0x58, 0xff, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x10, 0x40, 0x60, 0xff, 0x10, 0x3c, 0x60, 0xff,
0x10, 0x40, 0x58, 0xff, 0x10, 0x3c, 0x60, 0xff, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x10, 0x3c, 0x60, 0xff, 0x10, 0x3c, 0x60, 0xff, 0x10, 0x40, 0x58, 0xff,
0x10, 0x3c, 0x60, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x10, 0x3c, 0x60, 0xff, 0x10, 0x40, 0x60, 0xff, 0x10, 0x3c, 0x58, 0xff,
0x10, 0x40, 0x60, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x40, 0x60, 0xff,
0x10, 0x40, 0x60, 0xff, 0x10, 0x3c, 0x60, 0xff, 0x10, 0x40, 0x60, 0xff,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x40, 0x58, 0xff,
0x10, 0x3c, 0x60, 0xff, 0x10, 0x40, 0x60, 0xff, 0x10, 0x3c, 0x60, 0xff,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x10, 0x3c, 0x58, 0xff, 0x10, 0x40, 0x60, 0xff,
0x10, 0x3c, 0x60, 0xff, 0x10, 0x3c, 0x58, 0xff, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x10, 0x3c, 0x60, 0xff, 0x10, 0x40, 0x60, 0xff, 0x10, 0x3c, 0x58, 0xff,
0x10, 0x40, 0x60, 0xff, 0x10, 0x40, 0x60, 0xff, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x10, 0x3c, 0x60, 0xff, 0x10, 0x40, 0x60, 0xff, 0x10, 0x40, 0x58, 0xff,
0x10, 0x3c, 0x60, 0xff, 0x10, 0x40, 0x60, 0xff, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x40, 0x60, 0xff,
0x10, 0x3c, 0x60, 0xff, 0x10, 0x3c, 0x60, 0xff, 0x10, 0x40, 0x58, 0xff,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x10, 0x3c, 0x60, 0xff, 0x10, 0x40, 0x60, 0xff, 0x10, 0x40, 0x60, 0xff,
0x10, 0x3c, 0x60, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x10, 0x40, 0x58, 0xff, 0x10, 0x3c, 0x58, 0xff, 0x10, 0x40, 0x60, 0xff,
0x10, 0x40, 0x60, 0xff, 0x10, 0x3c, 0x60, 0xff, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x10, 0x3c, 0x58, 0xff, 0x10, 0x3c, 0x60, 0xff, 0x10, 0x40, 0x60, 0xff,
0x10, 0x3c, 0x58, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x3c, 0x60, 0xff,
0x10, 0x3c, 0x60, 0xff, 0x10, 0x40, 0x60, 0xff, 0x10, 0x3c, 0x58, 0xff,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x10, 0x40, 0x60, 0xff, 0x10, 0x40, 0x60, 0xff, 0x10, 0x3c, 0x60, 0xff,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x10, 0x40, 0x60, 0xff, 0x10, 0x3c, 0x60, 0xff, 0x10, 0x40, 0x60, 0xff,
0x10, 0x3c, 0x60, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x10, 0x3c, 0x58, 0xff, 0x10, 0x40, 0x60, 0xff, 0x10, 0x40, 0x60, 0xff,
0x10, 0x3c, 0x60, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x10, 0x3c, 0x58, 0xff, 0x10, 0x40, 0x60, 0xff, 0x10, 0x3c, 0x58, 0xff,
0x10, 0x40, 0x58, 0xff, 0x10, 0x40, 0x60, 0xff, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x3c, 0x60, 0xff,
0x10, 0x40, 0x58, 0xff, 0x10, 0x3c, 0x60, 0xff, 0x10, 0x40, 0x60, 0xff,
0x10, 0x40, 0x58, 0xff, 0x10, 0x3c, 0x60, 0xff, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x10, 0x40, 0x60, 0xff, 0x10, 0x3c, 0x60, 0xff, 0x10, 0x40, 0x60, 0xff,
0x10, 0x3c, 0x60, 0xff, 0x10, 0x3c, 0x60, 0xff, 0x10, 0x40, 0x60, 0xff,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x10, 0x3c, 0x60, 0xff, 0x10, 0x40, 0x60, 0xff, 0x10, 0x3c, 0x60, 0xff,
0x10, 0x40, 0x60, 0xff, 0x10, 0x40, 0x60, 0xff, 0x10, 0x3c, 0x60, 0xff,
0x10, 0x40, 0x60, 0xff, 0x10, 0x40, 0x60, 0xff, 0x10, 0x3c, 0x58, 0xff,
0x10, 0x40, 0x60, 0xff, 0x10, 0x3c, 0x60, 0xff, 0x10, 0x40, 0x58, 0xff,
0x10, 0x3c, 0x60, 0xff, 0x10, 0x40, 0x60, 0xff, 0x10, 0x3c, 0x58, 0xff,
0x10, 0x40, 0x60, 0xff, 0x10, 0x40, 0x60, 0xff, 0x10, 0x3c, 0x58, 0xff,
0x10, 0x40, 0x60, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x10, 0x3c, 0x58, 0xff, 0x10, 0x40, 0x60, 0xff, 0x10, 0x3c, 0x58, 0xff,
0x10, 0x3c, 0x60, 0xff, 0x10, 0x40, 0x58, 0xff, 0x10, 0x3c, 0x60, 0xff,
0x10, 0x3c, 0x60, 0xff, 0x10, 0x40, 0x60, 0xff, 0x10, 0x3c, 0x60, 0xff,
0x10, 0x40, 0x60, 0xff, 0x10, 0x3c, 0x60, 0xff, 0x10, 0x40, 0x58, 0xff,
0x10, 0x3c, 0x60, 0xff, 0x10, 0x3c, 0x60, 0xff, 0x10, 0x40, 0x58, 0xff,
0x10, 0x3c, 0x60, 0xff, 0x10, 0x40, 0x60, 0xff, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x10, 0x40, 0x60, 0xff, 0x10, 0x3c, 0x60, 0xff, 0x10, 0x40, 0x58, 0xff,
0x10, 0x40, 0x60, 0xff, 0x10, 0x3c, 0x60, 0xff, 0x10, 0x40, 0x58, 0xff,
0x10, 0x3c, 0x60, 0xff, 0x10, 0x40, 0x58, 0xff, 0x10, 0x3c, 0x60, 0xff,
0x10, 0x40, 0x60, 0xff, 0x10, 0x40, 0x60, 0xff, 0x10, 0x3c, 0x60, 0xff,
0x10, 0x40, 0x60, 0xff, 0x10, 0x3c, 0x58, 0xff, 0x10, 0x3c, 0x60, 0xff,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x10, 0x40, 0x60, 0xff, 0x10, 0x3c, 0x60, 0xff, 0x10, 0x3c, 0x60, 0xff,
0x10, 0x40, 0x60, 0xff, 0x10, 0x40, 0x58, 0xff, 0x10, 0x3c, 0x60, 0xff,
0x10, 0x40, 0x60, 0xff, 0x10, 0x3c, 0x58, 0xff, 0x10, 0x3c, 0x60, 0xff,
0x10, 0x40, 0x58, 0xff, 0x10, 0x3c, 0x60, 0xff, 0x10, 0x40, 0x60, 0xff,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00
};
@@ -0,0 +1,842 @@
// 4.26.1 0x5b9b6870 D2 AY R0 FARGB8888 U565 N0 SExtFlashSection
// Generated by imageconverter. Please, do not edit!
#include <touchgfx/hal/Config.hpp>
LOCATION_PRAGMA_32("ExtFlashSection")
KEEP extern const unsigned char image_icon_theme_images_hardware_headset_50_50_ffffff_svg[] LOCATION_ATTRIBUTE_32("ExtFlashSection") = { // 50x50 ARGB8888 pixels.
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff,
0xf8, 0xfc, 0xf8, 0xff, 0xf8, 0xfc, 0xf8, 0xff, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00
};
File diff suppressed because it is too large. Load diff
@@ -0,0 +1,242 @@
# Get identification of this system
ifeq ($(OS),Windows_NT)
UNAME := MINGW32_NT-6.2
else
UNAME := $(shell uname -s)
endif
board_name := $(UNAME)
.PHONY: all clean assets
# Directories containing application-specific source and header files.
# Additional components can be added to this list. make will look for
# source files recursively in comp_name/src and setup an include directive
# for comp_name/include.
components := gui simulator generated/gui_generated generated/simulator
# Location of folder containing bmp/png files.
asset_images_input := assets/images
# Location of folder to search for ttf font files
asset_fonts_input := assets/fonts
# Location of folder where the texts.xml is placed
asset_texts_input := assets/texts
# Location of folder where video files are places
asset_videos_input := assets/videos
build_root_path := build
object_output_path := $(build_root_path)/$(board_name)
binary_output_path := $(build_root_path)/bin
# Location of output folders where autogenerated code from assets is placed
asset_root_path := generated
asset_images_output := $(asset_root_path)/images
asset_fonts_output := $(asset_root_path)/fonts
asset_texts_output := $(asset_root_path)/texts
asset_videos_output := $(asset_root_path)/videos
#include application specific configuration
include config/gcc/app.mk
### END OF USER SECTION. THE FOLLOWING SHOULD NOT BE MODIFIED ###
ifeq ($(UNAME), Linux)
library_path := $(touchgfx_path)/3rdparty/libjpeg/lib/linux $(touchgfx_path)/lib/linux $(ADDITIONAL_LIBRARY_PATHS)
libraries := touchgfx SDL2 SDL2_image jpeg rt m pthread dl $(ADDITIONAL_LIBRARIES)
libstart := -Wl,--start-group
libend := -Wl,--end-group
libextra :=
library_includes += $(touchgfx_path)/3rdparty/libjpeg/include
linker_options_local := -Xlinker -rpath -Xlinker $(touchgfx_path)/3rdparty/libjpeg/lib/linux
resource_file :=
imageconvert_executable := $(touchgfx_path)/framework/tools/imageconvert/build/linux/imageconvert.out
fontconvert_executable := $(touchgfx_path)/framework/tools/fontconvert/build/linux/fontconvert.out
simulator_executable := simulator.out
linker_options += -static-libgcc -Xlinker --no-as-needed
else
sdl_library_path := $(touchgfx_path)/lib/sdl2/win32
jpeg_library_path := $(touchgfx_path)/3rdparty/libjpeg/lib/win32
library_path := $(sdl_library_path) $(jpeg_library_path) $(touchgfx_path)/lib/win/mingw32 $(ADDITIONAL_LIBRARY_PATHS)
libraries := touchgfx SDL2 SDL2_image jpeg-8 m pthread mingw32 $(ADDITIONAL_LIBRARIES)
libstart := -Wl,--start-group
libend := -Wl,--end-group
libextra := -Wl,--subsystem,windows
library_includes += $(touchgfx_path)/framework/include/platform/hal/simulator/sdl2/vendor $(touchgfx_path)/3rdparty/libjpeg/include
resource_file := generated/simulator/touchgfx.res
imageconvert_executable := $(touchgfx_path)/framework/tools/imageconvert/build/win/imageconvert.out
fontconvert_executable := $(touchgfx_path)/framework/tools/fontconvert/build/win/fontconvert.out
simulator_executable := simulator.exe
$(resource_file): $(resource_file:%.res=%.rc) $(resource_file:%.res=%.ico)
@echo Creating Windows resource file with program icon
@windres $(resource_file:%.res=%.rc) -O coff -o $@
linker_options += -static-libgcc -static-libstdc++
endif
c_compiler := g++
c_compiler_options += -DSIMULATOR='' -g
cpp_compiler := g++
cpp_compiler_options += -g -DSIMULATOR='' -DENABLE_LOG
linker := g++
WARN = error all extra write-strings init-self cast-qual \
pointer-arith strict-aliasing format=2 uninitialized \
missing-declarations no-long-long no-unused-parameter \
no-variadic-macros no-format-extra-args \
no-conversion no-overloaded-virtual
CXXWARN = non-virtual-dtor ctor-dtor-privacy
c_compiler_options_local += -pedantic $(addprefix -W,$(WARN))
cpp_compiler_options_local += -pedantic $(addprefix -W,$(WARN) $(CXXWARN))
#include everything + specific vendor folders
framework_includes := $(touchgfx_path)/framework/include
#only take in the source we want to build for this sim
framework_files := $(touchgfx_path)/framework/source/platform/driver/touch/SDL2TouchController.cpp
framework_source := $(touchgfx_path)/framework/source/platform/hal/simulator/sdl2
#this needs to change when assset include folder changes.
all_components := $(components) \
$(asset_fonts_output) \
$(asset_images_output) \
$(asset_texts_output) \
$(asset_videos_output)
#keep framework include and source out of this
include_paths := $(library_includes) $(foreach comp, $(all_components), $(comp)/include) $(framework_includes) $(ADDITIONAL_INCLUDE_PATHS)
source_paths = $(foreach comp, $(all_components), $(comp)/src) $(framework_source) simulator
# Finds files that matches the specified pattern. The directory list
# is searched recursively. It is safe to invoke this function with an
# empty list of directories.
#
# Param $(1): List of directories to search
# Param $(2): The file pattern to search for
define find
$(foreach dir,$(1),$(foreach d,$(wildcard $(dir)/*),\
$(call find,$(d),$(2))) $(wildcard $(dir)/$(strip $(2))))
endef
unexport find
fontconvert_ttf_lower_files := $(call find, $(asset_fonts_input), *.ttf)
fontconvert_ttf_upper_files := $(call find, $(asset_fonts_input), *.TTF)
fontconvert_otf_lower_files := $(call find, $(asset_fonts_input), *.otf)
fontconvert_otf_upper_files := $(call find, $(asset_fonts_input), *.OTF)
fontconvert_bdf_lower_files := $(call find, $(asset_fonts_input), *.bdf)
fontconvert_bdf_upper_files := $(call find, $(asset_fonts_input), *.BDF)
fontconvert_font_files := $(fontconvert_ttf_lower_files) \
$(fontconvert_ttf_upper_files) \
$(fontconvert_otf_lower_files) \
$(fontconvert_otf_upper_files) \
$(fontconvert_bdf_lower_files) \
$(fontconvert_bdf_upper_files)
source_files := $(call find, $(source_paths),*.cpp) $(framework_files) $(ADDITIONAL_SOURCES)
c_source_files := $(call find, $(source_paths),*.c)
object_files := $(source_files:$(touchgfx_path)/%.cpp=$(object_output_path)/touchgfx/%.o) $(c_source_files:$(touchgfx_path)/%.c=$(object_output_path)/touchgfx/%.o)
object_files := $(object_files:%.cpp=$(object_output_path)/%.o)
object_files := $(object_files:%.c=$(object_output_path)/%.o)
dependency_files := $(object_files:%.o=%.d)
textconvert_script_path := $(touchgfx_path)/framework/tools/textconvert
videoconvert_script_path := $(touchgfx_path)/framework/tools/videoconvert
text_database := $(asset_texts_input)/texts.xml
.PHONY: all clean assets generate_assets build_executable
all: generate_assets
generate_assets: assets
@$(MAKE) -f generated/simulator/gcc/Makefile -r -s $(MFLAGS) build_executable
build_executable: $(binary_output_path)/$(simulator_executable) post_build
$(binary_output_path)/$(simulator_executable): $(object_files) $(resource_file)
@echo Linking $(@)
@mkdir -p $(@D)
@mkdir -p $(object_output_path)
@$(file >$(build_root_path)/objects.tmp) $(foreach F,$(object_files),$(file >>$(build_root_path)/objects.tmp,$F))
@$(linker) \
$(linker_options) $(linker_options_local) \
$(patsubst %,-L%,$(library_path)) \
@$(build_root_path)/objects.tmp -o $@ $(resource_file) \
$(libstart) $(patsubst %,-l%,$(libraries)) $(libend) $(libextra)
@rm -f $(build_root_path)/objects.tmp
# Remove old images
@rm -f $(binary_output_path)/*.bin
@if ls $(asset_videos_output)/bin/*.bin >/dev/null 2>&1; then cp $(asset_videos_output)/bin/*.bin $(binary_output_path); fi
ifneq ($(UNAME), Linux)
@if [ ! -f $(binary_output_path)/SDL2.dll ]; then cp $(sdl_library_path)/SDL2.dll $(binary_output_path); fi
@if [ ! -f $(binary_output_path)/SDL2_image.dll ]; then cp $(sdl_library_path)/SDL2_image.dll $(binary_output_path); fi
@if [ ! -f $(binary_output_path)/libpng16-16.dll ]; then cp $(sdl_library_path)/libpng16-16.dll $(binary_output_path); fi
@if [ ! -f $(binary_output_path)/zlib1.dll ]; then cp $(sdl_library_path)/zlib1.dll $(binary_output_path); fi
@if [ ! -f $(binary_output_path)/libjpeg-8.dll ]; then cp $(jpeg_library_path)/libjpeg-8.dll $(binary_output_path); fi
endif
.PHONY: post_build
post_build:
@mkdir -p $(binary_output_path)
@if [ -f simulator/landscape.png ]; then cp simulator/landscape.png $(binary_output_path); else rm -f $(binary_output_path)/landscape.png; fi
@if [ -f simulator/portrait.png ]; then cp simulator/portrait.png $(binary_output_path); else rm -f $(binary_output_path)/portrait.png; fi
$(object_output_path)/touchgfx/%.o: $(touchgfx_path)/%.cpp config/gcc/app.mk
@echo Compiling $<
@mkdir -p $(@D)
@$(cpp_compiler) \
-MMD -MP $(cpp_compiler_options) $(cpp_compiler_options_local) $(user_cflags) \
$(patsubst %,-I%,$(include_paths)) \
-c $< -o $@
$(object_output_path)/%.o: %.cpp config/gcc/app.mk
@echo Compiling $<
@mkdir -p $(@D)
@$(cpp_compiler) \
-MMD -MP $(cpp_compiler_options) $(cpp_compiler_options_local) $(user_cflags) \
$(patsubst %,-I%,$(include_paths)) \
-c $< -o $@
$(object_output_path)/%.o: %.c config/gcc/app.mk
@echo Compiling $<
@mkdir -p $(@D)
@$(c_compiler) \
-MMD -MP $(c_compiler_options) $(c_compiler_options_local) $(user_cflags) \
$(patsubst %,-I%,$(include_paths)) \
-c $< -o $@
ifeq ($(MAKECMDGOALS),build_executable)
$(firstword $(dependency_files)): config/gcc/app.mk
@rm -rf $(object_output_path)
-include $(dependency_files)
endif
assets: images texts videos
.PHONY: images
images:
@$(imageconvert_executable) -r $(asset_images_input) -w $(asset_images_output)
.PHONY: texts
texts:
@ruby $(textconvert_script_path)/main.rb $(text_database) $(fontconvert_executable) $(asset_fonts_output) $(asset_texts_output) $(asset_fonts_input) .
.PHONY: videos
videos:
@ruby $(videoconvert_script_path)/videoconvert.rb $(asset_videos_input) $(asset_videos_output)
clean:
@echo Cleaning
@rm -rf $(build_root_path)
# Do not remove gui_generated
@rm -rf $(asset_images_output)
@rm -rf $(asset_fonts_output)
@rm -rf $(asset_texts_output)
@rm -rf $(asset_videos_output)
# Create directory to avoid error if it does not exist
@mkdir -p $(asset_root_path)
# Remove assets folder if it is empty (i.e. no gui_generated folder)
@rmdir --ignore-fail-on-non-empty $(asset_root_path)
@@ -0,0 +1,11 @@
/*********************************************************************************/
/********** THIS FILE IS GENERATED BY TOUCHGFX DESIGNER, DO NOT MODIFY ***********/
/*********************************************************************************/
#include <touchgfx/hal/HAL.hpp>
#include <touchgfx/lcd/LCD.hpp>
void setupSimulator(int argc, char** argv, touchgfx::HAL& hal);
void setupVideoDecoder(touchgfx::HAL& hal);
void setupVideo(const char* videoFilename, const uint8_t** videoBuffer, uint32_t videoLength);
touchgfx::LCD& setupLCD();
@@ -0,0 +1,356 @@
/*********************************************************************************/
/********** THIS FILE IS GENERATED BY TOUCHGFX DESIGNER, DO NOT MODIFY ***********/
/*********************************************************************************/
#ifndef TOUCHGFX_DIRECTFRAMEBUFFERVIDEOCONTROLLER_HPP
#define TOUCHGFX_DIRECTFRAMEBUFFERVIDEOCONTROLLER_HPP
#include <touchgfx/transforms/DisplayTransformation.hpp>
#include <touchgfx/widgets/VideoWidget.hpp>
#include <simulator/video/MJPEGDecoder.hpp>
#include <string.h>
/**
* Strategy:
* Decode directly into the framebuffer in draw.
* Tick will decide if we are going to a new frame.
*/
template <uint32_t no_streams, touchgfx::Bitmap::BitmapFormat output_format>
class DirectFrameBufferVideoController : public touchgfx::VideoController
{
public:
DirectFrameBufferVideoController()
: VideoController(), allowSkipFrames(true)
{
assert((no_streams > 0) && "Video: Number of streams zero!");
// Clear arrays
memset(mjpegDecoders, 0, sizeof(mjpegDecoders));
}
Handle registerVideoWidget(touchgfx::VideoWidget& widget)
{
// Find stream handle for Widget
Handle handle = getFreeHandle();
streams[handle].isActive = true;
//Set Widget buffer format and address
widget.setVideoBufferFormat(output_format, 0, 0);
widget.setVideoBuffer((uint8_t*)0);
return handle;
}
void unregisterVideoWidget(const Handle handle)
{
streams[handle].isActive = false;
}
void setFrameRate(const Handle handle, uint32_t ui_frames, uint32_t video_frames)
{
assert(handle < no_streams);
Stream& stream = streams[handle];
// Reset counters
stream.frameCount = 0;
stream.tickCount = 0;
// Save requested frame rate ratio
stream.frame_rate_ticks = ui_frames;
stream.frame_rate_video = video_frames;
}
void setVideoData(const Handle handle, const uint8_t* movie, const uint32_t length)
{
assert(handle < no_streams);
// Reset decoder to first frame
mjpegDecoders[handle]->setVideoData(movie, length);
// Lower flag to show the first frame
Stream& stream = streams[handle];
stream.frameNumber = mjpegDecoders[handle]->getCurrentFrameNumber();
stream.doDecodeNextFrame = false;
// Stop playing
setCommand(handle, PAUSE, 0);
}
void setVideoData(const Handle handle, touchgfx::VideoDataReader& reader)
{
assert(handle < no_streams);
// Reset decoder to first frame
mjpegDecoders[handle]->setVideoData(reader);
// Lower flag to show the first frame
Stream& stream = streams[handle];
stream.frameNumber = mjpegDecoders[handle]->getCurrentFrameNumber();
stream.doDecodeNextFrame = false;
// Stop playing
setCommand(handle, PAUSE, 0);
}
void setCommand(const Handle handle, Command cmd, uint32_t param)
{
assert(handle < no_streams);
Stream& stream = streams[handle];
switch (cmd)
{
case PLAY:
// Cannot Play without movie
if (mjpegDecoders[handle]->hasVideo())
{
stream.isPlaying = true;
stream.isShowingOneFrame = false;
// Reset counters
stream.frameCount = 0;
stream.tickCount = 0;
// If non-repeating video stopped at the end, kick to next frame
if (!stream.repeat)
{
MJPEGDecoder* const decoder = mjpegDecoders[handle];
if (decoder->getCurrentFrameNumber() == decoder->getNumberOfFrames())
{
decoder->gotoNextFrame();
}
}
}
break;
case PAUSE:
stream.isPlaying = false;
stream.isShowingOneFrame = false;
break;
case SEEK:
stream.seek_to_frame = param;
// Reset counters
stream.frameCount = 0;
stream.tickCount = 0;
break;
case SHOW:
stream.seek_to_frame = param;
stream.isShowingOneFrame = true;
stream.doDecodeNextFrame = true;
// Reset counters
stream.frameCount = 0;
stream.tickCount = 0;
break;
case STOP:
stream.isPlaying = false;
stream.isShowingOneFrame = false;
stream.seek_to_frame = 1;
// Reset counters
stream.frameCount = 0;
stream.tickCount = 0;
break;
case SET_REPEAT:
stream.repeat = (param > 0);
break;
}
}
bool updateFrame(const Handle handle, touchgfx::VideoWidget& widget)
{
assert(handle < no_streams);
Stream& stream = streams[handle];
bool hasMoreFrames = true;
if (stream.isPlaying || stream.isShowingOneFrame)
{
// Increase tickCount
stream.tickCount+=HAL::getInstance()->getLCDRefreshCount();
// Lower flag
stream.isShowingOneFrame = false;
if (stream.doDecodeNextFrame)
{
MJPEGDecoder* const decoder = mjpegDecoders[handle];
// Invalidate to get widget redrawn
widget.invalidate();
// Seek or increment video frame
if (stream.seek_to_frame > 0)
{
decoder->gotoFrame(stream.seek_to_frame);
hasMoreFrames = (stream.seek_to_frame < decoder->getNumberOfFrames());
stream.seek_to_frame = 0;
}
else
{
if (stream.skip_frames > 0)
{
decoder->gotoFrame(decoder->getCurrentFrameNumber() + stream.skip_frames);
stream.frameCount += stream.skip_frames;
stream.skip_frames = 0;
}
if (stream.repeat)
{
hasMoreFrames = decoder->gotoNextFrame();
}
else
{
if (decoder->getCurrentFrameNumber() < decoder->getNumberOfFrames())
{
hasMoreFrames = decoder->gotoNextFrame();
}
else
{
stream.isPlaying = false;
hasMoreFrames = false;
}
}
}
stream.frameNumber = decoder->getCurrentFrameNumber();
stream.frameCount++;
}
// Save decode status for next frame
stream.doDecodeNextFrame = decodeForNextTick(stream);
}
return hasMoreFrames;
}
void draw(const Handle handle, const touchgfx::Rect& invalidatedArea, const touchgfx::VideoWidget& widget)
{
assert(handle < no_streams);
if (output_format != Bitmap::RGB565 && output_format != Bitmap::RGB888 && output_format != Bitmap::ARGB8888)
{
return;
}
if (mjpegDecoders[handle]->hasVideo())
{
uint8_t* wbuf = (uint8_t*)touchgfx::HAL::getInstance()->lockFrameBuffer();
touchgfx::Rect absolute = widget.getAbsoluteRect();
DisplayTransformation::transformDisplayToFrameBuffer(absolute);
// Get frame buffer pointer to upper left of widget in framebuffer coordinates
switch(output_format)
{
case Bitmap::RGB565:
wbuf += (absolute.x + absolute.y * touchgfx::HAL::FRAME_BUFFER_WIDTH) * 2;
break;
case Bitmap::RGB888:
wbuf += (absolute.x + absolute.y * touchgfx::HAL::FRAME_BUFFER_WIDTH) * 3;
break;
case Bitmap::ARGB8888:
wbuf += (absolute.x + absolute.y * touchgfx::HAL::FRAME_BUFFER_WIDTH) * 4;
break;
default:
break;
}
// Decode relevant part of the frame to the framebuffer
mjpegDecoders[handle]->decodeFrame(invalidatedArea, wbuf, touchgfx::HAL::FRAME_BUFFER_WIDTH);
// Release frame buffer
touchgfx::HAL::getInstance()->unlockFrameBuffer();
}
}
void addDecoder(MJPEGDecoder& decoder, uint32_t index)
{
assert(index < no_streams);
mjpegDecoders[index] = &decoder;
}
uint32_t getCurrentFrameNumber(const Handle handle)
{
assert(handle < no_streams);
Stream& stream = streams[handle];
return stream.frameNumber;
}
void getVideoInformation(const Handle handle, touchgfx::VideoInformation* data)
{
assert(handle < no_streams);
mjpegDecoders[handle]->getVideoInfo(data);
}
bool getIsPlaying(const Handle handle)
{
assert(handle < no_streams);
Stream& stream = streams[handle];
return stream.isPlaying;
}
void setVideoFrameRateCompensation(const bool allow)
{
allowSkipFrames = allow;
}
private:
class Stream
{
public:
Stream()
: frameCount(0), frameNumber(0), tickCount(0),
frame_rate_video(0), frame_rate_ticks(0),
seek_to_frame(0),
isActive(false), isPlaying(false), isShowingOneFrame(false), repeat(true),
doDecodeNextFrame(false)
{
}
uint32_t frameCount; // Video frames decoded since play
uint32_t frameNumber; // Video frame showed number
uint32_t tickCount; // UI frames since play
uint32_t frame_rate_video; // Ratio of frames wanted counter
uint32_t frame_rate_ticks; // Ratio of frames wanted divider
uint32_t seek_to_frame; // Requested next frame number
uint32_t skip_frames; // Number of frames to skip to keep frame rate
bool isActive;
bool isPlaying;
bool isShowingOneFrame;
bool repeat;
bool doDecodeNextFrame; // High if we should go to next frame in next tick
};
MJPEGDecoder* mjpegDecoders[no_streams];
Stream streams[no_streams];
bool allowSkipFrames;
/**
* Return true, if new video frame should be decoded for the next tick (keep video decode framerate low)
*/
bool decodeForNextTick(Stream& stream)
{
// Running in UI thread
// Compare tickCount/frameNumber to frame_rate_ticks/frame_rate_video
if ((stream.tickCount * stream.frame_rate_video) > (stream.frame_rate_ticks * stream.frameCount))
{
if (allowSkipFrames)
{
stream.skip_frames = (stream.tickCount * stream.frame_rate_video - stream.frame_rate_ticks * stream.frameCount) / stream.frame_rate_ticks;
if (stream.skip_frames > 0)
{
stream.skip_frames--;
}
}
return true;
}
return false;
}
Handle getFreeHandle()
{
for (uint32_t i = 0; i < no_streams; i++)
{
if (streams[i].isActive == false)
{
return static_cast<VideoController::Handle>(i);
}
}
assert(0 && "Unable to find free video stream handle!");
return static_cast<VideoController::Handle>(0);
}
};
#endif // TOUCHGFX_DIRECTFRAMEBUFFERVIDEOCONTROLLER_HPP
@@ -0,0 +1,75 @@
/*********************************************************************************/
/********** THIS FILE IS GENERATED BY TOUCHGFX DESIGNER, DO NOT MODIFY ***********/
/*********************************************************************************/
#ifndef TOUCHGFX_MJPEGDECODER_HPP
#define TOUCHGFX_MJPEGDECODER_HPP
#include <touchgfx/hal/Types.hpp>
#include <touchgfx/hal/VideoController.hpp>
class MJPEGDecoder
{
public:
virtual ~MJPEGDecoder()
{
}
//Set video data for the decoder
virtual void setVideoData(const uint8_t* movie, const uint32_t length) = 0;
//Set video data for the decoder
virtual void setVideoData(touchgfx::VideoDataReader& reader) = 0;
/**
* Check if MJPEGDecoder has a video.
*
* @return Returns true if the MJPEGDecoder has a video.
*/
virtual bool hasVideo() = 0;
//Increment position to next frame and decode and convert to RGB
virtual bool decodeNextFrame(uint8_t* buffer, uint16_t width, uint16_t height, uint32_t stride) = 0;
//Increment position to next frame and decode. Used with decodeFrame.
virtual bool gotoNextFrame() = 0;
//Decode part of the current frame, framebuffer is locked, area is drawn relative to frameBuffer
virtual bool decodeFrame(const touchgfx::Rect& area, uint8_t* frameBuffer, uint32_t framebufferStride) = 0;
//Decode thumbnail, assumes buffer stride is width
virtual bool decodeThumbnail(uint32_t frameno, uint8_t* buffer, uint16_t width, uint16_t height) = 0;
//Set current frame number
virtual void gotoFrame(uint32_t frameno) = 0;
//Get current frame number
virtual uint32_t getCurrentFrameNumber() const = 0;
//Get number of frames in video
virtual uint32_t getNumberOfFrames() = 0;
//Read video information
virtual void getVideoInfo(touchgfx::VideoInformation* data) = 0;
enum AVIErrors
{
AVI_NO_ERROR,
AVI_NO_BUFFERS,
AVI_NO_FILE,
AVI_ERROR_NOT_RIFF,
AVI_ERROR_AVI_HEADER_NOT_FOUND,
AVI_ERROR_AVI_LIST_NOT_FOUND,
AVI_ERROR_AVI_HDRL_NOT_FOUND,
AVI_ERROR_AVI_AVIH_NOT_FOUND,
AVI_ERROR_AVI_HEADER_TO_SHORT, //not full header provided
AVI_ERROR_FILE_BUFFER_TO_SMALL,
AVI_ERROR_MOVI_NOT_FOUND,
AVI_ERROR_IDX1_NOT_FOUND,
AVI_ERROR_FRAMENO_TO_HIGH,
AVI_ERROR_EOF_REACHED
};
AVIErrors virtual getLastError() = 0;
};
#endif // TOUCHGFX_MJPEGDECODER_HPP
@@ -0,0 +1,73 @@
/*********************************************************************************/
/********** THIS FILE IS GENERATED BY TOUCHGFX DESIGNER, DO NOT MODIFY ***********/
/*********************************************************************************/
#ifndef TOUCHGFX_SOFTWAREMJPEGDECODER_HPP
#define TOUCHGFX_SOFTWAREMJPEGDECODER_HPP
#include <simulator/video/MJPEGDecoder.hpp>
class SoftwareMJPEGDecoder : public MJPEGDecoder
{
public:
SoftwareMJPEGDecoder(uint8_t* linebuffer);
virtual void setVideoData(const uint8_t* movie, const uint32_t length);
virtual void setVideoData(touchgfx::VideoDataReader& reader);
virtual bool hasVideo();
virtual bool decodeNextFrame(uint8_t* frameBuffer, uint16_t width, uint16_t height, uint32_t framebuffer_width);
virtual bool gotoNextFrame();
virtual bool decodeFrame(const touchgfx::Rect& area, uint8_t* frameBuffer, uint32_t framebuffer_width);
virtual bool decodeThumbnail(uint32_t frameno, uint8_t* buffer, uint16_t width, uint16_t height);
virtual void gotoFrame(uint32_t frameno);
virtual uint32_t getCurrentFrameNumber() const
{
return frameNumber;
}
virtual uint32_t getNumberOfFrames();
virtual void getVideoInfo(touchgfx::VideoInformation* data);
void setAVIFileBuffer(uint8_t* buffer, uint32_t size)
{
aviBuffer = buffer, aviBufferLength = size;
}
AVIErrors getLastError()
{
return lastError;
}
private:
void readVideoHeader();
void decodeMJPEGFrame(const uint8_t* const mjpgdata, const uint32_t length, uint8_t* buffer, uint16_t width, uint16_t height, uint32_t stride);
int compare(const uint32_t offset, const char* str, uint32_t num);
uint32_t getU32(const uint32_t offset);
uint32_t getU16(const uint32_t offset);
const uint8_t* readData(uint32_t offset, uint32_t length);
touchgfx::VideoInformation videoInfo;
uint32_t frameNumber;
uint32_t currentMovieOffset;
uint32_t indexOffset;
uint32_t firstFrameOffset;
uint32_t lastFrameEnd;
uint32_t movieLength;
const uint8_t* movieData;
touchgfx::VideoDataReader* reader;
uint8_t* lineBuffer;
uint8_t* aviBuffer;
uint32_t aviBufferLength;
uint32_t aviBufferStartOffset;
AVIErrors lastError;
};
#endif // TOUCHGFX_SOFTWAREMJPEGDECODER_HPP
@@ -0,0 +1,31 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ImportGroup Label="PropertySheets" />
<PropertyGroup Label="UserMacros" />
<PropertyGroup>
<DisableFastUpToDateCheck>true</DisableFastUpToDateCheck>
</PropertyGroup>
<PropertyGroup>
<LocalDebuggerEnvironment>PATH=$(TouchGFXReleasePath)\lib\sdl\win32</LocalDebuggerEnvironment>
</PropertyGroup>
<ItemDefinitionGroup>
<ClCompile>
<AdditionalIncludeDirectories>$(ApplicationRoot)\gui\include;$(ApplicationRoot)\generated\images\include;$(ApplicationRoot)\generated\bitmaps\include;$(ApplicationRoot)\generated\fonts\include;$(ApplicationRoot)\generated\texts\include;$(ApplicationRoot)\generated\videos\include;$(ApplicationRoot)\generated\gui_generated\include;$(ApplicationRoot)\generated\simulator\include;$(TouchGFXReleasePath)\framework\common\include;$(TouchGFXReleasePath)\framework\mvp\include;$(TouchGFXReleasePath)\framework\include\platform\hal\simulator\sdl\vendor\win32;$(TouchGFXReleasePath)\framework\platform\hal\simulator\sdl\3rdparty\sdl\include\win32;$(TouchGFXReleasePath)\3rdparty\libjpeg\include;$(TouchGFXReleasePath)\framework\include</AdditionalIncludeDirectories>
<AdditionalOptions>$(UseBPPOption)</AdditionalOptions>
<PreprocessorDefinitions>SIMULATOR;_ITERATOR_DEBUG_LEVEL=0</PreprocessorDefinitions>
<DisableSpecificWarnings>4355</DisableSpecificWarnings>
</ClCompile>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<Link>
<AdditionalDependencies>$(TouchGFXReleasePath)\lib\sdl\win32\SDL.lib;$(TouchGFXReleasePath)\lib\sdl\win32\SDLmain.lib;$(TouchGFXReleasePath)\lib\sdl\win32\SDL_image.lib;$(TouchGFXReleasePath)\3rdparty\libjpeg\lib\win32\libjpeg-8.lib;$(TouchGFXReleasePath)\lib\win\msvs\libtouchgfx_$(PlatformToolset)_debug.lib;user32.lib;shell32.lib</AdditionalDependencies>
<AdditionalOptions>/NODEFAULTLIB:msvcrt.lib</AdditionalOptions>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<Link>
<AdditionalDependencies>$(TouchGFXReleasePath)\lib\sdl\win32\SDL.lib;$(TouchGFXReleasePath)\lib\sdl\win32\SDLmain.lib;$(TouchGFXReleasePath)\lib\sdl\win32\SDL_image.lib;$(TouchGFXReleasePath)\lib\win\msvs\libtouchgfx_$(PlatformToolset).lib;user32.lib;shell32.lib</AdditionalDependencies>
</Link>
</ItemDefinitionGroup>
<ItemGroup />
</Project>
@@ -0,0 +1,86 @@
<?xml version="1.0" encoding="utf-8"?>
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<AllGeneratedFolders Include="$(ApplicationRoot)\generated\fonts;$(ApplicationRoot)\generated\images;$(ApplicationRoot)\generated\texts;$(ApplicationRoot)\generated\videos" />
</ItemGroup>
<ItemGroup>
<ImageConvertExecutable Include="$(TouchGFXReleasePath)\framework\tools\imageconvert\build\msvs\ImageConvert.exe" />
</ItemGroup>
<PropertyGroup>
<UseBPPOption>/DUSE_BPP=$(UseBPP)</UseBPPOption>
</PropertyGroup>
<PropertyGroup Condition="'$(LCD)'!=''">
<LCDOption>/D$(LCD)</LCDOption>
</PropertyGroup>
<PropertyGroup Condition="'$(LCD)'==''">
<LCDOption/>
</PropertyGroup>
<PropertyGroup>
<touchgfx_env Condition="'$(TouchGFXEnvPath)'==''">$(TouchGFXReleasePath)\..\env</touchgfx_env>
<touchgfx_env Condition="'$(TouchGFXEnvPath)'!=''">$(TouchGFXEnvPath)</touchgfx_env>
</PropertyGroup>
<Target Name="GenerateBitmapDatabaseFiles" BeforeTargets="ClCompile">
<Message Text="Converting images" />
<Exec Command="echo Converting images" />
<Exec Command="&quot;%(ImageConvertExecutable.FullPath)&quot; -r assets\images -w generated\images" WorkingDirectory="$(ApplicationRoot)" />
</Target>
<Target Name="GenerateTextsAndFontsFiles" BeforeTargets="ClCompile">
<Message Text="Converting texts and fonts" />
<Exec Command="echo Converting texts and fonts" />
<Exec Command="&quot;$(touchgfx_env)\MinGW\msys\1.0\Ruby30-x64\bin\ruby.exe&quot; &quot;$(TouchGFXReleasePath)\framework\tools\textconvert\main.rb&quot; &quot;$(ApplicationRoot)\assets\texts\texts.xml&quot; &quot;$(TouchGFXReleasePath)\framework\tools\fontconvert\build\win\fontconvert.out&quot; &quot;$(ApplicationRoot)\generated\fonts&quot; &quot;$(ApplicationRoot)\generated\texts&quot; &quot;$(ApplicationRoot)\assets\fonts&quot; &quot;$(ApplicationRoot)&quot;" />
</Target>
<Target Name="GenerateVideos" BeforeTargets="ClCompile">
<Message Text="Converting videos" />
<Exec Command="echo Converting videos" />
<Exec Command="&quot;$(touchgfx_env)\MinGW\msys\1.0\Ruby30-x64\bin\ruby.exe&quot; &quot;$(TouchGFXReleasePath)\framework\tools\videoconvert\videoconvert.rb&quot; &quot;$(ApplicationRoot)&quot; assets\videos generated\videos" />
</Target>
<Target Name="CompileAllGeneratedFiles" BeforeTargets="ClCompile">
<ItemGroup>
<AllGeneratedCompileFiles Include="$(ApplicationRoot)\generated\fonts\**\*.cpp;$(ApplicationRoot)\generated\images\**\*.cpp;$(ApplicationRoot)\generated\texts\**\*.cpp;$(ApplicationRoot)\generated\videos\**\*.cpp" />
</ItemGroup>
<Message Text="Creating compile items for all generated source files: @(AllGeneratedCompileFiles)" />
<Exec Command="echo Creating compile items for all generated source files: @(AllGeneratedCompileFiles)" />
<CreateItem Include="@(AllGeneratedCompileFiles)">
<Output TaskParameter="Include" ItemName="ClCompile" />
</CreateItem>
</Target>
<Target Name="CleanupGeneratedFiles" AfterTargets="Clean">
<Message Text="Clean-up generated files: @(AllGeneratedFolders)" />
<Exec Command="echo Clean-up generated files: @(AllGeneratedFolders)" />
<RemoveDir Directories="@(AllGeneratedFolders)" />
<ItemGroup>
<PostBuildFiles Include="$(OutDir)\*.dll" />
<PostBuildFiles Include="$(OutDir)\*.bin" />
<PostBuildFiles Include="$(OutDir)\*.png" />
</ItemGroup>
<Delete Files="@(PostBuildFiles)" />
</Target>
<Target Name="PostBuild" AfterTargets="ClCompile">
<ItemGroup>
<OldVideoFiles Include="$(OutDir)\*.bin" />
<NewFiles Include="$(ApplicationRoot)\generated\videos\bin\*.bin" />
<NewFiles Include="$(TouchGFXReleasePath)\lib\sdl2\win32\SDL2.dll" />
<NewFiles Include="$(TouchGFXReleasePath)\lib\sdl2\win32\SDL2_image.dll" />
<NewFiles Include="$(TouchGFXReleasePath)\lib\sdl2\win32\libpng16-16.dll" />
<NewFiles Include="$(TouchGFXReleasePath)\lib\sdl2\win32\zlib1.dll" />
<NewFiles Include="$(TouchGFXReleasePath)\3rdparty\libjpeg\lib\win32\libjpeg-8.dll" />
<NewFiles Include="$(ApplicationRoot)\simulator\landscape.png" />
<NewFiles Include="$(ApplicationRoot)\simulator\portrait.png" />
</ItemGroup>
<Delete Files="@(OldVideoFiles)" />
<Copy SourceFiles="@(NewFiles)"
DestinationFolder="$(OutDir)"
SkipUnchangedFiles="true"
Condition="Exists('%(FullPath)')" />
</Target>
</Project>
@@ -0,0 +1,29 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ImportGroup Label="PropertySheets" />
<PropertyGroup Label="UserMacros" />
<PropertyGroup>
<DisableFastUpToDateCheck>true</DisableFastUpToDateCheck>
</PropertyGroup>
<PropertyGroup>
<LocalDebuggerEnvironment>PATH=$(TouchGFXReleasePath)\lib\sdl2\win32</LocalDebuggerEnvironment>
</PropertyGroup>
<ItemDefinitionGroup>
<ClCompile>
<AdditionalIncludeDirectories>$(ApplicationRoot)\gui\include;$(ApplicationRoot)\generated\images\include;$(ApplicationRoot)\generated\bitmaps\include;$(ApplicationRoot)\generated\fonts\include;$(ApplicationRoot)\generated\texts\include;$(ApplicationRoot)\generated\videos\include;$(ApplicationRoot)\generated\gui_generated\include;$(ApplicationRoot)\generated\simulator\include;$(TouchGFXReleasePath)\framework\common\include;$(TouchGFXReleasePath)\framework\mvp\include;$(TouchGFXReleasePath)\framework\include\platform\hal\simulator\sdl2\vendor;$(TouchGFXReleasePath)\3rdparty\libjpeg\include;$(TouchGFXReleasePath)\framework\include</AdditionalIncludeDirectories>
<AdditionalOptions>$(UseBPPOption)</AdditionalOptions>
<PreprocessorDefinitions>SIMULATOR;_ITERATOR_DEBUG_LEVEL=0</PreprocessorDefinitions>
<DisableSpecificWarnings>4355</DisableSpecificWarnings>
</ClCompile>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<Link>
<AdditionalDependencies>$(TouchGFXReleasePath)\lib\sdl2\win32\SDL2.lib;$(TouchGFXReleasePath)\lib\sdl2\win32\SDL2_image.lib;$(TouchGFXReleasePath)\3rdparty\libjpeg\lib\win32\libjpeg-8.lib;$(TouchGFXReleasePath)\lib\win\msvs\libtouchgfx_$(PlatformToolset)_debug.lib;user32.lib;shell32.lib</AdditionalDependencies> <AdditionalOptions>/NODEFAULTLIB:msvcrt.lib</AdditionalOptions>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<Link>
<AdditionalDependencies>$(TouchGFXReleasePath)\lib\sdl2\win32\SDL2.lib;$(TouchGFXReleasePath)\lib\sdl2\win32\SDL2_image.lib;$(TouchGFXReleasePath)\3rdparty\libjpeg\lib\win32\libjpeg-8.lib;$(TouchGFXReleasePath)\lib\win\msvs\libtouchgfx_$(PlatformToolset).lib;user32.lib;shell32.lib</AdditionalDependencies> </Link>
</ItemDefinitionGroup>
<ItemGroup />
</Project>
@@ -0,0 +1,78 @@
/*********************************************************************************/
/********** THIS FILE IS GENERATED BY TOUCHGFX DESIGNER, DO NOT MODIFY ***********/
/*********************************************************************************/
#include <simulator/mainBase.hpp>
#include <platform/hal/simulator/sdl2/HALSDL2.hpp>
#include <common/TouchGFXInit.hpp>
#include <platform/driver/lcd/LCD16bpp.hpp>
#include <simulator/video/DirectFrameBufferVideoController.hpp>
#include <simulator/video/SoftwareMJPEGDecoder.hpp>
#include <videos/VideoDatabase.hpp>
#include <touchgfx/widgets/canvas/CWRVectorRenderer.hpp>
#include <touchgfx/widgets/canvas/PainterRGB565.hpp>
#include <touchgfx/canvas_widget_renderer/CanvasWidgetRenderer.hpp>
#include <touchgfx/VectorFontRendererImpl.hpp>
#include <string.h>
#ifdef __GNUC__
#define fopen_s(pFile, filename, mode) (((*(pFile)) = fopen((filename), (mode))) == NULL)
#endif
touchgfx::LCD16bpp lcd;
uint32_t lineBuffer[10000];
SoftwareMJPEGDecoder *mjpegDecoders[1];
DirectFrameBufferVideoController<1, Bitmap::RGB565> controller;
VideoController& VideoController::getInstance()
{
return controller;
}
void setupVideoDecoder(touchgfx::HAL& hal)
{
for(int i = 0; i < 1; i++)
{
mjpegDecoders[i] = new SoftwareMJPEGDecoder((uint8_t*)lineBuffer);
controller.addDecoder(*mjpegDecoders[i], i);
}
}
void setupVideo(const char* videoFileName, const uint8_t** videoBuffer, uint32_t videoLength)
{
FILE *file = 0;
if (!fopen_s(&file, videoFileName, "rb"))
{
assert(file && "Unable to setupVideo.");
}
*videoBuffer = (uint8_t*) malloc(videoLength + 1);
fread(const_cast<uint8_t*>(*videoBuffer), 1, videoLength, file);
fclose(file);
}
namespace touchgfx
{
VectorRenderer* VectorRenderer::getInstance()
{
static CWRVectorRendererRGB565 renderer;
return &renderer;
}
}
VectorFontRendererImpl vectorFontRendererImpl;
void setupSimulator(int argc, char** argv, touchgfx::HAL& hal)
{
// Simulate hardware running at 60Hz generating a vsync every 16.6667 ms
static_cast<touchgfx::HALSDL2&>(hal).setVsyncInterval(16.6667f);
static_cast<touchgfx::HALSDL2&>(hal).setWindowTitle("CelloEffects");
// Initialize SDL
bool sdl_init_result = static_cast<touchgfx::HALSDL2&>(hal).sdl_init(argc, argv);
assert(sdl_init_result && "Error during SDL initialization");
HAL::lcd().setVectorFontRenderer(&vectorFontRendererImpl);
}
touchgfx::LCD& setupLCD()
{
return lcd;
}
@@ -0,0 +1,619 @@
/*********************************************************************************/
/********** THIS FILE IS GENERATED BY TOUCHGFX DESIGNER, DO NOT MODIFY ***********/
/*********************************************************************************/
#include <touchgfx/hal/HAL.hpp>
#include <jinclude.h>
#include <jpeglib.h>
#include <string.h>
#include <simulator/video/SoftwareMJPEGDecoder.hpp>
#define VIDEO_DECODE_FORMAT 16
namespace
{
struct JPEG_RGB
{
uint8_t B;
uint8_t G;
uint8_t R;
};
} // namespace
SoftwareMJPEGDecoder::SoftwareMJPEGDecoder(uint8_t* buffer)
: frameNumber(0), currentMovieOffset(0), indexOffset(0), firstFrameOffset(0), lastFrameEnd(0), movieLength(0), movieData(0),
reader(0), lineBuffer(buffer), aviBuffer(0), aviBufferLength(0), aviBufferStartOffset(0), lastError(AVI_NO_ERROR)
{
//clear video info
videoInfo.ms_between_frames = 0;
videoInfo.number_of_frames = 0;
videoInfo.frame_width = 0;
videoInfo.frame_height = 0;
}
int SoftwareMJPEGDecoder::compare(const uint32_t offset, const char* str, uint32_t num)
{
const char* src;
if (reader != 0)
{
// Assuming data is in buffer!
src = reinterpret_cast<const char*>(aviBuffer + (offset - aviBufferStartOffset));
}
else
{
src = (const char*)movieData + offset;
}
return strncmp(src, str, num);
}
inline uint32_t SoftwareMJPEGDecoder::getU32(const uint32_t offset)
{
if (reader != 0)
{
// Assuming data is in buffer!
const uint32_t index = offset - aviBufferStartOffset;
return aviBuffer[index + 0] | (aviBuffer[index + 1] << 8) | (aviBuffer[index + 2] << 16) | (aviBuffer[index + 3] << 24);
}
else
{
const uint8_t* const d = movieData + offset;
return d[0] | (d[1] << 8) | (d[2] << 16) | (d[3] << 24);
}
}
inline uint32_t SoftwareMJPEGDecoder::getU16(const uint32_t offset)
{
if (reader != 0)
{
// Assuming data is in buffer!
const uint32_t index = offset - aviBufferStartOffset;
return aviBuffer[index + 0] | (aviBuffer[index + 1] << 8);
}
else
{
const uint8_t* const d = movieData + offset;
return d[0] | (d[1] << 8);
}
}
const uint8_t* SoftwareMJPEGDecoder::readData(uint32_t offset, uint32_t length)
{
if (reader != 0)
{
if (length > aviBufferLength)
{
lastError = AVI_ERROR_FILE_BUFFER_TO_SMALL;
assert(!"Buffer to small");
}
reader->seek(offset);
if (!reader->readData(aviBuffer, length))
{
lastError = AVI_ERROR_EOF_REACHED;
}
aviBufferStartOffset = offset;
return aviBuffer;
}
return movieData + offset;
}
bool SoftwareMJPEGDecoder::decodeNextFrame(uint8_t* buffer, uint16_t buffer_width, uint16_t buffer_height, uint32_t buffer_stride)
{
assert((frameNumber > 0) && "SoftwareMJPEGDecoder decoding without frame data!");
//find next frame and decode it
readData(currentMovieOffset, 8);
uint32_t streamNo = getU16(currentMovieOffset);
uint32_t chunkType = getU16(currentMovieOffset + 2);
uint32_t chunkSize = getU32(currentMovieOffset + 4);
const uint16_t STREAM0 = 0x3030;
const uint16_t TYPEDC = 0x6364;
bool isCurrentFrameLast;
//play frame if we have it all
if (currentMovieOffset + 8 + chunkSize < movieLength)
{
if (streamNo == STREAM0 && chunkType == TYPEDC && chunkSize > 0)
{
currentMovieOffset += 8;
//decode frame
const uint8_t* chunk = readData(currentMovieOffset, chunkSize);
decodeMJPEGFrame(chunk, chunkSize, buffer, buffer_width, buffer_height, buffer_stride);
frameNumber++;
}
isCurrentFrameLast = false;
// Advance to next frame
currentMovieOffset += chunkSize;
if (chunkSize == 0) // Skip empty frame
{
currentMovieOffset += 8;
}
currentMovieOffset = (currentMovieOffset + 1) & 0xFFFFFFFE; //pad to next word
if (currentMovieOffset == lastFrameEnd)
{
frameNumber = 1;
currentMovieOffset = firstFrameOffset; //start over
isCurrentFrameLast = true;
}
}
else
{
frameNumber = 1;
currentMovieOffset = firstFrameOffset; //start over
isCurrentFrameLast = true;
}
return !isCurrentFrameLast;
}
bool SoftwareMJPEGDecoder::gotoNextFrame()
{
assert((frameNumber > 0) && "SoftwareMJPEGDecoder decoding without frame data!");
readData(currentMovieOffset, 8);
uint32_t chunkSize = getU32(currentMovieOffset + 4);
//increment until next video frame
while (currentMovieOffset + 8 + chunkSize < movieLength)
{
//increment one frame
currentMovieOffset += chunkSize + 8;
currentMovieOffset = (currentMovieOffset + 1) & 0xFFFFFFFE; //pad to next word
frameNumber++;
//next chunk
readData(currentMovieOffset, 8);
//check it is a video frame
uint32_t streamNo = getU16(currentMovieOffset);
uint32_t chunkType = getU16(currentMovieOffset + 2);
chunkSize = getU32(currentMovieOffset + 4);
const uint16_t STREAM0 = 0x3030;
const uint16_t TYPEDC = 0x6364;
if (streamNo == STREAM0 && chunkType == TYPEDC && chunkSize > 0)
{
// Found next frame
return true;
}
}
//skip back to first frame
frameNumber = 1;
currentMovieOffset = firstFrameOffset; //start over
return false;
}
void SoftwareMJPEGDecoder::setVideoData(const uint8_t* movie, const uint32_t length)
{
movieData = movie;
movieLength = length;
reader = 0; //not using reader
readVideoHeader();
}
void SoftwareMJPEGDecoder::setVideoData(touchgfx::VideoDataReader& reader)
{
this->reader = &reader;
movieData = 0;
movieLength = reader.getDataLength();
readVideoHeader();
}
bool SoftwareMJPEGDecoder::hasVideo()
{
return (reader != 0) || (movieData != 0);
}
void SoftwareMJPEGDecoder::readVideoHeader()
{
// Start from the start
currentMovieOffset = 0;
lastError = AVI_NO_ERROR;
// Make header available in buffer
readData(0, 72);
// Decode the movie header to find first frame
// Must be RIFF file
if (compare(currentMovieOffset, "RIFF", 4))
{
lastError = AVI_ERROR_NOT_RIFF;
assert(!"RIFF header not found");
}
//skip fourcc and length
currentMovieOffset += 8;
if (compare(currentMovieOffset, "AVI ", 4))
{
lastError = AVI_ERROR_AVI_HEADER_NOT_FOUND;
assert(!"AVI header not found");
}
currentMovieOffset += 4;
if (compare(currentMovieOffset, "LIST", 4))
{
lastError = AVI_ERROR_AVI_LIST_NOT_FOUND;
assert(!"AVI LIST not found");
}
//save AVI List info
const uint32_t aviListSize = getU32(currentMovieOffset + 4);
const uint32_t aviListOffset = currentMovieOffset;
assert(aviListSize);
//look into header to find frame rate
bool foundFrame = true;
uint32_t offset = currentMovieOffset + 8;
if (compare(offset, "hdrl", 4))
{
lastError = AVI_ERROR_AVI_HDRL_NOT_FOUND;
foundFrame = false;
}
offset += 4;
if (compare(offset, "avih", 4))
{
lastError = AVI_ERROR_AVI_AVIH_NOT_FOUND;
foundFrame = false;
}
if (foundFrame)
{
offset += 8; //skip fourcc and cb in AVIMAINHEADER
videoInfo.ms_between_frames = getU32(offset) / 1000;
videoInfo.number_of_frames = getU32(offset + 16);
videoInfo.frame_width = getU32(offset + 32);
videoInfo.frame_height = getU32(offset + 36);
}
//skip rest of AVI header, start from end of AVI List
//look for list with 'movi' header
uint32_t listOffset = aviListOffset + aviListSize + 8;
readData(listOffset, 12);
while (compare(listOffset + 8, "movi", 4) && (lastError == AVI_NO_ERROR) && listOffset < movieLength)
{
const uint32_t listSize = getU32(listOffset + 4) + 8;
listOffset += listSize;
readData(listOffset, 12);
}
if (lastError != AVI_NO_ERROR)
{
lastError = AVI_ERROR_MOVI_NOT_FOUND;
return;
}
//save first frame and end of last frame
currentMovieOffset = listOffset + 8 + 4; //skip LIST and 'movi'
lastFrameEnd = listOffset + 8 + getU32(listOffset + 4);
//find idx
const uint32_t listSize = getU32(listOffset + 4) + 8;
listOffset += listSize;
readData(listOffset, 4);
if (!compare(listOffset, "idx1", 4))
{
indexOffset = listOffset;
}
else
{
lastError = AVI_ERROR_IDX1_NOT_FOUND;
return;
}
//start on first frame
frameNumber = 1; //next frame number is 1
firstFrameOffset = currentMovieOffset;
}
#if VIDEO_DECODE_FORMAT == 16 || VIDEO_DECODE_FORMAT == 24 || VIDEO_DECODE_FORMAT == 32
void SoftwareMJPEGDecoder::decodeMJPEGFrame(const uint8_t* const mjpgdata, const uint32_t length, uint8_t* outputBuffer, uint16_t bufferWidth, uint16_t bufferHeight, uint32_t bufferStride)
{
if (length == 0)
{
return;
}
if (outputBuffer && lineBuffer) //only decode if buffers are assigned.
{
/* This struct contains the JPEG decompression parameters */
struct jpeg_decompress_struct cinfo;
/* This struct represents a JPEG error handler */
struct jpeg_error_mgr jerr;
JSAMPROW lines[2] = { lineBuffer, 0 }; /* Output row buffer */
/* Step 1: allocate and initialize JPEG decompression object */
cinfo.err = jpeg_std_error(&jerr);
/* Initialize the JPEG decompression object */
jpeg_create_decompress(&cinfo);
//jpeg_stdio_src (&cinfo, file);
jpeg_mem_src(&cinfo, const_cast<uint8_t*>(mjpgdata), length);
/* Step 3: read image parameters with jpeg_read_header() */
jpeg_read_header(&cinfo, TRUE);
/* Step 4: set parameters for decompression */
cinfo.dct_method = JDCT_FLOAT;
/* Step 5: start decompressor */
jpeg_start_decompress(&cinfo);
//restrict to minimum of movie and output buffer size
const uint32_t width = MIN(bufferWidth, cinfo.image_width);
const uint32_t height = MIN(bufferHeight, cinfo.output_height);
#if VIDEO_DECODE_FORMAT == 16
uint16_t* lineptr = reinterpret_cast<uint16_t*>(outputBuffer);
#elif VIDEO_DECODE_FORMAT == 24
uint8_t* lineptr = outputBuffer;
#else
uint32_t* lineptr = reinterpret_cast<uint32_t*>(outputBuffer);
#endif
while (cinfo.output_scanline < height)
{
(void)jpeg_read_scanlines(&cinfo, lines, 1);
#if VIDEO_DECODE_FORMAT == 16
JPEG_RGB* RGB_matrix = (JPEG_RGB*)lineBuffer;
JPEG_RGB* const RGB_end = RGB_matrix + width;
while (RGB_matrix < RGB_end)
{
const uint16_t pix = ((RGB_matrix->R & 0xF8) << 8) | ((RGB_matrix->G & 0xFC) << 3) | ((RGB_matrix->B & 0xF8) >> 3);
*lineptr++ = pix;
RGB_matrix++;
}
lineptr = (uint16_t*)((uint8_t*)lineptr + bufferStride - width * 2); //move to next line
#elif VIDEO_DECODE_FORMAT == 24
memcpy(lineptr, lineBuffer, width * 3);
lineptr += bufferStride; //move to next line
#else
JPEG_RGB* RGB_matrix = (JPEG_RGB*)lineBuffer;
JPEG_RGB* const RGB_end = RGB_matrix + width;
while (RGB_matrix < RGB_end)
{
const uint32_t pix = (0xFF << 24) | (RGB_matrix->R << 16) | (RGB_matrix->G << 8) | (RGB_matrix->B);
*lineptr++ = pix;
RGB_matrix++;
}
lineptr = (uint32_t*)((uint8_t*)lineptr + bufferStride - width * 4); //move to next line
#endif
}
#ifdef SIMULATOR
cinfo.output_scanline = cinfo.output_height;
#endif
/* Step 6: Finish decompression */
jpeg_finish_decompress(&cinfo);
/* Step 7: Release JPEG decompression object */
jpeg_destroy_decompress(&cinfo);
}
}
bool SoftwareMJPEGDecoder::decodeFrame(const touchgfx::Rect& area, uint8_t* frameBuffer, uint32_t framebuffer_width)
{
// Assuming that chunk is available and streamNo and chunkType is correct.
// Check by gotoNextFrame
readData(currentMovieOffset, 8);
const uint32_t length = getU32(currentMovieOffset + 4);
// Ensure whole frame is read
const uint8_t* mjpgdata = readData(currentMovieOffset + 8, length);
assert(lineBuffer && "LineBuffer must be assigned prior to decoding directly to framebuffer");
/* This struct contains the JPEG decompression parameters */
struct jpeg_decompress_struct cinfo;
/* This struct represents a JPEG error handler */
struct jpeg_error_mgr jerr;
JSAMPROW lines[2] = { lineBuffer, 0 }; /* Output row buffer */
/* Step 1: allocate and initialize JPEG decompression object */
cinfo.err = jpeg_std_error(&jerr);
/* Initialize the JPEG decompression object */
jpeg_create_decompress(&cinfo);
//jpeg_stdio_src (&cinfo, file);
jpeg_mem_src(&cinfo, const_cast<uint8_t*>(mjpgdata), length);
/* Step 3: read image parameters with jpeg_read_header() */
jpeg_read_header(&cinfo, TRUE);
/* Step 4: set parameters for decompression */
cinfo.dct_method = JDCT_FLOAT;
/* Step 5: start decompressor */
jpeg_start_decompress(&cinfo);
//restrict to minimum of movie and output buffer size
const uint32_t startY = area.y;
//scan down to startY
while (cinfo.output_scanline < startY)
{
(void)jpeg_read_scanlines(&cinfo, lines, 1);
}
const uint32_t startX = area.x;
const uint32_t endX = MIN((uint32_t)area.right(), cinfo.image_width);
#if VIDEO_DECODE_FORMAT == 16
uint16_t* lineptr = reinterpret_cast<uint16_t*>(frameBuffer);
if (touchgfx::HAL::DISPLAY_ROTATION == touchgfx::rotate0)
{
lineptr += framebuffer_width * startY;
}
else
{
lineptr += framebuffer_width * (cinfo.image_width - 1);
lineptr += startY;
}
#elif VIDEO_DECODE_FORMAT == 24
uint8_t* lineptr = frameBuffer;
if (touchgfx::HAL::DISPLAY_ROTATION == touchgfx::rotate0)
{
lineptr += framebuffer_width * 3 * startY;
}
else
{
lineptr += framebuffer_width * (cinfo.image_width - 1) * 3;
lineptr += startY * 3;
}
#else
uint32_t* lineptr = reinterpret_cast<uint32_t*>(frameBuffer);
if (touchgfx::HAL::DISPLAY_ROTATION == touchgfx::rotate0)
{
lineptr += framebuffer_width * startY;
}
else
{
lineptr += framebuffer_width * (cinfo.image_width - 1);
lineptr += startY;
}
#endif
const uint32_t endY = MIN((uint32_t)area.bottom(), cinfo.output_height);
//scan relevant part
while (cinfo.output_scanline < endY)
{
(void)jpeg_read_scanlines(&cinfo, lines, 1);
#if VIDEO_DECODE_FORMAT == 16
JPEG_RGB* RGB_matrix = (JPEG_RGB*)lineBuffer;
//loop row RGB888->RGB565 for required line part
for (uint32_t counter = startX; counter < endX; counter++)
{
const uint16_t pix = ((RGB_matrix[counter].R & 0xF8) << 8) | ((RGB_matrix[counter].G & 0xFC) << 3) | ((RGB_matrix[counter].B & 0xF8) >> 3);
if (touchgfx::HAL::DISPLAY_ROTATION == touchgfx::rotate0)
{
*(lineptr + counter) = pix;
}
else
{
*(lineptr - counter * framebuffer_width) = pix;
}
}
if (touchgfx::HAL::DISPLAY_ROTATION == touchgfx::rotate0)
{
lineptr += framebuffer_width; //move to next line
}
else
{
lineptr++; //move to next line
}
#elif VIDEO_DECODE_FORMAT == 24
if (touchgfx::HAL::DISPLAY_ROTATION == touchgfx::rotate0)
{
memcpy(lineptr + startX * 3, lineBuffer + startX * 3, (endX - startX) * 3);
lineptr += framebuffer_width * 3; //move to next line
}
else
{
JPEG_RGB* RGB_matrix = (JPEG_RGB*)lineBuffer;
//loop row RGB888->RGB888 for required line part
for (uint32_t counter = startX; counter < endX; counter++)
{
*(lineptr - counter * framebuffer_width * 3) = RGB_matrix[counter].B;
*(lineptr - counter * framebuffer_width * 3 + 1) = RGB_matrix[counter].G;
*(lineptr - counter * framebuffer_width * 3 + 2) = RGB_matrix[counter].R;
}
lineptr += 3; //move to next line
}
#else
JPEG_RGB* RGB_matrix = (JPEG_RGB*)lineBuffer;
//loop row RGB888->ARGB8888 for required line part
for (uint32_t counter = startX; counter < endX; counter++)
{
const uint32_t pix = (0xFF << 24) | (RGB_matrix[counter].R << 16) | (RGB_matrix[counter].G << 8) | RGB_matrix[counter].B;
if (touchgfx::HAL::DISPLAY_ROTATION == touchgfx::rotate0)
{
*(lineptr + counter) = pix;
}
else
{
*(lineptr - counter * framebuffer_width) = pix;
}
}
if (touchgfx::HAL::DISPLAY_ROTATION == touchgfx::rotate0)
{
lineptr += framebuffer_width; //move to next line
}
else
{
lineptr++; //move to next line
}
#endif
}
#ifdef SIMULATOR
cinfo.output_scanline = cinfo.output_height;
#endif
/* Step 6: Finish decompression */
jpeg_finish_decompress(&cinfo);
/* Step 7: Release JPEG decompression object */
jpeg_destroy_decompress(&cinfo);
return true;
}
#else
void SoftwareMJPEGDecoder::decodeMJPEGFrame(const uint8_t* const, const uint32_t, uint8_t*, uint16_t, uint16_t, uint32_t)
{
}
bool SoftwareMJPEGDecoder::decodeFrame(const touchgfx::Rect&, uint8_t*, uint32_t)
{
return true;
}
#endif // VIDEO_DECODE_FORMAT == 16 || VIDEO_DECODE_FORMAT == 24 || VIDEO_DECODE_FORMAT == 32
bool SoftwareMJPEGDecoder::decodeThumbnail(uint32_t frameno, uint8_t* buffer, uint16_t width, uint16_t height)
{
assert(0);
return false;
}
void SoftwareMJPEGDecoder::gotoFrame(uint32_t frameNumber)
{
if (frameNumber == 0)
{
frameNumber = 1;
}
if (frameNumber > getNumberOfFrames())
{
frameNumber = getNumberOfFrames();
}
uint32_t offset = indexOffset + 8 + (frameNumber - 1) * 16;
readData(offset, 16);
currentMovieOffset = getU32(offset + 8) + firstFrameOffset - 4;
this->frameNumber = frameNumber;
}
uint32_t SoftwareMJPEGDecoder::getNumberOfFrames()
{
return videoInfo.number_of_frames;
}
void SoftwareMJPEGDecoder::getVideoInfo(touchgfx::VideoInformation* data)
{
*data = videoInfo;
// For unsupported decode formats, set video dimension to 0x0, to avoid drawing anything
#if VIDEO_DECODE_FORMAT == 16 || VIDEO_DECODE_FORMAT == 24 || VIDEO_DECODE_FORMAT == 32
#else
data->frame_width = 0;
data->frame_height = 0;
#endif
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 375 KiB

@@ -0,0 +1 @@
id ICON touchgfx.ico
Binary file not shown.
@@ -0,0 +1 @@
{"remap":"yes","language":"GB","language_index":0,"copy_translations":"no","indices":[["11","T_PEDALBOARD"],["33","T_EQUALIZER"],["62","T_OCTAVER"],["70","T_OSCILLO"],["43","T_OVERDRIVE"],["22","T_SATURATION"],["118","T_ECHO"],["92","T_REVERB"],["85","T_BACK"],["30","T_ON"],["152","T_OFF"],["47","T_DRIVE"],["123","T_TONE"],["112","T_LEVEL"],["106","T_DELAY"],["53","T_FEEDBACK"],["148","T_MIX"],["99","T_ROOMSIZE"],["78","T_DAMPING"],["174","T_EQ_31"],["180","T_EQ_62"],["132","T_EQ_125"],["140","T_EQ_250"],["144","T_EQ_500"],["168","T_EQ_1K"],["171","T_EQ_2K"],["177","T_EQ_4K"],["183","T_EQ_8K"],["136","T_EQ_16K"],["165","T_OCT_M2"],["162","T_OCT_M1"],["130","T_OCT_0"],["156","T_OCT_P1"],["159","T_OCT_P2"],["128","T___SINGLEUSE_U5V0"],["0","T_TEXTAREAMAX"],["186","T___SINGLEUSE_2C9Q"]],"generate_binary_translations":"no"}
Loaded 100 of 2491 files, more files were not shown because too many files have changed in this diff. Show more