suzanne
authorJohn Tsiombikas <nuclear@member.fsf.org>
Mon, 15 Mar 2021 06:54:37 +0000 (08:54 +0200)
committerJohn Tsiombikas <nuclear@member.fsf.org>
Mon, 15 Mar 2021 06:54:37 +0000 (08:54 +0200)
src/main.c
src/meshdata.h
src/polyfill.c
src/xgl.c
src/xgl.h
tools/meshdump/main.c

index bd0b287..d5dc096 100644 (file)
@@ -36,7 +36,7 @@ static void handle_keys(void);
 extern struct { unsigned char r, g, b; } bgimg_cmap[];
 extern unsigned char bgimg_pixels[];
 
-static int32_t cam_theta, cam_phi;
+static int32_t cam_theta = 0x10000, cam_phi = -0x8000;
 
 int main(void)
 {
@@ -66,16 +66,15 @@ int main(void)
                *cptr++ = r | (g << 5) | (b << 10);
        }
        for(i=0; i<128; i++) {
-               r = (rand() & 0xf) + 8;
-               g = (rand() & 0xf) + 8;
-               b = (rand() & 0xf) + 8;
-               *cptr++ = r | (g << 5) | (b << 10);
+               r = i / 5 + 6;
+               *cptr++ = r | (r << 5) | (r << 10);
        }
        memcpy(fbptr[0], bgimg_pixels, 240 * 160);
        memcpy(fbptr[1], bgimg_pixels, 240 * 160);
 
        xgl_init();
-       xgl_viewport(0, MENU_HEIGHT, 240, VP_HEIGHT);
+       xgl_viewport(0, 0, 240, VP_HEIGHT);
+       xgl_enable(XGL_LIGHTING);
 
        key_repeat(75, 75, KEY_LEFT | KEY_RIGHT | KEY_DOWN | KEY_UP);
 
@@ -89,7 +88,7 @@ int main(void)
                memset(fb, 14, 240 * VP_HEIGHT);
 
                xgl_load_identity();
-               xgl_translate(0, 0, 5 << 16);
+               xgl_translate(0, 0, 8 << 16);
                xgl_rotate_x(cam_phi);
                xgl_rotate_y(cam_theta);
 //             xgl_draw(XGL_QUADS, cube, sizeof cube / sizeof *cube);
