1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
#![allow(non_camel_case_types, non_snake_case, non_upper_case_globals)]
/*
   http://brokestream.com/captcha.html

   Copyright (C) 2009 Ivan Tikhonov

   This software is provided 'as-is', without any express or implied
   warranty.  In no event will the authors be held liable for any damages
   arising from the use of this software.

   Permission is granted to anyone to use this software for any purpose,
   including commercial applications, and to alter it and redistribute it
   freely, subject to the following restrictions:

   1. The origin of this software must not be misrepresented; you must not
   claim that you wrote the original software. If you use this software
   in a product, an acknowledgment in the product documentation would be
   appreciated but is not required.
   2. Altered source versions must be plainly marked as such, and must not be
   misrepresented as being the original software.
   3. This notice may not be removed or altered from any source distribution.

   Ivan Tikhonov, kefeer@brokestream.com

*/
use rand::random;

pub const WIDTH: u16 = 200;
pub const HEIGHT: u16 = 70;
pub const IMG_SIZE: usize = (WIDTH * HEIGHT) as _;

static mut sw: [i8; 200] = [
  0, 4, 8, 12, 16, 20, 23, 27, 31, 35, 39, 43, 47, 50, 54, 58, 61, 65, 68, 71, 75, 78, 81, 84, 87,
  90, 93, 96, 98, 101, 103, 105, 108, 110, 112, 114, 115, 117, 119, 120, 121, 122, 123, 124, 125,
  126, 126, 127, 127, 127, 127, 127, 127, 127, 126, 126, 125, 124, 123, 122, 121, 120, 119, 117,
  115, 114, 112, 110, 108, 105, 103, 101, 98, 96, 93, 90, 87, 84, 81, 78, 75, 71, 68, 65, 61, 58,
  54, 50, 47, 43, 39, 35, 31, 27, 23, 20, 16, 12, 8, 4, 0, -4, -8, -12, -16, -20, -23, -27, -31,
  -35, -39, -43, -47, -50, -54, -58, -61, -65, -68, -71, -75, -78, -81, -84, -87, -90, -93, -96,
  -98, -101, -103, -105, -108, -110, -112, -114, -115, -117, -119, -120, -121, -122, -123, -124,
  -125, -126, -126, -127, -127, -127, -127, -127, -127, -127, -126, -126, -125, -124, -123, -122,
  -121, -120, -119, -117, -115, -114, -112, -110, -108, -105, -103, -101, -98, -96, -93, -90, -87,
  -84, -81, -78, -75, -71, -68, -65, -61, -58, -54, -50, -47, -43, -39, -35, -31, -27, -23, -20,
  -16, -12, -8, -4,
];

unsafe fn letter(n: i32, pos: i32, im: *mut u8, swr: *mut u8, s1: u8, s2: u8) -> i32 {
  let mut p: *mut i8 = *lt.as_mut_ptr().offset(n as isize);
  let mut r: *mut u8 = im.offset(200 * 16).offset(pos as isize);
  let mut i: *mut u8 = r;
  let mut sk1: i32 = s1 as i32 + pos;
  let mut sk2: i32 = s2 as i32 + pos;
  let mut mpos: i32 = pos;
  let mut row: i32 = 0;
  while *p as i32 != -101 {
    if (*p as i32) < 0 {
      if *p as i32 == -100 {
        r = r.offset(200);
        i = r;
        sk1 = s1 as i32 + pos;
        row += 1
      } else {
        i = i.offset(-(*p as i32) as isize)
      }
    } else {
      if sk1 >= 200 {
        sk1 %= 200
      }
      let skew: i32 = sw[sk1 as usize] as i32 / 16;
      sk1 += (*swr.offset(i.offset(pos as isize).offset_from(r) as isize) as i32 & 0x1) + 1;
      if sk2 >= 200 {
        sk2 %= 200
      }
      let skewh: i32 = sw[sk2 as usize] as i32 / 70;
      sk2 += *swr.offset(row as isize) as i32 & 0x1;
      let x: *mut u8 = i.offset((skew * 200) as isize).offset(skewh as isize);
      mpos = if mpos as i64 > i.offset(pos as isize).offset_from(r) as i64 {
        mpos as i64
      } else {
        i.offset(pos as isize).offset_from(r) as i64
      } as i32;
      if (x.offset_from(im) as i64) < (70 * 200) as i64 {
        *x = ((*p as i32) << 4) as u8
      }
      i = i.offset(1)
    }
    p = p.offset(1)
  }
  mpos + 2 + mpos % 3
}

unsafe fn line(im: *mut u8, swr: *mut u8, s1: u8) {
  let mut x: i32 = 0;
  let mut sk1: i32 = s1 as i32;
  while x < 199 {
    if sk1 >= 200 {
      sk1 %= 200
    }
    let skew: i32 = sw[sk1 as usize] as i32 / 16;
    sk1 += *swr.offset(x as isize) as i32 & (0x3 + 1);
    let i: *mut u8 = im.offset((200 * (45 + skew) + x) as isize);
    *i.offset(0) = 0;
    *i.offset(50) = 0;
    *i.offset(200) = 0;
    x += 1
  }
}
unsafe fn dots(im: *mut u8) {
  let mut n: i32 = 0;
  while n < 100 {
    let v: u32 = random();
    let i: *mut u8 = im.offset(v.wrapping_rem(200 * 67) as isize);
    *i.offset(0) = 0xff;
    *i.offset(100) = 0xff;
    *i.offset(202) = 0xff;
    n += 1
  }
}
unsafe fn blur(im: *mut u8) {
  let mut i: *mut u8 = im;
  let mut x: i32;
  let mut y: i32 = 0;
  while y < 68 {
    x = 0;
    while x < 198 {
      let c11: u32 = *i as u32;
      let c12: u32 = *i.offset(1) as u32;
      let c21: u32 = *i.offset(200) as u32;
      let c22: u32 = *i.offset(201) as u32;
      let fresh1 = i;
      i = i.offset(1);
      *fresh1 = c11
        .wrapping_add(c12)
        .wrapping_add(c21)
        .wrapping_add(c22)
        .wrapping_div(4_u32) as u8;
      x += 1
    }
    y += 1
  }
}
unsafe fn filter(im: *mut u8) {
  let mut om: [u8; IMG_SIZE] = [255; IMG_SIZE];
  let mut i: *mut u8 = im;
  let mut o: *mut u8 = om.as_mut_ptr();
  let mut x: i32;
  let mut y: i32 = 0;
  while y < 70 {
    x = 4;
    while x < 200 - 4 {
      if (*i.offset(0) > 0xf0 && *i.offset(1) < 0xf0)
        || ((*i.offset(0)) < 0xf0 && *i.offset(1) > 0xf0)
      {
        *o.offset(0) = 0;
        *o.offset(1) = 0;
      }
      i = i.offset(1);
      o = o.offset(1);
      x += 1
    }
    y += 1
  }
  std::ptr::copy(&om as _, im, IMG_SIZE);
}
static mut letters: *const u8 = b"abcdafahijklmnopqrstuvwxyz\x00" as *const u8;
// Version
// zlib/libpng license is at the end of this file

