1
0

RAYCAST.C 161 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139
  1. /*
  2. * Raycaster, based on lodev engine tutorial
  3. */
  4. #define word char
  5. #include "LIB/MATH.C"
  6. #include "LIB/STDLIB.C"
  7. #include "LIB/SYS.C"
  8. #include "LIB/GFX.C"
  9. #include "LIB/FP.C"
  10. #define screenWidth 320
  11. #define screenHeight 240
  12. #define mapWidth 24
  13. #define mapHeight 24
  14. #define BTN_LEFT 256
  15. #define BTN_RIGHT 257
  16. #define BTN_UP 258
  17. #define BTN_DOWN 259
  18. // Colors
  19. #define COLOR_RED 224
  20. #define COLOR_DARK_RED 96
  21. #define COLOR_GREEN 28
  22. #define COLOR_DARK_GREEN 12
  23. #define COLOR_BLUE 3
  24. #define COLOR_DARK_BLUE 2
  25. #define COLOR_WHITE 0xFF
  26. #define COLOR_GREY 0xB6
  27. #define COLOR_YELLOW 0xFC
  28. #define COLOR_DARK_YELLOW 0x90
  29. #define texWidth 64
  30. #define texHeight 64
  31. #define FB_ADDR 0xD00000
  32. #define TEX_ADDR 0x440000
  33. // Framebuffer. fb[Y][X] (bottom right is [239][319])
  34. char (*fb)[screenWidth] = (char (*)[screenWidth]) FB_ADDR;
  35. word quitGame = 0;
  36. word LUTdirX[360] = {
  37. -65526, -65496, -65446, -65376, -65287, -65177, -65048, -64898, -64729, -64540, -64332, -64104,
  38. -63856, -63589, -63303, -62997, -62672, -62328, -61966, -61584, -61183, -60764, -60326, -59870,
  39. -59396, -58903, -58393, -57865, -57319, -56756, -56175, -55578, -54963, -54332, -53684, -53020,
  40. -52339, -51643, -50931, -50203, -49461, -48703, -47930, -47143, -46341, -45525, -44695, -43852,
  41. -42995, -42126, -41243, -40348, -39441, -38521, -37590, -36647, -35693, -34729, -33754, -32768,
  42. -31772, -30767, -29753, -28729, -27697, -26656, -25607, -24550, -23486, -22415, -21336, -20252,
  43. -19161, -18064, -16962, -15855, -14742, -13626, -12505, -11380, -10252, -9121, -7987, -6850,
  44. -5712, -4572, -3430, -2287, -1144, 0, 1144, 2287, 3430, 4572, 5712, 6850,
  45. 7987, 9121, 10252, 11380, 12505, 13626, 14742, 15855, 16962, 18064, 19161, 20252,
  46. 21336, 22415, 23486, 24550, 25607, 26656, 27697, 28729, 29753, 30767, 31772, 32768,
  47. 33754, 34729, 35693, 36647, 37590, 38521, 39441, 40348, 41243, 42126, 42995, 43852,
  48. 44695, 45525, 46341, 47143, 47930, 48703, 49461, 50203, 50931, 51643, 52339, 53020,
  49. 53684, 54332, 54963, 55578, 56175, 56756, 57319, 57865, 58393, 58903, 59396, 59870,
  50. 60326, 60764, 61183, 61584, 61966, 62328, 62672, 62997, 63303, 63589, 63856, 64104,
  51. 64332, 64540, 64729, 64898, 65048, 65177, 65287, 65376, 65446, 65496, 65526, 65536,
  52. 65526, 65496, 65446, 65376, 65287, 65177, 65048, 64898, 64729, 64540, 64332, 64104,
  53. 63856, 63589, 63303, 62997, 62672, 62328, 61966, 61584, 61183, 60764, 60326, 59870,
  54. 59396, 58903, 58393, 57865, 57319, 56756, 56175, 55578, 54963, 54332, 53684, 53020,
  55. 52339, 51643, 50931, 50203, 49461, 48703, 47930, 47143, 46341, 45525, 44695, 43852,
  56. 42995, 42126, 41243, 40348, 39441, 38521, 37590, 36647, 35693, 34729, 33754, 32768,
  57. 31772, 30767, 29753, 28729, 27697, 26656, 25607, 24550, 23486, 22415, 21336, 20252,
  58. 19161, 18064, 16962, 15855, 14742, 13626, 12505, 11380, 10252, 9121, 7987, 6850,
  59. 5712, 4572, 3430, 2287, 1144, 0, -1144, -2287, -3430, -4572, -5712, -6850,
  60. -7987, -9121, -10252, -11380, -12505, -13626, -14742, -15855, -16962, -18064, -19161, -20252,
  61. -21336, -22415, -23486, -24550, -25607, -26656, -27697, -28729, -29753, -30767, -31772, -32768,
  62. -33754, -34729, -35693, -36647, -37590, -38521, -39441, -40348, -41243, -42126, -42995, -43852,
  63. -44695, -45525, -46341, -47143, -47930, -48703, -49461, -50203, -50931, -51643, -52339, -53020,
  64. -53684, -54332, -54963, -55578, -56175, -56756, -57319, -57865, -58393, -58903, -59396, -59870,
  65. -60326, -60764, -61183, -61584, -61966, -62328, -62672, -62997, -63303, -63589, -63856, -64104,
  66. -64332, -64540, -64729, -64898, -65048, -65177, -65287, -65376, -65446, -65496, -65526, -65536
  67. };
  68. word LUTdirY[360] = {
  69. 1144, 2287, 3430, 4572, 5712, 6850, 7987, 9121, 10252, 11380, 12505, 13626,
  70. 14742, 15855, 16962, 18064, 19161, 20252, 21336, 22415, 23486, 24550, 25607, 26656,
  71. 27697, 28729, 29753, 30767, 31772, 32768, 33754, 34729, 35693, 36647, 37590, 38521,
  72. 39441, 40348, 41243, 42126, 42995, 43852, 44695, 45525, 46341, 47143, 47930, 48703,
  73. 49461, 50203, 50931, 51643, 52339, 53020, 53684, 54332, 54963, 55578, 56175, 56756,
  74. 57319, 57865, 58393, 58903, 59396, 59870, 60326, 60764, 61183, 61584, 61966, 62328,
  75. 62672, 62997, 63303, 63589, 63856, 64104, 64332, 64540, 64729, 64898, 65048, 65177,
  76. 65287, 65376, 65446, 65496, 65526, 65536, 65526, 65496, 65446, 65376, 65287, 65177,
  77. 65048, 64898, 64729, 64540, 64332, 64104, 63856, 63589, 63303, 62997, 62672, 62328,
  78. 61966, 61584, 61183, 60764, 60326, 59870, 59396, 58903, 58393, 57865, 57319, 56756,
  79. 56175, 55578, 54963, 54332, 53684, 53020, 52339, 51643, 50931, 50203, 49461, 48703,
  80. 47930, 47143, 46341, 45525, 44695, 43852, 42995, 42126, 41243, 40348, 39441, 38521,
  81. 37590, 36647, 35693, 34729, 33754, 32768, 31772, 30767, 29753, 28729, 27697, 26656,
  82. 25607, 24550, 23486, 22415, 21336, 20252, 19161, 18064, 16962, 15855, 14742, 13626,
  83. 12505, 11380, 10252, 9121, 7987, 6850, 5712, 4572, 3430, 2287, 1144, 0,
  84. -1144, -2287, -3430, -4572, -5712, -6850, -7987, -9121, -10252, -11380, -12505, -13626,
  85. -14742, -15855, -16962, -18064, -19161, -20252, -21336, -22415, -23486, -24550, -25607, -26656,
  86. -27697, -28729, -29753, -30767, -31772, -32768, -33754, -34729, -35693, -36647, -37590, -38521,
  87. -39441, -40348, -41243, -42126, -42995, -43852, -44695, -45525, -46341, -47143, -47930, -48703,
  88. -49461, -50203, -50931, -51643, -52339, -53020, -53684, -54332, -54963, -55578, -56175, -56756,
  89. -57319, -57865, -58393, -58903, -59396, -59870, -60326, -60764, -61183, -61584, -61966, -62328,
  90. -62672, -62997, -63303, -63589, -63856, -64104, -64332, -64540, -64729, -64898, -65048, -65177,
  91. -65287, -65376, -65446, -65496, -65526, -65536, -65526, -65496, -65446, -65376, -65287, -65177,
  92. -65048, -64898, -64729, -64540, -64332, -64104, -63856, -63589, -63303, -62997, -62672, -62328,
  93. -61966, -61584, -61183, -60764, -60326, -59870, -59396, -58903, -58393, -57865, -57319, -56756,
  94. -56175, -55578, -54963, -54332, -53684, -53020, -52339, -51643, -50931, -50203, -49461, -48703,
  95. -47930, -47143, -46341, -45525, -44695, -43852, -42995, -42126, -41243, -40348, -39441, -38521,
  96. -37590, -36647, -35693, -34729, -33754, -32768, -31772, -30767, -29753, -28729, -27697, -26656,
  97. -25607, -24550, -23486, -22415, -21336, -20252, -19161, -18064, -16962, -15855, -14742, -13626,
  98. -12505, -11380, -10252, -9121, -7987, -6850, -5712, -4572, -3430, -2287, -1144, 0
  99. };
  100. word LUTplaneX[360] = {
  101. 755, 1510, 2264, 3017, 3770, 4521, 5271, 6020, 6766, 7511, 8253, 8993,
  102. 9730, 10464, 11195, 11922, 12646, 13366, 14082, 14794, 15501, 16203, 16901, 17593,
  103. 18280, 18961, 19637, 20306, 20970, 21627, 22277, 22921, 23558, 24187, 24809, 25424,
  104. 26031, 26630, 27220, 27803, 28377, 28942, 29499, 30047, 30585, 31114, 31634, 32144,
  105. 32644, 33134, 33614, 34084, 34544, 34993, 35431, 35859, 36276, 36681, 37076, 37459,
  106. 37831, 38191, 38539, 38876, 39201, 39514, 39815, 40104, 40381, 40645, 40897, 41137,
  107. 41364, 41578, 41780, 41969, 42145, 42309, 42459, 42597, 42721, 42833, 42931, 43017,
  108. 43089, 43148, 43194, 43227, 43247, 43254, 43247, 43227, 43194, 43148, 43089, 43017,
  109. 42931, 42833, 42721, 42597, 42459, 42309, 42145, 41969, 41780, 41578, 41364, 41137,
  110. 40897, 40645, 40381, 40104, 39815, 39514, 39201, 38876, 38539, 38191, 37831, 37459,
  111. 37076, 36681, 36276, 35859, 35431, 34993, 34544, 34084, 33614, 33134, 32644, 32144,
  112. 31634, 31114, 30585, 30047, 29499, 28942, 28377, 27803, 27220, 26630, 26031, 25424,
  113. 24809, 24187, 23558, 22921, 22277, 21627, 20970, 20306, 19637, 18961, 18280, 17593,
  114. 16901, 16203, 15501, 14794, 14082, 13366, 12646, 11922, 11195, 10464, 9730, 8993,
  115. 8253, 7511, 6766, 6020, 5271, 4521, 3770, 3017, 2264, 1510, 755, 0,
  116. -755, -1510, -2264, -3017, -3770, -4521, -5271, -6020, -6766, -7511, -8253, -8993,
  117. -9730, -10464, -11195, -11922, -12646, -13366, -14082, -14794, -15501, -16203, -16901, -17593,
  118. -18280, -18961, -19637, -20306, -20970, -21627, -22277, -22921, -23558, -24187, -24809, -25424,
  119. -26031, -26630, -27220, -27803, -28377, -28942, -29499, -30047, -30585, -31114, -31634, -32144,
  120. -32644, -33134, -33614, -34084, -34544, -34993, -35431, -35859, -36276, -36681, -37076, -37459,
  121. -37831, -38191, -38539, -38876, -39201, -39514, -39815, -40104, -40381, -40645, -40897, -41137,
  122. -41364, -41578, -41780, -41969, -42145, -42309, -42459, -42597, -42721, -42833, -42931, -43017,
  123. -43089, -43148, -43194, -43227, -43247, -43254, -43247, -43227, -43194, -43148, -43089, -43017,
  124. -42931, -42833, -42721, -42597, -42459, -42309, -42145, -41969, -41780, -41578, -41364, -41137,
  125. -40897, -40645, -40381, -40104, -39815, -39514, -39201, -38876, -38539, -38191, -37831, -37459,
  126. -37076, -36681, -36276, -35859, -35431, -34993, -34544, -34084, -33614, -33134, -32644, -32144,
  127. -31634, -31114, -30585, -30047, -29499, -28942, -28377, -27803, -27220, -26630, -26031, -25424,
  128. -24809, -24187, -23558, -22921, -22277, -21627, -20970, -20306, -19637, -18961, -18280, -17593,
  129. -16901, -16203, -15501, -14794, -14082, -13366, -12646, -11922, -11195, -10464, -9730, -8993,
  130. -8253, -7511, -6766, -6020, -5271, -4521, -3770, -3017, -2264, -1510, -755, 0
  131. };
  132. word LUTplaneY[360] = {
  133. 43247, 43227, 43194, 43148, 43089, 43017, 42931, 42833, 42721, 42597, 42459, 42309,
  134. 42145, 41969, 41780, 41578, 41364, 41137, 40897, 40645, 40381, 40104, 39815, 39514,
  135. 39201, 38876, 38539, 38191, 37831, 37459, 37076, 36681, 36276, 35859, 35431, 34993,
  136. 34544, 34084, 33614, 33134, 32644, 32144, 31634, 31114, 30585, 30047, 29499, 28942,
  137. 28377, 27803, 27220, 26630, 26031, 25424, 24809, 24187, 23558, 22921, 22277, 21627,
  138. 20970, 20306, 19637, 18961, 18280, 17593, 16901, 16203, 15501, 14794, 14082, 13366,
  139. 12646, 11922, 11195, 10464, 9730, 8993, 8253, 7511, 6766, 6020, 5271, 4521,
  140. 3770, 3017, 2264, 1510, 755, 0, -755, -1510, -2264, -3017, -3770, -4521,
  141. -5271, -6020, -6766, -7511, -8253, -8993, -9730, -10464, -11195, -11922, -12646, -13366,
  142. -14082, -14794, -15501, -16203, -16901, -17593, -18280, -18961, -19637, -20306, -20970, -21627,
  143. -22277, -22921, -23558, -24187, -24809, -25424, -26031, -26630, -27220, -27803, -28377, -28942,
  144. -29499, -30047, -30585, -31114, -31634, -32144, -32644, -33134, -33614, -34084, -34544, -34993,
  145. -35431, -35859, -36276, -36681, -37076, -37459, -37831, -38191, -38539, -38876, -39201, -39514,
  146. -39815, -40104, -40381, -40645, -40897, -41137, -41364, -41578, -41780, -41969, -42145, -42309,
  147. -42459, -42597, -42721, -42833, -42931, -43017, -43089, -43148, -43194, -43227, -43247, -43254,
  148. -43247, -43227, -43194, -43148, -43089, -43017, -42931, -42833, -42721, -42597, -42459, -42309,
  149. -42145, -41969, -41780, -41578, -41364, -41137, -40897, -40645, -40381, -40104, -39815, -39514,
  150. -39201, -38876, -38539, -38191, -37831, -37459, -37076, -36681, -36276, -35859, -35431, -34993,
  151. -34544, -34084, -33614, -33134, -32644, -32144, -31634, -31114, -30585, -30047, -29499, -28942,
  152. -28377, -27803, -27220, -26630, -26031, -25424, -24809, -24187, -23558, -22921, -22277, -21627,
  153. -20970, -20306, -19637, -18961, -18280, -17593, -16901, -16203, -15501, -14794, -14082, -13366,
  154. -12646, -11922, -11195, -10464, -9730, -8993, -8253, -7511, -6766, -6020, -5271, -4521,
  155. -3770, -3017, -2264, -1510, -755, 0, 755, 1510, 2264, 3017, 3770, 4521,
  156. 5271, 6020, 6766, 7511, 8253, 8993, 9730, 10464, 11195, 11922, 12646, 13366,
  157. 14082, 14794, 15501, 16203, 16901, 17593, 18280, 18961, 19637, 20306, 20970, 21627,
  158. 22277, 22921, 23558, 24187, 24809, 25424, 26031, 26630, 27220, 27803, 28377, 28942,
  159. 29499, 30047, 30585, 31114, 31634, 32144, 32644, 33134, 33614, 34084, 34544, 34993,
  160. 35431, 35859, 36276, 36681, 37076, 37459, 37831, 38191, 38539, 38876, 39201, 39514,
  161. 39815, 40104, 40381, 40645, 40897, 41137, 41364, 41578, 41780, 41969, 42145, 42309,
  162. 42459, 42597, 42721, 42833, 42931, 43017, 43089, 43148, 43194, 43227, 43247, 43254
  163. };
  164. word worldMap[mapWidth][mapHeight]=
  165. {
  166. {4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,7,7,7,7,7,7,7,7},
  167. {4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,0,0,0,0,0,7},
  168. {4,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7},
  169. {4,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7},
  170. {4,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,0,0,0,0,0,7},
  171. {4,0,4,0,0,0,0,5,5,5,5,5,5,5,5,5,7,7,0,7,7,7,7,7},
  172. {4,0,5,0,0,0,0,5,0,5,0,5,0,5,0,5,7,0,0,0,7,7,7,1},
  173. {4,0,6,0,0,0,0,5,0,0,0,0,0,0,0,5,7,0,0,0,0,0,0,8},
  174. {4,0,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,7,7,1},
  175. {4,0,8,0,0,0,0,5,0,0,0,0,0,0,0,5,7,0,0,0,0,0,0,8},
  176. {4,0,0,0,0,0,0,5,0,0,0,0,0,0,0,5,7,0,0,0,7,7,7,1},
  177. {4,0,0,0,0,0,0,5,5,5,5,0,5,5,5,5,7,7,7,7,7,7,7,1},
  178. {6,6,6,6,6,6,6,6,6,6,6,0,6,6,6,6,6,6,6,6,6,6,6,6},
  179. {8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4},
  180. {6,6,6,6,6,6,0,6,6,6,6,0,6,6,6,6,6,6,6,6,6,6,6,6},
  181. {4,4,4,4,4,4,0,4,4,4,6,0,6,2,2,2,2,2,2,2,3,3,3,3},
  182. {4,0,0,0,0,0,0,0,0,4,6,0,6,2,0,0,0,0,0,2,0,0,0,2},
  183. {4,0,0,0,0,0,0,0,0,0,0,0,6,2,0,0,5,0,0,2,0,0,0,2},
  184. {4,0,0,0,0,0,0,0,0,4,6,0,6,2,0,0,0,0,0,2,2,0,2,2},
  185. {4,0,6,0,6,0,0,0,0,4,6,0,0,0,0,0,5,0,0,0,0,0,0,2},
  186. {4,0,0,5,0,0,0,0,0,4,6,0,6,2,0,0,0,0,0,2,2,0,2,2},
  187. {4,0,6,0,6,0,0,0,0,4,6,0,6,2,0,0,5,0,0,2,0,0,0,2},
  188. {4,0,0,0,0,0,0,0,0,4,6,0,6,2,0,0,0,0,0,2,0,0,0,2},
  189. {4,4,4,4,4,4,4,4,4,4,1,1,1,2,2,2,2,2,2,3,3,3,3,3}
  190. };
  191. // Render vertical line in pixel plane
  192. // INPUT:
  193. // r4 = x (which vertical line)
  194. // r5 = y when to start drawing line
  195. // r6 = y when to stop drawing line
  196. // r7 = color of line
  197. void RAYFX_drawVertLine(word x, word start, word end, char color)
  198. {
  199. // reg 4 5 6 7 and 2 (retval) are safe
  200. asm(
  201. "; backup registers\n"
  202. "push r9\n"
  203. );
  204. asm(
  205. "load32 0xD00000 r9 ; r9 = framebuffer addr\n"
  206. "add r9 r4 r4 ; r4 = first pixel in line\n"
  207. "multu r5 320 r9 ; r9 = start with line offset\n"
  208. "add r9 r4 r5 ; r5 = fb addr of start\n"
  209. "multu r6 320 r9 ; r9 = end with line offset\n"
  210. "add r9 r4 r6 ; r6 = fb addr of start\n"
  211. "load 239 r2 ; r2 = y endloop\n"
  212. "multu r2 320 r9 ; r9 = start line offset\n"
  213. "add r9 r4 r2 ; r2 = fb addr of final pixel\n"
  214. "; draw until start\n"
  215. "RAYFX_drawVlineLoopCeiling:\n"
  216. " write 0 r4 r0 ; write black pixel\n"
  217. " add r4 320 r4 ; go to next line pixel\n"
  218. " bge r4 r5 2 ; keep looping until reached start\n"
  219. " jump RAYFX_drawVlineLoopCeiling\n"
  220. "; draw until end\n"
  221. "RAYFX_drawVlineLoopWall:\n"
  222. " write 0 r4 r7 ; write color pixel\n"
  223. " add r4 320 r4 ; go to next line pixel\n"
  224. " bge r4 r6 2 ; keep looping until reached end\n"
  225. " jump RAYFX_drawVlineLoopWall\n"
  226. "; draw until final pixel\n"
  227. "RAYFX_drawVlineLoopFloor:\n"
  228. " write 0 r4 r0 ; write black pixel\n"
  229. " add r4 320 r4 ; go to next line pixel\n"
  230. " bge r4 r2 2 ; keep looping until reached end of screen\n"
  231. " jump RAYFX_drawVlineLoopFloor\n"
  232. );
  233. asm(
  234. "; restore registers\n"
  235. "pop r9\n"
  236. );
  237. }
  238. word texture[8][texWidth*texHeight]=
  239. {
  240. // eagle
  241. {
  242. 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73,
  243. 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73,
  244. 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,
  245. 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,
  246. 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,
  247. 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,
  248. 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,
  249. 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,
  250. 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,
  251. 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,
  252. 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,
  253. 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,
  254. 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,
  255. 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,
  256. 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,
  257. 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,
  258. 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,
  259. 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,
  260. 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,
  261. 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,
  262. 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,
  263. 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,
  264. 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,
  265. 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,
  266. 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,
  267. 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,
  268. 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,
  269. 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,
  270. 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,
  271. 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,
  272. 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,
  273. 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,
  274. 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,
  275. 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,
  276. 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,
  277. 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,
  278. 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,
  279. 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,
  280. 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,
  281. 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,
  282. 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,
  283. 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,
  284. 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,
  285. 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,
  286. 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,
  287. 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,
  288. 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,
  289. 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,
  290. 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,
  291. 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,
  292. 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,
  293. 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,
  294. 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,
  295. 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,
  296. 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,
  297. 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,
  298. 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,
  299. 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,
  300. 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,
  301. 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,
  302. 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,
  303. 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,
  304. 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,
  305. 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,
  306. },
  307. //redbrick
  308. {
  309. 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73,
  310. 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73,
  311. 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,
  312. 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,
  313. 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,
  314. 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,
  315. 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,
  316. 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,
  317. 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,
  318. 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,
  319. 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,
  320. 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 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,
  321. 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,
  322. 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,
  323. 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,
  324. 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,
  325. 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,
  326. 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,
  327. 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,
  328. 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,
  329. 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,
  330. 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73,
  331. 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,
  332. 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,
  333. 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,
  334. 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,
  335. 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,
  336. 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,
  337. 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,
  338. 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,
  339. 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,
  340. 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,
  341. 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,
  342. 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,
  343. 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,
  344. 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,
  345. 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,
  346. 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,
  347. 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,
  348. 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,
  349. 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,
  350. 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 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,
  351. 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,
  352. 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,
  353. 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,
  354. 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,
  355. 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,
  356. 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,
  357. 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,
  358. 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,
  359. 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,
  360. 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,
  361. 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,
  362. 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,
  363. 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,
  364. 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,
  365. 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,
  366. 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,
  367. 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,
  368. 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,
  369. 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,
  370. 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,
  371. 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73,
  372. 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73,
  373. },
  374. // purplestone
  375. {
  376. 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,
  377. 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,
  378. 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,
  379. 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,
  380. 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,
  381. 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,
  382. 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,
  383. 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,
  384. 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,
  385. 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,
  386. 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,
  387. 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,
  388. 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,
  389. 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,
  390. 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,
  391. 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,
  392. 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,
  393. 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,
  394. 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,
  395. 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,
  396. 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,
  397. 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,
  398. 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,
  399. 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,
  400. 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,
  401. 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,
  402. 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,
  403. 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,
  404. 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,
  405. 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,
  406. 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,
  407. 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,
  408. 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,
  409. 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,
  410. 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,
  411. 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,
  412. 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,
  413. 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,
  414. 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,
  415. 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,
  416. 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,
  417. 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,
  418. 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,
  419. 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,
  420. 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,
  421. 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,
  422. 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,
  423. 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,
  424. 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,
  425. 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,
  426. 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,
  427. 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,
  428. 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,
  429. 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,
  430. 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,
  431. 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,
  432. 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,
  433. 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,
  434. 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,
  435. 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,
  436. 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,
  437. 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,
  438. 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,
  439. 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,
  440. },
  441. // greystone
  442. {
  443. 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,
  444. 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,
  445. 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,
  446. 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,
  447. 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,
  448. 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,
  449. 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,
  450. 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,
  451. 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,
  452. 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,
  453. 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,
  454. 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,
  455. 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,
  456. 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,
  457. 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,
  458. 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,
  459. 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,
  460. 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,
  461. 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,
  462. 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,
  463. 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,
  464. 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,
  465. 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,
  466. 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,
  467. 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,
  468. 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,
  469. 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,
  470. 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,
  471. 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,
  472. 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,
  473. 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,
  474. 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,
  475. 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,
  476. 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,
  477. 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,
  478. 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,
  479. 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,
  480. 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,
  481. 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,
  482. 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,
  483. 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,
  484. 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,
  485. 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,
  486. 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,
  487. 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,
  488. 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,
  489. 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,
  490. 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,
  491. 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,
  492. 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,
  493. 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,
  494. 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,
  495. 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,
  496. 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,
  497. 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,
  498. 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,
  499. 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,
  500. 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,
  501. 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,
  502. 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,
  503. 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,
  504. 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,
  505. 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 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,
  506. 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73,
  507. },
  508. // bluestone
  509. {
  510. 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,
  511. 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,
  512. 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,
  513. 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,
  514. 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,
  515. 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,
  516. 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,
  517. 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,
  518. 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,
  519. 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,
  520. 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,
  521. 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,
  522. 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,
  523. 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,
  524. 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,
  525. 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,
  526. 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,
  527. 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,
  528. 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,
  529. 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,
  530. 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,
  531. 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,
  532. 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,
  533. 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,
  534. 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,
  535. 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,
  536. 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,
  537. 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,
  538. 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,
  539. 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,
  540. 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,
  541. 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,
  542. 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,
  543. 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,
  544. 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,
  545. 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,
  546. 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,
  547. 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,
  548. 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,
  549. 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,
  550. 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,
  551. 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,
  552. 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,
  553. 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,
  554. 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,
  555. 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,
  556. 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,
  557. 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,
  558. 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,
  559. 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,
  560. 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,
  561. 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,
  562. 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,
  563. 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,
  564. 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,
  565. 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,
  566. 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,
  567. 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,
  568. 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,
  569. 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,
  570. 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,
  571. 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,
  572. 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,
  573. 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73,
  574. },
  575. // mossy
  576. {
  577. 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,
  578. 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,
  579. 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,
  580. 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,
  581. 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,
  582. 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,
  583. 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,
  584. 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,
  585. 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,
  586. 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,
  587. 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,
  588. 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,
  589. 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,
  590. 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,
  591. 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,
  592. 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,
  593. 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,
  594. 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,
  595. 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,
  596. 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,
  597. 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,
  598. 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,
  599. 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,
  600. 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,
  601. 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,
  602. 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,
  603. 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,
  604. 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,
  605. 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,
  606. 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,
  607. 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,
  608. 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,
  609. 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,
  610. 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,
  611. 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,
  612. 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,
  613. 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,
  614. 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,
  615. 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,
  616. 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,
  617. 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,
  618. 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,
  619. 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,
  620. 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,
  621. 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,
  622. 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,
  623. 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,
  624. 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,
  625. 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,
  626. 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,
  627. 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,
  628. 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,
  629. 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,
  630. 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,
  631. 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,
  632. 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,
  633. 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,
  634. 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,
  635. 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,
  636. 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,
  637. 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,
  638. 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,
  639. 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 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,
  640. 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73,
  641. },
  642. // wood
  643. {
  644. 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,
  645. 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,
  646. 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,
  647. 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,
  648. 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,
  649. 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,
  650. 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,
  651. 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,
  652. 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,
  653. 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,
  654. 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,
  655. 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,
  656. 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,
  657. 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,
  658. 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,
  659. 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,
  660. 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,
  661. 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,
  662. 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,
  663. 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,
  664. 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,
  665. 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,
  666. 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,
  667. 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,
  668. 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,
  669. 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,
  670. 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,
  671. 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,
  672. 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,
  673. 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,
  674. 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,
  675. 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,
  676. 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,
  677. 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,
  678. 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,
  679. 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,
  680. 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,
  681. 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,
  682. 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,
  683. 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,
  684. 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,
  685. 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,
  686. 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,
  687. 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,
  688. 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,
  689. 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,
  690. 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,
  691. 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,
  692. 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,
  693. 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,
  694. 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,
  695. 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,
  696. 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,
  697. 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,
  698. 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,
  699. 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,
  700. 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,
  701. 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,
  702. 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,
  703. 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,
  704. 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,
  705. 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,
  706. 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,
  707. 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,
  708. },
  709. //colorstone
  710. {
  711. 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,
  712. 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,
  713. 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,
  714. 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,
  715. 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,
  716. 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,
  717. 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,
  718. 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,
  719. 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,
  720. 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,
  721. 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,
  722. 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,
  723. 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,
  724. 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,
  725. 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,
  726. 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,
  727. 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,
  728. 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,
  729. 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,
  730. 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,
  731. 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,
  732. 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,
  733. 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,
  734. 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,
  735. 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,
  736. 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,
  737. 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,
  738. 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,
  739. 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,
  740. 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,
  741. 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,
  742. 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,
  743. 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,
  744. 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,
  745. 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,
  746. 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,
  747. 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,
  748. 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,
  749. 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,
  750. 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,
  751. 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,
  752. 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,
  753. 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,
  754. 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,
  755. 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,
  756. 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,
  757. 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,
  758. 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,
  759. 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,
  760. 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,
  761. 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,
  762. 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,
  763. 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,
  764. 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,
  765. 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,
  766. 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,
  767. 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,
  768. 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,
  769. 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,
  770. 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,
  771. 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,
  772. 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,
  773. 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,
  774. 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,
  775. },
  776. }
  777. ;
  778. int main()
  779. {
  780. // clear screen from text
  781. GFX_clearWindowtileTable();
  782. GFX_clearWindowpaletteTable();
  783. GFX_clearBGtileTable();
  784. GFX_clearBGpaletteTable();
  785. //generate some textures
  786. /*
  787. word x;
  788. word y;
  789. for(x = 0; x < texWidth; x++)
  790. {
  791. for(y = 0; y < texHeight; y++)
  792. {
  793. texture[0][texWidth * y + x] = x;
  794. texture[1][texWidth * y + x] = y;
  795. texture[2][texWidth * y + x] = x+y;
  796. texture[3][texWidth * y + x] = x-y;
  797. texture[4][texWidth * y + x] = x*y;
  798. texture[5][texWidth * y + x] = x^y;
  799. texture[6][texWidth * y + x] = x|y;
  800. texture[7][texWidth * y + x] = x&y;
  801. }
  802. }
  803. */
  804. //x and y start position
  805. fixed_point_t posX = FP_intToFP(22);
  806. fixed_point_t posY = FP_StringToFP("11.5");
  807. //initial direction vector
  808. fixed_point_t dirX = LUTdirX[0];
  809. fixed_point_t dirY = LUTdirY[0];
  810. //the 2d raycaster version of camera plane
  811. fixed_point_t planeX = LUTplaneX[0];
  812. fixed_point_t planeY = LUTplaneY[0];
  813. // rotation angle (loops at 360)
  814. word rotationAngle = 0;
  815. word rotationSpeed = 3; // degrees per frame
  816. fixed_point_t moveSpeed = FP_StringToFP("0.15");
  817. while(!quitGame)
  818. {
  819. word x;
  820. for(x = 0; x < screenWidth; x++)
  821. {
  822. //calculate ray position and direction
  823. fixed_point_t cameraX = FP_Div(FP_intToFP(x<<1), FP_intToFP(screenWidth)) - FP_intToFP(1); //x-coordinate in camera space
  824. fixed_point_t rayDirX = dirX + FP_Mult(planeX, cameraX);
  825. fixed_point_t rayDirY = dirY + FP_Mult(planeY, cameraX);
  826. //which box of the map we are in
  827. word mapX = FP_FPtoInt(posX);
  828. word mapY = FP_FPtoInt(posY);
  829. //length of ray from current position to next x or y-side
  830. fixed_point_t sideDistX;
  831. fixed_point_t sideDistY;
  832. //length of ray from one x or y-side to next x or y-side
  833. //these are derived as:
  834. //deltaDistX = sqrt(1 + (rayDirY * rayDirY) / (rayDirX * rayDirX))
  835. //deltaDistY = sqrt(1 + (rayDirX * rayDirX) / (rayDirY * rayDirY))
  836. //which can be simplified to abs(|rayDir| / rayDirX) and abs(|rayDir| / rayDirY)
  837. //where |rayDir| is the length of the vector (rayDirX, rayDirY). Its length,
  838. //unlike (dirX, dirY) is not 1, however this does not matter, only the
  839. //ratio between deltaDistX and deltaDistY matters, due to the way the DDA
  840. //stepping further below works. So the values can be computed as below.
  841. // Division through zero is prevented by setting the result to a very high value
  842. fixed_point_t deltaDistX = (rayDirX == 0) ? 1<<30 : MATH_abs( FP_Div(FP_intToFP(1), rayDirX));
  843. fixed_point_t deltaDistY = (rayDirY == 0) ? 1<<30 : MATH_abs( FP_Div(FP_intToFP(1), rayDirY));
  844. fixed_point_t perpWallDist;
  845. //what direction to step in x or y-direction (either +1 or -1)
  846. word stepX;
  847. word stepY;
  848. word hit = 0; //was there a wall hit?
  849. word side; //was a NS or a EW wall hit?
  850. //calculate step and initial sideDist
  851. if(rayDirX < 0)
  852. {
  853. stepX = -1;
  854. sideDistX = FP_Mult((posX - FP_intToFP(mapX)), deltaDistX);
  855. }
  856. else
  857. {
  858. stepX = 1;
  859. sideDistX = FP_Mult((FP_intToFP(mapX + 1) - posX), deltaDistX);
  860. }
  861. if(rayDirY < 0)
  862. {
  863. stepY = -1;
  864. sideDistY = FP_Mult((posY - FP_intToFP(mapY)), deltaDistY);
  865. }
  866. else
  867. {
  868. stepY = 1;
  869. sideDistY = FP_Mult((FP_intToFP(mapY + 1) - posY), deltaDistY);
  870. }
  871. //perform DDA
  872. while(hit == 0)
  873. {
  874. //jump to next map square, either in x-direction, or in y-direction
  875. if(sideDistX < sideDistY)
  876. {
  877. sideDistX += deltaDistX;
  878. mapX += stepX;
  879. side = 0;
  880. }
  881. else
  882. {
  883. sideDistY += deltaDistY;
  884. mapY += stepY;
  885. side = 1;
  886. }
  887. //Check if ray has hit a wall
  888. if(worldMap[mapX][mapY] > 0) hit = 1;
  889. }
  890. //Calculate distance projected on camera direction. This is the shortest distance from the point where the wall is
  891. //hit to the camera plane. Euclidean to center camera point would give fisheye effect!
  892. //This can be computed as (mapX - posX + (1 - stepX) / 2) / rayDirX for side == 0, or same formula with Y
  893. //for size == 1, but can be simplified to the code below thanks to how sideDist and deltaDist are computed:
  894. //because they were left scaled to |rayDir|. sideDist is the entire length of the ray above after the multiple
  895. //steps, but we subtract deltaDist once because one step more into the wall was taken above.
  896. if(side == 0) perpWallDist = (sideDistX - deltaDistX);
  897. else perpWallDist = (sideDistY - deltaDistY);
  898. //Calculate height of line to draw on screen
  899. word lineHeight = FP_FPtoInt(FP_Div(FP_intToFP(screenHeight), perpWallDist));
  900. //calculate lowest and highest pixel to fill in current stripe
  901. word drawStart = - (lineHeight >> 1) + (screenHeight >> 1);
  902. if(drawStart < 0) drawStart = 0;
  903. word drawEnd = (lineHeight >> 1) + (screenHeight >> 1);
  904. if(drawEnd >= screenHeight) drawEnd = screenHeight - 1;
  905. /*
  906. //choose wall color
  907. //give x and y sides different brightness
  908. char color;
  909. switch(worldMap[mapX][mapY])
  910. {
  911. case 1: color = (side == 1) ? COLOR_DARK_RED : COLOR_RED; break;
  912. case 2: color = (side == 1) ? COLOR_DARK_GREEN : COLOR_GREEN; break;
  913. case 3: color = (side == 1) ? COLOR_DARK_BLUE : COLOR_BLUE; break;
  914. case 4: color = (side == 1) ? COLOR_GREY : COLOR_WHITE; break;
  915. default: color = (side == 1) ? COLOR_DARK_YELLOW : COLOR_YELLOW; break;
  916. }
  917. //draw the pixels of the stripe as a vertical line
  918. // Safity checks beforehand
  919. // Currently skips first line of frame as it does not render properly
  920. if (x != 0 && drawStart >= 0 && drawEnd >= drawStart && drawEnd < screenHeight)
  921. {
  922. RAYFX_drawVertLine(x, drawStart, drawEnd, color);
  923. }
  924. */
  925. //texturing calculations
  926. word texNum = worldMap[mapX][mapY] - 1; //1 subtracted from it so that texture 0 can be used!
  927. //calculate value of wallX
  928. fixed_point_t wallX; //where exactly the wall was hit
  929. if(side == 0) wallX = posY + FP_Mult(perpWallDist, rayDirY);
  930. else wallX = posX + FP_Mult(perpWallDist, rayDirX);
  931. word floormask = 0xFFFF;
  932. wallX &= floormask; // wallX-=floor(wallX)
  933. //x coordinate on the texture
  934. word texX = FP_FPtoInt(FP_Mult(wallX, FP_intToFP(texWidth)));
  935. if(side == 0 && rayDirX > 0) texX = texWidth - texX - 1;
  936. if(side == 1 && rayDirY < 0) texX = texWidth - texX - 1;
  937. // TODO: an integer-only bresenham or DDA like algorithm could make the texture coordinate stepping faster
  938. // How much to increase the texture coordinate per screen pixel
  939. fixed_point_t step = FP_Div(FP_intToFP(texHeight), FP_intToFP(lineHeight));
  940. // Starting texture coordinate
  941. fixed_point_t texPos = FP_Mult(FP_intToFP(drawStart - (screenHeight >> 1) + (lineHeight >> 1)), step);
  942. word y;
  943. for(y = drawStart; y < drawEnd; y++)
  944. {
  945. // Cast the texture coordinate to integer, and mask with (texHeight - 1) in case of overflow
  946. word texY = FP_FPtoInt(texPos) & (texHeight - 1);
  947. texPos += step;
  948. word color = texture[texNum][texHeight * texY + texX];
  949. //make color darker for y-sides: R, G and B byte each divided through two with a "shift" and an "and"
  950. if(side == 1) color = (color >> 1) & 109;
  951. fb[y][x] = color;
  952. }
  953. }
  954. GFX_clearPXframebuffer();
  955. // check which button is held
  956. if (BDOS_USBkeyHeld(BTN_LEFT))
  957. {
  958. //both camera direction and camera plane must be rotated
  959. rotationAngle -= rotationSpeed;
  960. if (rotationAngle < 0)
  961. {
  962. rotationAngle += 360;
  963. }
  964. dirX = LUTdirX[rotationAngle];
  965. dirY = LUTdirY[rotationAngle];
  966. planeX = LUTplaneX[rotationAngle];
  967. planeY = LUTplaneY[rotationAngle];
  968. }
  969. else if (BDOS_USBkeyHeld(BTN_RIGHT))
  970. {
  971. //both camera direction and camera plane must be rotated
  972. rotationAngle += rotationSpeed;
  973. if (rotationAngle >= 360)
  974. {
  975. rotationAngle -= 360;
  976. }
  977. dirX = LUTdirX[rotationAngle];
  978. dirY = LUTdirY[rotationAngle];
  979. planeX = LUTplaneX[rotationAngle];
  980. planeY = LUTplaneY[rotationAngle];
  981. }
  982. if (BDOS_USBkeyHeld(BTN_UP))
  983. {
  984. word worldMapX = FP_FPtoInt(posX + FP_Mult(dirX, moveSpeed));
  985. word worldMapY = FP_FPtoInt(posY);
  986. if(worldMap[worldMapX][worldMapY] == 0)
  987. {
  988. posX += FP_Mult(dirX, moveSpeed);
  989. }
  990. worldMapX = FP_FPtoInt(posX);
  991. worldMapY = FP_FPtoInt(posY + FP_Mult(dirY, moveSpeed));
  992. if(worldMap[worldMapX][worldMapY] == 0)
  993. {
  994. posY += FP_Mult(dirY, moveSpeed);
  995. }
  996. }
  997. else if (BDOS_USBkeyHeld(BTN_DOWN))
  998. {
  999. word worldMapX = FP_FPtoInt(posX - FP_Mult(dirX, moveSpeed));
  1000. word worldMapY = FP_FPtoInt(posY);
  1001. if(worldMap[worldMapX][worldMapY] == 0)
  1002. {
  1003. posX -= FP_Mult(dirX, moveSpeed);
  1004. }
  1005. worldMapX = FP_FPtoInt(posX);
  1006. worldMapY = FP_FPtoInt(posY - FP_Mult(dirY, moveSpeed));
  1007. if(worldMap[worldMapX][worldMapY] == 0)
  1008. {
  1009. posY -= FP_Mult(dirY, moveSpeed);
  1010. }
  1011. }
  1012. if (HID_FifoAvailable())
  1013. {
  1014. word c = HID_FifoRead();
  1015. if (c == 27) // escape
  1016. {
  1017. GFX_clearPXframebuffer();
  1018. return 'q';
  1019. }
  1020. }
  1021. }
  1022. return 'q';
  1023. }
  1024. void interrupt()
  1025. {
  1026. // handle all interrupts
  1027. word i = getIntID();
  1028. switch(i)
  1029. {
  1030. case INTID_TIMER1:
  1031. timer1Value = 1; // notify ending of timer1
  1032. break;
  1033. case INTID_TIMER2:
  1034. break;
  1035. case INTID_UART0:
  1036. break;
  1037. case INTID_GPU:
  1038. break;
  1039. case INTID_TIMER3:
  1040. break;
  1041. case INTID_PS2:
  1042. break;
  1043. case INTID_UART1:
  1044. break;
  1045. case INTID_UART2:
  1046. break;
  1047. }
  1048. }