index 5800e89..3c5c1c7 100644 (file)
 
 static struct xvertex cube[] __attribute__((section(".rodata"))) = {
        /* front */
-       {-0x10000, -0x10000, -0x10000,  0, 0, -0x10000, 128},
-       {0x10000, -0x10000, -0x10000,   0, 0, -0x10000, 128},
-       {0x10000, 0x10000, -0x10000,    0, 0, -0x10000, 128},
-       {-0x10000, 0x10000, -0x10000,   0, 0, -0x10000, 128},
+       {-0x10000, -0x10000, -0x10000,  0, 0, -0x10000, 255},
+       {0x10000, -0x10000, -0x10000,   0, 0, -0x10000, 255},
+       {0x10000, 0x10000, -0x10000,    0, 0, -0x10000, 255},
+       {-0x10000, 0x10000, -0x10000,   0, 0, -0x10000, 255},
        /* right */
-       {0x10000, -0x10000, -0x10000,   0x10000, 0, 0,  129},
-       {0x10000, -0x10000, 0x10000,    0x10000, 0, 0,  129},
-       {0x10000, 0x10000, 0x10000,             0x10000, 0, 0,  129},
-       {0x10000, 0x10000, -0x10000,    0x10000, 0, 0,  129},
+       {0x10000, -0x10000, -0x10000,   0x10000, 0, 0,  128},
+       {0x10000, -0x10000, 0x10000,    0x10000, 0, 0,  128},
+       {0x10000, 0x10000, 0x10000,             0x10000, 0, 0,  128},
+       {0x10000, 0x10000, -0x10000,    0x10000, 0, 0,  128},
        /* back */
-       {0x10000, -0x10000, 0x10000,    0, 0, 0x10000,  130},
-       {-0x10000, -0x10000, 0x10000,   0, 0, 0x10000,  130},
-       {-0x10000, 0x10000, 0x10000,    0, 0, 0x10000,  130},
-       {0x10000, 0x10000, 0x10000,             0, 0, 0x10000,  130},
+       {0x10000, -0x10000, 0x10000,    0, 0, 0x10000,  200},
+       {-0x10000, -0x10000, 0x10000,   0, 0, 0x10000,  200},
+       {-0x10000, 0x10000, 0x10000,    0, 0, 0x10000,  200},
+       {0x10000, 0x10000, 0x10000,             0, 0, 0x10000,  200},
        /* left */
-       {-0x10000, -0x10000, 0x10000,   -0x10000, 0, 0, 131},
-       {-0x10000, -0x10000, -0x10000,  -0x10000, 0, 0, 131},
-       {-0x10000, 0x10000, -0x10000,   -0x10000, 0, 0, 131},
-       {-0x10000, 0x10000, 0x10000,    -0x10000, 0, 0, 131},
+       {-0x10000, -0x10000, 0x10000,   -0x10000, 0, 0, 192},
+       {-0x10000, -0x10000, -0x10000,  -0x10000, 0, 0, 192},
+       {-0x10000, 0x10000, -0x10000,   -0x10000, 0, 0, 192},
+       {-0x10000, 0x10000, 0x10000,    -0x10000, 0, 0, 192},
        /* top */
-       {-0x10000, 0x10000, -0x10000,   0, 0x10000, 0,  132},
-       {0x10000, 0x10000, -0x10000,    0, 0x10000, 0,  132},
-       {0x10000, 0x10000, 0x10000,             0, 0x10000, 0,  132},
-       {-0x10000, 0x10000, 0x10000,    0, 0x10000, 0,  132},
+       {-0x10000, 0x10000, -0x10000,   0, 0x10000, 0,  150},
+       {0x10000, 0x10000, -0x10000,    0, 0x10000, 0,  150},
+       {0x10000, 0x10000, 0x10000,             0, 0x10000, 0,  150},
+       {-0x10000, 0x10000, 0x10000,    0, 0x10000, 0,  150},
        /* bottom */
-       {0x10000, -0x10000, -0x10000,   0, -0x10000, 0, 133},
-       {-0x10000, -0x10000, -0x10000,  0, -0x10000, 0, 133},
-       {-0x10000, -0x10000, 0x10000,   0, -0x10000, 0, 133},
-       {0x10000, -0x10000, 0x10000,    0, -0x10000, 0, 133}
+       {0x10000, -0x10000, -0x10000,   0, -0x10000, 0, 210},
+       {-0x10000, -0x10000, -0x10000,  0, -0x10000, 0, 210},
+       {-0x10000, -0x10000, 0x10000,   0, -0x10000, 0, 210},
+       {0x10000, -0x10000, 0x10000,    0, -0x10000, 0, 210}
 };
 
 /* suz.obj (0 submeshes): 1215 vertices, 405 faces */
 static struct xvertex suzanne[] __attribute__((section(".rodata"))) = {
-       {30805, 15813, 50108,   49787, -11711, 40973,   0xff},
-       {28750, 9658, 50846,    49787, -11711, 40973,   0xff},
-       {41501, 15861, 37125,   49787, -11711, 40973,   0xff},
-       {-28750, 9658, 50846,   -49787, -11711, 40973,  0xff},
-       {-30805, 15813, 50108,  -49787, -11711, 40973,  0xff},
-       {-41501, 15861, 37125,  -49787, -11711, 40973,  0xff},
-       {28750, 9658, 50846,    30303, -44459, 37421,   0xff},
-       {22860, -2614, 41035,   30303, -44459, 37421,   0xff},
-       {35840, 3584, 37888,    30303, -44459, 37421,   0xff},
-       {-22860, -2614, 41035,  -30303, -44459, 37421,  0xff},
-       {-28750, 9658, 50846,   -30303, -44459, 37421,  0xff},
-       {-35840, 3584, 37888,   -30303, -44459, 37421,  0xff},
-       {23522, 8413, 53136,    -21771, -45088, 42283,  0xff},
-       {15934, 12004, 53058,   -21771, -45088, 42283,  0xff},
-       {22860, -2614, 41035,   -21771, -45088, 42283,  0xff},
-       {-15934, 12004, 53058,  21771, -45088, 42283,   0xff},
-       {-23522, 8413, 53136,   21771, -45088, 42283,   0xff},
-       {-22860, -2614, 41035,  21771, -45088, 42283,   0xff},
-       {4300, 15825, 43537,    -43109, -24562, 42821,  0xff},
-       {10240, 3584, 42496,    -43109, -24562, 42821,  0xff},
-       {15934, 12004, 53058,   -43109, -24562, 42821,  0xff},
-       {15934, 12004, 53058,   -40402, 4967, 51360,    0xff},
-       {17110, 21655, 53050,   -40402, 4967, 51360,    0xff},
-       {4300, 15825, 43537,    -40402, 4967, 51360,    0xff},
-       {-17110, 21655, 53050,  40402, 4967, 51360,     0xff},
-       {-15934, 12004, 53058,  40402, 4967, 51360,     0xff},
-       {-4300, 15825, 43537,   40402, 4967, 51360,     0xff},
-       {-17110, 21655, 53050,  43004, 23416, 43561,    0xff},
-       {-4300, 15825, 43537,   43004, 23416, 43561,    0xff},
-       {-10240, 28672, 42496,  43004, 23416, 43561,    0xff},
-       {41501, 15861, 37125,   50082, 19916, 37283,    0xff},
-       {35840, 28672, 37888,   50082, 19916, 37283,    0xff},
-       {28828, 22209, 50756,   50082, 19916, 37283,    0xff},
-       {-30805, 15813, 50108,  -49813, 11232, 41077,   0xff},
-       {-28828, 22209, 50756,  -49813, 11232, 41077,   0xff},
-       {-41501, 15861, 37125,  -49813, 11232, 41077,   0xff},
-       {23522, 8413, 53136,    26627, -1710, 59860,    0xff},
-       {28750, 9658, 50846,    26627, -1710, 59860,    0xff},
-       {30805, 15813, 50108,   26627, -1710, 59860,    0xff},
-       {-30805, 15813, 50108,  -26627, -1710, 59860,   0xff},
-       {-28750, 9658, 50846,   -26627, -1710, 59860,   0xff},
-       {-23522, 8413, 53136,   -26627, -1710, 59860,   0xff},
-       {23522, 8413, 53136,    -616, 124, 65536,       0xff},
-       {17110, 21655, 53050,   -616, 124, 65536,       0xff},
-       {15934, 12004, 53058,   -616, 124, 65536,       0xff},
-       {-15934, 12004, 53058,  616, 124, 65536,        0xff},
-       {-17110, 21655, 53050,  616, 124, 65536,        0xff},
-       {-23522, 8413, 53136,   616, 124, 65536,        0xff},
-       {23522, 8413, 53136,    9155, 4856, 64710,      0xff},
-       {22663, 24387, 52059,   9155, 4856, 64710,      0xff},
-       {17110, 21655, 53050,   9155, 4856, 64710,      0xff},
-       {-17110, 21655, 53050,  -9155, 4856, 64710,     0xff},
-       {-22663, 24387, 52059,  -9155, 4856, 64710,     0xff},
-       {-23522, 8413, 53136,   -9155, 4856, 64710,     0xff},
-       {23522, 8413, 53136,    15237, 5098, 63537,     0xff},
-       {28828, 22209, 50756,   15237, 5098, 63537,     0xff},
-       {22663, 24387, 52059,   15237, 5098, 63537,     0xff},
-       {-22663, 24387, 52059,  -15237, 5098, 63537,    0xff},
-       {-28828, 22209, 50756,  -15237, 5098, 63537,    0xff},
-       {-23522, 8413, 53136,   -15237, 5098, 63537,    0xff},
-       {23522, 8413, 53136,    24064, 1258, 60948,     0xff},
-       {30805, 15813, 50108,   24064, 1258, 60948,     0xff},
-       {28828, 22209, 50756,   24064, 1258, 60948,     0xff},
-       {-28828, 22209, 50756,  -24064, 1258, 60948,    0xff},
-       {-30805, 15813, 50108,  -24064, 1258, 60948,    0xff},
-       {-23522, 8413, 53136,   -24064, 1258, 60948,    0xff},
-       {17889, -58077, 42583,  13015, -55725, 31948,   0xff},
-       {0, -64120, 39331,      13015, -55725, 31948,   0xff},
-       {23886, -61271, 34567,  13015, -55725, 31948,   0xff},
-       {10717, 45254, 49982,   -11495, 54322, 34819,   0xff},
-       {16522, 42544, 56125,   -11495, 54322, 34819,   0xff},
-       {20576, 48728, 47817,   -11495, 54322, 34819,   0xff},
-       {-10717, 45254, 49982,  38757, 23868, 47153,    0xff},
-       {-16522, 42544, 56125,  38757, 23868, 47153,    0xff},
-       {-6655, 28160, 55296,   38757, 23868, 47153,    0xff},
-       {-18675, 32472, 49395,  -33770, -26030, 49768,  0xff},
-       {-6655, 28160, 55296,   -33770, -26030, 49768,  0xff},
-       {-16522, 42544, 56125,  -33770, -26030, 49768,  0xff},
-       {38730, -56, 40521,     22865, -13107, 59998,   0xff},
-       {35596, 13941, 44774,   22865, -13107, 59998,   0xff},
-       {26259, 723, 45445,     22865, -13107, 59998,   0xff},
-       {7184, -8347, 51436,    17275, 5282, 62999,     0xff},
-       {26259, 723, 45445,     17275, 5282, 62999,     0xff},
-       {12499, 6571, 48727,    17275, 5282, 62999,     0xff},
-       {-7184, -8347, 51436,   -23343, -9083, 60561,   0xff},
-       {-26259, 723, 45445,    -23343, -9083, 60561,   0xff},
-       {-38730, -56, 40521,    -23343, -9083, 60561,   0xff},
-       {12499, 6571, 48727,    -3604, 12930, 64146,    0xff},
-       {0, 5276, 48287,        -3604, 12930, 64146,    0xff},
-       {7184, -8347, 51436,    -3604, 12930, 64146,    0xff},
-       {0, 5276, 48287,        3604, 12930, 64146,     0xff},
-       {-12499, 6571, 48727,   3604, 12930, 64146,     0xff},
-       {-7184, -8347, 51436,   3604, 12930, 64146,     0xff},
-       {-12499, 6571, 48727,   1133, -11042, 64592,    0xff},
-       {0, 5276, 48287,        1133, -11042, 64592,    0xff},
-       {-10870, 21498, 51250,  1133, -11042, 64592,    0xff},
-       {5321, -56373, 46002,   14398, -17308, 61544,   0xff},
-       {17889, -58077, 42583,  14398, -17308, 61544,   0xff},
-       {6576, -48050, 48049,   14398, -17308, 61544,   0xff},
-       {9270, -15610, 48065,   26856, -2260, 59736,    0xff},
-       {6576, -48050, 48049,   26856, -2260, 59736,    0xff},
-       {17889, -58077, 42583,  26856, -2260, 59736,    0xff},
-       {-6576, -48050, 48049,  -26856, -2260, 59736,   0xff},
-       {-9270, -15610, 48065,  -26856, -2260, 59736,   0xff},
-       {-17889, -58077, 42583, -26856, -2260, 59736,   0xff},
-       {7184, -8347, 51436,    63412, 15289, 6311,     0xff},
-       {8547, -14728, 53199,   63412, 15289, 6311,     0xff},
-       {9270, -15610, 48065,   63412, 15289, 6311,     0xff},
-       {-8547, -14728, 53199,  -63412, 15289, 6311,    0xff},
-       {-7184, -8347, 51436,   -63412, 15289, 6311,    0xff},
-       {-9270, -15610, 48065,  -63412, 15289, 6311,    0xff},
-       {3406, -8432, 52239,    -3702, 64572, -10557,   0xff},
-       {7184, -8347, 51436,    -3702, 64572, -10557,   0xff},
-       {0, -9216, 48640,       -3702, 64572, -10557,   0xff},
-       {0, -12288, 52224,      -65536, 0, 0,   0xff},
-       {0, -9216, 48640,       -65536, 0, 0,   0xff},
-       {0, -12799, 49152,      -65536, 0, 0,   0xff},
-       {0, -12288, 52224,      42795, 37683, 32302,    0xff},
-       {0, -9216, 48640,       42795, 37683, 32302,    0xff},
-       {-3406, -8432, 52239,   42795, 37683, 32302,    0xff},
-       {-9270, -15610, 48065,  -38200, -51321, 14201,  0xff},
-       {0, -22071, 49653,      -38200, -51321, 14201,  0xff},
-       {-8547, -14728, 53199,  -38200, -51321, 14201,  0xff},
-       {0, -9216, 48640,       -23920, 1487, 60994,    0xff},
-       {7184, -8347, 51436,    -23920, 1487, 60994,    0xff},
-       {0, 5276, 48287,        -23920, 1487, 60994,    0xff},
-       {-7184, -8347, 51436,   23920, 1487, 60994,     0xff},
-       {0, -9216, 48640,       23920, 1487, 60994,     0xff},
-       {0, 5276, 48287,        23920, 1487, 60994,     0xff},
-       {13735, -11853, 34559,  54532, 26102, 25290,    0xff},
-       {9270, -15610, 48065,   54532, 26102, 25290,    0xff},
-       {20480, -28672, 37375,  54532, 26102, 25290,    0xff},
-       {-5321, -56373, 46002,  20289, 44243, 43882,    0xff},
-       {0, -57030, 44204,      20289, 44243, 43882,    0xff},
-       {-6289, -52090, 42131,  20289, 44243, 43882,    0xff},
-       {26259, 723, 45445,     21338, -19516, 58812,   0xff},
-       {30196, 7872, 46389,    21338, -19516, 58812,   0xff},
-       {24499, 5671, 47725,    21338, -19516, 58812,   0xff},
-       {-30196, 7872, 46389,   -21338, -19516, 58812,  0xff},
-       {-26259, 723, 45445,    -21338, -19516, 58812,  0xff},
-       {-24499, 5671, 47725,   -21338, -19516, 58812,  0xff},
-       {26259, 723, 45445,     44531, -29537, 37938,   0xff},
-       {35596, 13941, 44774,   44531, -29537, 37938,   0xff},
-       {30196, 7872, 46389,    44531, -29537, 37938,   0xff},
-       {-35596, 13941, 44774,  -44531, -29537, 37938,  0xff},
-       {-26259, 723, 45445,    -44531, -29537, 37938,  0xff},
-       {-30196, 7872, 46389,   -44531, -29537, 37938,  0xff},
-       {-18675, 32472, 49395,  -25460, 29890, 52474,   0xff},
-       {-37532, 23949, 45101,  -25460, 29890, 52474,   0xff},
-       {-27064, 25462, 49318,  -25460, 29890, 52474,   0xff},
-       {18675, 32472, 49395,   16207, 18730, 60673,    0xff},
-       {21074, 28557, 49962,   16207, 18730, 60673,    0xff},
-       {27064, 25462, 49318,   16207, 18730, 60673,    0xff},
-       {-21074, 28557, 49962,  -16207, 18730, 60673,   0xff},
-       {-18675, 32472, 49395,  -16207, 18730, 60673,   0xff},
-       {-27064, 25462, 49318,  -16207, 18730, 60673,   0xff},
-       {18675, 32472, 49395,   1179, 10105, 64743,     0xff},
-       {10870, 21498, 51250,   1179, 10105, 64743,     0xff},
-       {21074, 28557, 49962,   1179, 10105, 64743,     0xff},
-       {-10870, 21498, 51250,  -1179, 10105, 64743,    0xff},
-       {-18675, 32472, 49395,  -1179, 10105, 64743,    0xff},
-       {-21074, 28557, 49962,  -1179, 10105, 64743,    0xff},
-       {10870, 21498, 51250,   -5511, 19346, 62370,    0xff},
-       {18413, 25989, 50524,   -5511, 19346, 62370,    0xff},
-       {21074, 28557, 49962,   -5511, 19346, 62370,    0xff},
-       {-21074, 28557, 49962,  -9299, 4508, 64716,     0xff},
-       {-27064, 25462, 49318,  -9299, 4508, 64716,     0xff},
-       {-18413, 25989, 50524,  -9299, 4508, 64716,     0xff},
-       {27064, 25462, 49318,   21843, -15545, 59801,   0xff},
-       {36154, 18883, 44288,   21843, -15545, 59801,   0xff},
-       {37532, 23949, 45101,   21843, -15545, 59801,   0xff},
-       {-37532, 23949, 45101,  55253, 9581, 33914,     0xff},
-       {-35596, 13941, 44774,  55253, 9581, 33914,     0xff},
-       {-36154, 18883, 44288,  55253, 9581, 33914,     0xff},
-       {24499, 5671, 47725,    1428, 42939, -49492,    0xff},
-       {15872, 8192, 49663,    1428, 42939, -49492,    0xff},
-       {12284, 9600, 50782,    1428, 42939, -49492,    0xff},
-       {12284, 9600, 50782,    28613, 35520, 47054,    0xff},
-       {15872, 8192, 49663,    28613, 35520, 47054,    0xff},
-       {13098, 11318, 48991,   28613, 35520, 47054,    0xff},
-       {-15872, 8192, 49663,   -28613, 35520, 47054,   0xff},
-       {-12284, 9600, 50782,   -28613, 35520, 47054,   0xff},
-       {-13098, 11318, 48991,  -28613, 35520, 47054,   0xff},
-       {10870, 21498, 51250,   20394, -25028, 57029,   0xff},
-       {12799, 19456, 49663,   20394, -25028, 57029,   0xff},
-       {18413, 25989, 50524,   20394, -25028, 57029,   0xff},
-       {-12799, 19456, 49663,  -20394, -25028, 57029,  0xff},
-       {-10870, 21498, 51250,  -20394, -25028, 57029,  0xff},
-       {-18413, 25989, 50524,  -20394, -25028, 57029,  0xff},
-       {10717, 45254, 49982,   -50646, 30690, -28075,  0xff},
-       {17135, 46467, 39730,   -50646, 30690, -28075,  0xff},
-       {7168, 30208, 39936,    -50646, 30690, -28075,  0xff},
-       {-17135, 46467, 39730,  50646, 30690, -28075,   0xff},
-       {-10717, 45254, 49982,  50646, 30690, -28075,   0xff},
-       {-7168, 30208, 39936,   50646, 30690, -28075,   0xff},
-       {20576, 48728, 47817,   -23049, 60922, -7222,   0xff},
-       {17135, 46467, 39730,   -23049, 60922, -7222,   0xff},
-       {10717, 45254, 49982,   -23049, 60922, -7222,   0xff},
-       {-20576, 48728, 47817,  -29563, 51845, -27072,  0xff},
-       {-17135, 46467, 39730,  -29563, 51845, -27072,  0xff},
-       {-29979, 34639, 31110,  -29563, 51845, -27072,  0xff},
-       {52680, 10582, 27526,   58254, 7792, -28993,    0xff},
-       {48630, 26065, 23550,   58254, 7792, -28993,    0xff},
-       {55891, 27603, 38552,   58254, 7792, -28993,    0xff},
-       {0, -31857, 19566,      -16030, -55325, -31260, 0xff},
-       {-16045, -30052, 24599, -16030, -55325, -31260, 0xff},
-       {-11434, -27191, 17172, -16030, -55325, -31260, 0xff},
-       {0, -52736, 22528,      -1369, -36909, -54132,  0xff},
-       {21330, -59803, 26806,  -1369, -36909, -54132,  0xff},
-       {0, -63999, 30208,      -1369, -36909, -54132,  0xff},
-       {23886, -61271, 34567,  62088, 9646, -18625,    0xff},
-       {21330, -59803, 26806,  62088, 9646, -18625,    0xff},
-       {16045, -30052, 24599,  62088, 9646, -18625,    0xff},
-       {-21330, -59803, 26806, -62088, 9646, -18625,   0xff},
-       {-23886, -61271, 34567, -62088, 9646, -18625,   0xff},
-       {-16045, -30052, 24599, -62088, 9646, -18625,   0xff},
-       {-13735, -11853, 34559, -15276, -54958, -32263, 0xff},
-       {-38159, -5503, 35305,  -15276, -54958, -32263, 0xff},
-       {-34586, -3098, 29517,  -15276, -54958, -32263, 0xff},
-       {11434, -27191, 17172,  56492, 17045, -28508,   0xff},
-       {14336, -18432, 28160,  56492, 17045, -28508,   0xff},
-       {16045, -30052, 24599,  56492, 17045, -28508,   0xff},
-       {30128, 26936, -46502,  42860, 11062, -48326,   0xff},
-       {50190, 37864, -26209,  42860, 11062, -48326,   0xff},
-       {54646, 23084, -25639,  42860, 11062, -48326,   0xff},
-       {10240, 28672, 42496,   -13598, 50036, 40081,   0xff},
-       {22663, 24387, 52059,   -13598, 50036, 40081,   0xff},
-       {23039, 33792, 40448,   -13598, 50036, 40081,   0xff},
-       {-48630, 26065, 23550,  -28193, 59106, 2503,    0xff},
-       {-29979, 34639, 31110,  -28193, 59106, 2503,    0xff},
-       {-41471, 29696, 18432,  -28193, 59106, 2503,    0xff},
-       {7168, 30208, 39936,    -25526, 14909, -58490,  0xff},
-       {17135, 46467, 39730,   -25526, 14909, -58490,  0xff},
-       {29979, 34639, 31110,   -25526, 14909, -58490,  0xff},
-       {-17135, 46467, 39730,  25526, 14909, -58490,   0xff},
-       {-7168, 30208, 39936,   25526, 14909, -58490,   0xff},
-       {-29979, 34639, 31110,  25526, 14909, -58490,   0xff},
-       {7168, 30208, 39936,    14424, 33803, 54257,    0xff},
-       {29979, 34639, 31110,   14424, 33803, 54257,    0xff},
-       {0, 37375, 37375,       14424, 33803, 54257,    0xff},
-       {-29979, 34639, 31110,  -14424, 33803, 54257,   0xff},
-       {-7168, 30208, 39936,   -14424, 33803, 54257,   0xff},
-       {0, 37375, 37375,       -14424, 33803, 54257,   0xff},
-       {0, 26624, 39423,       -10590, 12104, 63530,   0xff},
-       {7168, 30208, 39936,    -10590, 12104, 63530,   0xff},
-       {0, 37375, 37375,       -10590, 12104, 63530,   0xff},
-       {0, 37375, 37375,       10590, 12104, 63530,    0xff},
-       {-7168, 30208, 39936,   10590, 12104, 63530,    0xff},
-       {0, 26624, 39423,       10590, 12104, 63530,    0xff},
-       {-52680, 10582, 27526,  -61092, 19464, 13572,   0xff},
-       {-48630, 26065, 23550,  -61092, 19464, 13572,   0xff},
-       {-56241, 17046, 2221,   -61092, 19464, 13572,   0xff},
-       {56241, 17046, 2221,    62141, 11704, 17229,    0xff},
-       {51216, 37752, 6281,    62141, 11704, 17229,    0xff},
-       {48630, 26065, 23550,   62141, 11704, 17229,    0xff},
-       {-51216, 37752, 6281,   -62141, 11704, 17229,   0xff},
-       {-56241, 17046, 2221,   -62141, 11704, 17229,   0xff},
-       {-48630, 26065, 23550,  -62141, 11704, 17229,   0xff},
-       {19456, -20480, -17408, 39498, -52284, -983,    0xff},
-       {29162, -13292, -9698,  39498, -52284, -983,    0xff},
-       {11434, -27191, 17172,  39498, -52284, -983,    0xff},
-       {29162, -13292, -9698,  30579, -57901, 2726,    0xff},
-       {38912, -8192, -10751,  30579, -57901, 2726,    0xff},
-       {47823, -2804, 3726,    30579, -57901, 2726,    0xff},
-       {34586, -3098, 29517,   24766, -59473, 12032,   0xff},
-       {29162, -13292, -9698,  24766, -59473, 12032,   0xff},
-       {47823, -2804, 3726,    24766, -59473, 12032,   0xff},
-       {-29162, -13292, -9698, -24766, -59473, 12032,  0xff},
-       {-34586, -3098, 29517,  -24766, -59473, 12032,  0xff},
-       {-47823, -2804, 3726,   -24766, -59473, 12032,  0xff},
-       {14336, -18432, 28160,  52107, -36621, 15433,   0xff},
-       {11434, -27191, 17172,  52107, -36621, 15433,   0xff},
-       {29162, -13292, -9698,  52107, -36621, 15433,   0xff},
-       {-29162, -13292, -9698, -52107, -36621, 15433,  0xff},
-       {-11434, -27191, 17172, -52107, -36621, 15433,  0xff},
-       {-14336, -18432, 28160, -52107, -36621, 15433,  0xff},
-       {34990, 3085, -35283,   39898, -15250, -49702,  0xff},
-       {30128, 26936, -46502,  39898, -15250, -49702,  0xff},
-       {54646, 23084, -25639,  39898, -15250, -49702,  0xff},
-       {29162, -13292, -9698,  24884, -53477, -28560,  0xff},
-       {34990, 3085, -35283,   24884, -53477, -28560,  0xff},
-       {38912, -8192, -10751,  24884, -53477, -28560,  0xff},
-       {-79147, 32074, -25975, -10164, -8755, 64146,   0xff},
-       {-89343, 20376, -29188, -10164, -8755, 64146,   0xff},
-       {-80904, 16297, -28407, -10164, -8755, 64146,   0xff},
-       {77984, 6266, -28588,   10413, 32204, 56118,    0xff},
-       {68018, -4978, -20287,  10413, 32204, 56118,    0xff},
-       {83968, 3584, -28160,   10413, 32204, 56118,    0xff},
-       {68018, -4978, -20287,  38954, -18867, 49210,   0xff},
-       {55385, -3250, -9623,   38954, -18867, 49210,   0xff},
-       {50688, -9216, -8192,   38954, -18867, 49210,   0xff},
-       {-55385, -3250, -9623,  -38954, -18867, 49210,  0xff},
-       {-68018, -4978, -20287, -38954, -18867, 49210,  0xff},
-       {-50688, -9216, -8192,  -38954, -18867, 49210,  0xff},
-       {77984, 6266, -28588,   -17825, 46910, 42146,   0xff},
-       {67766, 376, -26353,    -17825, 46910, 42146,   0xff},
-       {68018, -4978, -20287,  -17825, 46910, 42146,   0xff},
-       {-67766, 376, -26353,   17825, 46910, 42146,    0xff},
-       {-77984, 6266, -28588,  17825, 46910, 42146,    0xff},
-       {-68018, -4978, -20287, 17825, 46910, 42146,    0xff},
-       {76699, 22655, -30212,  -40108, -12229, 50364,  0xff},
-       {80904, 16297, -28407,  -40108, -12229, 50364,  0xff},
-       {79147, 32074, -25975,  -40108, -12229, 50364,  0xff},
-       {-38912, -8192, -10751, -43823, -47860, -9161,  0xff},
-       {-47823, -2804, 3726,   -43823, -47860, -9161,  0xff},
-       {-46721, -944, -11257,  -43823, -47860, -9161,  0xff},
-       {54169, 18593, -12979,  18677, 9410, 62108,     0xff},
-       {64283, 24671, -16941,  18677, 9410, 62108,     0xff},
-       {60188, 28534, -16295,  18677, 9410, 62108,     0xff},
-       {-64283, 24671, -16941, -18677, 9410, 62108,    0xff},
-       {-54169, 18593, -12979, -18677, 9410, 62108,    0xff},
-       {-60188, 28534, -16295, -18677, 9410, 62108,    0xff},
-       {55385, -3250, -9623,   12818, 61466, 18789,    0xff},
-       {55861, -126, -20169,   12818, 61466, 18789,    0xff},
-       {46721, -944, -11257,   12818, 61466, 18789,    0xff},
-       {-55861, -126, -20169,  -12818, 61466, 18789,   0xff},
-       {-55385, -3250, -9623,  -12818, 61466, 18789,   0xff},
-       {-46721, -944, -11257,  -12818, 61466, 18789,   0xff},
-       {46721, -944, -11257,   45239, 6402, 46982,     0xff},
-       {55861, -126, -20169,   45239, 6402, 46982,     0xff},
-       {55793, 3702, -20626,   45239, 6402, 46982,     0xff},
-       {-54169, 18593, -12979, -60823, -22315, 9869,   0xff},
-       {-50746, 6427, -19395,  -60823, -22315, 9869,   0xff},
-       {-46721, -944, -11257,  -60823, -22315, 9869,   0xff},
-       {-54169, 18593, -12979, -36726, -33043, 43063,  0xff},
-       {-64283, 24671, -16941, -36726, -33043, 43063,  0xff},
-       {-50746, 6427, -19395,  -36726, -33043, 43063,  0xff},
-       {50746, 6427, -19395,   48830, -38908, 19916,   0xff},
-       {63071, 20046, -23006,  48830, -38908, 19916,   0xff},
-       {64283, 24671, -16941,  48830, -38908, 19916,   0xff},
-       {67766, 376, -26353,    7130, 62377, 18802,     0xff},
-       {55861, -126, -20169,   7130, 62377, 18802,     0xff},
-       {55385, -3250, -9623,   7130, 62377, 18802,     0xff},
-       {55861, -126, -20169,   19555, 1802, 62527,     0xff},
-       {72755, 15982, -25917,  19555, 1802, 62527,     0xff},
-       {63071, 20046, -23006,  19555, 1802, 62527,     0xff},
-       {-72755, 15982, -25917, -19555, 1802, 62527,    0xff},
-       {-55861, -126, -20169,  -19555, 1802, 62527,    0xff},
-       {-63071, 20046, -23006, -19555, 1802, 62527,    0xff},
-       {55793, 3702, -20626,   16488, 1893, 63399,     0xff},
-       {63071, 20046, -23006,  16488, 1893, 63399,     0xff},
-       {50746, 6427, -19395,   16488, 1893, 63399,     0xff},
-       {-63071, 20046, -23006, -16488, 1893, 63399,    0xff},
-       {-55793, 3702, -20626,  -16488, 1893, 63399,    0xff},
-       {-50746, 6427, -19395,  -16488, 1893, 63399,    0xff},
-       {72755, 15982, -25917,  19287, -6737, 62272,    0xff},
-       {77984, 6266, -28588,   19287, -6737, 62272,    0xff},
-       {80904, 16297, -28407,  19287, -6737, 62272,    0xff},
-       {76699, 22655, -30212,  16469, 27158, 57324,    0xff},
-       {72755, 15982, -25917,  16469, 27158, 57324,    0xff},
-       {80904, 16297, -28407,  16469, 27158, 57324,    0xff},
-       {-72755, 15982, -25917, -16469, 27158, 57324,   0xff},
-       {-76699, 22655, -30212, -16469, 27158, 57324,   0xff},
-       {-80904, 16297, -28407, -16469, 27158, 57324,   0xff},
-       {63071, 20046, -23006,  25808, 21069, 56439,    0xff},
-       {72755, 15982, -25917,  25808, 21069, 56439,    0xff},
-       {76699, 22655, -30212,  25808, 21069, 56439,    0xff},
-       {-76699, 22655, -30212, -25808, 21069, 56439,   0xff},
-       {-72755, 15982, -25917, -25808, 21069, 56439,   0xff},
-       {-63071, 20046, -23006, -25808, 21069, 56439,   0xff},
-       {-83968, 3584, -28160,  -60194, -18133, 18520,  0xff},
-       {-89343, 20376, -29188, -60194, -18133, 18520,  0xff},
-       {-86016, 3584, -34816,  -60194, -18133, 18520,  0xff},
-       {89343, 20376, -29188,  49833, 42388, 3820,     0xff},
-       {80412, 31511, -36230,  49833, 42388, 3820,     0xff},
-       {79147, 32074, -25975,  49833, 42388, 3820,     0xff},
-       {79147, 32074, -25975,  -14588, 63668, -5295,   0xff},
-       {80412, 31511, -36230,  -14588, 63668, -5295,   0xff},
-       {60188, 28534, -16295,  -14588, 63668, -5295,   0xff},
-       {-60188, 28534, -16295, 26135, 57357, -17950,   0xff},
-       {-54646, 23084, -25639, 26135, 57357, -17950,   0xff},
-       {-80412, 31511, -36230, 26135, 57357, -17950,   0xff},
-       {80412, 31511, -36230,  -6881, -4672, -65005,   0xff},
-       {86016, 3584, -34816,   -6881, -4672, -65005,   0xff},
-       {68095, -5632, -32256,  -6881, -4672, -65005,   0xff},
-       {-86016, 3584, -34816,  6881, -4672, -65005,    0xff},
-       {-80412, 31511, -36230, 6881, -4672, -65005,    0xff},
-       {-68095, -5632, -32256, 6881, -4672, -65005,    0xff},
-       {80412, 31511, -36230,  45324, 6723, -46858,    0xff},
-       {89343, 20376, -29188,  45324, 6723, -46858,    0xff},
-       {86016, 3584, -34816,   45324, 6723, -46858,    0xff},
-       {-86016, 3584, -34816,  -45324, 6723, -46858,   0xff},
-       {-89343, 20376, -29188, -45324, 6723, -46858,   0xff},
-       {-80412, 31511, -36230, -45324, 6723, -46858,   0xff},
-       {-54169, 18593, -12979, 53641, 36077, 10774,    0xff},
-       {-54646, 23084, -25639, 53641, 36077, 10774,    0xff},
-       {-60188, 28534, -16295, 53641, 36077, 10774,    0xff},
-       {54646, 23084, -25639,  36778, -10485, -53215,  0xff},
-       {51711, -8192, -21504,  36778, -10485, -53215,  0xff},
-       {34990, 3085, -35283,   36778, -10485, -53215,  0xff},
-       {-51711, -8192, -21504, -36778, -10485, -53215, 0xff},
-       {-54646, 23084, -25639, -36778, -10485, -53215, 0xff},
-       {-34990, 3085, -35283,  -36778, -10485, -53215, 0xff},
-       {41501, 15861, 37125,   49938, -20729, 37034,   0xff},
-       {28750, 9658, 50846,    49938, -20729, 37034,   0xff},
-       {35840, 3584, 37888,    49938, -20729, 37034,   0xff},
-       {-35840, 3584, 37888,   -49938, -20729, 37034,  0xff},
-       {-28750, 9658, 50846,   -49938, -20729, 37034,  0xff},
-       {-41501, 15861, 37125,  -49938, -20729, 37034,  0xff},
-       {28750, 9658, 50846,    27774, -44623, 39144,   0xff},
-       {23522, 8413, 53136,    27774, -44623, 39144,   0xff},
-       {22860, -2614, 41035,   27774, -44623, 39144,   0xff},
-       {-22860, -2614, 41035,  -27774, -44623, 39144,  0xff},
-       {-23522, 8413, 53136,   -27774, -44623, 39144,  0xff},
-       {-28750, 9658, 50846,   -27774, -44623, 39144,  0xff},
-       {22860, -2614, 41035,   -16816, -44800, 44780,  0xff},
-       {15934, 12004, 53058,   -16816, -44800, 44780,  0xff},
-       {10240, 3584, 42496,    -16816, -44800, 44780,  0xff},
-       {-10240, 3584, 42496,   16816, -44800, 44780,   0xff},
-       {-15934, 12004, 53058,  16816, -44800, 44780,   0xff},
-       {-22860, -2614, 41035,  16816, -44800, 44780,   0xff},
-       {-4300, 15825, 43537,   43109, -24562, 42821,   0xff},
-       {-15934, 12004, 53058,  43109, -24562, 42821,   0xff},
-       {-10240, 3584, 42496,   43109, -24562, 42821,   0xff},
-       {17110, 21655, 53050,   -43004, 23416, 43561,   0xff},
-       {10240, 28672, 42496,   -43004, 23416, 43561,   0xff},
-       {4300, 15825, 43537,    -43004, 23416, 43561,   0xff},
-       {-10240, 28672, 42496,  15938, 47664, 42061,    0xff},
-       {-22663, 24387, 52059,  15938, 47664, 42061,    0xff},
-       {-17110, 21655, 53050,  15938, 47664, 42061,    0xff},
-       {23039, 33792, 40448,   26234, 46707, 37748,    0xff},
-       {28828, 22209, 50756,   26234, 46707, 37748,    0xff},
-       {35840, 28672, 37888,   26234, 46707, 37748,    0xff},
-       {-23039, 33792, 40448,  -24700, 46779, 38685,   0xff},
-       {-28828, 22209, 50756,  -24700, 46779, 38685,   0xff},
-       {-22663, 24387, 52059,  -24700, 46779, 38685,   0xff},
-       {17889, -58077, 42583,  47421, 3807, 45075,     0xff},
-       {20480, -28672, 37375,  47421, 3807, 45075,     0xff},
-       {9270, -15610, 48065,   47421, 3807, 45075,     0xff},
-       {-41501, 15861, 37125,  -50082, 19916, 37283,   0xff},
-       {-28828, 22209, 50756,  -50082, 19916, 37283,   0xff},
-       {-35840, 28672, 37888,  -50082, 19916, 37283,   0xff},
-       {30805, 15813, 50108,   49813, 11232, 41077,    0xff},
-       {41501, 15861, 37125,   49813, 11232, 41077,    0xff},
-       {28828, 22209, 50756,   49813, 11232, 41077,    0xff},
-       {-17889, -58077, 42583, -13015, -55725, 31948,  0xff},
-       {-23886, -61271, 34567, -13015, -55725, 31948,  0xff},
-       {0, -64120, 39331,      -13015, -55725, 31948,  0xff},
-       {-20480, -28672, 37375, -47421, 3807, 45075,    0xff},
-       {-17889, -58077, 42583, -47421, 3807, 45075,    0xff},
-       {-9270, -15610, 48065,  -47421, 3807, 45075,    0xff},
-       {38730, -56, 40521,     10367, -45318, 46189,   0xff},
-       {13735, -11853, 34559,  10367, -45318, 46189,   0xff},
-       {38159, -5503, 35305,   10367, -45318, 46189,   0xff},
-       {-13735, -11853, 34559, -10367, -45318, 46189,  0xff},
-       {-38730, -56, 40521,    -10367, -45318, 46189,  0xff},
-       {-38159, -5503, 35305,  -10367, -45318, 46189,  0xff},
-       {52680, 10582, 27526,   50141, -21148, 36516,   0xff},
-       {45997, 26631, 45998,   50141, -21148, 36516,   0xff},
-       {38730, -56, 40521,     50141, -21148, 36516,   0xff},
-       {38159, -5503, 35305,   50121, -31824, 27747,   0xff},
-       {52680, 10582, 27526,   50121, -31824, 27747,   0xff},
-       {38730, -56, 40521,     50121, -31824, 27747,   0xff},
-       {-38730, -56, 40521,    -50121, -31824, 27747,  0xff},
-       {-52680, 10582, 27526,  -50121, -31824, 27747,  0xff},
-       {-38159, -5503, 35305,  -50121, -31824, 27747,  0xff},
-       {-45997, 26631, 45998,  -50141, -21148, 36516,  0xff},
-       {-52680, 10582, 27526,  -50141, -21148, 36516,  0xff},
-       {-38730, -56, 40521,    -50141, -21148, 36516,  0xff},
-       {45997, 26631, 45998,   34078, 35651, 43162,    0xff},
-       {20576, 48728, 47817,   34078, 35651, 43162,    0xff},
-       {16522, 42544, 56125,   34078, 35651, 43162,    0xff},
-       {-45997, 26631, 45998,  -31968, 32925, 46786,   0xff},
-       {-20576, 48728, 47817,  -31968, 32925, 46786,   0xff},
-       {-55891, 27603, 38552,  -31968, 32925, 46786,   0xff},
-       {6655, 28160, 55296,    -37840, 37840, 37840,   0xff},
-       {0, 28160, 48640,       -37840, 37840, 37840,   0xff},
-       {0, 23039, 53759,       -37840, 37840, 37840,   0xff},
-       {-10717, 45254, 49982,  11495, 54322, 34819,    0xff},
-       {-20576, 48728, 47817,  11495, 54322, 34819,    0xff},
-       {-16522, 42544, 56125,  11495, 54322, 34819,    0xff},
-       {10717, 45254, 49982,   -38757, 23868, 47153,   0xff},
-       {6655, 28160, 55296,    -38757, 23868, 47153,   0xff},
-       {16522, 42544, 56125,   -38757, 23868, 47153,   0xff},
-       {-6655, 28160, 55296,   43207, 23697, 43207,    0xff},
-       {0, 28160, 48640,       43207, 23697, 43207,    0xff},
-       {-10717, 45254, 49982,  43207, 23697, 43207,    0xff},
-       {37532, 23949, 45101,   -4436, -36975, 53923,   0xff},
-       {16522, 42544, 56125,   -4436, -36975, 53923,   0xff},
-       {18675, 32472, 49395,   -4436, -36975, 53923,   0xff},
-       {18675, 32472, 49395,   33770, -26030, 49768,   0xff},
-       {16522, 42544, 56125,   33770, -26030, 49768,   0xff},
-       {6655, 28160, 55296,    33770, -26030, 49768,   0xff},
-       {-16522, 42544, 56125,  4436, -36975, 53923,    0xff},
-       {-37532, 23949, 45101,  4436, -36975, 53923,    0xff},
-       {-18675, 32472, 49395,  4436, -36975, 53923,    0xff},
-       {35596, 13941, 44774,   -6638, -845, 65195,     0xff},
-       {45997, 26631, 45998,   -6638, -845, 65195,     0xff},
-       {37532, 23949, 45101,   -6638, -845, 65195,     0xff},
-       {-45997, 26631, 45998,  6638, -845, 65195,      0xff},
-       {-35596, 13941, 44774,  6638, -845, 65195,      0xff},
-       {-37532, 23949, 45101,  6638, -845, 65195,      0xff},
-       {10870, 21498, 51250,   9201, -29327, 57881,    0xff},
-       {6655, 28160, 55296,    9201, -29327, 57881,    0xff},
-       {0, 23039, 53759,       9201, -29327, 57881,    0xff},
-       {-38730, -56, 40521,    -22865, -13107, 59998,  0xff},
-       {-26259, 723, 45445,    -22865, -13107, 59998,  0xff},
-       {-35596, 13941, 44774,  -22865, -13107, 59998,  0xff},
-       {7184, -8347, 51436,    23343, -9083, 60561,    0xff},
-       {38730, -56, 40521,     23343, -9083, 60561,    0xff},
-       {26259, 723, 45445,     23343, -9083, 60561,    0xff},
-       {-7184, -8347, 51436,   -17275, 5282, 62999,    0xff},
-       {-12499, 6571, 48727,   -17275, 5282, 62999,    0xff},
-       {-26259, 723, 45445,    -17275, 5282, 62999,    0xff},
-       {-10870, 21498, 51250,  -32086, -13428, 55541,  0xff},
-       {-6655, 28160, 55296,   -32086, -13428, 55541,  0xff},
-       {-18675, 32472, 49395,  -32086, -13428, 55541,  0xff},
-       {0, -64120, 39331,      -13375, -36339, 52874,  0xff},
-       {5321, -56373, 46002,   -13375, -36339, 52874,  0xff},
-       {0, -57030, 44204,      -13375, -36339, 52874,  0xff},
-       {10870, 21498, 51250,   11540, -18992, 61649,   0xff},
-       {0, 23039, 53759,       11540, -18992, 61649,   0xff},
-       {0, 5276, 48287,        11540, -18992, 61649,   0xff},
-       {0, 5276, 48287,        -11540, -18992, 61649,  0xff},
-       {0, 23039, 53759,       -11540, -18992, 61649,  0xff},
-       {-10870, 21498, 51250,  -11540, -18992, 61649,  0xff},
-       {12499, 6571, 48727,    -1133, -11042, 64592,   0xff},
-       {10870, 21498, 51250,   -1133, -11042, 64592,   0xff},
-       {0, 5276, 48287,        -1133, -11042, 64592,   0xff},
-       {-5321, -56373, 46002,  13375, -36339, 52874,   0xff},
-       {0, -64120, 39331,      13375, -36339, 52874,   0xff},
-       {0, -57030, 44204,      13375, -36339, 52874,   0xff},
-       {6576, -48050, 48049,   334, -3951, 65418,      0xff},
-       {0, -22071, 49653,      334, -3951, 65418,      0xff},
-       {0, -50426, 47939,      334, -3951, 65418,      0xff},
-       {-5321, -56373, 46002,  -14398, -17308, 61544,  0xff},
-       {-6576, -48050, 48049,  -14398, -17308, 61544,  0xff},
-       {-17889, -58077, 42583, -14398, -17308, 61544,  0xff},
-       {0, -22071, 49653,      -334, -3951, 65418,     0xff},
-       {-6576, -48050, 48049,  -334, -3951, 65418,     0xff},
-       {0, -50426, 47939,      -334, -3951, 65418,     0xff},
-       {3406, -8432, 52239,    12582, 19614, 61256,    0xff},
-       {8547, -14728, 53199,   12582, 19614, 61256,    0xff},
-       {7184, -8347, 51436,    12582, 19614, 61256,    0xff},
-       {-3406, -8432, 52239,   3702, 64572, -10557,    0xff},
-       {0, -9216, 48640,       3702, 64572, -10557,    0xff},
-       {-7184, -8347, 51436,   3702, 64572, -10557,    0xff},
-       {0, -12288, 52224,      -42795, 37683, 32302,   0xff},
-       {3406, -8432, 52239,    -42795, 37683, 32302,   0xff},
-       {0, -9216, 48640,       -42795, 37683, 32302,   0xff},
-       {9270, -15610, 48065,   38200, -51321, 14201,   0xff},
-       {8547, -14728, 53199,   38200, -51321, 14201,   0xff},
-       {0, -22071, 49653,      38200, -51321, 14201,   0xff},
-       {0, -12288, 52224,      -46668, 41150, 20578,   0xff},
-       {0, -13312, 54272,      -46668, 41150, 20578,   0xff},
-       {3406, -8432, 52239,    -46668, 41150, 20578,   0xff},
-       {-3406, -8432, 52239,   46668, 41150, 20578,    0xff},
-       {0, -13312, 54272,      46668, 41150, 20578,    0xff},
-       {0, -12288, 52224,      46668, 41150, 20578,    0xff},
-       {-3406, -8432, 52239,   -10806, 18277, 61997,   0xff},
-       {-8547, -14728, 53199,  -10806, 18277, 61997,   0xff},
-       {0, -13312, 54272,      -10806, 18277, 61997,   0xff},
-       {6576, -48050, 48049,   -2496, -54027, 37008,   0xff},
-       {0, -51200, 43008,      -2496, -54027, 37008,   0xff},
-       {6289, -52090, 42131,   -2496, -54027, 37008,   0xff},
-       {0, -13312, 54272,      2208, -30546, 57940,    0xff},
-       {0, -22071, 49653,      2208, -30546, 57940,    0xff},
-       {8547, -14728, 53199,   2208, -30546, 57940,    0xff},
-       {-8547, -14728, 53199,  -2208, -30546, 57940,   0xff},
-       {0, -22071, 49653,      -2208, -30546, 57940,   0xff},
-       {0, -13312, 54272,      -2208, -30546, 57940,   0xff},
-       {-13735, -11853, 34559, -54532, 26102, 25290,   0xff},
-       {-20480, -28672, 37375, -54532, 26102, 25290,   0xff},
-       {-9270, -15610, 48065,  -54532, 26102, 25290,   0xff},
-       {13735, -11853, 34559,  61210, 7261, 22249,     0xff},
-       {7184, -8347, 51436,    61210, 7261, 22249,     0xff},
-       {9270, -15610, 48065,   61210, 7261, 22249,     0xff},
-       {-9270, -15610, 48065,  -61210, 7261, 22249,    0xff},
-       {-7184, -8347, 51436,   -61210, 7261, 22249,    0xff},
-       {-13735, -11853, 34559, -61210, 7261, 22249,    0xff},
-       {5321, -56373, 46002,   -20289, 44243, 43882,   0xff},
-       {6289, -52090, 42131,   -20289, 44243, 43882,   0xff},
-       {0, -57030, 44204,      -20289, 44243, 43882,   0xff},
-       {5321, -56373, 46002,   -64507, 10761, -4213,   0xff},
-       {6576, -48050, 48049,   -64507, 10761, -4213,   0xff},
-       {6289, -52090, 42131,   -64507, 10761, -4213,   0xff},
-       {-6289, -52090, 42131,  64507, 10761, -4213,    0xff},
-       {-6576, -48050, 48049,  64507, 10761, -4213,    0xff},
-       {-5321, -56373, 46002,  64507, 10761, -4213,    0xff},
-       {0, -51200, 43008,      2496, -54027, 37008,    0xff},
-       {-6576, -48050, 48049,  2496, -54027, 37008,    0xff},
-       {-6289, -52090, 42131,  2496, -54027, 37008,    0xff},
-       {24499, 5671, 47725,    3008, -26522, 59854,    0xff},
-       {12499, 6571, 48727,    3008, -26522, 59854,    0xff},
-       {26259, 723, 45445,     3008, -26522, 59854,    0xff},
-       {0, -51200, 43008,      10662, 12995, 63340,    0xff},
-       {0, -57030, 44204,      10662, 12995, 63340,    0xff},
-       {6289, -52090, 42131,   10662, 12995, 63340,    0xff},
-       {-6289, -52090, 42131,  -10662, 12995, 63340,   0xff},
-       {0, -57030, 44204,      -10662, 12995, 63340,   0xff},
-       {0, -51200, 43008,      -10662, 12995, 63340,   0xff},
-       {10870, 21498, 51250,   -64874, -7897, 4856,    0xff},
-       {12499, 6571, 48727,    -64874, -7897, 4856,    0xff},
-       {12284, 9600, 50782,    -64874, -7897, 4856,    0xff},
-       {-12284, 9600, 50782,   64874, -7897, 4856,     0xff},
-       {-12499, 6571, 48727,   64874, -7897, 4856,     0xff},
-       {-10870, 21498, 51250,  64874, -7897, 4856,     0xff},
-       {-12499, 6571, 48727,   -3008, -26522, 59854,   0xff},
-       {-24499, 5671, 47725,   -3008, -26522, 59854,   0xff},
-       {-26259, 723, 45445,    -3008, -26522, 59854,   0xff},
-       {12799, 19456, 49663,   59683, -52, 27066,      0xff},
-       {12284, 9600, 50782,    59683, -52, 27066,      0xff},
-       {13098, 11318, 48991,   59683, -52, 27066,      0xff},
-       {18675, 32472, 49395,   25460, 29890, 52474,    0xff},
-       {27064, 25462, 49318,   25460, 29890, 52474,    0xff},
-       {37532, 23949, 45101,   25460, 29890, 52474,    0xff},
-       {-10870, 21498, 51250,  5511, 19346, 62370,     0xff},
-       {-21074, 28557, 49962,  5511, 19346, 62370,     0xff},
-       {-18413, 25989, 50524,  5511, 19346, 62370,     0xff},
-       {21074, 28557, 49962,   9299, 4508, 64716,      0xff},
-       {18413, 25989, 50524,   9299, 4508, 64716,      0xff},
-       {27064, 25462, 49318,   9299, 4508, 64716,      0xff},
-       {-27064, 25462, 49318,  -21843, -15545, 59801,  0xff},
-       {-37532, 23949, 45101,  -21843, -15545, 59801,  0xff},
-       {-36154, 18883, 44288,  -21843, -15545, 59801,  0xff},
-       {37532, 23949, 45101,   -55253, 9581, 33914,    0xff},
-       {36154, 18883, 44288,   -55253, 9581, 33914,    0xff},
-       {35596, 13941, 44774,   -55253, 9581, 33914,    0xff},
-       {-24499, 5671, 47725,   -1428, 42939, -49492,   0xff},
-       {-12284, 9600, 50782,   -1428, 42939, -49492,   0xff},
-       {-15872, 8192, 49663,   -1428, 42939, -49492,   0xff},
-       {-12799, 19456, 49663,  -43601, 3257, 48817,    0xff},
-       {-12284, 9600, 50782,   -43601, 3257, 48817,    0xff},
-       {-10870, 21498, 51250,  -43601, 3257, 48817,    0xff},
-       {7168, 30208, 39936,    -47526, 32269, -31542,  0xff},
-       {0, 28160, 48640,       -47526, 32269, -31542,  0xff},
-       {10717, 45254, 49982,   -47526, 32269, -31542,  0xff},
-       {0, 28160, 48640,       47526, 32269, -31542,   0xff},
-       {-7168, 30208, 39936,   47526, 32269, -31542,   0xff},
-       {-10717, 45254, 49982,  47526, 32269, -31542,   0xff},
-       {29979, 34639, 31110,   20951, 59926, -16285,   0xff},
-       {55891, 27603, 38552,   20951, 59926, -16285,   0xff},
-       {48630, 26065, 23550,   20951, 59926, -16285,   0xff},
-       {-20576, 48728, 47817,  23049, 60922, -7222,    0xff},
-       {-10717, 45254, 49982,  23049, 60922, -7222,    0xff},
-       {-17135, 46467, 39730,  23049, 60922, -7222,    0xff},
-       {20576, 48728, 47817,   29563, 51845, -27072,   0xff},
-       {29979, 34639, 31110,   29563, 51845, -27072,   0xff},
-       {17135, 46467, 39730,   29563, 51845, -27072,   0xff},
-       {-29979, 34639, 31110,  -23291, 52658, -31299,  0xff},
-       {-55891, 27603, 38552,  -23291, 52658, -31299,  0xff},
-       {-20576, 48728, 47817,  -23291, 52658, -31299,  0xff},
-       {0, -52736, 22528,      12038, -2634, -64369,   0xff},
-       {16045, -30052, 24599,  12038, -2634, -64369,   0xff},
-       {21330, -59803, 26806,  12038, -2634, -64369,   0xff},
-       {-52680, 10582, 27526,  -58254, 7792, -28993,   0xff},
-       {-55891, 27603, 38552,  -58254, 7792, -28993,   0xff},
-       {-48630, 26065, 23550,  -58254, 7792, -28993,   0xff},
-       {52680, 10582, 27526,   29904, -44957, -37139,  0xff},
-       {38159, -5503, 35305,   29904, -44957, -37139,  0xff},
-       {34586, -3098, 29517,   29904, -44957, -37139,  0xff},
-       {-34586, -3098, 29517,  -29904, -44957, -37139, 0xff},
-       {-38159, -5503, 35305,  -29904, -44957, -37139, 0xff},
-       {-52680, 10582, 27526,  -29904, -44957, -37139, 0xff},
-       {0, -31857, 19566,      16030, -55325, -31260,  0xff},
-       {11434, -27191, 17172,  16030, -55325, -31260,  0xff},
-       {16045, -30052, 24599,  16030, -55325, -31260,  0xff},
-       {-16045, -30052, 24599, -12038, -2634, -64369,  0xff},
-       {0, -52736, 22528,      -12038, -2634, -64369,  0xff},
-       {-21330, -59803, 26806, -12038, -2634, -64369,  0xff},
-       {0, -63999, 30208,      7589, -65090, -858,     0xff},
-       {23886, -61271, 34567,  7589, -65090, -858,     0xff},
-       {0, -64120, 39331,      7589, -65090, -858,     0xff},
-       {0, -52736, 22528,      1369, -36909, -54132,   0xff},
-       {0, -63999, 30208,      1369, -36909, -54132,   0xff},
-       {-21330, -59803, 26806, 1369, -36909, -54132,   0xff},
-       {-23886, -61271, 34567, -7589, -65090, -858,    0xff},
-       {0, -63999, 30208,      -7589, -65090, -858,    0xff},
-       {0, -64120, 39331,      -7589, -65090, -858,    0xff},
-       {20480, -28672, 37375,  59821, 21266, -16246,   0xff},
-       {14336, -18432, 28160,  59821, 21266, -16246,   0xff},
-       {13735, -11853, 34559,  59821, 21266, -16246,   0xff},
-       {20480, -28672, 37375,  61131, 8290, -22111,    0xff},
-       {23886, -61271, 34567,  61131, 8290, -22111,    0xff},
-       {16045, -30052, 24599,  61131, 8290, -22111,    0xff},
-       {-16045, -30052, 24599, -61131, 8290, -22111,   0xff},
-       {-23886, -61271, 34567, -61131, 8290, -22111,   0xff},
-       {-20480, -28672, 37375, -61131, 8290, -22111,   0xff},
-       {-14336, -18432, 28160, -59821, 21266, -16246,  0xff},
-       {-20480, -28672, 37375, -59821, 21266, -16246,  0xff},
-       {-13735, -11853, 34559, -59821, 21266, -16246,  0xff},
-       {0, 4607, -54272,       24451, -30828, -52409,  0xff},
-       {22528, -9728, -35327,  24451, -30828, -52409,  0xff},
-       {0, -12799, -44032,     24451, -30828, -52409,  0xff},
-       {13735, -11853, 34559,  15276, -54958, -32263,  0xff},
-       {34586, -3098, 29517,   15276, -54958, -32263,  0xff},
-       {38159, -5503, 35305,   15276, -54958, -32263,  0xff},
-       {-22528, -9728, -35327, -24451, -30828, -52409, 0xff},
-       {0, 4607, -54272,       -24451, -30828, -52409, 0xff},
-       {0, -12799, -44032,     -24451, -30828, -52409, 0xff},
-       {0, -25087, -23039,     21384, -54670, -29137,  0xff},
-       {22528, -9728, -35327,  21384, -54670, -29137,  0xff},
-       {19456, -20480, -17408, 21384, -54670, -29137,  0xff},
-       {0, -25087, -23039,     -19569, -53975, -31594, 0xff},
-       {-22528, -9728, -35327, -19569, -53975, -31594, 0xff},
-       {0, -12799, -44032,     -19569, -53975, -31594, 0xff},
-       {11434, -27191, 17172,  17216, -62704, -8172,   0xff},
-       {0, -25087, -23039,     17216, -62704, -8172,   0xff},
-       {19456, -20480, -17408, 17216, -62704, -8172,   0xff},
-       {0, -25087, -23039,     -17216, -62704, -8172,  0xff},
-       {-11434, -27191, 17172, -17216, -62704, -8172,  0xff},
-       {-19456, -20480, -17408,        -17216, -62704, -8172,  0xff},
-       {47823, -2804, 3726,    39085, -48857, 19503,   0xff},
-       {52680, 10582, 27526,   39085, -48857, 19503,   0xff},
-       {34586, -3098, 29517,   39085, -48857, 19503,   0xff},
-       {-11434, -27191, 17172, -56492, 17045, -28508,  0xff},
-       {-16045, -30052, 24599, -56492, 17045, -28508,  0xff},
-       {-14336, -18432, 28160, -56492, 17045, -28508,  0xff},
-       {-52680, 10582, 27526,  -39085, -48857, 19503,  0xff},
-       {-47823, -2804, 3726,   -39085, -48857, 19503,  0xff},
-       {-34586, -3098, 29517,  -39085, -48857, 19503,  0xff},
-       {0, 4607, -54272,       29084, -20034, -55200,  0xff},
-       {30128, 26936, -46502,  29084, -20034, -55200,  0xff},
-       {34990, 3085, -35283,   29084, -20034, -55200,  0xff},
-       {0, 4607, -54272,       -18415, -2988, -62822,  0xff},
-       {-30128, 26936, -46502, -18415, -2988, -62822,  0xff},
-       {0, 36864, -55807,      -18415, -2988, -62822,  0xff},
-       {0, 64512, -5120,       7333, 63084, 16174,     0xff},
-       {29696, 55807, 15360,   7333, 63084, 16174,     0xff},
-       {29696, 60928, -4607,   7333, 63084, 16174,     0xff},
-       {0, 64512, -5120,       -8336, 63294, 14811,    0xff},
-       {-29696, 55807, 15360,  -8336, 63294, 14811,    0xff},
-       {0, 58880, 18943,       -8336, 63294, 14811,    0xff},
-       {29696, 56832, -25087,  7916, 63792, -12759,    0xff},
-       {0, 64512, -5120,       7916, 63792, -12759,    0xff},
-       {29696, 60928, -4607,   7916, 63792, -12759,    0xff},
-       {0, 64512, -5120,       -7916, 63792, -12759,   0xff},
-       {-29696, 56832, -25087, -7916, 63792, -12759,   0xff},
-       {-29696, 60928, -4607,  -7916, 63792, -12759,   0xff},
-       {30128, 26936, -46502,  20755, 36398, -50390,   0xff},
-       {0, 58880, -35840,      20755, 36398, -50390,   0xff},
-       {29696, 56832, -25087,  20755, 36398, -50390,   0xff},
-       {0, 58880, -35840,      -20755, 36398, -50390,  0xff},
-       {-30128, 26936, -46502, -20755, 36398, -50390,  0xff},
-       {-29696, 56832, -25087, -20755, 36398, -50390,  0xff},
-       {51586, 40861, -9829,   42506, 48916, -9784,    0xff},
-       {29696, 56832, -25087,  42506, 48916, -9784,    0xff},
-       {29696, 60928, -4607,   42506, 48916, -9784,    0xff},
-       {41471, 29696, 18432,   1140, 54185, 36844,     0xff},
-       {48630, 26065, 23550,   1140, 54185, 36844,     0xff},
-       {51216, 37752, 6281,    1140, 54185, 36844,     0xff},
-       {-51216, 37752, 6281,   -1140, 54185, 36844,    0xff},
-       {-48630, 26065, 23550,  -1140, 54185, 36844,    0xff},
-       {-41471, 29696, 18432,  -1140, 54185, 36844,    0xff},
-       {-30128, 26936, -46502, -42860, 11062, -48326,  0xff},
-       {-54646, 23084, -25639, -42860, 11062, -48326,  0xff},
-       {-50190, 37864, -26209, -42860, 11062, -48326,  0xff},
-       {30128, 26936, -46502,  29261, 34426, -47467,   0xff},
-       {29696, 56832, -25087,  29261, 34426, -47467,   0xff},
-       {50190, 37864, -26209,  29261, 34426, -47467,   0xff},
-       {-50190, 37864, -26209, -29261, 34426, -47467,  0xff},
-       {-29696, 56832, -25087, -29261, 34426, -47467,  0xff},
-       {-30128, 26936, -46502, -29261, 34426, -47467,  0xff},
-       {-29696, 56832, -25087, -42506, 48916, -9784,   0xff},
-       {-51586, 40861, -9829,  -42506, 48916, -9784,   0xff},
-       {-29696, 60928, -4607,  -42506, 48916, -9784,   0xff},
-       {51216, 37752, 6281,    44308, 46779, 11993,    0xff},
-       {29696, 60928, -4607,   44308, 46779, 11993,    0xff},
-       {29696, 55807, 15360,   44308, 46779, 11993,    0xff},
-       {-29696, 60928, -4607,  -44308, 46779, 11993,   0xff},
-       {-51216, 37752, 6281,   -44308, 46779, 11993,   0xff},
-       {-29696, 55807, 15360,  -44308, 46779, 11993,   0xff},
-       {41471, 29696, 18432,   49230, 26247, 34386,    0xff},
-       {29696, 55807, 15360,   49230, 26247, 34386,    0xff},
-       {29979, 34639, 31110,   49230, 26247, 34386,    0xff},
-       {-29696, 55807, 15360,  -49230, 26247, 34386,   0xff},
-       {-41471, 29696, 18432,  -49230, 26247, 34386,   0xff},
-       {-29979, 34639, 31110,  -49230, 26247, 34386,   0xff},
-       {0, 58880, 18943,       10262, 38725, 51865,    0xff},
-       {29979, 34639, 31110,   10262, 38725, 51865,    0xff},
-       {29696, 55807, 15360,   10262, 38725, 51865,    0xff},
-       {48630, 26065, 23550,   28193, 59106, 2503,     0xff},
-       {41471, 29696, 18432,   28193, 59106, 2503,     0xff},
-       {29979, 34639, 31110,   28193, 59106, 2503,     0xff},
-       {0, 58880, 18943,       -13965, 41667, 48614,   0xff},
-       {-29979, 34639, 31110,  -13965, 41667, 48614,   0xff},
-       {0, 37375, 37375,       -13965, 41667, 48614,   0xff},
-       {51586, 40861, -9829,   64487, 8598, -7916,     0xff},
-       {56241, 17046, 2221,    64487, 8598, -7916,     0xff},
-       {54169, 18593, -12979,  64487, 8598, -7916,     0xff},
-       {52680, 10582, 27526,   61092, 19464, 13572,    0xff},
-       {56241, 17046, 2221,    61092, 19464, 13572,    0xff},
-       {48630, 26065, 23550,   61092, 19464, 13572,    0xff},
-       {-56241, 17046, 2221,   -64487, 8598, -7916,    0xff},
-       {-51586, 40861, -9829,  -64487, 8598, -7916,    0xff},
-       {-54169, 18593, -12979, -64487, 8598, -7916,    0xff},
-       {54646, 23084, -25639,  64992, 6848, 4882,      0xff},
-       {51586, 40861, -9829,   64992, 6848, 4882,      0xff},
-       {54169, 18593, -12979,  64992, 6848, 4882,      0xff},
-       {-51586, 40861, -9829,  -64992, 6848, 4882,     0xff},
-       {-54646, 23084, -25639, -64992, 6848, 4882,     0xff},
-       {-54169, 18593, -12979, -64992, 6848, 4882,     0xff},
-       {14336, -18432, 28160,  27479, -40173, 43882,   0xff},
-       {34586, -3098, 29517,   27479, -40173, 43882,   0xff},
-       {13735, -11853, 34559,  27479, -40173, 43882,   0xff},
-       {-19456, -20480, -17408,        -39498, -52284, -983,   0xff},
-       {-11434, -27191, 17172, -39498, -52284, -983,   0xff},
-       {-29162, -13292, -9698, -39498, -52284, -983,   0xff},
-       {-29162, -13292, -9698, -30579, -57901, 2726,   0xff},
-       {-47823, -2804, 3726,   -30579, -57901, 2726,   0xff},
-       {-38912, -8192, -10751, -30579, -57901, 2726,   0xff},
-       {-34586, -3098, 29517,  -27479, -40173, 43882,  0xff},
-       {-14336, -18432, 28160, -27479, -40173, 43882,  0xff},
-       {-13735, -11853, 34559, -27479, -40173, 43882,  0xff},
-       {29162, -13292, -9698,  45239, -43941, -17819,  0xff},
-       {22528, -9728, -35327,  45239, -43941, -17819,  0xff},
-       {34990, 3085, -35283,   45239, -43941, -17819,  0xff},
-       {-34990, 3085, -35283,  -39898, -15250, -49702, 0xff},
-       {-54646, 23084, -25639, -39898, -15250, -49702, 0xff},
-       {-30128, 26936, -46502, -39898, -15250, -49702, 0xff},
-       {-29162, -13292, -9698, -24884, -53477, -28560, 0xff},
-       {-38912, -8192, -10751, -24884, -53477, -28560, 0xff},
-       {-34990, 3085, -35283,  -24884, -53477, -28560, 0xff},
-       {-29162, -13292, -9698, -46084, -43017, -17910, 0xff},
-       {-22528, -9728, -35327, -46084, -43017, -17910, 0xff},
-       {-19456, -20480, -17408,        -46084, -43017, -17910, 0xff},
-       {83968, 3584, -28160,   -4607, 163, 65372,      0xff},
-       {80904, 16297, -28407,  -4607, 163, 65372,      0xff},
-       {77984, 6266, -28588,   -4607, 163, 65372,      0xff},
-       {60188, 28534, -16295,  25971, 17937, 57435,    0xff},
-       {64283, 24671, -16941,  25971, 17937, 57435,    0xff},
-       {79147, 32074, -25975,  25971, 17937, 57435,    0xff},
-       {-79147, 32074, -25975, -25971, 17937, 57435,   0xff},
-       {-64283, 24671, -16941, -25971, 17937, 57435,   0xff},
-       {-60188, 28534, -16295, -25971, 17937, 57435,   0xff},
-       {79147, 32074, -25975,  10164, -8755, 64146,    0xff},
-       {80904, 16297, -28407,  10164, -8755, 64146,    0xff},
-       {89343, 20376, -29188,  10164, -8755, 64146,    0xff},
-       {-83968, 3584, -28160,  -4856, 2444, 65313,     0xff},
-       {-80904, 16297, -28407, -4856, 2444, 65313,     0xff},
-       {-89343, 20376, -29188, -4856, 2444, 65313,     0xff},
-       {64283, 24671, -16941,  40416, -29530, 42303,   0xff},
-       {76699, 22655, -30212,  40416, -29530, 42303,   0xff},
-       {79147, 32074, -25975,  40416, -29530, 42303,   0xff},
-       {-77984, 6266, -28588,  -10413, 32204, 56118,   0xff},
-       {-83968, 3584, -28160,  -10413, 32204, 56118,   0xff},
-       {-68018, -4978, -20287, -10413, 32204, 56118,   0xff},
-       {68018, -4978, -20287,  35717, 41923, 35520,    0xff},
-       {67766, 376, -26353,    35717, 41923, 35520,    0xff},
-       {55385, -3250, -9623,   35717, 41923, 35520,    0xff},
-       {-55385, -3250, -9623,  -35717, 41923, 35520,   0xff},
-       {-67766, 376, -26353,   -35717, 41923, 35520,   0xff},
-       {-68018, -4978, -20287, -35717, 41923, 35520,   0xff},
-       {-76699, 22655, -30212, 40108, -12229, 50364,   0xff},
-       {-79147, 32074, -25975, 40108, -12229, 50364,   0xff},
-       {-80904, 16297, -28407, 40108, -12229, 50364,   0xff},
-       {-76699, 22655, -30212, -40416, -29530, 42303,  0xff},
-       {-64283, 24671, -16941, -40416, -29530, 42303,  0xff},
-       {-79147, 32074, -25975, -40416, -29530, 42303,  0xff},
-       {46721, -944, -11257,   -6402, 19942, 62095,    0xff},
-       {50688, -9216, -8192,   -6402, 19942, 62095,    0xff},
-       {55385, -3250, -9623,   -6402, 19942, 62095,    0xff},
-       {38912, -8192, -10751,  43823, -47860, -9161,   0xff},
-       {46721, -944, -11257,   43823, -47860, -9161,   0xff},
-       {47823, -2804, 3726,    43823, -47860, -9161,   0xff},
-       {-46721, -944, -11257,  11993, 17255, 62075,    0xff},
-       {-50688, -9216, -8192,  11993, 17255, 62075,    0xff},
-       {-38912, -8192, -10751, 11993, 17255, 62075,    0xff},
-       {56241, 17046, 2221,    60109, -23848, -10623,  0xff},
-       {46721, -944, -11257,   60109, -23848, -10623,  0xff},
-       {54169, 18593, -12979,  60109, -23848, -10623,  0xff},
-       {-46721, -944, -11257,  -45239, 6402, 46982,    0xff},
-       {-55793, 3702, -20626,  -45239, 6402, 46982,    0xff},
-       {-55861, -126, -20169,  -45239, 6402, 46982,    0xff},
-       {50746, 6427, -19395,   30185, 34891, 46543,    0xff},
-       {46721, -944, -11257,   30185, 34891, 46543,    0xff},
-       {55793, 3702, -20626,   30185, 34891, 46543,    0xff},
-       {-55793, 3702, -20626,  -30185, 34891, 46543,   0xff},
-       {-46721, -944, -11257,  -30185, 34891, 46543,   0xff},
-       {-50746, 6427, -19395,  -30185, 34891, 46543,   0xff},
-       {54169, 18593, -12979,  60823, -22315, 9869,    0xff},
-       {46721, -944, -11257,   60823, -22315, 9869,    0xff},
-       {50746, 6427, -19395,   60823, -22315, 9869,    0xff},
-       {54169, 18593, -12979,  36726, -33043, 43063,   0xff},
-       {50746, 6427, -19395,   36726, -33043, 43063,   0xff},
-       {64283, 24671, -16941,  36726, -33043, 43063,   0xff},
-       {-46721, -944, -11257,  -60109, -23848, -10623, 0xff},
-       {-56241, 17046, 2221,   -60109, -23848, -10623, 0xff},
-       {-54169, 18593, -12979, -60109, -23848, -10623, 0xff},
-       {67766, 376, -26353,    30133, -11226, 57101,   0xff},
-       {72755, 15982, -25917,  30133, -11226, 57101,   0xff},
-       {55861, -126, -20169,   30133, -11226, 57101,   0xff},
-       {-50746, 6427, -19395,  -48830, -38908, 19916,  0xff},
-       {-64283, 24671, -16941, -48830, -38908, 19916,  0xff},
-       {-63071, 20046, -23006, -48830, -38908, 19916,  0xff},
-       {-67766, 376, -26353,   -7130, 62377, 18802,    0xff},
-       {-55385, -3250, -9623,  -7130, 62377, 18802,    0xff},
-       {-55861, -126, -20169,  -7130, 62377, 18802,    0xff},
-       {55793, 3702, -20626,   3702, 7811, 64965,      0xff},
-       {55861, -126, -20169,   3702, 7811, 64965,      0xff},
-       {63071, 20046, -23006,  3702, 7811, 64965,      0xff},
-       {-63071, 20046, -23006, -3702, 7811, 64965,     0xff},
-       {-55861, -126, -20169,  -3702, 7811, 64965,     0xff},
-       {-55793, 3702, -20626,  -3702, 7811, 64965,     0xff},
-       {-67766, 376, -26353,   -18009, -7503, 62567,   0xff},
-       {-72755, 15982, -25917, -18009, -7503, 62567,   0xff},
-       {-77984, 6266, -28588,  -18009, -7503, 62567,   0xff},
-       {51711, -8192, -21504,  12930, -64126, -3938,   0xff},
-       {68018, -4978, -20287,  12930, -64126, -3938,   0xff},
-       {50688, -9216, -8192,   12930, -64126, -3938,   0xff},
-       {-72755, 15982, -25917, -19287, -6737, 62272,   0xff},
-       {-80904, 16297, -28407, -19287, -6737, 62272,   0xff},
-       {-77984, 6266, -28588,  -19287, -6737, 62272,   0xff},
-       {-68018, -4978, -20287, -12930, -64126, -3938,  0xff},
-       {-51711, -8192, -21504, -12930, -64126, -3938,  0xff},
-       {-50688, -9216, -8192,  -12930, -64126, -3938,  0xff},
-       {68095, -5632, -32256,  32224, -56970, 3316,    0xff},
-       {83968, 3584, -28160,   32224, -56970, 3316,    0xff},
-       {68018, -4978, -20287,  32224, -56970, 3316,    0xff},
-       {-83968, 3584, -28160,  -32224, -56970, 3316,   0xff},
-       {-68095, -5632, -32256, -32224, -56970, 3316,   0xff},
-       {-68018, -4978, -20287, -32224, -56970, 3316,   0xff},
-       {54646, 23084, -25639,  -35461, -3945, -54971,  0xff},
-       {68095, -5632, -32256,  -35461, -3945, -54971,  0xff},
-       {51711, -8192, -21504,  -35461, -3945, -54971,  0xff},
-       {83968, 3584, -28160,   60194, -18133, 18520,   0xff},
-       {86016, 3584, -34816,   60194, -18133, 18520,   0xff},
-       {89343, 20376, -29188,  60194, -18133, 18520,   0xff},
-       {-89343, 20376, -29188, -49833, 42388, 3820,    0xff},
-       {-79147, 32074, -25975, -49833, 42388, 3820,    0xff},
-       {-80412, 31511, -36230, -49833, 42388, 3820,    0xff},
-       {-79147, 32074, -25975, 14588, 63668, -5295,    0xff},
-       {-60188, 28534, -16295, 14588, 63668, -5295,    0xff},
-       {-80412, 31511, -36230, 14588, 63668, -5295,    0xff},
-       {60188, 28534, -16295,  -26135, 57357, -17950,  0xff},
-       {80412, 31511, -36230,  -26135, 57357, -17950,  0xff},
-       {54646, 23084, -25639,  -26135, 57357, -17950,  0xff},
-       {-54646, 23084, -25639, 25454, 1985, -60358,    0xff},
-       {-68095, -5632, -32256, 25454, 1985, -60358,    0xff},
-       {-80412, 31511, -36230, 25454, 1985, -60358,    0xff},
-       {51711, -8192, -21504,  -19719, -57920, -23474, 0xff},
-       {38912, -8192, -10751,  -19719, -57920, -23474, 0xff},
-       {34990, 3085, -35283,   -19719, -57920, -23474, 0xff},
-       {54169, 18593, -12979,  -53641, 36077, 10774,   0xff},
-       {60188, 28534, -16295,  -53641, 36077, 10774,   0xff},
-       {54646, 23084, -25639,  -53641, 36077, 10774,   0xff},
-       {-38912, -8192, -10751, 19719, -57920, -23474,  0xff},
-       {-51711, -8192, -21504, 19719, -57920, -23474,  0xff},
-       {-34990, 3085, -35283,  19719, -57920, -23474,  0xff},
-       {10240, 28672, 42496,   -15938, 47664, 42061,   0xff},
-       {17110, 21655, 53050,   -15938, 47664, 42061,   0xff},
-       {22663, 24387, 52059,   -15938, 47664, 42061,   0xff},
-       {-10240, 28672, 42496,  13598, 50036, 40081,    0xff},
-       {-23039, 33792, 40448,  13598, 50036, 40081,    0xff},
-       {-22663, 24387, 52059,  13598, 50036, 40081,    0xff},
-       {23039, 33792, 40448,   24700, 46779, 38685,    0xff},
-       {22663, 24387, 52059,   24700, 46779, 38685,    0xff},
-       {28828, 22209, 50756,   24700, 46779, 38685,    0xff},
-       {-23039, 33792, 40448,  -26234, 46707, 37748,   0xff},
-       {-35840, 28672, 37888,  -26234, 46707, 37748,   0xff},
-       {-28828, 22209, 50756,  -26234, 46707, 37748,   0xff},
-       {17889, -58077, 42583,  52861, 2195, 38679,     0xff},
-       {23886, -61271, 34567,  52861, 2195, 38679,     0xff},
-       {20480, -28672, 37375,  52861, 2195, 38679,     0xff},
-       {-20480, -28672, 37375, -52861, 2195, 38679,    0xff},
-       {-23886, -61271, 34567, -52861, 2195, 38679,    0xff},
-       {-17889, -58077, 42583, -52861, 2195, 38679,    0xff},
-       {38730, -56, 40521,     22413, -57986, 20748,   0xff},
-       {7184, -8347, 51436,    22413, -57986, 20748,   0xff},
-       {13735, -11853, 34559,  22413, -57986, 20748,   0xff},
-       {-13735, -11853, 34559, -22413, -57986, 20748,  0xff},
-       {-7184, -8347, 51436,   -22413, -57986, 20748,  0xff},
-       {-38730, -56, 40521,    -22413, -57986, 20748,  0xff},
-       {52680, 10582, 27526,   35631, -34478, 42853,   0xff},
-       {55891, 27603, 38552,   35631, -34478, 42853,   0xff},
-       {45997, 26631, 45998,   35631, -34478, 42853,   0xff},
-       {-45997, 26631, 45998,  -35631, -34478, 42853,  0xff},
-       {-55891, 27603, 38552,  -35631, -34478, 42853,  0xff},
-       {-52680, 10582, 27526,  -35631, -34478, 42853,  0xff},
-       {45997, 26631, 45998,   31968, 32925, 46786,    0xff},
-       {55891, 27603, 38552,   31968, 32925, 46786,    0xff},
-       {20576, 48728, 47817,   31968, 32925, 46786,    0xff},
-       {-45997, 26631, 45998,  -34078, 35651, 43162,   0xff},
-       {-16522, 42544, 56125,  -34078, 35651, 43162,   0xff},
-       {-20576, 48728, 47817,  -34078, 35651, 43162,   0xff},
-       {6655, 28160, 55296,    -43207, 23697, 43207,   0xff},
-       {10717, 45254, 49982,   -43207, 23697, 43207,   0xff},
-       {0, 28160, 48640,       -43207, 23697, 43207,   0xff},
-       {-6655, 28160, 55296,   37840, 37840, 37840,    0xff},
-       {0, 23039, 53759,       37840, 37840, 37840,    0xff},
-       {0, 28160, 48640,       37840, 37840, 37840,    0xff},
-       {37532, 23949, 45101,   3493, -30402, 57953,    0xff},
-       {45997, 26631, 45998,   3493, -30402, 57953,    0xff},
-       {16522, 42544, 56125,   3493, -30402, 57953,    0xff},
-       {-16522, 42544, 56125,  -3493, -30402, 57953,   0xff},
-       {-45997, 26631, 45998,  -3493, -30402, 57953,   0xff},
-       {-37532, 23949, 45101,  -3493, -30402, 57953,   0xff},
-       {35596, 13941, 44774,   12386, -16154, 62291,   0xff},
-       {38730, -56, 40521,     12386, -16154, 62291,   0xff},
-       {45997, 26631, 45998,   12386, -16154, 62291,   0xff},
-       {-45997, 26631, 45998,  -12386, -16154, 62291,  0xff},
-       {-38730, -56, 40521,    -12386, -16154, 62291,  0xff},
-       {-35596, 13941, 44774,  -12386, -16154, 62291,  0xff},
-       {10870, 21498, 51250,   32086, -13428, 55541,   0xff},
-       {18675, 32472, 49395,   32086, -13428, 55541,   0xff},
-       {6655, 28160, 55296,    32086, -13428, 55541,   0xff},
-       {-10870, 21498, 51250,  -9201, -29327, 57881,   0xff},
-       {0, 23039, 53759,       -9201, -29327, 57881,   0xff},
-       {-6655, 28160, 55296,   -9201, -29327, 57881,   0xff},
-       {0, -64120, 39331,      6684, -45114, 47061,    0xff},
-       {17889, -58077, 42583,  6684, -45114, 47061,    0xff},
-       {5321, -56373, 46002,   6684, -45114, 47061,    0xff},
-       {-5321, -56373, 46002,  -6684, -45114, 47061,   0xff},
-       {-17889, -58077, 42583, -6684, -45114, 47061,   0xff},
-       {0, -64120, 39331,      -6684, -45114, 47061,   0xff},
-       {6576, -48050, 48049,   11744, -1009, 64467,    0xff},
-       {9270, -15610, 48065,   11744, -1009, 64467,    0xff},
-       {0, -22071, 49653,      11744, -1009, 64467,    0xff},
-       {0, -22071, 49653,      -11744, -1009, 64467,   0xff},
-       {-9270, -15610, 48065,  -11744, -1009, 64467,   0xff},
-       {-6576, -48050, 48049,  -11744, -1009, 64467,   0xff},
-       {3406, -8432, 52239,    10806, 18277, 61997,    0xff},
-       {0, -13312, 54272,      10806, 18277, 61997,    0xff},
-       {8547, -14728, 53199,   10806, 18277, 61997,    0xff},
-       {-3406, -8432, 52239,   -12582, 19614, 61256,   0xff},
-       {-7184, -8347, 51436,   -12582, 19614, 61256,   0xff},
-       {-8547, -14728, 53199,  -12582, 19614, 61256,   0xff},
-       {6576, -48050, 48049,   21882, -61027, 9581,    0xff},
-       {0, -50426, 47939,      21882, -61027, 9581,    0xff},
-       {0, -51200, 43008,      21882, -61027, 9581,    0xff},
-       {0, -51200, 43008,      -21882, -61027, 9581,   0xff},
-       {0, -50426, 47939,      -21882, -61027, 9581,   0xff},
-       {-6576, -48050, 48049,  -21882, -61027, 9581,   0xff},
-       {24499, 5671, 47725,    1782, -36693, 54270,    0xff},
-       {12284, 9600, 50782,    1782, -36693, 54270,    0xff},
-       {12499, 6571, 48727,    1782, -36693, 54270,    0xff},
-       {-12499, 6571, 48727,   -1776, -36693, 54270,   0xff},
-       {-12284, 9600, 50782,   -1776, -36693, 54270,   0xff},
-       {-24499, 5671, 47725,   -1776, -36693, 54270,   0xff},
-       {12799, 19456, 49663,   43601, 3257, 48817,     0xff},
-       {10870, 21498, 51250,   43601, 3257, 48817,     0xff},
-       {12284, 9600, 50782,    43601, 3257, 48817,     0xff},
-       {-12799, 19456, 49663,  -59683, -52, 27066,     0xff},
-       {-13098, 11318, 48991,  -59683, -52, 27066,     0xff},
-       {-12284, 9600, 50782,   -59683, -52, 27066,     0xff},
-       {7168, 30208, 39936,    -28429, 58248, -9705,   0xff},
-       {0, 26624, 39423,       -28429, 58248, -9705,   0xff},
-       {0, 28160, 48640,       -28429, 58248, -9705,   0xff},
-       {0, 28160, 48640,       28429, 58248, -9705,    0xff},
-       {0, 26624, 39423,       28429, 58248, -9705,    0xff},
-       {-7168, 30208, 39936,   28429, 58248, -9705,    0xff},
-       {29979, 34639, 31110,   23291, 52658, -31299,   0xff},
-       {20576, 48728, 47817,   23291, 52658, -31299,   0xff},
-       {55891, 27603, 38552,   23291, 52658, -31299,   0xff},
-       {-29979, 34639, 31110,  -20951, 59926, -16285,  0xff},
-       {-48630, 26065, 23550,  -20951, 59926, -16285,  0xff},
-       {-55891, 27603, 38552,  -20951, 59926, -16285,  0xff},
-       {0, -52736, 22528,      20335, -8749, -61682,   0xff},
-       {0, -31857, 19566,      20335, -8749, -61682,   0xff},
-       {16045, -30052, 24599,  20335, -8749, -61682,   0xff},
-       {-16045, -30052, 24599, -20335, -8749, -61682,  0xff},
-       {0, -31857, 19566,      -20335, -8749, -61682,  0xff},
-       {0, -52736, 22528,      -20335, -8749, -61682,  0xff},
-       {0, -63999, 30208,      9968, -62966, -15197,   0xff},
-       {21330, -59803, 26806,  9968, -62966, -15197,   0xff},
-       {23886, -61271, 34567,  9968, -62966, -15197,   0xff},
-       {-23886, -61271, 34567, -9968, -62966, -15197,  0xff},
-       {-21330, -59803, 26806, -9968, -62966, -15197,  0xff},
-       {0, -63999, 30208,      -9968, -62966, -15197,  0xff},
-       {20480, -28672, 37375,  59585, 15623, -22367,   0xff},
-       {16045, -30052, 24599,  59585, 15623, -22367,   0xff},
-       {14336, -18432, 28160,  59585, 15623, -22367,   0xff},
-       {-14336, -18432, 28160, -59585, 15623, -22367,  0xff},
-       {-16045, -30052, 24599, -59585, 15623, -22367,  0xff},
-       {-20480, -28672, 37375, -59585, 15623, -22367,  0xff},
-       {0, 4607, -54272,       27643, -26699, -53084,  0xff},
-       {34990, 3085, -35283,   27643, -26699, -53084,  0xff},
-       {22528, -9728, -35327,  27643, -26699, -53084,  0xff},
-       {-22528, -9728, -35327, -27643, -26699, -53084, 0xff},
-       {-34990, 3085, -35283,  -27643, -26699, -53084, 0xff},
-       {0, 4607, -54272,       -27643, -26699, -53084, 0xff},
-       {0, -25087, -23039,     19569, -53975, -31594,  0xff},
-       {0, -12799, -44032,     19569, -53975, -31594,  0xff},
-       {22528, -9728, -35327,  19569, -53975, -31594,  0xff},
-       {0, -25087, -23039,     -21384, -54670, -29137, 0xff},
-       {-19456, -20480, -17408,        -21384, -54670, -29137, 0xff},
-       {-22528, -9728, -35327, -21384, -54670, -29137, 0xff},
-       {11434, -27191, 17172,  22747, -60699, -9640,   0xff},
-       {0, -31857, 19566,      22747, -60699, -9640,   0xff},
-       {0, -25087, -23039,     22747, -60699, -9640,   0xff},
-       {0, -25087, -23039,     -22747, -60699, -9640,  0xff},
-       {0, -31857, 19566,      -22747, -60699, -9640,  0xff},
-       {-11434, -27191, 17172, -22747, -60699, -9640,  0xff},
-       {47823, -2804, 3726,    60358, -25447, 1992,    0xff},
-       {56241, 17046, 2221,    60358, -25447, 1992,    0xff},
-       {52680, 10582, 27526,   60358, -25447, 1992,    0xff},
-       {-52680, 10582, 27526,  -60358, -25447, 1992,   0xff},
-       {-56241, 17046, 2221,   -60358, -25447, 1992,   0xff},
-       {-47823, -2804, 3726,   -60358, -25447, 1992,   0xff},
-       {0, 4607, -54272,       18415, -2988, -62822,   0xff},
-       {0, 36864, -55807,      18415, -2988, -62822,   0xff},
-       {30128, 26936, -46502,  18415, -2988, -62822,   0xff},
-       {0, 4607, -54272,       -29084, -20034, -55200, 0xff},
-       {-34990, 3085, -35283,  -29084, -20034, -55200, 0xff},
-       {-30128, 26936, -46502, -29084, -20034, -55200, 0xff},
-       {0, 64512, -5120,       8336, 63294, 14811,     0xff},
-       {0, 58880, 18943,       8336, 63294, 14811,     0xff},
-       {29696, 55807, 15360,   8336, 63294, 14811,     0xff},
-       {0, 64512, -5120,       -7333, 63084, 16174,    0xff},
-       {-29696, 60928, -4607,  -7333, 63084, 16174,    0xff},
-       {-29696, 55807, 15360,  -7333, 63084, 16174,    0xff},
-       {29696, 56832, -25087,  8650, 63897, -11717,    0xff},
-       {0, 58880, -35840,      8650, 63897, -11717,    0xff},
-       {0, 64512, -5120,       8650, 63897, -11717,    0xff},
-       {0, 64512, -5120,       -8650, 63897, -11717,   0xff},
-       {0, 58880, -35840,      -8650, 63897, -11717,   0xff},
-       {-29696, 56832, -25087, -8650, 63897, -11717,   0xff},
-       {30128, 26936, -46502,  26902, 40147, -44263,   0xff},
-       {0, 36864, -55807,      26902, 40147, -44263,   0xff},
-       {0, 58880, -35840,      26902, 40147, -44263,   0xff},
-       {0, 58880, -35840,      -26902, 40147, -44263,  0xff},
-       {0, 36864, -55807,      -26902, 40147, -44263,  0xff},
-       {-30128, 26936, -46502, -26902, 40147, -44263,  0xff},
-       {51586, 40861, -9829,   43345, 47566, -12399,   0xff},
-       {50190, 37864, -26209,  43345, 47566, -12399,   0xff},
-       {29696, 56832, -25087,  43345, 47566, -12399,   0xff},
-       {-29696, 56832, -25087, -43345, 47566, -12399,  0xff},
-       {-50190, 37864, -26209, -43345, 47566, -12399,  0xff},
-       {-51586, 40861, -9829,  -43345, 47566, -12399,  0xff},
-       {51216, 37752, 6281,    45049, 46537, 10013,    0xff},
-       {51586, 40861, -9829,   45049, 46537, 10013,    0xff},
-       {29696, 60928, -4607,   45049, 46537, 10013,    0xff},
-       {-29696, 60928, -4607,  -45049, 46537, 10013,   0xff},
-       {-51586, 40861, -9829,  -45049, 46537, 10013,   0xff},
-       {-51216, 37752, 6281,   -45049, 46537, 10013,   0xff},
-       {41471, 29696, 18432,   39334, 23265, 46969,    0xff},
-       {51216, 37752, 6281,    39334, 23265, 46969,    0xff},
-       {29696, 55807, 15360,   39334, 23265, 46969,    0xff},
-       {-29696, 55807, 15360,  -39334, 23265, 46969,   0xff},
-       {-51216, 37752, 6281,   -39334, 23265, 46969,   0xff},
-       {-41471, 29696, 18432,  -39334, 23265, 46969,   0xff},
-       {0, 58880, 18943,       13965, 41667, 48614,    0xff},
-       {0, 37375, 37375,       13965, 41667, 48614,    0xff},
-       {29979, 34639, 31110,   13965, 41667, 48614,    0xff},
-       {0, 58880, 18943,       -10262, 38725, 51865,   0xff},
-       {-29696, 55807, 15360,  -10262, 38725, 51865,   0xff},
-       {-29979, 34639, 31110,  -10262, 38725, 51865,   0xff},
-       {51586, 40861, -9829,   63740, 14627, 4286,     0xff},
-       {51216, 37752, 6281,    63740, 14627, 4286,     0xff},
-       {56241, 17046, 2221,    63740, 14627, 4286,     0xff},
-       {-56241, 17046, 2221,   -63740, 14627, 4286,    0xff},
-       {-51216, 37752, 6281,   -63740, 14627, 4286,    0xff},
-       {-51586, 40861, -9829,  -63740, 14627, 4286,    0xff},
-       {54646, 23084, -25639,  62285, 18441, -8683,    0xff},
-       {50190, 37864, -26209,  62285, 18441, -8683,    0xff},
-       {51586, 40861, -9829,   62285, 18441, -8683,    0xff},
-       {-51586, 40861, -9829,  -62285, 18441, -8683,   0xff},
-       {-50190, 37864, -26209, -62285, 18441, -8683,   0xff},
-       {-54646, 23084, -25639, -62285, 18441, -8683,   0xff},
-       {14336, -18432, 28160,  38902, -52101, 8159,    0xff},
-       {29162, -13292, -9698,  38902, -52101, 8159,    0xff},
-       {34586, -3098, 29517,   38902, -52101, 8159,    0xff},
-       {-34586, -3098, 29517,  -38902, -52101, 8159,   0xff},
-       {-29162, -13292, -9698, -38902, -52101, 8159,   0xff},
-       {-14336, -18432, 28160, -38902, -52101, 8159,   0xff},
-       {29162, -13292, -9698,  46084, -43017, -17910,  0xff},
-       {19456, -20480, -17408, 46084, -43017, -17910,  0xff},
-       {22528, -9728, -35327,  46084, -43017, -17910,  0xff},
-       {-29162, -13292, -9698, -45239, -43941, -17819, 0xff},
-       {-34990, 3085, -35283,  -45239, -43941, -17819, 0xff},
-       {-22528, -9728, -35327, -45239, -43941, -17819, 0xff},
-       {83968, 3584, -28160,   4856, 2444, 65313,      0xff},
-       {89343, 20376, -29188,  4856, 2444, 65313,      0xff},
-       {80904, 16297, -28407,  4856, 2444, 65313,      0xff},
-       {-83968, 3584, -28160,  4607, 163, 65372,       0xff},
-       {-77984, 6266, -28588,  4607, 163, 65372,       0xff},
-       {-80904, 16297, -28407, 4607, 163, 65372,       0xff},
-       {64283, 24671, -16941,  26889, -49990, 32754,   0xff},
-       {63071, 20046, -23006,  26889, -49990, 32754,   0xff},
-       {76699, 22655, -30212,  26889, -49990, 32754,   0xff},
-       {-76699, 22655, -30212, -26889, -49990, 32754,  0xff},
-       {-63071, 20046, -23006, -26889, -49990, 32754,  0xff},
-       {-64283, 24671, -16941, -26889, -49990, 32754,  0xff},
-       {46721, -944, -11257,   -11993, 17255, 62075,   0xff},
-       {38912, -8192, -10751,  -11993, 17255, 62075,   0xff},
-       {50688, -9216, -8192,   -11993, 17255, 62075,   0xff},
-       {-46721, -944, -11257,  6402, 19942, 62095,     0xff},
-       {-55385, -3250, -9623,  6402, 19942, 62095,     0xff},
-       {-50688, -9216, -8192,  6402, 19942, 62095,     0xff},
-       {56241, 17046, 2221,    59716, -25899, -7608,   0xff},
-       {47823, -2804, 3726,    59716, -25899, -7608,   0xff},
-       {46721, -944, -11257,   59716, -25899, -7608,   0xff},
-       {-46721, -944, -11257,  -59716, -25899, -7608,  0xff},
-       {-47823, -2804, 3726,   -59716, -25899, -7608,  0xff},
-       {-56241, 17046, 2221,   -59716, -25899, -7608,  0xff},
-       {67766, 376, -26353,    18009, -7503, 62567,    0xff},
-       {77984, 6266, -28588,   18009, -7503, 62567,    0xff},
-       {72755, 15982, -25917,  18009, -7503, 62567,    0xff},
-       {-67766, 376, -26353,   -30133, -11226, 57101,  0xff},
-       {-55861, -126, -20169,  -30133, -11226, 57101,  0xff},
-       {-72755, 15982, -25917, -30133, -11226, 57101,  0xff},
-       {51711, -8192, -21504,  12392, -64251, 3584,    0xff},
-       {68095, -5632, -32256,  12392, -64251, 3584,    0xff},
-       {68018, -4978, -20287,  12392, -64251, 3584,    0xff},
-       {-68018, -4978, -20287, -12392, -64251, 3584,   0xff},
-       {-68095, -5632, -32256, -12392, -64251, 3584,   0xff},
-       {-51711, -8192, -21504, -12392, -64251, 3584,   0xff},
-       {68095, -5632, -32256,  30723, -57114, 9450,    0xff},
-       {86016, 3584, -34816,   30723, -57114, 9450,    0xff},
-       {83968, 3584, -28160,   30723, -57114, 9450,    0xff},
-       {-83968, 3584, -28160,  -30723, -57114, 9450,   0xff},
-       {-86016, 3584, -34816,  -30723, -57114, 9450,   0xff},
-       {-68095, -5632, -32256, -30723, -57114, 9450,   0xff},
-       {54646, 23084, -25639,  -25454, 1985, -60358,   0xff},
-       {80412, 31511, -36230,  -25454, 1985, -60358,   0xff},
-       {68095, -5632, -32256,  -25454, 1985, -60358,   0xff},
-       {-54646, 23084, -25639, 35461, -3945, -54971,   0xff},
-       {-51711, -8192, -21504, 35461, -3945, -54971,   0xff},
-       {-68095, -5632, -32256, 35461, -3945, -54971,   0xff},
-       {51711, -8192, -21504,  -4502, -65162, -5360,   0xff},
-       {50688, -9216, -8192,   -4502, -65162, -5360,   0xff},
-       {38912, -8192, -10751,  -4502, -65162, -5360,   0xff},
-       {-38912, -8192, -10751, 4502, -65162, -5360,    0xff},
-       {-50688, -9216, -8192,  4502, -65162, -5360,    0xff},
-       {-51711, -8192, -21504, 4502, -65162, -5360,    0xff}
+       {  42179,   34643,   72828,    42860,   11062,   48326,  0xff},
+       {  70266,   49941,   44417,    42860,   11062,   48326,  0xff},
+       {  76505,   29250,   43620,    42860,   11062,   48326,  0xff},
+       {  48986,    1251,   57121,    39898,  -15250,   49702,  0xff},
+       {  42179,   34643,   72828,    39898,  -15250,   49702,  0xff},
+       {  76505,   29250,   43620,    39898,  -15250,   49702,  0xff},
+       {      0,    3383,   83705,    24451,  -30828,   52409,  0xff},
+       {  31539,  -16686,   57184,    24451,  -30828,   52409,  0xff},
+       {      0,  -20987,   69369,    24451,  -30828,   52409,  0xff},
+       { -31539,  -16686,   57184,   -24451,  -30828,   52409,  0xff},
+       {      0,    3383,   83705,   -24451,  -30828,   52409,  0xff},
+       {      0,  -20987,   69369,   -24451,  -30828,   52409,  0xff},
+       {      0,    3383,   83705,    29084,  -20034,   55200,  0xff},
+       {  42179,   34643,   72828,    29084,  -20034,   55200,  0xff},
+       {  48986,    1251,   57121,    29084,  -20034,   55200,  0xff},
+       {      0,    3383,   83705,   -18415,   -2988,   62822,  0xff},
+       { -42179,   34643,   72828,   -18415,   -2988,   62822,  0xff},
+       {      0,   48541,   85856,   -18415,   -2988,   62822,  0xff},
+       {  40826,  -21676,   21302,    24884,  -53477,   28560,  0xff},
+       {  48986,    1251,   57121,    24884,  -53477,   28560,  0xff},
+       {  54476,  -14536,   22777,    24884,  -53477,   28560,  0xff},
+       {-110806,   41836,   44090,   -10164,   -8755,  -64146,  0xff},
+       {-125081,   25458,   48588,   -10164,   -8755,  -64146,  0xff},
+       {-113265,   19748,   47495,   -10164,   -8755,  -64146,  0xff},
+       { 109177,    5704,   47748,    10413,   32197,  -56118,  0xff},
+       {  95225,  -10037,   36126,    10413,   32197,  -56118,  0xff},
+       { 117555,    1949,   47148,    10413,   32197,  -56118,  0xff},
+       { 112577,   41048,   58447,    45324,    6723,   46858,  0xff},
+       { 125081,   25458,   48588,    45324,    6723,   46858,  0xff},
+       { 120422,    1949,   56467,    45324,    6723,   46858,  0xff},
+       {-120422,    1949,   56467,   -45324,    6723,   46858,  0xff},
+       {-125081,   25458,   48588,   -45324,    6723,   46858,  0xff},
+       {-112577,   41048,   58447,   -45324,    6723,   46858,  0xff},
+       {  95225,  -10037,   36126,    38954,  -18867,  -49210,  0xff},
+       {  77539,   -7618,   21197,    38954,  -18867,  -49210,  0xff},
+       {  70963,  -15970,   19193,    38954,  -18867,  -49210,  0xff},
+       { -77539,   -7618,   21197,   -38954,  -18867,  -49210,  0xff},
+       { -95225,  -10037,   36126,   -38954,  -18867,  -49210,  0xff},
+       { -70963,  -15970,   19193,   -38954,  -18867,  -49210,  0xff},
+       { 109177,    5704,   47748,   -17825,   46910,  -42146,  0xff},
+       {  94873,   -2541,   44620,   -17825,   46910,  -42146,  0xff},
+       {  95225,  -10037,   36126,   -17825,   46910,  -42146,  0xff},
+       { -94873,   -2541,   44620,    17825,   46910,  -42146,  0xff},
+       {-109177,    5704,   47748,    17825,   46910,  -42146,  0xff},
+       { -95225,  -10037,   36126,    17825,   46910,  -42146,  0xff},
+       { 107379,   28649,   50021,   -40108,  -12229,  -50364,  0xff},
+       { 113265,   19748,   47495,   -40108,  -12229,  -50364,  0xff},
+       { 110806,   41836,   44090,   -40108,  -12229,  -50364,  0xff},
+       {      0,  -38190,   39980,    21384,  -54670,   29137,  0xff},
+       {  31539,  -16686,   57184,    21384,  -54670,   29137,  0xff},
+       {  27238,  -31739,   32096,    21384,  -54670,   29137,  0xff},
+       {      0,  -38190,   39980,   -19569,  -53975,   31594,  0xff},
+       { -31539,  -16686,   57184,   -19569,  -53975,   31594,  0xff},
+       {      0,  -20987,   69369,   -19569,  -53975,   31594,  0xff},
+       {  42179,   34643,   72828,    20755,   36398,   50390,  0xff},
+       {      0,   79364,   57900,    20755,   36398,   50390,  0xff},
+       {  41574,   76497,   42848,    20755,   36398,   50390,  0xff},
+       {      0,   79364,   57900,   -20755,   36398,   50390,  0xff},
+       { -42179,   34643,   72828,   -20755,   36398,   50390,  0xff},
+       { -41574,   76497,   42848,   -20755,   36398,   50390,  0xff},
+       { -42179,   34643,   72828,   -42860,   11062,   48326,  0xff},
+       { -76505,   29250,   43620,   -42860,   11062,   48326,  0xff},
+       { -70266,   49941,   44417,   -42860,   11062,   48326,  0xff},
+       {  42179,   34643,   72828,    29261,   34426,   47467,  0xff},
+       {  41574,   76497,   42848,    29261,   34426,   47467,  0xff},
+       {  70266,   49941,   44417,    29261,   34426,   47467,  0xff},
+       { -70266,   49941,   44417,   -29261,   34426,   47467,  0xff},
+       { -41574,   76497,   42848,   -29261,   34426,   47467,  0xff},
+       { -42179,   34643,   72828,   -29261,   34426,   47467,  0xff},
+       {  40826,  -21676,   21302,    45239,  -43941,   17819,  0xff},
+       {  31539,  -16686,   57184,    45239,  -43941,   17819,  0xff},
+       {  48986,    1251,   57121,    45239,  -43941,   17819,  0xff},
+       { -48986,    1251,   57121,   -39898,  -15250,   49702,  0xff},
+       { -76505,   29250,   43620,   -39898,  -15250,   49702,  0xff},
+       { -42179,   34643,   72828,   -39898,  -15250,   49702,  0xff},
+       {  89996,   31472,   31443,    40416,  -29530,  -42303,  0xff},
+       { 107379,   28649,   50021,    40416,  -29530,  -42303,  0xff},
+       { 110806,   41836,   44090,    40416,  -29530,  -42303,  0xff},
+       {-109177,    5704,   47748,   -10413,   32197,  -56118,  0xff},
+       {-117555,    1949,   47148,   -10413,   32197,  -56118,  0xff},
+       { -95225,  -10037,   36126,   -10413,   32197,  -56118,  0xff},
+       {-117555,    1949,   47148,   -32224,  -56970,   -3316,  0xff},
+       { -95334,  -10952,   52883,   -32224,  -56970,   -3316,  0xff},
+       { -95225,  -10037,   36126,   -32224,  -56970,   -3316,  0xff},
+       {  76505,   29250,   43620,   -35461,   -3945,   54971,  0xff},
+       {  95334,  -10952,   52883,   -35461,   -3945,   54971,  0xff},
+       {  72396,  -14536,   37830,   -35461,   -3945,   54971,  0xff},
+       { 117555,    1949,   47148,    60194,  -18133,  -18520,  0xff},
+       { 120422,    1949,   56467,    60194,  -18133,  -18520,  0xff},
+       { 125081,   25458,   48588,    60194,  -18133,  -18520,  0xff},
+       {-125081,   25458,   48588,   -49833,   42388,   -3820,  0xff},
+       {-110806,   41836,   44090,   -49833,   42388,   -3820,  0xff},
+       {-112577,   41048,   58447,   -49833,   42388,   -3820,  0xff},
+       {-110806,   41836,   44090,    14588,   63668,    5295,  0xff},
+       { -84263,   36879,   30538,    14588,   63668,    5295,  0xff},
+       {-112577,   41048,   58447,    14588,   63668,    5295,  0xff},
+       {  84263,   36879,   30538,   -26135,   57357,   17950,  0xff},
+       { 112577,   41048,   58447,   -26135,   57357,   17950,  0xff},
+       {  76505,   29250,   43620,   -26135,   57357,   17950,  0xff},
+       { -76505,   29250,   43620,    25454,    1985,   60358,  0xff},
+       { -95334,  -10952,   52883,    25454,    1985,   60358,  0xff},
+       {-112577,   41048,   58447,    25454,    1985,   60358,  0xff},
+       {      0,    3383,   83705,    27643,  -26699,   53084,  0xff},
+       {  48986,    1251,   57121,    27643,  -26699,   53084,  0xff},
+       {  31539,  -16686,   57184,    27643,  -26699,   53084,  0xff},
+       { -31539,  -16686,   57184,   -27643,  -26699,   53084,  0xff},
+       { -48986,    1251,   57121,   -27643,  -26699,   53084,  0xff},
+       {      0,    3383,   83705,   -27643,  -26699,   53084,  0xff},
+       {      0,    3383,   83705,    18415,   -2988,   62822,  0xff},
+       {      0,   48541,   85856,    18415,   -2988,   62822,  0xff},
+       {  42179,   34643,   72828,    18415,   -2988,   62822,  0xff},
+       { -54476,  -14536,   22777,   -43823,  -47860,    9161,  0xff},
+       { -66952,   -6993,    2507,   -43823,  -47860,    9161,  0xff},
+       { -65410,   -4389,   23486,   -43823,  -47860,    9161,  0xff},
+       {  75836,   22963,   25895,    18677,    9410,  -62108,  0xff},
+       {  89996,   31472,   31443,    18677,    9410,  -62108,  0xff},
+       {  84263,   36879,   30538,    18677,    9410,  -62108,  0xff},
+       { -89996,   31472,   31443,   -18677,    9410,  -62108,  0xff},
+       { -75836,   22963,   25895,   -18677,    9410,  -62108,  0xff},
+       { -84263,   36879,   30538,   -18677,    9410,  -62108,  0xff},
+       {  77539,   -7618,   21197,    12818,   61466,  -18789,  0xff},
+       {  78205,   -3244,   35962,    12818,   61466,  -18789,  0xff},
+       {  65410,   -4389,   23486,    12818,   61466,  -18789,  0xff},
+       { -78205,   -3244,   35962,   -12818,   61466,  -18789,  0xff},
+       { -77539,   -7618,   21197,   -12818,   61466,  -18789,  0xff},
+       { -65410,   -4389,   23486,   -12818,   61466,  -18789,  0xff},
+       {  65410,   -4389,   23486,    45239,    6402,  -46982,  0xff},
+       {  78205,   -3244,   35962,    45239,    6402,  -46982,  0xff},
+       {  78110,    2116,   36601,    45239,    6402,  -46982,  0xff},
+       { -75836,   22963,   25895,   -60823,  -22315,   -9869,  0xff},
+       { -71045,    5930,   34878,   -60823,  -22315,   -9869,  0xff},
+       { -65410,   -4389,   23486,   -60823,  -22315,   -9869,  0xff},
+       { -75836,   22963,   25895,   -36726,  -33043,  -43063,  0xff},
+       { -89996,   31472,   31443,   -36726,  -33043,  -43063,  0xff},
+       { -71045,    5930,   34878,   -36726,  -33043,  -43063,  0xff},
+       {  71045,    5930,   34878,    48830,  -38908,  -19916,  0xff},
+       {  88300,   24997,   39934,    48830,  -38908,  -19916,  0xff},
+       {  89996,   31472,   31443,    48830,  -38908,  -19916,  0xff},
+       {  94873,   -2541,   44620,     7130,   62377,  -18802,  0xff},
+       {  78205,   -3244,   35962,     7130,   62377,  -18802,  0xff},
+       {  77539,   -7618,   21197,     7130,   62377,  -18802,  0xff},
+       {  78205,   -3244,   35962,    19555,    1802,  -62527,  0xff},
+       { 101858,   19308,   44010,    19555,    1802,  -62527,  0xff},
+       {  88300,   24997,   39934,    19555,    1802,  -62527,  0xff},
+       {-101858,   19308,   44010,   -19555,    1802,  -62527,  0xff},
+       { -78205,   -3244,   35962,   -19555,    1802,  -62527,  0xff},
+       { -88300,   24997,   39934,   -19555,    1802,  -62527,  0xff},
+       {  78110,    2116,   36601,    16488,    1893,  -63399,  0xff},
+       {  88300,   24997,   39934,    16488,    1893,  -63399,  0xff},
+       {  71045,    5930,   34878,    16488,    1893,  -63399,  0xff},
+       { -88300,   24997,   39934,   -16488,    1893,  -63399,  0xff},
+       { -78110,    2116,   36601,   -16488,    1893,  -63399,  0xff},
+       { -71045,    5930,   34878,   -16488,    1893,  -63399,  0xff},
+       { 101858,   19308,   44010,    19287,   -6737,  -62272,  0xff},
+       { 109177,    5704,   47748,    19287,   -6737,  -62272,  0xff},
+       { 113265,   19748,   47495,    19287,   -6737,  -62272,  0xff},
+       { 107379,   28649,   50021,    16469,   27158,  -57324,  0xff},
+       { 101858,   19308,   44010,    16469,   27158,  -57324,  0xff},
+       { 113265,   19748,   47495,    16469,   27158,  -57324,  0xff},
+       {-101858,   19308,   44010,   -16469,   27158,  -57324,  0xff},
+       {-107379,   28649,   50021,   -16469,   27158,  -57324,  0xff},
+       {-113265,   19748,   47495,   -16469,   27158,  -57324,  0xff},
+       {  88300,   24997,   39934,    25808,   21063,  -56439,  0xff},
+       { 101858,   19308,   44010,    25808,   21063,  -56439,  0xff},
+       { 107379,   28649,   50021,    25808,   21063,  -56439,  0xff},
+       {-107379,   28649,   50021,   -25808,   21063,  -56439,  0xff},
+       {-101858,   19308,   44010,   -25808,   21063,  -56439,  0xff},
+       { -88300,   24997,   39934,   -25808,   21063,  -56439,  0xff},
+       {-117555,    1949,   47148,   -60194,  -18133,  -18520,  0xff},
+       {-125081,   25458,   48588,   -60194,  -18133,  -18520,  0xff},
+       {-120422,    1949,   56467,   -60194,  -18133,  -18520,  0xff},
+       { 125081,   25458,   48588,    49833,   42388,   -3820,  0xff},
+       { 112577,   41048,   58447,    49833,   42388,   -3820,  0xff},
+       { 110806,   41836,   44090,    49833,   42388,   -3820,  0xff},
+       { 110806,   41836,   44090,   -14588,   63668,    5295,  0xff},
+       { 112577,   41048,   58447,   -14588,   63668,    5295,  0xff},
+       {  84263,   36879,   30538,   -14588,   63668,    5295,  0xff},
+       { -84263,   36879,   30538,    26135,   57357,   17950,  0xff},
+       { -76505,   29250,   43620,    26135,   57357,   17950,  0xff},
+       {-112577,   41048,   58447,    26135,   57357,   17950,  0xff},
+       { 112577,   41048,   58447,    -6881,   -4672,   65005,  0xff},
+       { 120422,    1949,   56467,    -6881,   -4672,   65005,  0xff},
+       {  95334,  -10952,   52883,    -6881,   -4672,   65005,  0xff},
+       {-120422,    1949,   56467,     6881,   -4672,   65005,  0xff},
+       {-112577,   41048,   58447,     6881,   -4672,   65005,  0xff},
+       { -95334,  -10952,   52883,     6881,   -4672,   65005,  0xff},
+       { -75836,   22963,   25895,    53641,   36077,  -10774,  0xff},
+       { -76505,   29250,   43620,    53641,   36077,  -10774,  0xff},
+       { -84263,   36879,   30538,    53641,   36077,  -10774,  0xff},
+       {  76505,   29250,   43620,    36778,  -10485,   53215,  0xff},
+       {  72396,  -14536,   37830,    36778,  -10485,   53215,  0xff},
+       {  48986,    1251,   57121,    36778,  -10485,   53215,  0xff},
+       { -72396,  -14536,   37830,   -36778,  -10485,   53215,  0xff},
+       { -76505,   29250,   43620,   -36778,  -10485,   53215,  0xff},
+       { -48986,    1251,   57121,   -36778,  -10485,   53215,  0xff},
+       {  16008,  -41135,  -16316,    17216,  -62704,    8172,  0xff},
+       {      0,  -38190,   39980,    17216,  -62704,    8172,  0xff},
+       {  27238,  -31739,   32096,    17216,  -62704,    8172,  0xff},
+       {      0,  -38190,   39980,   -17216,  -62704,    8172,  0xff},
+       { -16008,  -41135,  -16316,   -17216,  -62704,    8172,  0xff},
+       { -27238,  -31739,   32096,   -17216,  -62704,    8172,  0xff},
+       {  95225,  -10037,   36126,    35717,   41923,  -35520,  0xff},
+       {  94873,   -2541,   44620,    35717,   41923,  -35520,  0xff},
+       {  77539,   -7618,   21197,    35717,   41923,  -35520,  0xff},
+       { -77539,   -7618,   21197,   -35717,   41923,  -35520,  0xff},
+       { -94873,   -2541,   44620,   -35717,   41923,  -35520,  0xff},
+       { -95225,  -10037,   36126,   -35717,   41923,  -35520,  0xff},
+       {-107379,   28649,   50021,    40108,  -12229,  -50364,  0xff},
+       {-110806,   41836,   44090,    40108,  -12229,  -50364,  0xff},
+       {-113265,   19748,   47495,    40108,  -12229,  -50364,  0xff},
+       {-107379,   28649,   50021,   -40416,  -29530,  -42303,  0xff},
+       { -89996,   31472,   31443,   -40416,  -29530,  -42303,  0xff},
+       {-110806,   41836,   44090,   -40416,  -29530,  -42303,  0xff},
+       {  72396,  -14536,   37830,   -19719,  -57920,   23474,  0xff},
+       {  54476,  -14536,   22777,   -19719,  -57920,   23474,  0xff},
+       {  48986,    1251,   57121,   -19719,  -57920,   23474,  0xff},
+       {      0,  -38190,   39980,    19569,  -53975,   31594,  0xff},
+       {      0,  -20987,   69369,    19569,  -53975,   31594,  0xff},
+       {  31539,  -16686,   57184,    19569,  -53975,   31594,  0xff},
+       {      0,    3383,   83705,   -29084,  -20034,   55200,  0xff},
+       { -48986,    1251,   57121,   -29084,  -20034,   55200,  0xff},
+       { -42179,   34643,   72828,   -29084,  -20034,   55200,  0xff},
+       {  42179,   34643,   72828,    26902,   40147,   44263,  0xff},
+       {      0,   48541,   85856,    26902,   40147,   44263,  0xff},
+       {      0,   79364,   57900,    26902,   40147,   44263,  0xff},
+       {      0,   79364,   57900,   -26902,   40147,   44263,  0xff},
+       {      0,   48541,   85856,   -26902,   40147,   44263,  0xff},
+       { -42179,   34643,   72828,   -26902,   40147,   44263,  0xff},
+       {  75836,   22963,   25895,   -53641,   36077,  -10774,  0xff},
+       {  84263,   36879,   30538,   -53641,   36077,  -10774,  0xff},
+       {  76505,   29250,   43620,   -53641,   36077,  -10774,  0xff},
+       { -54476,  -14536,   22777,    19719,  -57920,   23474,  0xff},
+       { -72396,  -14536,   37830,    19719,  -57920,   23474,  0xff},
+       { -48986,    1251,   57121,    19719,  -57920,   23474,  0xff},
+       {      0,  -38190,   39980,   -21384,  -54670,   29137,  0xff},
+       { -27238,  -31739,   32096,   -21384,  -54670,   29137,  0xff},
+       { -31539,  -16686,   57184,   -21384,  -54670,   29137,  0xff},
+       {  41574,   76497,   42848,     8650,   63897,   11717,  0xff},
+       {      0,   79364,   57900,     8650,   63897,   11717,  0xff},
+       {      0,   87249,   14892,     8650,   63897,   11717,  0xff},
+       {      0,   87249,   14892,    -8650,   63897,   11717,  0xff},
+       {      0,   79364,   57900,    -8650,   63897,   11717,  0xff},
+       { -41574,   76497,   42848,    -8650,   63897,   11717,  0xff},
+       {  72221,   54138,   21485,    43345,   47566,   12399,  0xff},
+       {  70266,   49941,   44417,    43345,   47566,   12399,  0xff},
+       {  41574,   76497,   42848,    43345,   47566,   12399,  0xff},
+       { -41574,   76497,   42848,   -43345,   47566,   12399,  0xff},
+       { -70266,   49941,   44417,   -43345,   47566,   12399,  0xff},
+       { -72221,   54138,   21485,   -43345,   47566,   12399,  0xff},
+       {  76505,   29250,   43620,    62285,   18441,    8683,  0xff},
+       {  70266,   49941,   44417,    62285,   18441,    8683,  0xff},
+       {  72221,   54138,   21485,    62285,   18441,    8683,  0xff},
+       { -72221,   54138,   21485,   -62285,   18441,    8683,  0xff},
+       { -70266,   49941,   44417,   -62285,   18441,    8683,  0xff},
+       { -76505,   29250,   43620,   -62285,   18441,    8683,  0xff},
+       {  40826,  -21676,   21302,    46084,  -43017,   17910,  0xff},
+       {  27238,  -31739,   32096,    46084,  -43017,   17910,  0xff},
+       {  31539,  -16686,   57184,    46084,  -43017,   17910,  0xff},
+       { -40826,  -21676,   21302,   -45239,  -43941,   17819,  0xff},
+       { -48986,    1251,   57121,   -45239,  -43941,   17819,  0xff},
+       { -31539,  -16686,   57184,   -45239,  -43941,   17819,  0xff},
+       { 117555,    1949,   47148,     4856,    2444,  -65313,  0xff},
+       { 125081,   25458,   48588,     4856,    2444,  -65313,  0xff},
+       { 113265,   19748,   47495,     4856,    2444,  -65313,  0xff},
+       {-117555,    1949,   47148,     4607,     163,  -65372,  0xff},
+       {-109177,    5704,   47748,     4607,     163,  -65372,  0xff},
+       {-113265,   19748,   47495,     4607,     163,  -65372,  0xff},
+       {  89996,   31472,   31443,    26889,  -49990,  -32754,  0xff},
+       {  88300,   24997,   39934,    26889,  -49990,  -32754,  0xff},
+       { 107379,   28649,   50021,    26889,  -49990,  -32754,  0xff},
+       {-107379,   28649,   50021,   -26889,  -49990,  -32754,  0xff},
+       { -88300,   24997,   39934,   -26889,  -49990,  -32754,  0xff},
+       { -89996,   31472,   31443,   -26889,  -49990,  -32754,  0xff},
+       {  94873,   -2541,   44620,    18009,   -7503,  -62567,  0xff},
+       { 109177,    5704,   47748,    18009,   -7503,  -62567,  0xff},
+       { 101858,   19308,   44010,    18009,   -7503,  -62567,  0xff},
+       {      0,   87249,   14892,     7333,   63084,  -16174,  0xff},
+       {  41574,   75063,  -13779,     7333,   63084,  -16174,  0xff},
+       {  41574,   82231,   14176,     7333,   63084,  -16174,  0xff},
+       {  41574,   76497,   42848,     7916,   63792,   12759,  0xff},
+       {      0,   87249,   14892,     7916,   63792,   12759,  0xff},
+       {  41574,   82231,   14176,     7916,   63792,   12759,  0xff},
+       {      0,   87249,   14892,    -7916,   63792,   12759,  0xff},
+       { -41574,   76497,   42848,    -7916,   63792,   12759,  0xff},
+       { -41574,   82231,   14176,    -7916,   63792,   12759,  0xff},
+       {  72221,   54138,   21485,    42506,   48916,    9784,  0xff},
+       {  41574,   76497,   42848,    42506,   48916,    9784,  0xff},
+       {  41574,   82231,   14176,    42506,   48916,    9784,  0xff},
+       { -41574,   76497,   42848,   -42506,   48916,    9784,  0xff},
+       { -72221,   54138,   21485,   -42506,   48916,    9784,  0xff},
+       { -41574,   82231,   14176,   -42506,   48916,    9784,  0xff},
+       {      0,  -47667,  -19667,   -16030,  -55325,   31260,  0xff},
+       { -22464,  -45140,  -26714,   -16030,  -55325,   31260,  0xff},
+       { -16008,  -41135,  -16316,   -16030,  -55325,   31260,  0xff},
+       {  48421,   -7405,  -33599,    24766,  -59473,  -12032,  0xff},
+       {  40826,  -21676,   21302,    24766,  -59473,  -12032,  0xff},
+       {  66952,   -6993,    2507,    24766,  -59473,  -12032,  0xff},
+       { -40826,  -21676,   21302,   -24766,  -59473,  -12032,  0xff},
+       { -48421,   -7405,  -33599,   -24766,  -59473,  -12032,  0xff},
+       { -66952,   -6993,    2507,   -24766,  -59473,  -12032,  0xff},
+       {  71702,   49785,   -1069,    44308,   46779,  -11993,  0xff},
+       {  41574,   82231,   14176,    44308,   46779,  -11993,  0xff},
+       {  41574,   75063,  -13779,    44308,   46779,  -11993,  0xff},
+       { -41574,   82231,   14176,   -44308,   46779,  -11993,  0xff},
+       { -71702,   49785,   -1069,   -44308,   46779,  -11993,  0xff},
+       { -41574,   75063,  -13779,   -44308,   46779,  -11993,  0xff},
+       {  72221,   54138,   21485,    64487,    8598,    7916,  0xff},
+       {  78737,   20797,    4615,    64487,    8598,    7916,  0xff},
+       {  75836,   22963,   25895,    64487,    8598,    7916,  0xff},
+       { -78737,   20797,    4615,   -64487,    8598,    7916,  0xff},
+       { -72221,   54138,   21485,   -64487,    8598,    7916,  0xff},
+       { -75836,   22963,   25895,   -64487,    8598,    7916,  0xff},
+       {  76505,   29250,   43620,    64992,    6848,   -4882,  0xff},
+       {  72221,   54138,   21485,    64992,    6848,   -4882,  0xff},
+       {  75836,   22963,   25895,    64992,    6848,   -4882,  0xff},
+       { -72221,   54138,   21485,   -64992,    6848,   -4882,  0xff},
+       { -76505,   29250,   43620,   -64992,    6848,   -4882,  0xff},
+       { -75836,   22963,   25895,   -64992,    6848,   -4882,  0xff},
+       { -27238,  -31739,   32096,   -39498,  -52284,     983,  0xff},
+       { -16008,  -41135,  -16316,   -39498,  -52284,     983,  0xff},
+       { -40826,  -21676,   21302,   -39498,  -52284,     983,  0xff},
+       { -40826,  -21676,   21302,   -30579,  -57901,   -2726,  0xff},
+       { -66952,   -6993,    2507,   -30579,  -57901,   -2726,  0xff},
+       { -54476,  -14536,   22777,   -30579,  -57901,   -2726,  0xff},
+       { -40826,  -21676,   21302,   -24884,  -53477,   28560,  0xff},
+       { -54476,  -14536,   22777,   -24884,  -53477,   28560,  0xff},
+       { -48986,    1251,   57121,   -24884,  -53477,   28560,  0xff},
+       { -40826,  -21676,   21302,   -46084,  -43017,   17910,  0xff},
+       { -31539,  -16686,   57184,   -46084,  -43017,   17910,  0xff},
+       { -27238,  -31739,   32096,   -46084,  -43017,   17910,  0xff},
+       { 117555,    1949,   47148,    -4607,     163,  -65372,  0xff},
+       { 113265,   19748,   47495,    -4607,     163,  -65372,  0xff},
+       { 109177,    5704,   47748,    -4607,     163,  -65372,  0xff},
+       {  84263,   36879,   30538,    25971,   17937,  -57435,  0xff},
+       {  89996,   31472,   31443,    25971,   17937,  -57435,  0xff},
+       { 110806,   41836,   44090,    25971,   17937,  -57435,  0xff},
+       {-110806,   41836,   44090,   -25971,   17937,  -57435,  0xff},
+       { -89996,   31472,   31443,   -25971,   17937,  -57435,  0xff},
+       { -84263,   36879,   30538,   -25971,   17937,  -57435,  0xff},
+       { 110806,   41836,   44090,    10164,   -8755,  -64146,  0xff},
+       { 113265,   19748,   47495,    10164,   -8755,  -64146,  0xff},
+       { 125081,   25458,   48588,    10164,   -8755,  -64146,  0xff},
+       {-117555,    1949,   47148,    -4856,    2444,  -65313,  0xff},
+       {-113265,   19748,   47495,    -4856,    2444,  -65313,  0xff},
+       {-125081,   25458,   48588,    -4856,    2444,  -65313,  0xff},
+       {  65410,   -4389,   23486,    -6402,   19942,  -62095,  0xff},
+       {  70963,  -15970,   19193,    -6402,   19942,  -62095,  0xff},
+       {  77539,   -7618,   21197,    -6402,   19942,  -62095,  0xff},
+       {  54476,  -14536,   22777,    43823,  -47860,    9161,  0xff},
+       {  65410,   -4389,   23486,    43823,  -47860,    9161,  0xff},
+       {  66952,   -6993,    2507,    43823,  -47860,    9161,  0xff},
+       { -65410,   -4389,   23486,    11993,   17255,  -62075,  0xff},
+       { -70963,  -15970,   19193,    11993,   17255,  -62075,  0xff},
+       { -54476,  -14536,   22777,    11993,   17255,  -62075,  0xff},
+       {  78737,   20797,    4615,    60109,  -23848,   10623,  0xff},
+       {  65410,   -4389,   23486,    60109,  -23848,   10623,  0xff},
+       {  75836,   22963,   25895,    60109,  -23848,   10623,  0xff},
+       { -65410,   -4389,   23486,   -45239,    6402,  -46982,  0xff},
+       { -78110,    2116,   36601,   -45239,    6402,  -46982,  0xff},
+       { -78205,   -3244,   35962,   -45239,    6402,  -46982,  0xff},
+       {  71045,    5930,   34878,    30185,   34891,  -46543,  0xff},
+       {  65410,   -4389,   23486,    30185,   34891,  -46543,  0xff},
+       {  78110,    2116,   36601,    30185,   34891,  -46543,  0xff},
+       { -78110,    2116,   36601,   -30185,   34891,  -46543,  0xff},
+       { -65410,   -4389,   23486,   -30185,   34891,  -46543,  0xff},
+       { -71045,    5930,   34878,   -30185,   34891,  -46543,  0xff},
+       {  75836,   22963,   25895,    60823,  -22315,   -9869,  0xff},
+       {  65410,   -4389,   23486,    60823,  -22315,   -9869,  0xff},
+       {  71045,    5930,   34878,    60823,  -22315,   -9869,  0xff},
+       {  75836,   22963,   25895,    36726,  -33043,  -43063,  0xff},
+       {  71045,    5930,   34878,    36726,  -33043,  -43063,  0xff},
+       {  89996,   31472,   31443,    36726,  -33043,  -43063,  0xff},
+       {  94873,   -2541,   44620,    30133,  -11226,  -57101,  0xff},
+       { 101858,   19308,   44010,    30133,  -11226,  -57101,  0xff},
+       {  78205,   -3244,   35962,    30133,  -11226,  -57101,  0xff},
+       { -65410,   -4389,   23486,   -60109,  -23848,   10623,  0xff},
+       { -78737,   20797,    4615,   -60109,  -23848,   10623,  0xff},
+       { -75836,   22963,   25895,   -60109,  -23848,   10623,  0xff},
+       { -71045,    5930,   34878,   -48830,  -38908,  -19916,  0xff},
+       { -89996,   31472,   31443,   -48830,  -38908,  -19916,  0xff},
+       { -88300,   24997,   39934,   -48830,  -38908,  -19916,  0xff},
+       { -94873,   -2541,   44620,    -7130,   62377,  -18802,  0xff},
+       { -77539,   -7618,   21197,    -7130,   62377,  -18802,  0xff},
+       { -78205,   -3244,   35962,    -7130,   62377,  -18802,  0xff},
+       {  78110,    2116,   36601,     3702,    7811,  -64965,  0xff},
+       {  78205,   -3244,   35962,     3702,    7811,  -64965,  0xff},
+       {  88300,   24997,   39934,     3702,    7811,  -64965,  0xff},
+       { -88300,   24997,   39934,    -3702,    7811,  -64965,  0xff},
+       { -78205,   -3244,   35962,    -3702,    7811,  -64965,  0xff},
+       { -78110,    2116,   36601,    -3702,    7811,  -64965,  0xff},
+       { -94873,   -2541,   44620,   -18009,   -7503,  -62567,  0xff},
+       {-101858,   19308,   44010,   -18009,   -7503,  -62567,  0xff},
+       {-109177,    5704,   47748,   -18009,   -7503,  -62567,  0xff},
+       {  72396,  -14536,   37830,    12930,  -64126,    3938,  0xff},
+       {  95225,  -10037,   36126,    12930,  -64126,    3938,  0xff},
+       {  70963,  -15970,   19193,    12930,  -64126,    3938,  0xff},
+       {-101858,   19308,   44010,   -19287,   -6737,  -62272,  0xff},
+       {-113265,   19748,   47495,   -19287,   -6737,  -62272,  0xff},
+       {-109177,    5704,   47748,   -19287,   -6737,  -62272,  0xff},
+       { -95225,  -10037,   36126,   -12930,  -64126,    3938,  0xff},
+       { -72396,  -14536,   37830,   -12930,  -64126,    3938,  0xff},
+       { -70963,  -15970,   19193,   -12930,  -64126,    3938,  0xff},
+       {  95334,  -10952,   52883,    32224,  -56970,   -3316,  0xff},
+       { 117555,    1949,   47148,    32224,  -56970,   -3316,  0xff},
+       {  95225,  -10037,   36126,    32224,  -56970,   -3316,  0xff},
+       {  16008,  -41135,  -16316,    22747,  -60699,    9646,  0xff},
+       {      0,  -47667,  -19667,    22747,  -60699,    9646,  0xff},
+       {      0,  -38190,   39980,    22747,  -60699,    9646,  0xff},
+       {      0,  -38190,   39980,   -22747,  -60699,    9646,  0xff},
+       {      0,  -47667,  -19667,   -22747,  -60699,    9646,  0xff},
+       { -16008,  -41135,  -16316,   -22747,  -60699,    9646,  0xff},
+       {      0,  -76898,  -23814,    -1369,  -36909,   54132,  0xff},
+       {  29862,  -86792,  -29804,    -1369,  -36909,   54132,  0xff},
+       {      0,  -92667,  -34566,    -1369,  -36909,   54132,  0xff},
+       {  33441,  -88848,  -40670,    62088,    9646,   18625,  0xff},
+       {  29862,  -86792,  -29804,    62088,    9646,   18625,  0xff},
+       {  22464,  -45140,  -26714,    62088,    9646,   18625,  0xff},
+       { -29862,  -86792,  -29804,   -62088,    9646,   18625,  0xff},
+       { -33441,  -88848,  -40670,   -62088,    9646,   18625,  0xff},
+       { -22464,  -45140,  -26714,   -62088,    9646,   18625,  0xff},
+       {      0,  -76898,  -23814,    12038,   -2634,   64369,  0xff},
+       {  22464,  -45140,  -26714,    12038,   -2634,   64369,  0xff},
+       {  29862,  -86792,  -29804,    12038,   -2634,   64369,  0xff},
+       {      0,   87249,   14892,    -8336,   63294,  -14811,  0xff},
+       { -41574,   75063,  -13779,    -8336,   63294,  -14811,  0xff},
+       {      0,   79364,  -18796,    -8336,   63294,  -14811,  0xff},
+       { -73752,   11747,  -30811,   -58254,    7792,   28993,  0xff},
+       { -78247,   35576,  -46249,   -58254,    7792,   28993,  0xff},
+       { -68082,   33423,  -25245,   -58254,    7792,   28993,  0xff},
+       {  43127,   19071,  -62426,    49787,  -11711,  -40973,  0xff},
+       {  40250,   10454,  -63460,    49787,  -11711,  -40973,  0xff},
+       {  58102,   19138,  -44251,    49787,  -11711,  -40973,  0xff},
+       { -40250,   10454,  -63460,   -49787,  -11711,  -40973,  0xff},
+       { -43127,   19071,  -62426,   -49787,  -11711,  -40973,  0xff},
+       { -58102,   19138,  -44251,   -49787,  -11711,  -40973,  0xff},
+       {  40250,   10454,  -63460,    30303,  -44459,  -37421,  0xff},
+       {  32004,   -6727,  -49724,    30303,  -44459,  -37421,  0xff},
+       {  50176,    1949,  -45318,    30303,  -44459,  -37421,  0xff},
+       { -32004,   -6727,  -49724,   -30303,  -44459,  -37421,  0xff},
+       { -40250,   10454,  -63460,   -30303,  -44459,  -37421,  0xff},
+       { -50176,    1949,  -45318,   -30303,  -44459,  -37421,  0xff},
+       { -19229,  -19661,  -40658,   -15276,  -54958,   32263,  0xff},
+       { -53423,  -10772,  -41703,   -15276,  -54958,   32263,  0xff},
+       { -48421,   -7405,  -33599,   -15276,  -54958,   32263,  0xff},
+       {  16008,  -41135,  -16316,    56492,   17045,   28508,  0xff},
+       {  20070,  -28872,  -31699,    56492,   17045,   28508,  0xff},
+       {  22464,  -45140,  -26714,    56492,   17045,   28508,  0xff},
+       { -68082,   33423,  -25245,   -28193,   59106,   -2503,  0xff},
+       { -41971,   45428,  -35829,   -28193,   59106,   -2503,  0xff},
+       { -58060,   38506,  -18079,   -28193,   59106,   -2503,  0xff},
+       { -73752,   11747,  -30811,   -61092,   19464,  -13572,  0xff},
+       { -68082,   33423,  -25245,   -61092,   19464,  -13572,  0xff},
+       { -78737,   20797,    4615,   -61092,   19464,  -13572,  0xff},
+       {  78737,   20797,    4615,    62141,   11704,  -17229,  0xff},
+       {  71702,   49785,   -1069,    62141,   11704,  -17229,  0xff},
+       {  68082,   33423,  -25245,    62141,   11704,  -17229,  0xff},
+       { -71702,   49785,   -1069,   -62141,   11704,  -17229,  0xff},
+       { -78737,   20797,    4615,   -62141,   11704,  -17229,  0xff},
+       { -68082,   33423,  -25245,   -62141,   11704,  -17229,  0xff},
+       {  27238,  -31739,   32096,    39498,  -52284,     983,  0xff},
+       {  40826,  -21676,   21302,    39498,  -52284,     983,  0xff},
+       {  16008,  -41135,  -16316,    39498,  -52284,     983,  0xff},
+       {  40826,  -21676,   21302,    30579,  -57901,   -2726,  0xff},
+       {  54476,  -14536,   22777,    30579,  -57901,   -2726,  0xff},
+       {  66952,   -6993,    2507,    30579,  -57901,   -2726,  0xff},
+       {  20070,  -28872,  -31699,    52107,  -36621,  -15433,  0xff},
+       {  16008,  -41135,  -16316,    52107,  -36621,  -15433,  0xff},
+       {  40826,  -21676,   21302,    52107,  -36621,  -15433,  0xff},
+       { -40826,  -21676,   21302,   -52107,  -36621,  -15433,  0xff},
+       { -16008,  -41135,  -16316,   -52107,  -36621,  -15433,  0xff},
+       { -20070,  -28872,  -31699,   -52107,  -36621,  -15433,  0xff},
+       {  73752,   11747,  -30811,    29904,  -44957,   37139,  0xff},
+       {  53423,  -10772,  -41703,    29904,  -44957,   37139,  0xff},
+       {  48421,   -7405,  -33599,    29904,  -44957,   37139,  0xff},
+       { -48421,   -7405,  -33599,   -29904,  -44957,   37139,  0xff},
+       { -53423,  -10772,  -41703,   -29904,  -44957,   37139,  0xff},
+       { -73752,   11747,  -30811,   -29904,  -44957,   37139,  0xff},
+       {      0,  -47667,  -19667,    16030,  -55325,   31260,  0xff},
+       {  16008,  -41135,  -16316,    16030,  -55325,   31260,  0xff},
+       {  22464,  -45140,  -26714,    16030,  -55325,   31260,  0xff},
+       { -22464,  -45140,  -26714,   -12038,   -2634,   64369,  0xff},
+       {      0,  -76898,  -23814,   -12038,   -2634,   64369,  0xff},
+       { -29862,  -86792,  -29804,   -12038,   -2634,   64369,  0xff},
+       {  58060,   38506,  -18079,     1140,   54185,  -36844,  0xff},
+       {  68082,   33423,  -25245,     1140,   54185,  -36844,  0xff},
+       {  71702,   49785,   -1069,     1140,   54185,  -36844,  0xff},
+       { -71702,   49785,   -1069,    -1140,   54185,  -36844,  0xff},
+       { -68082,   33423,  -25245,    -1140,   54185,  -36844,  0xff},
+       { -58060,   38506,  -18079,    -1140,   54185,  -36844,  0xff},
+       {  32931,    8711,  -66665,   -21771,  -45088,  -42283,  0xff},
+       {  22307,   13737,  -66556,   -21771,  -45088,  -42283,  0xff},
+       {  32004,   -6727,  -49724,   -21771,  -45088,  -42283,  0xff},
+       { -22307,   13737,  -66556,    21771,  -45088,  -42283,  0xff},
+       { -32931,    8711,  -66665,    21771,  -45088,  -42283,  0xff},
+       { -32004,   -6727,  -49724,    21771,  -45088,  -42283,  0xff},
+       {   6020,   19087,  -53227,   -43109,  -24556,  -42821,  0xff},
+       {  14336,    1949,  -51769,   -43109,  -24556,  -42821,  0xff},
+       {  22307,   13737,  -66556,   -43109,  -24556,  -42821,  0xff},
+       {  22307,   13737,  -66556,   -40402,    4967,  -51360,  0xff},
+       {  23954,   27250,  -66545,   -40402,    4967,  -51360,  0xff},
+       {   6020,   19087,  -53227,   -40402,    4967,  -51360,  0xff},
+       { -23954,   27250,  -66545,    40402,    4967,  -51360,  0xff},
+       { -22307,   13737,  -66556,    40402,    4967,  -51360,  0xff},
+       {  -6020,   19087,  -53227,    40402,    4967,  -51360,  0xff},
+       { -23954,   27250,  -66545,    43004,   23416,  -43561,  0xff},
+       {  -6020,   19087,  -53227,    43004,   23416,  -43561,  0xff},
+       { -14336,   37073,  -51769,    43004,   23416,  -43561,  0xff},
+       {  58102,   19138,  -44251,    50082,   19916,  -37283,  0xff},
+       {  50176,   37073,  -45318,    50082,   19916,  -37283,  0xff},
+       {  40360,   28025,  -63333,    50082,   19916,  -37283,  0xff},
+       { -43127,   19071,  -62426,   -49813,   11232,  -41077,  0xff},
+       { -40360,   28025,  -63333,   -49813,   11232,  -41077,  0xff},
+       { -58102,   19138,  -44251,   -49813,   11232,  -41077,  0xff},
+       {      0,  -92667,  -34566,     7589,  -65090,     858,  0xff},
+       {  33441,  -88848,  -40670,     7589,  -65090,     858,  0xff},
+       {      0,  -92836,  -47339,     7589,  -65090,     858,  0xff},
+       {      0,  -76898,  -23814,     1369,  -36909,   54132,  0xff},
+       {      0,  -92667,  -34566,     1369,  -36909,   54132,  0xff},
+       { -29862,  -86792,  -29804,     1369,  -36909,   54132,  0xff},
+       { -33441,  -88848,  -40670,    -7589,  -65090,     858,  0xff},
+       {      0,  -92667,  -34566,    -7589,  -65090,     858,  0xff},
+       {      0,  -92836,  -47339,    -7589,  -65090,     858,  0xff},
+       {  28672,  -43208,  -44601,    59821,   21266,   16246,  0xff},
+       {  20070,  -28872,  -31699,    59821,   21266,   16246,  0xff},
+       {  19229,  -19661,  -40658,    59821,   21266,   16246,  0xff},
+       {  28672,  -43208,  -44601,    61131,    8290,   22111,  0xff},
+       {  33441,  -88848,  -40670,    61131,    8290,   22111,  0xff},
+       {  22464,  -45140,  -26714,    61131,    8290,   22111,  0xff},
+       { -22464,  -45140,  -26714,   -61131,    8290,   22111,  0xff},
+       { -33441,  -88848,  -40670,   -61131,    8290,   22111,  0xff},
+       { -28672,  -43208,  -44601,   -61131,    8290,   22111,  0xff},
+       { -20070,  -28872,  -31699,   -59821,   21266,   16246,  0xff},
+       { -28672,  -43208,  -44601,   -59821,   21266,   16246,  0xff},
+       { -19229,  -19661,  -40658,   -59821,   21266,   16246,  0xff},
+       {  19229,  -19661,  -40658,    15276,  -54958,   32263,  0xff},
+       {  48421,   -7405,  -33599,    15276,  -54958,   32263,  0xff},
+       {  53423,  -10772,  -41703,    15276,  -54958,   32263,  0xff},
+       {  66952,   -6993,    2507,    39085,  -48857,  -19503,  0xff},
+       {  73752,   11747,  -30811,    39085,  -48857,  -19503,  0xff},
+       {  48421,   -7405,  -33599,    39085,  -48857,  -19503,  0xff},
+       { -16008,  -41135,  -16316,   -56492,   17045,   28508,  0xff},
+       { -22464,  -45140,  -26714,   -56492,   17045,   28508,  0xff},
+       { -20070,  -28872,  -31699,   -56492,   17045,   28508,  0xff},
+       { -73752,   11747,  -30811,   -39085,  -48857,  -19503,  0xff},
+       { -66952,   -6993,    2507,   -39085,  -48857,  -19503,  0xff},
+       { -48421,   -7405,  -33599,   -39085,  -48857,  -19503,  0xff},
+       {  58060,   38506,  -18079,    49230,   26247,  -34386,  0xff},
+       {  41574,   75063,  -13779,    49230,   26247,  -34386,  0xff},
+       {  41971,   45428,  -35829,    49230,   26247,  -34386,  0xff},
+       { -41574,   75063,  -13779,   -49230,   26247,  -34386,  0xff},
+       { -58060,   38506,  -18079,   -49230,   26247,  -34386,  0xff},
+       { -41971,   45428,  -35829,   -49230,   26247,  -34386,  0xff},
+       {      0,   79364,  -18796,    10262,   38725,  -51865,  0xff},
+       {  41971,   45428,  -35829,    10262,   38725,  -51865,  0xff},
+       {  41574,   75063,  -13779,    10262,   38725,  -51865,  0xff},
+       {  68082,   33423,  -25245,    28193,   59106,   -2503,  0xff},
+       {  58060,   38506,  -18079,    28193,   59106,   -2503,  0xff},
+       {  41971,   45428,  -35829,    28193,   59106,   -2503,  0xff},
+       {      0,   79364,  -18796,   -13965,   41667,  -48614,  0xff},
+       { -41971,   45428,  -35829,   -13965,   41667,  -48614,  0xff},
+       {      0,   49258,  -44601,   -13965,   41667,  -48614,  0xff},
+       {  73752,   11747,  -30811,    61092,   19464,  -13572,  0xff},
+       {  78737,   20797,    4615,    61092,   19464,  -13572,  0xff},
+       {  68082,   33423,  -25245,    61092,   19464,  -13572,  0xff},
+       {  20070,  -28872,  -31699,    27479,  -40173,  -43882,  0xff},
+       {  48421,   -7405,  -33599,    27479,  -40173,  -43882,  0xff},
+       {  19229,  -19661,  -40658,    27479,  -40173,  -43882,  0xff},
+       { -48421,   -7405,  -33599,   -27479,  -40173,  -43882,  0xff},
+       { -20070,  -28872,  -31699,   -27479,  -40173,  -43882,  0xff},
+       { -19229,  -19661,  -40658,   -27479,  -40173,  -43882,  0xff},
+       { -22464,  -45140,  -26714,   -20335,   -8749,   61682,  0xff},
+       {      0,  -47667,  -19667,   -20335,   -8749,   61682,  0xff},
+       {      0,  -76898,  -23814,   -20335,   -8749,   61682,  0xff},
+       {  66952,   -6993,    2507,    60358,  -25447,   -1992,  0xff},
+       {  78737,   20797,    4615,    60358,  -25447,   -1992,  0xff},
+       {  73752,   11747,  -30811,    60358,  -25447,   -1992,  0xff},
+       { -73752,   11747,  -30811,   -60358,  -25447,   -1992,  0xff},
+       { -78737,   20797,    4615,   -60358,  -25447,   -1992,  0xff},
+       { -66952,   -6993,    2507,   -60358,  -25447,   -1992,  0xff},
+       {      0,   87249,   14892,     8336,   63294,  -14811,  0xff},
+       {      0,   79364,  -18796,     8336,   63294,  -14811,  0xff},
+       {  41574,   75063,  -13779,     8336,   63294,  -14811,  0xff},
+       {      0,   87249,   14892,    -7333,   63084,  -16174,  0xff},
+       { -41574,   82231,   14176,    -7333,   63084,  -16174,  0xff},
+       { -41574,   75063,  -13779,    -7333,   63084,  -16174,  0xff},
+       {  71702,   49785,   -1069,    45049,   46537,  -10013,  0xff},
+       {  72221,   54138,   21485,    45049,   46537,  -10013,  0xff},
+       {  41574,   82231,   14176,    45049,   46537,  -10013,  0xff},
+       { -41574,   82231,   14176,   -45049,   46537,  -10013,  0xff},
+       { -72221,   54138,   21485,   -45049,   46537,  -10013,  0xff},
+       { -71702,   49785,   -1069,   -45049,   46537,  -10013,  0xff},
+       {  58060,   38506,  -18079,    39334,   23265,  -46969,  0xff},
+       {  71702,   49785,   -1069,    39334,   23265,  -46969,  0xff},
+       {  41574,   75063,  -13779,    39334,   23265,  -46969,  0xff},
+       { -41574,   75063,  -13779,   -39334,   23265,  -46969,  0xff},
+       { -71702,   49785,   -1069,   -39334,   23265,  -46969,  0xff},
+       { -58060,   38506,  -18079,   -39334,   23265,  -46969,  0xff},
+       {  72221,   54138,   21485,    63740,   14627,   -4286,  0xff},
+       {  71702,   49785,   -1069,    63740,   14627,   -4286,  0xff},
+       {  78737,   20797,    4615,    63740,   14627,   -4286,  0xff},
+       { -78737,   20797,    4615,   -63740,   14627,   -4286,  0xff},
+       { -71702,   49785,   -1069,   -63740,   14627,   -4286,  0xff},
+       { -72221,   54138,   21485,   -63740,   14627,   -4286,  0xff},
+       {  65410,   -4389,   23486,   -11993,   17255,  -62075,  0xff},
+       {  54476,  -14536,   22777,   -11993,   17255,  -62075,  0xff},
+       {  70963,  -15970,   19193,   -11993,   17255,  -62075,  0xff},
+       { -65410,   -4389,   23486,     6402,   19942,  -62095,  0xff},
+       { -77539,   -7618,   21197,     6402,   19942,  -62095,  0xff},
+       { -70963,  -15970,   19193,     6402,   19942,  -62095,  0xff},
+       { -94873,   -2541,   44620,   -30133,  -11226,  -57101,  0xff},
+       { -78205,   -3244,   35962,   -30133,  -11226,  -57101,  0xff},
+       {-101858,   19308,   44010,   -30133,  -11226,  -57101,  0xff},
+       {  72396,  -14536,   37830,    12392,  -64251,   -3584,  0xff},
+       {  95334,  -10952,   52883,    12392,  -64251,   -3584,  0xff},
+       {  95225,  -10037,   36126,    12392,  -64251,   -3584,  0xff},
+       { -95225,  -10037,   36126,   -12392,  -64251,   -3584,  0xff},
+       { -95334,  -10952,   52883,   -12392,  -64251,   -3584,  0xff},
+       { -72396,  -14536,   37830,   -12392,  -64251,   -3584,  0xff},
+       {  95334,  -10952,   52883,    30723,  -57114,   -9450,  0xff},
+       { 120422,    1949,   56467,    30723,  -57114,   -9450,  0xff},
+       { 117555,    1949,   47148,    30723,  -57114,   -9450,  0xff},
+       {-117555,    1949,   47148,   -30723,  -57114,   -9450,  0xff},
+       {-120422,    1949,   56467,   -30723,  -57114,   -9450,  0xff},
+       { -95334,  -10952,   52883,   -30723,  -57114,   -9450,  0xff},
+       {  76505,   29250,   43620,   -25454,    1985,   60358,  0xff},
+       { 112577,   41048,   58447,   -25454,    1985,   60358,  0xff},
+       {  95334,  -10952,   52883,   -25454,    1985,   60358,  0xff},
+       { -76505,   29250,   43620,    35461,   -3945,   54971,  0xff},
+       { -72396,  -14536,   37830,    35461,   -3945,   54971,  0xff},
+       { -95334,  -10952,   52883,    35461,   -3945,   54971,  0xff},
+       {  78737,   20797,    4615,    59716,  -25899,    7608,  0xff},
+       {  66952,   -6993,    2507,    59716,  -25899,    7608,  0xff},
+       {  65410,   -4389,   23486,    59716,  -25899,    7608,  0xff},
+       { -65410,   -4389,   23486,   -59716,  -25899,    7608,  0xff},
+       { -66952,   -6993,    2507,   -59716,  -25899,    7608,  0xff},
+       { -78737,   20797,    4615,   -59716,  -25899,    7608,  0xff},
+       {  72396,  -14536,   37830,    -4502,  -65162,    5360,  0xff},
+       {  70963,  -15970,   19193,    -4502,  -65162,    5360,  0xff},
+       {  54476,  -14536,   22777,    -4502,  -65162,    5360,  0xff},
+       { -54476,  -14536,   22777,     4502,  -65162,    5360,  0xff},
+       { -70963,  -15970,   19193,     4502,  -65162,    5360,  0xff},
+       { -72396,  -14536,   37830,     4502,  -65162,    5360,  0xff},
+       { -20070,  -28872,  -31699,   -59585,   15623,   22367,  0xff},
+       { -22464,  -45140,  -26714,   -59585,   15623,   22367,  0xff},
+       { -28672,  -43208,  -44601,   -59585,   15623,   22367,  0xff},
+       {      0,   79364,  -18796,    13965,   41667,  -48614,  0xff},
+       {      0,   49258,  -44601,    13965,   41667,  -48614,  0xff},
+       {  41971,   45428,  -35829,    13965,   41667,  -48614,  0xff},
+       {      0,   79364,  -18796,   -10262,   38725,  -51865,  0xff},
+       { -41574,   75063,  -13779,   -10262,   38725,  -51865,  0xff},
+       { -41971,   45428,  -35829,   -10262,   38725,  -51865,  0xff},
+       {  20070,  -28872,  -31699,    38902,  -52101,   -8159,  0xff},
+       {  40826,  -21676,   21302,    38902,  -52101,   -8159,  0xff},
+       {  48421,   -7405,  -33599,    38902,  -52101,   -8159,  0xff},
+       { -48421,   -7405,  -33599,   -38902,  -52101,   -8159,  0xff},
+       { -40826,  -21676,   21302,   -38902,  -52101,   -8159,  0xff},
+       { -20070,  -28872,  -31699,   -38902,  -52101,   -8159,  0xff},
+       {  32931,    8711,  -66665,    26627,   -1710,  -59860,  0xff},
+       {  40250,   10454,  -63460,    26627,   -1710,  -59860,  0xff},
+       {  43127,   19071,  -62426,    26627,   -1710,  -59860,  0xff},
+       { -43127,   19071,  -62426,   -26627,   -1710,  -59860,  0xff},
+       { -40250,   10454,  -63460,   -26627,   -1710,  -59860,  0xff},
+       { -32931,    8711,  -66665,   -26627,   -1710,  -59860,  0xff},
+       {  32931,    8711,  -66665,     -616,     131,  -65536,  0xff},
+       {  23954,   27250,  -66545,     -616,     131,  -65536,  0xff},
+       {  22307,   13737,  -66556,     -616,     131,  -65536,  0xff},
+       { -22307,   13737,  -66556,      616,     131,  -65536,  0xff},
+       { -23954,   27250,  -66545,      616,     131,  -65536,  0xff},
+       { -32931,    8711,  -66665,      616,     131,  -65536,  0xff},
+       {  32931,    8711,  -66665,     9155,    4856,  -64710,  0xff},
+       {  31729,   31074,  -65159,     9155,    4856,  -64710,  0xff},
+       {  23954,   27250,  -66545,     9155,    4856,  -64710,  0xff},
+       { -23954,   27250,  -66545,    -9155,    4856,  -64710,  0xff},
+       { -31729,   31074,  -65159,    -9155,    4856,  -64710,  0xff},
+       { -32931,    8711,  -66665,    -9155,    4856,  -64710,  0xff},
+       {  32931,    8711,  -66665,    15237,    5098,  -63537,  0xff},
+       {  40360,   28025,  -63333,    15237,    5098,  -63537,  0xff},
+       {  31729,   31074,  -65159,    15237,    5098,  -63537,  0xff},
+       { -31729,   31074,  -65159,   -15237,    5098,  -63537,  0xff},
+       { -40360,   28025,  -63333,   -15237,    5098,  -63537,  0xff},
+       { -32931,    8711,  -66665,   -15237,    5098,  -63537,  0xff},
+       {  32931,    8711,  -66665,    24064,    1258,  -60948,  0xff},
+       {  43127,   19071,  -62426,    24064,    1258,  -60948,  0xff},
+       {  40360,   28025,  -63333,    24064,    1258,  -60948,  0xff},
+       { -40360,   28025,  -63333,   -24064,    1258,  -60948,  0xff},
+       { -43127,   19071,  -62426,   -24064,    1258,  -60948,  0xff},
+       { -32931,    8711,  -66665,   -24064,    1258,  -60948,  0xff},
+       {  25044,  -84376,  -51892,    13015,  -55725,  -31948,  0xff},
+       {      0,  -92836,  -47339,    13015,  -55725,  -31948,  0xff},
+       {  33441,  -88848,  -40670,    13015,  -55725,  -31948,  0xff},
+       {  15004,   60288,  -62250,   -11495,   54322,  -34819,  0xff},
+       {  23131,   56495,  -70850,   -11495,   54322,  -34819,  0xff},
+       {  28807,   65151,  -59219,   -11495,   54322,  -34819,  0xff},
+       { -15004,   60288,  -62250,    38757,   23868,  -47153,  0xff},
+       { -23131,   56495,  -70850,    38757,   23868,  -47153,  0xff},
+       {  -9318,   36356,  -69689,    38757,   23868,  -47153,  0xff},
+       { -26146,   42393,  -61428,   -33770,  -26030,  -49768,  0xff},
+       {  -9318,   36356,  -69689,   -33770,  -26030,  -49768,  0xff},
+       { -23131,   56495,  -70850,   -33770,  -26030,  -49768,  0xff},
+       {  54223,   -3147,  -49005,    22865,  -13107,  -59998,  0xff},
+       {  49835,   16450,  -54959,    22865,  -13107,  -59998,  0xff},
+       {  36763,   -2054,  -55898,    22865,  -13107,  -59998,  0xff},
+       {  10057,  -14753,  -64285,    17275,    5282,  -62999,  0xff},
+       {  36763,   -2054,  -55898,    17275,    5282,  -62999,  0xff},
+       {  17498,    6132,  -60493,    17275,    5282,  -62999,  0xff},
+       { -10057,  -14753,  -64285,   -23343,   -9083,  -60561,  0xff},
+       { -36763,   -2054,  -55898,   -23343,   -9083,  -60561,  0xff},
+       { -54223,   -3147,  -49005,   -23343,   -9083,  -60561,  0xff},
+       {  17498,    6132,  -60493,    -3604,   12930,  -64146,  0xff},
+       {      0,    4319,  -59876,    -3604,   12930,  -64146,  0xff},
+       {  10057,  -14753,  -64285,    -3604,   12930,  -64146,  0xff},
+       {      0,    4319,  -59876,     3604,   12930,  -64146,  0xff},
+       { -17498,    6132,  -60493,     3604,   12930,  -64146,  0xff},
+       { -10057,  -14753,  -64285,     3604,   12930,  -64146,  0xff},
+       { -17498,    6132,  -60493,     1133,  -11042,  -64592,  0xff},
+       {      0,    4319,  -59876,     1133,  -11042,  -64592,  0xff},
+       { -15219,   27030,  -64025,     1133,  -11042,  -64592,  0xff},
+       {   7450,  -81991,  -56678,    14398,  -17308,  -61544,  0xff},
+       {  25044,  -84376,  -51892,    14398,  -17308,  -61544,  0xff},
+       {   9207,  -70338,  -59544,    14398,  -17308,  -61544,  0xff},
+       {  12979,  -24921,  -59566,    26856,   -2260,  -59736,  0xff},
+       {   9207,  -70338,  -59544,    26856,   -2260,  -59736,  0xff},
+       {  25044,  -84376,  -51892,    26856,   -2260,  -59736,  0xff},
+       {  -9207,  -70338,  -59544,   -26856,   -2260,  -59736,  0xff},
+       { -12979,  -24921,  -59566,   -26856,   -2260,  -59736,  0xff},
+       { -25044,  -84376,  -51892,   -26856,   -2260,  -59736,  0xff},
+       {  10057,  -14753,  -64285,    63412,   15289,   -6311,  0xff},
+       {  11966,  -23687,  -66754,    63412,   15289,   -6311,  0xff},
+       {  12979,  -24921,  -59566,    63412,   15289,   -6311,  0xff},
+       { -11966,  -23687,  -66754,   -63412,   15289,   -6311,  0xff},
+       { -10057,  -14753,  -64285,   -63412,   15289,   -6311,  0xff},
+       { -12979,  -24921,  -59566,   -63412,   15289,   -6311,  0xff},
+       {   4769,  -14872,  -65410,    -3702,   64572,   10557,  0xff},
+       {  10057,  -14753,  -64285,    -3702,   64572,   10557,  0xff},
+       {      0,  -15970,  -60371,    -3702,   64572,   10557,  0xff},
+       {      0,  -20270,  -65388,   -65536,       0,       0,  0xff},
+       {      0,  -15970,  -60371,   -65536,       0,       0,  0xff},
+       {      0,  -20987,  -61087,   -65536,       0,       0,  0xff},
+       {      0,  -20270,  -65388,    42795,   37683,  -32302,  0xff},
+       {      0,  -15970,  -60371,    42795,   37683,  -32302,  0xff},
+       {  -4769,  -14872,  -65410,    42795,   37683,  -32302,  0xff},
+       { -12979,  -24921,  -59566,   -38200,  -51321,  -14201,  0xff},
+       {      0,  -33967,  -61790,   -38200,  -51321,  -14201,  0xff},
+       { -11966,  -23687,  -66754,   -38200,  -51321,  -14201,  0xff},
+       {      0,  -15970,  -60371,   -23920,    1487,  -60994,  0xff},
+       {  10057,  -14753,  -64285,   -23920,    1487,  -60994,  0xff},
+       {      0,    4319,  -59876,   -23920,    1487,  -60994,  0xff},
+       { -10057,  -14753,  -64285,    23920,    1487,  -60994,  0xff},
+       {      0,  -15970,  -60371,    23920,    1487,  -60994,  0xff},
+       {      0,    4319,  -59876,    23920,    1487,  -60994,  0xff},
+       {  19229,  -19661,  -40658,    54532,   26102,  -25290,  0xff},
+       {  12979,  -24921,  -59566,    54532,   26102,  -25290,  0xff},
+       {  28672,  -43208,  -44601,    54532,   26102,  -25290,  0xff},
+       {  -7450,  -81991,  -56678,    20289,   44243,  -43882,  0xff},
+       {      0,  -82910,  -54161,    20289,   44243,  -43882,  0xff},
+       {  -8805,  -75994,  -51259,    20289,   44243,  -43882,  0xff},
+       {  36763,   -2054,  -55898,    21338,  -19516,  -58812,  0xff},
+       {  42274,    7954,  -57219,    21338,  -19516,  -58812,  0xff},
+       {  34298,    4871,  -59090,    21338,  -19516,  -58812,  0xff},
+       { -42274,    7954,  -57219,   -21338,  -19516,  -58812,  0xff},
+       { -36763,   -2054,  -55898,   -21338,  -19516,  -58812,  0xff},
+       { -34298,    4871,  -59090,   -21338,  -19516,  -58812,  0xff},
+       {  36763,   -2054,  -55898,    44531,  -29537,  -37938,  0xff},
+       {  49835,   16450,  -54959,    44531,  -29537,  -37938,  0xff},
+       {  42274,    7954,  -57219,    44531,  -29537,  -37938,  0xff},
+       { -49835,   16450,  -54959,   -44531,  -29537,  -37938,  0xff},
+       { -36763,   -2054,  -55898,   -44531,  -29537,  -37938,  0xff},
+       { -42274,    7954,  -57219,   -44531,  -29537,  -37938,  0xff},
+       { -26146,   42393,  -61428,   -25460,   29890,  -52474,  0xff},
+       { -52544,   30461,  -55417,   -25460,   29890,  -52474,  0xff},
+       { -37890,   32580,  -61320,   -25460,   29890,  -52474,  0xff},
+       {  26146,   42393,  -61428,    16207,   18730,  -60673,  0xff},
+       {  29504,   36912,  -62223,    16207,   18730,  -60673,  0xff},
+       {  37890,   32580,  -61320,    16207,   18730,  -60673,  0xff},
+       { -29504,   36912,  -62223,   -16207,   18730,  -60673,  0xff},
+       { -26146,   42393,  -61428,   -16207,   18730,  -60673,  0xff},
+       { -37890,   32580,  -61320,   -16207,   18730,  -60673,  0xff},
+       {  26146,   42393,  -61428,     1179,   10105,  -64743,  0xff},
+       {  15219,   27030,  -64025,     1179,   10105,  -64743,  0xff},
+       {  29504,   36912,  -62223,     1179,   10105,  -64743,  0xff},
+       { -15219,   27030,  -64025,    -1179,   10105,  -64743,  0xff},
+       { -26146,   42393,  -61428,    -1179,   10105,  -64743,  0xff},
+       { -29504,   36912,  -62223,    -1179,   10105,  -64743,  0xff},
+       {  15219,   27030,  -64025,    -5511,   19346,  -62370,  0xff},
+       {  25778,   33317,  -63008,    -5511,   19346,  -62370,  0xff},
+       {  29504,   36912,  -62223,    -5511,   19346,  -62370,  0xff},
+       { -29504,   36912,  -62223,    -9299,    4508,  -64716,  0xff},
+       { -37890,   32580,  -61320,    -9299,    4508,  -64716,  0xff},
+       { -25778,   33317,  -63008,    -9299,    4508,  -64716,  0xff},
+       {  37890,   32580,  -61320,    21843,  -15545,  -59801,  0xff},
+       {  50616,   23368,  -54278,    21843,  -15545,  -59801,  0xff},
+       {  52544,   30461,  -55417,    21843,  -15545,  -59801,  0xff},
+       { -52544,   30461,  -55417,    55253,    9581,  -33921,  0xff},
+       { -49835,   16450,  -54959,    55253,    9581,  -33921,  0xff},
+       { -50616,   23368,  -54278,    55253,    9581,  -33921,  0xff},
+       {  34298,    4871,  -59090,     1428,   42932,   49492,  0xff},
+       {  22220,    8401,  -61804,     1428,   42932,   49492,  0xff},
+       {  17197,   10373,  -63370,     1428,   42932,   49492,  0xff},
+       {  17197,   10373,  -63370,    28613,   35520,  -47054,  0xff},
+       {  22220,    8401,  -61804,    28613,   35520,  -47054,  0xff},
+       {  18337,   12777,  -60862,    28613,   35520,  -47054,  0xff},
+       { -22220,    8401,  -61804,   -28613,   35520,  -47054,  0xff},
+       { -17197,   10373,  -63370,   -28613,   35520,  -47054,  0xff},
+       { -18337,   12777,  -60862,   -28613,   35520,  -47054,  0xff},
+       {  15219,   27030,  -64025,    20401,  -25034,  -57029,  0xff},
+       {  17919,   24170,  -61804,    20401,  -25034,  -57029,  0xff},
+       {  25778,   33317,  -63008,    20401,  -25034,  -57029,  0xff},
+       { -17919,   24170,  -61804,   -20401,  -25034,  -57029,  0xff},
+       { -15219,   27030,  -64025,   -20401,  -25034,  -57029,  0xff},
+       { -25778,   33317,  -63008,   -20401,  -25034,  -57029,  0xff},
+       {  15004,   60288,  -62250,   -50646,   30690,   28075,  0xff},
+       {  23989,   61986,  -47897,   -50646,   30690,   28075,  0xff},
+       {  10035,   39223,  -48185,   -50646,   30690,   28075,  0xff},
+       { -23989,   61986,  -47897,    50646,   30690,   28075,  0xff},
+       { -15004,   60288,  -62250,    50646,   30690,   28075,  0xff},
+       { -10035,   39223,  -48185,    50646,   30690,   28075,  0xff},
+       {  28807,   65151,  -59219,   -23049,   60922,    7222,  0xff},
+       {  23989,   61986,  -47897,   -23049,   60922,    7222,  0xff},
+       {  15004,   60288,  -62250,   -23049,   60922,    7222,  0xff},
+       { -28807,   65151,  -59219,   -29563,   51845,   27072,  0xff},
+       { -23989,   61986,  -47897,   -29563,   51845,   27072,  0xff},
+       { -41971,   45428,  -35829,   -29563,   51845,   27072,  0xff},
+       {  73752,   11747,  -30811,    58254,    7792,   28993,  0xff},
+       {  68082,   33423,  -25245,    58254,    7792,   28993,  0xff},
+       {  78247,   35576,  -46249,    58254,    7792,   28993,  0xff},
+       {  14336,   37073,  -51769,   -13598,   50036,  -40081,  0xff},
+       {  31729,   31074,  -65159,   -13598,   50036,  -40081,  0xff},
+       {  32255,   44241,  -48902,   -13598,   50036,  -40081,  0xff},
+       {  10035,   39223,  -48185,   -25526,   14909,   58490,  0xff},
+       {  23989,   61986,  -47897,   -25526,   14909,   58490,  0xff},
+       {  41971,   45428,  -35829,   -25526,   14909,   58490,  0xff},
+       { -23989,   61986,  -47897,    25526,   14909,   58490,  0xff},
+       { -10035,   39223,  -48185,    25526,   14909,   58490,  0xff},
+       { -41971,   45428,  -35829,    25526,   14909,   58490,  0xff},
+       {  10035,   39223,  -48185,    14424,   33803,  -54257,  0xff},
+       {  41971,   45428,  -35829,    14424,   33803,  -54257,  0xff},
+       {      0,   49258,  -44601,    14424,   33803,  -54257,  0xff},
+       { -41971,   45428,  -35829,   -14424,   33803,  -54257,  0xff},
+       { -10035,   39223,  -48185,   -14424,   33803,  -54257,  0xff},
+       {      0,   49258,  -44601,   -14424,   33803,  -54257,  0xff},
+       {      0,   34205,  -47468,   -10590,   12104,  -63530,  0xff},
+       {  10035,   39223,  -48185,   -10590,   12104,  -63530,  0xff},
+       {      0,   49258,  -44601,   -10590,   12104,  -63530,  0xff},
+       {      0,   49258,  -44601,    10590,   12104,  -63530,  0xff},
+       { -10035,   39223,  -48185,    10590,   12104,  -63530,  0xff},
+       {      0,   34205,  -47468,    10590,   12104,  -63530,  0xff},
+       {  58102,   19138,  -44251,    49938,  -20729,  -37034,  0xff},
+       {  40250,   10454,  -63460,    49938,  -20729,  -37034,  0xff},
+       {  50176,    1949,  -45318,    49938,  -20729,  -37034,  0xff},
+       { -50176,    1949,  -45318,   -49938,  -20729,  -37034,  0xff},
+       { -40250,   10454,  -63460,   -49938,  -20729,  -37034,  0xff},
+       { -58102,   19138,  -44251,   -49938,  -20729,  -37034,  0xff},
+       {  40250,   10454,  -63460,    27774,  -44623,  -39144,  0xff},
+       {  32931,    8711,  -66665,    27774,  -44623,  -39144,  0xff},
+       {  32004,   -6727,  -49724,    27774,  -44623,  -39144,  0xff},
+       { -32004,   -6727,  -49724,   -27774,  -44623,  -39144,  0xff},
+       { -32931,    8711,  -66665,   -27774,  -44623,  -39144,  0xff},
+       { -40250,   10454,  -63460,   -27774,  -44623,  -39144,  0xff},
+       {  32004,   -6727,  -49724,   -16816,  -44800,  -44780,  0xff},
+       {  22307,   13737,  -66556,   -16816,  -44800,  -44780,  0xff},
+       {  14336,    1949,  -51769,   -16816,  -44800,  -44780,  0xff},
+       { -14336,    1949,  -51769,    16816,  -44800,  -44780,  0xff},
+       { -22307,   13737,  -66556,    16816,  -44800,  -44780,  0xff},
+       { -32004,   -6727,  -49724,    16816,  -44800,  -44780,  0xff},
+       {  -6020,   19087,  -53227,    43109,  -24556,  -42821,  0xff},
+       { -22307,   13737,  -66556,    43109,  -24556,  -42821,  0xff},
+       { -14336,    1949,  -51769,    43109,  -24556,  -42821,  0xff},
+       {  23954,   27250,  -66545,   -43004,   23416,  -43561,  0xff},
+       {  14336,   37073,  -51769,   -43004,   23416,  -43561,  0xff},
+       {   6020,   19087,  -53227,   -43004,   23416,  -43561,  0xff},
+       { -14336,   37073,  -51769,    15938,   47664,  -42061,  0xff},
+       { -31729,   31074,  -65159,    15938,   47664,  -42061,  0xff},
+       { -23954,   27250,  -66545,    15938,   47664,  -42061,  0xff},
+       {  32255,   44241,  -48902,    26234,   46707,  -37748,  0xff},
+       {  40360,   28025,  -63333,    26234,   46707,  -37748,  0xff},
+       {  50176,   37073,  -45318,    26234,   46707,  -37748,  0xff},
+       { -32255,   44241,  -48902,   -24700,   46779,  -38685,  0xff},
+       { -40360,   28025,  -63333,   -24700,   46779,  -38685,  0xff},
+       { -31729,   31074,  -65159,   -24700,   46779,  -38685,  0xff},
+       {  25044,  -84376,  -51892,    47421,    3807,  -45075,  0xff},
+       {  28672,  -43208,  -44601,    47421,    3807,  -45075,  0xff},
+       {  12979,  -24921,  -59566,    47421,    3807,  -45075,  0xff},
+       { -58102,   19138,  -44251,   -50082,   19916,  -37283,  0xff},
+       { -40360,   28025,  -63333,   -50082,   19916,  -37283,  0xff},
+       { -50176,   37073,  -45318,   -50082,   19916,  -37283,  0xff},
+       {  43127,   19071,  -62426,    49813,   11232,  -41077,  0xff},
+       {  58102,   19138,  -44251,    49813,   11232,  -41077,  0xff},
+       {  40360,   28025,  -63333,    49813,   11232,  -41077,  0xff},
+       { -25044,  -84376,  -51892,   -13015,  -55725,  -31948,  0xff},
+       { -33441,  -88848,  -40670,   -13015,  -55725,  -31948,  0xff},
+       {      0,  -92836,  -47339,   -13015,  -55725,  -31948,  0xff},
+       { -28672,  -43208,  -44601,   -47421,    3807,  -45075,  0xff},
+       { -25044,  -84376,  -51892,   -47421,    3807,  -45075,  0xff},
+       { -12979,  -24921,  -59566,   -47421,    3807,  -45075,  0xff},
+       {  54223,   -3147,  -49005,    10367,  -45318,  -46189,  0xff},
+       {  19229,  -19661,  -40658,    10367,  -45318,  -46189,  0xff},
+       {  53423,  -10772,  -41703,    10367,  -45318,  -46189,  0xff},
+       { -19229,  -19661,  -40658,   -10367,  -45318,  -46189,  0xff},
+       { -54223,   -3147,  -49005,   -10367,  -45318,  -46189,  0xff},
+       { -53423,  -10772,  -41703,   -10367,  -45318,  -46189,  0xff},
+       {  73752,   11747,  -30811,    50141,  -21148,  -36516,  0xff},
+       {  64396,   34216,  -56672,    50141,  -21148,  -36516,  0xff},
+       {  54223,   -3147,  -49005,    50141,  -21148,  -36516,  0xff},
+       {  53423,  -10772,  -41703,    50121,  -31824,  -27747,  0xff},
+       {  73752,   11747,  -30811,    50121,  -31824,  -27747,  0xff},
+       {  54223,   -3147,  -49005,    50121,  -31824,  -27747,  0xff},
+       { -54223,   -3147,  -49005,   -50121,  -31824,  -27747,  0xff},
+       { -73752,   11747,  -30811,   -50121,  -31824,  -27747,  0xff},
+       { -53423,  -10772,  -41703,   -50121,  -31824,  -27747,  0xff},
+       { -64396,   34216,  -56672,   -50141,  -21148,  -36516,  0xff},
+       { -73752,   11747,  -30811,   -50141,  -21148,  -36516,  0xff},
+       { -54223,   -3147,  -49005,   -50141,  -21148,  -36516,  0xff},
+       {  64396,   34216,  -56672,    34078,   35651,  -43162,  0xff},
+       {  28807,   65151,  -59219,    34078,   35651,  -43162,  0xff},
+       {  23131,   56495,  -70850,    34078,   35651,  -43162,  0xff},
+       { -64396,   34216,  -56672,   -31968,   32925,  -46786,  0xff},
+       { -28807,   65151,  -59219,   -31968,   32925,  -46786,  0xff},
+       { -78247,   35576,  -46249,   -31968,   32925,  -46786,  0xff},
+       {   9318,   36356,  -69689,   -37840,   37833,  -37840,  0xff},
+       {      0,   36356,  -60371,   -37840,   37833,  -37840,  0xff},
+       {      0,   29188,  -67539,   -37840,   37833,  -37840,  0xff},
+       { -15004,   60288,  -62250,    11495,   54322,  -34819,  0xff},
+       { -28807,   65151,  -59219,    11495,   54322,  -34819,  0xff},
+       { -23131,   56495,  -70850,    11495,   54322,  -34819,  0xff},
+       {  15004,   60288,  -62250,   -38757,   23868,  -47153,  0xff},
+       {   9318,   36356,  -69689,   -38757,   23868,  -47153,  0xff},
+       {  23131,   56495,  -70850,   -38757,   23868,  -47153,  0xff},
+       {  -9318,   36356,  -69689,    43207,   23697,  -43207,  0xff},
+       {      0,   36356,  -60371,    43207,   23697,  -43207,  0xff},
+       { -15004,   60288,  -62250,    43207,   23697,  -43207,  0xff},
+       {  52544,   30461,  -55417,    -4436,  -36975,  -53923,  0xff},
+       {  23131,   56495,  -70850,    -4436,  -36975,  -53923,  0xff},
+       {  26146,   42393,  -61428,    -4436,  -36975,  -53923,  0xff},
+       {  26146,   42393,  -61428,    33770,  -26030,  -49768,  0xff},
+       {  23131,   56495,  -70850,    33770,  -26030,  -49768,  0xff},
+       {   9318,   36356,  -69689,    33770,  -26030,  -49768,  0xff},
+       { -23131,   56495,  -70850,     4436,  -36975,  -53923,  0xff},
+       { -52544,   30461,  -55417,     4436,  -36975,  -53923,  0xff},
+       { -26146,   42393,  -61428,     4436,  -36975,  -53923,  0xff},
+       {  49835,   16450,  -54959,    -6638,    -845,  -65195,  0xff},
+       {  64396,   34216,  -56672,    -6638,    -845,  -65195,  0xff},
+       {  52544,   30461,  -55417,    -6638,    -845,  -65195,  0xff},
+       { -64396,   34216,  -56672,     6638,    -845,  -65195,  0xff},
+       { -49835,   16450,  -54959,     6638,    -845,  -65195,  0xff},
+       { -52544,   30461,  -55417,     6638,    -845,  -65195,  0xff},
+       {  15219,   27030,  -64025,     9201,  -29327,  -57881,  0xff},
+       {   9318,   36356,  -69689,     9201,  -29327,  -57881,  0xff},
+       {      0,   29188,  -67539,     9201,  -29327,  -57881,  0xff},
+       { -54223,   -3147,  -49005,   -22865,  -13107,  -59998,  0xff},
+       { -36763,   -2054,  -55898,   -22865,  -13107,  -59998,  0xff},
+       { -49835,   16450,  -54959,   -22865,  -13107,  -59998,  0xff},
+       {  10057,  -14753,  -64285,    23343,   -9083,  -60561,  0xff},
+       {  54223,   -3147,  -49005,    23343,   -9083,  -60561,  0xff},
+       {  36763,   -2054,  -55898,    23343,   -9083,  -60561,  0xff},
+       { -10057,  -14753,  -64285,   -17275,    5282,  -62999,  0xff},
+       { -17498,    6132,  -60493,   -17275,    5282,  -62999,  0xff},
+       { -36763,   -2054,  -55898,   -17275,    5282,  -62999,  0xff},
+       { -15219,   27030,  -64025,   -32086,  -13428,  -55541,  0xff},
+       {  -9318,   36356,  -69689,   -32086,  -13428,  -55541,  0xff},
+       { -26146,   42393,  -61428,   -32086,  -13428,  -55541,  0xff},
+       {      0,  -92836,  -47339,   -13375,  -36339,  -52874,  0xff},
+       {   7450,  -81991,  -56678,   -13375,  -36339,  -52874,  0xff},
+       {      0,  -82910,  -54161,   -13375,  -36339,  -52874,  0xff},
+       {  15219,   27030,  -64025,    11540,  -18992,  -61649,  0xff},
+       {      0,   29188,  -67539,    11540,  -18992,  -61649,  0xff},
+       {      0,    4319,  -59876,    11540,  -18992,  -61649,  0xff},
+       {      0,    4319,  -59876,   -11540,  -18992,  -61649,  0xff},
+       {      0,   29188,  -67539,   -11540,  -18992,  -61649,  0xff},
+       { -15219,   27030,  -64025,   -11540,  -18992,  -61649,  0xff},
+       {  17498,    6132,  -60493,    -1133,  -11042,  -64592,  0xff},
+       {  15219,   27030,  -64025,    -1133,  -11042,  -64592,  0xff},
+       {      0,    4319,  -59876,    -1133,  -11042,  -64592,  0xff},
+       {  -7450,  -81991,  -56678,    13375,  -36339,  -52874,  0xff},
+       {      0,  -92836,  -47339,    13375,  -36339,  -52874,  0xff},
+       {      0,  -82910,  -54161,    13375,  -36339,  -52874,  0xff},
+       {   9207,  -70338,  -59544,      334,   -3951,  -65418,  0xff},
+       {      0,  -33967,  -61790,        0,   -3951,  -65418,  0xff},
+       {      0,  -73664,  -59390,        0,   -3951,  -65418,  0xff},
+       {  -7450,  -81991,  -56678,   -14398,  -17308,  -61544,  0xff},
+       {  -9207,  -70338,  -59544,   -14398,  -17308,  -61544,  0xff},
+       { -25044,  -84376,  -51892,   -14398,  -17308,  -61544,  0xff},
+       {      0,  -33967,  -61790,        0,   -3951,  -65418,  0xff},
+       {  -9207,  -70338,  -59544,     -334,   -3951,  -65418,  0xff},
+       {      0,  -73664,  -59390,        0,   -3951,  -65418,  0xff},
+       {   4769,  -14872,  -65410,    12582,   19614,  -61256,  0xff},
+       {  11966,  -23687,  -66754,    12582,   19614,  -61256,  0xff},
+       {  10057,  -14753,  -64285,    12582,   19614,  -61256,  0xff},
+       {  -4769,  -14872,  -65410,     3702,   64572,   10557,  0xff},
+       {      0,  -15970,  -60371,     3702,   64572,   10557,  0xff},
+       { -10057,  -14753,  -64285,     3702,   64572,   10557,  0xff},
+       {      0,  -20270,  -65388,   -42795,   37683,  -32302,  0xff},
+       {   4769,  -14872,  -65410,   -42795,   37683,  -32302,  0xff},
+       {      0,  -15970,  -60371,   -42795,   37683,  -32302,  0xff},
+       {  12979,  -24921,  -59566,    38200,  -51321,  -14201,  0xff},
+       {  11966,  -23687,  -66754,    38200,  -51321,  -14201,  0xff},
+       {      0,  -33967,  -61790,    38200,  -51321,  -14201,  0xff},
+       {      0,  -20270,  -65388,   -46668,   41150,  -20578,  0xff},
+       {      0,  -21704,  -68255,   -46668,   41150,  -20578,  0xff},
+       {   4769,  -14872,  -65410,   -46668,   41150,  -20578,  0xff},
+       {  -4769,  -14872,  -65410,    46668,   41150,  -20578,  0xff},
+       {      0,  -21704,  -68255,    46668,   41150,  -20578,  0xff},
+       {      0,  -20270,  -65388,    46668,   41150,  -20578,  0xff},
+       {  -4769,  -14872,  -65410,   -10806,   18277,  -61997,  0xff},
+       { -11966,  -23687,  -66754,   -10806,   18277,  -61997,  0xff},
+       {      0,  -21704,  -68255,   -10806,   18277,  -61997,  0xff},
+       {   9207,  -70338,  -59544,    -2496,  -54027,  -37008,  0xff},
+       {      0,  -74747,  -52486,    -2496,  -54027,  -37008,  0xff},
+       {   8805,  -75994,  -51259,    -2496,  -54027,  -37008,  0xff},
+       {      0,  -21704,  -68255,     2208,  -30546,  -57940,  0xff},
+       {      0,  -33967,  -61790,     2208,  -30546,  -57940,  0xff},
+       {  11966,  -23687,  -66754,     2208,  -30546,  -57940,  0xff},
+       { -11966,  -23687,  -66754,    -2208,  -30546,  -57940,  0xff},
+       {      0,  -33967,  -61790,    -2208,  -30546,  -57940,  0xff},
+       {      0,  -21704,  -68255,    -2208,  -30546,  -57940,  0xff},
+       { -19229,  -19661,  -40658,   -54532,   26102,  -25290,  0xff},
+       { -28672,  -43208,  -44601,   -54532,   26102,  -25290,  0xff},
+       { -12979,  -24921,  -59566,   -54532,   26102,  -25290,  0xff},
+       {  19229,  -19661,  -40658,    61210,    7261,  -22249,  0xff},
+       {  10057,  -14753,  -64285,    61210,    7261,  -22249,  0xff},
+       {  12979,  -24921,  -59566,    61210,    7261,  -22249,  0xff},
+       { -12979,  -24921,  -59566,   -61210,    7261,  -22249,  0xff},
+       { -10057,  -14753,  -64285,   -61210,    7261,  -22249,  0xff},
+       { -19229,  -19661,  -40658,   -61210,    7261,  -22249,  0xff},
+       {   7450,  -81991,  -56678,   -20289,   44243,  -43882,  0xff},
+       {   8805,  -75994,  -51259,   -20289,   44243,  -43882,  0xff},
+       {      0,  -82910,  -54161,   -20289,   44243,  -43882,  0xff},
+       {   7450,  -81991,  -56678,   -64507,   10761,    4213,  0xff},
+       {   9207,  -70338,  -59544,   -64507,   10761,    4213,  0xff},
+       {   8805,  -75994,  -51259,   -64507,   10761,    4213,  0xff},
+       {  -8805,  -75994,  -51259,    64507,   10761,    4213,  0xff},
+       {  -9207,  -70338,  -59544,    64507,   10761,    4213,  0xff},
+       {  -7450,  -81991,  -56678,    64507,   10761,    4213,  0xff},
+       {      0,  -74747,  -52486,     2496,  -54027,  -37008,  0xff},
+       {  -9207,  -70338,  -59544,     2496,  -54027,  -37008,  0xff},
+       {  -8805,  -75994,  -51259,     2496,  -54027,  -37008,  0xff},
+       {  34298,    4871,  -59090,     3008,  -26522,  -59854,  0xff},
+       {  17498,    6132,  -60493,     3008,  -26522,  -59854,  0xff},
+       {  36763,   -2054,  -55898,     3008,  -26522,  -59854,  0xff},
+       {      0,  -74747,  -52486,    10662,   12995,  -63340,  0xff},
+       {      0,  -82910,  -54161,    10662,   12995,  -63340,  0xff},
+       {   8805,  -75994,  -51259,    10662,   12995,  -63340,  0xff},
+       {  -8805,  -75994,  -51259,   -10662,   12995,  -63340,  0xff},
+       {      0,  -82910,  -54161,   -10662,   12995,  -63340,  0xff},
+       {      0,  -74747,  -52486,   -10662,   12995,  -63340,  0xff},
+       {  15219,   27030,  -64025,   -64874,   -7897,   -4856,  0xff},
+       {  17498,    6132,  -60493,   -64874,   -7897,   -4856,  0xff},
+       {  17197,   10373,  -63370,   -64874,   -7897,   -4856,  0xff},
+       { -17197,   10373,  -63370,    64874,   -7897,   -4856,  0xff},
+       { -17498,    6132,  -60493,    64874,   -7897,   -4856,  0xff},
+       { -15219,   27030,  -64025,    64874,   -7897,   -4856,  0xff},
+       { -17498,    6132,  -60493,    -3008,  -26522,  -59854,  0xff},
+       { -34298,    4871,  -59090,    -3008,  -26522,  -59854,  0xff},
+       { -36763,   -2054,  -55898,    -3008,  -26522,  -59854,  0xff},
+       {  17919,   24170,  -61804,    59683,     -52,  -27066,  0xff},
+       {  17197,   10373,  -63370,    59683,     -52,  -27066,  0xff},
+       {  18337,   12777,  -60862,    59683,     -52,  -27066,  0xff},
+       {  26146,   42393,  -61428,    25460,   29890,  -52474,  0xff},
+       {  37890,   32580,  -61320,    25460,   29890,  -52474,  0xff},
+       {  52544,   30461,  -55417,    25460,   29890,  -52474,  0xff},
+       { -15219,   27030,  -64025,     5511,   19346,  -62370,  0xff},
+       { -29504,   36912,  -62223,     5511,   19346,  -62370,  0xff},
+       { -25778,   33317,  -63008,     5511,   19346,  -62370,  0xff},
+       {  29504,   36912,  -62223,     9299,    4508,  -64716,  0xff},
+       {  25778,   33317,  -63008,     9299,    4508,  -64716,  0xff},
+       {  37890,   32580,  -61320,     9299,    4508,  -64716,  0xff},
+       { -37890,   32580,  -61320,   -21843,  -15545,  -59801,  0xff},
+       { -52544,   30461,  -55417,   -21843,  -15545,  -59801,  0xff},
+       { -50616,   23368,  -54278,   -21843,  -15545,  -59801,  0xff},
+       {  52544,   30461,  -55417,   -55253,    9581,  -33921,  0xff},
+       {  50616,   23368,  -54278,   -55253,    9581,  -33921,  0xff},
+       {  49835,   16450,  -54959,   -55253,    9581,  -33921,  0xff},
+       { -34298,    4871,  -59090,    -1428,   42932,   49492,  0xff},
+       { -17197,   10373,  -63370,    -1428,   42932,   49492,  0xff},
+       { -22220,    8401,  -61804,    -1428,   42932,   49492,  0xff},
+       { -17919,   24170,  -61804,   -43601,    3257,  -48817,  0xff},
+       { -17197,   10373,  -63370,   -43601,    3257,  -48817,  0xff},
+       { -15219,   27030,  -64025,   -43601,    3257,  -48817,  0xff},
+       {  10035,   39223,  -48185,   -47526,   32269,   31542,  0xff},
+       {      0,   36356,  -60371,   -47526,   32269,   31542,  0xff},
+       {  15004,   60288,  -62250,   -47526,   32269,   31542,  0xff},
+       {      0,   36356,  -60371,    47526,   32269,   31542,  0xff},
+       { -10035,   39223,  -48185,    47526,   32269,   31542,  0xff},
+       { -15004,   60288,  -62250,    47526,   32269,   31542,  0xff},
+       {  41971,   45428,  -35829,    20951,   59926,   16285,  0xff},
+       {  78247,   35576,  -46249,    20951,   59926,   16285,  0xff},
+       {  68082,   33423,  -25245,    20951,   59926,   16285,  0xff},
+       { -28807,   65151,  -59219,    23049,   60922,    7222,  0xff},
+       { -15004,   60288,  -62250,    23049,   60922,    7222,  0xff},
+       { -23989,   61986,  -47897,    23049,   60922,    7222,  0xff},
+       {  28807,   65151,  -59219,    29563,   51845,   27072,  0xff},
+       {  41971,   45428,  -35829,    29563,   51845,   27072,  0xff},
+       {  23989,   61986,  -47897,    29563,   51845,   27072,  0xff},
+       { -41971,   45428,  -35829,   -23291,   52658,   31299,  0xff},
+       { -78247,   35576,  -46249,   -23291,   52658,   31299,  0xff},
+       { -28807,   65151,  -59219,   -23291,   52658,   31299,  0xff},
+       {  14336,   37073,  -51769,   -15938,   47664,  -42061,  0xff},
+       {  23954,   27250,  -66545,   -15938,   47664,  -42061,  0xff},
+       {  31729,   31074,  -65159,   -15938,   47664,  -42061,  0xff},
+       { -14336,   37073,  -51769,    13598,   50036,  -40081,  0xff},
+       { -32255,   44241,  -48902,    13598,   50036,  -40081,  0xff},
+       { -31729,   31074,  -65159,    13598,   50036,  -40081,  0xff},
+       {  32255,   44241,  -48902,    24700,   46779,  -38685,  0xff},
+       {  31729,   31074,  -65159,    24700,   46779,  -38685,  0xff},
+       {  40360,   28025,  -63333,    24700,   46779,  -38685,  0xff},
+       { -32255,   44241,  -48902,   -26234,   46707,  -37748,  0xff},
+       { -50176,   37073,  -45318,   -26234,   46707,  -37748,  0xff},
+       { -40360,   28025,  -63333,   -26234,   46707,  -37748,  0xff},
+       {  25044,  -84376,  -51892,    52861,    2195,  -38679,  0xff},
+       {  33441,  -88848,  -40670,    52861,    2195,  -38679,  0xff},
+       {  28672,  -43208,  -44601,    52861,    2195,  -38679,  0xff},
+       { -28672,  -43208,  -44601,   -52861,    2195,  -38679,  0xff},
+       { -33441,  -88848,  -40670,   -52861,    2195,  -38679,  0xff},
+       { -25044,  -84376,  -51892,   -52861,    2195,  -38679,  0xff},
+       {  54223,   -3147,  -49005,    22413,  -57986,  -20748,  0xff},
+       {  10057,  -14753,  -64285,    22413,  -57986,  -20748,  0xff},
+       {  19229,  -19661,  -40658,    22413,  -57986,  -20748,  0xff},
+       { -19229,  -19661,  -40658,   -22413,  -57986,  -20748,  0xff},
+       { -10057,  -14753,  -64285,   -22413,  -57986,  -20748,  0xff},
+       { -54223,   -3147,  -49005,   -22413,  -57986,  -20748,  0xff},
+       {  73752,   11747,  -30811,    35631,  -34485,  -42853,  0xff},
+       {  78247,   35576,  -46249,    35631,  -34485,  -42853,  0xff},
+       {  64396,   34216,  -56672,    35631,  -34485,  -42853,  0xff},
+       { -64396,   34216,  -56672,   -35631,  -34485,  -42853,  0xff},
+       { -78247,   35576,  -46249,   -35631,  -34485,  -42853,  0xff},
+       { -73752,   11747,  -30811,   -35631,  -34485,  -42853,  0xff},
+       {  64396,   34216,  -56672,    31968,   32925,  -46786,  0xff},
+       {  78247,   35576,  -46249,    31968,   32925,  -46786,  0xff},
+       {  28807,   65151,  -59219,    31968,   32925,  -46786,  0xff},
+       { -64396,   34216,  -56672,   -34078,   35651,  -43162,  0xff},
+       { -23131,   56495,  -70850,   -34078,   35651,  -43162,  0xff},
+       { -28807,   65151,  -59219,   -34078,   35651,  -43162,  0xff},
+       {   9318,   36356,  -69689,   -43207,   23697,  -43207,  0xff},
+       {  15004,   60288,  -62250,   -43207,   23697,  -43207,  0xff},
+       {      0,   36356,  -60371,   -43207,   23697,  -43207,  0xff},
+       {  -9318,   36356,  -69689,    37840,   37833,  -37840,  0xff},
+       {      0,   29188,  -67539,    37840,   37833,  -37840,  0xff},
+       {      0,   36356,  -60371,    37840,   37833,  -37840,  0xff},
+       {  52544,   30461,  -55417,     3493,  -30402,  -57953,  0xff},
+       {  64396,   34216,  -56672,     3493,  -30402,  -57953,  0xff},
+       {  23131,   56495,  -70850,     3493,  -30402,  -57953,  0xff},
+       { -23131,   56495,  -70850,    -3493,  -30402,  -57953,  0xff},
+       { -64396,   34216,  -56672,    -3493,  -30402,  -57953,  0xff},
+       { -52544,   30461,  -55417,    -3493,  -30402,  -57953,  0xff},
+       {  49835,   16450,  -54959,    12386,  -16154,  -62291,  0xff},
+       {  54223,   -3147,  -49005,    12386,  -16154,  -62291,  0xff},
+       {  64396,   34216,  -56672,    12386,  -16154,  -62291,  0xff},
+       { -64396,   34216,  -56672,   -12386,  -16154,  -62291,  0xff},
+       { -54223,   -3147,  -49005,   -12386,  -16154,  -62291,  0xff},
+       { -49835,   16450,  -54959,   -12386,  -16154,  -62291,  0xff},
+       {  15219,   27030,  -64025,    32086,  -13428,  -55541,  0xff},
+       {  26146,   42393,  -61428,    32086,  -13428,  -55541,  0xff},
+       {   9318,   36356,  -69689,    32086,  -13428,  -55541,  0xff},
+       { -15219,   27030,  -64025,    -9201,  -29327,  -57881,  0xff},
+       {      0,   29188,  -67539,    -9201,  -29327,  -57881,  0xff},
+       {  -9318,   36356,  -69689,    -9201,  -29327,  -57881,  0xff},
+       {      0,  -92836,  -47339,     6684,  -45114,  -47061,  0xff},
+       {  25044,  -84376,  -51892,     6684,  -45114,  -47061,  0xff},
+       {   7450,  -81991,  -56678,     6684,  -45114,  -47061,  0xff},
+       {  -7450,  -81991,  -56678,    -6684,  -45114,  -47061,  0xff},
+       { -25044,  -84376,  -51892,    -6684,  -45114,  -47061,  0xff},
+       {      0,  -92836,  -47339,    -6684,  -45114,  -47061,  0xff},
+       {   9207,  -70338,  -59544,    11744,   -1009,  -64467,  0xff},
+       {  12979,  -24921,  -59566,    11744,   -1009,  -64467,  0xff},
+       {      0,  -33967,  -61790,    11744,   -1009,  -64467,  0xff},
+       {      0,  -33967,  -61790,   -11744,   -1009,  -64467,  0xff},
+       { -12979,  -24921,  -59566,   -11744,   -1009,  -64467,  0xff},
+       {  -9207,  -70338,  -59544,   -11744,   -1009,  -64467,  0xff},
+       {   4769,  -14872,  -65410,    10806,   18277,  -61997,  0xff},
+       {      0,  -21704,  -68255,    10806,   18277,  -61997,  0xff},
+       {  11966,  -23687,  -66754,    10806,   18277,  -61997,  0xff},
+       {  -4769,  -14872,  -65410,   -12582,   19614,  -61256,  0xff},
+       { -10057,  -14753,  -64285,   -12582,   19614,  -61256,  0xff},
+       { -11966,  -23687,  -66754,   -12582,   19614,  -61256,  0xff},
+       {   9207,  -70338,  -59544,    21882,  -61027,   -9581,  0xff},
+       {      0,  -73664,  -59390,    21882,  -61027,   -9581,  0xff},
+       {      0,  -74747,  -52486,    21882,  -61027,   -9581,  0xff},
+       {      0,  -74747,  -52486,   -21882,  -61027,   -9581,  0xff},
+       {      0,  -73664,  -59390,   -21882,  -61027,   -9581,  0xff},
+       {  -9207,  -70338,  -59544,   -21882,  -61027,   -9581,  0xff},
+       {  34298,    4871,  -59090,     1782,  -36687,  -54276,  0xff},
+       {  17197,   10373,  -63370,     1782,  -36687,  -54276,  0xff},
+       {  17498,    6132,  -60493,     1782,  -36687,  -54276,  0xff},
+       { -17498,    6132,  -60493,    -1782,  -36687,  -54276,  0xff},
+       { -17197,   10373,  -63370,    -1782,  -36687,  -54276,  0xff},
+       { -34298,    4871,  -59090,    -1782,  -36687,  -54276,  0xff},
+       {  17919,   24170,  -61804,    43601,    3257,  -48817,  0xff},
+       {  15219,   27030,  -64025,    43601,    3257,  -48817,  0xff},
+       {  17197,   10373,  -63370,    43601,    3257,  -48817,  0xff},
+       { -17919,   24170,  -61804,   -59683,     -52,  -27066,  0xff},
+       { -18337,   12777,  -60862,   -59683,     -52,  -27066,  0xff},
+       { -17197,   10373,  -63370,   -59683,     -52,  -27066,  0xff},
+       {  10035,   39223,  -48185,   -28429,   58248,    9705,  0xff},
+       {      0,   34205,  -47468,   -28429,   58248,    9705,  0xff},
+       {      0,   36356,  -60371,   -28429,   58248,    9705,  0xff},
+       {      0,   36356,  -60371,    28429,   58248,    9705,  0xff},
+       {      0,   34205,  -47468,    28429,   58248,    9705,  0xff},
+       { -10035,   39223,  -48185,    28429,   58248,    9705,  0xff},
+       {  41971,   45428,  -35829,    23291,   52658,   31299,  0xff},
+       {  28807,   65151,  -59219,    23291,   52658,   31299,  0xff},
+       {  78247,   35576,  -46249,    23291,   52658,   31299,  0xff},
+       { -41971,   45428,  -35829,   -20951,   59926,   16285,  0xff},
+       { -68082,   33423,  -25245,   -20951,   59926,   16285,  0xff},
+       { -78247,   35576,  -46249,   -20951,   59926,   16285,  0xff},
+       {      0,  -76898,  -23814,    20335,   -8749,   61682,  0xff},
+       {      0,  -47667,  -19667,    20335,   -8749,   61682,  0xff},
+       {  22464,  -45140,  -26714,    20335,   -8749,   61682,  0xff},
+       {      0,  -92667,  -34566,     9968,  -62966,   15197,  0xff},
+       {  29862,  -86792,  -29804,     9968,  -62966,   15197,  0xff},
+       {  33441,  -88848,  -40670,     9968,  -62966,   15197,  0xff},
+       { -33441,  -88848,  -40670,    -9968,  -62966,   15197,  0xff},
+       { -29862,  -86792,  -29804,    -9968,  -62966,   15197,  0xff},
+       {      0,  -92667,  -34566,    -9968,  -62966,   15197,  0xff},
+       {  28672,  -43208,  -44601,    59585,   15623,   22367,  0xff},
+       {  22464,  -45140,  -26714,    59585,   15623,   22367,  0xff},
+       {  20070,  -28872,  -31699,    59585,   15623,   22367,  0xff}
+
 };
 
 #endif /* MESHDATA_H_ */