pub unsafe fn captcha() -> ([u8; 6], [u8; IMG_SIZE]) {
  let mut swr: [u8; 200] = random();
  let mut s1: u8 = random();
  let mut s2: u8 = random();
  let mut word: [u8; 6] = random();
  let mut img: [u8; IMG_SIZE] = [255; IMG_SIZE];
  let im = &mut img as *mut u8;
  let l = &mut word as *mut u8;

  s1 = (s1 as i32 & 0x7f) as u8;
  s2 = (s2 as i32 & 0x3f) as u8;
  let fresh2 = &mut (*l.offset(0));
  *fresh2 = (*fresh2 as i32 % 25) as u8;
  let fresh3 = &mut (*l.offset(1));
  *fresh3 = (*fresh3 as i32 % 25) as u8;
  let fresh4 = &mut (*l.offset(2));
  *fresh4 = (*fresh4 as i32 % 25) as u8;
  let fresh5 = &mut (*l.offset(3));
  *fresh5 = (*fresh5 as i32 % 25) as u8;
  let fresh6 = &mut (*l.offset(4));
  *fresh6 = (*fresh6 as i32 % 25) as u8;
  let fresh7 = &mut (*l.offset(5));
  *fresh7 = (*fresh7 as i32 % 25) as u8;
  let mut p: i32 = 10;
  p = letter(*l.offset(0) as i32, p, im, swr.as_mut_ptr(), s1, s2);
  p = letter(*l.offset(1) as i32, p, im, swr.as_mut_ptr(), s1, s2);
  p = letter(*l.offset(2) as i32, p, im, swr.as_mut_ptr(), s1, s2);
  p = letter(*l.offset(3) as i32, p, im, swr.as_mut_ptr(), s1, s2);
  p = letter(*l.offset(4) as i32, p, im, swr.as_mut_ptr(), s1, s2);
  letter(*l.offset(5) as i32, p, im, swr.as_mut_ptr(), s1, s2);
  dots(im);
  blur(im);
  filter(im);
  line(im, swr.as_mut_ptr(), s1);
  *l.offset(0) = *letters.offset(*l.offset(0) as isize) as u8;
  *l.offset(1) = *letters.offset(*l.offset(1) as isize) as u8;
  *l.offset(2) = *letters.offset(*l.offset(2) as isize) as u8;
  *l.offset(3) = *letters.offset(*l.offset(3) as isize) as u8;
  *l.offset(4) = *letters.offset(*l.offset(4) as isize) as u8;
  *l.offset(5) = *letters.offset(*l.offset(5) as isize) as u8;
  (word, img)
}
static mut lt0: [i8; 381] = [
  -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100,
  -100, -4, 11, 7, 5, 3, 1, 0, 0, 0, 1, 3, 7, 13, -100, -2, 11, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 9, -100, -1, 7, 0, 0, 0, 0, 0, 0, 3, 9, 11, 9, 3, 0, 0, 0, 0, 13, -100, 9, 0, 0, 0, 0, 0, 0,
  3, -5, 3, 0, 0, 0, 7, -100, 5, 0, 0, 0, 0, 0, 1, 13, -5, 9, 0, 0, 0, 1, -100, 7, 0, 0, 0, 0, 1,
  13, -6, 13, 0, 0, 0, 0, -100, -1, 9, 1, 0, 5, 13, -8, 0, 0, 0, 0, 13, -100, -14, 0, 0, 0, 0, 11,
  -100, -14, 0, 0, 0, 0, 11, -100, -14, 0, 0, 0, 0, 11, -100, -12, 13, 5, 0, 0, 0, 0, 11, -100, -8,
  13, 9, 5, 1, 0, 0, 0, 0, 0, 0, 11, -100, -4, 13, 7, 3, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 11, -100,
  -2, 13, 5, 0, 0, 0, 0, 0, 5, 9, 13, -2, 0, 0, 0, 0, 11, -100, -1, 13, 1, 0, 0, 0, 0, 7, -6, 0, 0,
  0, 0, 11, -100, 13, 1, 0, 0, 0, 0, 13, -7, 0, 0, 0, 0, 11, -100, 5, 0, 0, 0, 0, 5, -8, 0, 0, 0,
  0, 11, -100, 0, 0, 0, 0, 0, 11, -8, 0, 0, 0, 0, 11, -100, 0, 0, 0, 0, 0, 13, -7, 13, 0, 0, 0, 0,
  11, -100, 1, 0, 0, 0, 0, -7, 9, 0, 0, 0, 0, 0, 9, -3, 9, -100, 5, 0, 0, 0, 0, 3, 13, -3, 11, 3,
  0, 0, 0, 0, 0, 0, 0, 9, 13, 3, 5, -100, 13, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 11, 9, 0, 0, 0,
  0, 0, 0, 1, 13, -100, -1, 11, 1, 0, 0, 0, 0, 0, 0, 0, 0, 5, -3, 9, 0, 0, 0, 0, 0, 11, -100, -2,
  13, 7, 3, 0, 0, 0, 3, 7, 13, -5, 9, 0, 1, 3, 9, -100, -100, -100, -100, -100, -100, -100, -100,
  -100, -100, -101,
];
static mut lt1: [i8; 480] = [
  -100, -100, -4, 13, 5, 0, 3, -100, -3, 11, 1, 0, 0, 0, 7, -100, -2, 7, 0, 0, 0, 0, 0, 3, -100,
  13, 3, 0, 0, 0, 0, 0, 0, 5, -100, 1, 0, 0, 0, 0, 0, 0, 0, 9, -100, 1, 0, 0, 0, 0, 0, 0, 0, 13,
  -100, 13, 3, 0, 0, 0, 0, 0, 1, -100, -2, 5, 0, 0, 0, 0, 5, -100, -3, 0, 0, 0, 0, 9, -100, -3, 0,
  0, 0, 0, 11, -100, -3, 0, 0, 0, 0, 11, -100, -3, 0, 0, 0, 0, 9, -100, -3, 0, 0, 0, 0, 11, -100,
  -3, 0, 0, 0, 0, 11, -100, -3, 0, 0, 0, 0, 11, -100, -3, 0, 0, 0, 0, 3, 13, 9, 5, 3, 1, 0, 0, 1,
  3, 5, 9, -100, -3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 13, -100, -3, 0, 0, 0, 0,
  0, 5, 13, -2, 13, 11, 9, 5, 0, 0, 0, 0, 1, 13, -100, -3, 0, 0, 0, 0, 1, -8, 13, 1, 0, 0, 0, 5,
  -100, -3, 3, 0, 0, 0, 5, -9, 13, 0, 0, 0, 0, 11, -100, -3, 0, 0, 0, 0, 9, -10, 7, 0, 0, 0, 5,
  -100, -3, 1, 0, 0, 0, 11, -10, 13, 0, 0, 0, 0, -100, -3, 3, 0, 0, 0, 11, -11, 3, 0, 0, 0, 11,
  -100, -3, 1, 0, 0, 0, 11, -11, 7, 0, 0, 0, 7, -100, -3, 0, 0, 0, 0, 11, -11, 9, 0, 0, 0, 3, -100,
  -3, 0, 0, 0, 0, 11, -11, 11, 0, 0, 0, 1, -100, -3, 0, 0, 0, 0, 11, -11, 11, 0, 0, 0, 1, -100, -3,
  0, 0, 0, 0, 11, -11, 11, 0, 0, 0, 0, -100, -3, 0, 0, 0, 0, 11, -11, 9, 0, 0, 0, 0, -100, -3, 0,
  0, 0, 0, 11, -11, 7, 0, 0, 0, 3, -100, -3, 0, 0, 0, 0, 11, -11, 3, 0, 0, 0, 7, -100, -3, 0, 0, 0,
  0, 11, -11, 0, 0, 0, 0, 11, -100, -3, 0, 0, 0, 0, 11, -10, 9, 0, 0, 0, 3, -100, -3, 0, 0, 0, 0,
  9, -10, 3, 0, 0, 0, 11, -100, -3, 0, 0, 0, 0, 3, -9, 11, 0, 0, 0, 5, -100, -2, 13, 0, 0, 0, 0, 0,
  9, -7, 11, 1, 0, 0, 3, -100, -2, 7, 0, 0, 0, 0, 0, 0, 7, 13, -2, 13, 9, 3, 0, 0, 0, 3, 13, -100,
  -2, 13, 0, 0, 5, 13, 11, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, -100, -3, 9, 11, -4, 7, 3, 1, 0, 0, 1,
  5, 9, 13, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -101,
];
static mut lt2: [i8; 285] = [
  -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100,
  -100, -6, 13, 7, 3, 1, 0, 0, 1, 3, 7, 13, -100, -5, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 13, -100,
  -3, 13, 3, 0, 0, 0, 5, 13, 13, 7, 0, 0, 0, 0, 0, 1, 13, -100, -2, 13, 1, 0, 0, 0, 9, -4, 7, 0, 0,
  0, 0, 0, 1, -100, -1, 13, 1, 0, 0, 0, 9, -6, 5, 0, 0, 0, 0, 0, 13, -100, -1, 5, 0, 0, 0, 3, -8,
  1, 0, 0, 0, 3, -100, 13, 0, 0, 0, 0, 11, -8, 13, 3, 0, 3, -100, 7, 0, 0, 0, 1, -100, 5, 0, 0, 0,
  5, -100, 3, 0, 0, 0, 9, -100, 1, 0, 0, 0, 11, -100, 0, 0, 0, 0, 11, -100, 0, 0, 0, 0, 11, -100,
  0, 0, 0, 0, 11, -100, 0, 0, 0, 0, 9, -100, 1, 0, 0, 0, 5, -100, 5, 0, 0, 0, 0, 13, -100, 11, 0,
  0, 0, 0, 7, -100, -1, 3, 0, 0, 0, 0, 13, -100, -1, 11, 0, 0, 0, 0, 3, -12, 9, -100, -2, 7, 0, 0,
  0, 0, 3, 13, -8, 9, 1, 3, -100, -3, 5, 0, 0, 0, 0, 1, 9, -5, 9, 3, 0, 0, 11, -100, -4, 5, 0, 0,
  0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 11, -100, -5, 9, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 13, -100, -7,
  11, 7, 3, 1, 0, 1, 3, 7, 11, -100, -100, -100, -100, -100, -100, -100, -100, -100, -101,
];
static mut lt3: [i8; 478] = [
  -100, -100, -100, -100, -18, 11, 3, 0, -100, -16, 13, 3, 0, 0, 0, -100, -14, 9, 3, 0, 0, 0, 0, 0,
  -100, -13, 3, 0, 0, 0, 0, 0, 0, 0, -100, -13, 0, 0, 0, 0, 0, 0, 0, 0, -100, -13, 9, 1, 0, 0, 0,
  0, 0, 0, -100, -15, 13, 5, 0, 0, 0, 0, -100, -17, 1, 0, 0, 0, -100, -17, 3, 0, 0, 0, -100, -17,
  1, 0, 0, 0, -100, -17, 0, 0, 0, 0, -100, -16, 13, 0, 0, 0, 0, -100, -16, 13, 0, 0, 0, 0, -100,
  -6, 11, 5, 3, 1, 0, 0, 1, 5, 9, 13, 13, 0, 0, 0, 0, -100, -4, 13, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 3, 0, 0, 0, 0, -100, -3, 13, 1, 0, 0, 0, 0, 5, 11, -1, 13, 11, 3, 0, 0, 0, 0, 0, 0, -100, -2,
  13, 1, 0, 0, 0, 0, 7, -6, 11, 0, 0, 0, 0, 0, -100, -2, 3, 0, 0, 0, 0, 9, -8, 11, 0, 0, 0, 0,
  -100, -1, 9, 0, 0, 0, 0, 7, -9, 11, 0, 0, 0, 0, -100, -1, 1, 0, 0, 0, 0, 13, -9, 11, 0, 0, 0, 0,
  -100, 11, 0, 0, 0, 0, 3, -10, 11, 0, 0, 0, 0, -100, 5, 0, 0, 0, 0, 13, -10, 11, 0, 0, 0, 0, -100,
  3, 0, 0, 0, 3, -11, 11, 0, 0, 0, 0, -100, 0, 0, 0, 0, 7, -11, 11, 0, 0, 0, 0, -100, 0, 0, 0, 0,
  11, -11, 11, 0, 0, 0, 0, -100, 0, 0, 0, 0, 11, -11, 11, 0, 0, 0, 0, -100, 0, 0, 0, 0, 11, -11,
  11, 0, 0, 0, 0, -100, 1, 0, 0, 0, 9, -11, 11, 0, 0, 0, 0, -100, 3, 0, 0, 0, 7, -11, 11, 0, 0, 0,
  0, -100, 7, 0, 0, 0, 3, -11, 11, 0, 0, 0, 0, -100, 13, 0, 0, 0, 0, 13, -10, 13, 0, 0, 0, 0, -100,
  -1, 3, 0, 0, 0, 5, -11, 0, 0, 0, 0, -100, -1, 13, 0, 0, 0, 0, 11, -10, 0, 0, 0, 0, -100, -2, 7,
  0, 0, 0, 1, 13, -8, 13, 0, 0, 0, 0, 13, -100, -3, 5, 0, 0, 0, 1, 11, -7, 5, 0, 0, 0, 0, 9, -100,
  -4, 5, 0, 0, 0, 0, 3, 9, 13, -1, 13, 11, 1, 0, 0, 0, 0, 0, 0, 0, 5, -100, -5, 9, 1, 0, 0, 0, 0,
  0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 1, 13, -100, -7, 9, 3, 1, 0, 0, 3, 7, 13, -1, 11, 1, 0, 1, 5,
  7, 11, -100, -18, 13, -100, -100, -100, -100, -100, -100, -100, -100, -101,
];
static mut lt5: [i8; 345] = [
  -100, -100, -100, -100, -9, 13, 9, 3, 1, 0, 1, 5, 13, -100, -8, 7, 0, 0, 0, 0, 0, 0, 0, 3, -100,
  -7, 3, 0, 0, 0, 0, 0, 0, 0, 0, 1, -100, -6, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, -100, -5, 13, 0, 0,
  3, 13, 9, 1, 0, 0, 0, 0, 11, -100, -5, 9, 0, 0, 13, -2, 13, 5, 0, 1, 9, -100, -5, 5, 0, 0, -100,
  -5, 1, 0, 1, -100, -5, 1, 0, 0, -100, -5, 0, 0, 0, -100, -5, 0, 0, 0, 13, -100, -5, 0, 0, 0, 9,
  -100, -5, 0, 0, 0, 7, -100, -5, 0, 0, 0, 5, -100, -3, 13, 7, 0, 0, 0, 0, 9, -1, 13, 11, 13, -100,
  3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, -100, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9,
  -100, -1, 11, 13, -1, 7, 0, 0, 0, 0, 5, -1, 13, 11, 13, -100, -5, 0, 0, 0, 0, 11, -100, -5, 0, 0,
  0, 0, 11, -100, -5, 0, 0, 0, 0, 11, -100, -5, 0, 0, 0, 0, 11, -100, -5, 0, 0, 0, 0, 11, -100, -5,
  0, 0, 0, 0, 11, -100, -5, 0, 0, 0, 0, 11, -100, -5, 0, 0, 0, 0, 11, -100, -5, 0, 0, 0, 0, 11,
  -100, -5, 0, 0, 0, 0, 11, -100, -5, 0, 0, 0, 0, 11, -100, -5, 0, 0, 0, 0, 11, -100, -5, 0, 0, 0,
  0, 11, -100, -5, 0, 0, 0, 0, 11, -100, -5, 0, 0, 0, 0, 11, -100, -5, 0, 0, 0, 0, 7, -100, -3, 13,
  5, 0, 0, 0, 0, 0, 7, 13, -100, -1, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 11, -100, -1, 7, 1, 0,
  0, 0, 0, 0, 0, 0, 0, 1, 3, 7, 13, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100,
  -101,
];
static mut lt7: [i8; 434] = [
  -100, -100, -100, -100, -4, 13, 7, 1, 9, -100, -2, 13, 7, 0, 0, 0, 3, -100, -1, 7, 0, 0, 0, 0, 0,
  5, -100, 1, 0, 0, 0, 0, 0, 0, 7, -100, 3, 0, 0, 0, 0, 0, 0, 7, -100, 13, 7, 0, 0, 0, 0, 0, 9,
  -100, -2, 5, 0, 0, 0, 0, 9, -100, -2, 11, 0, 0, 0, 0, 9, -100, -3, 0, 0, 0, 0, 9, -100, -3, 0, 0,
  0, 0, 11, -100, -3, 0, 0, 0, 0, 11, -100, -3, 0, 0, 0, 0, 11, -100, -3, 0, 0, 0, 0, 11, -100, -3,
  0, 0, 0, 0, 11, -100, -3, 0, 0, 0, 0, 11, -5, 11, 5, 1, 0, 1, 7, -100, -3, 0, 0, 0, 0, 11, -3,
  13, 3, 0, 0, 0, 0, 0, 0, 3, -100, -3, 0, 0, 0, 0, 11, -2, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, -100,
  -3, 0, 0, 0, 0, 11, 11, 3, 0, 5, 11, -1, 13, 9, 1, 0, 0, 0, 3, -100, -3, 0, 0, 0, 0, 3, 0, 1, 11,
  -6, 1, 0, 0, 0, 13, -100, -3, 0, 0, 0, 0, 0, 5, -8, 11, 0, 0, 0, 11, -100, -3, 0, 0, 0, 0, 11,
  -10, 0, 0, 0, 7, -100, -3, 0, 0, 0, 0, 13, -10, 0, 0, 0, 7, -100, -3, 0, 0, 0, 0, 11, -10, 0, 0,
  0, 7, -100, -3, 0, 0, 0, 0, 11, -10, 0, 0, 0, 7, -100, -3, 0, 0, 0, 0, 13, -10, 0, 0, 0, 9, -100,
  -3, 0, 0, 0, 0, 13, -10, 0, 0, 0, 9, -100, -3, 0, 0, 0, 0, -11, 0, 0, 0, 11, -100, -3, 0, 0, 0,
  1, -11, 0, 0, 0, 13, -100, -3, 0, 0, 0, 1, -11, 0, 0, 0, 13, -100, -3, 0, 0, 0, 3, -11, 0, 0, 0,
  -100, -3, 0, 0, 0, 3, -11, 0, 0, 0, -100, -3, 0, 0, 0, 3, -11, 0, 0, 0, -100, -3, 0, 0, 0, 3,
  -10, 13, 0, 0, 0, 13, -100, -3, 0, 0, 0, 1, -10, 13, 0, 0, 0, 11, -100, -2, 9, 0, 0, 0, 0, -10,
  11, 0, 0, 0, 5, -100, -1, 7, 0, 0, 0, 0, 0, 5, 13, -7, 13, 3, 0, 0, 0, 0, 7, -100, 5, 0, 0, 0, 0,
  0, 0, 0, 0, 3, -5, 1, 0, 0, 0, 0, 0, 0, 1, 3, 11, -100, -100, -100, -100, -100, -100, -100, -100,
  -100, -100, -101,
];
static mut lt8: [i8; 261] = [
  -100, -100, -100, -100, -3, 5, 1, 0, 3, 11, -100, -2, 7, 0, 0, 0, 0, 0, 11, -100, -2, 1, 0, 0, 0,
  0, 0, 5, -100, -2, 0, 0, 0, 0, 0, 0, 5, -100, -2, 5, 0, 0, 0, 0, 0, 11, -100, -3, 7, 0, 0, 3, 9,
  -100, -4, 13, -100, -100, -100, -100, -100, -100, -100, -4, 11, 3, 0, 9, -100, -2, 9, 3, 0, 0, 0,
  9, -100, 11, 1, 0, 0, 0, 0, 0, 7, -100, 1, 0, 0, 0, 0, 0, 0, 7, -100, 1, 0, 0, 0, 0, 0, 0, 9,
  -100, -1, 11, 0, 0, 0, 0, 0, 9, -100, -2, 7, 0, 0, 0, 0, 11, -100, -3, 0, 0, 0, 0, 13, -100, -3,
  1, 0, 0, 0, -100, -3, 1, 0, 0, 0, 13, -100, -3, 1, 0, 0, 0, 13, -100, -3, 0, 0, 0, 0, 11, -100,
  -3, 0, 0, 0, 0, 11, -100, -3, 0, 0, 0, 0, 11, -100, -3, 0, 0, 0, 0, 11, -100, -3, 0, 0, 0, 0, 11,
  -100, -3, 0, 0, 0, 0, 11, -100, -3, 0, 0, 0, 0, 11, -100, -3, 0, 0, 0, 0, 11, -100, -2, 13, 0, 0,
  0, 0, 7, -100, -2, 13, 0, 0, 0, 0, 1, -100, -2, 7, 0, 0, 0, 0, 0, 9, -100, 7, 0, 0, 0, 0, 0, 0,
  0, 0, 3, -100, 9, 5, 1, 1, 0, 0, 1, 1, 3, 5, -100, -100, -100, -100, -100, -100, -100, -100,
  -100, -100, -101,
];
static mut lt9: [i8; 297] = [
  -100, -100, -100, -100, -6, 5, 0, 1, 5, 13, -100, -5, 5, 0, 0, 0, 0, 1, -100, -5, 1, 0, 0, 0, 0,
  0, 13, -100, -5, 0, 0, 0, 0, 0, 0, -100, -5, 5, 0, 0, 0, 0, 3, -100, -6, 7, 1, 0, 5, 13, -100,
  -100, -100, -100, -100, -100, -100, -100, -6, 13, 7, 3, 0, 13, -100, -5, 7, 0, 0, 0, 0, 11, -100,
  -3, 7, 1, 0, 0, 0, 0, 0, 11, -100, -2, 13, 0, 0, 0, 0, 0, 0, 0, 11, -100, -3, 11, 3, 0, 0, 0, 0,
  0, 11, -100, -5, 9, 0, 0, 0, 0, 11, -100, -6, 1, 0, 0, 0, 11, -100, -6, 3, 0, 0, 0, 11, -100, -6,
  5, 0, 0, 0, 11, -100, -6, 5, 0, 0, 0, 11, -100, -6, 5, 0, 0, 0, 11, -100, -6, 5, 0, 0, 0, 11,
  -100, -6, 3, 0, 0, 0, 11, -100, -6, 3, 0, 0, 0, 11, -100, -6, 1, 0, 0, 0, 11, -100, -6, 1, 0, 0,
  0, 13, -100, -6, 1, 0, 0, 0, 13, -100, -6, 1, 0, 0, 0, 13, -100, -6, 1, 0, 0, 0, 13, -100, -6, 1,
  0, 0, 0, 13, -100, -6, 1, 0, 0, 0, -100, -6, 1, 0, 0, 0, -100, -6, 1, 0, 0, 1, -100, -6, 1, 0, 0,
  3, -100, -6, 0, 0, 0, 5, -100, -6, 0, 0, 0, 7, -100, -6, 0, 0, 0, 11, -100, 11, 0, 0, 0, 5, 5, 0,
  0, 5, -100, 3, 0, 0, 0, 0, 0, 0, 3, -100, 0, 0, 0, 0, 0, 0, 0, 13, -100, 1, 0, 0, 0, 0, 0, 11,
  -100, 13, 3, 0, 0, 3, 11, -100, -100, -101,
];
static mut lt10: [i8; 466] = [
  -100, -100, -100, -100, -6, 9, 1, 13, -100, -3, 13, 5, 0, 0, 0, 11, -100, -1, 13, 5, 0, 0, 0, 0,
  0, 11, -100, 13, 1, 0, 0, 0, 0, 0, 0, 11, -100, 3, 0, 0, 0, 0, 0, 0, 0, 11, -100, 11, 3, 0, 0, 0,
  0, 0, 0, 11, -100, -2, 13, 0, 0, 0, 0, 0, 11, -100, -3, 9, 0, 0, 0, 0, 11, -100, -4, 0, 0, 0, 0,
  11, -100, -4, 0, 0, 0, 0, 11, -100, -4, 0, 0, 0, 0, 11, -100, -4, 0, 0, 0, 0, 11, -100, -4, 0, 0,
  0, 0, 11, -100, -4, 0, 0, 0, 0, 11, -100, -4, 0, 0, 0, 0, 11, -100, -4, 0, 0, 0, 0, 11, -7, 3, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 3, -100, -4, 0, 0, 0, 0, 11, -7, 5, 0, 0, 0, 0, 0, 0, 0, 1, 7, 13, -100,
  -4, 0, 0, 0, 0, 11, -8, 9, 0, 0, 0, 1, 9, -100, -4, 0, 0, 0, 0, 11, -7, 13, 1, 0, 0, 7, -100, -4,
  0, 0, 0, 0, 11, -7, 5, 0, 3, 13, -100, -4, 0, 0, 0, 0, 11, -6, 5, 0, 5, -100, -4, 0, 0, 0, 0, 11,
  -5, 5, 1, 11, -100, -4, 0, 0, 0, 0, 11, -3, 11, 3, 1, -100, -4, 0, 0, 0, 0, 11, -1, 11, 3, 0, 0,
  1, -100, -4, 0, 0, 0, 0, 11, 9, 0, 0, 0, 0, 0, 11, -100, -4, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 3,
  -100, -4, 0, 0, 0, 0, 0, 9, -1, 11, 1, 0, 0, 0, 9, -100, -4, 0, 0, 0, 0, 5, -4, 3, 0, 0, 0, 11,
  -100, -4, 0, 0, 0, 0, 11, -4, 13, 1, 0, 0, 0, 13, -100, -4, 0, 0, 0, 0, 11, -5, 11, 0, 0, 0, 1,
  13, -100, -4, 0, 0, 0, 0, 11, -6, 3, 0, 0, 0, 3, -100, -4, 0, 0, 0, 0, 11, -6, 11, 0, 0, 0, 0, 7,
  -100, -4, 0, 0, 0, 0, 11, -7, 3, 0, 0, 0, 0, 7, -100, -3, 13, 0, 0, 0, 0, 11, -7, 13, 0, 0, 0, 0,
  0, 7, -100, -2, 13, 3, 0, 0, 0, 0, 7, -7, 9, 0, 0, 0, 0, 0, 0, 3, 11, -100, -1, 1, 0, 0, 0, 0, 0,
  0, 0, 0, 1, 3, -4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, -100, -1, 7, 1, 0, 0, 0, 0, 0, 0, 0, 0, 7,
  -4, 3, 0, 0, 0, 0, 0, 0, 1, 1, 5, 9, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100,
  -101,
];
static mut lt11: [i8; 307] = [
  -100, -100, -100, -6, 11, 7, 11, -100, -4, 11, 3, 0, 0, 5, -100, -3, 5, 0, 0, 0, 0, 5, -100, -1,
  11, 1, 0, 0, 0, 0, 0, 7, -100, 7, 0, 0, 0, 0, 0, 0, 0, 7, -100, 0, 0, 0, 0, 0, 0, 0, 0, 9, -100,
  7, 0, 0, 0, 0, 0, 0, 0, 9, -100, -2, 9, 1, 0, 0, 0, 0, 9, -100, -3, 11, 0, 0, 0, 0, 11, -100, -4,
  0, 0, 0, 0, 11, -100, -4, 0, 0, 0, 0, 11, -100, -4, 0, 0, 0, 0, 11, -100, -4, 0, 0, 0, 0, 11,
  -100, -4, 0, 0, 0, 0, 11, -100, -4, 0, 0, 0, 0, 11, -100, -4, 0, 0, 0, 0, 11, -100, -4, 0, 0, 0,
  0, 11, -100, -4, 0, 0, 0, 0, 11, -100, -4, 0, 0, 0, 0, 11, -100, -4, 0, 0, 0, 0, 11, -100, -4, 0,
  0, 0, 0, 11, -100, -4, 0, 0, 0, 0, 11, -100, -4, 0, 0, 0, 0, 11, -100, -4, 0, 0, 0, 0, 11, -100,
  -4, 0, 0, 0, 0, 11, -100, -4, 0, 0, 0, 0, 11, -100, -4, 0, 0, 0, 0, 11, -100, -4, 0, 0, 0, 0, 11,
  -100, -4, 0, 0, 0, 0, 11, -100, -4, 0, 0, 0, 0, 11, -100, -4, 0, 0, 0, 0, 11, -100, -4, 0, 0, 0,
  0, 11, -100, -4, 0, 0, 0, 0, 11, -100, -4, 0, 0, 0, 0, 11, -100, -4, 0, 0, 0, 0, 7, -100, -3, 5,
  0, 0, 0, 0, 0, 13, -100, -1, 9, 1, 0, 0, 0, 0, 0, 0, 0, 1, 9, -100, -1, 5, 1, 0, 0, 0, 0, 0, 0,
  0, 1, 11, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -101,
];
static mut lt12: [i8; 584] = [
  -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100,
  -100, -5, 11, 5, 0, -21, 7, 1, 0, 3, 9, -100, -4, 7, 0, 0, 0, 13, -4, 11, 5, 1, 1, 0, 1, 7, -7,
  11, 3, 0, 0, 0, 0, 0, 5, -100, -2, 11, 1, 0, 0, 0, 0, 11, -2, 9, 1, 0, 0, 0, 0, 0, 0, 0, 9, -4,
  13, 5, 0, 0, 0, 0, 0, 0, 0, 0, 7, -100, 13, 3, 0, 0, 0, 0, 0, 0, 7, 13, 3, 0, 0, 0, 1, 0, 0, 0,
  0, 0, 0, 7, -1, 13, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, -100, 3, 0, 0, 0, 0, 0, 0, 0, 1, 0,
  0, 5, 11, -3, 11, 0, 0, 0, 0, 0, 0, 0, 3, 9, 13, 13, -3, 7, 0, 0, 0, 0, 5, -100, 13, 3, 0, 0, 0,
  0, 0, 0, 0, 7, 13, -6, 3, 0, 0, 0, 0, 0, 9, -8, 5, 0, 0, 0, 1, -100, -2, 11, 0, 0, 0, 0, 0, 3,
  -8, 9, 0, 0, 0, 0, 7, -9, 11, 0, 0, 0, 0, -100, -3, 3, 0, 0, 0, 0, 7, -8, 13, 0, 0, 0, 0, -10,
  11, 0, 0, 0, 0, -100, -3, 7, 0, 0, 0, 0, 11, -9, 0, 0, 0, 0, -10, 11, 0, 0, 0, 1, -100, -3, 11,
  0, 0, 0, 0, 11, -9, 0, 0, 0, 0, -10, 11, 0, 0, 0, 3, -100, -3, 13, 0, 0, 0, 0, 11, -8, 13, 0, 0,
  0, 0, -10, 11, 0, 0, 0, 5, -100, -3, 13, 0, 0, 0, 0, 11, -8, 11, 0, 0, 0, 0, -10, 11, 0, 0, 0, 5,
  -100, -4, 0, 0, 0, 0, 13, -8, 9, 0, 0, 0, 0, -10, 11, 0, 0, 0, 5, -100, -4, 0, 0, 0, 0, 13, -8,
  11, 0, 0, 0, 0, -10, 11, 0, 0, 0, 3, -100, -4, 0, 0, 0, 0, 13, -8, 11, 0, 0, 0, 0, -10, 11, 0, 0,
  0, 0, -100, -3, 13, 0, 0, 0, 1, -9, 13, 0, 0, 0, 0, -10, 11, 0, 0, 0, 0, -100, -3, 11, 0, 0, 0,
  13, -10, 0, 0, 0, 0, -10, 11, 0, 0, 0, 0, -100, -4, 0, 0, 0, 11, -10, 0, 0, 0, 0, -10, 11, 0, 0,
  0, 0, -100, -3, 13, 0, 0, 0, 3, -9, 13, 0, 0, 0, 0, 13, -9, 9, 0, 0, 0, 0, -100, -3, 7, 0, 0, 0,
  0, 13, -8, 11, 0, 0, 0, 0, 11, -9, 7, 0, 0, 0, 0, 13, -100, -3, 3, 0, 0, 0, 0, 9, -8, 5, 0, 0, 0,
  0, 5, -9, 5, 0, 0, 0, 0, 7, -100, -1, 13, 3, 0, 0, 0, 0, 0, 1, 11, -6, 9, 0, 0, 0, 0, 0, 0, 3,
  -7, 11, 1, 0, 0, 0, 0, 1, 13, -100, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, -4, 3, 0, 0, 0, 0, 0, 0, 0,
  0, 5, -5, 1, 0, 0, 0, 0, 0, 0, 0, 0, 9, -100, 13, 1, 0, 0, 0, 0, 0, 0, 0, 1, 9, -4, 1, 0, 0, 0,
  0, 0, 0, 0, 1, 5, -5, 1, 0, 0, 0, 0, 0, 0, 0, 0, 7, -100, -100, -100, -100, -100, -100, -100,
  -100, -100, -100, -101,
];
static mut lt13: [i8; 401] = [
  -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100,
  -100, -3, 13, 7, 3, 0, 13, -5, 13, 7, 1, 0, 0, 3, 7, -100, -2, 5, 0, 0, 0, 0, -4, 13, 3, 0, 0, 0,
  0, 0, 0, 0, 7, -100, 7, 1, 0, 0, 0, 0, 0, -3, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, -100, 1, 0, 0,
  0, 0, 0, 0, 13, 9, 1, 0, 5, 11, 13, -1, 11, 3, 0, 0, 0, 0, 9, -100, 13, 3, 0, 0, 0, 0, 0, 1, 1,
  7, -7, 3, 0, 0, 0, 3, -100, -2, 1, 0, 0, 0, 0, 7, -9, 13, 0, 0, 0, 1, -100, -2, 7, 0, 0, 0, 0,
  -11, 1, 0, 0, 0, -100, -2, 9, 0, 0, 0, 0, -11, 1, 0, 0, 0, 13, -100, -2, 11, 0, 0, 0, 0, -11, 3,
  0, 0, 0, 13, -100, -2, 11, 0, 0, 0, 0, -11, 5, 0, 0, 0, 11, -100, -2, 11, 0, 0, 0, 0, -11, 3, 0,
  0, 0, 11, -100, -2, 11, 0, 0, 0, 0, -11, 1, 0, 0, 0, 11, -100, -2, 11, 0, 0, 0, 0, -11, 0, 0, 0,
  0, 11, -100, -2, 11, 0, 0, 0, 0, -11, 0, 0, 0, 0, 11, -100, -2, 11, 0, 0, 0, 0, -11, 1, 0, 0, 0,
  11, -100, -2, 11, 0, 0, 0, 0, -11, 3, 0, 0, 0, 11, -100, -2, 11, 0, 0, 0, 0, -11, 3, 0, 0, 0, 11,
  -100, -2, 11, 0, 0, 0, 0, 13, -10, 5, 0, 0, 0, 11, -100, -2, 11, 0, 0, 0, 0, 13, -10, 5, 0, 0, 0,
  11, -100, -2, 11, 0, 0, 0, 0, 9, -10, 5, 0, 0, 0, 9, -100, -2, 7, 0, 0, 0, 0, 5, -10, 3, 0, 0, 0,
  7, -100, -1, 13, 1, 0, 0, 0, 0, 1, 11, -7, 11, 5, 0, 0, 0, 0, 0, 3, 9, -100, -1, 1, 0, 0, 0, 0,
  0, 0, 0, 0, 3, -4, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, -100, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, -4,
  5, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100,
  -101,
];
static mut lt14: [i8; 358] = [
  -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100,
  -100, -7, 13, 7, 3, 1, 0, 0, 1, 5, 9, -100, -6, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 7, -100, -4, 11,
  1, 0, 0, 1, 9, 13, -1, 13, 11, 5, 0, 0, 0, 3, 13, -100, -3, 11, 0, 0, 0, 3, 13, -6, 13, 1, 0, 0,
  0, 13, -100, -2, 11, 0, 0, 0, 1, 13, -8, 13, 0, 0, 0, 5, -100, -2, 0, 0, 0, 0, 9, -10, 5, 0, 0,
  0, 11, -100, -1, 7, 0, 0, 0, 1, -11, 13, 0, 0, 0, 1, -100, -1, 1, 0, 0, 0, 5, -12, 1, 0, 0, 0, 9,
  -100, 11, 0, 0, 0, 0, 11, -12, 5, 0, 0, 0, 3, -100, 7, 0, 0, 0, 0, 13, -12, 9, 0, 0, 0, 0, -100,
  3, 0, 0, 0, 0, 13, -12, 11, 0, 0, 0, 0, -100, 1, 0, 0, 0, 0, -13, 11, 0, 0, 0, 1, -100, 0, 0, 0,
  0, 0, -13, 11, 0, 0, 0, 1, -100, 0, 0, 0, 0, 0, 13, -12, 11, 0, 0, 0, 0, -100, 1, 0, 0, 0, 0, 13,
  -12, 9, 0, 0, 0, 1, -100, 5, 0, 0, 0, 0, 11, -12, 5, 0, 0, 0, 3, -100, 9, 0, 0, 0, 0, 9, -12, 3,
  0, 0, 0, 7, -100, -1, 1, 0, 0, 0, 5, -12, 0, 0, 0, 0, 11, -100, -1, 9, 0, 0, 0, 3, -11, 13, 0, 0,
  0, 3, -100, -2, 3, 0, 0, 0, 13, -10, 7, 0, 0, 0, 11, -100, -2, 13, 1, 0, 0, 3, -9, 13, 0, 0, 0,
  7, -100, -3, 13, 1, 0, 0, 3, 13, -6, 13, 1, 0, 0, 5, -100, -4, 13, 1, 0, 0, 1, 7, 13, -3, 9, 0,
  0, 0, 7, -100, -6, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 11, -100, -7, 13, 7, 3, 0, 0, 0, 0, 3, 11,
  -100, -100, -100, -100, -100, -100, -100, -100, -100, -101,
];
static mut lt15: [i8; 455] = [
  -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100,
  -6, 11, 7, -100, -4, 11, 3, 0, 0, 7, 11, 5, 3, 0, 0, 0, 1, 5, 9, -100, -2, 11, 3, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 5, -100, 13, 5, 0, 0, 0, 0, 0, 0, 0, 1, 7, 11, 13, -1, 13, 3, 0, 0, 0,
  5, -100, 1, 0, 0, 0, 0, 0, 0, 0, 3, -7, 7, 0, 0, 0, 7, -100, 1, 0, 0, 0, 0, 0, 0, 0, 11, -8, 7,
  0, 0, 0, 13, -100, -1, 11, 5, 0, 0, 0, 0, 0, 11, -9, 1, 0, 0, 3, -100, -3, 7, 0, 0, 0, 0, 11, -9,
  5, 0, 0, 0, 11, -100, -3, 9, 0, 0, 0, 0, 11, -9, 9, 0, 0, 0, 5, -100, -3, 11, 0, 0, 0, 0, 11, -9,
  11, 0, 0, 0, 0, 13, -100, -3, 11, 0, 0, 0, 0, 11, -9, 13, 0, 0, 0, 0, 11, -100, -3, 13, 0, 0, 0,
  0, 11, -10, 0, 0, 0, 0, 11, -100, -3, 13, 0, 0, 0, 0, 11, -10, 0, 0, 0, 0, 11, -100, -3, 13, 0,
  0, 0, 0, 11, -10, 0, 0, 0, 0, 11, -100, -4, 0, 0, 0, 0, 11, -10, 0, 0, 0, 0, 13, -100, -4, 0, 0,
  0, 0, 11, -10, 0, 0, 0, 0, 13, -100, -4, 0, 0, 0, 0, 13, -10, 0, 0, 0, 0, -100, -4, 0, 0, 0, 9,
  -11, 0, 0, 0, 3, -100, -4, 0, 0, 0, 3, -11, 0, 0, 0, 9, -100, -4, 0, 0, 0, 0, 13, -10, 0, 0, 0,
  13, -100, -4, 0, 0, 0, 0, 11, -9, 5, 0, 0, 0, -100, -4, 0, 0, 0, 0, 11, -8, 7, 0, 0, 0, 7, -100,
  -4, 0, 0, 0, 0, 5, -7, 9, 0, 0, 0, 3, -100, -4, 0, 0, 0, 0, 0, 3, 11, 13, -3, 9, 0, 0, 0, 1,
  -100, -4, 0, 0, 0, 0, 5, 7, 0, 0, 0, 1, 1, 0, 0, 0, 1, 13, -100, -4, 0, 0, 0, 0, 11, -2, 9, 5, 1,
  0, 0, 3, 7, -100, -4, 0, 0, 0, 0, 11, -100, -4, 0, 0, 0, 0, 11, -100, -4, 0, 0, 0, 0, 11, -100,
  -4, 0, 0, 0, 0, 7, -100, -4, 0, 0, 0, 0, 3, -100, -3, 7, 0, 0, 0, 0, 0, 9, -100, -1, 5, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 5, -100, -1, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, -100, -101,
];
static mut lt16: [i8; 442] = [
  -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100,
  -19, 7, 11, -100, -6, 11, 5, 1, 0, 0, 1, 5, 11, -4, 5, 0, 3, -100, -4, 13, 3, 0, 0, 0, 0, 0, 0,
  0, 0, 1, 11, 13, 5, 0, 0, 1, -100, -3, 13, 1, 0, 0, 1, 5, 11, -3, 11, 3, 0, 0, 0, 0, 0, 3, -100,
  -2, 13, 1, 0, 0, 3, -8, 3, 0, 0, 0, 0, 5, -100, -1, 13, 1, 0, 0, 0, 13, -8, 7, 0, 0, 0, 0, 5,
  -100, -1, 3, 0, 0, 0, 5, -9, 11, 0, 0, 0, 0, 7, -100, 9, 0, 0, 0, 0, 11, -9, 13, 0, 0, 0, 0, 9,
  -100, 3, 0, 0, 0, 0, -10, 13, 0, 0, 0, 0, 9, -100, 1, 0, 0, 0, 1, -11, 0, 0, 0, 0, 9, -100, 0, 0,
  0, 0, 3, -11, 0, 0, 0, 0, 11, -100, 0, 0, 0, 0, 5, -11, 0, 0, 0, 0, 11, -100, 0, 0, 0, 0, 9, -11,
  0, 0, 0, 0, 11, -100, 0, 0, 0, 0, 11, -11, 0, 0, 0, 0, 11, -100, 0, 0, 0, 0, 11, -11, 0, 0, 0, 0,
  11, -100, 1, 0, 0, 0, 11, -11, 0, 0, 0, 0, 11, -100, 3, 0, 0, 0, 9, -11, 0, 0, 0, 0, 11, -100, 7,
  0, 0, 0, 5, -11, 0, 0, 0, 0, 11, -100, 11, 0, 0, 0, 0, -11, 0, 0, 0, 0, 11, -100, -1, 1, 0, 0, 0,
  7, -9, 11, 0, 0, 0, 0, 11, -100, -1, 9, 0, 0, 0, 0, 13, -8, 9, 0, 0, 0, 0, 11, -100, -2, 3, 0, 0,
  0, 1, 13, -7, 5, 0, 0, 0, 0, 11, -100, -2, 13, 3, 0, 0, 0, 1, 9, 13, -3, 13, 7, 0, 0, 0, 0, 0,
  11, -100, -4, 9, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 11, -100, -6, 11, 7, 3, 1, 0, 0, 5,
  9, -1, 13, 0, 0, 0, 0, 11, -100, -16, 0, 0, 0, 0, 13, -100, -16, 0, 0, 0, 0, 13, -100, -16, 0, 0,
  0, 0, 13, -100, -16, 0, 0, 0, 0, 13, -100, -15, 13, 0, 0, 0, 0, 13, -100, -15, 9, 0, 0, 0, 0, 11,
  -100, -15, 1, 0, 0, 0, 0, 5, -100, -12, 7, 5, 1, 0, 0, 0, 0, 0, 0, 1, 3, 9, -100, -11, 13, 1, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 7, -100, -101,
];
static mut lt17: [i8; 278] = [
  -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100,
  -100, -3, 13, 5, 0, 3, -5, 9, 3, 1, 0, 0, 3, -100, -1, 11, 3, 0, 0, 0, 0, -3, 7, 0, 0, 0, 0, 0,
  0, 0, 5, -100, 9, 0, 0, 0, 0, 0, 0, -2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 1, -100, 0, 0, 0, 0, 0, 0, 0,
  11, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, -100, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  9, -100, -1, 7, 0, 0, 0, 0, 0, 0, 7, 13, -2, 11, 7, 3, 1, 3, 11, -100, -2, 3, 0, 0, 0, 0, 3,
  -100, -2, 7, 0, 0, 0, 0, 9, -100, -2, 11, 0, 0, 0, 0, 13, -100, -2, 13, 0, 0, 0, 0, -100, -3, 0,
  0, 0, 0, -100, -3, 0, 0, 0, 0, 13, -100, -3, 0, 0, 0, 0, 13, -100, -3, 0, 0, 0, 0, 13, -100, -3,
  0, 0, 0, 0, 11, -100, -3, 0, 0, 0, 0, 11, -100, -3, 0, 0, 0, 0, 11, -100, -3, 0, 0, 0, 0, 11,
  -100, -3, 0, 0, 0, 0, 11, -100, -3, 0, 0, 0, 0, 11, -100, -3, 0, 0, 0, 0, 9, -100, -1, 13, 3, 0,
  0, 0, 0, 1, 13, -100, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, -100, 5, 1, 0, 0, 0, 0, 0, 0, 0, 0, 3,
  13, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -101,
];
static mut lt18: [i8; 292] = [
  -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100,
  -100, -3, 13, 7, 1, 0, 1, 3, 9, 11, 9, 9, 13, -100, -2, 13, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,
  -100, -2, 1, 0, 5, 13, -1, 13, 11, 3, 0, 0, 0, 1, -100, -1, 9, 0, 1, -6, 9, 0, 0, 0, 13, -100,
  -1, 3, 0, 9, -7, 11, 1, 0, 9, -100, -1, 0, 0, -9, 13, 1, 5, -100, -1, 0, 0, 11, -9, 13, 11, -100,
  13, 0, 0, 1, 13, -100, 13, 0, 0, 0, 1, 9, -100, -1, 0, 0, 0, 0, 0, 0, 5, 9, -100, -1, 5, 0, 0, 0,
  0, 0, 0, 0, 1, 7, 13, -100, -1, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, -100, -2, 13, 1, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 7, -100, -4, 11, 5, 0, 0, 0, 0, 0, 0, 0, 0, 7, -100, -7, 9, 5, 0, 0, 0, 0, 0, 0,
  13, -100, -9, 13, 7, 0, 0, 0, 0, 7, -100, -11, 13, 3, 0, 0, 3, -100, -13, 0, 0, 0, -100, 7, 5,
  -11, 1, 0, 0, -100, 1, 0, 5, -10, 1, 0, 3, -100, 0, 0, 0, 3, -9, 0, 0, 9, -100, 1, 0, 0, 0, 3,
  13, -6, 5, 0, 3, -100, 7, 0, 0, 0, 0, 1, 7, 11, 13, 13, 9, 3, 0, 1, 13, -100, 13, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 3, 13, -100, -1, 5, 3, 9, 7, 3, 1, 0, 0, 1, 5, 11, -100, -100, -100, -100,
  -100, -100, -100, -100, -100, -101,
];
static mut lt19: [i8; 292] = [
  -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -6, 5, 0, 5, -100, -5, 13, 0, 0, 0,
  7, -100, -5, 7, 0, 0, 0, 9, -100, -5, 3, 0, 0, 0, 13, -100, -4, 11, 0, 0, 0, 0, -100, -4, 3, 0,
  0, 0, 0, -100, -3, 5, 0, 0, 0, 0, 1, -100, -2, 3, 0, 0, 0, 0, 0, 7, -100, 13, 1, 0, 0, 0, 0, 0,
  0, 1, 11, -100, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 13, -100, 1, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 5, -100, -3, 9, 0, 0, 0, 0, 7, 13, -100, -4, 0, 0, 0, 0, 11, -100, -4, 1, 0, 0, 0,
  11, -100, -4, 1, 0, 0, 0, 11, -100, -4, 0, 0, 0, 0, 11, -100, -4, 0, 0, 0, 0, 11, -100, -4, 0, 0,
  0, 0, 11, -100, -4, 0, 0, 0, 0, 11, -100, -4, 1, 0, 0, 0, 11, -100, -4, 3, 0, 0, 0, 11, -100, -4,
  5, 0, 0, 0, 11, -100, -4, 3, 0, 0, 0, 11, -100, -4, 3, 0, 0, 0, 11, -100, -4, 1, 0, 0, 0, 9,
  -100, -4, 0, 0, 0, 0, 5, -100, -4, 0, 0, 0, 0, 1, -100, -4, 1, 0, 0, 0, 0, 11, -100, -4, 3, 0, 0,
  0, 0, 1, 13, -1, 9, 5, 1, 3, -100, -4, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, -100, -5, 5, 0, 0, 0,
  0, 0, 0, 0, 0, 5, -100, -6, 9, 3, 1, 0, 0, 1, 5, 11, -100, -100, -100, -100, -100, -100, -100,
  -100, -100, -101,
];
static mut lt20: [i8; 426] = [
  -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100,
  -4, 13, 9, 1, 0, 13, -11, 11, 5, 1, 5, -100, -2, 11, 3, 0, 0, 0, 0, 11, -8, 11, 5, 0, 0, 0, 0, 1,
  -100, 13, 3, 0, 0, 0, 0, 0, 0, 11, -6, 7, 1, 0, 0, 0, 0, 0, 0, 7, -100, 5, 0, 0, 0, 0, 0, 0, 0,
  11, -5, 5, 0, 0, 0, 0, 0, 0, 0, 0, 11, -100, 11, 1, 0, 0, 0, 0, 0, 0, 11, -5, 9, 0, 0, 0, 0, 0,
  0, 0, 0, 11, -100, -2, 11, 1, 0, 0, 0, 0, 11, -6, 13, 7, 3, 0, 0, 0, 0, 0, 11, -100, -3, 9, 0, 0,
  0, 0, 11, -9, 9, 0, 0, 0, 0, 11, -100, -3, 11, 0, 0, 0, 0, 11, -10, 0, 0, 0, 0, 11, -100, -3, 13,
  0, 0, 0, 0, 11, -10, 0, 0, 0, 0, 11, -100, -4, 0, 0, 0, 0, 11, -10, 0, 0, 0, 0, 11, -100, -4, 0,
  0, 0, 0, 11, -10, 0, 0, 0, 0, 11, -100, -4, 0, 0, 0, 0, 11, -10, 0, 0, 0, 0, 11, -100, -4, 0, 0,
  0, 0, 11, -10, 0, 0, 0, 0, 11, -100, -4, 0, 0, 0, 0, 11, -10, 0, 0, 0, 0, 11, -100, -4, 0, 0, 0,
  0, 11, -10, 0, 0, 0, 0, 11, -100, -4, 0, 0, 0, 0, 11, -10, 0, 0, 0, 0, 11, -100, -4, 0, 0, 0, 0,
  11, -10, 0, 0, 0, 0, 11, -100, -4, 1, 0, 0, 0, 11, -9, 13, 0, 0, 0, 0, 11, -100, -4, 1, 0, 0, 0,
  11, -9, 5, 0, 0, 0, 0, 11, -100, -4, 5, 0, 0, 0, 7, -8, 7, 0, 0, 0, 0, 0, 11, -100, -4, 7, 0, 0,
  0, 0, 13, -5, 13, 5, 0, 0, 0, 0, 0, 0, 11, -100, -4, 13, 0, 0, 0, 0, 1, 11, -1, 13, 11, 5, 0, 0,
  7, 5, 0, 0, 0, 0, 3, 13, -100, -5, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 13, -2, 0, 0, 0, 0, 0, 0, 7,
  -100, -5, 11, 0, 0, 0, 0, 0, 0, 0, 1, 9, -4, 0, 0, 0, 0, 0, 0, 0, -100, -6, 13, 5, 1, 0, 1, 3, 9,
  -6, 3, 1, 3, 7, 9, 11, 13, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -101,
];
static mut lt21: [i8; 326] = [
  -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100,
  -100, -6, 13, 9, 1, 3, 13, -5, 13, 1, 0, 0, 0, 0, 1, 3, 9, -100, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
  -5, 1, 0, 0, 0, 0, 0, 0, 0, 0, 9, -100, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, -5, 3, 0, 0, 0, 0, 0, 0,
  0, 0, 13, -100, -1, 9, 3, 0, 0, 0, 0, 0, 5, 13, -7, 13, 9, 0, 0, 0, 0, 1, 11, -100, -3, 7, 0, 0,
  0, 0, -11, 7, 0, 0, 5, -100, -4, 0, 0, 0, 0, 9, -10, 9, 0, 5, -100, -4, 5, 0, 0, 0, 1, -10, 5, 0,
  11, -100, -4, 11, 0, 0, 0, 0, 9, -9, 0, 1, -100, -5, 1, 0, 0, 0, 3, -8, 9, 0, 7, -100, -5, 7, 0,
  0, 0, 0, 13, -7, 3, 0, 13, -100, -5, 13, 0, 0, 0, 0, 7, -6, 13, 0, 3, -100, -6, 3, 0, 0, 0, 1,
  -6, 7, 0, 11, -100, -6, 9, 0, 0, 0, 0, 9, -5, 0, 1, -100, -6, 13, 0, 0, 0, 0, 3, -4, 7, 0, 7,
  -100, -7, 5, 0, 0, 0, 0, 11, -3, 1, 0, 13, -100, -7, 11, 0, 0, 0, 0, 1, -2, 9, 0, 5, -100, -8, 1,
  0, 0, 0, 0, 5, -1, 1, 0, 11, -100, -8, 7, 0, 0, 0, 0, 0, 0, 0, 3, -100, -8, 13, 0, 0, 0, 0, 0, 0,
  0, 9, -100, -9, 3, 0, 0, 0, 0, 0, 1, -100, -9, 9, 0, 0, 0, 0, 0, 7, -100, -10, 0, 0, 0, 0, 0, 13,
  -100, -10, 5, 0, 0, 0, 1, -100, -10, 13, 1, 0, 0, 7, -100, -11, 11, 1, 5, -100, -100, -100, -100,
  -100, -100, -100, -100, -100, -101,
];
static mut lt22: [i8; 465] = [
  -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100,
  -29, 13, -100, 5, 0, 0, 1, 1, 1, 3, 3, 5, 7, -3, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, -4, 3, 0, 0,
  0, 0, 0, 0, 1, 3, 11, -100, 5, 0, 0, 0, 0, 0, 0, 0, 1, 7, -3, 9, 0, 0, 0, 0, 0, 0, 0, 0, 1, 11,
  -4, 9, 1, 0, 0, 0, 0, 0, 0, 1, 13, -100, -1, 13, 5, 0, 0, 0, 0, 0, 13, -5, 13, 5, 0, 0, 0, 0, 0,
  3, -8, 9, 0, 0, 0, 0, 5, -100, -3, 5, 0, 0, 0, 0, -8, 11, 0, 0, 0, 0, 9, -9, 9, 0, 0, 9, -100,
  -4, 1, 0, 0, 0, 13, -8, 11, 0, 0, 0, 3, -10, 0, 3, -100, -4, 7, 0, 0, 0, 11, -8, 13, 0, 0, 0, 0,
  13, -8, 9, 0, 11, -100, -4, 13, 0, 0, 0, 7, -8, 11, 0, 0, 0, 0, 7, -8, 1, 1, -100, -5, 5, 0, 0,
  1, -8, 7, 0, 0, 0, 0, 3, -8, 5, 11, -100, -5, 11, 0, 0, 0, 9, -7, 1, 0, 0, 0, 0, 0, 13, -100, -6,
  0, 0, 0, 3, -6, 9, 0, 3, 13, 0, 0, 0, 7, -6, 5, -100, -6, 3, 0, 0, 0, 13, -5, 1, 0, 11, -1, 3, 0,
  0, 3, -6, 1, -100, -6, 9, 0, 0, 0, 9, -4, 11, 0, 3, -2, 7, 0, 0, 0, 13, -4, 11, 1, -100, -6, 13,
  0, 0, 0, 3, -4, 5, 0, 9, -2, 13, 0, 0, 0, 7, -4, 5, 3, -100, -7, 3, 0, 0, 0, 13, -3, 1, 1, -4, 0,
  0, 0, 1, -4, 1, 7, -100, -7, 9, 0, 0, 0, 5, -2, 13, 0, 7, -4, 5, 0, 0, 0, 9, -2, 9, 0, 13, -100,
  -8, 1, 0, 0, 0, 13, -1, 7, 1, -5, 11, 0, 0, 0, 1, -2, 1, 3, -100, -8, 7, 0, 0, 0, 1, 13, 1, 5,
  -6, 1, 0, 0, 0, 13, 9, 0, 9, -100, -8, 13, 0, 0, 0, 0, 0, 0, 11, -6, 7, 0, 0, 0, 1, 0, 1, -100,
  -9, 3, 0, 0, 0, 0, 3, -7, 13, 0, 0, 0, 0, 0, 9, -100, -9, 9, 0, 0, 0, 0, 5, -8, 3, 0, 0, 0, 0,
  13, -100, -9, 13, 0, 0, 0, 0, 11, -8, 9, 0, 0, 0, 1, -100, -10, 3, 0, 0, 0, -10, 3, 0, 0, 5,
  -100, -10, 11, 0, 0, 7, -10, 13, 1, 1, 13, -100, -11, 11, 11, -100, -100, -100, -100, -100, -100,
  -100, -100, -100, -100, -101,
];
static mut lt23: [i8; 371] = [
  -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100,
  -100, -100, -16, 13, 13, -1, 13, 9, 5, 1, 0, 1, 5, 13, -100, -1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 1, 7,
  -4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, -100, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 11, -4, 7, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 5, -100, -2, 13, 7, 0, 0, 0, 0, 0, 0, 13, -6, 13, 5, 0, 0, 0, 0, 5, 9, 13,
  -100, -4, 13, 3, 0, 0, 0, 0, 3, -7, 13, 0, 0, 5, 13, -100, -6, 3, 0, 0, 0, 0, 5, -6, 7, 0, 7,
  -100, -7, 3, 0, 0, 0, 0, 11, -4, 11, 0, 9, -100, -8, 5, 0, 0, 0, 1, -3, 11, 0, 7, -100, -9, 3, 0,
  0, 0, 1, 11, 11, 0, 7, -100, -9, 13, 1, 0, 0, 0, 0, 0, 7, -100, -10, 13, 1, 0, 0, 0, 0, 9, -100,
  -11, 11, 0, 0, 0, 0, 1, -100, -12, 0, 0, 0, 0, 0, 7, -100, -11, 9, 0, 0, 0, 0, 0, 0, 11, -100,
  -10, 9, 0, 5, 13, 3, 0, 0, 0, 1, 13, -100, -9, 11, 0, 3, -2, 13, 1, 0, 0, 0, 1, 13, -100, -8, 11,
  0, 3, 13, -3, 13, 1, 0, 0, 0, 1, 13, -100, -7, 9, 0, 1, 13, -5, 11, 0, 0, 0, 0, 1, 13, -100, -6,
  9, 0, 0, 7, -7, 9, 0, 0, 0, 0, 1, 11, -100, -5, 5, 0, 0, 0, 13, -8, 7, 0, 0, 0, 0, 0, 9, -100,
  -3, 13, 3, 0, 0, 0, 0, 13, -8, 13, 0, 0, 0, 0, 0, 0, 5, -100, 9, 3, 1, 0, 0, 0, 0, 0, 0, 1, 11,
  -6, 11, 1, 0, 0, 0, 0, 0, 0, 0, 1, 3, 13, -100, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, -6, 11, 5, 3, 1,
  0, 0, 0, 1, 1, 3, 5, -100, 13, 13, 13, 13, -100, -100, -100, -100, -100, -100, -100, -100, -100,
  -101,
];
static mut lt24: [i8; 383] = [
  -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100,
  -100, -1, 13, 13, -2, 13, 13, 11, 11, 11, 13, -6, 11, 11, 11, 11, 11, 11, 11, 11, 13, -100, 3, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 3, -4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, -100, 7, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 5, -4, 3, 0, 0, 0, 0, 0, 0, 0, 0, 9, -100, -2, 11, 5, 0, 0, 0, 0, 0, 0, 11, -6, 11, 0, 0,
  0, 0, 1, 7, 13, -100, -4, 11, 0, 0, 0, 0, 0, -8, 9, 0, 0, 1, 13, -100, -5, 7, 0, 0, 0, 0, 13, -7,
  9, 0, 0, 13, -100, -6, 1, 0, 0, 0, 9, -7, 5, 0, 5, -100, -6, 7, 0, 0, 0, 3, -7, 1, 0, 13, -100,
  -6, 13, 0, 0, 0, 0, 13, -5, 11, 0, 1, -100, -7, 5, 0, 0, 0, 7, -5, 7, 0, 7, -100, -7, 11, 0, 0,
  0, 3, -5, 1, 0, 11, -100, -8, 1, 0, 0, 0, 13, -3, 13, 0, 3, -100, -8, 7, 0, 0, 0, 7, -3, 7, 0, 9,
  -100, -8, 13, 0, 0, 0, 3, -3, 1, 1, -100, -9, 5, 0, 0, 0, 13, -1, 9, 0, 7, -100, -9, 11, 0, 0, 0,
  3, 13, 1, 0, 13, -100, -10, 1, 0, 0, 0, 0, 0, 3, -100, -10, 9, 0, 0, 0, 0, 0, 9, -100, -11, 1, 0,
  0, 0, 1, -100, -11, 5, 0, 0, 0, 7, -100, -11, 9, 0, 0, 0, 13, -100, -11, 13, 0, 0, 3, -100, -12,
  0, 0, 9, -100, -12, 0, 1, -100, -11, 13, 0, 7, -100, -11, 7, 0, 11, -100, -11, 1, 0, -100, -2, 7,
  0, 1, 7, -4, 11, 0, 3, -100, -1, 11, 0, 0, 0, 0, 1, 9, 13, 11, 1, 0, 9, -100, -1, 3, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 3, -100, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 13, -100, -1, 7, 0, 0, 0, 0, 0, 0, 0,
  1, 13, -100, -2, 9, 3, 0, 0, 1, 3, 7, -100, -101,
];
static mut lt: [*mut i8; 25] = unsafe {
  [
    lt0.as_ptr() as *mut _,
    lt1.as_ptr() as *mut _,
    lt2.as_ptr() as *mut _,
    lt3.as_ptr() as *mut _,
    lt0.as_ptr() as *mut _,
    lt5.as_ptr() as *mut _,
    lt0.as_ptr() as *mut _,
    lt7.as_ptr() as *mut _,
    lt8.as_ptr() as *mut _,
    lt9.as_ptr() as *mut _,
    lt10.as_ptr() as *mut _,
    lt11.as_ptr() as *mut _,
    lt12.as_ptr() as *mut _,
    lt13.as_ptr() as *mut _,
    lt14.as_ptr() as *mut _,
    lt15.as_ptr() as *mut _,
    lt16.as_ptr() as *mut _,
    lt17.as_ptr() as *mut _,
    lt18.as_ptr() as *mut _,
    lt19.as_ptr() as *mut _,
    lt20.as_ptr() as *mut _,
    lt21.as_ptr() as *mut _,
    lt22.as_ptr() as *mut _,
    lt23.as_ptr() as *mut _,
    lt24.as_ptr() as *mut _,
  ]
};