Licar/frontend_test.c
2025-06-19 01:29:47 +02:00

2250 lines
64 KiB
C

/** @file frontend_test.c
Licar automatic test frontend. This is a pure C program that internally tries
to play the game and checks if everything looks as expected. This can also
easily be run through valgrind or checked on other platforms without any
frontend available.
*/
#define LCR_SETTING_RESOLUTION_X 320
#define LCR_SETTING_RESOLUTION_Y 240
#include <stdio.h>
#include "game.h"
/*
The following are inputs recorded from a live game session, which consisted
of driving the LCtiny1 map, saving a replay, then playing it back and quitting
the game. The values have following format: lower 8 bits hold input state,
higher bits hold time in MS when to perform the game step.
*/
static const uint32_t steps[] =
{
// frame gamestate runtime carspeed
0x0000db00, // 0 0 0 0
0x0000f200, // 1 0 0 0
0x00010900, // 2 0 0 0
0x00012900, // 3 0 0 0
0x00014800, // 4 0 0 0
0x00014d00, // 5 0 0 0
0x00016b00, // 6 0 0 0
0x00018b00, // 7 0 0 0
0x00019000, // 8 0 0 0
0x0001ac00, // 9 0 0 0
0x0001af00, // 10 0 0 0
0x0001ce00, // 11 0 0 0
0x0001ed00, // 12 0 0 0
0x0001f100, // 13 0 0 0
0x00021000, // 14 0 0 0
0x00022f00, // 15 0 0 0
0x00023300, // 16 0 0 0
0x00024f00, // 17 0 0 0
0x00025500, // 18 0 0 0
0x00027000, // 19 0 0 0
0x00027600, // 20 0 0 0
0x00029200, // 21 0 0 0
0x00029704, // 22 0 0 0
0x0002b304, // 23 0 0 0
0x0002b804, // 24 0 0 0
0x0002d504, // 25 0 0 0
0x0002d804, // 26 0 0 0
0x0002f700, // 27 0 0 0
0x00031700, // 28 0 0 0
0x00031b00, // 29 0 0 0
0x00033800, // 30 0 0 0
0x00033b00, // 31 0 0 0
0x00035a00, // 32 0 0 0
0x00037900, // 33 0 0 0
0x00037d00, // 34 0 0 0
0x00039b00, // 35 0 0 0
0x0003a000, // 36 0 0 0
0x0003bc04, // 37 0 0 0
0x0003bf04, // 38 0 0 0
0x0003dd04, // 39 0 0 0
0x0003e004, // 40 0 0 0
0x0003fd04, // 41 0 0 0
0x00040104, // 42 0 0 0
0x00041e00, // 43 0 0 0
0x00042300, // 44 0 0 0
0x00044000, // 45 0 0 0
0x00044400, // 46 0 0 0
0x00046000, // 47 0 0 0
0x00046500, // 48 0 0 0
0x00048200, // 49 0 0 0
0x00048600, // 50 0 0 0
0x0004a100, // 51 0 0 0
0x0004a600, // 52 0 0 0
0x0004c300, // 53 0 0 0
0x0004c700, // 54 0 0 0
0x0004e500, // 55 0 0 0
0x0004e800, // 56 0 0 0
0x00050700, // 57 0 0 0
0x00052600, // 58 0 0 0
0x00052a00, // 59 0 0 0
0x00054800, // 60 0 0 0
0x00054b00, // 61 0 0 0
0x00056600, // 62 0 0 0
0x00056d00, // 63 0 0 0
0x00058710, // 64 0 0 0
0x00058e10, // 65 0 0 0
0x0005a910, // 66 0 0 0
0x0005ae10, // 67 0 0 0
0x0005cc00, // 68 0 0 0
0x0005d000, // 69 0 0 0
0x0005ed00, // 70 0 0 0
0x0005f100, // 71 0 0 0
0x00060e00, // 72 0 0 0
0x00061400, // 73 0 0 0
0x00063000, // 74 0 0 0
0x00065000, // 75 0 0 0
0x00065300, // 76 0 0 0
0x00067100, // 77 0 0 0
0x00067600, // 78 0 0 0
0x00069200, // 79 0 0 0
0x00069500, // 80 0 0 0
0x0006b400, // 81 0 0 0
0x0006d400, // 82 0 0 0
0x0006d700, // 83 0 0 0
0x0006f600, // 84 0 0 0
0x00071400, // 85 0 0 0
0x00071a00, // 86 0 0 0
0x00073700, // 87 0 0 0
0x00073a00, // 88 0 0 0
0x00075700, // 89 0 0 0
0x00075c00, // 90 0 0 0
0x00077910, // 91 0 0 0
0x00077c10, // 92 0 0 0
0x00079b10, // 93 0 0 0
0x0007bb00, // 94 0 0 0
0x0007bf00, // 95 0 0 0
0x0007db00, // 96 0 0 0
0x0007df00, // 97 0 0 0
0x0007fe00, // 98 0 0 0
0x00081c00, // 99 0 0 0
0x00082200, // 100 0 0 0
0x00083f00, // 101 0 0 0
0x00084400, // 102 0 0 0
0x00085f00, // 103 0 0 0
0x00086400, // 104 0 0 0
0x00088100, // 105 0 0 0
0x00088400, // 106 0 0 0
0x0008a200, // 107 0 0 0
0x0008a600, // 108 0 0 0
0x0008c300, // 109 0 0 0
0x0008c600, // 110 0 0 0
0x0008e500, // 111 0 0 0
0x00090500, // 112 0 0 0
0x00090800, // 113 0 0 0
0x00092600, // 114 0 0 0
0x00092900, // 115 0 0 0
0x00094800, // 116 0 0 0
0x00096700, // 117 0 0 0
0x00096b00, // 118 0 0 0
0x00098a00, // 119 0 0 0
0x0009a900, // 120 0 0 0
0x0009ad00, // 121 0 0 0
0x0009cb00, // 122 0 0 0
0x0009ce00, // 123 0 0 0
0x0009ed00, // 124 0 0 0
0x000a0c00, // 125 0 0 0
0x000a1000, // 126 0 0 0
0x000a2f04, // 127 0 0 0
0x000a4f04, // 128 0 0 0
0x000a5404, // 129 0 0 0
0x000a7004, // 130 0 0 0
0x000a7404, // 131 0 0 0
0x000a9000, // 132 0 0 0
0x000a9500, // 133 0 0 0
0x000ab200, // 134 0 0 0
0x000ab500, // 135 0 0 0
0x000ad400, // 136 0 0 0
0x000af100, // 137 0 0 0
0x000af800, // 138 0 0 0
0x000b1600, // 139 0 0 0
0x000b3700, // 140 0 0 0
0x000b5800, // 141 0 0 0
0x000b7800, // 142 0 0 0
0x000b7d00, // 143 0 0 0
0x000b9800, // 144 0 0 0
0x000b9d00, // 145 0 0 0
0x000bb900, // 146 0 0 0
0x000bbe00, // 147 0 0 0
0x000bd900, // 148 0 0 0
0x000bdf00, // 149 0 0 0
0x000bfc00, // 150 0 0 0
0x000c0000, // 151 0 0 0
0x000c1c00, // 152 0 0 0
0x000c2100, // 153 0 0 0
0x000c3e00, // 154 0 0 0
0x000c4300, // 155 0 0 0
0x000c5f00, // 156 0 0 0
0x000c6200, // 157 0 0 0
0x000c8100, // 158 0 0 0
0x000c9e00, // 159 0 0 0
0x000ca500, // 160 0 0 0
0x000cc200, // 161 0 0 0
0x000cc600, // 162 0 0 0
0x000ce200, // 163 0 0 0
0x000ce700, // 164 0 0 0
0x000d0300, // 165 0 0 0
0x000d0800, // 166 0 0 0
0x000d2710, // 167 0 0 0
0x000d4710, // 168 0 0 0
0x000d6600, // 169 0 0 0
0x000d6b00, // 170 0 0 0
0x000d8800, // 171 0 0 0
0x000d8b00, // 172 0 0 0
0x000da800, // 173 0 0 0
0x000dac00, // 174 0 0 0
0x000dcb00, // 175 0 0 0
0x000deb00, // 176 0 0 0
0x000def00, // 177 0 0 0
0x000e0c00, // 178 0 0 0
0x000e0f00, // 179 0 0 0
0x000e2d00, // 180 0 0 0
0x000e3100, // 181 0 0 0
0x000e4f00, // 182 0 0 0
0x000e6d00, // 183 0 0 0
0x000e7300, // 184 0 0 0
0x000e9000, // 185 0 0 0
0x000e9300, // 186 0 0 0
0x000eb100, // 187 0 0 0
0x000eb400, // 188 0 0 0
0x000ed400, // 189 0 0 0
0x000ef300, // 190 0 0 0
0x000ef600, // 191 0 0 0
0x000f1400, // 192 0 0 0
0x000f1b00, // 193 0 0 0
0x000f3600, // 194 0 0 0
0x000f5400, // 195 0 0 0
0x000f5a00, // 196 0 0 0
0x000f7700, // 197 0 0 0
0x000f7c00, // 198 0 0 0
0x000f9800, // 199 0 0 0
0x000f9b00, // 200 0 0 0
0x000fb900, // 201 0 0 0
0x000fbc00, // 202 0 0 0
0x000fdb00, // 203 0 0 0
0x000ffb00, // 204 0 0 0
0x000ffe00, // 205 0 0 0
0x00101b00, // 206 0 0 0
0x00101f00, // 207 0 0 0
0x00103e00, // 208 0 0 0
0x00105e01, // 209 0 0 0
0x00106101, // 210 0 0 0
0x00108001, // 211 0 0 0
0x00109f00, // 212 0 0 0
0x0010a300, // 213 0 0 0
0x0010c200, // 214 0 0 0
0x0010e201, // 215 0 0 0
0x0010e701, // 216 0 0 0
0x00110301, // 217 0 0 0
0x00110701, // 218 0 0 0
0x00112400, // 219 0 0 0
0x00112900, // 220 0 0 0
0x00114400, // 221 0 0 0
0x00114900, // 222 0 0 0
0x00116600, // 223 0 0 0
0x00116900, // 224 0 0 0
0x00118800, // 225 0 0 0
0x0011a701, // 226 0 0 0
0x0011ac01, // 227 0 0 0
0x0011c801, // 228 0 0 0
0x0011cd01, // 229 0 0 0
0x0011ea00, // 230 0 0 0
0x0011ee00, // 231 0 0 0
0x00120c00, // 232 0 0 0
0x00122c00, // 233 0 0 0
0x00123000, // 234 0 0 0
0x00124b00, // 235 0 0 0
0x00125100, // 236 0 0 0
0x00126c00, // 237 0 0 0
0x00127200, // 238 0 0 0
0x00129000, // 239 0 0 0
0x0012af00, // 240 0 0 0
0x0012b400, // 241 0 0 0
0x0012d000, // 242 0 0 0
0x0012d500, // 243 0 0 0
0x0012f100, // 244 0 0 0
0x0012f600, // 245 0 0 0
0x00131300, // 246 0 0 0
0x00131700, // 247 0 0 0
0x00133210, // 248 0 0 0
0x00133810, // 249 0 0 0
0x00135610, // 250 0 0 0
0x00137600, // 251 0 0 0
0x00137900, // 252 0 0 0
0x00139700, // 253 0 0 0
0x00139d00, // 254 0 0 0
0x0013b900, // 255 0 0 0
0x0013d910, // 256 0 0 0
0x0013dc10, // 257 0 0 0
0x0013fb10, // 258 0 0 0
0x00141b00, // 259 0 0 0
0x00141e00, // 260 0 0 0
0x00143d00, // 261 0 0 0
0x00145c00, // 262 0 0 0
0x00146010, // 263 0 0 0
0x00147f10, // 264 0 0 0
0x00149f10, // 265 0 0 0
0x0014a210, // 266 0 0 0
0x0014c000, // 267 0 0 0
0x0014c400, // 268 0 0 0
0x0014e000, // 269 0 0 0
0x0014e400, // 270 0 0 0
0x00150400, // 271 0 0 0
0x00152300, // 272 0 0 0
0x00152700, // 273 0 0 0
0x00154000, // 274 0 0 0
0x00154600, // 275 0 0 0
0x00156400, // 276 0 0 0
0x00156800, // 277 0 0 0
0x00158400, // 278 0 0 0
0x00158a00, // 279 0 0 0
0x0015a600, // 280 0 0 0
0x0015aa00, // 281 0 0 0
0x0015c810, // 282 0 0 0
0x0015cb10, // 283 0 0 0
0x0015e910, // 284 0 0 0
0x0015ec10, // 285 0 0 0
0x00160a00, // 286 0 0 0
0x00160e00, // 287 0 0 0
0x00162b00, // 288 0 0 0
0x00162f00, // 289 0 0 0
0x00164c00, // 290 0 0 0
0x00165100, // 291 0 0 0
0x00166b00, // 292 0 0 0
0x00167000, // 293 0 0 0
0x00168f00, // 294 0 0 0
0x0016af00, // 295 0 0 0
0x0016b300, // 296 0 0 0
0x0016d000, // 297 0 0 0
0x0016d300, // 298 0 0 0
0x0016f000, // 299 0 0 0
0x0016f400, // 300 0 0 0
0x00171300, // 301 0 0 0
0x00173100, // 302 0 0 0
0x00173700, // 303 0 0 0
0x00175400, // 304 0 0 0
0x00175900, // 305 0 0 0
0x00177300, // 306 0 0 0
0x00177900, // 307 0 0 0
0x00179600, // 308 0 0 0
0x00179b00, // 309 0 0 0
0x0017b700, // 310 0 0 0
0x0017bc00, // 311 0 0 0
0x0017d700, // 312 0 0 0
0x0017dc00, // 313 0 0 0
0x0017fa02, // 314 0 0 0
0x00181802, // 315 0 0 0
0x00181e02, // 316 0 0 0
0x00183b02, // 317 0 0 0
0x00184002, // 318 0 0 0
0x00185a00, // 319 0 0 0
0x00186000, // 320 0 0 0
0x00187d00, // 321 0 0 0
0x00188000, // 322 0 0 0
0x00189f00, // 323 0 0 0
0x0018bf00, // 324 0 0 0
0x0018c400, // 325 0 0 0
0x0018e000, // 326 0 0 0
0x0018e300, // 327 0 0 0
0x00190200, // 328 0 0 0
0x00192100, // 329 0 0 0
0x00192500, // 330 0 0 0
0x00194204, // 331 0 0 0
0x00194604, // 332 0 0 0
0x00196404, // 333 0 0 0
0x00196804, // 334 0 0 0
0x00198500, // 335 0 0 0
0x00198800, // 336 0 0 0
0x0019a600, // 337 0 0 0
0x0019ac00, // 338 0 0 0
0x0019c900, // 339 0 0 0
0x0019e804, // 340 0 0 0
0x0019ed04, // 341 0 0 0
0x001a0a04, // 342 0 0 0
0x001a2a00, // 343 0 0 0
0x001a2c00, // 344 0 0 0
0x001a4b00, // 345 0 0 0
0x001a4f00, // 346 0 0 0
0x001a6c00, // 347 0 0 0
0x001a7104, // 348 0 0 0
0x001a8b04, // 349 0 0 0
0x001a9104, // 350 0 0 0
0x001aae00, // 351 0 0 0
0x001ab100, // 352 0 0 0
0x001acf00, // 353 0 0 0
0x001ad400, // 354 0 0 0
0x001aee04, // 355 0 0 0
0x001af404, // 356 0 0 0
0x001b1104, // 357 0 0 0
0x001b1504, // 358 0 0 0
0x001b3100, // 359 0 0 0
0x001b3600, // 360 0 0 0
0x001b5300, // 361 0 0 0
0x001b5600, // 362 0 0 0
0x001b7404, // 363 0 0 0
0x001b7804, // 364 0 0 0
0x001b9404, // 365 0 0 0
0x001b9804, // 366 0 0 0
0x001bb704, // 367 0 0 0
0x001bd700, // 368 0 0 0
0x001bdb00, // 369 0 0 0
0x001bf700, // 370 0 0 0
0x001bfc00, // 371 0 0 0
0x001c1a00, // 372 0 0 0
0x001c3800, // 373 0 0 0
0x001c3e00, // 374 0 0 0
0x001c5a00, // 375 0 0 0
0x001c5e10, // 376 0 0 0
0x001c7c10, // 377 4 0 0
0x00200600, // 377 5 0 0
0x00200b00, // 377 1 0 0
0x00202000, // 378 1 0 0
0x00204000, // 379 1 0 0
0x00206200, // 380 1 0 0
0x00208000, // 381 1 0 0
0x0020a600, // 382 1 0 0
0x0020c800, // 383 1 0 0
0x0020e700, // 384 1 0 0
0x00210800, // 385 1 0 0
0x00212800, // 386 1 0 0
0x00214a00, // 387 1 0 0
0x00216c00, // 388 1 0 0
0x00218b00, // 389 1 0 0
0x0021ac00, // 390 1 0 0
0x0021cd01, // 391 1 0 0
0x0021f001, // 392 1 0 0
0x00221101, // 393 1 0 0
0x00223001, // 394 1 0 0
0x00225001, // 395 1 0 0
0x00227301, // 396 1 0 0
0x00229301, // 397 1 0 0
0x0022b501, // 398 1 0 0
0x0022d401, // 399 1 0 0
0x0022f801, // 400 1 0 0
0x00231901, // 401 1 0 0
0x00233701, // 402 1 0 0
0x00235b01, // 403 1 0 0
0x00237b01, // 404 1 0 0
0x00239b01, // 405 1 0 0
0x0023be01, // 406 1 0 0
0x0023e001, // 407 1 0 0
0x0023ff01, // 408 1 0 0
0x00241d01, // 409 1 0 0
0x00244101, // 410 1 0 0
0x00246301, // 411 1 0 0
0x00248301, // 412 1 0 0
0x0024a600, // 413 1 0 0
0x0024c300, // 414 1 0 0
0x0024e500, // 415 1 0 0
0x00250700, // 416 1 0 0
0x00252400, // 417 1 0 0
0x00254310, // 418 1 0 0
0x00256810, // 419 1 0 0
0x00258900, // 420 1 0 0
0x0025ac00, // 421 1 0 0
0x0025cc00, // 422 1 0 0
0x0025ee00, // 423 1 0 0
0x00261000, // 424 1 0 0
0x00263000, // 425 1 0 0
0x00265001, // 426 1 0 0
0x00267301, // 427 1 0 0
0x00269401, // 428 1 0 0
0x0026b601, // 429 1 0 0
0x0026d201, // 430 1 0 0
0x0026f601, // 431 1 0 0
0x00271601, // 432 1 0 0
0x00273801, // 433 1 0 0
0x00275b01, // 434 1 0 0
0x00277b01, // 435 1 0 0
0x00279b01, // 436 1 0 0
0x0027bc01, // 437 1 0 0
0x0027dc01, // 438 1 0 0
0x0027ff01, // 439 1 0 0
0x00282201, // 440 1 0 0
0x00283f01, // 441 1 0 0
0x00286201, // 442 1 0 0
0x00288401, // 443 1 0 0
0x0028a401, // 444 1 0 0
0x0028c501, // 445 1 0 0
0x0028e301, // 446 1 0 0
0x00290601, // 447 1 0 0
0x00292701, // 448 1 0 0
0x00294801, // 449 1 0 0
0x00296801, // 450 1 0 0
0x00298b01, // 451 1 0 0
0x0029ab01, // 452 1 0 0
0x0029cc01, // 453 1 0 0
0x0029ed01, // 454 1 0 0
0x002a0c01, // 455 1 0 0
0x002a3001, // 456 1 0 0
0x002a5001, // 457 1 0 0
0x002a7001, // 458 1 0 0
0x002a9201, // 459 1 0 0
0x002ab401, // 460 1 0 0
0x002ad501, // 461 1 0 0
0x002af601, // 462 1 0 0
0x002b1501, // 463 1 0 0
0x002b3701, // 464 1 0 0
0x002b5701, // 465 1 0 0
0x002b7701, // 466 1 0 0
0x002b9a01, // 467 1 0 0
0x002bb801, // 468 1 0 0
0x002bdb01, // 469 1 0 0
0x002bfb01, // 470 1 0 0
0x002c1e01, // 471 1 0 0
0x002c3e01, // 472 1 0 0
0x002c6101, // 473 1 0 0
0x002c8301, // 474 1 0 0
0x002ca101, // 475 1 0 0
0x002cc301, // 476 1 0 0
0x002ce201, // 477 1 0 0
0x002d0301, // 478 1 0 0
0x002d2501, // 479 1 0 0
0x002d4701, // 480 1 0 0
0x002d6801, // 481 1 0 0
0x002d8901, // 482 1 0 0
0x002dab01, // 483 1 0 0
0x002dcb01, // 484 1 0 0
0x002ded01, // 485 1 0 0
0x002e0a01, // 486 2 1 0
0x002e2c01, // 487 2 2 12
0x002e4d01, // 488 2 3 25
0x002e6e01, // 489 2 4 37
0x002e9001, // 490 2 5 50
0x002eb103, // 491 2 6 62
0x002ed403, // 492 2 7 67
0x002ef203, // 493 2 8 68
0x002f1603, // 494 2 9 88
0x002f3803, // 495 2 10 113
0x002f5a03, // 496 2 11 140
0x002f7a03, // 497 2 12 159
0x002f9b03, // 498 2 13 176
0x002fba03, // 499 2 14 191
0x002fdc01, // 500 2 15 205
0x002ffe01, // 501 2 16 219
0x00301e09, // 502 2 17 223
0x00304009, // 503 2 18 232
0x00306109, // 504 2 19 243
0x00308309, // 505 2 20 257
0x0030a209, // 506 2 21 264
0x0030c509, // 507 2 22 277
0x0030e408, // 508 2 23 281
0x00310308, // 509 2 24 297
0x00312508, // 510 2 25 274
0x00314808, // 511 2 26 259
0x00316808, // 512 2 27 211
0x00318a04, // 513 2 28 189
0x0031ab04, // 514 2 29 174
0x0031cd04, // 515 2 30 121
0x0031eb04, // 516 2 31 88
0x00320d04, // 517 2 32 54
0x00322c04, // 518 2 33 28
0x00325004, // 519 2 34 -27
0x00327004, // 520 2 35 -92
0x00329204, // 521 2 36 -180
0x0032b204, // 522 2 37 -170
0x0032d404, // 523 2 38 -166
0x0032f304, // 524 2 39 -183
0x00331704, // 525 2 40 -200
0x00333704, // 526 2 41 -211
0x00335a00, // 527 2 42 -226
0x00337a00, // 528 2 43 -237
0x00339b00, // 529 2 44 -211
0x0033bc00, // 530 2 45 -189
0x0033de10, // 531 2 46 -175
0x0033fc10, // 532 1 0 0
0x00341b00, // 533 1 0 0
0x00343d00, // 534 1 0 0
0x00345f00, // 535 1 0 0
0x00348000, // 536 1 0 0
0x0034a100, // 537 1 0 0
0x0034c000, // 538 1 0 0
0x0034e001, // 539 1 0 0
0x0034ff01, // 540 1 0 0
0x00352301, // 541 1 0 0
0x00354201, // 542 1 0 0
0x00356401, // 543 1 0 0
0x00358501, // 544 1 0 0
0x0035a701, // 545 1 0 0
0x0035c701, // 546 1 0 0
0x0035e901, // 547 1 0 0
0x00360b01, // 548 1 0 0
0x00362c01, // 549 1 0 0
0x00364c01, // 550 1 0 0
0x00366901, // 551 1 0 0
0x00368f01, // 552 1 0 0
0x0036b001, // 553 1 0 0
0x0036cd01, // 554 1 0 0
0x0036ee01, // 555 1 0 0
0x00370f01, // 556 1 0 0
0x00373201, // 557 1 0 0
0x00375601, // 558 1 0 0
0x00377301, // 559 1 0 0
0x00379701, // 560 1 0 0
0x0037b601, // 561 1 0 0
0x0037db01, // 562 1 0 0
0x0037f801, // 563 1 0 0
0x00381b01, // 564 1 0 0
0x00383801, // 565 1 0 0
0x00385d01, // 566 1 0 0
0x00387b01, // 567 1 0 0
0x00389e01, // 568 1 0 0
0x0038bf01, // 569 1 0 0
0x0038e101, // 570 1 0 0
0x00390101, // 571 1 0 0
0x00392401, // 572 1 0 0
0x00394401, // 573 1 0 0
0x00396501, // 574 1 0 0
0x00398501, // 575 1 0 0
0x0039a801, // 576 1 0 0
0x0039c801, // 577 1 0 0
0x0039e901, // 578 1 0 0
0x003a0801, // 579 1 0 0
0x003a2c01, // 580 1 0 0
0x003a4901, // 581 1 0 0
0x003a6d01, // 582 1 0 0
0x003a8c01, // 583 1 0 0
0x003aae01, // 584 1 0 0
0x003acf01, // 585 1 0 0
0x003af001, // 586 1 0 0
0x003b1101, // 587 1 0 0
0x003b3201, // 588 1 0 0
0x003b5401, // 589 1 0 0
0x003b7201, // 590 1 0 0
0x003b9401, // 591 1 0 0
0x003bb801, // 592 1 0 0
0x003bd701, // 593 1 0 0
0x003bf801, // 594 1 0 0
0x003c1b01, // 595 1 0 0
0x003c3b01, // 596 1 0 0
0x003c5801, // 597 1 0 0
0x003c7a01, // 598 1 0 0
0x003c9c01, // 599 2 1 0
0x003cbe01, // 600 2 2 12
0x003cdf01, // 601 2 3 25
0x003d0001, // 602 2 4 37
0x003d2201, // 603 2 5 50
0x003d4301, // 604 2 6 62
0x003d6401, // 605 2 7 67
0x003d8301, // 606 2 8 69
0x003da701, // 607 2 9 89
0x003dc801, // 608 2 10 114
0x003de901, // 609 2 11 141
0x003e0b01, // 610 2 12 161
0x003e2a01, // 611 2 13 178
0x003e4c03, // 612 2 14 197
0x003e6c03, // 613 2 15 204
0x003e8e03, // 614 2 16 222
0x003eaf03, // 615 2 17 227
0x003ed101, // 616 2 18 239
0x003ef301, // 617 2 19 253
0x003f1301, // 618 2 20 256
0x003f3301, // 619 2 21 268
0x003f5301, // 620 2 22 274
0x003f7501, // 621 2 23 291
0x003f9601, // 622 2 24 292
0x003fb801, // 623 2 25 301
0x003fd801, // 624 2 26 308
0x003ff901, // 625 2 27 316
0x00401a01, // 626 2 28 323
0x00403801, // 627 2 29 334
0x00405901, // 628 2 30 349
0x00407b01, // 629 2 31 355
0x00409c01, // 630 2 32 356
0x0040be01, // 631 2 33 360
0x0040df01, // 632 2 34 370
0x00410001, // 633 2 35 383
0x00412201, // 634 2 36 378
0x00414301, // 635 2 37 389
0x00416509, // 636 2 38 406
0x00418609, // 637 2 39 397
0x0041a209, // 638 2 40 406
0x0041c609, // 639 2 41 405
0x0041e801, // 640 2 42 411
0x00420a01, // 641 2 43 415
0x00422701, // 642 2 44 418
0x00424901, // 643 2 45 420
0x00426901, // 644 2 46 423
0x00428b01, // 645 2 47 429
0x0042ac01, // 646 2 48 446
0x0042cf01, // 647 2 49 441
0x0042ef01, // 648 2 50 451
0x00431101, // 649 2 51 456
0x00433301, // 650 2 52 453
0x00435401, // 651 2 53 454
0x00437301, // 652 2 54 459
0x00439301, // 653 2 55 464
0x0043b401, // 654 2 56 475
0x0043d801, // 655 2 57 484
0x0043f809, // 656 2 58 482
0x00441701, // 657 2 59 497
0x00443a01, // 658 2 60 500
0x00445c01, // 659 2 61 502
0x00447d01, // 660 2 62 518
0x00449e01, // 661 2 63 519
0x0044ba01, // 662 2 64 533
0x0044da01, // 663 2 65 537
0x0044ff01, // 664 2 66 547
0x00452001, // 665 2 67 554
0x00454409, // 666 2 68 567
0x00456309, // 667 2 69 570
0x00458609, // 668 2 70 579
0x0045a801, // 669 2 71 583
0x0045c801, // 670 2 72 596
0x0045e701, // 671 2 73 597
0x00460a01, // 672 2 74 602
0x00462b01, // 673 2 75 605
0x00464b01, // 674 2 76 609
0x00466a01, // 675 2 77 609
0x00468b01, // 676 2 78 611
0x0046ac01, // 677 2 79 614
0x0046ce01, // 678 2 80 623
0x0046ef01, // 679 2 81 626
0x00470f01, // 680 2 82 619
0x00473201, // 681 2 83 628
0x00475301, // 682 2 84 632
0x00477501, // 683 2 85 626
0x00479501, // 684 2 86 587
0x0047b901, // 685 2 87 547
0x0047d801, // 686 2 88 547
0x0047fa01, // 687 2 89 595
0x00481801, // 688 2 90 585
0x00483b01, // 689 2 91 579
0x00485b09, // 690 2 92 573
0x00487b09, // 691 2 93 572
0x00489a09, // 692 2 94 569
0x0048bb09, // 693 2 95 566
0x0048dc01, // 694 2 96 560
0x0048ff01, // 695 2 97 478
0x00492001, // 696 2 98 411
0x00494201, // 697 2 99 372
0x00496109, // 698 2 100 324
0x00498401, // 699 2 101 271
0x0049a401, // 700 2 102 242
0x0049c801, // 701 2 103 -217
0x0049e700, // 702 2 104 -194
0x004a0900, // 703 2 105 -176
0x004a2a00, // 704 2 106 -169
0x004a4a00, // 705 2 107 -162
0x004a6a10, // 706 2 108 -164
0x004a8a10, // 707 1 0 0
0x004aab00, // 708 1 0 0
0x004acb00, // 709 1 0 0
0x004aed00, // 710 1 0 0
0x004b0e00, // 711 1 0 0
0x004b3000, // 712 1 0 0
0x004b4f00, // 713 1 0 0
0x004b7101, // 714 1 0 0
0x004b8f01, // 715 1 0 0
0x004bb401, // 716 1 0 0
0x004bd401, // 717 1 0 0
0x004bf501, // 718 1 0 0
0x004c1401, // 719 1 0 0
0x004c3601, // 720 1 0 0
0x004c5801, // 721 1 0 0
0x004c7a01, // 722 1 0 0
0x004c9a01, // 723 1 0 0
0x004cb801, // 724 1 0 0
0x004cda01, // 725 1 0 0
0x004cfb01, // 726 1 0 0
0x004d1d01, // 727 1 0 0
0x004d3e01, // 728 1 0 0
0x004d6001, // 729 1 0 0
0x004d8001, // 730 1 0 0
0x004da201, // 731 1 0 0
0x004dc301, // 732 1 0 0
0x004de001, // 733 1 0 0
0x004e0101, // 734 1 0 0
0x004e2501, // 735 1 0 0
0x004e4701, // 736 1 0 0
0x004e6801, // 737 1 0 0
0x004e8501, // 738 1 0 0
0x004ea901, // 739 1 0 0
0x004ecc01, // 740 1 0 0
0x004eed01, // 741 1 0 0
0x004f0e01, // 742 1 0 0
0x004f2f01, // 743 1 0 0
0x004f4f01, // 744 1 0 0
0x004f7001, // 745 1 0 0
0x004f9001, // 746 1 0 0
0x004fb301, // 747 1 0 0
0x004fd001, // 748 1 0 0
0x004ff401, // 749 1 0 0
0x00501401, // 750 1 0 0
0x00503701, // 751 1 0 0
0x00505801, // 752 1 0 0
0x00507801, // 753 1 0 0
0x00509a01, // 754 1 0 0
0x0050b801, // 755 1 0 0
0x0050dc01, // 756 1 0 0
0x0050fc01, // 757 1 0 0
0x00511d01, // 758 1 0 0
0x00513e01, // 759 1 0 0
0x00516001, // 760 1 0 0
0x00518001, // 761 1 0 0
0x0051a001, // 762 1 0 0
0x0051c301, // 763 1 0 0
0x0051e101, // 764 1 0 0
0x00520401, // 765 1 0 0
0x00522301, // 766 1 0 0
0x00524701, // 767 1 0 0
0x00526701, // 768 1 0 0
0x00528701, // 769 1 0 0
0x0052aa01, // 770 1 0 0
0x0052ca01, // 771 1 0 0
0x0052ec01, // 772 1 0 0
0x00530901, // 773 1 0 0
0x00532d01, // 774 2 1 0
0x00534e01, // 775 2 2 12
0x00536f01, // 776 2 3 25
0x00539101, // 777 2 4 37
0x0053b101, // 778 2 5 50
0x0053d301, // 779 2 6 62
0x0053f401, // 780 2 7 67
0x00541501, // 781 2 8 69
0x00543501, // 782 2 9 89
0x00545601, // 783 2 10 114
0x00547703, // 784 2 11 141
0x00549603, // 785 2 12 161
0x0054b803, // 786 2 13 178
0x0054da03, // 787 2 14 195
0x0054fb01, // 788 2 15 203
0x00551b01, // 789 2 16 215
0x00553f01, // 790 2 17 223
0x00556001, // 791 2 18 234
0x00558109, // 792 2 19 249
0x0055a009, // 793 2 20 255
0x0055c209, // 794 2 21 270
0x0055e409, // 795 2 22 276
0x00560401, // 796 2 23 289
0x00562301, // 797 2 24 295
0x00564501, // 798 2 25 300
0x00566801, // 799 2 26 306
0x00568701, // 800 2 27 313
0x0056aa01, // 801 2 28 324
0x0056c901, // 802 2 29 327
0x0056e801, // 803 2 30 338
0x00570c01, // 804 2 31 352
0x00572c01, // 805 2 32 349
0x00574d01, // 806 2 33 357
0x00576e01, // 807 2 34 373
0x00578d01, // 808 2 35 389
0x0057b101, // 809 2 36 379
0x0057d209, // 810 2 37 378
0x0057f409, // 811 2 38 389
0x00581409, // 812 2 39 392
0x00583601, // 813 2 40 394
0x00585801, // 814 2 41 403
0x00587801, // 815 2 42 407
0x00589801, // 816 2 43 411
0x0058b801, // 817 2 44 413
0x0058d801, // 818 2 45 426
0x0058fb01, // 819 2 46 434
0x00591b01, // 820 2 47 439
0x00593c01, // 821 2 48 443
0x00595d01, // 822 2 49 442
0x00597f01, // 823 2 50 454
0x00599f01, // 824 2 51 451
0x0059c001, // 825 2 52 459
0x0059df01, // 826 2 53 469
0x005a0201, // 827 2 54 467
0x005a2301, // 828 2 55 481
0x005a4501, // 829 2 56 474
0x005a6601, // 830 2 57 479
0x005a8801, // 831 2 58 487
0x005aa601, // 832 2 59 494
0x005ac901, // 833 2 60 493
0x005aec01, // 834 2 61 506
0x005b0b01, // 835 2 62 513
0x005b2e01, // 836 2 63 526
0x005b4e01, // 837 2 64 531
0x005b6f01, // 838 2 65 545
0x005b9101, // 839 2 66 549
0x005baf01, // 840 2 67 559
0x005bd001, // 841 2 68 566
0x005bf301, // 842 2 69 575
0x005c1301, // 843 2 70 581
0x005c3501, // 844 2 71 591
0x005c5701, // 845 2 72 596
0x005c7701, // 846 2 73 606
0x005c9901, // 847 2 74 611
0x005cb801, // 848 2 75 614
0x005cdb01, // 849 2 76 618
0x005cfb09, // 850 2 77 632
0x005d1c01, // 851 2 78 621
0x005d3e01, // 852 2 79 621
0x005d5c01, // 853 2 80 626
0x005d7f01, // 854 2 81 641
0x005d9f01, // 855 2 82 632
0x005dc101, // 856 2 83 634
0x005de201, // 857 2 84 651
0x005e0401, // 858 2 85 636
0x005e2401, // 859 2 86 553
0x005e4501, // 860 2 87 548
0x005e6701, // 861 2 88 586
0x005e8701, // 862 2 89 591
0x005ea901, // 863 2 90 589
0x005eca09, // 864 2 91 585
0x005ee809, // 865 2 92 568
0x005f0909, // 866 2 93 563
0x005f2809, // 867 2 94 565
0x005f4901, // 868 2 95 563
0x005f6b01, // 869 2 96 561
0x005f8c09, // 870 2 97 555
0x005fb009, // 871 2 98 554
0x005fd009, // 872 2 99 460
0x005ff409, // 873 2 100 457
0x00601409, // 874 2 101 448
0x00603409, // 875 2 102 438
0x00605709, // 876 2 103 431
0x00607609, // 877 2 104 429
0x00609909, // 878 2 105 424
0x0060b809, // 879 2 106 420
0x0060da01, // 880 2 107 417
0x0060fa01, // 881 2 108 418
0x00611d01, // 882 2 109 404
0x00613e01, // 883 2 110 392
0x00615d01, // 884 2 111 392
0x00617f01, // 885 2 112 387
0x0061a101, // 886 2 113 391
0x0061c101, // 887 2 114 387
0x0061e301, // 888 2 115 392
0x00620501, // 889 2 116 389
0x00622501, // 890 2 117 394
0x00624709, // 891 2 118 398
0x00626609, // 892 2 119 396
0x00628809, // 893 2 120 403
0x0062a809, // 894 2 121 405
0x0062c801, // 895 2 122 411
0x0062ea01, // 896 2 123 411
0x00630901, // 897 2 124 413
0x00632a01, // 898 2 125 413
0x00634b01, // 899 2 126 421
0x00636c01, // 900 2 127 424
0x00638d01, // 901 2 128 428
0x0063b001, // 902 2 129 433
0x0063d203, // 903 2 130 439
0x0063f303, // 904 2 131 444
0x00641303, // 905 2 132 451
0x00643403, // 906 2 133 453
0x00645101, // 907 2 134 457
0x00647001, // 908 2 135 462
0x00649601, // 909 2 136 460
0x0064b601, // 910 2 137 467
0x0064d901, // 911 2 138 468
0x0064f901, // 912 2 139 472
0x00651b01, // 913 2 140 474
0x00653b01, // 914 2 141 479
0x00655a03, // 915 2 142 484
0x00657c03, // 916 2 143 499
0x00659c03, // 917 2 144 492
0x0065bd03, // 918 2 145 493
0x0065de01, // 919 2 146 499
0x00660001, // 920 2 147 504
0x00662101, // 921 2 148 494
0x00664303, // 922 2 149 493
0x00666303, // 923 2 150 496
0x00668603, // 924 2 151 502
0x0066a601, // 925 2 152 506
0x0066c601, // 926 2 153 513
0x0066e601, // 927 2 154 501
0x00670901, // 928 2 155 497
0x00672801, // 929 2 156 502
0x00674b01, // 930 2 157 501
0x00676901, // 931 2 158 500
0x00678a01, // 932 2 159 506
0x0067ac03, // 933 2 160 507
0x0067cc03, // 934 2 161 516
0x0067ee03, // 935 2 162 510
0x00681001, // 936 2 163 516
0x00682d01, // 937 2 164 507
0x00685203, // 938 2 165 507
0x00687503, // 939 2 166 510
0x00689403, // 940 2 167 511
0x0068b303, // 941 2 168 513
0x0068d603, // 942 2 169 522
0x0068f503, // 943 2 170 516
0x00691603, // 944 2 171 521
0x00693503, // 945 2 172 519
0x00695803, // 946 2 173 520
0x00697801, // 947 2 174 521
0x00699801, // 948 2 175 524
0x0069bb01, // 949 2 176 523
0x0069db05, // 950 2 177 516
0x0069fc05, // 951 2 178 514
0x006a1c05, // 952 2 179 499
0x006a3e01, // 953 2 180 500
0x006a5e03, // 954 2 181 481
0x006a8003, // 955 2 182 482
0x006aa103, // 956 2 183 482
0x006ac303, // 957 2 184 484
0x006ae403, // 958 2 185 484
0x006b0503, // 959 2 186 483
0x006b2703, // 960 2 187 484
0x006b4703, // 961 2 188 489
0x006b6803, // 962 2 189 490
0x006b8a03, // 963 2 190 490
0x006baa03, // 964 2 191 493
0x006bcc03, // 965 2 192 495
0x006bed03, // 966 2 193 511
0x006c0e03, // 967 2 194 522
0x006c2e03, // 968 2 195 518
0x006c5003, // 969 2 196 491
0x006c7103, // 970 2 197 480
0x006c9003, // 971 2 198 474
0x006cb303, // 972 2 199 470
0x006cd303, // 973 2 200 466
0x006cf603, // 974 2 201 462
0x006d1803, // 975 2 202 456
0x006d3803, // 976 2 203 452
0x006d5803, // 977 2 204 444
0x006d7803, // 978 2 205 438
0x006d9a03, // 979 2 206 431
0x006dba03, // 980 2 207 426
0x006ddc03, // 981 2 208 423
0x006dfa03, // 982 2 209 415
0x006e1f01, // 983 2 210 407
0x006e4209, // 984 2 211 401
0x006e6209, // 985 2 212 383
0x006e8309, // 986 2 213 364
0x006ea409, // 987 2 214 355
0x006ec709, // 988 2 215 354
0x006ee509, // 989 2 216 361
0x006f0809, // 990 2 217 360
0x006f2809, // 991 2 218 365
0x006f4901, // 992 2 219 374
0x006f6701, // 993 2 220 381
0x006f8901, // 994 2 221 380
0x006fa901, // 995 2 222 382
0x006fcb01, // 996 2 223 384
0x006fea01, // 997 2 224 394
0x00700b01, // 998 2 225 395
0x00702d09, // 999 2 226 402
0x00704e09, // 1000 2 227 416
0x00706f09, // 1001 2 228 410
0x00709109, // 1002 2 229 416
0x0070b101, // 1003 2 230 422
0x0070d301, // 1004 2 231 429
0x0070f401, // 1005 2 232 427
0x00711301, // 1006 2 233 429
0x00713101, // 1007 2 234 436
0x00715201, // 1008 2 235 443
0x00717301, // 1009 2 236 462
0x00719601, // 1010 2 237 472
0x0071b701, // 1011 2 238 470
0x0071d501, // 1012 2 239 471
0x0071f701, // 1013 2 240 472
0x00721701, // 1014 2 241 470
0x00723901, // 1015 2 242 477
0x00725a01, // 1016 2 243 482
0x00727b01, // 1017 2 244 486
0x00729b01, // 1018 2 245 484
0x0072be01, // 1019 2 246 490
0x0072e005, // 1020 2 247 492
0x0072fe05, // 1021 2 248 495
0x00732005, // 1022 2 249 497
0x00734001, // 1023 2 250 484
0x00736201, // 1024 2 251 486
0x00738301, // 1025 2 252 494
0x0073a501, // 1026 2 253 508
0x0073c601, // 1027 2 254 494
0x0073e601, // 1028 2 255 504
0x00740801, // 1029 2 256 511
0x00742501, // 1030 2 257 519
0x00744801, // 1031 2 258 523
0x00746a01, // 1032 2 259 530
0x00748c01, // 1033 2 260 536
0x0074ac01, // 1034 2 261 544
0x0074d001, // 1035 2 262 552
0x0074ed01, // 1036 2 263 558
0x00751101, // 1037 2 264 566
0x00753201, // 1038 2 265 574
0x00755301, // 1039 2 266 585
0x00757401, // 1040 2 267 591
0x00759601, // 1041 2 268 598
0x0075b701, // 1042 2 269 607
0x0075da01, // 1043 2 270 541
0x0075fb01, // 1044 2 271 432
0x00761b09, // 1045 2 272 430
0x00763b09, // 1046 2 273 437
0x00765e01, // 1047 2 274 442
0x00767d01, // 1048 2 275 440
0x0076a101, // 1049 2 276 454
0x0076bf01, // 1050 2 277 461
0x0076e101, // 1051 2 278 454
0x00770301, // 1052 2 279 450
0x00772301, // 1053 2 280 454
0x00774301, // 1054 2 281 458
0x00776501, // 1055 2 282 470
0x00778601, // 1056 2 283 464
0x0077a601, // 1057 2 284 472
0x0077c701, // 1058 2 285 469
0x0077e801, // 1059 2 286 473
0x00780a01, // 1060 2 287 468
0x00782701, // 1061 2 288 485
0x00784c01, // 1062 2 289 483
0x00786a01, // 1063 2 290 483
0x00788c01, // 1064 2 291 491
0x0078ae01, // 1065 2 292 487
0x0078ce01, // 1066 2 293 496
0x0078f001, // 1067 2 294 490
0x00791201, // 1068 2 295 499
0x00793301, // 1069 2 296 494
0x00795309, // 1070 2 297 509
0x00797509, // 1071 2 298 501
0x00799409, // 1072 2 299 508
0x0079b501, // 1073 2 300 520
0x0079d701, // 1074 2 301 506
0x0079f901, // 1075 2 302 507
0x007a1a01, // 1076 2 303 509
0x007a3b01, // 1077 2 304 510
0x007a5b01, // 1078 2 305 511
0x007a7e01, // 1079 3 305 511
0x007a9c01, // 1080 3 305 515
0x007abe01, // 1081 3 305 487
0x007ae001, // 1082 3 305 480
0x007b0001, // 1083 3 305 464
0x007b2001, // 1084 3 305 451
0x007b4201, // 1085 3 305 433
0x007b6101, // 1086 3 305 442
0x007b8301, // 1087 3 305 437
0x007ba500, // 1088 3 305 439
0x007bc300, // 1089 3 305 434
0x007be600, // 1090 3 305 437
0x007c0800, // 1091 3 305 441
0x007c2800, // 1092 3 305 444
0x007c4800, // 1093 3 305 445
0x007c6a00, // 1094 3 305 389
0x007c8d00, // 1095 3 305 387
0x007cab00, // 1096 3 305 355
0x007ccd00, // 1097 3 305 362
0x007cee00, // 1098 3 305 341
0x007d0f00, // 1099 3 305 312
0x007d3100, // 1100 3 305 274
0x007d5200, // 1101 3 305 250
0x007d7300, // 1102 3 305 222
0x007d9700, // 1103 3 305 197
0x007db600, // 1104 3 305 175
0x007dd500, // 1105 3 305 155
0x007df700, // 1106 3 305 139
0x007e1800, // 1107 3 305 124
0x007e3900, // 1108 3 305 117
0x007e5900, // 1109 3 305 102
0x007e7c00, // 1110 3 305 94
0x007e9900, // 1111 3 305 80
0x007ebb00, // 1112 3 305 78
0x007edc00, // 1113 3 305 66
0x007efd00, // 1114 3 305 61
0x007f1f00, // 1115 3 305 49
0x007f4000, // 1116 3 305 56
0x007f6100, // 1117 3 305 44
0x007f8300, // 1118 3 305 39
0x007fa420, // 1119 3 305 33
0x007fc020, // 1120 0 346 33
0x007fe000, // 1121 0 346 33
0x00800000, // 1122 0 346 33
0x00800300, // 1123 0 346 33
0x00802000, // 1124 0 346 33
0x00802500, // 1125 0 346 33
0x00804200, // 1126 0 346 33
0x00804800, // 1127 0 346 33
0x00806200, // 1128 0 346 33
0x00806700, // 1129 0 346 33
0x00808400, // 1130 0 346 33
0x00808900, // 1131 0 346 33
0x0080a400, // 1132 0 346 33
0x0080a900, // 1133 0 346 33
0x0080c600, // 1134 0 346 33
0x0080c900, // 1135 0 346 33
0x0080e600, // 1136 0 346 33
0x0080e900, // 1137 0 346 33
0x00810700, // 1138 0 346 33
0x00810c00, // 1139 0 346 33
0x00812900, // 1140 0 346 33
0x00812f00, // 1141 0 346 33
0x00814a00, // 1142 0 346 33
0x00814e00, // 1143 0 346 33
0x00816b00, // 1144 0 346 33
0x00817000, // 1145 0 346 33
0x00818b02, // 1146 0 346 33
0x00819102, // 1147 0 346 33
0x0081ad02, // 1148 0 346 33
0x0081b202, // 1149 0 346 33
0x0081ce02, // 1150 0 346 33
0x0081d200, // 1151 0 346 33
0x0081ed00, // 1152 0 346 33
0x0081f200, // 1153 0 346 33
0x00821100, // 1154 0 346 33
0x00822f00, // 1155 0 346 33
0x00823500, // 1156 0 346 33
0x00825300, // 1157 0 346 33
0x00827300, // 1158 0 346 33
0x00827800, // 1159 0 346 33
0x00829300, // 1160 0 346 33
0x00829800, // 1161 0 346 33
0x0082b500, // 1162 0 346 33
0x0082b900, // 1163 0 346 33
0x0082d600, // 1164 0 346 33
0x0082dc00, // 1165 0 346 33
0x0082f702, // 1166 0 346 33
0x0082fb02, // 1167 0 346 33
0x00831702, // 1168 0 346 33
0x00831b02, // 1169 0 346 33
0x00833902, // 1170 0 346 33
0x00833e02, // 1171 0 346 33
0x00835900, // 1172 0 346 33
0x00835d00, // 1173 0 346 33
0x00837b00, // 1174 0 346 33
0x00837f00, // 1175 0 346 33
0x00839d00, // 1176 0 346 33
0x0083bd00, // 1177 0 346 33
0x0083c100, // 1178 0 346 33
0x0083dc00, // 1179 0 346 33
0x0083e200, // 1180 0 346 33
0x0083fc00, // 1181 0 346 33
0x00840300, // 1182 0 346 33
0x00841e00, // 1183 0 346 33
0x00842400, // 1184 0 346 33
0x00843f00, // 1185 0 346 33
0x00844500, // 1186 0 346 33
0x00846100, // 1187 0 346 33
0x00846600, // 1188 0 346 33
0x00848200, // 1189 0 346 33
0x00848600, // 1190 0 346 33
0x0084a300, // 1191 0 346 33
0x0084a800, // 1192 0 346 33
0x0084c404, // 1193 0 346 33
0x0084c904, // 1194 0 346 33
0x0084e604, // 1195 0 346 33
0x0084eb04, // 1196 0 346 33
0x00850704, // 1197 0 346 33
0x00850b04, // 1198 0 346 33
0x00852900, // 1199 0 346 33
0x00854900, // 1200 0 346 33
0x00854c00, // 1201 0 346 33
0x00856904, // 1202 0 346 33
0x00856d04, // 1203 0 346 33
0x00858c04, // 1204 0 346 33
0x0085aa00, // 1205 0 346 33
0x0085b000, // 1206 0 346 33
0x0085cc00, // 1207 0 346 33
0x0085d000, // 1208 0 346 33
0x0085ed00, // 1209 0 346 33
0x0085f204, // 1210 0 346 33
0x00860e04, // 1211 0 346 33
0x00861304, // 1212 0 346 33
0x00863000, // 1213 0 346 33
0x00863300, // 1214 0 346 33
0x00865000, // 1215 0 346 33
0x00865400, // 1216 0 346 33
0x00867300, // 1217 0 346 33
0x00869104, // 1218 0 346 33
0x00869704, // 1219 0 346 33
0x0086b400, // 1220 0 346 33
0x0086b800, // 1221 0 346 33
0x0086d400, // 1222 0 346 33
0x0086d900, // 1223 0 346 33
0x0086f600, // 1224 0 346 33
0x0086fc00, // 1225 0 346 33
0x00871604, // 1226 0 346 33
0x00871b04, // 1227 0 346 33
0x00873704, // 1228 0 346 33
0x00873c04, // 1229 0 346 33
0x00875800, // 1230 0 346 33
0x00875d00, // 1231 0 346 33
0x00877900, // 1232 0 346 33
0x00877e00, // 1233 0 346 33
0x00879b04, // 1234 0 346 33
0x00879f04, // 1235 0 346 33
0x0087bc04, // 1236 0 346 33
0x0087c104, // 1237 0 346 33
0x0087db00, // 1238 0 346 33
0x0087e000, // 1239 0 346 33
0x0087ff00, // 1240 0 346 33
0x00881f00, // 1241 0 346 33
0x00882304, // 1242 0 346 33
0x00883e04, // 1243 0 346 33
0x00884304, // 1244 0 346 33
0x00885f00, // 1245 0 346 33
0x00886500, // 1246 0 346 33
0x00888200, // 1247 0 346 33
0x00888500, // 1248 0 346 33
0x0088a400, // 1249 0 346 33
0x0088c304, // 1250 0 346 33
0x0088c804, // 1251 0 346 33
0x0088e604, // 1252 0 346 33
0x00890600, // 1253 0 346 33
0x00890a00, // 1254 0 346 33
0x00892500, // 1255 0 346 33
0x00892a00, // 1256 0 346 33
0x00894804, // 1257 0 346 33
0x00894c04, // 1258 0 346 33
0x00896804, // 1259 0 346 33
0x00896c04, // 1260 0 346 33
0x00898b00, // 1261 0 346 33
0x0089aa00, // 1262 0 346 33
0x0089af00, // 1263 0 346 33
0x0089ca00, // 1264 0 346 33
0x0089d004, // 1265 0 346 33
0x0089eb04, // 1266 0 346 33
0x0089f104, // 1267 0 346 33
0x008a0d00, // 1268 0 346 33
0x008a1100, // 1269 0 346 33
0x008a3100, // 1270 0 346 33
0x008a5000, // 1271 0 346 33
0x008a5400, // 1272 0 346 33
0x008a7004, // 1273 0 346 33
0x008a7404, // 1274 0 346 33
0x008a9104, // 1275 0 346 33
0x008a9600, // 1276 0 346 33
0x008ab300, // 1277 0 346 33
0x008ab800, // 1278 0 346 33
0x008ad400, // 1279 0 346 33
0x008ad700, // 1280 0 346 33
0x008af604, // 1281 0 346 33
0x008b1604, // 1282 0 346 33
0x008b1c04, // 1283 0 346 33
0x008b3700, // 1284 0 346 33
0x008b3a00, // 1285 0 346 33
0x008b5800, // 1286 0 346 33
0x008b5d00, // 1287 0 346 33
0x008b7800, // 1288 0 346 33
0x008b7c00, // 1289 0 346 33
0x008b9b04, // 1290 0 346 33
0x008bbb00, // 1291 0 346 33
0x008bbf00, // 1292 0 346 33
0x008bdc00, // 1293 0 346 33
0x008bdf00, // 1294 0 346 33
0x008bfc00, // 1295 0 346 33
0x008c0000, // 1296 0 346 33
0x008c1f04, // 1297 0 346 33
0x008c3f04, // 1298 0 346 33
0x008c4204, // 1299 0 346 33
0x008c6000, // 1300 0 346 33
0x008c6300, // 1301 0 346 33
0x008c8200, // 1302 0 346 33
0x008ca000, // 1303 0 346 33
0x008ca500, // 1304 0 346 33
0x008cc300, // 1305 0 346 33
0x008cc800, // 1306 0 346 33
0x008ce400, // 1307 0 346 33
0x008ce800, // 1308 0 346 33
0x008d0500, // 1309 0 346 33
0x008d0b00, // 1310 0 346 33
0x008d2700, // 1311 0 346 33
0x008d4700, // 1312 0 346 33
0x008d4a00, // 1313 0 346 33
0x008d6900, // 1314 0 346 33
0x008d8600, // 1315 0 346 33
0x008d8d00, // 1316 0 346 33
0x008da900, // 1317 0 346 33
0x008dae00, // 1318 0 346 33
0x008dca00, // 1319 0 346 33
0x008dcf00, // 1320 0 346 33
0x008deb00, // 1321 0 346 33
0x008df000, // 1322 0 346 33
0x008e0e00, // 1323 0 346 33
0x008e2e00, // 1324 0 346 33
0x008e3300, // 1325 0 346 33
0x008e5010, // 1326 0 346 33
0x008ea400, // 1327 4 0 0
0x00924900, // 1327 5 0 0
0x00924b00, // 1327 1 0 0
0x00925500, // 1328 1 0 0
0x00927800, // 1329 1 0 0
0x00929800, // 1330 1 0 0
0x0092ba00, // 1331 1 0 0
0x0092dc00, // 1332 1 0 0
0x0092fc00, // 1333 1 0 0
0x00931e00, // 1334 1 0 0
0x00934000, // 1335 1 0 0
0x00936000, // 1336 1 0 0
0x00938000, // 1337 1 0 0
0x0093a100, // 1338 1 0 0
0x0093be00, // 1339 1 0 0
0x0093e300, // 1340 1 0 0
0x00940200, // 1341 1 0 0
0x00942400, // 1342 1 0 0
0x00944500, // 1343 1 0 0
0x00946700, // 1344 1 0 0
0x00948700, // 1345 1 0 0
0x0094a900, // 1346 1 0 0
0x0094ca00, // 1347 1 0 0
0x0094eb00, // 1348 1 0 0
0x00950900, // 1349 1 0 0
0x00952d00, // 1350 1 0 0
0x00954f00, // 1351 1 0 0
0x00956d00, // 1352 1 0 0
0x00958e00, // 1353 1 0 0
0x0095b000, // 1354 1 0 0
0x0095d400, // 1355 1 0 0
0x0095f400, // 1356 1 0 0
0x00961700, // 1357 1 0 0
0x00963500, // 1358 1 0 0
0x00965700, // 1359 1 0 0
0x00967700, // 1360 1 0 0
0x00969700, // 1361 1 0 0
0x0096b800, // 1362 1 0 0
0x0096db00, // 1363 1 0 0
0x0096fc00, // 1364 1 0 0
0x00971c00, // 1365 1 0 0
0x00973c00, // 1366 1 0 0
0x00975e00, // 1367 1 0 0
0x00978000, // 1368 1 0 0
0x0097a100, // 1369 1 0 0
0x0097c000, // 1370 1 0 0
0x0097e200, // 1371 1 0 0
0x00980400, // 1372 1 0 0
0x00982200, // 1373 1 0 0
0x00984600, // 1374 1 0 0
0x00986300, // 1375 1 0 0
0x00988800, // 1376 1 0 0
0x0098a700, // 1377 1 0 0
0x0098ca00, // 1378 1 0 0
0x0098ea00, // 1379 1 0 0
0x00990b00, // 1380 1 0 0
0x00992c00, // 1381 1 0 0
0x00994900, // 1382 1 0 0
0x00996a00, // 1383 1 0 0
0x00998d00, // 1384 1 0 0
0x0099ae00, // 1385 1 0 0
0x0099d000, // 1386 1 0 0
0x0099f300, // 1387 1 0 0
0x009a1000, // 1388 1 0 0
0x009a3500, // 1389 1 0 0
0x009a5400, // 1390 1 0 0
0x009a7600, // 1391 1 0 0
0x009a9700, // 1392 1 0 0
0x009ab700, // 1393 1 0 0
0x009ad900, // 1394 1 0 0
0x009afc00, // 1395 1 0 0
0x009b1a00, // 1396 2 1 0
0x009b3c00, // 1397 2 2 12
0x009b5c00, // 1398 2 3 25
0x009b7f00, // 1399 2 4 37
0x009b9f00, // 1400 2 5 50
0x009bc000, // 1401 2 6 62
0x009be000, // 1402 2 7 67
0x009bff00, // 1403 2 8 69
0x009c2300, // 1404 2 9 89
0x009c4300, // 1405 2 10 114
0x009c6600, // 1406 2 11 141
0x009c8700, // 1407 2 12 161
0x009ca800, // 1408 2 13 178
0x009cca00, // 1409 2 14 195
0x009ceb00, // 1410 2 15 203
0x009d0b00, // 1411 2 16 215
0x009d2c00, // 1412 2 17 223
0x009d4d00, // 1413 2 18 234
0x009d6f00, // 1414 2 19 249
0x009d8f20, // 1415 2 20 255
0x009da920, // 1416 0 20 255
0x009dc800, // 1417 0 20 255
0x009de800, // 1418 0 20 255
0x009deb00, // 1419 0 20 255
0x009e0a00, // 1420 0 20 255
0x009e2a00, // 1421 0 20 255
0x009e2f00, // 1422 0 20 255
0x009e4b00, // 1423 0 20 255
0x009e4f00, // 1424 0 20 255
0x009e6c00, // 1425 0 20 255
0x009e7100, // 1426 0 20 255
0x009e8b00, // 1427 0 20 255
0x009e9100, // 1428 0 20 255
0x009eae00, // 1429 0 20 255
0x009eb200, // 1430 0 20 255
0x009ed000, // 1431 0 20 255
0x009eef00, // 1432 0 20 255
0x009ef300, // 1433 0 20 255
0x009f1200, // 1434 0 20 255
0x009f3100, // 1435 0 20 255
0x009f3600, // 1436 0 20 255
0x009f5300, // 1437 0 20 255
0x009f5800, // 1438 0 20 255
0x009f7400, // 1439 0 20 255
0x009f7700, // 1440 0 20 255
0x009f9600, // 1441 0 20 255
0x009fb400, // 1442 0 20 255
0x009fba00, // 1443 0 20 255
0x009fd700, // 1444 0 20 255
0x009fdc00, // 1445 0 20 255
0x009ff810, // 1446 0 20 255
0x009ffb10, // 1447 0 20 255
0x00a01810, // 1448 0 20 255
0x00a01d10, // 1449 0 20 255
0x00a03a00, // 1450 0 20 255
0x00a03e00, // 1451 0 20 255
0x00a05b00, // 1452 0 20 255
0x00a05e00, // 1453 0 20 255
0x00a07d00, // 1454 0 20 255
0x00a09c00, // 1455 0 20 255
0x00a0a000, // 1456 0 20 255
0x00a0bf00, // 1457 0 20 255
0x00a0dd00, // 1458 0 20 255
0x00a0e200, // 1459 0 20 255
0x00a10000, // 1460 0 20 255
0x00a10400, // 1461 0 20 255
0x00a12200, // 1462 0 20 255
0x00a14000, // 1463 0 20 255
0x00a14600, // 1464 0 20 255
0x00a16300, // 1465 0 20 255
0x00a16800, // 1466 0 20 255
0x00a18320, // 1467 0 20 255
0x00a18920, // 1468 2 20 255
0x00a1ab20, // 1469 2 21 270
0x00a1ce00, // 1470 2 22 276
0x00a1f000, // 1471 2 23 289
0x00a21000, // 1472 2 24 295
0x00a23200, // 1473 2 25 300
0x00a25300, // 1474 2 26 306
0x00a27300, // 1475 2 27 313
0x00a29400, // 1476 2 28 324
0x00a2b600, // 1477 2 29 327
0x00a2d700, // 1478 2 30 338
0x00a2f800, // 1479 2 31 352
0x00a31800, // 1480 2 32 349
0x00a33900, // 1481 2 33 357
0x00a35900, // 1482 2 34 373
0x00a37b00, // 1483 2 35 389
0x00a39900, // 1484 2 36 379
0x00a3bb00, // 1485 2 37 378
0x00a3de00, // 1486 2 38 389
0x00a3ff00, // 1487 2 39 392
0x00a41c00, // 1488 2 40 394
0x00a43e00, // 1489 2 41 403
0x00a46000, // 1490 2 42 407
0x00a48400, // 1491 2 43 411
0x00a4a400, // 1492 2 44 413
0x00a4c300, // 1493 2 45 426
0x00a4e700, // 1494 2 46 434
0x00a50700, // 1495 2 47 439
0x00a52700, // 1496 2 48 443
0x00a54a00, // 1497 2 49 442
0x00a56b00, // 1498 2 50 454
0x00a58c00, // 1499 2 51 451
0x00a5ab00, // 1500 2 52 459
0x00a5cd00, // 1501 2 53 469
0x00a5f000, // 1502 2 54 467
0x00a61000, // 1503 2 55 481
0x00a62f00, // 1504 2 56 474
0x00a65200, // 1505 2 57 479
0x00a67300, // 1506 2 58 487
0x00a69300, // 1507 2 59 494
0x00a6b400, // 1508 2 60 493
0x00a6d400, // 1509 2 61 506
0x00a6f700, // 1510 2 62 513
0x00a71600, // 1511 2 63 526
0x00a73a00, // 1512 2 64 531
0x00a75900, // 1513 2 65 545
0x00a77900, // 1514 2 66 549
0x00a79c00, // 1515 2 67 559
0x00a7bd00, // 1516 2 68 566
0x00a7dd00, // 1517 2 69 575
0x00a7fe00, // 1518 2 70 581
0x00a82000, // 1519 2 71 591
0x00a84100, // 1520 2 72 596
0x00a86300, // 1521 2 73 606
0x00a88300, // 1522 2 74 611
0x00a8a400, // 1523 2 75 614
0x00a8c420, // 1524 2 76 618
0x00a8de20, // 1525 0 76 618
0x00a8fe20, // 1526 0 76 618
0x00a90320, // 1527 0 76 618
0x00a91f00, // 1528 0 76 618
0x00a92200, // 1529 0 76 618
0x00a94000, // 1530 0 76 618
0x00a94500, // 1531 0 76 618
0x00a96100, // 1532 0 76 618
0x00a96400, // 1533 0 76 618
0x00a98300, // 1534 0 76 618
0x00a9a100, // 1535 0 76 618
0x00a9a700, // 1536 0 76 618
0x00a9c400, // 1537 0 76 618
0x00a9c900, // 1538 0 76 618
0x00a9e400, // 1539 0 76 618
0x00a9e900, // 1540 0 76 618
0x00aa0600, // 1541 0 76 618
0x00aa0a00, // 1542 0 76 618
0x00aa2800, // 1543 0 76 618
0x00aa4810, // 1544 0 76 618
0x00aa4b10, // 1545 0 76 618
0x00aa6910, // 1546 0 76 618
0x00aa6c10, // 1547 0 76 618
0x00aa8b10, // 1548 0 76 618
0x00aaab00, // 1549 0 76 618
0x00aaaf00, // 1550 0 76 618
0x00aacc00, // 1551 0 76 618
0x00aad100, // 1552 0 76 618
0x00aaeb00, // 1553 0 76 618
0x00aaf000, // 1554 0 76 618
0x00ab0f00, // 1555 0 76 618
0x00ab2d00, // 1556 0 76 618
0x00ab3200, // 1557 0 76 618
0x00ab5100, // 1558 0 76 618
0x00ab7000, // 1559 0 76 618
0x00ab7400, // 1560 0 76 618
0x00ab9200, // 1561 0 76 618
0x00ab9500, // 1562 0 76 618
0x00abb300, // 1563 0 76 618
0x00abb700, // 1564 0 76 618
0x00abd500, // 1565 0 76 618
0x00abf100, // 1566 0 76 618
0x00abf800, // 1567 0 76 618
0x00ac1600, // 1568 0 76 618
0x00ac1900, // 1569 0 76 618
0x00ac3800, // 1570 0 76 618
0x00ac5700, // 1571 0 76 618
0x00ac5b00, // 1572 0 76 618
0x00ac7a00, // 1573 0 76 618
0x00ac9a00, // 1574 0 76 618
0x00ac9f00, // 1575 0 76 618
0x00acbc00, // 1576 0 76 618
0x00acdb00, // 1577 0 76 618
0x00ace000, // 1578 0 76 618
0x00acfd00, // 1579 0 76 618
0x00ad0000, // 1580 0 76 618
0x00ad1f00, // 1581 0 76 618
0x00ad3e00, // 1582 0 76 618
0x00ad4400, // 1583 0 76 618
0x00ad6000, // 1584 0 76 618
0x00ad6400, // 1585 0 76 618
0x00ad8000, // 1586 0 76 618
0x00ad8500, // 1587 0 76 618
0x00ada200, // 1588 0 76 618
0x00ada800, // 1589 0 76 618
0x00adc400, // 1590 0 76 618
0x00ade400, // 1591 0 76 618
0x00ade800, // 1592 0 76 618
0x00ae0300, // 1593 0 76 618
0x00ae0900, // 1594 0 76 618
0x00ae2500, // 1595 0 76 618
0x00ae2900, // 1596 0 76 618
0x00ae4600, // 1597 0 76 618
0x00ae4b00, // 1598 0 76 618
0x00ae6800, // 1599 0 76 618
0x00ae6b00, // 1600 0 76 618
0x00ae8800, // 1601 0 76 618
0x00ae8d00, // 1602 0 76 618
0x00aeab10, // 1603 0 76 618
0x00aec910, // 1604 0 76 618
0x00aecf10, // 1605 0 76 618
0x00aeec00, // 1606 0 76 618
0x00aef000, // 1607 0 76 618
0x00af0d00, // 1608 0 76 618
0x00af1000, // 1609 0 76 618
0x00af2e00, // 1610 0 76 618
0x00af3200, // 1611 0 76 618
0x00af4d00, // 1612 0 76 618
0x00af5300, // 1613 0 76 618
0x00af6e00, // 1614 0 76 618
0x00af7300, // 1615 0 76 618
0x00af9200, // 1616 0 76 618
0x00afb000, // 1617 0 76 618
0x00afb600, // 1618 0 76 618
0x00afd300, // 1619 0 76 618
0x00afd600, // 1620 0 76 618
0x00aff420, // 1621 0 76 618
0x00aff820, // 1622 2 76 618
0x00b01a20, // 1623 2 77 632
0x00b03e00, // 1624 2 78 621
0x00b06000, // 1625 2 79 621
0x00b07e00, // 1626 2 80 626
0x00b0a200, // 1627 2 81 641
0x00b0c300, // 1628 2 82 632
0x00b0e300, // 1629 2 83 634
0x00b10500, // 1630 2 84 651
0x00b12500, // 1631 2 85 636
0x00b14900, // 1632 2 86 553
0x00b16800, // 1633 2 87 548
0x00b18900, // 1634 2 88 586
0x00b1aa00, // 1635 2 89 591
0x00b1cb00, // 1636 2 90 589
0x00b1ec00, // 1637 2 91 585
0x00b20c00, // 1638 2 92 568
0x00b22e00, // 1639 2 93 563
0x00b25000, // 1640 2 94 565
0x00b27000, // 1641 2 95 563
0x00b29100, // 1642 2 96 561
0x00b2b000, // 1643 2 97 555
0x00b2d400, // 1644 2 98 554
0x00b2f400, // 1645 2 99 460
0x00b31600, // 1646 2 100 457
0x00b33700, // 1647 2 101 448
0x00b35600, // 1648 2 102 438
0x00b37600, // 1649 2 103 431
0x00b39a20, // 1650 2 104 429
0x00b3b220, // 1651 0 104 429
0x00b3d220, // 1652 0 104 429
0x00b3d620, // 1653 0 104 429
0x00b3f100, // 1654 0 104 429
0x00b3f600, // 1655 0 104 429
0x00b41500, // 1656 0 104 429
0x00b43400, // 1657 0 104 429
0x00b43800, // 1658 0 104 429
0x00b45500, // 1659 0 104 429
0x00b45a00, // 1660 0 104 429
0x00b47700, // 1661 0 104 429
0x00b47b00, // 1662 0 104 429
0x00b49900, // 1663 0 104 429
0x00b4b500, // 1664 0 104 429
0x00b4bc00, // 1665 0 104 429
0x00b4db00, // 1666 0 104 429
0x00b4f900, // 1667 0 104 429
0x00b4ff00, // 1668 0 104 429
0x00b51c00, // 1669 0 104 429
0x00b51f00, // 1670 0 104 429
0x00b53d10, // 1671 0 104 429
0x00b54010, // 1672 0 104 429
0x00b55e10, // 1673 0 104 429
0x00b56210, // 1674 0 104 429
0x00b58010, // 1675 0 104 429
0x00b5a000, // 1676 0 104 429
0x00b5a300, // 1677 0 104 429
0x00b5c200, // 1678 0 104 429
0x00b5e200, // 1679 0 104 429
0x00b5e600, // 1680 0 104 429
0x00b60400, // 1681 0 104 429
0x00b62210, // 1682 0 104 429
0x00b62810, // 1683 0 104 429
0x00b64410, // 1684 0 104 429
0x00b64810, // 1685 0 104 429
0x00b66510, // 1686 0 104 429
0x00b66a10, // 1687 0 104 429
0x00b68600, // 1688 0 104 429
0x00b68b00, // 1689 0 104 429
0x00b6a700, // 1690 0 104 429
0x00b6ac00, // 1691 0 104 429
0x00b6c800, // 1692 0 104 429
0x00b6cd00, // 1693 0 104 429
0x00b6ea00, // 1694 0 104 429
0x00b6ee00, // 1695 0 104 429
0x00b70c00, // 1696 0 104 429
0x00b72a00, // 1697 0 104 429
0x00b72f00, // 1698 0 104 429
0x00b74b00, // 1699 0 104 429
0x00b75100, // 1700 0 104 429
0x00b76e00, // 1701 0 104 429
0x00b77200, // 1702 0 104 429
0x00b79000, // 1703 0 104 429
0x00b7af10, // 1704 0 104 429
0x00b7b410, // 1705 0 104 429
0x00b7d100, // 1706 0 104 429
0x00b7d700, // 1707 0 104 429
0x00b7f300, // 1708 0 104 429
0x00b81200, // 1709 0 104 429
0x00b81800, // 1710 0 104 429
0x00b83300, // 1711 0 104 429
0x00b83800, // 1712 0 104 429
0x00b85500, // 1713 0 104 429
0x00b85900, // 1714 0 104 429
0x00b87600, // 1715 0 104 429
0x00b87a00, // 1716 0 104 429
0x00b89700, // 1717 0 104 429
0x00b89b00, // 1718 0 104 429
0x00b8b900, // 1719 0 104 429
0x00b8d800, // 1720 0 104 429
0x00b8dc00, // 1721 0 104 429
0x00b8fc10, // 1722 0 104 429
0x00b91b10, // 1723 0 104 429
0x00b92010, // 1724 0 104 429
0x00b93b00, // 1725 0 104 429
0x00b93f00, // 1726 0 104 429
0x00b95d00, // 1727 0 104 429
0x00b96200, // 1728 0 104 429
0x00b97e00, // 1729 0 104 429
0x00b98200, // 1730 0 104 429
0x00b99f00, // 1731 0 104 429
0x00b9a300, // 1732 0 104 429
0x00b9c000, // 1733 0 104 429
0x00b9c500, // 1734 0 104 429
0x00b9e000, // 1735 0 104 429
0x00b9e500, // 1736 0 104 429
0x00ba0200, // 1737 0 104 429
0x00ba0500, // 1738 0 104 429
0x00ba2400, // 1739 0 104 429
0x00ba4300, // 1740 0 104 429
0x00ba4800, // 1741 0 104 429
0x00ba6500, // 1742 0 104 429
0x00ba6900, // 1743 0 104 429
0x00ba8510, // 1744 0 104 429
0x00ba8910, // 1745 0 104 429
0x00baa810, // 1746 0 104 429
0x00bac600, // 1747 0 104 429
0x00bacb00, // 1748 0 104 429
0x00bae900, // 1749 0 104 429
0x00baee00, // 1750 0 104 429
0x00bb0800, // 1751 0 104 429
0x00bb0e00, // 1752 0 104 429
0x00bb2b10, // 1753 0 104 429
0x00bb2f10, // 1754 0 104 429
0x00bb4d10, // 1755 0 104 429
0x00bb6a00, // 1756 0 104 429
0x00bb7100, // 1757 0 104 429
0x00bb8c00, // 1758 0 104 429
0x00bb9200, // 1759 0 104 429
0x00bbae00, // 1760 0 104 429
0x00bbb200, // 1761 0 104 429
0x00bbd110, // 1762 0 104 429
0x00bbee10, // 1763 0 104 429
0x00bbf510, // 1764 0 104 429
0x00bc1100, // 1765 0 104 429
0x00bc1600, // 1766 0 104 429
0x00bc3300, // 1767 0 104 429
0x00bc3800, // 1768 0 104 429
0x00bc5300, // 1769 0 104 429
0x00bc5800, // 1770 0 104 429
0x00bc7500, // 1771 0 104 429
0x00bc7900, // 1772 0 104 429
0x00bc9600, // 1773 0 104 429
0x00bc9a00, // 1774 0 104 429
0x00bcb700, // 1775 0 104 429
0x00bcbc00, // 1776 0 104 429
0x00bcd700, // 1777 0 104 429
0x00bcdb00, // 1778 0 104 429
0x00bcfb00, // 1779 0 104 429
0x00bd1900, // 1780 0 104 429
0x00bd1d00, // 1781 0 104 429
0x00bd3c10, // 1782 0 104 429
0x00bd5c10, // 1783 0 104 429
0x00bd6110, // 1784 0 104 429
0x00bd7c00, // 1785 0 104 429
0x00bd8100, // 1786 0 104 429
0x00bd9e00, // 1787 0 104 429
0x00bda200, // 1788 0 104 429
0x00bdbf00, // 1789 0 104 429
0x00bdc400, // 1790 0 104 429
0x00bde000, // 1791 0 104 429
0x00bde400, // 1792 0 104 429
0x00be0100, // 1793 0 104 429
0x00be0500, // 1794 0 104 429
0x00be2300, // 1795 0 104 429
0x00be4300, // 1796 0 104 429
0x00be4700, // 1797 0 104 429
0x00be6200, // 1798 0 104 429
0x00be6800, // 1799 0 104 429
0x00be8200, // 1800 0 104 429
0x00be8a00, // 1801 0 104 429
0x00bea500, // 1802 0 104 429
0x00bea910, // 1803 0 104 429
0x00bec610, // 1804 0 104 429
0x00becb10, // 1805 0 104 429
0x00bee810, // 1806 0 104 429
0x00beeb10, // 1807 0 104 429
0x00bf0900, // 1808 0 104 429
0x00bf0d00, // 1809 0 104 429
0x00bf2a00, // 1810 0 104 429
0x00bf2e00, // 1811 0 104 429
0x00bf4b10, // 1812 0 104 429
0x00bf4f10, // 1813 0 104 429
0x00bf6b10, // 1814 0 104 429
0x00bf7010, // 1815 0 104 429
0x00bf8e00, // 1816 0 104 429
0x00bfad00, // 1817 0 104 429
0x00bfb100, // 1818 0 104 429
0x00bfcf00, // 1819 0 104 429
0x00bfd200, // 1820 0 104 429
0x00bff000, // 1821 0 104 429
0x00bff300, // 1822 0 104 429
0x00c01100, // 1823 0 104 429
0x00c01400, // 1824 0 104 429
0x00c03300, // 1825 0 104 429
0x00c05300, // 1826 0 104 429
0x00c05600, // 1827 0 104 429
0x00c07300, // 1828 0 104 429
0x00c07800, // 1829 0 104 429
0x00c09500, // 1830 0 104 429
0x00c09900, // 1831 0 104 429
0x00c0b410, // 1832 0 104 429
0x00c0ba10, // 1833 0 104 429
0x00c0d610, // 1834 0 104 429
0x00c0db10, // 1835 0 104 429
0x00c0f700, // 1836 0 104 429
0x00c0fb00, // 1837 0 104 429
0x00c11900, // 1838 0 104 429
0x00c11c00, // 1839 0 104 429
0x00c13a00, // 1840 0 104 429
0x00c14000, // 1841 0 104 429
0x00c15c00, // 1842 0 104 429
0x00c17b00, // 1843 0 104 429
0x00c18100, // 1844 0 104 429
0x00c19c00, // 1845 0 104 429
0x00c1a100, // 1846 0 104 429
0x00c1be00, // 1847 0 104 429
0x00c1c400, // 1848 0 104 429
0x00c1df20, // 1849 0 104 429
0x00c1e220, // 1850 2 104 429
0x00c20820, // 1851 2 105 424
0x00c22a20, // 1852 2 106 420
0x00c24900, // 1853 2 107 417
0x00c26900, // 1854 2 108 418
0x00c28c00, // 1855 2 109 404
0x00c2ac00, // 1856 2 110 392
0x00c2cd00, // 1857 2 111 392
0x00c2f000, // 1858 2 112 387
0x00c30c00, // 1859 2 113 391
0x00c32e00, // 1860 2 114 387
0x00c35100, // 1861 2 115 392
0x00c37300, // 1862 2 116 389
0x00c39400, // 1863 2 117 394
0x00c3b700, // 1864 2 118 398
0x00c3d600, // 1865 2 119 396
0x00c3f700, // 1866 2 120 403
0x00c41700, // 1867 2 121 405
0x00c43900, // 1868 2 122 411
0x00c45700, // 1869 2 123 411
0x00c47a00, // 1870 2 124 413
0x00c49b00, // 1871 2 125 413
0x00c4bd00, // 1872 2 126 421
0x00c4dc00, // 1873 2 127 424
0x00c4ff00, // 1874 2 128 428
0x00c51e00, // 1875 2 129 433
0x00c54100, // 1876 2 130 439
0x00c55e00, // 1877 2 131 444
0x00c57f00, // 1878 2 132 451
0x00c5a100, // 1879 2 133 453
0x00c5c400, // 1880 2 134 457
0x00c5e700, // 1881 2 135 462
0x00c60600, // 1882 2 136 460
0x00c62700, // 1883 2 137 467
0x00c64900, // 1884 2 138 468
0x00c66800, // 1885 2 139 472
0x00c68c00, // 1886 2 140 474
0x00c6ac00, // 1887 2 141 479
0x00c6cc00, // 1888 2 142 484
0x00c6ed00, // 1889 2 143 499
0x00c70f00, // 1890 2 144 492
0x00c73000, // 1891 2 145 493
0x00c74f00, // 1892 2 146 499
0x00c77300, // 1893 2 147 504
0x00c79300, // 1894 2 148 494
0x00c7b500, // 1895 2 149 493
0x00c7d300, // 1896 2 150 496
0x00c7f600, // 1897 2 151 502
0x00c81600, // 1898 2 152 506
0x00c83900, // 1899 2 153 513
0x00c85900, // 1900 2 154 501
0x00c87900, // 1901 2 155 497
0x00c89a00, // 1902 2 156 502
0x00c8bb00, // 1903 2 157 501
0x00c8dd00, // 1904 2 158 500
0x00c8fe00, // 1905 2 159 506
0x00c91c00, // 1906 2 160 507
0x00c93c00, // 1907 2 161 516
0x00c96000, // 1908 2 162 510
0x00c98000, // 1909 2 163 516
0x00c9a300, // 1910 2 164 507
0x00c9c100, // 1911 2 165 507
0x00c9e400, // 1912 2 166 510
0x00ca0300, // 1913 2 167 511
0x00ca2300, // 1914 2 168 513
0x00ca4300, // 1915 2 169 522
0x00ca6200, // 1916 2 170 516
0x00ca8600, // 1917 2 171 521
0x00caa700, // 1918 2 172 519
0x00caca00, // 1919 2 173 520
0x00caea00, // 1920 2 174 521
0x00cb0900, // 1921 2 175 524
0x00cb2b00, // 1922 2 176 523
0x00cb4d00, // 1923 2 177 516
0x00cb6c00, // 1924 2 178 514
0x00cb8f00, // 1925 2 179 499
0x00cbb000, // 1926 2 180 500
0x00cbcf00, // 1927 2 181 481
0x00cbf100, // 1928 2 182 482
0x00cc1200, // 1929 2 183 482
0x00cc3300, // 1930 2 184 484
0x00cc5500, // 1931 2 185 484
0x00cc7600, // 1932 2 186 483
0x00cc9800, // 1933 2 187 484
0x00ccba00, // 1934 2 188 489
0x00ccd800, // 1935 2 189 490
0x00ccf900, // 1936 2 190 490
0x00cd1b00, // 1937 2 191 493
0x00cd3d00, // 1938 2 192 495
0x00cd5d00, // 1939 2 193 511
0x00cd7f00, // 1940 2 194 522
0x00cda200, // 1941 2 195 518
0x00cdc200, // 1942 2 196 491
0x00cde400, // 1943 2 197 480
0x00ce0500, // 1944 2 198 474
0x00ce2700, // 1945 2 199 470
0x00ce4800, // 1946 2 200 466
0x00ce6400, // 1947 2 201 462
0x00ce8500, // 1948 2 202 456
0x00cea900, // 1949 2 203 452
0x00cec900, // 1950 2 204 444
0x00ceea00, // 1951 2 205 438
0x00cf0b00, // 1952 2 206 431
0x00cf2d00, // 1953 2 207 426
0x00cf4e00, // 1954 2 208 423
0x00cf6d00, // 1955 2 209 415
0x00cf8f00, // 1956 2 210 407
0x00cfaf00, // 1957 2 211 401
0x00cfd200, // 1958 2 212 383
0x00cff300, // 1959 2 213 364
0x00d01500, // 1960 2 214 355
0x00d03700, // 1961 2 215 354
0x00d05500, // 1962 2 216 361
0x00d07900, // 1963 2 217 360
0x00d09700, // 1964 2 218 365
0x00d0b800, // 1965 2 219 374
0x00d0db00, // 1966 2 220 381
0x00d0fc00, // 1967 2 221 380
0x00d11c00, // 1968 2 222 382
0x00d13d00, // 1969 2 223 384
0x00d15b00, // 1970 2 224 394
0x00d17e00, // 1971 2 225 395
0x00d1a000, // 1972 2 226 402
0x00d1c100, // 1973 2 227 416
0x00d1e000, // 1974 2 228 410
0x00d20000, // 1975 2 229 416
0x00d22200, // 1976 2 230 422
0x00d24100, // 1977 2 231 429
0x00d26200, // 1978 2 232 427
0x00d28200, // 1979 2 233 429
0x00d2a400, // 1980 2 234 436
0x00d2c600, // 1981 2 235 443
0x00d2e700, // 1982 2 236 462
0x00d30400, // 1983 2 237 472
0x00d30800, // 1984 2 237 472
0x00d32400, // 1985 2 238 470
0x00d32900, // 1986 2 238 470
0x00d34900, // 1987 2 239 471
0x00d36c00, // 1988 2 240 472
0x00d38900, // 1989 2 241 470
0x00d3aa00, // 1990 2 242 477
0x00d3cc00, // 1991 2 243 482
0x00d3ed00, // 1992 2 244 486
0x00d40e00, // 1993 2 245 484
0x00d43000, // 1994 2 246 490
0x00d45200, // 1995 2 247 492
0x00d47300, // 1996 2 248 495
0x00d49400, // 1997 2 249 497
0x00d4b600, // 1998 2 250 484
0x00d4d500, // 1999 2 251 486
0x00d4f700, // 2000 2 252 494
0x00d51800, // 2001 2 253 508
0x00d53700, // 2002 2 254 494
0x00d55a00, // 2003 2 255 504
0x00d57c00, // 2004 2 256 511
0x00d59d00, // 2005 2 257 519
0x00d5bb00, // 2006 2 258 523
0x00d5de00, // 2007 2 259 530
0x00d60000, // 2008 2 260 536
0x00d62200, // 2009 2 261 544
0x00d64400, // 2010 2 262 552
0x00d66300, // 2011 2 263 558
0x00d68100, // 2012 2 264 566
0x00d6a400, // 2013 2 265 574
0x00d6c700, // 2014 2 266 585
0x00d6e800, // 2015 2 267 591
0x00d70a00, // 2016 2 268 598
0x00d72b00, // 2017 2 269 607
0x00d74a00, // 2018 2 270 541
0x00d76b00, // 2019 2 271 432
0x00d78c00, // 2020 2 272 430
0x00d7ad00, // 2021 2 273 437
0x00d7cf00, // 2022 2 274 442
0x00d7ef00, // 2023 2 275 440
0x00d81000, // 2024 2 276 454
0x00d82f00, // 2025 2 277 461
0x00d85400, // 2026 2 278 454
0x00d87300, // 2027 2 279 450
0x00d89400, // 2028 2 280 454
0x00d8b400, // 2029 2 281 458
0x00d8d700, // 2030 2 282 470
0x00d8f700, // 2031 2 283 464
0x00d91800, // 2032 2 284 472
0x00d93a00, // 2033 2 285 469
0x00d95a00, // 2034 2 286 473
0x00d97b00, // 2035 2 287 468
0x00d99c00, // 2036 2 288 485
0x00d9bd00, // 2037 2 289 483
0x00d9df00, // 2038 2 290 483
0x00da0000, // 2039 2 291 491
0x00da2100, // 2040 2 292 487
0x00da4200, // 2041 2 293 496
0x00da6400, // 2042 2 294 490
0x00da8500, // 2043 2 295 499
0x00daa400, // 2044 2 296 494
0x00dac400, // 2045 2 297 509
0x00dae400, // 2046 2 298 501
0x00db0700, // 2047 2 299 508
0x00db2800, // 2048 2 300 520
0x00db4600, // 2049 2 301 506
0x00db6b00, // 2050 2 302 507
0x00db8b00, // 2051 2 303 509
0x00dbac00, // 2052 2 304 510
0x00dbcc00, // 2053 2 305 511
0x00dbee00, // 2054 3 305 511
0x00dc0e00, // 2055 3 305 511
0x00dc3100, // 2056 3 305 511
0x00dc5100, // 2057 3 305 511
0x00dc7100, // 2058 3 305 511
0x00dc9300, // 2059 3 305 511
0x00dcb400, // 2060 3 305 511
0x00dcd400, // 2061 3 305 511
0x00dcf500, // 2062 3 305 511
0x00dd1700, // 2063 3 305 511
0x00dd3900, // 2064 3 305 511
0x00dd5920, // 2065 3 305 511
0x00dd7320, // 2066 0 306 511
0x00dd7920, // 2067 0 306 511
0x00dd9500, // 2068 0 306 511
0x00dd9a00, // 2069 0 306 511
0x00ddb600, // 2070 0 306 511
0x00ddbb00, // 2071 0 306 511
0x00ddd900, // 2072 0 306 511
0x00ddf800, // 2073 0 306 511
0x00de0000, // 2074 0 306 511
0x00de1b00, // 2075 0 306 511
0x00de3904, // 2076 0 306 511
0x00de3f04, // 2077 0 306 511
0x00de5c04, // 2078 0 306 511
0x00de6004, // 2079 0 306 511
0x00de7d00, // 2080 0 306 511
0x00de8000, // 2081 0 306 511
0x00de9f00, // 2082 0 306 511
0x00debd00, // 2083 0 306 511
0x00dec300, // 2084 0 306 511
0x00dee004, // 2085 0 306 511
0x00dee404, // 2086 0 306 511
0x00df0204, // 2087 0 306 511
0x00df2100, // 2088 0 306 511
0x00df2600, // 2089 0 306 511
0x00df4400, // 2090 0 306 511
0x00df6304, // 2091 0 306 511
0x00df6804, // 2092 0 306 511
0x00df8504, // 2093 0 306 511
0x00df8a04, // 2094 0 306 511
0x00dfa600, // 2095 0 306 511
0x00dfaa00, // 2096 0 306 511
0x00dfc700, // 2097 0 306 511
0x00dfcc00, // 2098 0 306 511
0x00dfe704, // 2099 0 306 511
0x00dfeb04, // 2100 0 306 511
0x00e00a04, // 2101 0 306 511
0x00e02a04, // 2102 0 306 511
0x00e02d00, // 2103 0 306 511
0x00e04c00, // 2104 0 306 511
0x00e06900, // 2105 0 306 511
0x00e07000, // 2106 0 306 511
0x00e08b00, // 2107 0 306 511
0x00e09100, // 2108 0 306 511
0x00e0ad00, // 2109 0 306 511
0x00e0b100, // 2110 0 306 511
0x00e0ce00, // 2111 0 306 511
0x00e0d300, // 2112 0 306 511
0x00e0f010, // 2113 0 306 511
0xffffffff // end marker
};
const uint32_t *step = steps;
char dataFile[4096]; // simulates a text file
unsigned int dataFileLen = 0;
unsigned int dataFilePos = 0;
char LCR_getNextDataFileChar(void)
{
if (dataFilePos >= dataFileLen)
{
dataFilePos = 0;
return 0;
}
dataFilePos++;
return dataFile[dataFilePos - 1];
}
void LCR_appendDataStr(const char *str)
{
while (*str)
{
dataFile[dataFileLen] = *str;
dataFileLen++;
str++;
}
dataFilePos = 0;
}
uint8_t LCR_keyPressed(uint8_t key)
{
return ((*step) >> key) & 0x01;
}
void LCR_sleep(uint16_t timeMs)
{
}
void LCR_drawPixel(unsigned long index, uint16_t color)
{
if ( // randomly checked pixels that are being rendered
(LCR_game.frame == 10 && index == 10 && color != 0x4ace) ||
(LCR_game.frame == 1086 && index == 20 && color != 0x4c7a) ||
(LCR_game.frame == 1624 && index == 1 && color != 0x4c7a))
printf("ERROR: unexpected pixel rendered at frame %d, index %d\n",
LCR_game.frame,(int) index);
}
int testState(
unsigned int frame,
unsigned int expectedGameState,
unsigned int expectedRunTime,
int expectedCarSpeed)
{
if (LCR_game.frame != frame)
return 1;
printf("checking game state at frame %d...\n",frame);
return
LCR_game.state == expectedGameState &&
LCR_game.runTime == expectedRunTime &&
LCR_racingGetCarSpeedSigned() == expectedCarSpeed;
}
int main(void)
{
puts("testing Licar");
LCR_gameInit(0,0);
puts("starting to play the game...");
while (1)
{
if (
!testState(2,0,0,0) ||
!testState(468,1,0,0) ||
!testState(520,2,35,-92) ||
!testState(1084,3,305,451) ||
!testState(763,1,0,0) ||
!testState(1103,3,305,197))
{
puts("ERROR: unexpected game state");
break;
}
if (!LCR_gameStep((*step) >> 8))
{
puts("game closed");
break;
}
if (*step == 0xffffffff)
{
puts("ERROR: reached the end step without game being closed");
break;
}
step++;
}
LCR_gameEnd();
puts("done");
return 0;
}