index f2bb599..a068295 100644 (file)
@@ -41,7 +41,6 @@ void polyfill_flat(struct pvertex *varr, int vnum, unsigned char col)
        int32_t x, y0, y1, dx, dy, slope, fx, fy;
        short *tab, start, len;
        unsigned char *fbptr;
-       static int dbg;
 
        vlast = varr + vnum - 1;
        top = fbheight;
@@ -97,6 +96,4 @@ void polyfill_flat(struct pvertex *varr, int vnum, unsigned char col)
                }
                fbptr += fbwidth;
        }
-
-       dbg++;
 }
index 515919e..6277ce5 100644 (file)
--- a/src/xgl.c
+++ b/src/xgl.c
@@ -19,17 +19,33 @@ along with this program.  If not, see <https://www.gnu.org/licenses/>.
 #include <math.h>
 #include "xgl.h"
 #include "polyfill.h"
+#include "debug.h"
 
 #define MAT_STACK_SIZE 4
 
 static int vp[4];
 static int32_t mat[MAT_STACK_SIZE][16];
 static int mtop;
+static unsigned int opt;
+static int32_t ldir[3];
 
 void xgl_init(void)
 {
        xgl_viewport(0, 0, 240, 160);
        xgl_load_identity();
+
+       ldir[0] = ldir[1] = 0;
+       ldir[2] = -0x100;
+}
+
+void xgl_enable(unsigned int o)
+{
+       opt |= o;
+}
+
+void xgl_disable(unsigned int o)
+{
+       opt &= ~o;
 }
 
 void xgl_viewport(int x, int y, int w, int h)
