#![allow(non_camel_case_types, non_snake_case, non_upper_case_globals)]
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;
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,