diff --git a/source/font.cpp b/source/font.cpp deleted file mode 100644 index 20f7ae7..0000000 --- a/source/font.cpp +++ /dev/null @@ -1,9 +0,0 @@ -#include <3ds.h> -#include "font.h" - -font_s fontDefault = { - font1Data, - font1Desc, - 16, - { 0xFF, 0xFF, 0xFF } -}; diff --git a/source/font.h b/source/font.h deleted file mode 100644 index b0dc182..0000000 --- a/source/font.h +++ /dev/null @@ -1,34 +0,0 @@ -#pragma once - -struct Glyph { - // Glyph representation - char c; - - // x and y origin of the character. - int x, y; - - // width and height in pixels. - int w, h; - - // x and y offset - int xo, yo; - - // Pixels after this character to begin - // drawing the next one. - int xa; - - // Glyph data. - u8* data; -}; - -struct font_s { - u8* data; - Glyph* desc; - u8 height; - u8 color[3]; -}; - -extern u8 font1Data[]; -extern Glyph font1Desc[]; - -extern font_s fontDefault; diff --git a/source/font1.cpp b/source/font1.cpp deleted file mode 100644 index b589d0d..0000000 --- a/source/font1.cpp +++ /dev/null @@ -1,261 +0,0 @@ -#include <3ds.h> -#include "font.h" -Glyph font1Desc[] = { - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {' ', 240, 8, 5, 3, -2, 13, 3, &font1Data[0]}, - {'!', 63, 0, 5, 11, -1, 2, 3, &font1Data[15]}, - {'"', 137, 9, 6, 5, -1, 2, 4, &font1Data[70]}, - {'#', 30, 53, 9, 10, -1, 2, 7, &font1Data[100]}, - {'$', 246, 0, 8, 13, -1, 1, 6, &font1Data[190]}, - {'%', 192, 15, 12, 11, -1, 2, 10, &font1Data[294]}, - {'&', 48, 29, 11, 11, -1, 2, 8, &font1Data[426]}, - {'\'', 144, 9, 5, 5, -1, 2, 3, &font1Data[547]}, - {'(', 78, 15, 6, 13, -1, 2, 4, &font1Data[572]}, - {')', 99, 15, 5, 13, -1, 2, 4, &font1Data[650]}, - {'*', 103, 9, 7, 6, -1, 2, 5, &font1Data[715]}, - {'+', 28, 12, 8, 7, 0, 5, 8, &font1Data[757]}, - {',', 251, 39, 4, 5, -1, 10, 3, &font1Data[813]}, - {'-', 214, 9, 7, 3, -1, 7, 5, &font1Data[833]}, - {'.', 234, 9, 5, 3, -1, 10, 3, &font1Data[854]}, - {'/', 146, 15, 8, 12, -2, 2, 5, &font1Data[869]}, - {'0', 174, 51, 8, 11, -1, 2, 6, &font1Data[965]}, - {'1', 56, 0, 6, 11, -1, 2, 5, &font1Data[1053]}, - {'2', 183, 51, 8, 11, -1, 2, 6, &font1Data[1119]}, - {'3', 192, 51, 8, 11, -1, 2, 6, &font1Data[1207]}, - {'4', 189, 27, 9, 11, -1, 2, 7, &font1Data[1295]}, - {'5', 201, 51, 8, 11, -1, 2, 6, &font1Data[1394]}, - {'6', 210, 51, 8, 11, -1, 2, 6, &font1Data[1482]}, - {'7', 206, 39, 8, 11, -1, 2, 6, &font1Data[1570]}, - {'8', 219, 51, 8, 11, -1, 2, 6, &font1Data[1658]}, - {'9', 228, 51, 8, 11, -1, 2, 6, &font1Data[1746]}, - {':', 232, 0, 5, 8, -1, 5, 3, &font1Data[1834]}, - {';', 83, 53, 5, 10, -1, 5, 3, &font1Data[1874]}, - {'<', 10, 12, 8, 7, 0, 5, 8, &font1Data[1924]}, - {'=', 111, 9, 8, 5, 0, 6, 8, &font1Data[1980]}, - {'>', 19, 12, 8, 7, 0, 5, 8, &font1Data[2020]}, - {'?', 26, 0, 7, 11, -1, 2, 5, &font1Data[2076]}, - {'@', 111, 15, 13, 12, -1, 2, 11, &font1Data[2153]}, - {'A', 83, 29, 10, 11, -1, 2, 8, &font1Data[2309]}, - {'B', 50, 41, 9, 11, -1, 2, 7, &font1Data[2419]}, - {'C', 138, 28, 10, 11, -1, 2, 7, &font1Data[2518]}, - {'D', 127, 28, 10, 11, -1, 2, 8, &font1Data[2628]}, - {'E', 237, 51, 8, 11, -1, 2, 6, &font1Data[2738]}, - {'F', 246, 51, 8, 11, -1, 2, 6, &font1Data[2826]}, - {'G', 116, 28, 10, 11, -1, 2, 8, &font1Data[2914]}, - {'H', 72, 29, 10, 11, -1, 2, 8, &font1Data[3024]}, - {'I', 81, 0, 5, 11, -1, 2, 3, &font1Data[3134]}, - {'J', 34, 0, 7, 11, -2, 2, 4, &font1Data[3189]}, - {'K', 150, 40, 9, 11, -1, 2, 7, &font1Data[3266]}, - {'L', 9, 0, 8, 11, -1, 2, 6, &font1Data[3365]}, - {'M', 218, 15, 12, 11, -1, 2, 10, &font1Data[3453]}, - {'N', 24, 29, 11, 11, -1, 2, 9, &font1Data[3585]}, - {'O', 60, 29, 11, 11, -1, 2, 9, &font1Data[3706]}, - {'P', 40, 41, 9, 11, -1, 2, 7, &font1Data[3827]}, - {'Q', 125, 15, 11, 12, -1, 2, 9, &font1Data[3926]}, - {'R', 209, 27, 9, 11, -1, 2, 7, &font1Data[4058]}, - {'S', 170, 39, 8, 11, -1, 2, 6, &font1Data[4157]}, - {'T', 239, 27, 9, 11, -1, 2, 6, &font1Data[4245]}, - {'U', 94, 29, 10, 11, -1, 2, 8, &font1Data[4344]}, - {'V', 105, 29, 10, 11, -1, 2, 7, &font1Data[4454]}, - {'W', 164, 15, 13, 11, -1, 2, 11, &font1Data[4564]}, - {'X', 30, 41, 9, 11, -1, 2, 7, &font1Data[4707]}, - {'Y', 149, 28, 9, 11, -1, 2, 7, &font1Data[4806]}, - {'Z', 159, 28, 9, 11, -1, 2, 7, &font1Data[4905]}, - {'[', 85, 15, 6, 13, -1, 2, 4, &font1Data[5004]}, - {'\\', 155, 15, 8, 12, -2, 2, 4, &font1Data[5082]}, - {']', 105, 15, 5, 13, -1, 2, 4, &font1Data[5178]}, - {'^', 46, 12, 8, 7, 0, 2, 8, &font1Data[5243]}, - {'_', 188, 9, 9, 3, -2, 12, 5, &font1Data[5299]}, - {'`', 172, 9, 5, 4, -1, 2, 3, &font1Data[5326]}, - {'a', 162, 0, 8, 8, -1, 5, 6, &font1Data[5346]}, - {'b', 179, 27, 9, 11, -1, 2, 7, &font1Data[5410]}, - {'c', 180, 0, 8, 8, -1, 5, 5, &font1Data[5509]}, - {'d', 160, 40, 9, 11, -1, 2, 7, &font1Data[5573]}, - {'e', 189, 0, 8, 8, -1, 5, 6, &font1Data[5672]}, - {'f', 179, 39, 8, 11, -2, 2, 4, &font1Data[5736]}, - {'g', 219, 27, 9, 11, -1, 5, 7, &font1Data[5824]}, - {'h', 229, 27, 9, 11, -1, 2, 7, &font1Data[5923]}, - {'i', 69, 0, 5, 11, -1, 2, 3, &font1Data[6022]}, - {'j', 204, 0, 7, 14, -3, 2, 3, &font1Data[6077]}, - {'k', 188, 39, 8, 11, -1, 2, 6, &font1Data[6175]}, - {'l', 75, 0, 5, 11, -1, 2, 3, &font1Data[6263]}, - {'m', 87, 0, 12, 8, -1, 5, 10, &font1Data[6318]}, - {'n', 122, 0, 9, 8, -1, 5, 7, &font1Data[6414]}, - {'o', 132, 0, 9, 8, -1, 5, 7, &font1Data[6486]}, - {'p', 60, 41, 9, 11, -1, 5, 7, &font1Data[6558]}, - {'q', 199, 27, 9, 11, -1, 5, 7, &font1Data[6657]}, - {'r', 216, 0, 7, 8, -1, 5, 4, &font1Data[6756]}, - {'s', 224, 0, 7, 8, -1, 5, 5, &font1Data[6812]}, - {'t', 67, 53, 7, 10, -2, 3, 4, &font1Data[6868]}, - {'u', 142, 0, 9, 8, -1, 5, 7, &font1Data[6938]}, - {'v', 171, 0, 8, 8, -1, 5, 6, &font1Data[7010]}, - {'w', 100, 0, 11, 8, -1, 5, 8, &font1Data[7074]}, - {'x', 198, 0, 8, 8, -1, 5, 5, &font1Data[7162]}, - {'y', 197, 39, 8, 11, -1, 5, 6, &font1Data[7226]}, - {'z', 207, 0, 8, 8, -1, 5, 5, &font1Data[7314]}, - {'{', 92, 15, 6, 13, -1, 2, 4, &font1Data[7378]}, - {'|', 234, 0, 5, 14, -1, 2, 3, &font1Data[7456]}, - {'}', 71, 15, 6, 13, -1, 2, 4, &font1Data[7526]}, - {'~', 156, 9, 8, 4, 0, 6, 8, &font1Data[7604]}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {' ', 222, 9, 5, 3, -2, 13, 3, &font1Data[7636]}, - {'¡', 89, 53, 5, 10, -1, 5, 3, &font1Data[7651]}, - {'¢', 40, 53, 8, 10, -1, 3, 6, &font1Data[7701]}, - {'£', 169, 27, 9, 11, -1, 2, 6, &font1Data[7781]}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, -}; -u8 font1Data[] = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x13, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x13, 0x0, 0x0, 0xce, 0x0, 0x0, 0x9b, 0x9b, 0x9b, 0x9b, 0x9b, 0xb5, 0x0, 0x0, 0x5e, 0x0, 0x0, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x43, 0x43, 0x43, 0x0, 0x0, 0xa7, 0xa7, 0xa7, 0x0, 0x0, 0xa7, 0xa7, 0xa7, 0x0, 0x0, 0x43, 0x43, 0x43, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xb3, 0x0, 0x0, 0x5e, 0x0, 0x0, 0x0, 0x0, 0x80, 0x5e, 0xff, 0x13, 0x13, 0xff, 0x0, 0x0, 0x0, 0x0, 0x43, 0x5e, 0xff, 0x82, 0x9c, 0xff, 0x52, 0x43, 0x0, 0x0, 0x52, 0x43, 0xff, 0x13, 0x13, 0xff, 0x43, 0x80, 0x0, 0x0, 0x43, 0x80, 0xff, 0x9c, 0x9b, 0xff, 0x5e, 0x22, 0x0, 0x0, 0x0, 0x0, 0xff, 0x13, 0x22, 0xff, 0x5e, 0x9b, 0x0, 0x0, 0x0, 0x0, 0x5e, 0x0, 0x0, 0xb3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x43, 0x0, 0x0, 0x0, 0x0, 0x13, 0x43, 0x22, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf3, 0x0, 0x0, 0x0, 0x22, 0xce, 0xa7, 0xb5, 0x5e, 0x0, 0x0, 0x0, 0x43, 0xff, 0x43, 0x43, 0x43, 0xe6, 0x9c, 0x43, 0x56, 0xff, 0x43, 0x0, 0x0, 0x52, 0xff, 0x65, 0x52, 0xa9, 0xe6, 0x52, 0x52, 0x52, 0xff, 0x52, 0x0, 0x0, 0x0, 0x5e, 0xb5, 0xa7, 0xce, 0x22, 0x0, 0x0, 0x0, 0xb3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x22, 0x43, 0x13, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x22, 0x80, 0x80, 0x13, 0x0, 0x0, 0x22, 0x0, 0x0, 0x0, 0x0, 0xe6, 0x43, 0x43, 0xce, 0x0, 0x0, 0xb5, 0x5e, 0x0, 0x0, 0x0, 0xff, 0x0, 0x0, 0xff, 0x0, 0x0, 0x13, 0x8c, 0x9b, 0x43, 0x0, 0xce, 0x5e, 0x5e, 0xce, 0x0, 0x0, 0x0, 0x0, 0x22, 0xa7, 0x80, 0x35, 0x5e, 0x5e, 0x13, 0x0, 0x0, 0x43, 0x9b, 0x9b, 0x43, 0x43, 0x9b, 0x5e, 0x13, 0x0, 0x0, 0x0, 0xf3, 0x22, 0x22, 0xf3, 0x0, 0x0, 0x5e, 0x9c, 0x43, 0x0, 0x0, 0xff, 0x0, 0x0, 0xff, 0x0, 0x0, 0x0, 0x13, 0xa7, 0x0, 0x0, 0xb3, 0x80, 0x80, 0xb3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x43, 0x43, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x43, 0x5e, 0x13, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x8c, 0xc2, 0x8c, 0xc2, 0x13, 0x13, 0x5e, 0x43, 0x0, 0x0, 0x0, 0xff, 0x13, 0x0, 0x43, 0xce, 0xb5, 0x8c, 0xa7, 0x8c, 0x0, 0x0, 0xff, 0x0, 0x0, 0x5e, 0xe6, 0x44, 0x0, 0x0, 0xff, 0x0, 0x0, 0xff, 0x0, 0x5e, 0xe6, 0x22, 0xda, 0x22, 0x43, 0xff, 0x0, 0x0, 0xb3, 0x5e, 0xe6, 0x22, 0x0, 0x43, 0x9b, 0xc2, 0x5e, 0x0, 0x0, 0x5e, 0xce, 0x9c, 0x43, 0x22, 0x0, 0x0, 0x13, 0x0, 0x0, 0x0, 0xf3, 0x13, 0x43, 0x80, 0x9b, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x43, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x13, 0x13, 0x13, 0x0, 0x0, 0xb5, 0xb5, 0xb5, 0x0, 0x0, 0x22, 0x22, 0x22, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x22, 0x43, 0x43, 0x22, 0x22, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x5e, 0x9b, 0xb5, 0xa7, 0x80, 0x9b, 0xb5, 0x9b, 0x5e, 0x0, 0x0, 0x0, 0xa7, 0x8c, 0x22, 0x13, 0x0, 0x0, 0x0, 0x13, 0x22, 0x8c, 0xa7, 0x0, 0x0, 0x43, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x43, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xa7, 0x13, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x13, 0xa7, 0x0, 0x0, 0x43, 0x9c, 0x80, 0x43, 0x22, 0x22, 0x22, 0x43, 0x80, 0x9c, 0x43, 0x0, 0x0, 0x0, 0x13, 0x43, 0x80, 0x9b, 0x9b, 0x9b, 0x80, 0x43, 0x13, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x22, 0x0, 0x8c, 0x0, 0x0, 0x0, 0xb5, 0x43, 0xda, 0x13, 0x0, 0x0, 0x26, 0xe7, 0x9c, 0x9c, 0x0, 0x0, 0x9c, 0x43, 0xce, 0x13, 0x0, 0x0, 0x13, 0x0, 0x5e, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xb3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0x0, 0x0, 0x0, 0x0, 0x5e, 0x5e, 0xff, 0x5e, 0x5e, 0x0, 0x0, 0x5e, 0x5e, 0xff, 0x5e, 0x5e, 0x0, 0x0, 0x0, 0x0, 0xff, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xb3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x9b, 0x5e, 0x43, 0x0, 0x0, 0x22, 0x5e, 0xa7, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x43, 0x0, 0x0, 0xf3, 0x0, 0x0, 0xff, 0x0, 0x0, 0xe6, 0x0, 0x0, 0x22, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x5e, 0x0, 0x0, 0xce, 0x0, 0x0, 0x13, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x22, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x9b, 0x80, 0x43, 0x13, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x43, 0x80, 0xb5, 0x5e, 0x22, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x22, 0x5e, 0xb5, 0x80, 0x43, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x13, 0x43, 0xa7, 0x9b, 0x5e, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x22, 0x8c, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x43, 0x5e, 0x80, 0x80, 0x8c, 0x5e, 0x22, 0x0, 0x0, 0x0, 0x8c, 0xc2, 0x5e, 0x43, 0x43, 0x5e, 0x8c, 0xce, 0x5e, 0x0, 0x0, 0xff, 0x13, 0x0, 0x0, 0x0, 0x0, 0x0, 0x22, 0xff, 0x0, 0x0, 0xf3, 0x22, 0x0, 0x0, 0x0, 0x0, 0x0, 0x22, 0xff, 0x0, 0x0, 0x43, 0xce, 0x8c, 0x5e, 0x5e, 0x5e, 0x8c, 0xce, 0x5e, 0x0, 0x0, 0x0, 0x22, 0x5e, 0x8c, 0x8c, 0x8c, 0x5e, 0x22, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x8c, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xe6, 0x22, 0x0, 0x0, 0x43, 0x43, 0x43, 0x43, 0x43, 0x43, 0x43, 0x65, 0xe6, 0x0, 0x0, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x8c, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x8c, 0x5e, 0x22, 0x0, 0x0, 0x0, 0x0, 0x43, 0x0, 0x0, 0x0, 0xff, 0x5e, 0xce, 0x22, 0x0, 0x0, 0x0, 0x52, 0xb3, 0x0, 0x0, 0xff, 0x0, 0x22, 0xda, 0x13, 0x0, 0x0, 0x0, 0xff, 0x0, 0x0, 0xff, 0x0, 0x0, 0x43, 0xc2, 0x13, 0x0, 0x13, 0xff, 0x0, 0x0, 0xff, 0x0, 0x0, 0x0, 0x43, 0x9c, 0xa7, 0xb5, 0x5e, 0x0, 0x0, 0x5e, 0x0, 0x0, 0x0, 0x0, 0x13, 0x43, 0x22, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x5e, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x22, 0x0, 0x0, 0xff, 0x0, 0x0, 0x0, 0x8c, 0x0, 0x0, 0x0, 0xe6, 0x0, 0x0, 0xff, 0x0, 0x0, 0x0, 0xff, 0x0, 0x0, 0x0, 0xff, 0x0, 0x0, 0xf3, 0x22, 0x0, 0x43, 0xce, 0x8c, 0x22, 0x43, 0xf3, 0x0, 0x0, 0x43, 0xce, 0xa7, 0xc2, 0x13, 0x8c, 0xb5, 0xc2, 0x43, 0x0, 0x0, 0x0, 0x22, 0x43, 0x13, 0x0, 0x0, 0x13, 0x13, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xb3, 0x43, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0x80, 0x80, 0x13, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0x0, 0x43, 0xb5, 0x43, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0x0, 0x0, 0x22, 0x80, 0x80, 0x22, 0x0, 0x0, 0x9b, 0x9b, 0xff, 0x9b, 0x9b, 0x9b, 0x9b, 0xce, 0xce, 0x0, 0x0, 0x22, 0x22, 0xff, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x0, 0x0, 0x0, 0x0, 0x5e, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x43, 0x0, 0x0, 0x0, 0x13, 0x13, 0x13, 0x0, 0x0, 0x0, 0x0, 0xf3, 0x0, 0x0, 0x0, 0xce, 0x9c, 0xb5, 0x9b, 0xb3, 0x0, 0x0, 0xff, 0x0, 0x0, 0x0, 0xff, 0x13, 0x22, 0x22, 0xff, 0x0, 0x0, 0xf3, 0x22, 0x0, 0x22, 0xff, 0x0, 0x0, 0x0, 0xff, 0x0, 0x0, 0x43, 0xce, 0x80, 0xce, 0x5e, 0x0, 0x0, 0x0, 0xce, 0x0, 0x0, 0x0, 0x22, 0x43, 0x22, 0x0, 0x0, 0x0, 0x0, 0x13, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x22, 0x5e, 0x5e, 0x5e, 0x5e, 0x22, 0x0, 0x0, 0x0, 0x0, 0x5e, 0xce, 0x8c, 0x8c, 0xe6, 0xa9, 0x9b, 0xb3, 0x0, 0x0, 0x0, 0xff, 0x22, 0x0, 0x0, 0x22, 0xe6, 0x0, 0x5e, 0xb3, 0x0, 0x0, 0xff, 0x0, 0x0, 0x0, 0x0, 0xff, 0x0, 0x0, 0xff, 0x0, 0x0, 0x8c, 0xa7, 0x5e, 0x5e, 0xb3, 0xb3, 0x0, 0x0, 0xe6, 0x0, 0x0, 0x0, 0x43, 0x8c, 0x8c, 0x5e, 0x0, 0x0, 0x0, 0x22, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x8c, 0x0, 0x0, 0x43, 0x22, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0x0, 0x0, 0x80, 0xb5, 0x9b, 0x5e, 0x22, 0x0, 0x0, 0x0, 0xff, 0x0, 0x0, 0x0, 0x13, 0x22, 0x5e, 0xb5, 0x80, 0x22, 0x0, 0xff, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x13, 0x43, 0x9b, 0x80, 0xff, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x43, 0xb3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x5e, 0x8c, 0x43, 0x0, 0x13, 0x43, 0x22, 0x0, 0x0, 0x0, 0xb3, 0xb3, 0x5e, 0xc2, 0x43, 0xb5, 0x80, 0xb5, 0x5e, 0x0, 0x0, 0xff, 0x0, 0x0, 0x13, 0xf3, 0x22, 0x0, 0x13, 0xff, 0x0, 0x0, 0xff, 0x0, 0x0, 0x13, 0xf3, 0x22, 0x0, 0x22, 0xff, 0x0, 0x0, 0xb3, 0xb3, 0x5e, 0xc2, 0x43, 0xb5, 0x80, 0xce, 0x5e, 0x0, 0x0, 0x0, 0x5e, 0x8c, 0x43, 0x0, 0x13, 0x43, 0x22, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x22, 0x0, 0x0, 0x0, 0x43, 0x8c, 0x8c, 0x43, 0x0, 0x0, 0x0, 0xe6, 0x0, 0x0, 0x8c, 0xc2, 0x5e, 0x5e, 0xc2, 0x8c, 0x0, 0x0, 0xff, 0x0, 0x0, 0xff, 0x13, 0x0, 0x0, 0x13, 0xff, 0x0, 0x0, 0xce, 0x5e, 0x0, 0xf3, 0x13, 0x0, 0x0, 0x22, 0xff, 0x0, 0x0, 0x13, 0xb3, 0xa7, 0x9c, 0xce, 0x8c, 0x8c, 0xce, 0x5e, 0x0, 0x0, 0x0, 0x0, 0x43, 0x5e, 0x5e, 0x5e, 0x5e, 0x22, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x5e, 0x0, 0x0, 0x0, 0x0, 0x5e, 0x0, 0x0, 0xce, 0x0, 0x0, 0x0, 0x0, 0xce, 0x0, 0x0, 0x13, 0x0, 0x0, 0x0, 0x0, 0x13, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x9b, 0x5e, 0x43, 0x0, 0x0, 0x0, 0x0, 0x43, 0x0, 0x0, 0x22, 0x5e, 0xa7, 0x0, 0x0, 0x0, 0x0, 0xda, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x22, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x5e, 0x0, 0x0, 0x0, 0x0, 0x0, 0x13, 0xf3, 0x13, 0x0, 0x0, 0x0, 0x0, 0xce, 0x43, 0xce, 0x0, 0x0, 0x0, 0x22, 0xe6, 0x0, 0xf3, 0x13, 0x0, 0x0, 0xe6, 0x22, 0x0, 0x43, 0xce, 0x0, 0x0, 0x8c, 0x0, 0x0, 0x0, 0x8c, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xb3, 0x0, 0xb3, 0x0, 0x0, 0xff, 0x0, 0xff, 0x0, 0x0, 0xff, 0x0, 0xff, 0x0, 0x0, 0xff, 0x0, 0xff, 0x0, 0x0, 0xff, 0x0, 0xff, 0x0, 0x0, 0xb3, 0x0, 0xb3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x8c, 0x0, 0x0, 0x0, 0x8c, 0x0, 0x0, 0xe6, 0x22, 0x0, 0x43, 0xce, 0x0, 0x0, 0x22, 0xe6, 0x0, 0xf3, 0x13, 0x0, 0x0, 0x0, 0xce, 0x43, 0xce, 0x0, 0x0, 0x0, 0x0, 0x13, 0xf3, 0x13, 0x0, 0x0, 0x0, 0x0, 0x0, 0x8c, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x43, 0x0, 0x0, 0x43, 0x0, 0x0, 0x22, 0x13, 0x0, 0x0, 0x0, 0xf3, 0x0, 0x0, 0xda, 0x0, 0x0, 0x9b, 0x9c, 0x43, 0x0, 0x0, 0xff, 0x0, 0x0, 0x22, 0x0, 0x0, 0x0, 0x13, 0xc2, 0x43, 0x43, 0xf3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x13, 0x80, 0xa7, 0x43, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x13, 0x22, 0x22, 0x13, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x13, 0x80, 0x9c, 0x9b, 0x9b, 0x9c, 0x5e, 0x0, 0x0, 0x0, 0x0, 0x13, 0xc2, 0x43, 0x13, 0x0, 0x0, 0x13, 0x5e, 0xb3, 0x0, 0x0, 0x0, 0xce, 0x43, 0x22, 0x80, 0x9b, 0x80, 0x5e, 0x0, 0x8c, 0x8c, 0x0, 0x0, 0xff, 0x0, 0xe6, 0x43, 0x22, 0x43, 0x8c, 0x8c, 0x0, 0xff, 0x0, 0x0, 0xff, 0x0, 0xff, 0x0, 0x0, 0x0, 0x0, 0xff, 0x0, 0xff, 0x0, 0x0, 0xff, 0x0, 0x72, 0xb3, 0x5e, 0x43, 0x43, 0xf3, 0x0, 0xff, 0x0, 0x0, 0xff, 0x0, 0xce, 0x8c, 0x8c, 0x80, 0xa7, 0xb5, 0x0, 0xff, 0x0, 0x0, 0x5e, 0x0, 0xff, 0x0, 0x0, 0x0, 0x0, 0x13, 0xb3, 0x5e, 0x0, 0x0, 0x0, 0x0, 0x5e, 0x9b, 0x5e, 0x5e, 0x5e, 0x9b, 0x5e, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x22, 0x5e, 0x8c, 0x5e, 0x22, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xb3, 0x43, 0x13, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x5e, 0xc2, 0xce, 0x8c, 0x43, 0x13, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x13, 0xff, 0x8c, 0xc2, 0xc2, 0x8c, 0x22, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0x0, 0x13, 0x43, 0x8c, 0xb6, 0xb3, 0x0, 0x0, 0x0, 0x0, 0xff, 0x13, 0x43, 0x5e, 0xa7, 0xb5, 0x8c, 0x0, 0x0, 0x0, 0x43, 0xff, 0xc2, 0xc2, 0x8c, 0x43, 0x13, 0x0, 0x0, 0x0, 0xb3, 0xc2, 0x8c, 0x43, 0x13, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x5e, 0x13, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x0, 0x0, 0xce, 0xb5, 0xb5, 0xb5, 0xce, 0xb5, 0xb5, 0xb5, 0xce, 0x0, 0x0, 0xff, 0x22, 0x22, 0x22, 0xff, 0x22, 0x22, 0x22, 0xff, 0x0, 0x0, 0xff, 0x0, 0x0, 0x0, 0xff, 0x0, 0x0, 0x0, 0xff, 0x0, 0x0, 0xff, 0x22, 0x0, 0x22, 0xe6, 0x5e, 0x13, 0x43, 0xf3, 0x0, 0x0, 0x5e, 0xce, 0x80, 0xce, 0x22, 0x8c, 0x9c, 0xc2, 0x43, 0x0, 0x0, 0x0, 0x22, 0x43, 0x22, 0x0, 0x0, 0x13, 0x13, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x43, 0x5e, 0x8c, 0x5e, 0x22, 0x0, 0x0, 0x0, 0x0, 0x0, 0x8c, 0xc2, 0x5e, 0x5e, 0x8c, 0xb5, 0x8c, 0x0, 0x0, 0x0, 0x8c, 0xb3, 0x13, 0x0, 0x0, 0x0, 0x13, 0xce, 0x43, 0x0, 0x0, 0xff, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x13, 0xf3, 0x0, 0x0, 0xff, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0x0, 0x0, 0xff, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0x0, 0x0, 0xce, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xce, 0x0, 0x0, 0x13, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x13, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x0, 0x0, 0xe6, 0xb5, 0xb5, 0xb5, 0xb5, 0xb5, 0xb5, 0xb5, 0xe6, 0x0, 0x0, 0xff, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0xff, 0x0, 0x0, 0xff, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0x0, 0x0, 0xff, 0x13, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0x0, 0x0, 0x5e, 0xce, 0x13, 0x0, 0x0, 0x0, 0x0, 0xb3, 0x8c, 0x0, 0x0, 0x0, 0x8c, 0xb5, 0x8c, 0x5e, 0x5e, 0xa7, 0xb3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x22, 0x5e, 0x5e, 0x5e, 0x43, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x0, 0x0, 0xce, 0x9c, 0x9c, 0x9c, 0xce, 0x9c, 0x9c, 0x9c, 0xce, 0x0, 0x0, 0xff, 0x13, 0x13, 0x13, 0xff, 0x13, 0x13, 0x13, 0xff, 0x0, 0x0, 0xff, 0x0, 0x0, 0x0, 0xff, 0x0, 0x0, 0x0, 0xff, 0x0, 0x0, 0xff, 0x0, 0x0, 0x0, 0xe6, 0x0, 0x0, 0x0, 0xf3, 0x0, 0x0, 0x5e, 0x0, 0x0, 0x0, 0x22, 0x0, 0x0, 0x0, 0x43, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x0, 0x0, 0xb5, 0xb5, 0xb5, 0xb5, 0xce, 0xb5, 0xb5, 0xb5, 0xce, 0x0, 0x0, 0x22, 0x22, 0x22, 0x22, 0xff, 0x22, 0x22, 0x22, 0xff, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0x0, 0x0, 0x0, 0xff, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xe6, 0x0, 0x0, 0x0, 0xf3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x22, 0x0, 0x0, 0x0, 0x43, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x22, 0x5e, 0x5e, 0x5e, 0x22, 0x0, 0x0, 0x0, 0x0, 0x0, 0x8c, 0xb5, 0x8c, 0x5e, 0x8c, 0xb5, 0x5e, 0x0, 0x0, 0x0, 0x8c, 0xb3, 0x13, 0x0, 0x0, 0x0, 0x13, 0xce, 0x43, 0x0, 0x0, 0xff, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x13, 0xf3, 0x0, 0x0, 0xff, 0x0, 0x0, 0x0, 0x8c, 0x0, 0x0, 0x0, 0xff, 0x0, 0x0, 0xff, 0x0, 0x0, 0x0, 0xff, 0x0, 0x0, 0x0, 0xff, 0x0, 0x0, 0x8c, 0xa7, 0xa7, 0xa7, 0xf3, 0x0, 0x0, 0x0, 0xe6, 0x0, 0x0, 0x0, 0x43, 0x43, 0x43, 0x43, 0x0, 0x0, 0x0, 0x22, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x0, 0x0, 0xb5, 0xb5, 0xb5, 0xb5, 0xe6, 0xb5, 0xb5, 0xb5, 0xb5, 0x0, 0x0, 0x13, 0x13, 0x13, 0x13, 0xff, 0x13, 0x13, 0x13, 0x13, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x13, 0x13, 0x13, 0x13, 0xff, 0x13, 0x13, 0x13, 0x13, 0x0, 0x0, 0xb5, 0xb5, 0xb5, 0xb5, 0xe6, 0xb5, 0xb5, 0xb5, 0xb5, 0x0, 0x0, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x0, 0x0, 0x9c, 0x9c, 0x9c, 0x9c, 0x9c, 0x9c, 0x9c, 0x9c, 0x9c, 0x0, 0x0, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x13, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xce, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf3, 0x43, 0x13, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x43, 0xc2, 0xb5, 0x9b, 0x9b, 0x9b, 0x9b, 0x9b, 0x9b, 0x0, 0x0, 0x0, 0x13, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x0, 0x0, 0xb5, 0xb5, 0xb5, 0xb5, 0xce, 0xb5, 0xb5, 0xb5, 0xb5, 0x0, 0x0, 0x22, 0x22, 0x22, 0x80, 0xe6, 0xa9, 0x22, 0x22, 0x22, 0x0, 0x0, 0x0, 0x0, 0x8c, 0xb3, 0x22, 0x8c, 0xb3, 0x13, 0x0, 0x0, 0x0, 0x13, 0xb3, 0x8c, 0x0, 0x0, 0x0, 0x5e, 0xc2, 0x22, 0x0, 0x0, 0xce, 0x5e, 0x0, 0x0, 0x0, 0x0, 0x0, 0x43, 0xda, 0x0, 0x0, 0x5e, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x43, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x0, 0x0, 0xce, 0xb5, 0xb5, 0xb5, 0xb5, 0xb5, 0xb5, 0xb5, 0xb5, 0x0, 0x0, 0xff, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x0, 0x0, 0xff, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x5e, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x0, 0x0, 0xb5, 0xb5, 0xb5, 0xb5, 0xb5, 0xb5, 0xc2, 0xe6, 0xda, 0x0, 0x0, 0x13, 0x13, 0x13, 0x13, 0x35, 0x72, 0xc2, 0x8c, 0x43, 0x0, 0x0, 0x0, 0x13, 0x43, 0x80, 0xb5, 0x5e, 0x22, 0x0, 0x0, 0x0, 0x0, 0x5e, 0xc2, 0xa7, 0x43, 0x13, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x5e, 0xb5, 0x80, 0x43, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x13, 0x43, 0xa7, 0x9b, 0x5e, 0x13, 0x0, 0x0, 0x0, 0x0, 0x13, 0x13, 0x13, 0x13, 0x35, 0x9b, 0xa9, 0x80, 0x22, 0x0, 0x0, 0xb5, 0xb5, 0xb5, 0xb5, 0xb5, 0xb5, 0xc2, 0xce, 0xce, 0x0, 0x0, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x0, 0x0, 0xb5, 0xb5, 0xb5, 0xb5, 0xb5, 0xb5, 0xb5, 0xb5, 0xce, 0x0, 0x0, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x80, 0xda, 0x5e, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x22, 0xb3, 0xb3, 0x22, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x5e, 0xce, 0x5e, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x22, 0xb3, 0xb3, 0x22, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x5e, 0xda, 0x72, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x0, 0x0, 0xce, 0xb5, 0x9c, 0x9c, 0x9c, 0x9c, 0x9c, 0x9c, 0x9c, 0x0, 0x0, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x22, 0x5e, 0x5e, 0x5e, 0x22, 0x0, 0x0, 0x0, 0x0, 0x0, 0x8c, 0xb5, 0x8c, 0x5e, 0x8c, 0xb5, 0x8c, 0x0, 0x0, 0x0, 0x8c, 0xb3, 0x13, 0x0, 0x0, 0x0, 0x13, 0xce, 0x5e, 0x0, 0x0, 0xff, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x13, 0xff, 0x0, 0x0, 0xff, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0x0, 0x0, 0xff, 0x13, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0x0, 0x0, 0x5e, 0xce, 0x13, 0x0, 0x0, 0x0, 0x13, 0xb3, 0x8c, 0x0, 0x0, 0x0, 0x8c, 0xb5, 0x8c, 0x5e, 0x8c, 0xb5, 0x8c, 0x0, 0x0, 0x0, 0x0, 0x0, 0x22, 0x5e, 0x5e, 0x5e, 0x22, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x0, 0x0, 0xb5, 0xb5, 0xb5, 0xb5, 0xce, 0xb5, 0xb5, 0xb5, 0xce, 0x0, 0x0, 0x22, 0x22, 0x22, 0x22, 0xff, 0x22, 0x22, 0x22, 0xff, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0x0, 0x0, 0x0, 0xff, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf3, 0x22, 0x0, 0x13, 0xff, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x43, 0xce, 0x80, 0xc2, 0x5e, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x22, 0x43, 0x43, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x22, 0x5e, 0x5e, 0x5e, 0x22, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x8c, 0xb5, 0x8c, 0x5e, 0x8c, 0xb5, 0x8c, 0x0, 0x0, 0x0, 0x0, 0x8c, 0xb3, 0x13, 0x0, 0x0, 0x0, 0x13, 0xce, 0x5e, 0x0, 0x0, 0x0, 0xff, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x13, 0xff, 0x0, 0x0, 0x0, 0xff, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0x0, 0x0, 0x0, 0xff, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0x0, 0x0, 0x43, 0xce, 0xb3, 0x13, 0x0, 0x0, 0x0, 0x13, 0xb3, 0x8c, 0x0, 0x0, 0xf3, 0x13, 0x8c, 0xb5, 0x8c, 0x5e, 0x8c, 0xb5, 0x8c, 0x0, 0x0, 0x0, 0xb3, 0x0, 0x0, 0x22, 0x5e, 0x5e, 0x5e, 0x22, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x0, 0x0, 0x9c, 0x9c, 0x9c, 0x9c, 0xce, 0x9c, 0x9c, 0x9c, 0xce, 0x0, 0x0, 0x13, 0x13, 0x13, 0x13, 0xff, 0x13, 0x13, 0x13, 0xff, 0x0, 0x0, 0x0, 0x0, 0x0, 0x43, 0xff, 0x0, 0x0, 0x0, 0xff, 0x0, 0x0, 0x0, 0x22, 0x8c, 0xda, 0xb3, 0x5e, 0x13, 0x43, 0xf3, 0x0, 0x0, 0x8c, 0xb5, 0x5e, 0x22, 0x0, 0xb3, 0xb5, 0xc2, 0x43, 0x0, 0x0, 0x8c, 0x13, 0x0, 0x0, 0x0, 0x0, 0x22, 0x13, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x22, 0x44, 0x0, 0x0, 0x0, 0x13, 0x43, 0x43, 0x0, 0x0, 0x0, 0xe6, 0x22, 0x0, 0x0, 0x13, 0xc2, 0x80, 0xc2, 0x5e, 0x0, 0x0, 0xff, 0x0, 0x0, 0x0, 0xce, 0x43, 0x0, 0x13, 0xff, 0x0, 0x0, 0xff, 0x0, 0x0, 0x43, 0xce, 0x0, 0x0, 0x0, 0xff, 0x0, 0x0, 0x8c, 0xa7, 0x8c, 0xda, 0x13, 0x0, 0x0, 0x0, 0xe6, 0x0, 0x0, 0x0, 0x43, 0x5e, 0x22, 0x0, 0x0, 0x0, 0x0, 0x22, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xb3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0x0, 0x0, 0x5e, 0x5e, 0x5e, 0x5e, 0x5e, 0x5e, 0x5e, 0x5e, 0xff, 0x0, 0x0, 0x8c, 0x8c, 0x8c, 0x8c, 0x8c, 0x8c, 0x8c, 0x8c, 0xff, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xe6, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x22, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x0, 0x0, 0x13, 0xb3, 0xb5, 0xb5, 0xb5, 0xb5, 0xb5, 0xb5, 0xb5, 0x0, 0x0, 0xce, 0x8c, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x0, 0x0, 0xff, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xce, 0x8c, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x0, 0x0, 0x13, 0x8c, 0x9c, 0xb5, 0xb5, 0xb5, 0xb5, 0xb5, 0xb5, 0x0, 0x0, 0x0, 0x0, 0x13, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x22, 0x5e, 0xa7, 0x0, 0x0, 0x0, 0x0, 0x0, 0x22, 0x5e, 0xa7, 0xb5, 0x8c, 0x43, 0x0, 0x0, 0x22, 0x5e, 0xa7, 0xb5, 0x8c, 0x43, 0x13, 0x0, 0x0, 0x0, 0x0, 0xda, 0xc2, 0x56, 0x13, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x43, 0x80, 0x9c, 0x80, 0x43, 0x13, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x13, 0x43, 0xa7, 0xb5, 0x8c, 0x43, 0x13, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x22, 0x5e, 0xa7, 0xb5, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x22, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x13, 0x22, 0x5e, 0xa7, 0x0, 0x0, 0x0, 0x0, 0x22, 0x43, 0x8c, 0xb5, 0xb5, 0x8c, 0x43, 0x0, 0x0, 0x8c, 0xa7, 0xb5, 0x80, 0x5e, 0x22, 0x13, 0x0, 0x0, 0x0, 0x0, 0xb3, 0xce, 0x8e, 0x43, 0x22, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x22, 0x43, 0x80, 0xb5, 0x9b, 0x5e, 0x43, 0x13, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x13, 0x44, 0x9c, 0xce, 0xb5, 0x0, 0x0, 0x0, 0x13, 0x43, 0x5e, 0xa7, 0xb5, 0x80, 0x5e, 0x22, 0x0, 0x0, 0xb3, 0xb5, 0xa7, 0x5e, 0x43, 0x13, 0x0, 0x0, 0x0, 0x0, 0x0, 0x8c, 0xa7, 0x9b, 0x8c, 0x43, 0x22, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x22, 0x5e, 0x80, 0xb5, 0x9b, 0x8c, 0x43, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x13, 0x22, 0x5e, 0xa7, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xb3, 0x13, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x5e, 0x0, 0x0, 0x8c, 0xb5, 0x43, 0x0, 0x0, 0x0, 0x43, 0xa7, 0xb3, 0x0, 0x0, 0x0, 0x22, 0xa7, 0xa7, 0x22, 0x8c, 0xc2, 0x43, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x9c, 0xce, 0xb6, 0x13, 0x0, 0x0, 0x0, 0x0, 0x0, 0x43, 0xa7, 0xb3, 0x22, 0x8c, 0xa7, 0x43, 0x0, 0x0, 0x0, 0xb3, 0xc2, 0x43, 0x0, 0x0, 0x0, 0x43, 0xa7, 0xb3, 0x0, 0x0, 0x8c, 0x13, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x5e, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x43, 0xb3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x43, 0xa7, 0xc2, 0x5e, 0x0, 0x0, 0x43, 0x43, 0x43, 0x43, 0xa7, 0xa7, 0x43, 0x13, 0x0, 0x0, 0x0, 0xa7, 0xa7, 0xa7, 0xa7, 0xdb, 0x43, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x43, 0xa7, 0xa7, 0x43, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x43, 0xa7, 0xa7, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x43, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x8c, 0x13, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x43, 0x0, 0x0, 0xff, 0x9c, 0x5e, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf3, 0x0, 0x0, 0xff, 0x13, 0x8c, 0xa7, 0x22, 0x0, 0x0, 0x0, 0xff, 0x0, 0x0, 0xff, 0x0, 0x0, 0x43, 0xb5, 0x5e, 0x0, 0x0, 0xff, 0x0, 0x0, 0xff, 0x0, 0x0, 0x0, 0x13, 0x8c, 0x9b, 0x22, 0xff, 0x0, 0x0, 0xff, 0x0, 0x0, 0x0, 0x0, 0x0, 0x22, 0x9b, 0xff, 0x0, 0x0, 0x5e, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x5e, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x0, 0x0, 0xce, 0x9c, 0x9c, 0x9c, 0x9c, 0x9c, 0x9c, 0x9c, 0x9c, 0x9c, 0xce, 0x0, 0x0, 0xf3, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0xf3, 0x0, 0x0, 0x43, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x43, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x22, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x13, 0x43, 0x80, 0x9b, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x22, 0x5e, 0xb5, 0x80, 0x43, 0x0, 0x0, 0x0, 0x0, 0x13, 0x43, 0x80, 0xb5, 0x5e, 0x22, 0x0, 0x0, 0x0, 0x0, 0x0, 0x5e, 0xb5, 0x80, 0x43, 0x13, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x5e, 0x22, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xb3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xb3, 0x0, 0x0, 0xff, 0x5e, 0x5e, 0x5e, 0x5e, 0x5e, 0x5e, 0x5e, 0x5e, 0x5e, 0xff, 0x0, 0x0, 0x5e, 0x5e, 0x5e, 0x5e, 0x5e, 0x5e, 0x5e, 0x5e, 0x5e, 0x5e, 0x5e, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x5e, 0x13, 0x0, 0x0, 0x0, 0x0, 0x0, 0x5e, 0x9c, 0x5e, 0x13, 0x0, 0x0, 0x0, 0x0, 0x13, 0x5e, 0x90, 0x8c, 0x0, 0x0, 0x0, 0x13, 0x5e, 0x9c, 0x5e, 0x0, 0x0, 0x5e, 0x9c, 0x5e, 0x13, 0x0, 0x0, 0x0, 0x5e, 0x13, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x22, 0x0, 0x0, 0xe6, 0x0, 0x0, 0xff, 0x0, 0x0, 0xff, 0x0, 0x0, 0xff, 0x0, 0x0, 0xe6, 0x0, 0x0, 0x22, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x5e, 0x0, 0x0, 0x5e, 0xb3, 0x0, 0x0, 0x8c, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x22, 0x8c, 0x5e, 0x0, 0x0, 0x13, 0x0, 0x0, 0xe6, 0x5e, 0xb3, 0x5e, 0x0, 0xce, 0x0, 0x0, 0xff, 0x0, 0x0, 0xff, 0x0, 0xff, 0x0, 0x0, 0xe6, 0x22, 0x0, 0xff, 0x0, 0xff, 0x0, 0x0, 0x9c, 0xda, 0x80, 0xf3, 0xa7, 0xb3, 0x0, 0x0, 0x43, 0x43, 0x43, 0x43, 0x43, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x0, 0x0, 0xc2, 0xe6, 0xb5, 0xb5, 0xe6, 0xb5, 0xb5, 0xb5, 0xb5, 0x0, 0x0, 0xda, 0x5e, 0x13, 0x13, 0x5e, 0xc1, 0x13, 0x13, 0x13, 0x0, 0x0, 0xff, 0x0, 0x0, 0x0, 0x0, 0xff, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0x22, 0x0, 0x0, 0x13, 0xff, 0x0, 0x0, 0x0, 0x0, 0x0, 0x5e, 0xce, 0x8c, 0x5e, 0xc2, 0x8c, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x22, 0x5e, 0x5e, 0x43, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x43, 0x8c, 0x8c, 0x43, 0x0, 0x0, 0x0, 0x5e, 0xc2, 0x5e, 0x5e, 0xda, 0x43, 0x0, 0x0, 0xff, 0x13, 0x0, 0x0, 0x22, 0xf3, 0x0, 0x0, 0xff, 0x0, 0x0, 0x0, 0x0, 0xff, 0x0, 0x0, 0xe6, 0x0, 0x0, 0x0, 0x0, 0xe6, 0x0, 0x0, 0x22, 0x0, 0x0, 0x0, 0x0, 0x22, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x43, 0x5e, 0x5e, 0x22, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x8c, 0xc2, 0x5e, 0x5e, 0xce, 0x5e, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0x13, 0x0, 0x0, 0x22, 0xff, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0x0, 0x0, 0x0, 0x0, 0xff, 0x0, 0x0, 0x0, 0x0, 0x0, 0xb3, 0x5e, 0x0, 0x0, 0x43, 0xce, 0x0, 0x0, 0x0, 0x0, 0x0, 0x9b, 0xe6, 0x9b, 0x9b, 0xda, 0xa9, 0x9b, 0x9b, 0x9b, 0x0, 0x0, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x43, 0x8c, 0x8c, 0x43, 0x0, 0x0, 0x0, 0x8c, 0xc2, 0x5e, 0xff, 0xa7, 0x5e, 0x0, 0x0, 0xff, 0x13, 0x0, 0xff, 0x0, 0xff, 0x0, 0x0, 0xff, 0x0, 0x0, 0xff, 0x0, 0xff, 0x0, 0x0, 0xe6, 0x0, 0x0, 0xff, 0x8c, 0xb3, 0x0, 0x0, 0x22, 0x0, 0x0, 0x8c, 0x5e, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x13, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xce, 0x0, 0x0, 0x0, 0x0, 0x0, 0x9b, 0x9b, 0x9b, 0x9b, 0x9b, 0xff, 0x9b, 0xa7, 0x43, 0x0, 0x0, 0x22, 0x22, 0x22, 0x22, 0x22, 0xff, 0x22, 0x43, 0xf3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x8c, 0x0, 0x0, 0xce, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x13, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x22, 0x0, 0x0, 0x0, 0x43, 0x5e, 0x5e, 0x22, 0x0, 0x0, 0x0, 0xe6, 0x0, 0x0, 0x8c, 0xc2, 0x5e, 0x5e, 0xce, 0x5e, 0x0, 0x0, 0xff, 0x0, 0x0, 0xff, 0x13, 0x0, 0x0, 0x22, 0xff, 0x0, 0x0, 0xff, 0x0, 0x0, 0xff, 0x0, 0x0, 0x0, 0x0, 0xff, 0x0, 0x0, 0xce, 0x8c, 0x13, 0xb3, 0x5e, 0x0, 0x0, 0x43, 0xce, 0x0, 0x0, 0x13, 0xb3, 0xb5, 0x9b, 0xe6, 0x9b, 0x9b, 0xda, 0xa9, 0x0, 0x0, 0x0, 0x0, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x0, 0x0, 0xb5, 0xb5, 0xb5, 0xb5, 0xe6, 0xb5, 0xb5, 0xb5, 0xb5, 0x0, 0x0, 0x13, 0x13, 0x13, 0x13, 0x8c, 0x9b, 0x13, 0x13, 0x13, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x22, 0xff, 0x0, 0x0, 0x0, 0x0, 0x0, 0x9b, 0x9b, 0x9b, 0x9b, 0xce, 0x8c, 0x0, 0x0, 0x0, 0x0, 0x0, 0x22, 0x22, 0x22, 0x22, 0x22, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x0, 0x0, 0x22, 0x0, 0x0, 0x9c, 0x9c, 0x9c, 0x9c, 0x9c, 0x9c, 0x0, 0x0, 0xce, 0x0, 0x0, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x0, 0x0, 0x22, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x5e, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xe6, 0x5e, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x0, 0x0, 0x22, 0x0, 0x0, 0x22, 0xb3, 0x9c, 0x9c, 0x9c, 0x9c, 0x9c, 0x9c, 0x9c, 0x0, 0x0, 0xce, 0x0, 0x0, 0x0, 0x0, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x0, 0x0, 0x22, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x0, 0x0, 0x9c, 0x9c, 0xa9, 0xce, 0x9c, 0x9c, 0x9c, 0x9c, 0x9c, 0x0, 0x0, 0x13, 0x26, 0xce, 0xe6, 0x35, 0x13, 0x13, 0x13, 0x13, 0x0, 0x0, 0x22, 0xc2, 0x43, 0x22, 0xce, 0x22, 0x0, 0x0, 0x0, 0x0, 0x0, 0xe6, 0x43, 0x0, 0x0, 0x22, 0xda, 0x0, 0x0, 0x0, 0x0, 0x0, 0x5e, 0x0, 0x0, 0x0, 0x0, 0x43, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x0, 0x0, 0x9c, 0x9c, 0x9c, 0x9c, 0x9c, 0x9c, 0x9c, 0x9c, 0x9c, 0x0, 0x0, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x0, 0x0, 0x9b, 0x9b, 0x9b, 0xb5, 0xda, 0xa9, 0x0, 0x0, 0x0, 0x0, 0x0, 0x13, 0x43, 0xce, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0x0, 0x0, 0x5e, 0x5e, 0x5e, 0x5e, 0x8c, 0xce, 0x0, 0x0, 0x8c, 0x8c, 0x8c, 0x8c, 0xe6, 0x56, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x22, 0xf3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x13, 0xff, 0x0, 0x0, 0x80, 0x80, 0x80, 0xa7, 0xc2, 0xb3, 0x0, 0x0, 0x43, 0x43, 0x43, 0x43, 0x43, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x0, 0x0, 0xb5, 0xb5, 0xb5, 0xb5, 0xe6, 0xb5, 0x0, 0x0, 0x13, 0x13, 0x13, 0x13, 0x5e, 0xc1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x22, 0xff, 0x0, 0x0, 0x9b, 0x9b, 0x9b, 0x9b, 0xce, 0x5e, 0x0, 0x0, 0x22, 0x22, 0x22, 0x22, 0x22, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x43, 0x5e, 0x5e, 0x43, 0x0, 0x0, 0x0, 0x5e, 0xda, 0x5e, 0x5e, 0xda, 0x43, 0x0, 0x0, 0xff, 0x22, 0x0, 0x0, 0x22, 0xf3, 0x0, 0x0, 0xff, 0x0, 0x0, 0x0, 0x0, 0xff, 0x0, 0x0, 0xf3, 0x13, 0x0, 0x0, 0x13, 0xff, 0x0, 0x0, 0x43, 0xc2, 0x5e, 0x5e, 0xc2, 0x5e, 0x0, 0x0, 0x0, 0x43, 0x5e, 0x5e, 0x43, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x0, 0x0, 0xb5, 0xb5, 0xb5, 0xb5, 0xe6, 0xb5, 0xb5, 0xe6, 0xb5, 0x0, 0x0, 0x13, 0x13, 0x13, 0xc1, 0x5e, 0x13, 0x13, 0x5e, 0xc1, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0x0, 0x0, 0x0, 0x0, 0xff, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0x22, 0x0, 0x0, 0x13, 0xff, 0x0, 0x0, 0x0, 0x0, 0x0, 0x5e, 0xce, 0x8c, 0x5e, 0xc2, 0x8c, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x22, 0x5e, 0x5e, 0x43, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x43, 0x5e, 0x5e, 0x43, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x8c, 0xc2, 0x5e, 0x5e, 0xda, 0x5e, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0x13, 0x0, 0x0, 0x22, 0xff, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0x0, 0x0, 0x0, 0x0, 0xff, 0x0, 0x0, 0x0, 0x0, 0x0, 0xb3, 0x5e, 0x0, 0x0, 0x43, 0xce, 0x0, 0x0, 0x9b, 0x9b, 0x9b, 0x9b, 0xe6, 0x9b, 0x9b, 0xda, 0xa9, 0x0, 0x0, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x0, 0x0, 0x9b, 0x9b, 0x9b, 0xb5, 0xda, 0xa9, 0x0, 0x0, 0x0, 0x0, 0x0, 0x13, 0x43, 0xce, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xe6, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x22, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x43, 0x26, 0x0, 0x22, 0x5e, 0x13, 0x0, 0x0, 0xf3, 0x13, 0x0, 0xe6, 0x5e, 0xce, 0x0, 0x0, 0xff, 0x0, 0x8c, 0x8c, 0x0, 0xff, 0x0, 0x0, 0xce, 0x5e, 0xf3, 0x0, 0x0, 0xf3, 0x0, 0x0, 0x13, 0x5e, 0x43, 0x0, 0x0, 0x43, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x13, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x13, 0x13, 0x13, 0xce, 0x13, 0x13, 0x0, 0x0, 0x8c, 0x9b, 0xb5, 0xb5, 0xb5, 0xff, 0xb5, 0xb5, 0x0, 0x0, 0xff, 0x22, 0x22, 0x22, 0x22, 0xff, 0x22, 0x22, 0x0, 0x0, 0x8c, 0x0, 0x0, 0x0, 0x0, 0x8c, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x22, 0x22, 0x22, 0x22, 0x22, 0x0, 0x0, 0x5e, 0xce, 0x9b, 0x9b, 0x9b, 0x9b, 0x0, 0x0, 0xff, 0x22, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xc1, 0x5e, 0x13, 0x13, 0x13, 0x13, 0x0, 0x0, 0xb5, 0xe6, 0xb5, 0xb5, 0xb5, 0xb5, 0x0, 0x0, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x22, 0x5e, 0xa7, 0x0, 0x0, 0x13, 0x43, 0x80, 0xb5, 0x8c, 0x43, 0x0, 0x0, 0xce, 0x9c, 0x43, 0x13, 0x0, 0x0, 0x0, 0x0, 0x5e, 0x9b, 0xa7, 0x43, 0x13, 0x0, 0x0, 0x0, 0x0, 0x0, 0x43, 0x80, 0x9c, 0x8c, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x13, 0x5e, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x22, 0x5e, 0xa7, 0x0, 0x0, 0x43, 0x8c, 0x9b, 0x9b, 0x5e, 0x43, 0x0, 0x0, 0xc2, 0xa9, 0x65, 0x13, 0x0, 0x0, 0x0, 0x0, 0x13, 0x43, 0x80, 0x9c, 0x80, 0x43, 0x0, 0x0, 0x0, 0x13, 0x22, 0x72, 0xce, 0xc2, 0x0, 0x0, 0x8c, 0xa9, 0x9b, 0x5e, 0x22, 0x13, 0x0, 0x0, 0x8c, 0xa9, 0x80, 0x43, 0x22, 0x0, 0x0, 0x0, 0x0, 0x13, 0x43, 0x80, 0xb5, 0xa7, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x13, 0x43, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xb3, 0x13, 0x0, 0x0, 0x13, 0xb3, 0x0, 0x0, 0x5e, 0xb5, 0x22, 0x43, 0xb5, 0x8c, 0x0, 0x0, 0x0, 0x35, 0xe6, 0xf3, 0x22, 0x0, 0x0, 0x0, 0x43, 0xb5, 0x5e, 0x5e, 0x9b, 0x22, 0x0, 0x0, 0xc2, 0x22, 0x0, 0x0, 0x22, 0xce, 0x0, 0x0, 0x13, 0x0, 0x0, 0x0, 0x0, 0x22, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xb3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x22, 0x5e, 0xa7, 0x0, 0x0, 0xe6, 0x5e, 0x13, 0x13, 0x43, 0x80, 0xb5, 0x8c, 0x43, 0x0, 0x0, 0x22, 0xb3, 0xb5, 0xce, 0x8e, 0x43, 0x13, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x22, 0x5e, 0x9c, 0x80, 0x43, 0x13, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x13, 0x43, 0xa7, 0xb5, 0x8c, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x22, 0x5e, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x8c, 0x0, 0x0, 0x0, 0x0, 0x5e, 0x0, 0x0, 0xff, 0x9b, 0x22, 0x0, 0x0, 0xff, 0x0, 0x0, 0xff, 0x22, 0xce, 0x22, 0x0, 0xff, 0x0, 0x0, 0xff, 0x0, 0x22, 0xb5, 0x43, 0xff, 0x0, 0x0, 0xff, 0x0, 0x0, 0x13, 0xa7, 0xff, 0x0, 0x0, 0x8c, 0x0, 0x0, 0x0, 0x0, 0x8c, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x8c, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x43, 0x8c, 0x80, 0x80, 0xa7, 0x5e, 0xa7, 0x80, 0x80, 0x8c, 0x43, 0x0, 0x0, 0xe7, 0x5e, 0x43, 0x43, 0x43, 0x0, 0x43, 0x43, 0x43, 0x5e, 0xe7, 0x0, 0x0, 0x43, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x43, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x0, 0x0, 0xb5, 0xb5, 0xb5, 0xb5, 0xb5, 0xb5, 0xb5, 0xb5, 0xb5, 0xb5, 0xb5, 0xb5, 0x0, 0x0, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x8c, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x8c, 0x0, 0x0, 0xb3, 0x9b, 0x9b, 0x9b, 0x80, 0x13, 0x80, 0x9b, 0x9b, 0x9b, 0xb3, 0x0, 0x0, 0x0, 0x22, 0x22, 0x22, 0x43, 0xb5, 0x43, 0x22, 0x22, 0x22, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x22, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x9b, 0x43, 0x0, 0x0, 0x22, 0xf3, 0x0, 0x0, 0x22, 0xe6, 0x0, 0x0, 0xe6, 0x22, 0x0, 0x0, 0xf3, 0x22, 0x0, 0x0, 0x43, 0x9b, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x13, 0x0, 0x0, 0xa7, 0xa7, 0xa7, 0x9b, 0x9b, 0x9b, 0x0, 0xce, 0x0, 0x0, 0x43, 0x43, 0x43, 0x22, 0x22, 0x22, 0x0, 0x5e, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x22, 0x22, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x13, 0xb3, 0xb5, 0xb5, 0xb3, 0x0, 0x0, 0x0, 0x0, 0x0, 0xce, 0x5e, 0x13, 0x13, 0x8c, 0xb3, 0x0, 0x0, 0x0, 0x80, 0xff, 0x80, 0x80, 0x80, 0x80, 0xff, 0x80, 0x0, 0x0, 0x43, 0xff, 0x43, 0x43, 0x43, 0x43, 0xff, 0x43, 0x0, 0x0, 0x0, 0x5e, 0x0, 0x0, 0x0, 0x0, 0x8c, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x8c, 0x0, 0x0, 0x0, 0x5e, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xa7, 0x43, 0x43, 0xff, 0x43, 0x43, 0x22, 0x0, 0x0, 0x0, 0xff, 0x43, 0xa7, 0xa7, 0xff, 0xa7, 0xa7, 0xce, 0x5e, 0x0, 0x0, 0xff, 0x0, 0x0, 0x0, 0xff, 0x0, 0x0, 0x22, 0xff, 0x0, 0x0, 0xff, 0x0, 0x0, 0x0, 0x8c, 0x0, 0x0, 0x0, 0xff, 0x0, 0x0, 0xce, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x5e, 0x0, 0x0, 0x13, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x00}; diff --git a/source/main.cpp b/source/main.cpp index 7b16b68..1842ea6 100644 --- a/source/main.cpp +++ b/source/main.cpp @@ -6,7 +6,6 @@ #include #include <3ds.h> -#include "output.h" #include "utils/shared_font/shared_font.h" #include "utils/savedatacheck/savedatacheck.h" @@ -18,24 +17,22 @@ static void (*utils[]) (void) = { int main() { - srvInit(); aptInit(); - hidInit(NULL); - fsInit(); gfxInitDefault(); - gfxSet3D(false); + consoleInit(GFX_TOP, nullptr); - clearScreens(); - print(GFX_TOP, "Press A to begin...\n"); + consoleClear(); + printf("Press A to begin...\n"); while (aptMainLoop()) { - drawFrames(); + gfxFlushBuffers(); + gfxSwapBuffers(); hidScanInput(); if (hidKeysDown() & KEY_START) { break; } else if (hidKeysDown() & KEY_A) { - clearScreen(GFX_TOP); + consoleClear(); if (util_counter < (sizeof(utils) / sizeof(utils[0]))) { utils[util_counter](); @@ -44,19 +41,16 @@ int main() break; } - print(GFX_TOP, "\n"); - print(GFX_TOP, "Press A to continue...\n"); + printf("\n"); + printf("Press A to continue...\n"); } gspWaitForEvent(GSPEVENT_VBlank0, false); } - clearScreens(); + consoleClear(); gfxExit(); - fsExit(); - hidExit(); aptExit(); - srvExit(); return 0; } diff --git a/source/output.cpp b/source/output.cpp deleted file mode 100644 index 7c77ce5..0000000 --- a/source/output.cpp +++ /dev/null @@ -1,98 +0,0 @@ -#include "output.h" - -#include -#include -#include -#include -#include -#include - -#include <3ds.h> - -#include "text.h" - -static std::string bufferTop; -static std::string bufferBottom; - -static int countLines(const std::string& str) -{ - if (str.empty()) - return 0; - - return 1 + std::count_if(str.begin(), str.end(), [](char c) { return c == '\n'; }); -} - -static void deleteFirstLine(std::string* str) -{ - if (str->empty()) - return; - - size_t linebreak = str->find_first_of('\n'); - - if (linebreak == std::string::npos || linebreak + 1 > str->length()) { - *str = {}; - return; - } - - *str = str->substr(linebreak + 1); -} - -static void drawFrame(gfxScreen_t screen, char b, char g, char r) -{ - int screenHeight = 240; - int screenWidth = (screen == GFX_TOP) ? 400 : 320; - std::string& textBuffer = (screen == GFX_TOP) ? bufferTop : bufferBottom; - - u8* bufAdr = gfxGetFramebuffer(screen, GFX_LEFT, nullptr, nullptr); - for (int i = 0; i < screenWidth * screenHeight * 3; i += 3) { - bufAdr[i] = b; - bufAdr[i+1] = g; - bufAdr[i+2] = r; - } - - int lines = countLines(textBuffer); - while (lines > (screenHeight / fontDefault.height - 3)) { - deleteFirstLine(&textBuffer); - lines--; - } - gfxDrawText(screen, GFX_LEFT, nullptr, textBuffer, screenHeight - fontDefault.height * 3, 10); -} - -void drawFrames() -{ - drawFrame(GFX_TOP, 0x88, 0x66, 0x00); - drawFrame(GFX_BOTTOM, 0x00, 0x00, 0x00); - gfxFlushBuffers(); - gfxSwapBuffers(); -} - -void print(gfxScreen_t screen, const char* format, ...) -{ - std::string& textBuffer = (screen == GFX_TOP) ? bufferTop : bufferBottom; - - va_list arguments; - char *vaStr; - - va_start(arguments, format); - vasprintf(&vaStr, format, arguments); - va_end(arguments); - - textBuffer += std::string(vaStr); - svcOutputDebugString(vaStr, strlen(vaStr)); - free(vaStr); - - drawFrames(); -} - -void clearScreen(gfxScreen_t screen) -{ - std::string& textBuffer = (screen == GFX_TOP) ? bufferTop : bufferBottom; - textBuffer.clear(); - drawFrames(); -} - -void clearScreens() -{ - clearScreen(GFX_TOP); - clearScreen(GFX_BOTTOM); -} diff --git a/source/output.h b/source/output.h deleted file mode 100644 index 6ce9cf8..0000000 --- a/source/output.h +++ /dev/null @@ -1,8 +0,0 @@ -#pragma once - -#include <3ds.h> - -void drawFrames(); -void print(gfxScreen_t screen, const char* format, ...); -void clearScreen(gfxScreen_t screen); -void clearScreens(); diff --git a/source/text.cpp b/source/text.cpp deleted file mode 100644 index 1dcf8aa..0000000 --- a/source/text.cpp +++ /dev/null @@ -1,80 +0,0 @@ -#include -#include -#include -#include <3ds.h> -#include "text.h" - -#include "font.h" - -//this code is not meant to be readable -int drawCharacter(u8* fb, font_s* font, char c, s16 x, s16 y, u16 w, u16 h) -{ - Glyph* cd = &font->desc[(int)c]; - - if (!cd->data) - return 0; - - x += cd->xo; y += font->height - cd->yo - cd->h; - - if (x < 0 || x + cd->w >= w || y < -cd->h || y >= h + cd->h) - return 0; - - u8* charData = cd->data; - s16 cy = y, ch = cd->h, cyo = 0; - - if (y < 0) { - cy = 0; - cyo = -y; - ch = cd->h-cyo; - } else if (y + ch > h) { - ch = h - y; - } - - fb += (x * h + cy) * 3; - const u8 r = font->color[0]; - const u8 g = font->color[1]; - const u8 b = font->color[2]; - - for (int i = 0; i < cd->w; i++) { - charData += cyo; - for (int j = 0; j < ch; j++) { - u8 v = *(charData++); - if (v) { - fb[0] = (fb[0] * (0xFF - v) + (b * v)) >> 8; - fb[1] = (fb[1] * (0xFF - v) + (g * v)) >> 8; - fb[2] = (fb[2] * (0xFF - v) + (r * v)) >> 8; - } - fb += 3; - } - charData += (cd->h - (cyo + ch)); - fb += (h - ch) * 3; - } - return cd->xa; -} - -void drawString(u8* fb, font_s* f, const std::string& str, s16 x, s16 y, u16 w, u16 h) -{ - if (!f || !fb) - return; - - int dx = 0, dy = 0; - for (const char& c : str) - { - dx += drawCharacter(fb, f, c, x + dx, y + dy, w, h); - if (c == '\n') { - dx = 0; - dy -= f->height; - } - } -} - -void gfxDrawText(gfxScreen_t screen, gfx3dSide_t side, font_s* font, const std::string& str, s16 x, s16 y) -{ - if (!font) - font = &fontDefault; - - u16 fbWidth, fbHeight; - u8* fbAdr = gfxGetFramebuffer(screen, side, &fbWidth, &fbHeight); - - drawString(fbAdr, font, str, y, x, fbHeight, fbWidth); -} diff --git a/source/text.h b/source/text.h deleted file mode 100644 index 719d5c3..0000000 --- a/source/text.h +++ /dev/null @@ -1,9 +0,0 @@ -#pragma once - -#include - -#include "font.h" - -int drawCharacter(u8* fb, font_s* f, char c, s16 x, s16 y, u16 w, u16 h); -void drawString(u8* fb, font_s* f, const std::string& str, s16 x, s16 y, u16 w, u16 h); -void gfxDrawText(gfxScreen_t screen, gfx3dSide_t side, font_s* f, const std::string& str, s16 x, s16 y); diff --git a/source/utils/savedatacheck/savedatacheck.cpp b/source/utils/savedatacheck/savedatacheck.cpp index e63df17..636e62e 100644 --- a/source/utils/savedatacheck/savedatacheck.cpp +++ b/source/utils/savedatacheck/savedatacheck.cpp @@ -8,7 +8,6 @@ #include <3ds.h> -#include "output.h" #include "utils/shared_font/shared_font.h" namespace SaveDataCheck { @@ -34,7 +33,7 @@ void DumpSharedRomFS(u32* archive_binary_lowpath) { u8 file_binary_lowpath[20] = {}; FS_path romfs_path = { PATH_BINARY, 20, file_binary_lowpath }; - print(GFX_TOP, "Dumping SaveDataCheck RomFS (%s)... ", output_file.c_str()); + printf("Dumping SaveDataCheck RomFS (%s)... ", output_file.c_str()); FSUSER_OpenFileDirectly(NULL, &romfs_handle, savedatacheck_archive, romfs_path, FS_OPEN_READ, FS_ATTRIBUTE_NONE); FSFILE_GetSize(romfs_handle, &romfs_size); @@ -50,9 +49,9 @@ void DumpSharedRomFS(u32* archive_binary_lowpath) { fclose(out_file); if (bytes_written == romfs_size) - print(GFX_TOP, "Done!\n"); + printf("Done!\n"); else - print(GFX_TOP, "Failed!\n"); + printf("Failed!\n"); } void Dump() { diff --git a/source/utils/shared_font/shared_font.cpp b/source/utils/shared_font/shared_font.cpp index 4e9edef..0780f82 100644 --- a/source/utils/shared_font/shared_font.cpp +++ b/source/utils/shared_font/shared_font.cpp @@ -6,7 +6,6 @@ #include <3ds.h> -#include "output.h" #include "utils/shared_font/shared_font.h" namespace SharedFont { @@ -16,13 +15,13 @@ static const u32 SHARED_FONT_SIZE = 0x300000; void Dump() { static const char* path = "/shared_font.bin"; - print(GFX_TOP, "Dumping shared system font (%s)... ", path); + printf("Dumping shared system font (%s)... ", path); // Connect to APT service... Handle apt_handle; srvGetServiceHandle(&apt_handle, "APT:U"); - u32* cmdbuf=getThreadCommandBuffer(); + u32* cmdbuf = getThreadCommandBuffer(); // Call APT::GetSharedFont function to load font into memory... @@ -46,12 +45,10 @@ void Dump() { size_t bytes_written = fwrite(shared_font_addr, 1, SHARED_FONT_SIZE, out_file); fclose(out_file); - // Check result... - if (bytes_written == SHARED_FONT_SIZE) - print(GFX_TOP, "Done!\n"); + printf("Done!\n"); else - print(GFX_TOP, "Failed!\n"); + printf("Failed!\n"); } } // namespace