@@ -157,28 +173,61 @@ static void xform(struct xvertex *out, const struct xvertex *in, const int32_t *
        out->z = XMUL(m[2], in->x) + XMUL(m[6], in->y) + XMUL(m[10], in->z) + m[14];
 }
 
+static void xform_norm(struct xvertex *out, const struct xvertex *in, const int32_t *m)
+{
+       out->nx = XMUL(m[0], in->nx) + XMUL(m[4], in->ny) + XMUL(m[8], in->nz);
+       out->ny = XMUL(m[1], in->nx) + XMUL(m[5], in->ny) + XMUL(m[9], in->nz);
+       out->nz = XMUL(m[2], in->nx) + XMUL(m[6], in->ny) + XMUL(m[10], in->nz);
+}
+
 /* d = 1.0 / tan(fov/2) */
-#define PROJ_D 2.0f
+#define PROJ_D 0x20000
 
 void xgl_draw(int prim, const struct xvertex *varr, int vcount)
 {
        int i, cidx;
        struct xvertex xv[4];
        struct pvertex pv[4];
+       int32_t ndotl;
 
        while(vcount >= prim) {
                cidx = varr->cidx;
-               for(i=0; i<prim; i++) {
+
+               xform(xv, varr, mat[mtop]);
+               xform_norm(xv, varr, mat[mtop]);
+
+               if(xv->nz > 0) {
+                       /* backface */
+                       varr += prim;
+                       vcount -= prim;
+                       continue;
+               }
+
+               if(opt & XGL_LIGHTING) {
+                       ndotl = (xv->nx >> 8) * ldir[0] + (xv->ny >> 8) * ldir[1] + (xv->nz >> 8) * ldir[2];
+                       if(ndotl < 0) ndotl = 0;
+                       cidx = 128 + (ndotl >> 9);
+                       if(cidx > 255) cidx = 255;
+               }
+
+               xv->x = (xv->x << 1) / (xv->z >> 8);    /* assume aspect: ~2 */
+               xv->y = (xv->y << 2) / (xv->z >> 8);    /* the shift is * PROJ_D */
+               /* projection result is 24.8 */
+               /* viewport */
+               pv->x = (((xv->x + 0x100) >> 1) * vp[2]) + (vp[0] << 8);
+               pv->y = (((0x100 - xv->y) >> 1) * vp[3]) + (vp[1] << 8);
+               varr++;
+
+               for(i=1; i<prim; i++) {
                        xform(xv + i, varr, mat[mtop]);
-                       varr++;
 
-                       xv[i].x = xv[i].x / (xv[i].z >> 8);     /* assume aspect: ~2 */
-                       xv[i].y = (xv[i].y << 1) / (xv[i].z >> 8);
+                       xv[i].x = (xv[i].x << 1) / (xv[i].z >> 8);      /* assume aspect: ~2 */
+                       xv[i].y = (xv[i].y << 2) / (xv[i].z >> 8);      /* the shift is * PROJ_D */
                        /* projection result is 24.8 */
-
                        /* viewport */
                        pv[i].x = (((xv[i].x + 0x100) >> 1) * vp[2]) + (vp[0] << 8);
                        pv[i].y = (((0x100 - xv[i].y) >> 1) * vp[3]) + (vp[1] << 8);
+                       varr++;
                }
                vcount -= prim;
 
index 125af16..c15231e 100644 (file)
--- a/src/xgl.h
+++ b/src/xgl.h
@@ -24,6 +24,11 @@ along with this program.  If not, see <https://www.gnu.org/licenses/>.
 #define X_QPI  0xc910
 
 enum {
+       XGL_LIGHTING    = 1,
+       XGL_DEPTH_TEST  = 2,
+};
+
+enum {
        XGL_LINES               = 2,
        XGL_TRIANGLES   = 3,
        XGL_QUADS               = 4
@@ -37,6 +42,9 @@ struct xvertex {
 
 void xgl_init(void);
 
+void xgl_enable(unsigned int opt);
+void xgl_disable(unsigned int opt);
+
 void xgl_viewport(int x, int y, int w, int h);
 
 void xgl_push_matrix(void);
index a442893..d758deb 100644 (file)
@@ -3,6 +3,8 @@
 #include <string.h>
 #include "cmesh.h"
 
+int dump(struct cmesh *cm);
+
 int main(int argc, char **argv)
 {
        int i;
@@ -25,26 +27,41 @@ int main(int argc, char **argv)
        return 0;
 }
 
+static int nverts, nidx, voffs;
+static const float *varr, *narr;
+static unsigned int *iarr;
+
+static int zcmp(const void *a, const void *b)
+{
+       unsigned int *aidx = (unsigned int*)a;
+       unsigned int *bidx = (unsigned int*)b;
+
+       float az = varr[aidx[0] * 3 + 2] + varr[aidx[1] * 3 + 2] + varr[aidx[2] * 3 + 2];
+       float bz = varr[bidx[0] * 3 + 2] + varr[bidx[1] * 3 + 2] + varr[bidx[2] * 3 + 2];
+
+       return az - bz;
+}
+
 int dump(struct cmesh *cm)
 {
-       int i, nverts, nidx, voffs;
-       const float *varr, *narr;
-       const unsigned int *iarr;
+       int i;
 
        varr = cmesh_attrib_ro(cm, CMESH_ATTR_VERTEX);
        narr = cmesh_attrib_ro(cm, CMESH_ATTR_NORMAL);
-       iarr = cmesh_index_ro(cm);
+       iarr = cmesh_index(cm);
        nverts = cmesh_attrib_count(cm, CMESH_ATTR_VERTEX);
        nidx = cmesh_index_count(cm);
 
+       qsort(iarr, nidx / 3, sizeof *iarr * 3, zcmp);
+
        printf("static struct xvertex mesh[] = {\n");
        for(i=0; i<nidx; i++) {
                voffs = iarr[i] * 3;
-               printf("\t{%d, %d, %d,", (int)(varr[voffs] * 65536.0f),
-                               (int)(varr[voffs + 1] * 65536.0f), (int)(varr[voffs + 2] * 65536.0f));
-               printf("\t%d, %d, %d,", (int)(narr[voffs] * 65536.0f),
-                               (int)(narr[voffs + 1] * 65536.0f), (int)(narr[voffs + 2] * 65536.0f));
-               printf("\t0xff}%c\n", i < nidx - 1 ? ',' : '\n');
+               printf("\t{%7d, %7d, %7d,", (int)(varr[voffs] * 65536.0f),
+                               (int)(varr[voffs + 1] * 65536.0f), -(int)(varr[voffs + 2] * 65536.0f));
+               printf("  %7d, %7d, %7d,", (int)(narr[voffs] * 65536.0f),
+                               (int)(narr[voffs + 1] * 65536.0f), -(int)(narr[voffs + 2] * 65536.0f));
+               printf("  0xff}%c\n", i < nidx - 1 ? ',' : '\n');
        }
        printf("};\n");