/* * Raycaster, based on lodev engine tutorial */ #define word char #include "LIB/MATH.C" #include "LIB/STDLIB.C" #include "LIB/SYS.C" #include "LIB/GFX.C" #include "LIB/FP.C" // Note: these are also hardcoded in the render assembly, so update there as well! #define FB_ADDR 0xD00000 #define screenWidth 320 #define screenHeight 240 #define texWidth 64 #define texHeight 64 // Map #define mapWidth 24 #define mapHeight 24 // Input #define BTN_LEFT 256 #define BTN_RIGHT 257 #define BTN_UP 258 #define BTN_DOWN 259 // Colors #define COLOR_RED 224 #define COLOR_DARK_RED 96 #define COLOR_GREEN 28 #define COLOR_DARK_GREEN 12 #define COLOR_BLUE 3 #define COLOR_DARK_BLUE 2 #define COLOR_WHITE 0xFF #define COLOR_GREY 0xB6 #define COLOR_YELLOW 0xFC #define COLOR_DARK_YELLOW 0x90 // Framebuffer. fb[Y][X] (bottom right is [239][319]) char (*fb)[screenWidth] = (char (*)[screenWidth]) FB_ADDR; word quitGame = 0; word LUTdirX[360] = { -65526, -65496, -65446, -65376, -65287, -65177, -65048, -64898, -64729, -64540, -64332, -64104, -63856, -63589, -63303, -62997, -62672, -62328, -61966, -61584, -61183, -60764, -60326, -59870, -59396, -58903, -58393, -57865, -57319, -56756, -56175, -55578, -54963, -54332, -53684, -53020, -52339, -51643, -50931, -50203, -49461, -48703, -47930, -47143, -46341, -45525, -44695, -43852, -42995, -42126, -41243, -40348, -39441, -38521, -37590, -36647, -35693, -34729, -33754, -32768, -31772, -30767, -29753, -28729, -27697, -26656, -25607, -24550, -23486, -22415, -21336, -20252, -19161, -18064, -16962, -15855, -14742, -13626, -12505, -11380, -10252, -9121, -7987, -6850, -5712, -4572, -3430, -2287, -1144, 0, 1144, 2287, 3430, 4572, 5712, 6850, 7987, 9121, 10252, 11380, 12505, 13626, 14742, 15855, 16962, 18064, 19161, 20252, 21336, 22415, 23486, 24550, 25607, 26656, 27697, 28729, 29753, 30767, 31772, 32768, 33754, 34729, 35693, 36647, 37590, 38521, 39441, 40348, 41243, 42126, 42995, 43852, 44695, 45525, 46341, 47143, 47930, 48703, 49461, 50203, 50931, 51643, 52339, 53020, 53684, 54332, 54963, 55578, 56175, 56756, 57319, 57865, 58393, 58903, 59396, 59870, 60326, 60764, 61183, 61584, 61966, 62328, 62672, 62997, 63303, 63589, 63856, 64104, 64332, 64540, 64729, 64898, 65048, 65177, 65287, 65376, 65446, 65496, 65526, 65536, 65526, 65496, 65446, 65376, 65287, 65177, 65048, 64898, 64729, 64540, 64332, 64104, 63856, 63589, 63303, 62997, 62672, 62328, 61966, 61584, 61183, 60764, 60326, 59870, 59396, 58903, 58393, 57865, 57319, 56756, 56175, 55578, 54963, 54332, 53684, 53020, 52339, 51643, 50931, 50203, 49461, 48703, 47930, 47143, 46341, 45525, 44695, 43852, 42995, 42126, 41243, 40348, 39441, 38521, 37590, 36647, 35693, 34729, 33754, 32768, 31772, 30767, 29753, 28729, 27697, 26656, 25607, 24550, 23486, 22415, 21336, 20252, 19161, 18064, 16962, 15855, 14742, 13626, 12505, 11380, 10252, 9121, 7987, 6850, 5712, 4572, 3430, 2287, 1144, 0, -1144, -2287, -3430, -4572, -5712, -6850, -7987, -9121, -10252, -11380, -12505, -13626, -14742, -15855, -16962, -18064, -19161, -20252, -21336, -22415, -23486, -24550, -25607, -26656, -27697, -28729, -29753, -30767, -31772, -32768, -33754, -34729, -35693, -36647, -37590, -38521, -39441, -40348, -41243, -42126, -42995, -43852, -44695, -45525, -46341, -47143, -47930, -48703, -49461, -50203, -50931, -51643, -52339, -53020, -53684, -54332, -54963, -55578, -56175, -56756, -57319, -57865, -58393, -58903, -59396, -59870, -60326, -60764, -61183, -61584, -61966, -62328, -62672, -62997, -63303, -63589, -63856, -64104, -64332, -64540, -64729, -64898, -65048, -65177, -65287, -65376, -65446, -65496, -65526, -65536 }; word LUTdirY[360] = { 1144, 2287, 3430, 4572, 5712, 6850, 7987, 9121, 10252, 11380, 12505, 13626, 14742, 15855, 16962, 18064, 19161, 20252, 21336, 22415, 23486, 24550, 25607, 26656, 27697, 28729, 29753, 30767, 31772, 32768, 33754, 34729, 35693, 36647, 37590, 38521, 39441, 40348, 41243, 42126, 42995, 43852, 44695, 45525, 46341, 47143, 47930, 48703, 49461, 50203, 50931, 51643, 52339, 53020, 53684, 54332, 54963, 55578, 56175, 56756, 57319, 57865, 58393, 58903, 59396, 59870, 60326, 60764, 61183, 61584, 61966, 62328, 62672, 62997, 63303, 63589, 63856, 64104, 64332, 64540, 64729, 64898, 65048, 65177, 65287, 65376, 65446, 65496, 65526, 65536, 65526, 65496, 65446, 65376, 65287, 65177, 65048, 64898, 64729, 64540, 64332, 64104, 63856, 63589, 63303, 62997, 62672, 62328, 61966, 61584, 61183, 60764, 60326, 59870, 59396, 58903, 58393, 57865, 57319, 56756, 56175, 55578, 54963, 54332, 53684, 53020, 52339, 51643, 50931, 50203, 49461, 48703, 47930, 47143, 46341, 45525, 44695, 43852, 42995, 42126, 41243, 40348, 39441, 38521, 37590, 36647, 35693, 34729, 33754, 32768, 31772, 30767, 29753, 28729, 27697, 26656, 25607, 24550, 23486, 22415, 21336, 20252, 19161, 18064, 16962, 15855, 14742, 13626, 12505, 11380, 10252, 9121, 7987, 6850, 5712, 4572, 3430, 2287, 1144, 0, -1144, -2287, -3430, -4572, -5712, -6850, -7987, -9121, -10252, -11380, -12505, -13626, -14742, -15855, -16962, -18064, -19161, -20252, -21336, -22415, -23486, -24550, -25607, -26656, -27697, -28729, -29753, -30767, -31772, -32768, -33754, -34729, -35693, -36647, -37590, -38521, -39441, -40348, -41243, -42126, -42995, -43852, -44695, -45525, -46341, -47143, -47930, -48703, -49461, -50203, -50931, -51643, -52339, -53020, -53684, -54332, -54963, -55578, -56175, -56756, -57319, -57865, -58393, -58903, -59396, -59870, -60326, -60764, -61183, -61584, -61966, -62328, -62672, -62997, -63303, -63589, -63856, -64104, -64332, -64540, -64729, -64898, -65048, -65177, -65287, -65376, -65446, -65496, -65526, -65536, -65526, -65496, -65446, -65376, -65287, -65177, -65048, -64898, -64729, -64540, -64332, -64104, -63856, -63589, -63303, -62997, -62672, -62328, -61966, -61584, -61183, -60764, -60326, -59870, -59396, -58903, -58393, -57865, -57319, -56756, -56175, -55578, -54963, -54332, -53684, -53020, -52339, -51643, -50931, -50203, -49461, -48703, -47930, -47143, -46341, -45525, -44695, -43852, -42995, -42126, -41243, -40348, -39441, -38521, -37590, -36647, -35693, -34729, -33754, -32768, -31772, -30767, -29753, -28729, -27697, -26656, -25607, -24550, -23486, -22415, -21336, -20252, -19161, -18064, -16962, -15855, -14742, -13626, -12505, -11380, -10252, -9121, -7987, -6850, -5712, -4572, -3430, -2287, -1144, 0 }; word LUTplaneX[360] = { 755, 1510, 2264, 3017, 3770, 4521, 5271, 6020, 6766, 7511, 8253, 8993, 9730, 10464, 11195, 11922, 12646, 13366, 14082, 14794, 15501, 16203, 16901, 17593, 18280, 18961, 19637, 20306, 20970, 21627, 22277, 22921, 23558, 24187, 24809, 25424, 26031, 26630, 27220, 27803, 28377, 28942, 29499, 30047, 30585, 31114, 31634, 32144, 32644, 33134, 33614, 34084, 34544, 34993, 35431, 35859, 36276, 36681, 37076, 37459, 37831, 38191, 38539, 38876, 39201, 39514, 39815, 40104, 40381, 40645, 40897, 41137, 41364, 41578, 41780, 41969, 42145, 42309, 42459, 42597, 42721, 42833, 42931, 43017, 43089, 43148, 43194, 43227, 43247, 43254, 43247, 43227, 43194, 43148, 43089, 43017, 42931, 42833, 42721, 42597, 42459, 42309, 42145, 41969, 41780, 41578, 41364, 41137, 40897, 40645, 40381, 40104, 39815, 39514, 39201, 38876, 38539, 38191, 37831, 37459, 37076, 36681, 36276, 35859, 35431, 34993, 34544, 34084, 33614, 33134, 32644, 32144, 31634, 31114, 30585, 30047, 29499, 28942, 28377, 27803, 27220, 26630, 26031, 25424, 24809, 24187, 23558, 22921, 22277, 21627, 20970, 20306, 19637, 18961, 18280, 17593, 16901, 16203, 15501, 14794, 14082, 13366, 12646, 11922, 11195, 10464, 9730, 8993, 8253, 7511, 6766, 6020, 5271, 4521, 3770, 3017, 2264, 1510, 755, 0, -755, -1510, -2264, -3017, -3770, -4521, -5271, -6020, -6766, -7511, -8253, -8993, -9730, -10464, -11195, -11922, -12646, -13366, -14082, -14794, -15501, -16203, -16901, -17593, -18280, -18961, -19637, -20306, -20970, -21627, -22277, -22921, -23558, -24187, -24809, -25424, -26031, -26630, -27220, -27803, -28377, -28942, -29499, -30047, -30585, -31114, -31634, -32144, -32644, -33134, -33614, -34084, -34544, -34993, -35431, -35859, -36276, -36681, -37076, -37459, -37831, -38191, -38539, -38876, -39201, -39514, -39815, -40104, -40381, -40645, -40897, -41137, -41364, -41578, -41780, -41969, -42145, -42309, -42459, -42597, -42721, -42833, -42931, -43017, -43089, -43148, -43194, -43227, -43247, -43254, -43247, -43227, -43194, -43148, -43089, -43017, -42931, -42833, -42721, -42597, -42459, -42309, -42145, -41969, -41780, -41578, -41364, -41137, -40897, -40645, -40381, -40104, -39815, -39514, -39201, -38876, -38539, -38191, -37831, -37459, -37076, -36681, -36276, -35859, -35431, -34993, -34544, -34084, -33614, -33134, -32644, -32144, -31634, -31114, -30585, -30047, -29499, -28942, -28377, -27803, -27220, -26630, -26031, -25424, -24809, -24187, -23558, -22921, -22277, -21627, -20970, -20306, -19637, -18961, -18280, -17593, -16901, -16203, -15501, -14794, -14082, -13366, -12646, -11922, -11195, -10464, -9730, -8993, -8253, -7511, -6766, -6020, -5271, -4521, -3770, -3017, -2264, -1510, -755, 0 }; word LUTplaneY[360] = { 43247, 43227, 43194, 43148, 43089, 43017, 42931, 42833, 42721, 42597, 42459, 42309, 42145, 41969, 41780, 41578, 41364, 41137, 40897, 40645, 40381, 40104, 39815, 39514, 39201, 38876, 38539, 38191, 37831, 37459, 37076, 36681, 36276, 35859, 35431, 34993, 34544, 34084, 33614, 33134, 32644, 32144, 31634, 31114, 30585, 30047, 29499, 28942, 28377, 27803, 27220, 26630, 26031, 25424, 24809, 24187, 23558, 22921, 22277, 21627, 20970, 20306, 19637, 18961, 18280, 17593, 16901, 16203, 15501, 14794, 14082, 13366, 12646, 11922, 11195, 10464, 9730, 8993, 8253, 7511, 6766, 6020, 5271, 4521, 3770, 3017, 2264, 1510, 755, 0, -755, -1510, -2264, -3017, -3770, -4521, -5271, -6020, -6766, -7511, -8253, -8993, -9730, -10464, -11195, -11922, -12646, -13366, -14082, -14794, -15501, -16203, -16901, -17593, -18280, -18961, -19637, -20306, -20970, -21627, -22277, -22921, -23558, -24187, -24809, -25424, -26031, -26630, -27220, -27803, -28377, -28942, -29499, -30047, -30585, -31114, -31634, -32144, -32644, -33134, -33614, -34084, -34544, -34993, -35431, -35859, -36276, -36681, -37076, -37459, -37831, -38191, -38539, -38876, -39201, -39514, -39815, -40104, -40381, -40645, -40897, -41137, -41364, -41578, -41780, -41969, -42145, -42309, -42459, -42597, -42721, -42833, -42931, -43017, -43089, -43148, -43194, -43227, -43247, -43254, -43247, -43227, -43194, -43148, -43089, -43017, -42931, -42833, -42721, -42597, -42459, -42309, -42145, -41969, -41780, -41578, -41364, -41137, -40897, -40645, -40381, -40104, -39815, -39514, -39201, -38876, -38539, -38191, -37831, -37459, -37076, -36681, -36276, -35859, -35431, -34993, -34544, -34084, -33614, -33134, -32644, -32144, -31634, -31114, -30585, -30047, -29499, -28942, -28377, -27803, -27220, -26630, -26031, -25424, -24809, -24187, -23558, -22921, -22277, -21627, -20970, -20306, -19637, -18961, -18280, -17593, -16901, -16203, -15501, -14794, -14082, -13366, -12646, -11922, -11195, -10464, -9730, -8993, -8253, -7511, -6766, -6020, -5271, -4521, -3770, -3017, -2264, -1510, -755, 0, 755, 1510, 2264, 3017, 3770, 4521, 5271, 6020, 6766, 7511, 8253, 8993, 9730, 10464, 11195, 11922, 12646, 13366, 14082, 14794, 15501, 16203, 16901, 17593, 18280, 18961, 19637, 20306, 20970, 21627, 22277, 22921, 23558, 24187, 24809, 25424, 26031, 26630, 27220, 27803, 28377, 28942, 29499, 30047, 30585, 31114, 31634, 32144, 32644, 33134, 33614, 34084, 34544, 34993, 35431, 35859, 36276, 36681, 37076, 37459, 37831, 38191, 38539, 38876, 39201, 39514, 39815, 40104, 40381, 40645, 40897, 41137, 41364, 41578, 41780, 41969, 42145, 42309, 42459, 42597, 42721, 42833, 42931, 43017, 43089, 43148, 43194, 43227, 43247, 43254 }; word texture[8][texWidth*texHeight]= { // eagle { 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 160, 73, 73, 73, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 160, 73, 73, 73, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 160, 160, 160, 160, 160, 160, 160, 160, 73, 73, 252, 160, 160, 160, 192, 128, 160, 192, 128, 160, 160, 96, 37, 73, 73, 192, 160, 128, 160, 128, 160, 128, 160, 96, 160, 128, 160, 128, 160, 96, 160, 96, 160, 160, 160, 96, 37, 73, 73, 192, 160, 160, 160, 160, 160, 160, 160, 96, 160, 96, 160, 160, 160, 128, 160, 160, 96, 160, 128, 160, 160, 252, 37, 216, 212, 144, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 212, 212, 108, 173, 144, 72, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 108, 209, 72, 73, 72, 160, 109, 109, 109, 109, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 109, 109, 109, 109, 64, 173, 37, 73, 160, 96, 146, 109, 228, 160, 64, 64, 73, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 160, 160, 224, 192, 109, 64, 64, 64, 109, 182, 109, 64, 64, 37, 73, 160, 160, 182, 109, 160, 182, 146, 109, 64, 109, 182, 182, 218, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 109, 64, 109, 109, 146, 228, 109, 109, 64, 64, 37, 73, 96, 96, 182, 146, 64, 146, 182, 146, 109, 146, 146, 182, 182, 146, 109, 182, 218, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 146, 97, 109, 182, 182, 182, 182, 182, 109, 182, 218, 160, 109, 109, 64, 64, 37, 73, 73, 37, 218, 182, 64, 146, 182, 182, 146, 109, 109, 146, 146, 73, 65, 109, 182, 218, 218, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 146, 109, 97, 65, 146, 182, 182, 146, 146, 182, 218, 109, 64, 109, 146, 36, 36, 37, 73, 73, 73, 218, 182, 73, 109, 146, 182, 182, 146, 109, 109, 146, 65, 65, 65, 65, 109, 182, 218, 182, 182, 182, 182, 182, 182, 182, 65, 109, 73, 65, 65, 65, 65, 168, 204, 236, 182, 182, 182, 182, 182, 182, 146, 109, 97, 65, 65, 65, 146, 146, 146, 146, 182, 218, 182, 109, 73, 146, 182, 36, 37, 37, 192, 192, 192, 182, 218, 64, 109, 146, 182, 182, 182, 146, 109, 109, 73, 65, 65, 65, 65, 65, 109, 182, 182, 182, 182, 182, 182, 182, 65, 65, 65, 65, 65, 109, 65, 168, 168, 204, 240, 182, 182, 182, 146, 109, 97, 65, 65, 65, 65, 73, 146, 146, 146, 182, 182, 182, 182, 109, 64, 146, 182, 64, 64, 192, 160, 128, 128, 182, 218, 96, 146, 146, 146, 182, 182, 109, 65, 109, 109, 73, 65, 65, 65, 65, 65, 65, 65, 109, 146, 182, 182, 182, 109, 65, 65, 65, 65, 65, 65, 168, 146, 182, 182, 146, 109, 97, 97, 65, 65, 65, 65, 65, 73, 109, 109, 65, 109, 182, 182, 182, 146, 109, 64, 182, 182, 64, 64, 160, 128, 160, 128, 182, 218, 160, 182, 146, 146, 146, 109, 97, 97, 73, 109, 109, 73, 65, 65, 65, 65, 130, 65, 65, 65, 109, 146, 182, 182, 65, 65, 65, 65, 65, 65, 146, 182, 146, 109, 97, 97, 65, 130, 65, 65, 65, 65, 73, 109, 73, 97, 97, 97, 109, 182, 146, 109, 146, 96, 182, 182, 64, 64, 128, 96, 160, 160, 182, 182, 128, 182, 146, 146, 146, 65, 97, 97, 97, 65, 73, 109, 73, 73, 65, 65, 97, 65, 65, 65, 65, 65, 182, 182, 65, 65, 65, 65, 65, 65, 182, 182, 65, 97, 97, 65, 65, 97, 65, 65, 73, 73, 109, 73, 65, 97, 97, 97, 97, 146, 146, 109, 146, 96, 182, 182, 64, 64, 96, 160, 128, 128, 182, 182, 128, 182, 182, 146, 146, 65, 65, 97, 97, 97, 97, 65, 73, 73, 73, 65, 65, 65, 65, 65, 65, 73, 182, 182, 65, 65, 65, 65, 65, 65, 182, 182, 73, 65, 65, 65, 65, 65, 65, 73, 73, 73, 65, 65, 65, 97, 97, 97, 97, 146, 109, 146, 146, 96, 182, 182, 64, 64, 96, 96, 160, 96, 182, 182, 96, 218, 182, 182, 146, 73, 65, 65, 97, 97, 97, 97, 65, 65, 65, 65, 65, 65, 65, 65, 146, 182, 182, 109, 65, 65, 65, 65, 65, 65, 109, 182, 182, 146, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 97, 97, 97, 97, 73, 146, 109, 146, 146, 96, 182, 182, 64, 64, 128, 96, 160, 96, 182, 182, 96, 218, 182, 182, 146, 109, 73, 65, 65, 97, 97, 97, 97, 65, 97, 65, 65, 65, 65, 146, 65, 109, 182, 65, 65, 65, 65, 65, 65, 65, 65, 182, 109, 65, 146, 65, 65, 65, 65, 65, 65, 65, 65, 97, 97, 97, 97, 73, 109, 109, 146, 146, 182, 96, 182, 182, 64, 64, 96, 64, 64, 64, 182, 182, 96, 218, 218, 109, 65, 109, 73, 73, 73, 65, 97, 97, 97, 65, 130, 65, 65, 65, 65, 65, 65, 65, 182, 182, 65, 65, 65, 65, 65, 65, 182, 182, 65, 65, 65, 65, 65, 65, 65, 97, 65, 65, 97, 97, 97, 73, 109, 109, 73, 73, 109, 146, 182, 96, 182, 182, 64, 64, 64, 37, 37, 37, 182, 182, 96, 182, 218, 65, 65, 65, 73, 73, 73, 73, 73, 97, 97, 97, 65, 130, 65, 65, 65, 65, 65, 65, 109, 109, 65, 65, 65, 65, 65, 65, 109, 109, 65, 65, 65, 65, 65, 65, 97, 65, 65, 97, 97, 73, 146, 109, 109, 73, 65, 65, 65, 146, 182, 96, 182, 182, 36, 36, 37, 73, 73, 73, 182, 182, 96, 182, 218, 97, 65, 65, 65, 65, 65, 73, 73, 73, 73, 109, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 73, 109, 146, 109, 73, 65, 65, 65, 65, 65, 65, 182, 182, 96, 182, 182, 36, 37, 37, 73, 192, 192, 182, 182, 96, 182, 182, 97, 97, 65, 65, 65, 65, 65, 65, 65, 65, 65, 130, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 130, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 182, 182, 96, 182, 182, 64, 64, 37, 73, 192, 128, 218, 218, 128, 218, 182, 65, 97, 65, 65, 65, 65, 65, 65, 65, 65, 65, 130, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 130, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 146, 182, 96, 182, 182, 64, 64, 37, 73, 192, 160, 182, 182, 128, 182, 146, 109, 65, 97, 65, 65, 65, 65, 65, 65, 65, 65, 97, 65, 65, 65, 65, 65, 65, 65, 65, 73, 73, 109, 109, 109, 109, 73, 73, 65, 65, 65, 65, 65, 65, 65, 65, 130, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 109, 146, 182, 96, 182, 182, 64, 64, 37, 73, 160, 96, 182, 182, 96, 182, 146, 146, 109, 73, 65, 65, 65, 65, 65, 65, 65, 65, 65, 97, 65, 65, 65, 65, 65, 65, 65, 109, 97, 130, 97, 97, 130, 97, 109, 65, 65, 65, 65, 65, 65, 65, 130, 65, 65, 65, 65, 65, 65, 65, 65, 65, 73, 109, 146, 146, 182, 128, 182, 182, 64, 64, 37, 73, 160, 160, 182, 182, 96, 182, 65, 65, 73, 109, 109, 109, 109, 109, 73, 73, 73, 37, 65, 65, 65, 130, 65, 65, 65, 65, 65, 109, 130, 97, 97, 97, 97, 130, 109, 65, 65, 65, 65, 65, 130, 65, 65, 65, 73, 73, 73, 73, 73, 73, 73, 73, 109, 73, 97, 97, 182, 128, 182, 182, 64, 64, 37, 73, 160, 96, 182, 182, 96, 182, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 130, 97, 65, 65, 65, 73, 97, 97, 97, 97, 97, 97, 73, 65, 65, 65, 97, 130, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 97, 97, 218, 128, 218, 218, 64, 64, 37, 73, 160, 160, 182, 182, 96, 182, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 109, 130, 97, 97, 97, 97, 130, 109, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 97, 97, 182, 128, 182, 182, 64, 64, 37, 73, 160, 128, 146, 146, 64, 146, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 73, 97, 130, 73, 97, 130, 97, 73, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 97, 97, 97, 182, 128, 182, 182, 64, 64, 37, 73, 73, 73, 182, 182, 64, 182, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 73, 65, 65, 65, 65, 73, 65, 65, 65, 109, 73, 97, 73, 97, 97, 73, 109, 65, 65, 65, 73, 65, 65, 65, 65, 73, 65, 65, 65, 65, 65, 65, 65, 65, 65, 97, 97, 65, 182, 96, 182, 182, 36, 36, 37, 73, 73, 73, 182, 182, 96, 182, 109, 65, 65, 65, 65, 65, 65, 65, 65, 73, 109, 65, 65, 65, 65, 65, 73, 65, 65, 65, 65, 73, 109, 109, 73, 73, 109, 109, 73, 65, 65, 65, 65, 73, 65, 65, 65, 65, 65, 109, 73, 65, 65, 65, 65, 65, 65, 97, 65, 109, 182, 96, 182, 182, 36, 37, 37, 160, 160, 160, 182, 182, 96, 182, 146, 109, 65, 65, 65, 65, 73, 109, 109, 65, 65, 65, 65, 65, 65, 109, 65, 65, 65, 65, 65, 65, 65, 73, 109, 109, 73, 65, 65, 65, 65, 65, 65, 65, 109, 65, 65, 65, 65, 65, 65, 109, 109, 73, 65, 65, 65, 65, 109, 146, 182, 96, 182, 182, 64, 64, 160, 160, 160, 160, 182, 182, 96, 182, 182, 182, 146, 146, 146, 146, 109, 65, 65, 65, 65, 65, 65, 65, 109, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 109, 65, 65, 65, 65, 65, 65, 65, 109, 146, 146, 146, 146, 182, 182, 182, 96, 182, 182, 64, 64, 160, 160, 96, 128, 182, 182, 96, 182, 182, 146, 146, 109, 65, 65, 65, 65, 65, 65, 65, 65, 65, 109, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 109, 65, 65, 65, 65, 65, 65, 65, 65, 65, 109, 146, 146, 146, 146, 64, 146, 146, 64, 64, 96, 128, 96, 160, 182, 182, 96, 182, 182, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 109, 65, 65, 65, 65, 109, 65, 109, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 109, 65, 109, 65, 65, 65, 65, 109, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 146, 146, 64, 146, 146, 64, 64, 96, 160, 128, 96, 182, 182, 96, 182, 182, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 109, 65, 65, 65, 65, 109, 146, 109, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 109, 146, 109, 65, 65, 65, 65, 109, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 146, 146, 64, 146, 146, 64, 64, 128, 160, 128, 96, 182, 182, 96, 182, 182, 109, 65, 65, 65, 65, 65, 65, 65, 65, 109, 65, 65, 65, 65, 65, 146, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 146, 65, 65, 65, 65, 65, 109, 65, 65, 65, 65, 65, 65, 65, 65, 109, 146, 146, 96, 146, 146, 64, 64, 96, 96, 96, 128, 182, 182, 96, 182, 182, 146, 65, 65, 65, 65, 65, 65, 65, 109, 65, 65, 65, 65, 65, 146, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 146, 65, 65, 65, 65, 65, 109, 65, 65, 65, 65, 65, 65, 65, 146, 182, 182, 96, 182, 182, 64, 64, 96, 64, 64, 64, 182, 182, 128, 182, 182, 182, 109, 65, 65, 65, 65, 65, 109, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 109, 65, 65, 65, 65, 65, 109, 182, 182, 182, 96, 182, 182, 64, 64, 64, 37, 37, 37, 182, 182, 128, 182, 182, 182, 182, 109, 65, 65, 65, 109, 65, 65, 65, 65, 65, 65, 146, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 146, 65, 65, 65, 65, 65, 65, 109, 65, 65, 65, 109, 182, 182, 182, 182, 96, 182, 182, 36, 36, 37, 73, 73, 73, 218, 218, 160, 218, 218, 218, 182, 182, 146, 146, 146, 146, 65, 65, 65, 65, 65, 146, 182, 130, 65, 65, 65, 65, 65, 65, 109, 65, 65, 65, 65, 109, 65, 65, 65, 65, 65, 65, 130, 182, 146, 65, 65, 65, 65, 65, 146, 146, 146, 146, 182, 182, 182, 182, 182, 96, 182, 182, 36, 37, 37, 73, 192, 192, 182, 182, 128, 182, 182, 182, 182, 182, 182, 182, 182, 146, 146, 65, 65, 65, 146, 182, 182, 182, 109, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 109, 182, 182, 182, 146, 65, 65, 65, 146, 146, 182, 182, 182, 182, 182, 182, 182, 182, 128, 182, 182, 64, 64, 37, 73, 192, 160, 182, 182, 128, 182, 182, 182, 182, 182, 182, 182, 109, 168, 168, 109, 182, 182, 182, 182, 109, 168, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 168, 109, 182, 182, 182, 182, 109, 168, 168, 109, 182, 182, 182, 182, 182, 182, 182, 128, 182, 182, 64, 64, 37, 73, 192, 160, 182, 182, 128, 182, 182, 182, 182, 182, 182, 182, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 104, 104, 65, 65, 109, 182, 65, 65, 65, 65, 65, 65, 182, 109, 65, 65, 104, 104, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 182, 182, 182, 182, 218, 218, 218, 128, 218, 218, 64, 64, 37, 73, 192, 128, 182, 182, 128, 182, 182, 182, 182, 182, 182, 182, 182, 109, 109, 104, 168, 168, 168, 168, 104, 104, 109, 182, 182, 182, 182, 65, 65, 65, 65, 65, 65, 65, 65, 182, 182, 182, 182, 109, 104, 104, 168, 168, 168, 168, 104, 109, 109, 182, 182, 182, 182, 182, 182, 182, 182, 128, 182, 182, 64, 64, 37, 73, 192, 160, 182, 182, 96, 182, 182, 182, 182, 182, 182, 182, 146, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 182, 182, 182, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 182, 182, 182, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 146, 182, 182, 182, 182, 182, 182, 182, 128, 182, 182, 64, 64, 37, 73, 192, 160, 182, 182, 96, 182, 182, 182, 182, 182, 182, 182, 168, 104, 104, 146, 168, 168, 104, 182, 146, 104, 168, 182, 109, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 109, 182, 168, 104, 146, 182, 104, 168, 168, 146, 104, 104, 168, 182, 182, 182, 182, 182, 182, 182, 96, 182, 182, 64, 64, 37, 73, 160, 160, 182, 182, 96, 182, 182, 182, 182, 182, 182, 182, 104, 109, 146, 182, 168, 104, 182, 182, 182, 182, 109, 73, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 73, 109, 182, 182, 182, 182, 104, 168, 182, 146, 109, 104, 182, 182, 182, 182, 182, 182, 182, 96, 182, 182, 64, 64, 37, 73, 160, 96, 182, 182, 96, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 168, 104, 182, 182, 109, 73, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 73, 109, 182, 182, 104, 168, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 96, 182, 182, 64, 64, 37, 73, 73, 37, 182, 182, 96, 146, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 146, 168, 182, 65, 65, 65, 65, 65, 65, 65, 65, 65, 109, 65, 65, 65, 65, 109, 65, 65, 65, 65, 65, 65, 65, 65, 65, 182, 168, 146, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 146, 96, 182, 182, 36, 36, 37, 73, 73, 73, 182, 182, 96, 109, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 109, 73, 65, 65, 65, 65, 65, 109, 182, 65, 65, 65, 65, 65, 65, 182, 109, 65, 65, 65, 65, 65, 73, 109, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 109, 96, 182, 182, 36, 37, 37, 192, 192, 192, 182, 182, 109, 96, 109, 146, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 109, 73, 65, 65, 109, 182, 109, 65, 65, 65, 65, 65, 65, 109, 182, 109, 65, 65, 73, 109, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 146, 109, 96, 109, 182, 182, 64, 64, 160, 96, 160, 64, 109, 182, 182, 109, 96, 96, 96, 109, 146, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 65, 65, 65, 65, 65, 65, 65, 65, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 146, 146, 96, 96, 96, 109, 146, 182, 109, 64, 64, 96, 160, 96, 96, 64, 109, 182, 182, 182, 146, 109, 96, 96, 96, 96, 109, 146, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 109, 65, 65, 65, 65, 65, 65, 109, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 146, 109, 96, 96, 96, 96, 146, 146, 182, 182, 182, 109, 64, 64, 64, 64, 160, 96, 64, 64, 64, 73, 109, 182, 182, 182, 182, 182, 146, 109, 96, 96, 96, 109, 146, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 109, 65, 65, 65, 65, 109, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 146, 109, 96, 96, 96, 109, 146, 182, 182, 182, 182, 182, 109, 73, 64, 64, 64, 96, 128, 96, 128, 64, 64, 64, 64, 64, 73, 109, 182, 182, 182, 182, 182, 182, 146, 109, 96, 96, 96, 109, 146, 182, 182, 182, 182, 182, 182, 182, 182, 109, 65, 65, 109, 182, 182, 182, 182, 182, 182, 182, 182, 146, 109, 96, 96, 96, 109, 146, 182, 182, 182, 182, 182, 109, 73, 64, 64, 64, 64, 64, 96, 96, 160, 96, 160, 96, 160, 96, 64, 96, 64, 64, 64, 64, 73, 109, 182, 182, 182, 182, 182, 146, 109, 96, 96, 96, 109, 146, 182, 182, 182, 182, 182, 182, 109, 109, 182, 182, 182, 182, 182, 182, 146, 109, 96, 96, 96, 109, 146, 182, 182, 182, 182, 182, 109, 73, 64, 64, 64, 64, 64, 64, 96, 64, 160, 96, 160, 96, 160, 96, 96, 96, 128, 128, 96, 64, 64, 64, 64, 64, 64, 73, 109, 182, 182, 182, 182, 182, 146, 109, 96, 96, 96, 96, 109, 146, 182, 182, 182, 182, 182, 182, 146, 109, 96, 96, 96, 96, 109, 146, 182, 182, 182, 182, 182, 109, 73, 64, 64, 64, 64, 64, 64, 64, 96, 160, 96, 64, 96, 160, 64, 96, 128, 64, 160, 96, 96, 128, 96, 96, 96, 160, 64, 64, 64, 64, 64, 64, 64, 73, 109, 182, 182, 182, 182, 182, 146, 109, 96, 96, 96, 109, 146, 146, 109, 96, 96, 96, 109, 146, 182, 182, 182, 182, 182, 109, 73, 64, 37, 37, 37, 64, 64, 64, 64, 160, 64, 160, 96, 160, 96, 160, 96, 160, 96, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 36, 36, 37, 73, 109, 182, 182, 182, 182, 182, 146, 109, 96, 96, 96, 96, 109, 146, 182, 182, 182, 182, 109, 73, 64, 64, 64, 64, 64, 36, 37, 37, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 36, 36, 36, 36, 36, 37, 73, 109, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 109, 73, 36, 36, 36, 36, 36, 37, 36, 36, 36, 37, 37, 37, 37, 37, 37, 37, 37, 37, 36, 36, 36, 36, 36, 37, 37, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 37, 37, 37, 37, 37, 37, 37, 36, 36, 36, 36, 36, 73, 109, 182, 182, 109, 73, 37, 36, 36, 36, 36, 36, 37, 37, 37, 37, 37, 37, 37, 37, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 37, 37, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 37, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, }, //redbrick { 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 160, 73, 73, 73, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 160, 73, 73, 73, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 160, 160, 160, 160, 160, 160, 160, 160, 73, 73, 192, 160, 160, 160, 192, 128, 160, 192, 128, 160, 160, 96, 37, 73, 73, 192, 160, 128, 160, 128, 160, 128, 160, 96, 160, 128, 160, 128, 160, 96, 160, 96, 160, 160, 160, 96, 37, 73, 73, 192, 160, 160, 160, 160, 160, 160, 160, 96, 160, 96, 160, 160, 160, 128, 160, 160, 96, 160, 128, 160, 160, 96, 37, 73, 192, 160, 96, 160, 128, 160, 128, 96, 160, 128, 96, 96, 37, 73, 73, 192, 160, 128, 128, 160, 128, 96, 160, 160, 96, 128, 160, 160, 96, 128, 160, 96, 160, 128, 96, 64, 37, 73, 73, 192, 160, 160, 96, 96, 160, 128, 96, 128, 160, 96, 128, 160, 160, 128, 160, 96, 128, 160, 64, 160, 96, 96, 37, 73, 192, 96, 160, 160, 96, 128, 160, 160, 96, 160, 64, 64, 37, 73, 73, 192, 128, 160, 160, 128, 160, 96, 160, 128, 160, 96, 160, 96, 128, 96, 160, 96, 128, 96, 96, 64, 37, 73, 73, 192, 96, 160, 96, 128, 160, 96, 160, 96, 160, 96, 160, 128, 160, 96, 160, 128, 96, 160, 96, 160, 96, 64, 37, 73, 160, 160, 96, 128, 128, 96, 160, 96, 128, 160, 96, 64, 37, 73, 73, 160, 160, 128, 160, 128, 128, 128, 160, 96, 128, 96, 160, 128, 96, 128, 96, 128, 96, 160, 96, 64, 37, 73, 73, 160, 96, 160, 96, 160, 128, 96, 160, 96, 96, 160, 160, 96, 160, 128, 160, 160, 96, 160, 64, 160, 128, 64, 37, 73, 160, 96, 160, 160, 96, 160, 128, 96, 128, 96, 64, 64, 37, 73, 73, 160, 160, 128, 160, 96, 160, 96, 160, 96, 160, 96, 128, 128, 96, 96, 160, 96, 128, 96, 96, 64, 37, 73, 73, 160, 128, 160, 96, 128, 160, 96, 128, 96, 128, 96, 160, 128, 160, 96, 160, 96, 128, 160, 96, 160, 96, 64, 37, 73, 160, 160, 96, 128, 64, 96, 96, 64, 96, 128, 96, 64, 37, 73, 73, 128, 128, 96, 96, 64, 128, 96, 96, 128, 96, 64, 96, 128, 96, 128, 96, 64, 128, 96, 96, 64, 37, 73, 73, 160, 96, 96, 64, 96, 96, 64, 128, 64, 96, 64, 128, 64, 96, 64, 128, 96, 64, 96, 128, 96, 128, 64, 37, 73, 96, 96, 96, 96, 64, 64, 64, 64, 64, 64, 64, 64, 37, 73, 73, 96, 96, 96, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 37, 73, 73, 128, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 37, 73, 73, 37, 37, 37, 37, 37, 37, 37, 37, 36, 36, 36, 37, 73, 73, 73, 37, 37, 37, 37, 37, 36, 36, 36, 36, 36, 37, 37, 36, 36, 36, 36, 37, 37, 37, 37, 37, 73, 73, 73, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 36, 36, 36, 36, 36, 37, 37, 37, 37, 37, 37, 37, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 109, 109, 109, 109, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 192, 192, 192, 192, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 73, 73, 73, 192, 192, 192, 192, 192, 192, 192, 192, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 73, 73, 73, 192, 192, 192, 192, 192, 192, 192, 192, 160, 128, 128, 160, 128, 96, 160, 96, 128, 128, 160, 96, 160, 128, 160, 64, 73, 73, 73, 192, 96, 160, 160, 96, 160, 96, 128, 160, 128, 128, 160, 128, 160, 128, 96, 128, 160, 128, 160, 128, 160, 96, 160, 96, 160, 128, 128, 160, 160, 128, 160, 160, 64, 73, 73, 73, 192, 160, 96, 160, 128, 160, 128, 160, 128, 160, 128, 160, 96, 128, 128, 96, 160, 128, 96, 128, 160, 160, 96, 64, 37, 73, 73, 192, 160, 96, 160, 96, 160, 160, 128, 160, 96, 160, 96, 96, 128, 160, 96, 160, 96, 160, 96, 160, 160, 128, 96, 160, 128, 160, 96, 128, 160, 96, 160, 96, 64, 73, 73, 73, 160, 160, 96, 160, 128, 96, 160, 128, 96, 160, 160, 128, 128, 96, 160, 96, 128, 128, 128, 96, 160, 128, 96, 64, 37, 73, 73, 192, 96, 160, 128, 128, 128, 128, 96, 128, 128, 96, 160, 128, 96, 160, 128, 96, 96, 96, 128, 128, 160, 64, 128, 96, 160, 96, 160, 96, 160, 160, 96, 96, 64, 37, 73, 73, 160, 96, 160, 160, 160, 96, 160, 96, 160, 128, 128, 160, 128, 96, 96, 128, 96, 160, 128, 96, 160, 96, 96, 64, 37, 73, 73, 192, 96, 160, 160, 96, 160, 96, 128, 160, 96, 96, 160, 96, 128, 160, 96, 128, 96, 160, 96, 160, 128, 64, 160, 96, 160, 96, 128, 96, 160, 96, 160, 96, 64, 37, 73, 73, 160, 160, 96, 160, 96, 160, 128, 96, 96, 160, 96, 160, 96, 128, 96, 128, 96, 160, 96, 128, 160, 160, 96, 64, 37, 73, 73, 192, 160, 64, 160, 96, 160, 128, 96, 128, 64, 128, 96, 96, 160, 128, 96, 64, 96, 160, 96, 128, 64, 128, 160, 96, 128, 160, 96, 128, 160, 96, 160, 96, 64, 36, 73, 73, 160, 96, 160, 160, 64, 160, 96, 128, 96, 160, 96, 96, 64, 96, 96, 128, 96, 128, 96, 64, 128, 96, 96, 64, 37, 73, 73, 160, 160, 96, 128, 64, 96, 128, 96, 128, 96, 96, 128, 64, 96, 128, 96, 128, 96, 128, 96, 128, 128, 64, 128, 96, 96, 128, 64, 96, 128, 96, 128, 96, 64, 36, 73, 73, 160, 160, 96, 96, 64, 96, 128, 96, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 73, 73, 73, 160, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 36, 73, 73, 160, 96, 64, 96, 64, 64, 96, 64, 37, 37, 37, 36, 37, 37, 37, 36, 36, 36, 37, 37, 37, 36, 36, 37, 73, 73, 73, 73, 73, 37, 37, 37, 37, 37, 37, 37, 37, 37, 73, 73, 37, 37, 37, 37, 36, 36, 36, 36, 36, 37, 37, 37, 36, 36, 36, 36, 37, 37, 37, 37, 37, 73, 73, 73, 73, 37, 37, 37, 37, 37, 37, 37, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 192, 192, 192, 192, 192, 192, 192, 192, 192, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 73, 73, 73, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 73, 73, 192, 128, 160, 160, 96, 160, 96, 160, 96, 160, 128, 160, 128, 160, 160, 128, 160, 128, 160, 128, 160, 160, 96, 160, 160, 96, 64, 73, 73, 73, 192, 160, 96, 192, 160, 160, 128, 160, 160, 128, 160, 128, 160, 96, 96, 160, 128, 96, 128, 160, 96, 128, 160, 128, 128, 160, 96, 128, 160, 64, 160, 64, 37, 73, 192, 160, 128, 160, 128, 160, 96, 96, 128, 160, 160, 128, 128, 128, 160, 128, 96, 160, 96, 160, 128, 96, 128, 160, 96, 160, 64, 37, 73, 109, 192, 160, 128, 160, 96, 160, 96, 128, 96, 128, 128, 96, 160, 96, 128, 160, 96, 160, 96, 160, 96, 160, 128, 160, 96, 160, 128, 96, 160, 96, 96, 64, 37, 73, 160, 96, 160, 160, 96, 128, 64, 160, 96, 160, 96, 160, 128, 128, 160, 96, 128, 160, 96, 128, 160, 128, 96, 96, 160, 96, 64, 37, 73, 109, 192, 160, 96, 160, 96, 160, 96, 160, 96, 128, 160, 96, 160, 96, 160, 128, 96, 160, 96, 96, 160, 128, 96, 128, 128, 160, 160, 96, 160, 64, 96, 64, 37, 73, 160, 160, 128, 160, 64, 160, 64, 96, 128, 160, 128, 96, 96, 160, 96, 128, 96, 96, 160, 96, 160, 128, 96, 160, 96, 64, 64, 37, 73, 109, 192, 96, 160, 96, 128, 128, 96, 128, 128, 96, 160, 96, 128, 96, 128, 160, 96, 128, 96, 128, 96, 160, 128, 160, 96, 160, 96, 128, 160, 96, 96, 64, 37, 73, 160, 96, 96, 160, 64, 128, 96, 160, 96, 160, 64, 160, 96, 160, 128, 96, 128, 160, 128, 96, 160, 96, 128, 96, 96, 160, 64, 37, 73, 73, 192, 160, 96, 160, 96, 160, 128, 160, 128, 96, 160, 96, 160, 64, 96, 96, 64, 160, 64, 160, 64, 160, 64, 160, 160, 128, 96, 64, 96, 128, 96, 64, 37, 73, 160, 160, 96, 96, 96, 96, 64, 96, 64, 96, 96, 128, 96, 128, 96, 96, 128, 96, 96, 96, 96, 128, 96, 128, 96, 96, 64, 37, 73, 73, 160, 160, 96, 128, 96, 128, 64, 96, 96, 96, 96, 96, 128, 96, 128, 64, 160, 64, 96, 160, 64, 96, 128, 64, 160, 64, 160, 64, 160, 96, 96, 64, 37, 73, 160, 128, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 37, 73, 73, 160, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 96, 64, 64, 37, 73, 73, 73, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 73, 73, 73, 37, 37, 37, 37, 37, 37, 73, 73, 73, 37, 37, 37, 37, 37, 37, 37, 37, 36, 36, 36, 36, 36, 37, 73, 73, 73, 37, 36, 36, 36, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 109, 109, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 73, 73, 73, 192, 192, 192, 192, 192, 192, 192, 192, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 73, 73, 73, 160, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 128, 160, 160, 160, 160, 160, 64, 73, 73, 73, 192, 160, 96, 160, 96, 160, 160, 96, 160, 128, 160, 160, 96, 160, 128, 96, 160, 160, 96, 160, 160, 96, 160, 96, 160, 64, 73, 73, 73, 192, 160, 96, 160, 96, 160, 160, 96, 160, 96, 128, 96, 160, 96, 160, 128, 160, 96, 160, 96, 160, 160, 96, 128, 160, 128, 160, 96, 160, 128, 96, 64, 37, 73, 73, 192, 96, 160, 96, 128, 160, 96, 160, 128, 96, 160, 128, 128, 96, 128, 128, 160, 128, 96, 160, 96, 128, 160, 96, 160, 64, 73, 73, 73, 192, 160, 64, 160, 96, 160, 128, 96, 160, 128, 160, 96, 128, 128, 128, 96, 128, 96, 128, 128, 96, 128, 96, 160, 128, 96, 160, 96, 128, 160, 96, 64, 37, 73, 73, 192, 96, 160, 160, 96, 128, 160, 96, 160, 96, 160, 128, 160, 64, 160, 64, 128, 128, 160, 128, 96, 128, 160, 96, 160, 64, 73, 73, 109, 192, 160, 96, 160, 96, 160, 128, 160, 128, 160, 160, 96, 160, 96, 128, 128, 160, 128, 96, 160, 96, 160, 128, 96, 160, 128, 160, 128, 96, 128, 96, 64, 73, 73, 73, 192, 128, 96, 160, 96, 160, 96, 64, 128, 128, 128, 128, 96, 128, 160, 96, 160, 128, 96, 128, 128, 96, 128, 160, 96, 64, 73, 73, 109, 192, 96, 160, 160, 96, 160, 96, 160, 160, 96, 96, 160, 96, 160, 128, 128, 128, 128, 96, 96, 128, 160, 128, 96, 160, 96, 160, 96, 128, 160, 96, 64, 73, 73, 73, 192, 96, 160, 96, 64, 128, 160, 96, 128, 128, 160, 128, 160, 96, 128, 64, 96, 128, 96, 160, 128, 96, 160, 96, 160, 64, 73, 73, 73, 160, 160, 96, 160, 160, 96, 160, 128, 128, 96, 160, 96, 160, 96, 128, 128, 160, 96, 128, 160, 96, 96, 96, 128, 128, 96, 96, 128, 96, 96, 96, 64, 73, 73, 73, 128, 96, 160, 160, 64, 160, 96, 96, 160, 96, 160, 96, 160, 64, 128, 96, 160, 128, 96, 128, 96, 128, 160, 96, 96, 64, 37, 73, 73, 160, 160, 64, 160, 96, 160, 160, 128, 160, 128, 160, 96, 160, 96, 128, 96, 128, 96, 160, 160, 96, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 37, 73, 73, 160, 96, 96, 96, 96, 96, 96, 96, 96, 96, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 37, 73, 73, 160, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 64, 64, 64, 64, 64, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 73, 73, 73, 37, 36, 36, 36, 36, 37, 37, 73, 73, 73, 37, 36, 36, 36, 36, 36, 37, 37, 37, 37, 37, 37, 37, 37, 37, 73, 73, 73, 73, 37, 37, 37, 37, 73, 73, 73, 73, 37, 37, 36, 36, 36, 37, 37, 37, 37, 37, 37, 37, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 109, 109, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 192, 192, 192, 192, 192, 192, 192, 192, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 73, 73, 73, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 73, 73, 192, 160, 128, 128, 160, 96, 160, 160, 96, 128, 160, 96, 160, 96, 128, 160, 96, 160, 96, 160, 128, 160, 96, 160, 96, 160, 160, 96, 96, 160, 64, 73, 73, 73, 192, 160, 160, 96, 160, 96, 160, 64, 160, 96, 160, 64, 160, 128, 64, 128, 128, 96, 160, 128, 96, 160, 96, 128, 96, 128, 160, 64, 37, 73, 192, 160, 96, 160, 128, 96, 160, 128, 128, 96, 160, 96, 128, 64, 160, 128, 96, 160, 64, 128, 128, 128, 96, 160, 96, 160, 96, 160, 96, 128, 64, 37, 73, 73, 192, 128, 160, 96, 128, 96, 96, 64, 128, 64, 128, 96, 160, 64, 160, 96, 160, 96, 128, 96, 160, 128, 96, 128, 160, 96, 128, 64, 37, 73, 192, 128, 96, 160, 96, 128, 96, 96, 160, 96, 160, 128, 96, 128, 160, 96, 128, 128, 128, 64, 96, 160, 64, 128, 64, 128, 96, 128, 128, 96, 64, 37, 73, 73, 192, 128, 160, 96, 96, 128, 160, 96, 64, 160, 96, 64, 128, 160, 64, 160, 96, 96, 160, 96, 160, 96, 160, 96, 128, 96, 160, 64, 37, 73, 192, 160, 128, 160, 128, 96, 160, 128, 96, 128, 160, 96, 160, 64, 128, 160, 96, 160, 64, 128, 160, 64, 128, 160, 96, 160, 160, 160, 96, 96, 64, 37, 73, 73, 192, 160, 96, 160, 128, 96, 160, 64, 160, 96, 128, 96, 96, 64, 128, 96, 160, 96, 128, 128, 128, 128, 96, 96, 160, 128, 160, 64, 37, 73, 192, 160, 96, 128, 160, 96, 160, 96, 160, 96, 160, 96, 160, 96, 160, 96, 96, 160, 64, 128, 96, 160, 96, 128, 96, 128, 96, 128, 96, 160, 64, 36, 73, 73, 192, 160, 96, 96, 160, 96, 96, 64, 160, 64, 160, 64, 128, 64, 160, 96, 128, 96, 160, 96, 96, 160, 96, 128, 128, 96, 96, 64, 37, 73, 160, 160, 96, 160, 96, 128, 96, 128, 128, 96, 160, 128, 128, 128, 160, 128, 96, 128, 96, 64, 96, 160, 64, 160, 96, 128, 96, 160, 96, 160, 64, 36, 73, 73, 160, 96, 160, 96, 128, 96, 160, 64, 96, 160, 96, 64, 128, 96, 128, 96, 160, 96, 160, 96, 160, 96, 128, 96, 160, 96, 160, 64, 37, 73, 160, 96, 96, 96, 96, 96, 96, 96, 96, 96, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 37, 73, 73, 160, 96, 96, 96, 96, 96, 96, 96, 96, 96, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 37, 73, 73, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 73, 73, 73, 37, 36, 36, 36, 36, 37, 37, 37, 36, 36, 36, 36, 37, 37, 36, 36, 37, 37, 73, 73, 73, 37, 37, 37, 37, 37, 37, 36, 36, 36, 37, 37, 73, 37, 37, 36, 37, 37, 37, 37, 36, 36, 36, 37, 37, 37, 37, 37, 37, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 109, 109, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 37, 36, 36, 37, 73, 73, 73, 73, 73, 192, 192, 192, 192, 192, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 73, 73, 73, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 73, 73, 73, 192, 192, 192, 192, 192, 192, 160, 160, 160, 160, 160, 160, 160, 160, 96, 160, 64, 160, 160, 96, 128, 96, 160, 96, 160, 96, 160, 96, 160, 96, 160, 64, 37, 73, 73, 192, 160, 160, 160, 160, 96, 160, 64, 160, 96, 160, 96, 160, 96, 160, 128, 160, 96, 160, 96, 160, 64, 160, 96, 96, 64, 73, 73, 73, 192, 160, 96, 128, 160, 64, 160, 96, 160, 96, 160, 96, 160, 96, 160, 96, 96, 160, 96, 160, 96, 128, 96, 96, 160, 64, 96, 96, 128, 96, 128, 64, 37, 73, 73, 192, 96, 160, 96, 160, 96, 96, 64, 96, 128, 96, 160, 128, 96, 128, 128, 96, 96, 128, 96, 128, 64, 160, 96, 160, 64, 37, 73, 73, 192, 96, 160, 64, 160, 96, 160, 96, 128, 160, 96, 160, 128, 64, 160, 96, 64, 96, 160, 96, 128, 96, 96, 160, 96, 64, 160, 128, 96, 128, 96, 64, 37, 73, 73, 192, 96, 96, 96, 160, 96, 96, 96, 160, 64, 160, 64, 160, 160, 96, 160, 96, 160, 96, 128, 64, 128, 128, 96, 96, 64, 37, 73, 73, 192, 96, 160, 96, 96, 160, 160, 128, 96, 128, 96, 96, 96, 128, 96, 128, 64, 128, 96, 96, 160, 96, 160, 96, 160, 64, 96, 96, 96, 160, 96, 64, 37, 73, 73, 192, 160, 64, 96, 160, 96, 160, 64, 160, 96, 128, 96, 160, 96, 128, 96, 96, 160, 96, 160, 128, 64, 96, 128, 96, 64, 37, 73, 73, 192, 160, 96, 64, 160, 128, 96, 96, 160, 96, 160, 96, 96, 160, 96, 160, 96, 160, 96, 160, 96, 128, 160, 96, 160, 96, 64, 128, 160, 96, 128, 64, 37, 73, 73, 192, 64, 160, 160, 96, 160, 96, 96, 128, 64, 96, 64, 160, 96, 160, 96, 96, 96, 96, 128, 96, 64, 128, 96, 96, 64, 37, 73, 73, 192, 96, 160, 128, 160, 96, 160, 128, 96, 96, 64, 160, 96, 160, 96, 160, 96, 96, 96, 128, 128, 96, 128, 96, 96, 64, 160, 96, 160, 96, 128, 64, 37, 73, 73, 192, 64, 160, 96, 160, 96, 96, 96, 128, 64, 128, 96, 128, 64, 160, 96, 96, 160, 128, 96, 160, 64, 160, 64, 128, 64, 37, 73, 73, 192, 96, 160, 64, 96, 64, 160, 96, 160, 96, 64, 96, 160, 64, 96, 128, 64, 160, 96, 96, 128, 96, 96, 96, 160, 64, 160, 96, 96, 128, 96, 64, 37, 73, 73, 160, 160, 64, 96, 160, 96, 160, 64, 128, 96, 160, 96, 160, 96, 96, 160, 96, 96, 160, 96, 128, 96, 128, 96, 128, 64, 37, 73, 73, 160, 96, 96, 64, 160, 64, 160, 96, 160, 96, 160, 96, 160, 96, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 37, 73, 73, 160, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 36, 73, 73, 160, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 73, 73, 73, 73, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 36, 36, 36, 36, 36, 37, 36, 36, 36, 73, 73, 73, 37, 37, 37, 37, 37, 37, 36, 36, 36, 36, 36, 37, 37, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, }, // purplestone { 97, 97, 97, 65, 65, 65, 65, 65, 65, 97, 130, 65, 97, 65, 65, 65, 65, 65, 65, 65, 97, 97, 97, 97, 97, 97, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 97, 130, 130, 97, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 104, 130, 130, 97, 65, 65, 65, 65, 97, 130, 97, 97, 65, 65, 65, 65, 65, 65, 65, 97, 130, 130, 104, 104, 104, 104, 97, 65, 65, 65, 65, 65, 65, 65, 65, 65, 97, 130, 130, 130, 130, 97, 130, 97, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 97, 130, 130, 104, 104, 104, 104, 104, 104, 104, 130, 130, 130, 97, 65, 65, 97, 97, 65, 97, 97, 97, 65, 65, 65, 65, 65, 130, 130, 104, 104, 104, 104, 104, 104, 65, 65, 65, 65, 65, 65, 65, 65, 65, 97, 130, 130, 130, 97, 130, 97, 97, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 97, 130, 130, 104, 104, 104, 104, 104, 104, 104, 104, 104, 130, 97, 65, 65, 65, 65, 65, 97, 97, 65, 65, 65, 65, 65, 65, 65, 130, 130, 104, 104, 130, 97, 97, 104, 97, 65, 65, 65, 65, 65, 65, 65, 65, 97, 130, 97, 130, 97, 97, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 97, 130, 104, 104, 104, 104, 72, 72, 65, 130, 104, 72, 97, 130, 97, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 97, 130, 130, 97, 65, 97, 130, 104, 97, 65, 65, 104, 104, 104, 130, 97, 65, 65, 97, 130, 97, 65, 65, 104, 104, 104, 104, 104, 104, 72, 72, 72, 72, 65, 65, 65, 97, 130, 104, 104, 104, 68, 65, 72, 97, 130, 104, 72, 130, 130, 97, 97, 65, 97, 97, 130, 130, 130, 130, 130, 97, 97, 65, 65, 65, 97, 130, 97, 130, 130, 97, 72, 65, 65, 104, 104, 104, 104, 104, 130, 97, 65, 65, 97, 72, 72, 104, 104, 104, 104, 104, 104, 104, 104, 104, 72, 104, 72, 65, 65, 97, 130, 97, 104, 104, 68, 97, 72, 130, 97, 130, 104, 97, 130, 97, 130, 97, 130, 130, 130, 130, 104, 97, 97, 130, 130, 97, 97, 65, 65, 97, 65, 130, 97, 97, 68, 65, 104, 104, 104, 72, 72, 104, 130, 97, 65, 68, 72, 104, 104, 104, 104, 104, 104, 104, 72, 72, 68, 72, 68, 68, 104, 72, 65, 65, 97, 130, 104, 104, 68, 130, 72, 97, 130, 130, 104, 130, 97, 97, 97, 130, 104, 104, 130, 104, 104, 97, 65, 97, 97, 97, 130, 97, 65, 65, 65, 65, 97, 65, 72, 65, 104, 104, 72, 65, 65, 72, 97, 65, 68, 72, 104, 104, 104, 104, 104, 104, 104, 72, 72, 72, 65, 72, 65, 65, 104, 68, 72, 65, 65, 130, 104, 104, 68, 130, 72, 65, 97, 130, 104, 97, 65, 97, 130, 104, 104, 104, 104, 104, 72, 97, 65, 65, 65, 65, 97, 97, 65, 97, 65, 65, 97, 97, 104, 97, 104, 104, 65, 130, 97, 72, 130, 97, 68, 104, 104, 104, 137, 137, 104, 104, 104, 72, 65, 72, 65, 72, 97, 97, 72, 65, 72, 65, 65, 97, 104, 72, 68, 97, 72, 65, 65, 97, 104, 65, 97, 130, 130, 104, 104, 104, 104, 104, 72, 97, 65, 65, 97, 65, 65, 65, 65, 65, 97, 97, 97, 97, 72, 65, 104, 104, 97, 130, 130, 68, 97, 68, 104, 72, 72, 137, 137, 104, 104, 104, 104, 68, 65, 68, 65, 72, 130, 130, 72, 97, 72, 65, 65, 65, 104, 72, 68, 130, 72, 65, 65, 65, 68, 97, 97, 130, 130, 104, 104, 104, 104, 72, 72, 97, 65, 97, 97, 104, 104, 104, 72, 72, 65, 65, 65, 97, 72, 65, 72, 65, 130, 97, 97, 68, 65, 68, 72, 104, 97, 137, 104, 104, 104, 104, 72, 68, 65, 65, 65, 130, 130, 72, 72, 97, 72, 68, 65, 65, 65, 72, 68, 97, 65, 65, 65, 65, 68, 97, 130, 130, 130, 104, 104, 104, 72, 72, 72, 97, 65, 97, 104, 104, 104, 104, 104, 104, 97, 65, 65, 65, 65, 65, 72, 97, 130, 65, 97, 68, 65, 68, 72, 72, 97, 137, 104, 104, 104, 72, 72, 72, 68, 130, 65, 130, 72, 72, 72, 72, 72, 68, 97, 65, 65, 72, 68, 65, 65, 65, 65, 65, 68, 97, 130, 130, 130, 97, 104, 72, 68, 97, 68, 65, 97, 65, 104, 104, 104, 97, 104, 104, 130, 97, 65, 65, 65, 65, 68, 65, 65, 65, 65, 65, 65, 65, 72, 72, 130, 104, 104, 104, 72, 65, 97, 72, 72, 68, 130, 130, 72, 72, 72, 72, 72, 68, 97, 97, 65, 72, 68, 65, 65, 65, 65, 65, 68, 97, 130, 130, 104, 104, 104, 104, 68, 65, 68, 65, 65, 104, 104, 104, 97, 97, 130, 104, 130, 97, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 72, 72, 130, 104, 104, 72, 65, 97, 130, 97, 72, 68, 104, 104, 72, 68, 68, 130, 72, 68, 97, 130, 65, 65, 65, 65, 65, 65, 65, 65, 65, 97, 130, 104, 104, 104, 97, 97, 97, 97, 68, 65, 65, 104, 104, 104, 65, 130, 97, 104, 130, 97, 65, 65, 65, 65, 65, 65, 97, 130, 130, 97, 65, 65, 72, 72, 130, 104, 65, 72, 97, 130, 130, 130, 104, 104, 104, 72, 68, 97, 97, 97, 72, 68, 97, 130, 97, 65, 65, 65, 65, 65, 65, 65, 65, 97, 130, 104, 104, 97, 130, 130, 130, 130, 68, 65, 65, 104, 104, 104, 65, 130, 65, 72, 97, 65, 65, 65, 72, 72, 72, 65, 97, 97, 97, 97, 65, 65, 72, 65, 130, 104, 130, 72, 65, 72, 72, 104, 104, 104, 72, 68, 97, 130, 97, 65, 97, 72, 68, 97, 97, 65, 65, 65, 65, 65, 65, 65, 65, 97, 130, 104, 97, 130, 130, 130, 97, 97, 68, 65, 65, 104, 130, 72, 65, 97, 65, 72, 65, 65, 65, 104, 104, 104, 104, 104, 72, 65, 97, 65, 65, 65, 72, 65, 130, 104, 130, 72, 72, 104, 104, 104, 104, 104, 104, 72, 68, 97, 97, 65, 130, 72, 72, 68, 97, 65, 65, 65, 65, 65, 65, 65, 65, 97, 97, 104, 97, 130, 130, 65, 65, 65, 68, 65, 65, 104, 130, 72, 65, 97, 65, 68, 65, 65, 104, 137, 137, 137, 137, 104, 104, 65, 65, 97, 65, 65, 68, 97, 130, 65, 130, 72, 104, 104, 104, 104, 72, 72, 72, 72, 68, 97, 130, 97, 97, 97, 72, 68, 68, 65, 65, 65, 65, 65, 65, 65, 65, 97, 97, 104, 97, 130, 65, 97, 130, 65, 68, 65, 65, 130, 130, 97, 130, 97, 65, 65, 65, 130, 137, 104, 104, 104, 104, 104, 104, 72, 65, 65, 65, 65, 68, 97, 97, 65, 65, 72, 104, 104, 72, 72, 68, 72, 68, 72, 68, 97, 97, 65, 65, 130, 97, 68, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 97, 97, 130, 97, 65, 130, 97, 65, 68, 65, 65, 97, 130, 130, 97, 65, 65, 65, 65, 130, 104, 97, 162, 130, 130, 130, 104, 72, 72, 68, 65, 65, 68, 97, 130, 65, 72, 72, 104, 72, 72, 68, 65, 72, 65, 72, 68, 97, 65, 97, 65, 130, 97, 68, 65, 65, 65, 65, 65, 97, 97, 97, 97, 65, 65, 97, 130, 65, 65, 97, 97, 130, 97, 65, 97, 130, 97, 97, 65, 65, 65, 65, 130, 104, 162, 162, 130, 130, 130, 72, 130, 72, 72, 72, 65, 65, 68, 97, 97, 65, 65, 72, 104, 72, 68, 65, 97, 65, 97, 72, 68, 97, 65, 97, 65, 97, 97, 72, 65, 65, 97, 97, 97, 97, 104, 130, 130, 97, 65, 97, 97, 65, 97, 65, 65, 97, 130, 97, 65, 65, 65, 65, 65, 65, 97, 130, 104, 104, 130, 130, 130, 104, 72, 72, 68, 72, 68, 68, 68, 65, 72, 97, 65, 65, 65, 72, 130, 72, 68, 97, 97, 65, 65, 68, 65, 65, 97, 65, 65, 97, 65, 72, 65, 97, 130, 104, 104, 104, 104, 104, 104, 130, 97, 65, 65, 65, 65, 97, 130, 65, 65, 65, 65, 65, 65, 65, 97, 97, 130, 104, 104, 104, 104, 104, 104, 104, 68, 65, 97, 68, 65, 68, 68, 72, 72, 72, 65, 65, 97, 72, 130, 72, 68, 65, 65, 65, 97, 97, 65, 97, 65, 65, 65, 65, 72, 72, 130, 130, 104, 104, 104, 104, 104, 104, 104, 72, 97, 65, 65, 97, 130, 130, 130, 97, 65, 65, 65, 104, 104, 68, 65, 97, 130, 104, 104, 97, 130, 104, 72, 72, 65, 97, 130, 65, 68, 68, 72, 104, 104, 104, 65, 65, 97, 97, 130, 68, 97, 65, 65, 65, 65, 130, 97, 65, 65, 65, 65, 65, 72, 104, 104, 104, 104, 104, 104, 104, 104, 72, 72, 72, 97, 130, 97, 97, 130, 130, 130, 97, 65, 65, 72, 104, 72, 72, 65, 97, 130, 104, 104, 97, 130, 104, 72, 68, 65, 130, 65, 68, 68, 72, 72, 72, 72, 72, 72, 97, 97, 97, 130, 68, 130, 97, 97, 130, 130, 97, 130, 97, 65, 65, 65, 65, 104, 104, 104, 104, 130, 130, 130, 104, 65, 65, 72, 68, 68, 97, 97, 130, 130, 130, 97, 65, 65, 65, 104, 97, 65, 72, 65, 97, 130, 104, 104, 104, 104, 72, 68, 68, 97, 130, 72, 72, 72, 68, 68, 72, 72, 72, 72, 72, 68, 130, 97, 97, 97, 130, 130, 97, 97, 65, 97, 65, 65, 65, 65, 97, 104, 104, 104, 130, 130, 97, 97, 97, 65, 65, 65, 72, 72, 97, 65, 97, 97, 97, 65, 72, 104, 104, 104, 65, 97, 68, 68, 97, 130, 104, 104, 97, 65, 65, 97, 97, 130, 130, 72, 72, 68, 72, 65, 65, 97, 72, 72, 72, 68, 68, 97, 130, 97, 97, 130, 97, 65, 65, 65, 65, 65, 65, 97, 130, 104, 104, 130, 130, 130, 65, 97, 65, 130, 130, 130, 72, 72, 65, 130, 97, 65, 65, 72, 72, 72, 104, 65, 65, 65, 68, 65, 97, 130, 130, 104, 97, 65, 97, 104, 104, 104, 72, 68, 68, 72, 72, 72, 130, 130, 72, 97, 72, 72, 68, 68, 97, 65, 65, 97, 65, 65, 65, 65, 65, 65, 65, 130, 104, 104, 104, 104, 104, 104, 104, 65, 65, 65, 97, 97, 104, 104, 65, 97, 65, 65, 65, 72, 97, 97, 104, 97, 97, 130, 97, 65, 65, 97, 130, 104, 130, 130, 130, 130, 130, 130, 72, 68, 97, 97, 72, 72, 130, 130, 72, 97, 72, 72, 72, 68, 65, 65, 65, 65, 65, 104, 104, 104, 65, 65, 97, 130, 104, 104, 104, 104, 104, 104, 104, 104, 97, 65, 97, 130, 104, 104, 130, 65, 65, 65, 65, 65, 65, 97, 72, 130, 130, 97, 65, 65, 65, 65, 130, 130, 130, 130, 130, 130, 130, 130, 72, 68, 65, 130, 130, 68, 65, 97, 72, 97, 72, 72, 72, 68, 65, 65, 65, 65, 104, 104, 104, 65, 65, 97, 130, 130, 104, 104, 130, 162, 162, 104, 104, 104, 130, 97, 130, 97, 104, 104, 97, 65, 97, 65, 65, 65, 97, 97, 68, 72, 72, 72, 68, 65, 65, 65, 130, 130, 130, 130, 130, 130, 97, 104, 72, 68, 97, 130, 130, 68, 65, 65, 72, 65, 72, 72, 72, 68, 97, 65, 72, 65, 104, 104, 130, 130, 130, 130, 130, 130, 104, 130, 162, 130, 130, 130, 130, 104, 104, 97, 130, 97, 72, 72, 130, 97, 130, 97, 65, 97, 130, 130, 130, 130, 130, 97, 72, 68, 68, 97, 130, 130, 130, 104, 104, 104, 72, 68, 72, 97, 130, 97, 97, 68, 65, 97, 97, 97, 72, 72, 72, 68, 97, 65, 65, 65, 104, 130, 130, 130, 97, 97, 130, 130, 104, 130, 162, 97, 97, 130, 130, 104, 104, 65, 130, 97, 72, 72, 130, 65, 97, 65, 65, 130, 162, 162, 130, 104, 104, 104, 130, 72, 65, 130, 130, 130, 104, 104, 104, 72, 72, 72, 97, 130, 130, 97, 130, 65, 97, 130, 130, 130, 72, 72, 72, 68, 97, 65, 65, 65, 72, 97, 130, 130, 97, 65, 130, 130, 104, 130, 130, 97, 65, 130, 130, 72, 72, 65, 97, 130, 72, 72, 97, 97, 97, 65, 97, 130, 162, 130, 104, 104, 104, 104, 104, 97, 65, 130, 130, 130, 104, 104, 68, 65, 72, 72, 72, 130, 130, 65, 97, 97, 97, 130, 130, 130, 72, 72, 72, 68, 97, 65, 65, 65, 72, 97, 97, 97, 65, 97, 130, 130, 104, 130, 130, 97, 65, 97, 72, 72, 72, 65, 97, 130, 104, 104, 97, 130, 130, 65, 130, 130, 130, 104, 104, 72, 72, 97, 72, 130, 65, 130, 130, 97, 104, 72, 65, 65, 65, 72, 72, 130, 97, 65, 65, 97, 130, 130, 97, 65, 72, 68, 72, 68, 97, 65, 65, 65, 72, 65, 65, 97, 65, 65, 97, 130, 104, 97, 130, 97, 65, 97, 72, 72, 72, 130, 65, 130, 104, 72, 97, 130, 97, 65, 130, 130, 130, 97, 104, 72, 72, 130, 72, 97, 65, 130, 130, 65, 72, 65, 65, 97, 65, 72, 68, 97, 65, 65, 65, 97, 130, 130, 97, 65, 72, 68, 65, 97, 65, 65, 65, 65, 72, 65, 65, 65, 65, 65, 65, 97, 104, 97, 130, 97, 65, 65, 65, 72, 72, 65, 65, 130, 72, 72, 97, 97, 65, 65, 97, 130, 130, 97, 72, 72, 72, 97, 72, 65, 65, 97, 130, 97, 72, 65, 97, 97, 65, 68, 68, 65, 65, 65, 65, 65, 97, 130, 65, 65, 72, 68, 65, 97, 65, 65, 65, 65, 72, 65, 65, 65, 65, 65, 65, 65, 72, 65, 97, 97, 97, 65, 65, 104, 104, 65, 65, 97, 72, 97, 65, 65, 65, 65, 97, 130, 130, 130, 72, 72, 72, 65, 72, 65, 65, 65, 97, 97, 104, 65, 65, 65, 65, 68, 68, 65, 65, 97, 65, 65, 130, 65, 65, 97, 97, 68, 97, 130, 97, 97, 97, 97, 72, 65, 65, 65, 65, 65, 65, 65, 72, 65, 65, 97, 97, 97, 97, 104, 104, 65, 65, 130, 97, 65, 65, 65, 65, 65, 65, 97, 97, 130, 97, 72, 65, 65, 72, 65, 65, 65, 65, 65, 72, 65, 97, 65, 65, 68, 68, 65, 65, 65, 65, 65, 65, 97, 97, 65, 97, 68, 65, 97, 97, 130, 130, 130, 72, 65, 65, 97, 97, 97, 97, 65, 72, 65, 65, 65, 65, 65, 65, 104, 104, 65, 65, 97, 65, 65, 65, 65, 65, 65, 65, 65, 97, 97, 65, 72, 65, 65, 65, 65, 65, 65, 65, 65, 68, 65, 65, 65, 130, 97, 68, 65, 65, 65, 65, 65, 97, 130, 130, 65, 97, 65, 68, 65, 97, 130, 130, 97, 72, 65, 97, 130, 130, 130, 130, 97, 65, 65, 65, 65, 65, 65, 65, 104, 104, 65, 65, 65, 97, 97, 97, 97, 65, 97, 65, 65, 65, 97, 130, 130, 130, 130, 97, 65, 65, 65, 65, 65, 68, 65, 65, 65, 97, 65, 68, 65, 65, 65, 65, 97, 130, 130, 97, 65, 65, 65, 68, 65, 130, 97, 65, 65, 72, 72, 104, 104, 130, 130, 130, 130, 97, 97, 65, 65, 65, 65, 65, 72, 72, 65, 65, 97, 130, 104, 104, 130, 97, 130, 97, 65, 97, 130, 130, 130, 130, 130, 130, 130, 65, 97, 65, 65, 68, 65, 65, 65, 65, 65, 68, 65, 65, 65, 65, 97, 130, 97, 65, 65, 97, 65, 65, 65, 65, 65, 130, 72, 104, 104, 104, 104, 104, 104, 130, 97, 97, 130, 97, 65, 65, 65, 65, 72, 72, 65, 65, 97, 104, 104, 104, 72, 97, 97, 65, 97, 97, 130, 130, 104, 104, 72, 72, 97, 97, 130, 97, 65, 68, 65, 65, 65, 65, 65, 68, 65, 65, 97, 97, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 97, 130, 104, 104, 104, 72, 65, 72, 97, 130, 97, 130, 130, 97, 65, 65, 65, 68, 68, 65, 65, 130, 104, 97, 97, 72, 65, 65, 97, 130, 130, 130, 104, 104, 104, 72, 72, 65, 65, 97, 65, 65, 68, 65, 65, 65, 65, 65, 72, 65, 65, 65, 65, 65, 97, 65, 65, 65, 65, 65, 65, 65, 65, 97, 130, 130, 104, 104, 72, 72, 65, 72, 97, 130, 130, 130, 97, 130, 97, 65, 65, 68, 68, 65, 65, 130, 72, 97, 130, 72, 130, 97, 130, 130, 104, 104, 104, 104, 104, 72, 72, 65, 65, 65, 65, 65, 72, 65, 72, 72, 72, 72, 104, 130, 130, 65, 65, 65, 97, 97, 97, 65, 65, 65, 65, 65, 65, 97, 130, 130, 72, 130, 72, 65, 65, 65, 65, 97, 130, 97, 65, 97, 65, 97, 65, 68, 65, 65, 65, 97, 72, 97, 65, 72, 97, 97, 130, 130, 104, 130, 104, 65, 65, 72, 68, 65, 97, 65, 65, 65, 72, 72, 104, 104, 104, 104, 104, 130, 130, 130, 65, 65, 97, 130, 130, 97, 97, 65, 65, 65, 97, 130, 104, 130, 72, 130, 72, 65, 65, 65, 97, 130, 130, 97, 65, 65, 97, 130, 97, 68, 65, 65, 65, 65, 72, 97, 130, 130, 97, 130, 130, 97, 72, 65, 130, 65, 65, 65, 68, 97, 130, 97, 65, 65, 72, 104, 137, 104, 104, 104, 104, 130, 162, 130, 104, 72, 97, 130, 130, 97, 130, 97, 65, 97, 130, 104, 104, 130, 72, 97, 65, 65, 65, 65, 72, 104, 130, 130, 97, 97, 97, 130, 97, 68, 65, 65, 65, 65, 72, 97, 130, 130, 97, 130, 130, 97, 65, 130, 65, 65, 97, 130, 130, 68, 130, 97, 65, 65, 104, 137, 104, 104, 104, 104, 104, 97, 130, 130, 104, 104, 72, 130, 97, 130, 97, 97, 65, 97, 104, 104, 104, 130, 72, 97, 65, 65, 72, 72, 104, 104, 104, 130, 97, 130, 97, 97, 97, 65, 65, 65, 65, 65, 68, 97, 97, 97, 65, 97, 130, 97, 65, 65, 65, 97, 97, 130, 97, 68, 97, 65, 65, 65, 104, 104, 104, 104, 104, 104, 104, 104, 130, 130, 130, 104, 104, 97, 130, 97, 130, 97, 97, 104, 104, 104, 104, 104, 104, 65, 72, 72, 104, 104, 104, 104, 104, 97, 97, 130, 97, 97, 130, 97, 68, 65, 65, 65, 68, 65, 65, 65, 65, 65, 97, 65, 65, 65, 97, 65, 97, 97, 68, 97, 130, 97, 65, 104, 104, 104, 72, 104, 72, 104, 104, 104, 104, 130, 130, 130, 104, 72, 97, 97, 97, 97, 130, 104, 104, 104, 104, 104, 104, 104, 130, 130, 104, 104, 104, 104, 72, 65, 65, 97, 97, 97, 130, 97, 68, 65, 65, 65, 68, 65, 65, 65, 65, 65, 65, 97, 97, 65, 65, 65, 65, 65, 68, 65, 97, 65, 65, 130, 104, 72, 104, 104, 72, 72, 104, 104, 104, 97, 130, 130, 104, 72, 65, 65, 65, 97, 104, 104, 104, 104, 65, 65, 65, 65, 97, 97, 104, 72, 65, 104, 72, 65, 97, 130, 130, 97, 130, 97, 68, 65, 65, 65, 68, 65, 65, 65, 65, 65, 65, 65, 65, 65, 97, 97, 65, 65, 68, 65, 65, 72, 104, 104, 104, 104, 104, 72, 104, 72, 72, 72, 72, 104, 104, 130, 104, 72, 65, 65, 65, 65, 104, 104, 97, 72, 65, 65, 65, 97, 130, 130, 104, 72, 97, 104, 72, 97, 130, 130, 97, 65, 97, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 68, 68, 72, 104, 72, 72, 72, 104, 72, 104, 104, 72, 72, 72, 72, 72, 104, 104, 104, 104, 72, 65, 65, 65, 72, 130, 97, 72, 65, 72, 104, 104, 72, 68, 104, 130, 130, 97, 72, 130, 130, 72, 104, 72, 65, 65, 68, 65, 65, 65, 68, 65, 65, 65, 65, 97, 97, 130, 130, 130, 130, 130, 97, 65, 68, 72, 104, 72, 72, 68, 68, 72, 72, 104, 72, 72, 65, 65, 65, 97, 97, 72, 72, 104, 104, 72, 68, 65, 72, 97, 130, 72, 97, 104, 72, 72, 72, 68, 104, 130, 97, 97, 72, 97, 72, 104, 104, 104, 72, 65, 68, 65, 65, 65, 65, 65, 65, 97, 130, 130, 130, 104, 104, 104, 104, 104, 130, 97, 65, 72, 104, 72, 68, 65, 68, 68, 65, 72, 72, 68, 65, 130, 97, 97, 65, 72, 72, 72, 72, 72, 72, 65, 68, 65, 97, 72, 130, 97, 72, 65, 72, 68, 104, 97, 65, 65, 68, 130, 97, 97, 72, 72, 72, 65, 65, 65, 65, 65, 65, 65, 97, 130, 130, 130, 104, 104, 72, 72, 72, 72, 104, 130, 65, 72, 104, 68, 65, 65, 68, 68, 65, 72, 72, 68, 97, 130, 130, 130, 130, 68, 68, 68, 68, 72, 72, 65, 68, 65, 65, 68, 130, 97, 72, 65, 68, 68, 65, 65, 97, 65, 68, 97, 65, 97, 72, 72, 72, 65, 65, 65, 65, 65, 65, 65, 97, 130, 130, 130, 104, 65, 97, 97, 97, 72, 72, 97, 65, 72, 104, 68, 65, 65, 65, 68, 65, 65, 65, 68, 65, 97, 130, 130, 130, 68, 68, 68, 65, 72, 68, 65, 65, 65, 65, 68, 97, 97, 68, 65, 72, 72, 65, 65, 130, 65, 68, 65, 65, 65, 72, 72, 72, 65, 65, 65, 65, 65, 65, 65, 97, 130, 130, 65, 72, 97, 130, 97, 130, 97, 72, 97, 65, 68, 130, 130, 65, 65, 130, 68, 65, 130, 65, 68, 65, 97, 130, 97, 97, 68, 68, 65, 65, 68, 68, 65, 65, 65, 65, 68, 65, 65, 68, 65, 72, 72, 68, 65, 65, 65, 68, 65, 97, 65, 65, 104, 72, 72, 65, 65, 65, 65, 65, 65, 97, 130, 72, 72, 68, 72, 72, 130, 97, 130, 72, 97, 97, 68, 65, 130, 130, 65, 65, 68, 65, 65, 65, 68, 97, 65, 97, 65, 65, 65, 68, 65, 97, 68, 68, 65, 97, 65, 65, 68, 65, 65, 65, 65, 104, 97, 104, 68, 65, 65, 68, 97, 65, 65, 104, 137, 104, 104, 72, 65, 65, 65, 65, 72, 104, 104, 104, 97, 130, 97, 97, 97, 97, 97, 72, 97, 130, 68, 65, 65, 65, 65, 65, 68, 68, 68, 68, 68, 97, 97, 65, 65, 65, 65, 68, 97, 65, 68, 68, 65, 65, 65, 65, 68, 97, 97, 65, 130, 72, 130, 97, 68, 68, 65, 68, 65, 65, 104, 137, 104, 104, 104, 130, 68, 65, 65, 97, 104, 104, 104, 104, 104, 97, 97, 130, 130, 68, 68, 68, 68, 68, 68, 65, 65, 130, 65, 68, 72, 72, 72, 72, 72, 72, 68, 68, 68, 68, 68, 68, 68, 65, 68, 68, 65, 97, 65, 97, 130, 130, 130, 97, 65, 68, 68, 68, 68, 68, 68, 68, 68, 68, 104, 137, 104, 97, 68, 68, 68, 68, 68, 130, 104, 65, 97, 130, 72, 130, 65, 97, 68, 72, 72, 72, 72, 72, 72, 72, 72, 68, 68, 68, 104, 130, 104, 104, 104, 104, 72, 72, 72, 72, 72, 72, 68, 68, 68, 68, 97, 130, 97, 97, 130, 130, 130, 72, 72, 72, 72, 72, 72, 72, 104, 104, 104, 104, 137, 104, 72, 130, 97, 68, 68, 68, 68, 68, 104, 97, 130, 65, 72, 68, 68, 68, 72, 104, 104, 104, 104, 104, 104, 104, 72, 72, 72, 72, 72, 104, 104, 104, 137, 104, 104, 104, 104, 104, 104, 104, 104, 72, 72, 72, 72, 72, 72, 68, 68, 68, 68, 72, 72, 72, 72, 104, 104, 104, 104, 104, 104, 104, 104, 72, 68, 68, 68, 68, 109, 73, 73, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 73, 73, 109, 109, 73, 73, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 73, 73, 73, 73, 73, 73, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 73, 73, 109, }, // greystone { 36, 73, 36, 73, 36, 73, 36, 73, 36, 73, 36, 73, 36, 73, 36, 73, 36, 73, 36, 73, 36, 73, 36, 73, 36, 73, 36, 73, 36, 73, 36, 73, 36, 73, 36, 73, 36, 73, 36, 73, 36, 73, 36, 73, 36, 73, 36, 73, 36, 73, 36, 73, 36, 73, 36, 73, 36, 73, 36, 73, 36, 73, 36, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 218, 219, 219, 219, 218, 219, 218, 219, 219, 219, 218, 219, 218, 219, 219, 219, 36, 73, 146, 182, 182, 218, 182, 218, 218, 182, 218, 182, 182, 182, 146, 73, 36, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 219, 218, 182, 218, 182, 218, 218, 218, 182, 218, 218, 182, 218, 218, 182, 146, 36, 73, 146, 182, 182, 146, 182, 146, 146, 146, 146, 146, 146, 182, 73, 73, 36, 73, 109, 146, 146, 146, 146, 146, 146, 109, 109, 109, 73, 73, 73, 73, 73, 73, 73, 73, 73, 146, 146, 146, 146, 146, 146, 146, 146, 36, 73, 73, 219, 182, 182, 182, 218, 182, 182, 182, 182, 182, 182, 182, 182, 218, 146, 109, 36, 73, 182, 218, 182, 146, 182, 146, 182, 146, 182, 146, 182, 146, 73, 73, 36, 73, 146, 218, 219, 219, 219, 218, 219, 182, 182, 182, 146, 146, 146, 146, 146, 146, 146, 146, 146, 218, 218, 218, 218, 182, 182, 146, 146, 36, 73, 73, 219, 218, 182, 182, 146, 182, 146, 182, 182, 182, 182, 146, 182, 182, 109, 73, 36, 73, 146, 182, 146, 146, 146, 182, 182, 182, 182, 146, 146, 109, 73, 73, 36, 73, 146, 219, 219, 182, 182, 182, 218, 219, 219, 219, 218, 219, 218, 182, 218, 218, 218, 182, 218, 182, 182, 182, 182, 146, 182, 109, 109, 36, 73, 73, 255, 182, 146, 182, 182, 182, 182, 146, 182, 146, 182, 146, 182, 182, 109, 73, 36, 73, 73, 182, 146, 182, 182, 146, 146, 146, 146, 182, 109, 73, 73, 73, 36, 73, 146, 218, 182, 182, 146, 182, 146, 182, 182, 146, 146, 146, 182, 146, 182, 146, 182, 146, 146, 182, 146, 146, 146, 182, 146, 109, 109, 36, 73, 73, 255, 218, 182, 146, 182, 146, 182, 146, 146, 146, 146, 146, 146, 182, 146, 73, 36, 73, 73, 109, 146, 146, 182, 146, 182, 182, 146, 182, 109, 73, 73, 73, 36, 73, 146, 219, 182, 146, 182, 146, 146, 146, 146, 146, 182, 146, 146, 146, 146, 182, 146, 146, 146, 182, 182, 146, 182, 146, 146, 109, 73, 36, 73, 73, 255, 182, 146, 146, 146, 182, 182, 146, 146, 109, 146, 146, 182, 146, 109, 73, 36, 73, 73, 73, 146, 182, 182, 146, 146, 146, 146, 182, 109, 73, 73, 73, 36, 73, 146, 219, 182, 182, 146, 146, 109, 182, 146, 109, 146, 182, 146, 182, 182, 146, 109, 182, 146, 146, 182, 182, 146, 146, 109, 73, 73, 36, 36, 73, 182, 182, 182, 146, 182, 146, 182, 146, 146, 146, 146, 146, 146, 182, 109, 73, 36, 36, 73, 73, 73, 109, 73, 73, 73, 73, 73, 73, 73, 73, 36, 36, 73, 73, 109, 219, 219, 146, 182, 146, 146, 146, 109, 146, 146, 182, 146, 146, 109, 182, 182, 109, 146, 146, 146, 146, 146, 109, 73, 73, 73, 36, 73, 73, 182, 255, 182, 146, 182, 146, 146, 146, 146, 146, 146, 146, 182, 146, 73, 109, 36, 36, 73, 73, 73, 73, 73, 73, 73, 73, 73, 36, 73, 36, 36, 36, 73, 73, 73, 182, 182, 146, 146, 146, 146, 146, 146, 146, 146, 146, 182, 146, 182, 182, 146, 182, 146, 109, 109, 109, 109, 73, 73, 73, 73, 36, 36, 73, 146, 218, 146, 182, 146, 146, 109, 146, 146, 182, 146, 182, 146, 182, 109, 73, 73, 36, 73, 73, 73, 36, 36, 36, 36, 36, 36, 36, 73, 36, 73, 36, 73, 73, 73, 182, 182, 146, 182, 146, 182, 146, 146, 146, 109, 109, 109, 109, 109, 109, 109, 109, 109, 73, 73, 73, 73, 73, 36, 36, 36, 36, 73, 73, 109, 219, 182, 146, 146, 109, 109, 109, 182, 146, 146, 146, 109, 146, 109, 109, 73, 36, 73, 73, 73, 73, 73, 109, 109, 146, 182, 146, 182, 182, 146, 109, 73, 73, 73, 182, 146, 109, 109, 109, 109, 109, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 36, 36, 36, 36, 36, 73, 36, 73, 36, 73, 73, 73, 219, 182, 146, 146, 146, 146, 146, 146, 146, 182, 109, 146, 182, 146, 73, 73, 36, 73, 73, 109, 182, 182, 218, 219, 255, 218, 218, 218, 146, 109, 73, 36, 73, 73, 146, 109, 109, 109, 73, 73, 73, 73, 73, 73, 73, 73, 73, 36, 73, 36, 73, 36, 36, 73, 36, 73, 36, 36, 73, 36, 73, 73, 73, 73, 182, 218, 146, 182, 146, 109, 146, 182, 146, 146, 146, 146, 146, 109, 73, 73, 36, 36, 73, 182, 182, 219, 218, 182, 146, 182, 146, 182, 146, 109, 73, 36, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 36, 36, 36, 36, 36, 36, 36, 36, 36, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 146, 182, 182, 146, 182, 146, 146, 109, 146, 109, 146, 182, 146, 73, 73, 73, 36, 73, 73, 182, 219, 182, 182, 146, 146, 146, 146, 146, 146, 73, 73, 36, 73, 36, 36, 73, 36, 36, 73, 36, 36, 73, 36, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 36, 73, 73, 73, 109, 182, 146, 182, 146, 146, 182, 146, 182, 146, 182, 146, 182, 73, 109, 73, 36, 36, 73, 182, 255, 182, 146, 146, 182, 146, 182, 146, 182, 73, 73, 36, 73, 73, 73, 73, 73, 73, 36, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 146, 146, 146, 146, 146, 146, 146, 146, 146, 36, 36, 73, 73, 182, 182, 146, 146, 146, 146, 146, 109, 146, 146, 146, 146, 109, 73, 73, 36, 36, 73, 182, 255, 146, 146, 182, 182, 146, 182, 146, 146, 73, 73, 36, 73, 109, 182, 219, 218, 73, 73, 73, 109, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 218, 182, 218, 218, 182, 218, 182, 182, 109, 73, 36, 73, 73, 146, 182, 146, 182, 146, 109, 146, 146, 146, 182, 146, 109, 146, 109, 73, 36, 36, 73, 182, 182, 182, 182, 146, 146, 182, 146, 182, 146, 73, 73, 36, 73, 182, 218, 182, 182, 36, 73, 109, 182, 218, 219, 219, 219, 218, 219, 219, 219, 218, 219, 218, 182, 146, 146, 182, 146, 182, 182, 109, 109, 73, 36, 73, 73, 109, 146, 182, 146, 182, 182, 146, 182, 109, 146, 109, 73, 109, 73, 73, 36, 36, 73, 182, 182, 182, 146, 109, 109, 109, 109, 73, 73, 73, 73, 36, 73, 218, 182, 182, 146, 36, 73, 146, 218, 218, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 146, 146, 146, 182, 146, 146, 109, 109, 73, 36, 73, 73, 73, 146, 146, 109, 109, 109, 109, 73, 73, 109, 73, 109, 73, 73, 36, 36, 36, 73, 146, 146, 109, 146, 109, 73, 73, 73, 73, 73, 73, 73, 36, 109, 219, 182, 146, 146, 36, 73, 146, 219, 182, 182, 146, 182, 146, 182, 146, 146, 146, 146, 146, 182, 146, 146, 182, 146, 182, 182, 109, 73, 73, 36, 73, 73, 73, 109, 73, 73, 73, 73, 73, 73, 73, 73, 36, 36, 36, 36, 36, 36, 36, 36, 146, 109, 73, 73, 73, 36, 36, 36, 36, 36, 36, 36, 36, 109, 219, 182, 182, 146, 36, 73, 146, 218, 182, 146, 146, 146, 146, 146, 146, 109, 146, 146, 146, 182, 146, 182, 146, 182, 146, 146, 109, 73, 73, 36, 73, 73, 73, 36, 73, 36, 73, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 73, 73, 73, 73, 36, 36, 36, 36, 36, 73, 36, 36, 73, 36, 146, 219, 182, 182, 146, 36, 73, 146, 182, 146, 182, 146, 182, 146, 182, 146, 146, 146, 146, 146, 146, 182, 109, 109, 146, 146, 182, 109, 73, 73, 36, 73, 73, 73, 73, 73, 36, 36, 36, 36, 36, 36, 36, 36, 73, 73, 73, 73, 73, 73, 73, 146, 146, 146, 182, 182, 146, 146, 146, 109, 73, 36, 73, 109, 182, 219, 182, 146, 109, 36, 73, 146, 182, 182, 146, 146, 146, 146, 146, 146, 109, 109, 146, 146, 146, 146, 146, 109, 146, 182, 146, 109, 73, 73, 36, 73, 146, 219, 219, 219, 218, 182, 182, 182, 146, 109, 73, 73, 109, 109, 182, 182, 182, 182, 182, 219, 219, 219, 218, 219, 219, 219, 182, 146, 109, 36, 73, 109, 219, 182, 146, 182, 109, 36, 73, 146, 182, 182, 146, 146, 182, 146, 182, 146, 109, 109, 146, 146, 146, 146, 182, 182, 146, 146, 146, 109, 73, 73, 36, 73, 218, 182, 182, 146, 146, 146, 182, 146, 146, 73, 73, 73, 109, 218, 255, 219, 219, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 109, 73, 36, 73, 146, 219, 182, 146, 146, 109, 36, 73, 109, 182, 146, 182, 146, 146, 146, 146, 146, 182, 146, 182, 146, 146, 182, 146, 146, 182, 146, 109, 73, 73, 73, 36, 73, 219, 146, 146, 146, 182, 182, 146, 146, 182, 36, 73, 73, 146, 219, 182, 146, 182, 146, 182, 146, 146, 182, 146, 182, 146, 146, 146, 109, 73, 36, 73, 146, 255, 182, 146, 182, 73, 36, 73, 73, 146, 109, 109, 73, 73, 73, 109, 109, 109, 109, 146, 146, 109, 109, 109, 109, 109, 73, 73, 73, 73, 73, 36, 73, 218, 182, 182, 182, 146, 182, 146, 182, 109, 36, 73, 73, 146, 255, 182, 146, 182, 146, 109, 182, 182, 146, 146, 146, 182, 146, 182, 73, 73, 36, 73, 146, 255, 182, 182, 146, 73, 36, 73, 36, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 36, 36, 36, 36, 36, 73, 219, 146, 182, 146, 182, 182, 146, 109, 109, 36, 73, 73, 146, 255, 146, 182, 146, 146, 182, 146, 146, 109, 146, 182, 146, 146, 146, 73, 73, 36, 73, 146, 255, 146, 182, 146, 73, 36, 73, 73, 36, 36, 36, 36, 36, 36, 36, 36, 36, 73, 73, 73, 36, 36, 36, 36, 36, 36, 36, 73, 36, 73, 73, 73, 219, 182, 146, 146, 182, 146, 182, 109, 109, 36, 73, 73, 146, 255, 146, 146, 182, 146, 146, 109, 146, 109, 146, 146, 146, 182, 146, 73, 73, 36, 73, 146, 255, 182, 182, 146, 73, 36, 73, 73, 73, 73, 73, 73, 73, 73, 36, 73, 36, 36, 36, 36, 73, 109, 109, 109, 146, 146, 146, 146, 146, 146, 73, 36, 219, 182, 109, 146, 146, 182, 146, 146, 109, 73, 36, 73, 146, 255, 182, 146, 146, 146, 109, 146, 109, 146, 182, 109, 146, 146, 182, 73, 73, 36, 73, 146, 255, 146, 182, 182, 73, 36, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 109, 146, 182, 219, 218, 219, 218, 218, 182, 182, 109, 36, 219, 182, 182, 146, 109, 146, 182, 146, 109, 73, 36, 73, 146, 219, 182, 146, 146, 182, 146, 182, 109, 109, 146, 109, 146, 182, 146, 73, 73, 36, 73, 146, 218, 146, 146, 182, 73, 36, 73, 182, 219, 218, 182, 146, 109, 73, 73, 73, 73, 73, 73, 73, 109, 182, 218, 182, 182, 182, 182, 182, 146, 182, 73, 36, 255, 146, 146, 182, 109, 146, 182, 146, 109, 73, 36, 73, 109, 218, 182, 182, 146, 146, 109, 146, 109, 109, 182, 146, 182, 146, 146, 73, 73, 36, 73, 146, 219, 182, 146, 146, 73, 36, 73, 219, 146, 146, 182, 219, 219, 218, 219, 219, 219, 146, 73, 73, 109, 219, 182, 182, 182, 146, 182, 146, 182, 146, 109, 36, 255, 146, 182, 146, 182, 182, 146, 182, 109, 73, 36, 73, 73, 182, 219, 182, 182, 146, 146, 182, 146, 182, 109, 109, 146, 182, 109, 73, 73, 36, 73, 146, 218, 146, 182, 146, 73, 36, 73, 219, 146, 146, 182, 182, 146, 146, 182, 146, 146, 146, 73, 73, 109, 218, 182, 146, 146, 182, 146, 182, 146, 182, 109, 36, 255, 146, 146, 146, 182, 146, 182, 146, 109, 73, 36, 36, 73, 182, 255, 182, 182, 146, 146, 146, 109, 146, 109, 109, 182, 146, 109, 73, 73, 36, 73, 146, 218, 182, 182, 146, 73, 36, 73, 219, 182, 182, 146, 146, 182, 182, 146, 182, 146, 109, 73, 73, 109, 219, 182, 146, 182, 146, 182, 182, 109, 182, 73, 36, 219, 182, 182, 182, 146, 146, 146, 182, 109, 73, 36, 73, 73, 146, 255, 182, 182, 146, 182, 146, 146, 146, 146, 182, 146, 182, 109, 73, 36, 73, 73, 146, 218, 146, 146, 182, 73, 36, 73, 182, 182, 146, 182, 182, 146, 146, 182, 146, 182, 109, 73, 73, 109, 219, 182, 182, 146, 146, 146, 146, 182, 146, 73, 36, 219, 182, 109, 146, 109, 182, 182, 146, 109, 73, 36, 36, 73, 109, 218, 182, 182, 146, 109, 146, 146, 146, 146, 146, 146, 146, 109, 73, 36, 36, 73, 146, 218, 146, 182, 73, 73, 36, 73, 182, 182, 146, 182, 146, 182, 146, 146, 182, 146, 73, 73, 73, 109, 218, 182, 146, 182, 182, 146, 182, 146, 182, 73, 36, 182, 219, 146, 146, 182, 146, 146, 146, 109, 73, 36, 36, 73, 73, 182, 219, 182, 146, 182, 146, 182, 146, 182, 146, 146, 109, 73, 73, 36, 73, 73, 109, 182, 109, 73, 73, 73, 73, 73, 182, 182, 146, 182, 146, 146, 182, 146, 146, 182, 73, 73, 73, 109, 219, 182, 182, 146, 146, 182, 146, 182, 146, 73, 36, 182, 219, 109, 182, 146, 146, 146, 182, 109, 73, 36, 36, 73, 73, 146, 182, 182, 146, 109, 109, 109, 73, 73, 73, 73, 73, 73, 73, 36, 73, 73, 73, 73, 73, 73, 73, 73, 73, 36, 109, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 109, 219, 182, 146, 182, 182, 146, 182, 109, 182, 73, 36, 146, 218, 146, 109, 182, 182, 146, 146, 109, 73, 36, 36, 73, 73, 73, 146, 146, 109, 73, 73, 73, 36, 36, 36, 36, 36, 36, 36, 36, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 73, 109, 218, 182, 146, 146, 146, 182, 146, 182, 146, 73, 36, 109, 219, 182, 146, 182, 146, 146, 182, 109, 73, 36, 36, 36, 73, 73, 73, 36, 73, 36, 36, 36, 36, 73, 36, 73, 36, 36, 73, 36, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 109, 219, 182, 182, 182, 146, 146, 182, 146, 182, 73, 36, 73, 255, 146, 146, 146, 146, 182, 146, 109, 73, 36, 36, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 73, 73, 109, 219, 182, 146, 146, 182, 146, 182, 146, 109, 73, 36, 73, 255, 182, 146, 146, 109, 146, 182, 109, 73, 36, 36, 36, 73, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 146, 146, 146, 146, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 109, 73, 73, 109, 182, 182, 182, 182, 146, 182, 146, 182, 73, 36, 36, 73, 255, 146, 146, 182, 146, 146, 146, 109, 73, 73, 36, 36, 73, 109, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 218, 219, 219, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 218, 219, 218, 218, 146, 109, 36, 73, 109, 218, 182, 146, 182, 146, 182, 182, 146, 73, 36, 73, 73, 255, 146, 182, 109, 146, 146, 182, 109, 73, 73, 36, 36, 36, 109, 182, 182, 255, 255, 255, 255, 255, 219, 219, 255, 255, 219, 255, 255, 255, 255, 255, 219, 219, 218, 218, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 109, 73, 36, 73, 109, 182, 182, 182, 146, 182, 146, 146, 146, 73, 36, 73, 73, 219, 182, 182, 146, 182, 146, 146, 109, 73, 73, 36, 36, 36, 109, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 146, 146, 146, 146, 182, 146, 182, 146, 146, 146, 182, 146, 182, 146, 182, 109, 73, 73, 73, 73, 182, 146, 146, 182, 146, 109, 109, 109, 73, 36, 73, 73, 218, 146, 146, 182, 146, 182, 146, 109, 73, 73, 36, 36, 36, 109, 182, 219, 182, 146, 146, 146, 146, 146, 146, 182, 146, 182, 182, 146, 146, 146, 182, 182, 182, 146, 109, 146, 146, 182, 182, 146, 146, 182, 146, 182, 182, 146, 146, 109, 73, 36, 73, 73, 182, 182, 182, 146, 146, 73, 73, 73, 36, 36, 73, 73, 182, 182, 146, 146, 182, 146, 146, 109, 73, 73, 36, 36, 36, 73, 182, 219, 182, 146, 146, 146, 182, 146, 146, 146, 146, 182, 146, 146, 146, 182, 182, 146, 146, 146, 146, 146, 146, 109, 146, 146, 146, 146, 182, 146, 182, 146, 182, 109, 73, 73, 73, 73, 109, 109, 109, 73, 73, 73, 73, 73, 36, 73, 73, 73, 146, 146, 182, 146, 146, 146, 109, 109, 73, 73, 36, 36, 36, 36, 182, 219, 218, 182, 182, 146, 146, 146, 146, 109, 146, 146, 182, 146, 146, 146, 182, 146, 109, 146, 146, 182, 146, 146, 182, 146, 109, 109, 146, 109, 146, 146, 146, 109, 73, 36, 73, 73, 73, 36, 36, 36, 73, 73, 73, 73, 36, 73, 73, 73, 109, 109, 109, 109, 109, 109, 109, 73, 73, 73, 36, 36, 36, 73, 182, 218, 218, 146, 146, 182, 146, 182, 146, 146, 182, 146, 109, 109, 146, 146, 146, 182, 146, 182, 146, 146, 182, 146, 146, 109, 146, 146, 146, 182, 146, 109, 146, 109, 73, 36, 73, 73, 73, 73, 73, 73, 36, 36, 36, 36, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 36, 36, 36, 36, 146, 218, 182, 182, 146, 146, 182, 146, 182, 109, 146, 146, 146, 109, 146, 146, 146, 109, 182, 146, 146, 109, 146, 146, 146, 146, 182, 146, 109, 146, 146, 146, 109, 109, 73, 36, 73, 73, 73, 73, 73, 73, 73, 73, 73, 36, 36, 73, 73, 73, 73, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 73, 146, 146, 109, 109, 109, 109, 109, 109, 109, 182, 146, 182, 182, 146, 146, 109, 146, 146, 146, 109, 146, 146, 182, 146, 182, 146, 146, 182, 146, 146, 146, 146, 146, 109, 73, 36, 73, 73, 109, 182, 182, 182, 182, 146, 146, 109, 73, 73, 73, 73, 73, 36, 36, 73, 36, 36, 73, 36, 36, 73, 36, 73, 36, 73, 73, 73, 73, 73, 36, 73, 36, 73, 36, 73, 109, 109, 109, 146, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 73, 36, 73, 73, 182, 182, 218, 219, 218, 219, 219, 182, 182, 182, 146, 109, 109, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 36, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 36, 73, 73, 73, 182, 218, 182, 182, 146, 182, 218, 219, 219, 219, 182, 182, 182, 182, 182, 182, 182, 182, 146, 146, 146, 146, 109, 109, 109, 109, 109, 73, 73, 73, 73, 73, 73, 73, 73, 73, 36, 73, 36, 73, 36, 73, 36, 73, 36, 73, 36, 73, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 73, 73, 73, 182, 219, 182, 182, 182, 182, 182, 146, 182, 182, 219, 219, 219, 218, 219, 218, 219, 218, 219, 219, 219, 219, 182, 218, 182, 182, 182, 182, 182, 182, 182, 146, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 36, 36, 73, 36, 73, 36, 73, 36, 73, 36, 73, 36, 73, 36, 73, 73, 73, 73, 73, 73, 182, 219, 182, 146, 182, 109, 109, 182, 146, 146, 109, 182, 146, 182, 146, 182, 146, 182, 182, 146, 182, 146, 182, 182, 182, 182, 218, 219, 218, 218, 182, 146, 73, 73, 73, 73, 73, 73, 73, 73, 73, 36, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 182, 182, 182, 182, 182, 146, 182, 146, 146, 146, 146, 182, 146, 146, 182, 109, 109, 146, 182, 109, 146, 146, 146, 182, 146, 182, 146, 182, 182, 182, 109, 109, 36, 73, 73, 73, 182, 218, 219, 146, 109, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 182, 182, 182, 146, 182, 109, 109, 146, 182, 146, 182, 182, 146, 146, 109, 182, 109, 146, 109, 146, 146, 182, 146, 182, 146, 182, 146, 182, 182, 146, 109, 73, 36, 73, 73, 73, 219, 182, 182, 219, 219, 219, 218, 182, 73, 73, 73, 182, 219, 219, 218, 219, 219, 219, 218, 218, 182, 182, 146, 109, 73, 73, 73, 73, 182, 146, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 73, 73, 73, 36, 73, 73, 218, 182, 182, 182, 182, 182, 182, 182, 109, 73, 109, 219, 146, 182, 182, 146, 182, 146, 182, 146, 182, 146, 182, 218, 146, 36, 73, 73, 146, 109, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 36, 36, 73, 182, 182, 182, 182, 146, 109, 146, 146, 109, 73, 182, 182, 146, 182, 146, 182, 182, 182, 146, 182, 146, 182, 146, 182, 73, 36, 73, 73, 73, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 73, 73, 73, 73, 73, 109, 109, 109, 109, 109, 73, 219, 146, 146, 146, 182, 182, 146, 146, 182, 146, 146, 182, 146, 146, 73, 36, 73, 73, 73, 73, 73, 73, 36, 73, 36, 36, 73, 36, 36, 73, 36, 36, 73, 36, 73, 36, 36, 73, 36, 36, 73, 36, 36, 73, 36, 36, 73, 36, 36, 73, 36, 73, 36, 73, 73, 73, 73, 73, 36, 36, 36, 36, 36, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 36, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, }, // bluestone { 73, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 73, 73, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 73, 73, 1, 1, 1, 1, 1, 1, 1, 1, 1, 37, 36, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 36, 36, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 36, 36, 2, 2, 2, 2, 2, 2, 2, 2, 2, 36, 0, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 2, 2, 1, 2, 2, 1, 2, 1, 1, 1, 1, 0, 36, 2, 2, 2, 2, 1, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 0, 36, 2, 2, 2, 2, 2, 2, 2, 2, 1, 0, 0, 2, 2, 1, 2, 2, 2, 2, 1, 1, 2, 2, 2, 1, 2, 2, 1, 1, 1, 1, 1, 1, 0, 36, 2, 2, 2, 2, 2, 2, 1, 2, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 0, 36, 2, 2, 2, 2, 1, 2, 2, 2, 1, 0, 0, 2, 2, 2, 1, 2, 2, 2, 1, 1, 1, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 0, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36, 2, 2, 2, 2, 2, 2, 2, 1, 1, 0, 0, 2, 2, 1, 2, 2, 2, 1, 1, 1, 1, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 0, 36, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 2, 2, 2, 2, 2, 1, 1, 1, 1, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 0, 36, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 36, 2, 2, 2, 2, 2, 2, 1, 36, 36, 2, 2, 2, 2, 1, 2, 2, 1, 1, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 0, 36, 2, 2, 2, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 36, 2, 2, 2, 2, 2, 1, 1, 0, 36, 2, 2, 2, 2, 1, 2, 2, 2, 1, 0, 0, 2, 2, 1, 2, 2, 2, 2, 2, 1, 2, 1, 1, 2, 2, 2, 1, 1, 1, 1, 1, 1, 0, 36, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 2, 1, 0, 36, 2, 2, 2, 2, 1, 1, 1, 0, 36, 2, 2, 2, 2, 2, 2, 2, 2, 1, 0, 0, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 36, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 0, 36, 2, 2, 2, 1, 1, 1, 1, 0, 36, 2, 1, 1, 2, 2, 2, 2, 1, 1, 0, 0, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 36, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 1, 1, 1, 1, 0, 36, 2, 2, 2, 1, 2, 1, 1, 0, 36, 2, 1, 2, 2, 1, 2, 2, 1, 1, 0, 0, 2, 2, 2, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 36, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 1, 1, 1, 0, 36, 2, 1, 2, 2, 1, 1, 1, 0, 36, 2, 2, 1, 1, 1, 1, 1, 1, 1, 0, 0, 2, 1, 2, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 36, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 0, 36, 2, 2, 2, 2, 1, 1, 1, 0, 36, 2, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 36, 2, 2, 3, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 1, 1, 1, 1, 0, 36, 2, 2, 2, 2, 1, 1, 1, 0, 36, 2, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 2, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 36, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 2, 1, 1, 1, 1, 1, 0, 36, 2, 1, 2, 2, 1, 1, 1, 0, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 0, 36, 2, 2, 2, 2, 2, 1, 1, 0, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 1, 1, 1, 1, 1, 0, 36, 2, 2, 2, 2, 2, 1, 1, 0, 36, 2, 2, 2, 2, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 0, 2, 2, 2, 2, 2, 1, 2, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 0, 36, 2, 2, 1, 1, 1, 1, 1, 0, 36, 2, 2, 2, 1, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 1, 2, 2, 0, 2, 2, 2, 2, 2, 1, 1, 0, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 36, 2, 2, 1, 1, 1, 1, 1, 0, 36, 2, 2, 2, 1, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 1, 1, 1, 1, 0, 2, 2, 2, 2, 2, 2, 1, 0, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 36, 2, 1, 1, 1, 1, 1, 1, 0, 36, 2, 2, 1, 1, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 1, 2, 1, 1, 1, 0, 2, 2, 2, 1, 2, 2, 1, 0, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 36, 2, 1, 1, 1, 1, 1, 1, 0, 36, 2, 1, 1, 1, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 1, 1, 1, 1, 1, 1, 0, 2, 2, 2, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 1, 2, 1, 1, 1, 1, 1, 0, 2, 2, 2, 1, 1, 1, 1, 0, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 2, 2, 2, 2, 2, 2, 2, 2, 36, 36, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 2, 1, 1, 1, 1, 1, 1, 0, 2, 2, 2, 2, 1, 1, 1, 0, 36, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 36, 36, 2, 2, 2, 2, 2, 2, 2, 2, 0, 36, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 0, 2, 2, 1, 2, 2, 1, 1, 0, 36, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 1, 0, 36, 2, 2, 2, 2, 2, 2, 2, 2, 0, 36, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 1, 2, 2, 2, 1, 1, 1, 0, 2, 1, 1, 1, 1, 1, 1, 0, 36, 2, 2, 2, 2, 2, 3, 3, 2, 2, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 0, 36, 2, 2, 2, 2, 2, 2, 2, 1, 0, 36, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 1, 1, 0, 2, 1, 1, 1, 1, 1, 1, 0, 36, 2, 2, 2, 2, 2, 2, 3, 2, 3, 2, 2, 2, 1, 2, 1, 1, 2, 1, 1, 2, 1, 1, 0, 36, 2, 2, 2, 2, 2, 2, 2, 1, 0, 36, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 2, 1, 1, 1, 1, 0, 36, 2, 2, 2, 2, 2, 2, 2, 1, 0, 36, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 0, 36, 36, 36, 36, 36, 36, 36, 36, 36, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 1, 1, 1, 1, 1, 0, 36, 2, 2, 2, 2, 2, 2, 1, 1, 0, 36, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 0, 36, 2, 2, 2, 2, 2, 2, 36, 36, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 2, 2, 2, 1, 1, 1, 1, 1, 0, 36, 2, 2, 2, 2, 2, 2, 2, 1, 0, 36, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 36, 2, 2, 2, 2, 2, 2, 0, 36, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 2, 2, 1, 1, 1, 1, 1, 0, 36, 2, 2, 2, 2, 2, 2, 2, 1, 0, 36, 2, 2, 2, 2, 1, 2, 2, 2, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 36, 2, 2, 2, 2, 2, 2, 0, 36, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 0, 36, 2, 2, 2, 2, 2, 2, 2, 1, 0, 36, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 36, 2, 2, 2, 2, 1, 1, 0, 36, 2, 2, 2, 1, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 36, 2, 2, 2, 2, 2, 2, 2, 1, 0, 36, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 36, 2, 2, 2, 2, 2, 1, 0, 36, 2, 2, 2, 2, 1, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 36, 2, 2, 2, 2, 2, 2, 2, 1, 0, 36, 2, 2, 1, 1, 1, 1, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 36, 2, 2, 2, 1, 1, 1, 0, 36, 2, 1, 2, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 36, 2, 2, 2, 2, 2, 1, 1, 1, 0, 36, 2, 2, 2, 2, 2, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 36, 2, 2, 2, 2, 1, 1, 0, 36, 2, 2, 2, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 36, 2, 2, 2, 2, 1, 2, 1, 1, 0, 36, 2, 2, 2, 2, 2, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 36, 2, 2, 2, 1, 2, 1, 0, 36, 2, 2, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 36, 2, 2, 2, 1, 2, 2, 1, 1, 0, 36, 2, 2, 2, 2, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 36, 2, 2, 2, 2, 1, 1, 0, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36, 2, 2, 2, 1, 1, 1, 1, 1, 0, 36, 2, 2, 2, 2, 1, 1, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 36, 2, 2, 2, 2, 2, 1, 0, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 2, 2, 2, 2, 1, 1, 1, 1, 0, 36, 2, 2, 2, 2, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 36, 2, 2, 2, 2, 1, 1, 0, 36, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 36, 36, 2, 2, 2, 2, 2, 1, 1, 1, 0, 36, 2, 2, 2, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36, 2, 2, 1, 1, 1, 1, 0, 36, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 0, 36, 2, 2, 2, 2, 2, 2, 1, 1, 0, 36, 0, 0, 0, 0, 0, 36, 36, 36, 36, 36, 1, 1, 1, 1, 2, 2, 2, 1, 1, 1, 36, 36, 2, 2, 1, 1, 1, 1, 0, 36, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 2, 1, 0, 36, 2, 2, 2, 2, 2, 2, 1, 1, 0, 36, 2, 2, 2, 2, 0, 36, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 36, 36, 2, 2, 2, 1, 1, 1, 0, 36, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 2, 2, 2, 2, 2, 1, 1, 0, 36, 2, 2, 2, 1, 1, 1, 1, 1, 0, 36, 2, 2, 1, 1, 0, 36, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 36, 2, 2, 2, 1, 1, 1, 0, 36, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 2, 1, 0, 36, 2, 2, 2, 1, 1, 1, 1, 1, 0, 36, 2, 1, 1, 1, 0, 36, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 36, 2, 2, 2, 1, 1, 1, 0, 36, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 0, 36, 2, 2, 1, 1, 1, 1, 1, 1, 0, 36, 2, 1, 1, 1, 0, 36, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 36, 0, 0, 0, 0, 0, 0, 0, 36, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 36, 2, 1, 1, 1, 1, 1, 1, 1, 0, 36, 2, 1, 1, 1, 0, 36, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 36, 36, 36, 36, 36, 36, 36, 36, 36, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36, 2, 1, 1, 1, 0, 36, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 36, 2, 2, 2, 2, 2, 2, 36, 36, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 0, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 0, 36, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 0, 36, 2, 1, 2, 2, 2, 2, 0, 36, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 36, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 36, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 0, 36, 2, 2, 2, 2, 2, 1, 0, 36, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 0, 36, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 0, 36, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 0, 36, 2, 2, 1, 2, 1, 1, 0, 36, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 0, 36, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 0, 36, 2, 2, 2, 2, 2, 3, 2, 2, 2, 2, 1, 1, 2, 2, 0, 36, 2, 2, 2, 2, 1, 2, 0, 36, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 0, 36, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 0, 36, 2, 2, 2, 2, 3, 75, 3, 2, 2, 2, 2, 2, 1, 2, 0, 36, 2, 2, 2, 1, 2, 1, 0, 36, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 36, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 0, 36, 2, 2, 2, 2, 2, 3, 2, 2, 1, 2, 2, 1, 1, 1, 0, 36, 2, 2, 2, 2, 1, 1, 0, 36, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 1, 2, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 0, 36, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 0, 36, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 0, 36, 2, 2, 2, 2, 2, 1, 0, 36, 2, 2, 2, 2, 2, 2, 1, 1, 2, 1, 1, 2, 1, 1, 2, 2, 2, 1, 1, 1, 1, 1, 0, 36, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 0, 36, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 1, 1, 1, 0, 36, 2, 2, 2, 2, 2, 1, 0, 36, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 0, 36, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 0, 36, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 1, 1, 0, 36, 2, 2, 2, 1, 1, 1, 0, 36, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 36, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 1, 1, 0, 36, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 1, 1, 0, 36, 2, 2, 2, 1, 1, 1, 0, 36, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 36, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 1, 0, 36, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 1, 1, 0, 36, 2, 2, 2, 1, 1, 1, 0, 36, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 36, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 0, 36, 2, 2, 1, 1, 2, 1, 2, 1, 1, 2, 1, 1, 1, 1, 0, 36, 2, 2, 1, 1, 1, 1, 0, 36, 2, 2, 2, 1, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 36, 2, 2, 2, 2, 2, 2, 1, 2, 1, 1, 1, 1, 1, 1, 0, 36, 2, 2, 2, 2, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 0, 36, 2, 2, 2, 1, 1, 1, 0, 36, 2, 2, 2, 2, 2, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 36, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 36, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 36, 36, 2, 2, 1, 1, 1, 1, 36, 36, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 36, 36, 2, 2, 2, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 0, 73, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 73, 73, 2, 2, 1, 1, 1, 1, 73, 73, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 73, 73, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 36, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, }, // mossy { 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 219, 212, 212, 212, 212, 212, 219, 219, 219, 219, 219, 219, 180, 180, 180, 219, 36, 73, 146, 182, 219, 219, 219, 219, 219, 212, 212, 212, 109, 146, 146, 73, 36, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 219, 218, 180, 180, 180, 180, 146, 182, 212, 212, 218, 182, 182, 212, 212, 146, 36, 73, 146, 182, 182, 146, 212, 109, 212, 144, 144, 144, 108, 73, 73, 73, 36, 73, 109, 144, 144, 144, 144, 109, 109, 109, 109, 109, 73, 73, 73, 73, 73, 73, 73, 73, 73, 146, 146, 146, 146, 146, 146, 146, 146, 36, 73, 73, 219, 218, 180, 180, 180, 108, 146, 212, 212, 144, 182, 182, 182, 144, 180, 109, 36, 73, 182, 219, 182, 146, 109, 212, 109, 108, 144, 108, 73, 109, 73, 73, 36, 73, 144, 212, 216, 144, 108, 146, 182, 182, 212, 212, 212, 109, 109, 212, 212, 146, 146, 146, 146, 218, 182, 180, 182, 182, 182, 146, 146, 36, 73, 73, 219, 218, 144, 144, 144, 108, 146, 212, 144, 182, 182, 146, 146, 146, 144, 73, 36, 73, 146, 182, 146, 146, 146, 182, 182, 109, 144, 108, 73, 109, 73, 73, 36, 73, 144, 216, 180, 108, 109, 109, 182, 219, 212, 216, 216, 73, 109, 212, 212, 144, 109, 218, 218, 182, 182, 180, 180, 73, 109, 109, 109, 36, 73, 73, 219, 182, 144, 144, 108, 109, 109, 146, 182, 146, 144, 146, 109, 146, 144, 73, 36, 73, 73, 182, 212, 144, 182, 146, 146, 109, 72, 73, 109, 73, 73, 73, 36, 73, 144, 216, 108, 109, 146, 182, 216, 212, 109, 144, 144, 73, 109, 144, 144, 108, 73, 146, 146, 182, 146, 108, 73, 146, 146, 146, 109, 36, 73, 73, 219, 218, 144, 108, 108, 109, 182, 146, 146, 146, 144, 146, 146, 109, 146, 73, 36, 73, 73, 109, 144, 144, 180, 146, 182, 182, 109, 109, 109, 73, 73, 73, 36, 73, 144, 144, 108, 109, 109, 212, 212, 212, 109, 108, 144, 73, 109, 109, 73, 73, 109, 180, 109, 182, 182, 109, 146, 182, 146, 109, 73, 36, 73, 73, 219, 218, 146, 109, 109, 146, 182, 146, 218, 109, 144, 146, 182, 146, 146, 73, 36, 73, 73, 109, 146, 182, 146, 182, 146, 146, 146, 182, 109, 73, 73, 73, 37, 73, 144, 108, 109, 146, 146, 109, 212, 109, 109, 108, 108, 73, 109, 109, 146, 109, 109, 144, 109, 146, 182, 182, 109, 109, 146, 73, 73, 36, 37, 73, 219, 182, 182, 146, 109, 146, 212, 146, 146, 146, 146, 146, 146, 182, 146, 73, 36, 36, 73, 73, 109, 109, 73, 73, 73, 73, 73, 73, 73, 73, 73, 36, 73, 73, 109, 109, 146, 109, 182, 182, 109, 146, 182, 109, 73, 109, 146, 146, 146, 146, 182, 109, 109, 146, 146, 146, 146, 109, 73, 73, 73, 36, 37, 73, 219, 219, 182, 109, 146, 109, 212, 180, 109, 146, 146, 146, 182, 146, 146, 73, 37, 36, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 36, 36, 73, 73, 73, 109, 182, 182, 146, 144, 109, 146, 109, 109, 146, 109, 109, 146, 146, 146, 146, 146, 182, 146, 109, 109, 109, 109, 73, 73, 73, 73, 36, 37, 73, 219, 219, 146, 109, 146, 146, 212, 144, 109, 182, 146, 182, 146, 182, 146, 73, 37, 36, 73, 73, 73, 37, 37, 36, 36, 36, 36, 36, 37, 37, 73, 73, 73, 73, 109, 182, 109, 144, 73, 146, 182, 216, 109, 146, 109, 146, 109, 146, 109, 109, 146, 109, 109, 73, 73, 73, 73, 73, 36, 36, 36, 36, 37, 73, 182, 219, 182, 146, 109, 212, 180, 144, 109, 146, 146, 146, 109, 146, 109, 109, 73, 36, 73, 73, 73, 73, 73, 109, 182, 182, 182, 182, 219, 219, 108, 73, 73, 73, 109, 182, 146, 109, 109, 109, 109, 144, 73, 73, 73, 109, 73, 73, 73, 73, 73, 73, 73, 36, 36, 36, 36, 36, 37, 37, 37, 37, 73, 73, 146, 219, 218, 146, 109, 146, 144, 109, 146, 146, 182, 109, 146, 144, 146, 73, 73, 36, 73, 73, 109, 182, 252, 252, 219, 219, 219, 218, 218, 219, 212, 108, 73, 73, 73, 146, 109, 109, 109, 73, 73, 72, 73, 73, 73, 73, 73, 73, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 73, 73, 109, 182, 218, 146, 182, 146, 146, 146, 182, 146, 146, 146, 146, 109, 109, 73, 73, 36, 37, 73, 182, 252, 212, 144, 146, 146, 182, 146, 182, 144, 109, 72, 36, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 37, 37, 36, 36, 36, 36, 36, 36, 36, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 146, 218, 182, 146, 182, 146, 109, 146, 146, 109, 146, 182, 144, 73, 73, 73, 36, 37, 73, 182, 212, 144, 109, 182, 146, 216, 216, 146, 144, 73, 108, 73, 73, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 109, 182, 146, 182, 146, 212, 144, 109, 182, 146, 182, 146, 108, 73, 109, 73, 36, 37, 73, 182, 216, 144, 109, 146, 212, 216, 109, 146, 144, 73, 72, 73, 73, 73, 73, 73, 73, 73, 36, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 146, 146, 146, 146, 146, 146, 146, 146, 146, 37, 36, 73, 73, 182, 182, 144, 146, 144, 144, 182, 109, 146, 146, 146, 109, 109, 73, 73, 36, 36, 73, 216, 216, 109, 109, 182, 216, 216, 109, 146, 108, 73, 73, 73, 73, 216, 180, 180, 109, 73, 73, 73, 109, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 218, 212, 180, 219, 219, 212, 144, 109, 109, 73, 36, 73, 73, 146, 182, 108, 109, 146, 109, 146, 109, 109, 182, 146, 109, 146, 109, 73, 36, 36, 73, 216, 109, 146, 109, 146, 144, 108, 109, 182, 146, 73, 73, 73, 73, 180, 180, 144, 109, 37, 73, 109, 182, 212, 212, 212, 219, 180, 182, 182, 212, 212, 212, 219, 212, 180, 144, 180, 180, 144, 108, 73, 109, 73, 36, 73, 73, 109, 146, 109, 109, 146, 146, 109, 146, 73, 146, 109, 73, 109, 73, 73, 36, 36, 73, 109, 146, 109, 146, 216, 109, 109, 109, 73, 73, 73, 73, 36, 73, 144, 144, 73, 109, 36, 73, 146, 212, 212, 212, 109, 216, 144, 109, 182, 212, 144, 144, 109, 180, 144, 182, 180, 144, 144, 108, 73, 109, 73, 36, 73, 73, 73, 146, 146, 109, 146, 109, 109, 109, 109, 109, 73, 109, 73, 73, 37, 36, 36, 37, 182, 146, 109, 146, 109, 73, 73, 73, 73, 73, 73, 73, 36, 109, 144, 144, 109, 73, 36, 73, 146, 212, 212, 109, 146, 144, 144, 109, 146, 212, 144, 144, 109, 144, 182, 146, 180, 144, 108, 108, 73, 73, 73, 36, 73, 73, 73, 109, 73, 73, 73, 73, 73, 73, 73, 73, 37, 36, 36, 36, 36, 36, 36, 37, 146, 109, 73, 73, 73, 36, 36, 36, 36, 36, 36, 36, 36, 109, 146, 144, 146, 73, 36, 73, 146, 182, 109, 146, 146, 144, 109, 109, 182, 212, 144, 144, 146, 182, 146, 182, 180, 108, 73, 73, 146, 73, 73, 36, 73, 73, 73, 37, 37, 37, 37, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 37, 73, 73, 73, 36, 36, 36, 36, 37, 37, 37, 37, 37, 37, 146, 182, 146, 182, 73, 36, 73, 146, 182, 146, 182, 146, 182, 109, 182, 109, 182, 144, 108, 109, 146, 182, 109, 109, 73, 109, 146, 109, 73, 73, 36, 73, 73, 73, 73, 73, 36, 36, 36, 36, 36, 36, 36, 36, 73, 73, 73, 73, 73, 73, 73, 146, 146, 146, 144, 144, 144, 144, 144, 109, 73, 37, 73, 109, 182, 219, 182, 182, 109, 36, 73, 146, 146, 182, 216, 146, 146, 182, 146, 182, 182, 109, 109, 146, 146, 212, 144, 109, 146, 146, 146, 109, 73, 73, 36, 73, 146, 212, 212, 180, 144, 146, 182, 182, 182, 109, 73, 73, 109, 144, 212, 212, 212, 180, 218, 219, 219, 219, 212, 212, 212, 212, 180, 144, 144, 36, 73, 109, 219, 182, 219, 182, 109, 36, 73, 109, 146, 182, 146, 146, 182, 146, 216, 146, 109, 182, 146, 182, 146, 144, 144, 182, 146, 146, 146, 109, 73, 73, 36, 73, 212, 180, 180, 144, 109, 109, 109, 109, 109, 73, 73, 73, 144, 212, 180, 109, 146, 182, 182, 146, 182, 146, 144, 109, 144, 144, 144, 144, 108, 36, 73, 146, 219, 182, 182, 182, 216, 36, 73, 216, 182, 146, 182, 146, 216, 216, 109, 182, 146, 146, 182, 146, 146, 144, 146, 146, 146, 146, 109, 73, 73, 73, 36, 73, 180, 144, 144, 109, 109, 109, 109, 109, 109, 36, 73, 73, 146, 219, 146, 146, 144, 146, 212, 182, 146, 146, 109, 182, 144, 109, 144, 108, 72, 36, 73, 146, 216, 146, 146, 182, 144, 36, 73, 144, 72, 109, 109, 216, 180, 144, 108, 72, 109, 109, 73, 109, 109, 109, 109, 109, 109, 73, 73, 73, 73, 73, 36, 73, 180, 144, 109, 109, 146, 144, 144, 108, 109, 36, 73, 73, 146, 219, 216, 182, 146, 212, 144, 146, 212, 212, 182, 146, 144, 182, 144, 109, 72, 36, 73, 146, 180, 109, 146, 182, 108, 36, 73, 72, 73, 73, 73, 72, 72, 72, 72, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 36, 36, 36, 36, 37, 73, 180, 144, 109, 146, 146, 109, 144, 108, 109, 36, 73, 73, 146, 219, 212, 182, 212, 144, 109, 146, 212, 144, 146, 182, 146, 146, 109, 109, 72, 36, 73, 146, 109, 146, 182, 219, 72, 36, 73, 37, 37, 36, 36, 36, 36, 36, 36, 36, 36, 73, 73, 73, 36, 36, 36, 36, 36, 36, 37, 37, 37, 73, 73, 73, 219, 109, 146, 182, 144, 146, 144, 108, 109, 36, 73, 73, 146, 219, 180, 146, 212, 108, 109, 182, 146, 182, 146, 109, 180, 144, 109, 109, 72, 36, 73, 216, 219, 182, 219, 182, 73, 36, 73, 73, 73, 73, 73, 37, 37, 37, 36, 36, 36, 36, 36, 36, 73, 109, 109, 109, 146, 146, 146, 146, 146, 146, 73, 36, 219, 146, 146, 182, 144, 146, 109, 109, 109, 72, 36, 73, 146, 219, 180, 182, 144, 108, 109, 146, 109, 146, 182, 146, 180, 144, 109, 73, 72, 36, 73, 180, 219, 182, 182, 182, 73, 36, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 109, 146, 182, 180, 180, 146, 182, 182, 182, 182, 109, 36, 219, 182, 218, 146, 108, 182, 146, 109, 109, 72, 36, 73, 146, 219, 182, 212, 144, 108, 109, 146, 182, 182, 146, 182, 180, 144, 146, 73, 72, 36, 108, 144, 219, 182, 182, 180, 73, 36, 73, 108, 144, 144, 144, 180, 180, 144, 144, 73, 73, 73, 73, 73, 109, 182, 180, 180, 144, 109, 182, 182, 182, 182, 73, 36, 219, 182, 146, 182, 109, 146, 109, 146, 109, 72, 36, 73, 109, 146, 212, 144, 108, 109, 109, 182, 146, 146, 109, 146, 180, 144, 109, 73, 72, 36, 73, 144, 219, 219, 180, 144, 73, 36, 73, 109, 144, 108, 144, 144, 144, 180, 180, 180, 144, 146, 73, 73, 109, 180, 144, 144, 109, 146, 182, 180, 180, 109, 109, 36, 219, 218, 182, 146, 182, 144, 146, 182, 109, 72, 36, 73, 73, 146, 144, 108, 109, 109, 146, 146, 182, 109, 146, 109, 180, 144, 109, 73, 73, 36, 73, 144, 219, 182, 180, 108, 73, 36, 73, 146, 109, 109, 144, 144, 144, 144, 108, 108, 108, 109, 73, 73, 109, 180, 144, 109, 109, 182, 109, 180, 144, 109, 109, 36, 219, 146, 146, 146, 182, 146, 146, 109, 109, 72, 36, 37, 73, 182, 219, 182, 212, 212, 144, 146, 109, 109, 109, 109, 180, 144, 109, 73, 37, 36, 108, 146, 218, 182, 180, 72, 73, 36, 73, 219, 182, 182, 144, 108, 109, 109, 72, 109, 109, 109, 73, 73, 109, 109, 146, 182, 146, 109, 146, 180, 108, 109, 73, 36, 219, 182, 182, 182, 146, 182, 182, 109, 109, 72, 36, 37, 73, 146, 219, 182, 212, 144, 108, 109, 146, 146, 146, 182, 144, 144, 109, 73, 36, 36, 144, 146, 218, 182, 144, 108, 72, 36, 73, 218, 182, 146, 144, 108, 146, 109, 146, 109, 146, 109, 73, 73, 109, 182, 182, 146, 182, 182, 180, 144, 108, 109, 73, 36, 219, 182, 109, 146, 212, 180, 109, 146, 109, 72, 36, 36, 73, 109, 218, 182, 144, 108, 109, 109, 146, 182, 146, 180, 144, 109, 109, 73, 36, 36, 73, 146, 218, 146, 108, 72, 72, 36, 73, 182, 182, 182, 144, 108, 109, 146, 146, 146, 182, 73, 73, 73, 109, 219, 146, 182, 146, 146, 144, 108, 108, 109, 73, 36, 182, 219, 146, 146, 180, 144, 146, 182, 109, 72, 72, 36, 73, 73, 182, 219, 108, 109, 109, 146, 182, 146, 144, 109, 109, 109, 109, 73, 36, 73, 73, 109, 182, 109, 108, 72, 72, 73, 73, 182, 182, 146, 144, 144, 109, 146, 109, 109, 146, 73, 73, 73, 109, 219, 182, 182, 146, 146, 108, 108, 109, 109, 73, 36, 182, 219, 109, 182, 146, 146, 146, 146, 109, 72, 72, 36, 73, 73, 146, 182, 146, 109, 109, 109, 109, 109, 109, 109, 109, 109, 73, 73, 36, 73, 73, 73, 73, 73, 72, 72, 73, 73, 73, 109, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 109, 219, 182, 146, 180, 144, 146, 109, 146, 146, 73, 36, 146, 219, 182, 109, 182, 182, 109, 146, 109, 73, 72, 36, 73, 73, 73, 146, 146, 109, 109, 73, 73, 73, 36, 72, 73, 73, 73, 36, 36, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 73, 109, 219, 182, 182, 146, 146, 146, 180, 144, 109, 73, 36, 109, 219, 146, 146, 182, 146, 109, 146, 109, 73, 72, 36, 37, 73, 73, 73, 37, 37, 37, 36, 36, 37, 37, 37, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 109, 219, 180, 180, 146, 146, 180, 144, 144, 109, 73, 36, 73, 219, 182, 182, 146, 146, 146, 182, 109, 73, 72, 36, 37, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 144, 144, 144, 144, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 73, 73, 109, 180, 180, 144, 182, 146, 144, 108, 108, 109, 73, 36, 73, 219, 146, 146, 144, 109, 146, 109, 109, 73, 72, 36, 37, 73, 109, 144, 144, 144, 144, 144, 144, 144, 144, 109, 109, 146, 146, 146, 182, 182, 182, 182, 182, 182, 182, 212, 212, 212, 180, 144, 182, 182, 216, 180, 182, 212, 180, 144, 182, 109, 73, 73, 109, 180, 144, 109, 146, 146, 146, 108, 108, 109, 36, 37, 73, 219, 182, 146, 144, 109, 182, 146, 109, 73, 72, 36, 36, 73, 108, 212, 212, 212, 212, 212, 212, 212, 212, 144, 182, 182, 182, 182, 146, 182, 182, 182, 182, 182, 212, 180, 144, 144, 144, 182, 182, 216, 180, 182, 182, 180, 180, 180, 144, 109, 37, 73, 109, 180, 144, 109, 182, 146, 146, 146, 146, 73, 36, 37, 73, 219, 146, 182, 109, 109, 146, 146, 109, 73, 72, 36, 36, 73, 108, 212, 180, 180, 180, 180, 180, 180, 180, 144, 182, 182, 182, 182, 182, 212, 144, 146, 182, 146, 180, 144, 182, 146, 212, 212, 180, 109, 146, 182, 180, 144, 180, 144, 109, 73, 37, 73, 109, 180, 144, 146, 146, 182, 146, 182, 146, 73, 36, 73, 73, 219, 182, 182, 182, 182, 146, 182, 109, 73, 72, 36, 36, 73, 37, 180, 180, 144, 144, 144, 144, 144, 144, 144, 108, 146, 182, 182, 182, 144, 144, 182, 182, 146, 182, 146, 182, 212, 180, 180, 109, 146, 146, 182, 109, 109, 180, 109, 109, 73, 37, 73, 73, 144, 109, 146, 182, 146, 182, 146, 109, 73, 36, 73, 73, 218, 146, 146, 182, 146, 146, 146, 109, 73, 73, 36, 36, 73, 37, 146, 146, 146, 144, 144, 144, 144, 144, 108, 108, 109, 182, 182, 182, 146, 109, 146, 182, 146, 146, 182, 212, 109, 109, 109, 146, 182, 182, 146, 146, 146, 180, 109, 109, 73, 37, 73, 73, 146, 146, 146, 146, 109, 109, 73, 73, 36, 37, 73, 73, 182, 182, 146, 146, 182, 146, 109, 109, 73, 73, 36, 36, 73, 37, 182, 219, 182, 144, 108, 108, 108, 108, 109, 109, 146, 182, 182, 146, 182, 146, 146, 146, 212, 212, 146, 146, 109, 109, 146, 146, 216, 180, 182, 182, 146, 180, 109, 109, 73, 37, 73, 73, 109, 109, 109, 109, 73, 73, 73, 73, 36, 37, 73, 73, 146, 146, 182, 146, 146, 146, 109, 109, 73, 73, 36, 36, 73, 37, 182, 219, 218, 144, 109, 109, 109, 109, 109, 146, 146, 144, 182, 182, 182, 146, 182, 212, 182, 146, 146, 182, 146, 146, 146, 182, 180, 144, 182, 146, 146, 109, 109, 109, 73, 36, 73, 73, 73, 36, 73, 73, 73, 73, 73, 73, 36, 73, 73, 73, 109, 109, 109, 109, 109, 109, 109, 73, 73, 73, 36, 36, 73, 37, 182, 219, 218, 109, 109, 146, 146, 180, 180, 144, 182, 146, 146, 182, 146, 182, 182, 182, 146, 180, 182, 180, 182, 146, 182, 180, 144, 146, 182, 182, 146, 180, 180, 109, 73, 36, 73, 73, 73, 73, 37, 37, 36, 36, 37, 36, 37, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 36, 36, 37, 37, 146, 218, 182, 146, 182, 146, 182, 180, 180, 108, 146, 182, 146, 182, 146, 146, 146, 216, 180, 108, 146, 182, 182, 146, 182, 146, 146, 182, 146, 146, 146, 182, 109, 109, 73, 36, 73, 73, 73, 73, 73, 73, 73, 37, 37, 37, 37, 73, 73, 73, 73, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 37, 146, 146, 109, 109, 109, 109, 109, 144, 108, 108, 146, 182, 109, 109, 146, 182, 216, 180, 108, 182, 146, 182, 146, 146, 146, 182, 109, 146, 146, 212, 146, 146, 146, 109, 73, 36, 73, 73, 109, 182, 212, 212, 212, 144, 146, 109, 73, 73, 73, 73, 73, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 73, 73, 73, 73, 37, 37, 37, 37, 37, 37, 73, 109, 109, 109, 146, 180, 182, 108, 108, 109, 109, 109, 109, 109, 146, 146, 146, 109, 109, 182, 109, 109, 109, 109, 109, 73, 36, 73, 73, 182, 212, 216, 212, 212, 212, 212, 180, 144, 182, 146, 109, 109, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 37, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 36, 37, 73, 73, 182, 212, 216, 180, 146, 146, 146, 146, 182, 182, 180, 216, 216, 212, 212, 212, 180, 180, 180, 180, 180, 144, 109, 109, 109, 109, 109, 73, 73, 73, 73, 73, 73, 73, 73, 73, 37, 37, 37, 37, 37, 36, 36, 37, 37, 37, 37, 37, 37, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 37, 73, 73, 73, 182, 182, 146, 180, 146, 182, 182, 182, 182, 182, 182, 182, 146, 146, 144, 144, 144, 144, 144, 144, 144, 144, 144, 146, 146, 182, 182, 182, 182, 182, 182, 146, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 73, 73, 73, 73, 73, 182, 182, 182, 146, 182, 182, 182, 182, 146, 182, 182, 182, 182, 182, 182, 146, 146, 146, 146, 146, 144, 144, 144, 146, 146, 182, 219, 216, 216, 146, 182, 109, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 182, 182, 218, 182, 182, 182, 216, 180, 144, 182, 182, 218, 182, 218, 182, 182, 212, 144, 146, 146, 146, 146, 146, 146, 182, 182, 146, 216, 144, 146, 109, 109, 36, 73, 73, 73, 144, 180, 180, 180, 109, 73, 73, 73, 73, 73, 73, 108, 180, 144, 144, 108, 108, 72, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 182, 182, 182, 182, 146, 109, 180, 144, 72, 182, 182, 182, 218, 182, 182, 182, 218, 182, 182, 182, 182, 182, 218, 182, 109, 182, 218, 182, 146, 146, 109, 73, 36, 73, 73, 73, 180, 144, 144, 144, 109, 219, 219, 182, 73, 73, 144, 212, 212, 212, 144, 109, 212, 182, 182, 218, 212, 182, 146, 109, 73, 73, 73, 73, 182, 146, 109, 109, 109, 109, 144, 72, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 146, 182, 146, 109, 109, 109, 109, 109, 109, 109, 73, 73, 73, 36, 73, 73, 109, 144, 144, 108, 109, 182, 182, 182, 109, 73, 146, 109, 109, 109, 109, 109, 182, 182, 146, 212, 144, 109, 182, 219, 146, 36, 73, 73, 146, 109, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 36, 37, 73, 182, 144, 108, 109, 146, 109, 146, 146, 109, 73, 146, 146, 182, 146, 182, 212, 212, 182, 182, 144, 144, 109, 146, 182, 73, 36, 73, 73, 73, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 37, 73, 73, 72, 72, 73, 109, 109, 109, 109, 109, 73, 109, 109, 146, 182, 212, 212, 144, 109, 182, 144, 109, 109, 146, 146, 73, 36, 73, 73, 73, 73, 73, 73, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 73, 73, 72, 72, 73, 36, 36, 36, 36, 36, 73, 73, 73, 73, 108, 72, 73, 73, 73, 108, 72, 73, 73, 73, 73, 73, 36, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, }, // wood { 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 72, 72, 72, 72, 72, 72, 72, 68, 72, 36, 68, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 68, 72, 36, 68, 72, 72, 72, 72, 68, 72, 36, 68, 72, 72, 72, 72, 72, 72, 68, 72, 36, 68, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 68, 72, 36, 68, 72, 72, 72, 72, 104, 104, 104, 104, 104, 72, 141, 36, 72, 141, 104, 72, 72, 72, 72, 104, 104, 72, 104, 72, 104, 72, 72, 72, 141, 36, 72, 141, 104, 72, 104, 72, 141, 36, 72, 141, 104, 72, 72, 72, 104, 72, 141, 36, 72, 141, 72, 104, 72, 72, 104, 72, 104, 72, 104, 104, 72, 141, 36, 72, 141, 104, 72, 72, 104, 104, 104, 104, 104, 72, 141, 36, 72, 141, 104, 72, 72, 72, 72, 104, 104, 72, 104, 72, 104, 72, 72, 72, 141, 36, 72, 141, 104, 72, 104, 72, 141, 36, 72, 141, 104, 104, 72, 104, 104, 72, 141, 36, 72, 141, 72, 104, 72, 72, 104, 72, 104, 72, 104, 104, 72, 141, 36, 72, 141, 104, 72, 72, 104, 104, 104, 104, 72, 72, 141, 36, 72, 141, 104, 72, 72, 72, 72, 104, 104, 72, 104, 72, 104, 72, 72, 72, 141, 36, 72, 141, 104, 72, 104, 72, 141, 36, 72, 141, 104, 104, 104, 104, 104, 72, 141, 36, 72, 141, 72, 104, 72, 72, 104, 72, 104, 72, 104, 104, 72, 141, 36, 72, 141, 104, 72, 72, 72, 104, 104, 104, 72, 72, 141, 36, 72, 141, 104, 72, 72, 72, 104, 104, 104, 72, 104, 72, 104, 72, 72, 72, 141, 36, 72, 141, 104, 72, 104, 72, 141, 36, 72, 141, 104, 104, 104, 104, 104, 72, 141, 36, 72, 141, 72, 104, 72, 72, 104, 72, 104, 72, 104, 104, 72, 141, 36, 72, 141, 104, 104, 72, 72, 104, 104, 104, 72, 72, 141, 36, 72, 141, 104, 104, 72, 72, 104, 104, 104, 72, 104, 72, 104, 72, 72, 72, 141, 36, 72, 141, 104, 72, 104, 72, 141, 36, 72, 141, 104, 104, 104, 104, 104, 72, 141, 36, 72, 141, 72, 104, 72, 72, 104, 72, 104, 72, 104, 104, 72, 141, 36, 72, 141, 72, 104, 72, 72, 72, 104, 72, 72, 72, 141, 36, 72, 141, 104, 104, 72, 104, 104, 104, 104, 72, 104, 72, 104, 72, 72, 72, 141, 36, 72, 141, 104, 72, 104, 72, 141, 36, 72, 141, 104, 104, 104, 104, 104, 72, 141, 36, 72, 141, 72, 104, 72, 72, 104, 72, 104, 72, 104, 104, 72, 141, 36, 72, 141, 72, 104, 72, 72, 72, 72, 72, 72, 72, 141, 36, 72, 141, 104, 104, 104, 104, 104, 104, 104, 72, 104, 72, 104, 72, 72, 72, 141, 36, 72, 141, 104, 72, 104, 72, 141, 36, 72, 141, 104, 104, 104, 104, 104, 72, 141, 36, 72, 141, 72, 104, 72, 72, 104, 72, 104, 72, 104, 104, 72, 141, 36, 72, 141, 72, 104, 72, 72, 72, 72, 72, 72, 72, 141, 36, 72, 141, 104, 104, 104, 104, 104, 104, 72, 72, 104, 72, 104, 72, 72, 72, 141, 36, 72, 141, 72, 72, 104, 72, 141, 36, 72, 141, 104, 104, 104, 104, 104, 72, 141, 36, 72, 141, 72, 104, 72, 72, 104, 72, 104, 72, 104, 104, 72, 141, 36, 72, 141, 72, 104, 104, 72, 72, 72, 72, 104, 72, 141, 36, 72, 141, 104, 104, 104, 104, 104, 104, 72, 72, 104, 72, 104, 72, 72, 72, 141, 36, 72, 141, 72, 104, 104, 72, 141, 36, 72, 141, 104, 104, 104, 104, 104, 72, 141, 36, 72, 141, 72, 104, 72, 72, 104, 72, 104, 72, 72, 104, 72, 141, 36, 72, 141, 72, 104, 104, 72, 72, 72, 72, 104, 72, 141, 36, 72, 141, 104, 104, 104, 104, 104, 104, 72, 72, 104, 72, 104, 72, 72, 72, 141, 36, 72, 141, 72, 104, 104, 72, 141, 36, 72, 141, 104, 104, 104, 104, 104, 72, 141, 36, 72, 141, 72, 104, 72, 72, 104, 72, 104, 72, 72, 104, 72, 141, 36, 72, 141, 72, 104, 104, 104, 72, 72, 104, 104, 72, 141, 36, 72, 141, 104, 104, 104, 104, 104, 104, 72, 72, 104, 72, 104, 72, 72, 72, 141, 36, 72, 141, 72, 104, 104, 72, 141, 36, 72, 141, 104, 104, 104, 104, 104, 72, 141, 36, 72, 141, 72, 104, 72, 72, 104, 72, 104, 72, 72, 104, 72, 141, 36, 72, 141, 72, 72, 104, 104, 104, 72, 104, 104, 72, 141, 36, 72, 141, 104, 104, 104, 104, 104, 104, 72, 72, 104, 72, 104, 72, 72, 72, 141, 36, 72, 141, 104, 104, 104, 72, 141, 36, 72, 141, 72, 104, 104, 104, 104, 72, 141, 36, 72, 141, 72, 104, 72, 72, 104, 72, 104, 72, 72, 104, 72, 141, 36, 72, 141, 72, 72, 104, 104, 104, 104, 104, 72, 72, 141, 36, 72, 141, 104, 104, 104, 104, 104, 104, 72, 72, 104, 72, 104, 72, 72, 72, 141, 36, 72, 141, 104, 104, 104, 72, 141, 36, 72, 141, 72, 104, 104, 104, 72, 72, 141, 36, 72, 141, 72, 104, 72, 72, 104, 72, 104, 104, 72, 104, 72, 141, 36, 72, 141, 72, 72, 104, 104, 104, 104, 104, 72, 72, 141, 36, 72, 141, 104, 104, 104, 104, 104, 104, 72, 72, 104, 72, 104, 72, 72, 72, 141, 36, 72, 141, 104, 104, 104, 72, 141, 36, 72, 141, 72, 72, 104, 72, 72, 72, 141, 36, 72, 141, 72, 104, 72, 72, 104, 72, 104, 104, 72, 104, 72, 141, 36, 72, 141, 72, 72, 104, 104, 104, 104, 104, 72, 72, 141, 36, 72, 141, 104, 104, 104, 104, 104, 72, 72, 72, 104, 72, 104, 72, 72, 72, 141, 36, 72, 141, 104, 104, 104, 72, 141, 36, 72, 141, 72, 72, 72, 72, 72, 72, 141, 36, 72, 141, 72, 104, 72, 72, 104, 72, 104, 104, 72, 104, 72, 141, 36, 72, 141, 104, 72, 72, 104, 104, 104, 104, 72, 72, 141, 36, 72, 141, 72, 104, 104, 104, 104, 72, 72, 72, 104, 72, 104, 72, 72, 72, 141, 36, 72, 141, 104, 104, 104, 72, 141, 36, 72, 141, 72, 72, 72, 72, 72, 72, 141, 36, 72, 141, 72, 104, 72, 72, 104, 72, 104, 104, 72, 104, 72, 141, 36, 72, 141, 104, 72, 72, 104, 104, 104, 72, 72, 72, 141, 36, 72, 141, 72, 104, 104, 104, 104, 72, 72, 72, 104, 72, 104, 72, 72, 72, 141, 36, 72, 141, 104, 104, 72, 72, 141, 36, 72, 141, 72, 72, 72, 72, 72, 72, 141, 36, 72, 141, 72, 104, 72, 72, 104, 72, 104, 104, 72, 104, 72, 141, 36, 72, 141, 104, 72, 72, 72, 104, 104, 72, 72, 72, 141, 36, 72, 141, 72, 104, 104, 104, 104, 72, 72, 72, 104, 72, 104, 72, 72, 72, 141, 36, 72, 141, 104, 104, 72, 72, 141, 36, 72, 141, 104, 72, 72, 72, 104, 72, 141, 36, 72, 141, 72, 104, 72, 72, 104, 72, 104, 104, 72, 104, 72, 141, 36, 72, 141, 104, 72, 72, 72, 104, 72, 72, 72, 72, 141, 36, 72, 141, 72, 104, 104, 104, 104, 72, 72, 104, 104, 72, 104, 72, 72, 72, 141, 36, 72, 141, 104, 72, 72, 72, 141, 36, 72, 141, 104, 104, 72, 104, 104, 72, 141, 36, 72, 141, 72, 104, 72, 72, 104, 72, 104, 104, 72, 72, 72, 141, 36, 72, 141, 104, 72, 72, 72, 72, 72, 72, 72, 72, 141, 36, 72, 141, 72, 72, 104, 104, 104, 72, 72, 104, 104, 72, 104, 72, 72, 72, 141, 36, 72, 141, 104, 72, 72, 72, 141, 36, 72, 141, 104, 104, 104, 104, 104, 72, 141, 36, 72, 141, 72, 104, 72, 72, 104, 72, 104, 104, 72, 72, 72, 141, 36, 72, 141, 104, 72, 72, 72, 72, 72, 72, 72, 72, 141, 36, 72, 141, 72, 72, 104, 104, 72, 72, 72, 104, 104, 72, 104, 72, 72, 72, 141, 36, 72, 141, 72, 72, 72, 72, 141, 36, 72, 141, 104, 104, 104, 104, 104, 72, 141, 36, 72, 141, 72, 104, 72, 72, 104, 72, 104, 104, 72, 72, 72, 141, 36, 72, 141, 104, 104, 72, 72, 72, 72, 72, 104, 72, 141, 36, 72, 141, 72, 72, 72, 72, 72, 72, 72, 104, 72, 72, 104, 72, 72, 72, 141, 36, 72, 141, 72, 72, 72, 72, 141, 36, 72, 141, 104, 104, 104, 104, 104, 72, 141, 36, 72, 141, 72, 104, 72, 72, 104, 72, 104, 104, 104, 72, 72, 141, 36, 72, 141, 72, 104, 72, 72, 72, 72, 72, 104, 72, 141, 36, 72, 141, 72, 72, 72, 72, 72, 72, 72, 104, 72, 72, 104, 72, 72, 72, 141, 36, 72, 141, 72, 72, 72, 72, 141, 36, 72, 141, 104, 104, 104, 104, 104, 72, 141, 36, 72, 141, 72, 104, 72, 72, 104, 72, 72, 104, 104, 72, 72, 141, 36, 72, 141, 72, 104, 72, 72, 72, 72, 72, 104, 72, 141, 36, 72, 141, 72, 72, 72, 72, 72, 72, 72, 104, 72, 72, 104, 72, 72, 72, 141, 36, 72, 141, 72, 72, 72, 72, 141, 36, 72, 141, 104, 104, 104, 104, 104, 72, 141, 36, 72, 141, 72, 104, 72, 72, 104, 72, 72, 104, 104, 72, 72, 141, 36, 72, 141, 72, 104, 72, 72, 72, 72, 72, 72, 72, 141, 36, 72, 141, 72, 72, 72, 72, 72, 72, 104, 104, 72, 72, 104, 72, 72, 72, 141, 36, 72, 141, 72, 72, 104, 72, 141, 36, 72, 141, 104, 104, 104, 104, 104, 72, 141, 36, 72, 141, 72, 104, 72, 72, 104, 72, 72, 104, 104, 72, 72, 141, 36, 72, 141, 72, 72, 104, 72, 72, 72, 104, 72, 72, 141, 36, 72, 141, 72, 72, 72, 72, 72, 72, 104, 104, 72, 72, 104, 72, 72, 72, 141, 36, 72, 141, 72, 72, 104, 72, 141, 36, 72, 141, 104, 104, 104, 104, 104, 72, 141, 36, 72, 141, 72, 104, 72, 72, 104, 72, 72, 104, 104, 104, 72, 141, 36, 72, 141, 72, 72, 104, 72, 72, 72, 104, 72, 72, 141, 36, 72, 141, 72, 72, 72, 72, 72, 72, 104, 104, 72, 72, 104, 72, 72, 72, 141, 36, 72, 141, 72, 72, 104, 72, 141, 36, 72, 141, 104, 104, 104, 104, 104, 72, 141, 36, 72, 141, 72, 104, 72, 72, 104, 72, 72, 104, 104, 104, 72, 141, 36, 72, 141, 72, 72, 104, 72, 72, 104, 104, 72, 72, 141, 36, 72, 141, 72, 72, 72, 72, 72, 72, 104, 104, 72, 72, 104, 72, 72, 72, 141, 36, 72, 141, 72, 104, 104, 72, 141, 36, 72, 141, 104, 104, 104, 104, 104, 72, 141, 36, 72, 141, 72, 104, 72, 72, 104, 72, 72, 104, 104, 104, 72, 141, 36, 72, 141, 72, 72, 72, 104, 72, 104, 72, 72, 72, 141, 36, 72, 141, 104, 72, 72, 72, 72, 72, 104, 104, 72, 72, 104, 72, 72, 72, 141, 36, 72, 141, 72, 104, 104, 72, 141, 36, 72, 141, 72, 104, 104, 104, 104, 72, 141, 36, 72, 141, 72, 104, 72, 72, 104, 72, 72, 104, 104, 104, 72, 141, 36, 72, 141, 72, 72, 72, 104, 72, 104, 72, 72, 72, 141, 36, 72, 141, 104, 72, 72, 72, 72, 104, 104, 104, 72, 72, 104, 72, 72, 72, 141, 36, 72, 141, 104, 104, 104, 72, 141, 36, 72, 141, 72, 104, 104, 104, 72, 72, 141, 36, 72, 141, 72, 104, 72, 72, 104, 72, 72, 104, 104, 104, 72, 141, 36, 72, 141, 72, 72, 72, 104, 104, 104, 72, 72, 72, 141, 36, 72, 141, 104, 104, 72, 72, 72, 104, 104, 104, 72, 104, 104, 72, 72, 72, 141, 36, 72, 141, 104, 104, 104, 72, 141, 36, 72, 141, 72, 72, 104, 104, 72, 72, 141, 36, 72, 141, 72, 104, 72, 72, 104, 72, 72, 104, 104, 104, 72, 141, 36, 72, 141, 72, 72, 72, 72, 104, 72, 72, 72, 72, 141, 36, 72, 141, 104, 104, 72, 72, 72, 104, 104, 72, 72, 104, 104, 72, 72, 72, 141, 36, 72, 141, 104, 104, 104, 72, 141, 36, 72, 141, 72, 72, 104, 72, 72, 72, 141, 36, 72, 141, 72, 104, 72, 72, 104, 72, 72, 72, 104, 104, 72, 141, 36, 72, 141, 72, 72, 72, 72, 72, 72, 72, 72, 72, 141, 36, 72, 141, 104, 104, 104, 72, 104, 104, 104, 72, 72, 104, 104, 72, 72, 72, 141, 36, 72, 141, 104, 104, 104, 72, 141, 36, 72, 141, 72, 72, 72, 72, 72, 72, 141, 36, 72, 141, 72, 104, 72, 72, 104, 72, 72, 72, 104, 104, 72, 141, 36, 72, 141, 104, 72, 72, 72, 72, 72, 72, 72, 72, 141, 36, 72, 141, 104, 104, 104, 104, 104, 104, 104, 72, 72, 104, 104, 72, 72, 72, 141, 36, 72, 141, 104, 104, 104, 72, 141, 36, 72, 141, 72, 72, 72, 72, 72, 72, 141, 36, 72, 141, 72, 104, 72, 72, 104, 104, 72, 72, 104, 104, 72, 141, 36, 72, 141, 104, 72, 72, 72, 72, 72, 72, 72, 72, 141, 36, 72, 141, 104, 104, 104, 104, 104, 104, 104, 72, 72, 104, 104, 72, 72, 72, 141, 36, 72, 141, 104, 104, 104, 72, 141, 36, 72, 141, 72, 72, 72, 72, 72, 72, 141, 36, 72, 141, 72, 104, 72, 72, 104, 104, 72, 72, 104, 104, 72, 141, 36, 72, 141, 104, 72, 72, 72, 72, 72, 72, 72, 72, 141, 36, 72, 141, 104, 104, 104, 104, 104, 104, 104, 72, 72, 104, 104, 72, 72, 72, 141, 36, 72, 141, 104, 104, 104, 72, 141, 36, 72, 141, 104, 72, 72, 72, 72, 72, 141, 36, 72, 141, 72, 104, 72, 72, 104, 104, 72, 72, 104, 104, 72, 141, 36, 72, 141, 104, 72, 72, 72, 72, 72, 72, 104, 72, 141, 36, 72, 141, 104, 104, 104, 104, 104, 104, 104, 72, 72, 104, 104, 72, 72, 72, 141, 36, 72, 141, 104, 104, 72, 72, 141, 36, 72, 141, 104, 72, 72, 72, 72, 72, 141, 36, 72, 141, 72, 104, 72, 72, 104, 104, 72, 72, 104, 104, 72, 141, 36, 72, 141, 72, 104, 72, 72, 72, 72, 72, 104, 72, 141, 36, 72, 141, 104, 104, 104, 104, 104, 104, 72, 72, 72, 104, 104, 72, 72, 72, 141, 36, 72, 141, 104, 104, 72, 72, 141, 36, 72, 141, 104, 104, 72, 72, 104, 72, 141, 36, 72, 141, 72, 104, 72, 72, 104, 104, 72, 72, 104, 104, 72, 141, 36, 72, 141, 72, 104, 72, 72, 72, 72, 72, 104, 72, 141, 36, 72, 141, 72, 104, 104, 104, 104, 104, 72, 72, 72, 104, 104, 72, 72, 72, 141, 36, 72, 141, 104, 104, 72, 72, 141, 36, 72, 141, 104, 104, 72, 104, 104, 72, 141, 36, 72, 141, 72, 104, 72, 72, 104, 104, 72, 72, 72, 104, 72, 141, 36, 72, 141, 72, 104, 104, 72, 72, 72, 104, 104, 72, 141, 36, 72, 141, 72, 104, 104, 104, 104, 104, 72, 72, 72, 104, 72, 72, 72, 72, 141, 36, 72, 141, 104, 72, 72, 72, 141, 36, 72, 141, 104, 104, 104, 104, 104, 72, 141, 36, 72, 141, 72, 104, 72, 72, 104, 104, 72, 72, 72, 104, 72, 141, 36, 72, 141, 72, 104, 104, 72, 72, 72, 104, 104, 72, 141, 36, 72, 141, 72, 104, 104, 104, 104, 104, 72, 72, 104, 104, 72, 72, 72, 72, 141, 36, 72, 141, 104, 72, 72, 72, 141, 36, 72, 141, 104, 104, 104, 104, 104, 72, 141, 36, 72, 141, 72, 104, 72, 72, 72, 104, 72, 72, 72, 104, 72, 141, 36, 72, 141, 72, 104, 104, 104, 72, 104, 104, 72, 72, 141, 36, 72, 141, 72, 72, 104, 104, 104, 72, 72, 72, 104, 104, 72, 72, 72, 72, 141, 36, 72, 141, 72, 72, 72, 72, 141, 36, 72, 141, 104, 104, 104, 104, 104, 72, 141, 36, 72, 141, 72, 104, 72, 72, 72, 104, 104, 72, 72, 104, 72, 141, 36, 72, 141, 72, 72, 104, 104, 104, 104, 104, 72, 72, 141, 36, 72, 141, 72, 72, 72, 104, 104, 72, 72, 72, 104, 104, 72, 72, 72, 72, 141, 36, 72, 141, 72, 72, 72, 72, 141, 36, 72, 141, 104, 104, 104, 104, 104, 72, 141, 36, 72, 141, 72, 104, 72, 72, 72, 104, 104, 72, 72, 72, 72, 141, 36, 72, 141, 72, 72, 104, 104, 104, 104, 104, 72, 72, 141, 36, 72, 141, 72, 72, 72, 72, 72, 72, 72, 72, 104, 104, 72, 72, 72, 72, 141, 36, 72, 141, 72, 72, 72, 72, 141, 36, 72, 141, 104, 104, 104, 104, 104, 72, 141, 36, 72, 141, 72, 104, 72, 72, 72, 104, 104, 72, 72, 72, 72, 141, 36, 72, 141, 72, 72, 104, 104, 104, 104, 104, 72, 72, 141, 36, 72, 141, 72, 72, 72, 72, 72, 72, 72, 72, 104, 104, 72, 72, 72, 72, 141, 36, 72, 141, 72, 72, 104, 72, 141, 36, 72, 141, 104, 104, 104, 104, 104, 72, 141, 36, 72, 141, 72, 104, 72, 72, 72, 104, 104, 72, 72, 72, 72, 141, 36, 72, 141, 72, 72, 104, 104, 104, 104, 104, 72, 72, 141, 36, 72, 141, 72, 72, 72, 72, 72, 72, 72, 104, 104, 104, 72, 72, 72, 72, 141, 36, 72, 141, 72, 72, 104, 72, 141, 36, 72, 141, 104, 104, 104, 104, 104, 72, 141, 36, 72, 141, 72, 104, 72, 72, 72, 104, 104, 104, 72, 72, 72, 141, 36, 72, 141, 72, 72, 72, 104, 104, 104, 104, 72, 72, 141, 36, 72, 141, 104, 72, 72, 72, 72, 72, 72, 104, 104, 104, 72, 72, 72, 72, 141, 36, 72, 141, 72, 104, 104, 72, 141, 36, 72, 141, 104, 104, 104, 104, 104, 72, 141, 36, 72, 141, 72, 104, 72, 72, 72, 104, 104, 104, 72, 72, 72, 141, 36, 72, 141, 72, 72, 72, 104, 104, 104, 104, 72, 72, 141, 36, 72, 141, 104, 72, 72, 72, 72, 72, 72, 104, 104, 72, 72, 72, 72, 72, 141, 36, 72, 141, 72, 104, 104, 72, 141, 36, 72, 141, 104, 104, 104, 104, 104, 72, 141, 36, 72, 141, 72, 104, 72, 72, 72, 104, 104, 104, 72, 72, 72, 141, 36, 72, 141, 72, 72, 72, 104, 104, 104, 104, 72, 72, 141, 36, 72, 141, 104, 72, 72, 72, 72, 72, 72, 104, 104, 72, 72, 72, 72, 72, 141, 36, 72, 141, 104, 104, 104, 72, 141, 36, 72, 141, 104, 104, 104, 104, 72, 72, 141, 36, 72, 141, 72, 104, 72, 72, 72, 104, 104, 104, 104, 72, 72, 141, 36, 72, 141, 72, 72, 72, 72, 104, 104, 72, 72, 72, 141, 36, 72, 141, 104, 104, 72, 72, 72, 72, 104, 104, 104, 72, 72, 104, 72, 72, 141, 36, 72, 141, 104, 104, 104, 72, 141, 36, 72, 141, 72, 104, 104, 104, 72, 72, 141, 36, 72, 141, 72, 104, 72, 72, 72, 72, 104, 104, 104, 72, 72, 141, 36, 72, 141, 104, 72, 72, 72, 104, 104, 72, 72, 72, 141, 36, 72, 141, 104, 104, 72, 72, 72, 72, 104, 104, 104, 72, 72, 104, 72, 72, 141, 36, 72, 141, 104, 104, 104, 72, 141, 36, 72, 141, 72, 104, 104, 104, 72, 72, 141, 36, 72, 141, 72, 104, 72, 72, 72, 72, 104, 104, 104, 72, 72, 141, 36, 72, 141, 104, 72, 72, 72, 104, 104, 72, 72, 72, 141, 36, 72, 141, 104, 104, 72, 72, 72, 72, 104, 104, 72, 72, 72, 104, 72, 72, 141, 36, 72, 141, 104, 104, 104, 72, 141, 36, 72, 141, 72, 104, 104, 72, 72, 72, 141, 36, 72, 141, 72, 104, 72, 72, 72, 72, 104, 104, 104, 72, 72, 141, 36, 72, 141, 104, 72, 72, 72, 72, 72, 72, 72, 72, 141, 36, 72, 141, 104, 104, 104, 72, 72, 72, 104, 104, 72, 72, 72, 104, 72, 72, 141, 36, 72, 141, 104, 104, 104, 72, 141, 36, 72, 141, 72, 72, 104, 72, 72, 72, 141, 36, 72, 141, 72, 104, 72, 72, 72, 72, 72, 104, 104, 72, 72, 141, 36, 72, 141, 104, 72, 72, 72, 72, 72, 72, 72, 72, 141, 36, 72, 141, 72, 104, 104, 104, 72, 104, 104, 104, 72, 72, 72, 104, 72, 72, 141, 36, 72, 141, 104, 104, 104, 72, 141, 36, 72, 141, 72, 72, 72, 72, 72, 72, 141, 36, 72, 141, 72, 104, 104, 72, 72, 72, 72, 104, 104, 104, 72, 141, 36, 72, 141, 104, 72, 72, 72, 72, 72, 72, 72, 72, 141, 36, 72, 141, 72, 104, 104, 104, 104, 104, 104, 104, 72, 72, 72, 104, 72, 72, 141, 36, 72, 141, 104, 104, 104, 72, 141, 36, 72, 141, 72, 72, 72, 72, 72, 72, 141, 36, 72, 141, 72, 104, 104, 72, 72, 72, 72, 104, 104, 104, 72, 141, 36, 72, 141, 104, 104, 72, 72, 72, 72, 72, 104, 72, 141, 36, 72, 141, 72, 72, 104, 104, 104, 104, 104, 72, 72, 72, 104, 104, 72, 72, 141, 36, 72, 141, 104, 104, 104, 72, 141, 36, 72, 141, 72, 72, 72, 72, 72, 72, 141, 36, 72, 141, 72, 104, 104, 72, 72, 72, 72, 72, 104, 104, 72, 141, 36, 72, 141, 104, 104, 72, 72, 72, 72, 72, 104, 72, 141, 36, 72, 141, 72, 72, 104, 104, 104, 104, 104, 72, 72, 72, 104, 104, 72, 72, 141, 36, 72, 141, 104, 104, 104, 72, 141, 36, 72, 141, 72, 72, 72, 72, 72, 72, 141, 36, 72, 141, 72, 104, 104, 72, 72, 72, 72, 72, 104, 104, 72, 141, 36, 72, 141, 104, 104, 72, 72, 72, 72, 72, 104, 72, 141, 36, 72, 141, 72, 72, 72, 104, 104, 104, 72, 72, 72, 72, 104, 104, 72, 72, 141, 36, 72, 141, 104, 104, 104, 72, 141, 36, 72, 141, 72, 72, 72, 72, 72, 72, 141, 36, 72, 141, 72, 72, 104, 72, 72, 72, 72, 72, 72, 72, 72, 141, 36, 72, 141, 104, 104, 104, 72, 72, 72, 72, 104, 72, 141, 36, 72, 141, 72, 72, 72, 72, 104, 72, 72, 72, 72, 104, 104, 104, 104, 72, 141, 36, 72, 141, 104, 104, 72, 72, 141, 36, 72, 141, 72, 72, 72, 72, 72, 72, 141, 36, 72, 141, 104, 72, 104, 104, 72, 72, 72, 72, 72, 72, 72, 141, 36, 72, 141, 104, 104, 104, 104, 104, 104, 104, 104, 72, 141, 36, 72, 141, 104, 72, 72, 72, 72, 72, 72, 72, 104, 104, 104, 104, 104, 72, 141, 36, 72, 141, 104, 72, 72, 72, 141, 36, 72, 141, 104, 72, 72, 72, 104, 72, 141, 36, 72, 141, 104, 72, 104, 104, 72, 72, 72, 72, 72, 72, 72, 141, 36, 72, 141, 104, }, //colorstone { 109, 109, 109, 72, 72, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 72, 68, 72, 104, 104, 104, 104, 72, 72, 72, 73, 109, 109, 109, 109, 109, 109, 109, 37, 37, 37, 37, 37, 37, 37, 73, 109, 109, 73, 109, 73, 73, 73, 73, 73, 73, 73, 109, 109, 109, 109, 109, 109, 109, 109, 73, 72, 72, 104, 104, 104, 104, 104, 104, 104, 104, 104, 72, 104, 104, 104, 104, 104, 104, 72, 68, 72, 104, 104, 104, 72, 72, 72, 73, 109, 109, 109, 109, 109, 109, 109, 109, 73, 37, 37, 37, 37, 37, 73, 109, 109, 73, 109, 73, 73, 73, 73, 73, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 73, 72, 72, 104, 104, 104, 104, 104, 104, 104, 104, 104, 72, 72, 104, 104, 104, 104, 72, 68, 72, 104, 72, 72, 72, 73, 73, 109, 109, 73, 104, 104, 104, 104, 73, 109, 109, 73, 37, 37, 37, 73, 109, 109, 73, 109, 73, 73, 73, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 73, 109, 109, 109, 109, 73, 72, 104, 104, 104, 104, 104, 104, 104, 104, 104, 72, 72, 104, 104, 104, 104, 72, 68, 72, 72, 72, 72, 73, 109, 109, 73, 104, 104, 72, 72, 68, 72, 68, 72, 109, 109, 73, 73, 73, 109, 109, 73, 109, 109, 109, 109, 109, 109, 109, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 109, 109, 109, 109, 72, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 72, 72, 68, 72, 72, 73, 109, 109, 109, 73, 104, 72, 72, 72, 72, 68, 72, 68, 72, 73, 109, 109, 109, 109, 109, 73, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 73, 73, 73, 109, 109, 109, 72, 72, 104, 104, 104, 104, 104, 72, 104, 104, 104, 104, 104, 104, 72, 68, 68, 72, 73, 109, 109, 109, 109, 104, 104, 72, 72, 72, 72, 72, 68, 72, 68, 68, 68, 109, 146, 182, 109, 73, 109, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 109, 109, 73, 72, 72, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 72, 68, 68, 73, 73, 109, 109, 109, 73, 104, 72, 72, 72, 72, 72, 72, 72, 68, 68, 72, 68, 68, 109, 182, 109, 73, 109, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 109, 109, 73, 72, 72, 104, 104, 104, 104, 104, 104, 104, 72, 72, 68, 72, 73, 109, 109, 109, 109, 104, 104, 72, 72, 72, 72, 72, 72, 72, 72, 68, 68, 72, 68, 68, 109, 146, 109, 109, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 109, 109, 73, 72, 72, 104, 104, 104, 104, 72, 72, 68, 68, 73, 109, 109, 109, 109, 73, 104, 72, 72, 72, 72, 72, 72, 72, 68, 72, 72, 68, 68, 72, 68, 68, 109, 146, 109, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 109, 109, 109, 73, 72, 72, 72, 72, 72, 68, 68, 73, 109, 109, 109, 109, 109, 104, 104, 72, 72, 72, 72, 72, 72, 72, 72, 68, 72, 72, 68, 68, 68, 68, 68, 109, 146, 109, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 109, 109, 109, 109, 73, 68, 68, 68, 68, 73, 73, 109, 109, 109, 109, 73, 104, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 68, 68, 68, 73, 109, 146, 109, 109, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 109, 109, 109, 109, 109, 73, 73, 73, 73, 73, 109, 109, 109, 109, 104, 104, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 68, 72, 72, 72, 68, 68, 68, 73, 109, 109, 109, 109, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 109, 109, 109, 73, 73, 73, 109, 109, 146, 146, 146, 109, 109, 104, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 68, 72, 72, 72, 68, 68, 68, 73, 109, 146, 109, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 109, 109, 109, 73, 73, 73, 73, 73, 109, 146, 146, 146, 109, 104, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 68, 72, 72, 72, 68, 68, 68, 109, 109, 109, 109, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 109, 109, 109, 73, 73, 73, 73, 73, 73, 73, 109, 146, 109, 104, 72, 72, 104, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 68, 72, 72, 72, 68, 68, 73, 109, 109, 109, 109, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 109, 109, 109, 109, 73, 73, 73, 73, 73, 73, 73, 73, 109, 73, 104, 72, 104, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 68, 68, 72, 72, 72, 68, 68, 73, 109, 109, 109, 109, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 109, 109, 109, 109, 109, 73, 73, 73, 73, 73, 73, 73, 73, 73, 109, 104, 72, 104, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 68, 68, 72, 72, 68, 68, 68, 73, 109, 109, 109, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 109, 109, 73, 73, 109, 109, 73, 73, 73, 73, 73, 73, 73, 73, 109, 109, 104, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 68, 68, 72, 72, 68, 68, 68, 109, 104, 104, 109, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 109, 109, 73, 72, 72, 73, 109, 109, 73, 73, 73, 73, 73, 73, 73, 73, 109, 104, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 68, 68, 72, 68, 68, 68, 109, 104, 104, 104, 73, 109, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 109, 73, 72, 104, 72, 72, 73, 109, 73, 73, 73, 73, 73, 73, 73, 73, 109, 109, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 68, 68, 68, 68, 68, 68, 109, 104, 104, 104, 104, 72, 109, 109, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 37, 37, 73, 73, 109, 73, 72, 104, 72, 72, 72, 68, 109, 109, 73, 73, 73, 73, 73, 73, 73, 73, 109, 73, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 68, 68, 68, 68, 68, 73, 109, 109, 72, 72, 72, 72, 72, 109, 109, 109, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 37, 73, 73, 73, 73, 109, 109, 72, 104, 72, 72, 72, 72, 68, 73, 109, 109, 73, 73, 73, 73, 73, 73, 73, 109, 109, 68, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 68, 68, 68, 68, 73, 109, 109, 109, 109, 109, 109, 109, 109, 146, 146, 109, 109, 73, 73, 37, 37, 37, 37, 37, 37, 37, 73, 73, 73, 73, 73, 109, 109, 73, 104, 72, 72, 72, 72, 72, 68, 68, 109, 109, 73, 73, 73, 73, 73, 73, 73, 109, 109, 73, 72, 72, 72, 72, 72, 72, 72, 72, 72, 68, 68, 68, 73, 109, 109, 73, 73, 73, 73, 73, 73, 73, 109, 146, 146, 146, 109, 109, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 109, 109, 73, 72, 72, 72, 72, 72, 72, 72, 68, 72, 109, 109, 109, 73, 73, 73, 73, 73, 73, 109, 109, 109, 68, 72, 72, 72, 72, 72, 72, 72, 68, 68, 73, 73, 109, 109, 73, 73, 73, 73, 73, 73, 73, 73, 73, 109, 146, 146, 146, 109, 109, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 109, 109, 73, 72, 104, 72, 72, 72, 72, 72, 72, 68, 72, 73, 109, 109, 109, 73, 73, 73, 73, 73, 109, 109, 109, 73, 68, 68, 72, 72, 72, 68, 68, 68, 73, 109, 109, 109, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 109, 146, 146, 109, 109, 109, 73, 73, 73, 73, 73, 73, 73, 73, 109, 109, 109, 72, 104, 72, 72, 72, 72, 72, 72, 72, 68, 72, 68, 109, 109, 109, 73, 73, 73, 73, 73, 109, 109, 109, 109, 68, 68, 68, 68, 68, 68, 68, 73, 109, 109, 109, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 109, 109, 109, 73, 73, 109, 109, 73, 73, 73, 73, 73, 73, 109, 109, 109, 73, 104, 72, 72, 72, 72, 72, 72, 72, 72, 68, 72, 68, 73, 109, 109, 109, 73, 73, 73, 109, 109, 109, 109, 109, 73, 68, 68, 68, 68, 73, 73, 109, 109, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 109, 109, 109, 73, 73, 73, 109, 109, 73, 73, 73, 73, 109, 109, 109, 73, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 68, 72, 68, 73, 109, 146, 109, 109, 109, 109, 109, 73, 104, 104, 73, 109, 73, 73, 73, 109, 109, 109, 109, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 37, 73, 109, 109, 73, 73, 73, 73, 73, 109, 109, 109, 146, 146, 109, 109, 73, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 68, 72, 68, 73, 109, 109, 146, 109, 109, 109, 104, 104, 104, 104, 104, 104, 109, 109, 109, 109, 109, 109, 73, 73, 73, 73, 73, 73, 73, 73, 73, 37, 73, 73, 73, 73, 37, 73, 109, 109, 73, 73, 73, 73, 73, 109, 109, 146, 146, 109, 109, 109, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 68, 68, 72, 68, 73, 109, 109, 109, 109, 109, 104, 104, 104, 104, 104, 104, 104, 72, 109, 109, 109, 109, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 37, 73, 73, 73, 73, 73, 109, 109, 73, 73, 73, 73, 73, 73, 73, 109, 109, 109, 109, 109, 73, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 68, 68, 72, 68, 73, 109, 146, 109, 109, 109, 109, 104, 104, 104, 104, 104, 104, 72, 109, 109, 109, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 37, 73, 73, 73, 37, 73, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 73, 109, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 68, 68, 68, 68, 73, 109, 109, 109, 73, 109, 109, 109, 104, 104, 104, 72, 72, 72, 109, 109, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 37, 73, 73, 73, 37, 109, 73, 104, 104, 104, 104, 104, 104, 104, 104, 104, 72, 104, 104, 109, 109, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 68, 68, 72, 68, 73, 109, 109, 109, 73, 109, 73, 109, 109, 109, 72, 72, 72, 72, 109, 109, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 37, 73, 73, 37, 73, 109, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 72, 104, 104, 104, 109, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 68, 68, 68, 73, 109, 109, 109, 73, 109, 73, 73, 73, 109, 109, 109, 109, 73, 73, 109, 109, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 37, 73, 73, 37, 73, 109, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 72, 104, 104, 72, 109, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 68, 68, 73, 109, 109, 109, 73, 109, 73, 73, 73, 73, 73, 109, 109, 146, 109, 146, 109, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 37, 73, 73, 37, 109, 73, 137, 104, 104, 104, 104, 72, 104, 104, 104, 104, 72, 104, 104, 72, 109, 72, 72, 72, 72, 72, 72, 72, 72, 72, 68, 68, 73, 109, 109, 109, 109, 73, 109, 73, 73, 73, 73, 73, 73, 109, 109, 146, 146, 146, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 37, 37, 73, 37, 109, 109, 73, 137, 104, 104, 104, 104, 104, 104, 104, 104, 104, 72, 104, 104, 72, 109, 68, 72, 72, 72, 72, 72, 72, 72, 72, 68, 73, 109, 109, 109, 109, 73, 109, 73, 73, 73, 73, 73, 73, 73, 73, 109, 146, 146, 146, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 37, 37, 73, 73, 109, 109, 104, 137, 104, 104, 104, 104, 104, 104, 104, 104, 104, 72, 104, 104, 72, 109, 73, 68, 72, 72, 72, 72, 72, 72, 68, 73, 109, 109, 109, 109, 109, 73, 109, 73, 73, 73, 73, 73, 73, 73, 73, 73, 109, 146, 146, 109, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 37, 37, 37, 73, 109, 109, 104, 137, 104, 104, 104, 104, 104, 104, 104, 104, 104, 72, 104, 104, 72, 109, 109, 73, 68, 72, 72, 72, 72, 68, 73, 109, 109, 109, 109, 109, 73, 109, 73, 73, 109, 73, 73, 73, 73, 73, 73, 73, 73, 109, 146, 109, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 37, 37, 37, 109, 109, 73, 104, 137, 104, 104, 104, 104, 104, 104, 104, 104, 72, 72, 104, 104, 72, 109, 109, 109, 73, 68, 72, 72, 68, 73, 109, 109, 109, 109, 109, 109, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 146, 146, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 37, 37, 73, 109, 109, 104, 104, 137, 104, 104, 104, 104, 104, 104, 104, 104, 72, 104, 104, 104, 72, 109, 109, 109, 109, 73, 68, 68, 73, 109, 109, 146, 146, 109, 109, 73, 73, 73, 73, 73, 109, 73, 73, 73, 73, 73, 73, 73, 73, 73, 109, 109, 109, 37, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 37, 37, 73, 109, 109, 104, 104, 137, 104, 104, 104, 104, 104, 104, 104, 104, 72, 104, 104, 104, 72, 109, 109, 109, 109, 109, 73, 73, 109, 109, 146, 146, 146, 109, 73, 73, 73, 73, 73, 73, 109, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 109, 109, 73, 37, 37, 37, 73, 73, 73, 73, 73, 73, 73, 37, 37, 73, 109, 73, 104, 104, 137, 104, 104, 104, 104, 104, 104, 104, 72, 104, 104, 104, 104, 72, 109, 37, 37, 73, 73, 109, 109, 109, 109, 146, 146, 109, 73, 73, 73, 73, 109, 109, 73, 73, 73, 73, 109, 73, 73, 73, 73, 73, 73, 73, 73, 109, 73, 73, 37, 37, 73, 73, 73, 73, 73, 73, 73, 37, 73, 109, 109, 104, 104, 104, 104, 137, 104, 104, 104, 104, 104, 104, 72, 104, 104, 104, 104, 72, 109, 37, 37, 37, 37, 73, 73, 37, 73, 146, 146, 109, 73, 73, 73, 109, 109, 109, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 109, 73, 37, 37, 73, 73, 73, 73, 73, 37, 73, 109, 109, 104, 104, 104, 104, 137, 104, 104, 104, 104, 104, 72, 104, 104, 104, 104, 104, 72, 109, 37, 37, 37, 37, 36, 37, 37, 36, 73, 109, 73, 73, 73, 73, 109, 109, 109, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 109, 109, 73, 37, 37, 37, 73, 73, 73, 73, 37, 109, 109, 109, 72, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 72, 104, 104, 72, 109, 37, 37, 37, 37, 36, 37, 37, 36, 73, 109, 73, 73, 73, 73, 109, 109, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 109, 146, 146, 73, 37, 37, 37, 73, 73, 37, 73, 109, 109, 109, 109, 72, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 72, 109, 37, 37, 37, 37, 36, 37, 36, 73, 109, 109, 73, 73, 73, 73, 73, 73, 73, 109, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 109, 146, 146, 109, 73, 37, 37, 73, 73, 37, 73, 109, 109, 109, 109, 109, 72, 104, 104, 104, 104, 104, 104, 104, 104, 72, 72, 104, 104, 72, 72, 109, 37, 37, 37, 36, 37, 37, 73, 109, 109, 109, 73, 73, 73, 109, 109, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 37, 73, 73, 73, 73, 73, 109, 73, 72, 73, 109, 73, 37, 37, 37, 37, 109, 109, 109, 73, 73, 109, 109, 72, 72, 104, 104, 104, 104, 104, 104, 72, 72, 104, 72, 72, 73, 109, 37, 37, 37, 36, 37, 37, 109, 109, 109, 109, 109, 73, 73, 109, 109, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 37, 73, 73, 73, 73, 109, 73, 72, 72, 68, 73, 109, 109, 73, 73, 109, 109, 109, 73, 37, 37, 73, 109, 109, 109, 72, 104, 104, 104, 104, 104, 104, 104, 72, 72, 73, 109, 109, 36, 36, 36, 36, 36, 36, 109, 109, 109, 109, 109, 109, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 37, 73, 73, 73, 109, 73, 72, 72, 72, 68, 72, 68, 73, 109, 109, 109, 109, 73, 37, 37, 37, 37, 73, 109, 109, 109, 72, 72, 104, 104, 104, 104, 72, 72, 73, 109, 109, 109, 109, 73, 73, 73, 73, 73, 109, 109, 109, 146, 146, 146, 109, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 37, 73, 73, 109, 73, 72, 72, 72, 72, 68, 72, 68, 72, 73, 109, 109, 73, 73, 37, 37, 37, 37, 37, 73, 109, 109, 109, 73, 72, 72, 72, 72, 72, 73, 109, 73, 73, 73, 73, 73, 73, 109, 109, 109, 109, 73, 104, 104, 73, 146, 146, 109, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 37, 73, 73, 109, 73, 72, 72, 72, 72, 72, 68, 72, 68, 72, 68, 109, 109, 73, 36, 37, 37, 37, 36, 36, 37, 73, 109, 109, 109, 73, 72, 72, 73, 73, 109, 109, 73, 73, 73, 73, 73, 73, 73, 109, 109, 104, 104, 104, 104, 104, 104, 73, 109, 109, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 109, 73, 72, 72, 72, 72, 72, 72, 68, 72, 68, 72, 68, 109, 73, 37, 37, 36, 37, 37, 36, 36, 37, 37, 73, 109, 109, 109, 73, 73, 73, 109, 109, 73, 73, 73, 73, 73, 73, 73, 73, 109, 109, 104, 104, 104, 104, 104, 104, 104, 104, 73, 109, 73, 73, 73, 73, 73, 73, 73, 73, 73, 109, 73, 73, 72, 72, 72, 72, 72, 68, 72, 68, 72, 68, 68, 73, 109, 73, 37, 37, 37, 36, 36, 37, 37, 37, 37, 37, 73, 109, 109, 109, 109, 109, 146, 109, 73, 73, 73, 73, 73, 73, 73, 73, 109, 109, 104, 72, 104, 104, 104, 104, 104, 104, 104, 72, 109, 73, 73, 73, 73, 73, 73, 73, 109, 73, 72, 104, 72, 72, 72, 72, 72, 72, 72, 68, 68, 68, 73, 109, 73, 37, 37, 37, 37, 37, 36, 36, 37, 36, 37, 37, 37, 73, 109, 109, 109, 146, 146, 73, 73, 73, 73, 73, 73, 73, 73, 73, 109, 104, 104, 104, 104, 104, 104, 104, 104, 72, 104, 72, 104, 104, 73, 73, 73, 73, 73, 109, 73, 72, 104, 72, 72, 72, 72, 72, 72, 68, 72, 68, 68, 68, 73, 73, 73, 37, 37, 37, 37, 37, 36, 36, 36, 36, 37, 37, 37, 37, 73, 109, 109, 146, 109, 73, 73, 73, 73, 73, 73, 73, 73, 73, 109, 104, 104, 104, 72, 72, 104, 104, 104, 72, 104, 72, 104, 104, 72, 73, 73, 73, 109, 73, 72, 72, 104, 72, 72, 72, 72, 72, 72, 68, 72, 68, 68, 73, 109, 73, 37, 37, 36, 36, 37, 37, 37, 36, 36, 36, 36, 37, 37, 37, 37, 73, 109, 109, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 104, 104, 104, 104, 72, 72, 104, 104, 104, 72, 104, 72, 72, 72, 72, 73, 73, 109, 73, 72, 72, 72, 104, 72, 72, 72, 72, 72, 72, 68, 72, 68, 73, 109, 73, 73, 37, 37, 36, 36, 36, 37, 37, 36, 36, 36, 36, 36, 37, 37, 37, 37, 73, 109, 109, 73, 73, 73, 73, 73, 73, 73, 73, 109, 104, 104, 104, 104, 104, 104, 104, 104, 72, 72, 72, 68, 72, 72, 73, 109, 109, 73, 72, 72, 72, 72, 104, 72, 72, 72, 72, 72, 72, 68, 68, 68, 73, 109, 73, 73, 37, 37, 36, 36, 37, 36, 37, 37, 36, 36, 36, 36, 36, 37, 37, 37, 37, 73, 109, 109, 73, 73, 73, 73, 73, 73, 73, 104, 104, 104, 104, 104, 104, 104, 104, 104, 72, 72, 72, 68, 72, 73, 109, 109, 109, 73, 72, 72, 72, 72, 104, 72, 72, 72, 72, 72, 72, 68, 68, 73, 109, 73, 37, 73, 37, 37, 37, 37, 37, 37, 37, 37, 36, 36, 36, 36, 36, 36, 37, 37, 37, 37, 73, 109, 73, 73, 73, 73, 73, 73, 73, 104, 104, 104, 104, 104, 104, 104, 104, 104, 72, 72, 68, 68, 73, 109, 109, 109, 109, 73, 72, 72, 72, 72, 104, 72, 72, 72, 72, 72, 72, 68, 73, 109, 73, 73, 37, 73, 37, 37, 37, 37, 37, 37, 37, 37, 36, 36, 36, 36, 36, 36, 36, 37, 37, 37, 37, 36, 109, 73, 73, 73, 73, 73, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 72, 68, 68, 73, 109, 73, 73, 73, 109, 109, 73, 72, 72, 72, 104, 72, 72, 72, 72, 72, 72, 68, 73, 109, 73, 37, 37, 73, 37, 37, 37, 37, 36, 36, 37, 37, 37, 36, 36, 36, 36, 36, 36, 36, 37, 37, 37, 36, 73, 109, 73, 73, 73, 109, 104, 104, 104, 104, 104, 104, 104, 104, 104, 72, 72, 68, 73, 109, 73, 73, 73, 73, 73, 109, 73, 72, 72, 72, 104, 72, 72, 72, 72, 72, 68, 73, 109, 73, 37, 37, 37, 73, 37, 37, 37, 37, 36, 36, 37, 37, 37, 36, 36, 36, 36, 37, 36, 36, 36, 37, 37, 36, 73, 109, 73, 73, 109, 104, 104, 104, 104, 104, 104, 104, 104, 104, 72, 68, 68, 73, 109, 109, 73, 73, 73, 73, 73, 73, 109, 72, 72, 72, 72, 72, 72, 72, 72, 68, 73, 73, 109, 37, 37, 37, 37, 73, 37, 37, 36, 37, 37, 37, 37, 37, 37, 36, 36, 36, 36, 37, 36, 36, 36, 36, 37, 36, 73, 109, 109, 109, 109, 104, 104, 104, 104, 104, }, } ; word worldMap[mapWidth][mapHeight]= { {4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,7,7,7,7,7,7,7,7}, {4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,0,0,0,0,0,7}, {4,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7}, {4,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7}, {4,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,0,0,0,0,0,7}, {4,0,4,0,0,0,0,2,2,2,2,2,2,2,2,2,7,7,0,7,7,7,7,7}, {4,0,5,0,0,0,0,2,0,1,0,1,0,1,0,2,7,0,0,0,7,7,7,1}, {4,0,6,0,0,0,0,2,0,0,0,0,0,0,0,2,7,0,0,0,0,0,0,8}, {4,0,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,7,7,1}, {4,0,8,0,0,0,0,5,0,0,0,0,0,0,0,5,7,0,0,0,0,0,0,8}, {4,0,0,0,0,0,0,5,0,0,0,0,0,0,0,5,7,0,0,0,7,7,7,1}, {4,0,0,0,0,0,0,5,5,5,5,0,5,5,5,5,7,7,7,7,7,7,7,1}, {6,6,6,6,6,6,6,6,6,6,6,0,6,6,6,6,6,6,6,6,6,6,6,6}, {8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4}, {6,6,6,6,6,6,0,6,6,6,6,0,6,6,6,6,6,6,6,6,6,6,6,6}, {4,4,4,4,4,4,0,4,4,4,6,0,6,2,2,2,2,2,2,2,3,3,3,3}, {4,0,0,0,0,0,0,0,0,4,6,0,6,2,0,0,0,0,0,2,0,0,0,2}, {4,0,0,0,0,0,0,0,0,0,0,0,6,2,0,0,5,0,0,2,0,0,0,2}, {4,0,0,0,0,0,0,0,0,4,6,0,6,2,0,0,0,0,0,2,2,0,2,2}, {4,0,6,0,6,0,0,0,0,4,6,0,0,0,0,0,5,0,0,0,0,0,0,2}, {4,0,0,5,0,0,0,0,0,4,6,0,6,2,0,0,0,0,0,2,2,0,2,2}, {4,0,6,0,6,0,0,0,0,4,6,0,6,2,0,0,5,0,0,2,0,0,0,2}, {4,0,0,0,0,0,0,0,0,4,6,0,6,2,0,0,0,0,0,2,0,0,0,2}, {4,4,4,4,4,4,4,4,4,4,1,1,1,2,2,2,2,2,2,3,3,3,3,3} }; // Global variables, so render function can access it word drawStart = 0; word drawEnd = 0; word texNum = 0; // Render vertical line in pixel plane with textures // INPUT: // r1 first pixel addr VRAM addr of first pixel in line (top pixel) // r2 (a2r) drawStart Starting pixel of wall // r3 (a2r) drawEnd Ending pixel of wall // r4 texPos Starting texture coordinate // r5 step How much to increase the texture coordinate per screen pixel // r6 texX X coordinate on the texture // r7 x X position of line to render // r8 current FB pos Current framebuffer position in VRAM (top to bottom) // r9 end loop FB pos Last framebuffer position in VRAM of current loop // r10 texY Y coordinate on the texture // r11 gp Used as temp reg in calculations // r12 texture[texNum] Texture array of texture to draw // r13 color Pixel color // r14 ceil or floor col Ceiling or floor color // side TODO North South or East West wall side void RAYFX_drawTextureVertLine(fixed_point_t texPos, fixed_point_t step, word texX, word x) { // reg 4 5 6 7 (args) and 2 3 (retval) are safe asm( "; backup registers\n" "push r1\n" "push r8\n" "push r9\n" "push r10\n" "push r11\n" "push r12\n" "push r13\n" "push r14\n" "push r15\n" ); // setup registers asm( "addr2reg drawStart r2 ; r2 = drawStart addr\n" "read 0 r2 r2 ; r2 = drawStart value\n" "addr2reg drawEnd r3 ; r2 = drawEnd addr\n" "read 0 r3 r3 ; r2 = drawEnd value\n" "load32 0xD00000 r1 ; r1 = framebuffer addr\n" "add r1 r7 r1 ; r1 = first pixel in line (fb+x)\n" "or r0 r1 r8 ; r8 = current pixel\n" "multu r2 320 r9 ; r9 = drawStart VRAM offset\n" "add r9 r1 r9 ; r9 = last FB pos of before wall\n" "addr2reg texNum r12 ; r12 = texNum addr\n" "read 0 r12 r12 ; r12 = texNum value\n" "multu r12 4096 r12 ; r12 = texture offset (64*64 per texture)\n" "addr2reg texture r11 ; r11 = texture array\n" "add r12 r11 r12 ; r12 = texture[texNum]\n" "load32 151 r14 ; r14 = ceiling color\n" "; draw until start\n" "RAYFX_drawVlineLoopCeiling:\n" " write 0 r8 r14 ; write ceiling pixel\n" " add r8 320 r8 ; go to next line pixel\n" " bge r8 r9 2 ; keep looping until reached wall\n" " jump RAYFX_drawVlineLoopCeiling\n" "multu r3 320 r9 ; r9 = drawEnd VRAM offset\n" "add r9 r1 r9 ; r9 = last FB pos of wall\n" "; draw until floor\n" "RAYFX_drawVlineLoopWall:\n" " shiftrs r4 16 r11 ; r11 = texY = FPtoInt(texPos)\n" " and r11 63 r11 ; r11 = r11 & (texHeight-1)\n" " add r4 r5 r4 ; texPos += step\n" " multu r11 64 r11 ; r11 = texHeight * texY \n" " add r11 r6 r11 ; r11 += texX\n" " add r11 r12 r13 ; r13 = addr of color in texture array\n" " read 0 r13 r13 ; r13 = pixel color\n" " write 0 r8 r13 ; write texture pixel\n" " add r8 320 r8 ; go to next line pixel\n" " bge r8 r9 2 ; keep looping until reached floor\n" " jump RAYFX_drawVlineLoopWall\n" "load 239 r9 ; r9 = last y position\n" "multu r9 320 r9 ; r9 = screen end VRAM offset\n" "add r9 r1 r9 ; r9 = last FB pos of line\n" "load32 182 r14 ; r14 = floor color\n" "; draw until end of screen\n" "RAYFX_drawVlineLoopFloor:\n" " write 0 r8 r14 ; write floor pixel\n" " add r8 320 r8 ; go to next line pixel\n" " bgt r8 r9 2 ; keep looping until reached end of screen\n" " jump RAYFX_drawVlineLoopFloor\n" ); asm( "; restore registers\n" "pop r15\n" "pop r14\n" "pop r13\n" "pop r12\n" "pop r11\n" "pop r10\n" "pop r9\n" "pop r8\n" "pop r1\n" ); } // TO ASSEMBLY: /* word y; for(y = 0; y < screenHeight; y++) { if (y < drawStart) { fb[y][x] = 0; } else if (y >= drawEnd) { fb[y][x] = COLOR_GREY; } else { // Cast the texture coordinate to integer, and mask with (texHeight - 1) in case of overflow word texY = FP_FPtoInt(texPos) & (texHeight - 1); texPos += step; word color = texture[texNum][texHeight * texY + texX]; //make color darker for y-sides: R, G and B byte each divided through two with a "shift" and an "and" //if(side == 1) color = (color >> 1) & 109; fb[y][x] = color; } } */ int main() { // clear screen from text GFX_clearWindowtileTable(); GFX_clearWindowpaletteTable(); GFX_clearBGtileTable(); GFX_clearBGpaletteTable(); //generate some textures /* word x; word y; for(x = 0; x < texWidth; x++) { for(y = 0; y < texHeight; y++) { texture[0][texWidth * y + x] = x; texture[1][texWidth * y + x] = y; texture[2][texWidth * y + x] = x+y; texture[3][texWidth * y + x] = x-y; texture[4][texWidth * y + x] = x*y; texture[5][texWidth * y + x] = x^y; texture[6][texWidth * y + x] = x|y; texture[7][texWidth * y + x] = x&y; } } */ //x and y start position fixed_point_t posX = FP_intToFP(15); fixed_point_t posY = FP_StringToFP("11.5"); //initial direction vector fixed_point_t dirX = LUTdirX[0]; fixed_point_t dirY = LUTdirY[0]; //the 2d raycaster version of camera plane fixed_point_t planeX = LUTplaneX[0]; fixed_point_t planeY = LUTplaneY[0]; // rotation angle (loops at 360) word rotationAngle = 0; word rotationSpeed = 5; // degrees per frame fixed_point_t moveSpeed = FP_StringToFP("0.15"); while(!quitGame) { word x; for(x = 0; x < screenWidth; x++) { //calculate ray position and direction fixed_point_t cameraX = FP_Div(FP_intToFP(x<<1), FP_intToFP(screenWidth)) - FP_intToFP(1); //x-coordinate in camera space fixed_point_t rayDirX = dirX + FP_Mult(planeX, cameraX); fixed_point_t rayDirY = dirY + FP_Mult(planeY, cameraX); //which box of the map we are in word mapX = FP_FPtoInt(posX); word mapY = FP_FPtoInt(posY); //length of ray from current position to next x or y-side fixed_point_t sideDistX; fixed_point_t sideDistY; //length of ray from one x or y-side to next x or y-side //these are derived as: //deltaDistX = sqrt(1 + (rayDirY * rayDirY) / (rayDirX * rayDirX)) //deltaDistY = sqrt(1 + (rayDirX * rayDirX) / (rayDirY * rayDirY)) //which can be simplified to abs(|rayDir| / rayDirX) and abs(|rayDir| / rayDirY) //where |rayDir| is the length of the vector (rayDirX, rayDirY). Its length, //unlike (dirX, dirY) is not 1, however this does not matter, only the //ratio between deltaDistX and deltaDistY matters, due to the way the DDA //stepping further below works. So the values can be computed as below. // Division through zero is prevented by setting the result to a very high value fixed_point_t deltaDistX = (rayDirX == 0) ? 1<<30 : MATH_abs( FP_Div(FP_intToFP(1), rayDirX)); fixed_point_t deltaDistY = (rayDirY == 0) ? 1<<30 : MATH_abs( FP_Div(FP_intToFP(1), rayDirY)); fixed_point_t perpWallDist; //what direction to step in x or y-direction (either +1 or -1) word stepX; word stepY; word hit = 0; //was there a wall hit? word side; //was a NorthSouth or a EastWest wall hit? //calculate step and initial sideDist if(rayDirX < 0) { stepX = -1; sideDistX = FP_Mult((posX - FP_intToFP(mapX)), deltaDistX); } else { stepX = 1; sideDistX = FP_Mult((FP_intToFP(mapX + 1) - posX), deltaDistX); } if(rayDirY < 0) { stepY = -1; sideDistY = FP_Mult((posY - FP_intToFP(mapY)), deltaDistY); } else { stepY = 1; sideDistY = FP_Mult((FP_intToFP(mapY + 1) - posY), deltaDistY); } //perform DDA while(hit == 0) { //jump to next map square, either in x-direction, or in y-direction if(sideDistX < sideDistY) { sideDistX += deltaDistX; mapX += stepX; side = 0; } else { sideDistY += deltaDistY; mapY += stepY; side = 1; } //Check if ray has hit a wall if(worldMap[mapX][mapY] > 0) hit = 1; } //Calculate distance projected on camera direction. This is the shortest distance from the point where the wall is //hit to the camera plane. Euclidean to center camera point would give fisheye effect! //This can be computed as (mapX - posX + (1 - stepX) / 2) / rayDirX for side == 0, or same formula with Y //for size == 1, but can be simplified to the code below thanks to how sideDist and deltaDist are computed: //because they were left scaled to |rayDir|. sideDist is the entire length of the ray above after the multiple //steps, but we subtract deltaDist once because one step more into the wall was taken above. if(side == 0) perpWallDist = (sideDistX - deltaDistX); else perpWallDist = (sideDistY - deltaDistY); //Calculate height of line to draw on screen word lineHeight = FP_FPtoInt(FP_Div(FP_intToFP(screenHeight), perpWallDist)); //calculate lowest and highest pixel to fill in current stripe drawStart = - (lineHeight >> 1) + (screenHeight >> 1); if(drawStart < 0) drawStart = 0; drawEnd = (lineHeight >> 1) + (screenHeight >> 1); if(drawEnd >= screenHeight) drawEnd = screenHeight - 1; /* //choose wall color //give x and y sides different brightness char color; switch(worldMap[mapX][mapY]) { case 1: color = (side == 1) ? COLOR_DARK_RED : COLOR_RED; break; case 2: color = (side == 1) ? COLOR_DARK_GREEN : COLOR_GREEN; break; case 3: color = (side == 1) ? COLOR_DARK_BLUE : COLOR_BLUE; break; case 4: color = (side == 1) ? COLOR_GREY : COLOR_WHITE; break; default: color = (side == 1) ? COLOR_DARK_YELLOW : COLOR_YELLOW; break; } //draw the pixels of the stripe as a vertical line // Safity checks beforehand // Currently skips first line of frame as it does not render properly if (x != 0 && drawStart >= 0 && drawEnd >= drawStart && drawEnd < screenHeight) { RAYFX_drawVertLine(x, drawStart, drawEnd, color); } */ //texturing calculations texNum = worldMap[mapX][mapY] - 1; //1 subtracted from it so that texture 0 can be used! //calculate value of wallX fixed_point_t wallX; //where exactly the wall was hit if(side == 0) wallX = posY + FP_Mult(perpWallDist, rayDirY); else wallX = posX + FP_Mult(perpWallDist, rayDirX); word floormask = 0xFFFF; wallX &= floormask; // wallX-=floor(wallX) //x coordinate on the texture word texX = FP_FPtoInt(FP_Mult(wallX, FP_intToFP(texWidth))); if(side == 0 && rayDirX > 0) texX = texWidth - texX - 1; if(side == 1 && rayDirY < 0) texX = texWidth - texX - 1; // TODO: an integer-only bresenham or DDA like algorithm could make the texture coordinate stepping faster // How much to increase the texture coordinate per screen pixel fixed_point_t step = FP_Div(FP_intToFP(texHeight), FP_intToFP(lineHeight)); // Starting texture coordinate fixed_point_t texPos = FP_Mult(FP_intToFP(drawStart - (screenHeight >> 1) + (lineHeight >> 1)), step); // TMP fix for first line not rendering correctly if (x > 0) { RAYFX_drawTextureVertLine(texPos, step, texX, x); // TODO side } } // check which button is held if (BDOS_USBkeyHeld(BTN_LEFT)) { //both camera direction and camera plane must be rotated rotationAngle -= rotationSpeed; if (rotationAngle < 0) { rotationAngle += 360; } dirX = LUTdirX[rotationAngle]; dirY = LUTdirY[rotationAngle]; planeX = LUTplaneX[rotationAngle]; planeY = LUTplaneY[rotationAngle]; } else if (BDOS_USBkeyHeld(BTN_RIGHT)) { //both camera direction and camera plane must be rotated rotationAngle += rotationSpeed; if (rotationAngle >= 360) { rotationAngle -= 360; } dirX = LUTdirX[rotationAngle]; dirY = LUTdirY[rotationAngle]; planeX = LUTplaneX[rotationAngle]; planeY = LUTplaneY[rotationAngle]; } if (BDOS_USBkeyHeld(BTN_UP)) { word worldMapX = FP_FPtoInt(posX + FP_Mult(dirX, moveSpeed)); word worldMapY = FP_FPtoInt(posY); if(worldMap[worldMapX][worldMapY] == 0) { posX += FP_Mult(dirX, moveSpeed); } worldMapX = FP_FPtoInt(posX); worldMapY = FP_FPtoInt(posY + FP_Mult(dirY, moveSpeed)); if(worldMap[worldMapX][worldMapY] == 0) { posY += FP_Mult(dirY, moveSpeed); } } else if (BDOS_USBkeyHeld(BTN_DOWN)) { word worldMapX = FP_FPtoInt(posX - FP_Mult(dirX, moveSpeed)); word worldMapY = FP_FPtoInt(posY); if(worldMap[worldMapX][worldMapY] == 0) { posX -= FP_Mult(dirX, moveSpeed); } worldMapX = FP_FPtoInt(posX); worldMapY = FP_FPtoInt(posY - FP_Mult(dirY, moveSpeed)); if(worldMap[worldMapX][worldMapY] == 0) { posY -= FP_Mult(dirY, moveSpeed); } } if (HID_FifoAvailable()) { word c = HID_FifoRead(); if (c == 27) // escape { GFX_clearPXframebuffer(); return 'q'; } } } return 'q'; } void interrupt() { // handle all interrupts word i = getIntID(); switch(i) { case INTID_TIMER1: timer1Value = 1; // notify ending of timer1 break; case INTID_TIMER2: break; case INTID_UART0: break; case INTID_GPU: break; case INTID_TIMER3: break; case INTID_PS2: break; case INTID_UART1: break; case INTID_UART2: break; } }