summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to 'lib')
-rw-r--r--lib/.cvsignore6
-rw-r--r--lib/Makefile.am43
-rw-r--r--lib/analysis.c117
-rw-r--r--lib/backends.h192
-rw-r--r--lib/barkmel.c64
-rw-r--r--lib/bitrate.c622
-rw-r--r--lib/bitrate.h95
-rw-r--r--lib/block.c821
-rw-r--r--lib/books/.cvsignore2
-rw-r--r--lib/books/Makefile.am4
-rw-r--r--lib/books/coupled/.cvsignore2
-rw-r--r--lib/books/coupled/Makefile.am106
-rw-r--r--lib/books/coupled/_44c0_long.vqh40
-rw-r--r--lib/books/coupled/_44c0_s0_p0_r0.vqh61
-rw-r--r--lib/books/coupled/_44c0_s0_p0_r1.vqh61
-rw-r--r--lib/books/coupled/_44c0_s0_p1_0.vqh99
-rw-r--r--lib/books/coupled/_44c0_s0_p2_0.vqh70
-rw-r--r--lib/books/coupled/_44c0_s0_p3_0.vqh93
-rw-r--r--lib/books/coupled/_44c0_s0_p4_0.vqh86
-rw-r--r--lib/books/coupled/_44c0_s0_p4_1.vqh65
-rw-r--r--lib/books/coupled/_44c0_s0_p5_0.vqh99
-rw-r--r--lib/books/coupled/_44c0_s0_p6_0.vqh93
-rw-r--r--lib/books/coupled/_44c0_s0_p7_0.vqh65
-rw-r--r--lib/books/coupled/_44c0_s0_p7_1.vqh115
-rw-r--r--lib/books/coupled/_44c0_s0_p7_2.vqh63
-rw-r--r--lib/books/coupled/_44c0_s0_pN_r0.vqh61
-rw-r--r--lib/books/coupled/_44c0_s0_pN_r1.vqh61
-rw-r--r--lib/books/coupled/_44c0_s1_p5_0.vqh63
-rw-r--r--lib/books/coupled/_44c0_s1_p5_s0.vqh61
-rw-r--r--lib/books/coupled/_44c0_s1_p6_0.vqh93
-rw-r--r--lib/books/coupled/_44c0_s1_p6_s0.vqh70
-rw-r--r--lib/books/coupled/_44c0_s1_p7_0.vqh65
-rw-r--r--lib/books/coupled/_44c0_s1_p7_1.vqh115
-rw-r--r--lib/books/coupled/_44c0_s1_p7_2.vqh63
-rw-r--r--lib/books/coupled/_44c0_s1_p7_s0.vqh70
-rw-r--r--lib/books/coupled/_44c0_s1_pS_r0.vqh58
-rw-r--r--lib/books/coupled/_44c0_s1_pS_r1.vqh58
-rw-r--r--lib/books/coupled/_44c0_s2_p6_0.vqh70
-rw-r--r--lib/books/coupled/_44c0_s2_p6_s0.vqh93
-rw-r--r--lib/books/coupled/_44c0_s2_p7_0.vqh65
-rw-r--r--lib/books/coupled/_44c0_s2_p7_1.vqh115
-rw-r--r--lib/books/coupled/_44c0_s2_p7_2.vqh63
-rw-r--r--lib/books/coupled/_44c0_s2_p7_s0.vqh93
-rw-r--r--lib/books/coupled/_44c0_s3_p7_0.vqh65
-rw-r--r--lib/books/coupled/_44c0_s3_p7_1.vqh115
-rw-r--r--lib/books/coupled/_44c0_s3_p7_2.vqh63
-rw-r--r--lib/books/coupled/_44c0_s3_p7_s0.vqh163
-rw-r--r--lib/books/coupled/_44c0_s4_p7_0.vqh65
-rw-r--r--lib/books/coupled/_44c0_s4_p7_1.vqh115
-rw-r--r--lib/books/coupled/_44c0_s4_p7_2.vqh63
-rw-r--r--lib/books/coupled/_44c0_short.vqh40
-rw-r--r--lib/books/coupled/_44c1_long.vqh40
-rw-r--r--lib/books/coupled/_44c1_s0_p1_0.vqh99
-rw-r--r--lib/books/coupled/_44c1_s0_p2_0.vqh70
-rw-r--r--lib/books/coupled/_44c1_s0_p3_0.vqh93
-rw-r--r--lib/books/coupled/_44c1_s0_p4_0.vqh86
-rw-r--r--lib/books/coupled/_44c1_s0_p4_1.vqh65
-rw-r--r--lib/books/coupled/_44c1_s0_p5_0.vqh99
-rw-r--r--lib/books/coupled/_44c1_s0_p6_0.vqh93
-rw-r--r--lib/books/coupled/_44c1_s0_p7_0.vqh65
-rw-r--r--lib/books/coupled/_44c1_s0_p7_1.vqh115
-rw-r--r--lib/books/coupled/_44c1_s0_p7_2.vqh63
-rw-r--r--lib/books/coupled/_44c1_s1_p5_0.vqh63
-rw-r--r--lib/books/coupled/_44c1_s1_p6_0.vqh93
-rw-r--r--lib/books/coupled/_44c1_s1_p7_0.vqh65
-rw-r--r--lib/books/coupled/_44c1_s1_p7_1.vqh115
-rw-r--r--lib/books/coupled/_44c1_s1_p7_2.vqh63
-rw-r--r--lib/books/coupled/_44c1_s2_p6_0.vqh70
-rw-r--r--lib/books/coupled/_44c1_s2_p7_0.vqh65
-rw-r--r--lib/books/coupled/_44c1_s2_p7_1.vqh115
-rw-r--r--lib/books/coupled/_44c1_s2_p7_2.vqh63
-rw-r--r--lib/books/coupled/_44c1_s3_p7_0.vqh65
-rw-r--r--lib/books/coupled/_44c1_s3_p7_1.vqh115
-rw-r--r--lib/books/coupled/_44c1_s3_p7_2.vqh63
-rw-r--r--lib/books/coupled/_44c1_short.vqh40
-rw-r--r--lib/books/coupled/_44c2_long.vqh40
-rw-r--r--lib/books/coupled/_44c2_s0_p1_0.vqh99
-rw-r--r--lib/books/coupled/_44c2_s0_p2_0.vqh70
-rw-r--r--lib/books/coupled/_44c2_s0_p3_0.vqh93
-rw-r--r--lib/books/coupled/_44c2_s0_p4_0.vqh86
-rw-r--r--lib/books/coupled/_44c2_s0_p4_1.vqh65
-rw-r--r--lib/books/coupled/_44c2_s0_p5_0.vqh99
-rw-r--r--lib/books/coupled/_44c2_s0_p6_0.vqh93
-rw-r--r--lib/books/coupled/_44c2_s0_p7_0.vqh65
-rw-r--r--lib/books/coupled/_44c2_s0_p7_1.vqh115
-rw-r--r--lib/books/coupled/_44c2_s0_p7_2.vqh63
-rw-r--r--lib/books/coupled/_44c2_s1_p5_0.vqh63
-rw-r--r--lib/books/coupled/_44c2_s1_p6_0.vqh93
-rw-r--r--lib/books/coupled/_44c2_s1_p7_0.vqh65
-rw-r--r--lib/books/coupled/_44c2_s1_p7_1.vqh115
-rw-r--r--lib/books/coupled/_44c2_s1_p7_2.vqh63
-rw-r--r--lib/books/coupled/_44c2_s2_p6_0.vqh70
-rw-r--r--lib/books/coupled/_44c2_s2_p7_0.vqh65
-rw-r--r--lib/books/coupled/_44c2_s2_p7_1.vqh115
-rw-r--r--lib/books/coupled/_44c2_s2_p7_2.vqh63
-rw-r--r--lib/books/coupled/_44c2_s3_p7_0.vqh65
-rw-r--r--lib/books/coupled/_44c2_s3_p7_1.vqh115
-rw-r--r--lib/books/coupled/_44c2_s3_p7_2.vqh63
-rw-r--r--lib/books/coupled/_44c2_short.vqh40
-rw-r--r--lib/books/coupled/_44c3_long.vqh40
-rw-r--r--lib/books/coupled/_44c3_s0_p1_0.vqh99
-rw-r--r--lib/books/coupled/_44c3_s0_p2_0.vqh70
-rw-r--r--lib/books/coupled/_44c3_s0_p3_0.vqh93
-rw-r--r--lib/books/coupled/_44c3_s0_p4_0.vqh86
-rw-r--r--lib/books/coupled/_44c3_s0_p4_1.vqh65
-rw-r--r--lib/books/coupled/_44c3_s0_p5_0.vqh99
-rw-r--r--lib/books/coupled/_44c3_s0_p6_0.vqh93
-rw-r--r--lib/books/coupled/_44c3_s0_p7_0.vqh80
-rw-r--r--lib/books/coupled/_44c3_s0_p7_1.vqh115
-rw-r--r--lib/books/coupled/_44c3_s0_p7_2.vqh63
-rw-r--r--lib/books/coupled/_44c3_s1_p5_0.vqh63
-rw-r--r--lib/books/coupled/_44c3_s1_p6_0.vqh93
-rw-r--r--lib/books/coupled/_44c3_s1_p7_0.vqh80
-rw-r--r--lib/books/coupled/_44c3_s1_p7_1.vqh115
-rw-r--r--lib/books/coupled/_44c3_s1_p7_2.vqh63
-rw-r--r--lib/books/coupled/_44c3_s2_p6_0.vqh70
-rw-r--r--lib/books/coupled/_44c3_s2_p7_0.vqh80
-rw-r--r--lib/books/coupled/_44c3_s2_p7_1.vqh115
-rw-r--r--lib/books/coupled/_44c3_s2_p7_2.vqh63
-rw-r--r--lib/books/coupled/_44c3_s3_p7_0.vqh80
-rw-r--r--lib/books/coupled/_44c3_s3_p7_1.vqh115
-rw-r--r--lib/books/coupled/_44c3_s3_p7_2.vqh63
-rw-r--r--lib/books/coupled/_44c3_short.vqh40
-rw-r--r--lib/books/coupled/_44c4_long.vqd3415
-rw-r--r--lib/books/coupled/_44c4_long.vqh43
-rw-r--r--lib/books/coupled/_44c4_s0_p0_r0.vqh61
-rw-r--r--lib/books/coupled/_44c4_s0_p0_r1.vqh61
-rw-r--r--lib/books/coupled/_44c4_s0_p1_0.vqh99
-rw-r--r--lib/books/coupled/_44c4_s0_p2_0.vqh99
-rw-r--r--lib/books/coupled/_44c4_s0_p3_0.vqh70
-rw-r--r--lib/books/coupled/_44c4_s0_p4_0.vqh70
-rw-r--r--lib/books/coupled/_44c4_s0_p5_0.vqh93
-rw-r--r--lib/books/coupled/_44c4_s0_p6_0.vqh93
-rw-r--r--lib/books/coupled/_44c4_s0_p7_0.vqh80
-rw-r--r--lib/books/coupled/_44c4_s0_p7_1.vqh61
-rw-r--r--lib/books/coupled/_44c4_s0_p8_0.vqh80
-rw-r--r--lib/books/coupled/_44c4_s0_p8_1.vqh80
-rw-r--r--lib/books/coupled/_44c4_s0_p9_0.vqh80
-rw-r--r--lib/books/coupled/_44c4_s0_p9_1.vqh80
-rw-r--r--lib/books/coupled/_44c4_s0_p9_2.vqh80
-rw-r--r--lib/books/coupled/_44c4_s0_pN_r0.vqh61
-rw-r--r--lib/books/coupled/_44c4_s0_pN_r1.vqh61
-rw-r--r--lib/books/coupled/_44c4_s1_p2_0.vqh63
-rw-r--r--lib/books/coupled/_44c4_s1_p2_s0.vqh61
-rw-r--r--lib/books/coupled/_44c4_s1_p4_0.vqh99
-rw-r--r--lib/books/coupled/_44c4_s1_p4_s0.vqh70
-rw-r--r--lib/books/coupled/_44c4_s1_p6_0.vqh93
-rw-r--r--lib/books/coupled/_44c4_s1_p6_s0.vqh70
-rw-r--r--lib/books/coupled/_44c4_s1_p7_0.vqh80
-rw-r--r--lib/books/coupled/_44c4_s1_p7_1.vqh61
-rw-r--r--lib/books/coupled/_44c4_s1_p7_s0.vqh70
-rw-r--r--lib/books/coupled/_44c4_s1_p8_0.vqh80
-rw-r--r--lib/books/coupled/_44c4_s1_p8_1.vqh80
-rw-r--r--lib/books/coupled/_44c4_s1_p8_s0.vqh70
-rw-r--r--lib/books/coupled/_44c4_s1_p9_0.vqh80
-rw-r--r--lib/books/coupled/_44c4_s1_p9_1.vqh80
-rw-r--r--lib/books/coupled/_44c4_s1_p9_2.vqh80
-rw-r--r--lib/books/coupled/_44c4_s1_p9_s0.vqh70
-rw-r--r--lib/books/coupled/_44c4_s1_pS_r0.vqh58
-rw-r--r--lib/books/coupled/_44c4_s1_pS_r1.vqh58
-rw-r--r--lib/books/coupled/_44c4_s2_p6_0.vqh70
-rw-r--r--lib/books/coupled/_44c4_s2_p6_s0.vqh93
-rw-r--r--lib/books/coupled/_44c4_s2_p7_0.vqh80
-rw-r--r--lib/books/coupled/_44c4_s2_p7_1.vqh61
-rw-r--r--lib/books/coupled/_44c4_s2_p7_s0.vqh93
-rw-r--r--lib/books/coupled/_44c4_s2_p8_0.vqh80
-rw-r--r--lib/books/coupled/_44c4_s2_p8_1.vqh80
-rw-r--r--lib/books/coupled/_44c4_s2_p8_s0.vqh93
-rw-r--r--lib/books/coupled/_44c4_s2_p9_0.vqh80
-rw-r--r--lib/books/coupled/_44c4_s2_p9_1.vqh80
-rw-r--r--lib/books/coupled/_44c4_s2_p9_2.vqh80
-rw-r--r--lib/books/coupled/_44c4_s2_p9_s0.vqh93
-rw-r--r--lib/books/coupled/_44c4_s3_p7_0.vqh80
-rw-r--r--lib/books/coupled/_44c4_s3_p7_1.vqh61
-rw-r--r--lib/books/coupled/_44c4_s3_p8_0.vqh80
-rw-r--r--lib/books/coupled/_44c4_s3_p8_1.vqh80
-rw-r--r--lib/books/coupled/_44c4_s3_p9_0.vqh80
-rw-r--r--lib/books/coupled/_44c4_s3_p9_1.vqh80
-rw-r--r--lib/books/coupled/_44c4_s3_p9_2.vqh80
-rw-r--r--lib/books/coupled/_44c4_s3_p9_s0.vqh163
-rw-r--r--lib/books/coupled/_44c4_short.vqd5340
-rw-r--r--lib/books/coupled/_44c4_short.vqh43
-rw-r--r--lib/books/coupled/_44c5_long.vqh43
-rw-r--r--lib/books/coupled/_44c5_s0_p1_0.vqh99
-rw-r--r--lib/books/coupled/_44c5_s0_p2_0.vqh99
-rw-r--r--lib/books/coupled/_44c5_s0_p3_0.vqh70
-rw-r--r--lib/books/coupled/_44c5_s0_p4_0.vqh70
-rw-r--r--lib/books/coupled/_44c5_s0_p5_0.vqh93
-rw-r--r--lib/books/coupled/_44c5_s0_p6_0.vqh93
-rw-r--r--lib/books/coupled/_44c5_s0_p7_0.vqh80
-rw-r--r--lib/books/coupled/_44c5_s0_p7_1.vqh61
-rw-r--r--lib/books/coupled/_44c5_s0_p8_0.vqh80
-rw-r--r--lib/books/coupled/_44c5_s0_p8_1.vqh80
-rw-r--r--lib/books/coupled/_44c5_s0_p9_0.vqh86
-rw-r--r--lib/books/coupled/_44c5_s0_p9_1.vqh93
-rw-r--r--lib/books/coupled/_44c5_s0_p9_2.vqh80
-rw-r--r--lib/books/coupled/_44c5_s1_p2_0.vqh63
-rw-r--r--lib/books/coupled/_44c5_s1_p4_0.vqh99
-rw-r--r--lib/books/coupled/_44c5_s1_p6_0.vqh93
-rw-r--r--lib/books/coupled/_44c5_s1_p7_0.vqh80
-rw-r--r--lib/books/coupled/_44c5_s1_p7_1.vqh61
-rw-r--r--lib/books/coupled/_44c5_s1_p8_0.vqh80
-rw-r--r--lib/books/coupled/_44c5_s1_p8_1.vqh80
-rw-r--r--lib/books/coupled/_44c5_s1_p9_0.vqh86
-rw-r--r--lib/books/coupled/_44c5_s1_p9_1.vqh93
-rw-r--r--lib/books/coupled/_44c5_s1_p9_2.vqh80
-rw-r--r--lib/books/coupled/_44c5_s2_p6_0.vqh70
-rw-r--r--lib/books/coupled/_44c5_s2_p7_0.vqh80
-rw-r--r--lib/books/coupled/_44c5_s2_p7_1.vqh61
-rw-r--r--lib/books/coupled/_44c5_s2_p8_0.vqh80
-rw-r--r--lib/books/coupled/_44c5_s2_p8_1.vqh80
-rw-r--r--lib/books/coupled/_44c5_s2_p9_0.vqh86
-rw-r--r--lib/books/coupled/_44c5_s2_p9_1.vqh93
-rw-r--r--lib/books/coupled/_44c5_s2_p9_2.vqh80
-rw-r--r--lib/books/coupled/_44c5_s3_p7_0.vqh80
-rw-r--r--lib/books/coupled/_44c5_s3_p7_1.vqh61
-rw-r--r--lib/books/coupled/_44c5_s3_p8_0.vqh80
-rw-r--r--lib/books/coupled/_44c5_s3_p8_1.vqh80
-rw-r--r--lib/books/coupled/_44c5_s3_p9_0.vqh86
-rw-r--r--lib/books/coupled/_44c5_s3_p9_1.vqh93
-rw-r--r--lib/books/coupled/_44c5_s3_p9_2.vqh80
-rw-r--r--lib/books/coupled/_44c5_short.vqh43
-rw-r--r--lib/books/coupled/_44c6_long.vqh43
-rw-r--r--lib/books/coupled/_44c6_s0_p1_0.vqh99
-rw-r--r--lib/books/coupled/_44c6_s0_p2_0.vqh99
-rw-r--r--lib/books/coupled/_44c6_s0_p3_0.vqh70
-rw-r--r--lib/books/coupled/_44c6_s0_p4_0.vqh70
-rw-r--r--lib/books/coupled/_44c6_s0_p5_0.vqh93
-rw-r--r--lib/books/coupled/_44c6_s0_p6_0.vqh93
-rw-r--r--lib/books/coupled/_44c6_s0_p7_0.vqh80
-rw-r--r--lib/books/coupled/_44c6_s0_p7_1.vqh61
-rw-r--r--lib/books/coupled/_44c6_s0_p8_0.vqh80
-rw-r--r--lib/books/coupled/_44c6_s0_p8_1.vqh80
-rw-r--r--lib/books/coupled/_44c6_s0_p9_0.vqh70
-rw-r--r--lib/books/coupled/_44c6_s0_p9_1.vqh80
-rw-r--r--lib/books/coupled/_44c6_s0_p9_2.vqh118
-rw-r--r--lib/books/coupled/_44c6_s1_p2_0.vqh63
-rw-r--r--lib/books/coupled/_44c6_s1_p4_0.vqh99
-rw-r--r--lib/books/coupled/_44c6_s1_p6_0.vqh93
-rw-r--r--lib/books/coupled/_44c6_s1_p7_0.vqh80
-rw-r--r--lib/books/coupled/_44c6_s1_p7_1.vqh61
-rw-r--r--lib/books/coupled/_44c6_s1_p8_0.vqh80
-rw-r--r--lib/books/coupled/_44c6_s1_p8_1.vqh80
-rw-r--r--lib/books/coupled/_44c6_s1_p9_0.vqh70
-rw-r--r--lib/books/coupled/_44c6_s1_p9_1.vqh80
-rw-r--r--lib/books/coupled/_44c6_s1_p9_2.vqh118
-rw-r--r--lib/books/coupled/_44c6_s2_p6_0.vqh70
-rw-r--r--lib/books/coupled/_44c6_s2_p7_0.vqh80
-rw-r--r--lib/books/coupled/_44c6_s2_p7_1.vqh61
-rw-r--r--lib/books/coupled/_44c6_s2_p8_0.vqh80
-rw-r--r--lib/books/coupled/_44c6_s2_p8_1.vqh80
-rw-r--r--lib/books/coupled/_44c6_s2_p9_0.vqh70
-rw-r--r--lib/books/coupled/_44c6_s2_p9_1.vqh80
-rw-r--r--lib/books/coupled/_44c6_s2_p9_2.vqh118
-rw-r--r--lib/books/coupled/_44c6_s3_p7_0.vqh80
-rw-r--r--lib/books/coupled/_44c6_s3_p7_1.vqh61
-rw-r--r--lib/books/coupled/_44c6_s3_p8_0.vqh80
-rw-r--r--lib/books/coupled/_44c6_s3_p8_1.vqh80
-rw-r--r--lib/books/coupled/_44c6_s3_p9_0.vqh70
-rw-r--r--lib/books/coupled/_44c6_s3_p9_1.vqh80
-rw-r--r--lib/books/coupled/_44c6_s3_p9_2.vqh118
-rw-r--r--lib/books/coupled/_44c6_short.vqh43
-rw-r--r--lib/books/coupled/_44c7_long.vqh43
-rw-r--r--lib/books/coupled/_44c7_s0_p0_r0.vqh61
-rw-r--r--lib/books/coupled/_44c7_s0_p0_r1.vqh61
-rw-r--r--lib/books/coupled/_44c7_s0_p1_0.vqh75
-rw-r--r--lib/books/coupled/_44c7_s0_p1_1.vqh58
-rw-r--r--lib/books/coupled/_44c7_s0_p2_0.vqh80
-rw-r--r--lib/books/coupled/_44c7_s0_p2_1.vqh80
-rw-r--r--lib/books/coupled/_44c7_s0_p3_0.vqh99
-rw-r--r--lib/books/coupled/_44c7_s0_p4_0.vqh70
-rw-r--r--lib/books/coupled/_44c7_s0_p5_0.vqh93
-rw-r--r--lib/books/coupled/_44c7_s0_p6_0.vqh75
-rw-r--r--lib/books/coupled/_44c7_s0_p6_1.vqh58
-rw-r--r--lib/books/coupled/_44c7_s0_p7_0.vqh80
-rw-r--r--lib/books/coupled/_44c7_s0_p7_1.vqh61
-rw-r--r--lib/books/coupled/_44c7_s0_p8_0.vqh86
-rw-r--r--lib/books/coupled/_44c7_s0_p8_1.vqh86
-rw-r--r--lib/books/coupled/_44c7_s0_p9_0.vqh70
-rw-r--r--lib/books/coupled/_44c7_s0_p9_1.vqh80
-rw-r--r--lib/books/coupled/_44c7_s0_p9_2.vqh118
-rw-r--r--lib/books/coupled/_44c7_s0_pN_r0.vqh61
-rw-r--r--lib/books/coupled/_44c7_s0_pN_r1.vqh61
-rw-r--r--lib/books/coupled/_44c7_short.vqh43
-rw-r--r--lib/books/coupled/_44c8_long.vqh43
-rw-r--r--lib/books/coupled/_44c8_s0_p1_0.vqh75
-rw-r--r--lib/books/coupled/_44c8_s0_p1_1.vqh58
-rw-r--r--lib/books/coupled/_44c8_s0_p2_0.vqh80
-rw-r--r--lib/books/coupled/_44c8_s0_p2_1.vqh80
-rw-r--r--lib/books/coupled/_44c8_s0_p3_0.vqh99
-rw-r--r--lib/books/coupled/_44c8_s0_p4_0.vqh70
-rw-r--r--lib/books/coupled/_44c8_s0_p5_0.vqh93
-rw-r--r--lib/books/coupled/_44c8_s0_p6_0.vqh75
-rw-r--r--lib/books/coupled/_44c8_s0_p6_1.vqh58
-rw-r--r--lib/books/coupled/_44c8_s0_p7_0.vqh80
-rw-r--r--lib/books/coupled/_44c8_s0_p7_1.vqh61
-rw-r--r--lib/books/coupled/_44c8_s0_p8_0.vqh86
-rw-r--r--lib/books/coupled/_44c8_s0_p8_1.vqh86
-rw-r--r--lib/books/coupled/_44c8_s0_p9_0.vqh75
-rw-r--r--lib/books/coupled/_44c8_s0_p9_1.vqh80
-rw-r--r--lib/books/coupled/_44c8_s0_p9_2.vqh118
-rw-r--r--lib/books/coupled/_44c8_short.vqh43
-rw-r--r--lib/books/coupled/_44c9_long.vqh43
-rw-r--r--lib/books/coupled/_44c9_s0_p1_0.vqh75
-rw-r--r--lib/books/coupled/_44c9_s0_p1_1.vqh58
-rw-r--r--lib/books/coupled/_44c9_s0_p2_0.vqh80
-rw-r--r--lib/books/coupled/_44c9_s0_p2_1.vqh80
-rw-r--r--lib/books/coupled/_44c9_s0_p3_0.vqh99
-rw-r--r--lib/books/coupled/_44c9_s0_p4_0.vqh70
-rw-r--r--lib/books/coupled/_44c9_s0_p5_0.vqh93
-rw-r--r--lib/books/coupled/_44c9_s0_p6_0.vqh75
-rw-r--r--lib/books/coupled/_44c9_s0_p6_1.vqh58
-rw-r--r--lib/books/coupled/_44c9_s0_p7_0.vqh80
-rw-r--r--lib/books/coupled/_44c9_s0_p7_1.vqh61
-rw-r--r--lib/books/coupled/_44c9_s0_p8_0.vqh86
-rw-r--r--lib/books/coupled/_44c9_s0_p8_1.vqh86
-rw-r--r--lib/books/coupled/_44c9_s0_p9_0.vqh115
-rw-r--r--lib/books/coupled/_44c9_s0_p9_1.vqh115
-rw-r--r--lib/books/coupled/_44c9_s0_p9_2.vqh160
-rw-r--r--lib/books/coupled/_44c9_short.vqh43
-rw-r--r--lib/books/floor/.cvsignore2
-rw-r--r--lib/books/floor/Makefile.am18
-rw-r--r--lib/books/floor/line_1024x31_0sub0.vqh38
-rw-r--r--lib/books/floor/line_1024x31_0sub1.vqh44
-rw-r--r--lib/books/floor/line_1024x31_1sub0.vqh38
-rw-r--r--lib/books/floor/line_1024x31_1sub1.vqh44
-rw-r--r--lib/books/floor/line_1024x31_2sub1.vqh38
-rw-r--r--lib/books/floor/line_1024x31_2sub2.vqh40
-rw-r--r--lib/books/floor/line_1024x31_2sub3.vqh44
-rw-r--r--lib/books/floor/line_1024x31_3sub1.vqh38
-rw-r--r--lib/books/floor/line_1024x31_3sub2.vqh40
-rw-r--r--lib/books/floor/line_1024x31_3sub3.vqh44
-rw-r--r--lib/books/floor/line_1024x31_class0.vqh37
-rw-r--r--lib/books/floor/line_1024x31_class1.vqh37
-rw-r--r--lib/books/floor/line_1024x31_class2.vqh40
-rw-r--r--lib/books/floor/line_1024x31_class3.vqh40
-rw-r--r--lib/books/floor/line_128x19_0sub0.vqh44
-rw-r--r--lib/books/floor/line_128x19_1sub1.vqh38
-rw-r--r--lib/books/floor/line_128x19_1sub2.vqh40
-rw-r--r--lib/books/floor/line_128x19_1sub3.vqh44
-rw-r--r--lib/books/floor/line_128x19_2sub1.vqh38
-rw-r--r--lib/books/floor/line_128x19_2sub2.vqh40
-rw-r--r--lib/books/floor/line_128x19_2sub3.vqh44
-rw-r--r--lib/books/floor/line_128x19_class1.vqh40
-rw-r--r--lib/books/floor/line_128x19_class2.vqh40
-rw-r--r--lib/books/floor/line_128x7_0sub0.vqh40
-rw-r--r--lib/books/floor/line_128x7_1sub1.vqh37
-rw-r--r--lib/books/floor/line_128x7_1sub2.vqh38
-rw-r--r--lib/books/floor/line_128x7_1sub3.vqh40
-rw-r--r--lib/books/floor/line_128x7_2sub1.vqh37
-rw-r--r--lib/books/floor/line_128x7_2sub2.vqh38
-rw-r--r--lib/books/floor/line_128x7_2sub3.vqh40
-rw-r--r--lib/books/floor/line_128x7_class1.vqh40
-rw-r--r--lib/books/floor/line_128x7_class2.vqh40
-rw-r--r--lib/books/floor/line_128x9_0sub0.vqh40
-rw-r--r--lib/books/floor/line_128x9_1sub1.vqh37
-rw-r--r--lib/books/floor/line_128x9_1sub2.vqh38
-rw-r--r--lib/books/floor/line_128x9_1sub3.vqh40
-rw-r--r--lib/books/floor/line_128x9_2sub1.vqh37
-rw-r--r--lib/books/floor/line_128x9_2sub2.vqh38
-rw-r--r--lib/books/floor/line_128x9_2sub3.vqh40
-rw-r--r--lib/books/floor/line_128x9_class1.vqh52
-rw-r--r--lib/books/floor/line_128x9_class2.vqh52
-rw-r--r--lib/books/uncoupled/.cvsignore2
-rw-r--r--lib/books/uncoupled/Makefile.am20
-rw-r--r--lib/books/uncoupled/_44u0_p0_r0.vqh58
-rw-r--r--lib/books/uncoupled/_44u0_p0_r1.vqh58
-rw-r--r--lib/books/uncoupled/_44u0_p1_0.vqh63
-rw-r--r--lib/books/uncoupled/_44u0_p1_r0.vqh58
-rw-r--r--lib/books/uncoupled/_44u0_p1_r1.vqh58
-rw-r--r--lib/books/uncoupled/_44u0_p2_0.vqh99
-rw-r--r--lib/books/uncoupled/_44u0_p3_0.vqh70
-rw-r--r--lib/books/uncoupled/_44u0_p4_0.vqh100
-rw-r--r--lib/books/uncoupled/_44u0_p4_1.vqh63
-rw-r--r--lib/books/uncoupled/_44u0_p5_0.vqh63
-rw-r--r--lib/books/uncoupled/_44u0_p6_0.vqh70
-rw-r--r--lib/books/uncoupled/_44u0_p7_0.vqh61
-rw-r--r--lib/books/uncoupled/_44u0_p7_1.vqh115
-rw-r--r--lib/books/uncoupled/_44u0_p7_2.vqh63
-rw-r--r--lib/books/uncoupled/_44u4_p0_r0.vqh58
-rw-r--r--lib/books/uncoupled/_44u4_p0_r1.vqh58
-rw-r--r--lib/books/uncoupled/_44u4_p1_0.vqh63
-rw-r--r--lib/books/uncoupled/_44u4_p1_r0.vqh58
-rw-r--r--lib/books/uncoupled/_44u4_p1_r1.vqh58
-rw-r--r--lib/books/uncoupled/_44u4_p2_0.vqh63
-rw-r--r--lib/books/uncoupled/_44u4_p3_0.vqh99
-rw-r--r--lib/books/uncoupled/_44u4_p4_0.vqh99
-rw-r--r--lib/books/uncoupled/_44u4_p5_0.vqh70
-rw-r--r--lib/books/uncoupled/_44u4_p6_0.vqh70
-rw-r--r--lib/books/uncoupled/_44u4_p7_0.vqh75
-rw-r--r--lib/books/uncoupled/_44u4_p7_1.vqh63
-rw-r--r--lib/books/uncoupled/_44u4_p8_0.vqh93
-rw-r--r--lib/books/uncoupled/_44u4_p8_1.vqh99
-rw-r--r--lib/books/uncoupled/_44u4_p9_0.vqh65
-rw-r--r--lib/books/uncoupled/_44u4_p9_1.vqh80
-rw-r--r--lib/books/uncoupled/_44u4_p9_2.vqh118
-rw-r--r--lib/books/uncoupled/_44u7_p0_r0.vqh58
-rw-r--r--lib/books/uncoupled/_44u7_p0_r1.vqh58
-rw-r--r--lib/books/uncoupled/_44u7_p1_0.vqh93
-rw-r--r--lib/books/uncoupled/_44u7_p1_r0.vqh58
-rw-r--r--lib/books/uncoupled/_44u7_p1_r1.vqh58
-rw-r--r--lib/books/uncoupled/_44u7_p2_0.vqh93
-rw-r--r--lib/books/uncoupled/_44u7_p2_1.vqh99
-rw-r--r--lib/books/uncoupled/_44u7_p3_0.vqh63
-rw-r--r--lib/books/uncoupled/_44u7_p4_0.vqh99
-rw-r--r--lib/books/uncoupled/_44u7_p5_0.vqh70
-rw-r--r--lib/books/uncoupled/_44u7_p6_0.vqh93
-rw-r--r--lib/books/uncoupled/_44u7_p7_0.vqh75
-rw-r--r--lib/books/uncoupled/_44u7_p7_1.vqh63
-rw-r--r--lib/books/uncoupled/_44u7_p8_0.vqh93
-rw-r--r--lib/books/uncoupled/_44u7_p8_1.vqh65
-rw-r--r--lib/books/uncoupled/_44u7_p9_0.vqh86
-rw-r--r--lib/books/uncoupled/_44u7_p9_1.vqh115
-rw-r--r--lib/books/uncoupled/_44u7_p9_2.vqh160
-rw-r--r--lib/codebook.c624
-rw-r--r--lib/codebook.h162
-rw-r--r--lib/codec_internal.h174
-rw-r--r--lib/envelope.c286
-rw-r--r--lib/envelope.h48
-rw-r--r--lib/floor0.c468
-rw-r--r--lib/floor1.c1152
-rw-r--r--lib/iir.c301
-rw-r--r--lib/iir.h36
-rw-r--r--lib/info.c602
-rw-r--r--lib/lookup.c94
-rw-r--r--lib/lookup.h32
-rw-r--r--lib/lookup_data.h189
-rwxr-xr-xlib/lookups.pl142
-rw-r--r--lib/lpc.c200
-rw-r--r--lib/lpc.h43
-rw-r--r--lib/lsp.c457
-rw-r--r--lib/lsp.h28
-rw-r--r--lib/mapping0.c701
-rw-r--r--lib/masking.h218
-rw-r--r--lib/mdct.c569
-rw-r--r--lib/mdct.h79
-rw-r--r--lib/misc.c213
-rw-r--r--lib/misc.h49
-rw-r--r--lib/modes/.cvsignore2
-rw-r--r--lib/modes/Makefile.am5
-rw-r--r--lib/modes/floor_44.h184
-rw-r--r--lib/modes/psych_44.h647
-rw-r--r--lib/modes/residue_44.h1406
-rw-r--r--lib/os.h163
-rw-r--r--lib/psy.c1008
-rw-r--r--lib/psy.h161
-rw-r--r--lib/psytune.c521
-rw-r--r--lib/registry-api.h23
-rw-r--r--lib/registry.c60
-rw-r--r--lib/registry.h39
-rw-r--r--lib/res0.c959
-rw-r--r--lib/scales.h132
-rw-r--r--lib/sharedbook.c743
-rw-r--r--lib/smallft.c1254
-rw-r--r--lib/smallft.h34
-rw-r--r--lib/synthesis.c104
-rw-r--r--lib/time0.c55
-rw-r--r--lib/tone.c54
-rw-r--r--lib/vorbisfile.c1532
-rw-r--r--lib/window.c62
-rw-r--r--lib/window.h23
461 files changed, 0 insertions, 56322 deletions
diff --git a/lib/.cvsignore b/lib/.cvsignore
deleted file mode 100644
index 0839b71d..00000000
--- a/lib/.cvsignore
+++ /dev/null
@@ -1,6 +0,0 @@
-*.la
-*.lo
-.libs
-.deps
-Makefile
-Makefile.in
diff --git a/lib/Makefile.am b/lib/Makefile.am
deleted file mode 100644
index 8444970d..00000000
--- a/lib/Makefile.am
+++ /dev/null
@@ -1,43 +0,0 @@
-## Process this file with automake to produce Makefile.in
-
-AUTOMAKE_OPTIONS = foreign
-
-SUBDIRS = modes books
-
-INCLUDES = -I$(top_srcdir)/include @OGG_CFLAGS@
-
-lib_LTLIBRARIES = libvorbis.la libvorbisfile.la libvorbisenc.la
-
-libvorbis_la_SOURCES = mdct.c smallft.c block.c envelope.c window.c lsp.c \
- lpc.c analysis.c synthesis.c psy.c info.c time0.c \
- floor1.c floor0.c\
- res0.c mapping0.c registry.c codebook.c sharedbook.c\
- lookup.c bitrate.c\
- envelope.h lpc.h lsp.h codebook.h misc.h psy.h\
- masking.h iir.h os.h mdct.h smallft.h\
- registry.h scales.h window.h lookup.h lookup_data.h\
- codec_internal.h backends.h bitrate.h
-libvorbis_la_LDFLAGS = -version-info @V_LIB_CURRENT@:@V_LIB_REVISION@:@V_LIB_AGE@
-
-libvorbisfile_la_SOURCES = vorbisfile.c
-libvorbisfile_la_LDFLAGS = -version-info @VF_LIB_CURRENT@:@VF_LIB_REVISION@:@VF_LIB_AGE@
-
-libvorbisenc_la_SOURCES = vorbisenc.c registry-api.h
-libvorbisenc_la_LDFLAGS = -version-info @VE_LIB_CURRENT@:@VE_LIB_REVISION@:@VE_LIB_AGE@
-
-EXTRA_PROGRAMS = barkmel tone psytune
-CLEANFILES = $(EXTRA_PROGRAMS)
-
-barkmel_SOURCES = barkmel.c
-tone_SOURCES = tone.c
-psytune_SOURCES = psytune.c
-psytune_LDFLAGS = -static
-psytune_LDADD = libvorbis.la
-
-EXTRA_DIST = lookups.pl iir.c
-
-debug:
- $(MAKE) all CFLAGS="@DEBUG@"
-
-profile:
- $(MAKE) all CFLAGS="@PROFILE@"
diff --git a/lib/analysis.c b/lib/analysis.c
deleted file mode 100644
index 518399fc..00000000
--- a/lib/analysis.c
+++ /dev/null
@@ -1,117 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2002 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: single-block PCM analysis mode dispatch
- last mod: $Id: analysis.c,v 1.48 2002/01/22 08:06:06 xiphmont Exp $
-
- ********************************************************************/
-
-#include <stdio.h>
-#include <string.h>
-#include <math.h>
-#include <ogg/ogg.h>
-#include "vorbis/codec.h"
-#include "codec_internal.h"
-#include "registry.h"
-#include "scales.h"
-#include "os.h"
-#include "misc.h"
-
-int analysis_noisy=1;
-
-/* decides between modes, dispatches to the appropriate mapping. */
-int vorbis_analysis(vorbis_block *vb, ogg_packet *op){
- vorbis_dsp_state *vd=vb->vd;
- backend_lookup_state *b=vd->backend_state;
- vorbis_info *vi=vd->vi;
- codec_setup_info *ci=vi->codec_setup;
- int type,ret;
- int mode=0;
-
- vb->glue_bits=0;
- vb->time_bits=0;
- vb->floor_bits=0;
- vb->res_bits=0;
-
- /* first things first. Make sure encode is ready */
- oggpack_reset(&vb->opb);
- /* Encode the packet type */
- oggpack_write(&vb->opb,0,1);
-
- /* currently lazy. Short block dispatches to 0, long to 1. */
-
- if(vb->W &&ci->modes>1)mode=1;
- type=ci->map_type[ci->mode_param[mode]->mapping];
- vb->mode=mode;
-
- /* Encode frame mode, pre,post windowsize, then dispatch */
- oggpack_write(&vb->opb,mode,b->modebits);
- if(vb->W){
- oggpack_write(&vb->opb,vb->lW,1);
- oggpack_write(&vb->opb,vb->nW,1);
- /*fprintf(stderr,"*");
- }else{
- fprintf(stderr,".");*/
- }
-
- if((ret=_mapping_P[type]->forward(vb,b->mode[mode])))
- return(ret);
-
- if(op){
- op->packet=oggpack_get_buffer(&vb->opb);
- op->bytes=oggpack_bytes(&vb->opb);
- op->b_o_s=0;
- op->e_o_s=vb->eofflag;
- op->granulepos=vb->granulepos;
- op->packetno=vb->sequence; /* for sake of completeness */
- }
- return(0);
-}
-
-/* there was no great place to put this.... */
-void _analysis_output_always(char *base,int i,float *v,int n,int bark,int dB){
- int j;
- FILE *of;
- char buffer[80];
-
- /* if(i==5870){*/
- sprintf(buffer,"%s_%d.m",base,i);
- of=fopen(buffer,"w");
-
- if(!of)perror("failed to open data dump file");
-
- for(j=0;j<n;j++){
- if(dB && v[j]==0)
- fprintf(of,"\n\n");
- else{
- if(bark)
- fprintf(of,"%g ",toBARK(22050.f*j/n));
- else
- fprintf(of,"%g ",(double)j);
-
- if(dB){
- fprintf(of,"%g\n",todB(v+j));
- }else{
- fprintf(of,"%g\n",v[j]);
- }
- }
- }
- fclose(of);
- /* } */
-}
-
-void _analysis_output(char *base,int i,float *v,int n,int bark,int dB){
-#ifdef ANALYSIS
- if(analysis_noisy)_analysis_output_always(base,i,v,n,bark,dB);
-#endif
-}
-
diff --git a/lib/backends.h b/lib/backends.h
deleted file mode 100644
index ddf63d14..00000000
--- a/lib/backends.h
+++ /dev/null
@@ -1,192 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: libvorbis backend and mapping structures; needed for
- static mode headers
- last mod: $Id: backends.h,v 1.12 2001/12/20 01:00:26 segher Exp $
-
- ********************************************************************/
-
-/* this is exposed up here because we need it for static modes.
- Lookups for each backend aren't exposed because there's no reason
- to do so */
-
-#ifndef _vorbis_backend_h_
-#define _vorbis_backend_h_
-
-#include "codec_internal.h"
-
-/* this would all be simpler/shorter with templates, but.... */
-/* Transform backend generic *************************************/
-
-/* only mdct right now. Flesh it out more if we ever transcend mdct
- in the transform domain */
-
-/* Time backend generic ******************************************/
-typedef struct{
- void (*pack) (vorbis_info_time *,oggpack_buffer *);
- vorbis_info_time *(*unpack)(vorbis_info *,oggpack_buffer *);
- vorbis_look_time *(*look) (vorbis_dsp_state *,vorbis_info_mode *,
- vorbis_info_time *);
- vorbis_info_time *(*copy_info)(vorbis_info_time *);
-
- void (*free_info) (vorbis_info_time *);
- void (*free_look) (vorbis_look_time *);
- int (*forward) (struct vorbis_block *,vorbis_look_time *,
- float *,float *);
- int (*inverse) (struct vorbis_block *,vorbis_look_time *,
- float *,float *);
-} vorbis_func_time;
-
-typedef struct{
- int dummy;
-} vorbis_info_time0;
-
-/* Floor backend generic *****************************************/
-typedef struct{
- void (*pack) (vorbis_info_floor *,oggpack_buffer *);
- vorbis_info_floor *(*unpack)(vorbis_info *,oggpack_buffer *);
- vorbis_look_floor *(*look) (vorbis_dsp_state *,vorbis_info_mode *,
- vorbis_info_floor *);
- vorbis_info_floor *(*copy_info)(vorbis_info_floor *);
- void (*free_info) (vorbis_info_floor *);
- void (*free_look) (vorbis_look_floor *);
- int (*forward) (struct vorbis_block *,vorbis_look_floor *,
- float *, const float *, /* in */
- const float *, const float *, /* in */
- float *); /* out */
- void *(*inverse1) (struct vorbis_block *,vorbis_look_floor *);
- int (*inverse2) (struct vorbis_block *,vorbis_look_floor *,
- void *buffer,float *);
-} vorbis_func_floor;
-
-typedef struct{
- int order;
- long rate;
- long barkmap;
-
- int ampbits;
- int ampdB;
-
- int numbooks; /* <= 16 */
- int books[16];
-
- float lessthan; /* encode-only config setting hacks for libvorbis */
- float greaterthan; /* encode-only config setting hacks for libvorbis */
-
-} vorbis_info_floor0;
-
-#define VIF_POSIT 63
-#define VIF_CLASS 16
-#define VIF_PARTS 31
-typedef struct{
- int partitions; /* 0 to 31 */
- int partitionclass[VIF_PARTS]; /* 0 to 15 */
-
- int class_dim[VIF_CLASS]; /* 1 to 8 */
- int class_subs[VIF_CLASS]; /* 0,1,2,3 (bits: 1<<n poss) */
- int class_book[VIF_CLASS]; /* subs ^ dim entries */
- int class_subbook[VIF_CLASS][8]; /* [VIF_CLASS][subs] */
-
-
- int mult; /* 1 2 3 or 4 */
- int postlist[VIF_POSIT+2]; /* first two implicit */
-
-
- /* encode side analysis parameters */
- float maxover;
- float maxunder;
- float maxerr;
-
- int twofitminsize;
- int twofitminused;
- int twofitweight;
- float twofitatten;
- int unusedminsize;
- int unusedmin_n;
-
- int n;
-
-} vorbis_info_floor1;
-
-/* Residue backend generic *****************************************/
-typedef struct{
- void (*pack) (vorbis_info_residue *,oggpack_buffer *);
- vorbis_info_residue *(*unpack)(vorbis_info *,oggpack_buffer *);
- vorbis_look_residue *(*look) (vorbis_dsp_state *,vorbis_info_mode *,
- vorbis_info_residue *);
- vorbis_info_residue *(*copy_info)(vorbis_info_residue *);
- void (*free_info) (vorbis_info_residue *);
- void (*free_look) (vorbis_look_residue *);
- long **(*class) (struct vorbis_block *,vorbis_look_residue *,
- float **,int *,int);
- int (*forward) (struct vorbis_block *,vorbis_look_residue *,
- float **,float **,int *,int,int,long **,ogg_uint32_t *);
- int (*inverse) (struct vorbis_block *,vorbis_look_residue *,
- float **,int *,int);
-} vorbis_func_residue;
-
-typedef struct vorbis_info_residue0{
-/* block-partitioned VQ coded straight residue */
- long begin;
- long end;
-
- /* first stage (lossless partitioning) */
- int grouping; /* group n vectors per partition */
- int partitions; /* possible codebooks for a partition */
- int groupbook; /* huffbook for partitioning */
- int secondstages[64]; /* expanded out to pointers in lookup */
- int booklist[256]; /* list of second stage books */
-
- /* encode-only heuristic settings */
- float entmax[64]; /* book entropy threshholds*/
- float ampmax[64]; /* book amp threshholds*/
- int subgrp[64]; /* book heuristic subgroup size */
- int blimit[64]; /* subgroup position limits */
-} vorbis_info_residue0;
-
-/* Mapping backend generic *****************************************/
-typedef struct{
- void (*pack) (vorbis_info *,vorbis_info_mapping *,
- oggpack_buffer *);
- vorbis_info_mapping *(*unpack)(vorbis_info *,oggpack_buffer *);
- vorbis_look_mapping *(*look) (vorbis_dsp_state *,vorbis_info_mode *,
- vorbis_info_mapping *);
- vorbis_info_mapping *(*copy_info)(vorbis_info_mapping *);
- void (*free_info) (vorbis_info_mapping *);
- void (*free_look) (vorbis_look_mapping *);
- int (*forward) (struct vorbis_block *vb,vorbis_look_mapping *);
- int (*inverse) (struct vorbis_block *vb,vorbis_look_mapping *);
-} vorbis_func_mapping;
-
-typedef struct vorbis_info_mapping0{
- int submaps; /* <= 16 */
- int chmuxlist[256]; /* up to 256 channels in a Vorbis stream */
-
- int timesubmap[16]; /* [mux] */
- int floorsubmap[16]; /* [mux] submap to floors */
- int residuesubmap[16]; /* [mux] submap to residue */
-
- int psy[2]; /* by blocktype; impulse/padding for short,
- transition/normal for long */
-
- int coupling_steps;
- int coupling_mag[256];
- int coupling_ang[256];
-} vorbis_info_mapping0;
-
-#endif
-
-
-
-
-
diff --git a/lib/barkmel.c b/lib/barkmel.c
deleted file mode 100644
index d11aad28..00000000
--- a/lib/barkmel.c
+++ /dev/null
@@ -1,64 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: bark scale utility
- last mod: $Id: barkmel.c,v 1.9 2001/12/20 01:00:26 segher Exp $
-
- ********************************************************************/
-
-#include <stdio.h>
-#include "scales.h"
-int main(){
- int i;
- double rate;
- for(i=64;i<32000;i*=2){
- rate=48000.f;
- fprintf(stderr,"rate=%gHz, block=%d, f(1)=%.2gHz bark(1)=%.2g (of %.2g)\n",
- rate,i,rate/2 / (i/2),toBARK(rate/2 /(i/2)),toBARK(rate/2));
-
- rate=44100.f;
- fprintf(stderr,"rate=%gHz, block=%d, f(1)=%.2gHz bark(1)=%.2g (of %.2g)\n",
- rate,i,rate/2 / (i/2),toBARK(rate/2 /(i/2)),toBARK(rate/2));
-
- rate=32000.f;
- fprintf(stderr,"rate=%gHz, block=%d, f(1)=%.2gHz bark(1)=%.2g (of %.2g)\n",
- rate,i,rate/2 / (i/2),toBARK(rate/2 /(i/2)),toBARK(rate/2));
-
- rate=22050.f;
- fprintf(stderr,"rate=%gHz, block=%d, f(1)=%.2gHz bark(1)=%.2g (of %.2g)\n",
- rate,i,rate/2 / (i/2),toBARK(rate/2 /(i/2)),toBARK(rate/2));
-
- rate=16000.f;
- fprintf(stderr,"rate=%gHz, block=%d, f(1)=%.2gHz bark(1)=%.2g (of %.2g)\n",
- rate,i,rate/2 / (i/2),toBARK(rate/2 /(i/2)),toBARK(rate/2));
-
- rate=11025.f;
- fprintf(stderr,"rate=%gHz, block=%d, f(1)=%.2gHz bark(1)=%.2g (of %.2g)\n",
- rate,i,rate/2 / (i/2),toBARK(rate/2 /(i/2)),toBARK(rate/2));
-
- rate=8000.f;
- fprintf(stderr,"rate=%gHz, block=%d, f(1)=%.2gHz bark(1)=%.2g (of %.2g)\n\n",
- rate,i,rate/2 / (i/2),toBARK(rate/2 /(i/2)),toBARK(rate/2));
-
-
- }
- {
- float i;
- int j;
- for(i=0.,j=0;i<28;i+=1,j++){
- fprintf(stderr,"(%d) bark=%f %gHz (%d of 128)\n",
- j,i,fromBARK(i),(int)(fromBARK(i)/22050.*128.));
- }
- }
- return(0);
-}
-
diff --git a/lib/bitrate.c b/lib/bitrate.c
deleted file mode 100644
index 96ff9c57..00000000
--- a/lib/bitrate.c
+++ /dev/null
@@ -1,622 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2002 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: bitrate tracking and management
- last mod: $Id: bitrate.c,v 1.11 2002/01/22 08:06:06 xiphmont Exp $
-
- ********************************************************************/
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <math.h>
-#include <ogg/ogg.h>
-#include "vorbis/codec.h"
-#include "codec_internal.h"
-#include "os.h"
-#include "misc.h"
-#include "bitrate.h"
-
-
-static long BINBITS(bitrate_manager_state *bm,long pos,long inbin){
- int bins=bm->queue_bins;
- int bin=((inbin&0x7fffffffUL)>>BITTRACK_BPT);
- ogg_uint32_t lobits=0;
- ogg_uint32_t hibits=0;
- ogg_uint32_t bitdel;
-
- if(bin>0)lobits=bm->queue_binned[pos*bins+bin-1];
- if(bin<bins)
- hibits=bm->queue_binned[pos*bins+bin];
- else
- hibits=lobits;
-
- bitdel=hibits-lobits;
-
- return(lobits+bitdel*(inbin&((1<<BITTRACK_BPT)-1))/(1<<BITTRACK_BPT));
-
-}
-
-#define LIMITBITS(pos,bin) ((bin)>-bins?\
- bm->minmax_binstack[(pos)*bins*2+((bin)+bins)-1]:0)
-
-static long LACING_ADJUST(long bits){
- int addto=((bits+7)/8+1)/256+1;
- return( ((bits+7)/8+addto)*8 );
-}
-
-static double floater_interpolate(bitrate_manager_state *bm,vorbis_info *vi,
- double desired_rate){
- int bin=bm->avgfloat*BITTRACK_DIVISOR-1.;
- double lobitrate;
- double hibitrate;
-
- lobitrate=(double)(bin==0?0:bm->avg_binacc[bin-1])/bm->avg_sampleacc*vi->rate;
- while(lobitrate>desired_rate && bin>0){
- bin--;
- lobitrate=(double)(bin==0?0:bm->avg_binacc[bin-1])/bm->avg_sampleacc*vi->rate;
- }
-
- hibitrate=(double)(bin>=bm->queue_bins?bm->avg_binacc[bm->queue_bins-1]:
- bm->avg_binacc[bin])/bm->avg_sampleacc*vi->rate;
- while(hibitrate<desired_rate && bin<bm->queue_bins){
- bin++;
- if(bin<bm->queue_bins)
- hibitrate=(double)bm->avg_binacc[bin]/bm->avg_sampleacc*vi->rate;
- }
-
- /* interpolate */
- if(bin==bm->queue_bins){
- return bin/(double)BITTRACK_DIVISOR;
- }else{
- double delta=(desired_rate-lobitrate)/(hibitrate-lobitrate);
- return (bin+delta)/BITTRACK_DIVISOR;
- }
-}
-
-/* try out a new limit */
-static long limit_sum(bitrate_manager_state *bm,int limit){
- int i=bm->minmax_stackptr;
- long acc=bm->minmax_acctotal;
- long bins=bm->queue_bins;
-
- acc-=LIMITBITS(i,0);
- acc+=LIMITBITS(i,limit);
-
- while(i-->0){
- if(bm->minmax_limitstack[i]<=limit)break;
- acc-=LIMITBITS(i,bm->minmax_limitstack[i]);
- acc+=LIMITBITS(i,limit);
- }
- return(acc);
-}
-
-/* compute bitrate tracking setup, allocate circular packet size queue */
-void vorbis_bitrate_init(vorbis_info *vi,bitrate_manager_state *bm){
- int i;
- codec_setup_info *ci=vi->codec_setup;
- bitrate_manager_info *bi=&ci->bi;
- long maxlatency;
-
- memset(bm,0,sizeof(*bm));
-
- if(bi){
-
- bm->avg_sampledesired=bi->queue_avg_time*vi->rate;
- bm->avg_centerdesired=bi->queue_avg_time*vi->rate*bi->queue_avg_center;
- bm->minmax_sampledesired=bi->queue_minmax_time*vi->rate;
-
- /* first find the max possible needed queue size */
- maxlatency=max(bm->avg_sampledesired-bm->avg_centerdesired,
- bm->minmax_sampledesired)+bm->avg_centerdesired;
-
- if(maxlatency>0 &&
- (bi->queue_avgmin>0 || bi->queue_avgmax>0 || bi->queue_hardmax>0 ||
- bi->queue_hardmin>0)){
- long maxpackets=maxlatency/(ci->blocksizes[0]>>1)+3;
- long bins=BITTRACK_DIVISOR*ci->passlimit[ci->coupling_passes-1];
-
- bm->queue_size=maxpackets;
- bm->queue_bins=bins;
- bm->queue_binned=_ogg_malloc(maxpackets*bins*sizeof(*bm->queue_binned));
- bm->queue_actual=_ogg_malloc(maxpackets*sizeof(*bm->queue_actual));
-
- if((bi->queue_avgmin>0 || bi->queue_avgmax>0) &&
- bi->queue_avg_time>0){
-
- bm->avg_binacc=_ogg_malloc(bins*sizeof(*bm->avg_binacc));
- bm->avgfloat=bi->avgfloat_initial;
-
-
- }else{
- bm->avg_tail= -1;
- }
-
- if((bi->queue_hardmin>0 || bi->queue_hardmax>0) &&
- bi->queue_minmax_time>0){
-
- bm->minmax_binstack=_ogg_calloc((bins+1)*bins*2,
- sizeof(bm->minmax_binstack));
- bm->minmax_posstack=_ogg_calloc((bins+1),
- sizeof(bm->minmax_posstack));
- bm->minmax_limitstack=_ogg_calloc((bins+1),
- sizeof(bm->minmax_limitstack));
- }else{
- bm->minmax_tail= -1;
- }
-
- /* space for the packet queueing */
- bm->queue_packet_buffers=_ogg_calloc(maxpackets,sizeof(*bm->queue_packet_buffers));
- bm->queue_packets=_ogg_calloc(maxpackets,sizeof(*bm->queue_packets));
- for(i=0;i<maxpackets;i++)
- oggpack_writeinit(bm->queue_packet_buffers+i);
-
- }else{
- bm->queue_packet_buffers=_ogg_calloc(1,sizeof(*bm->queue_packet_buffers));
- bm->queue_packets=_ogg_calloc(1,sizeof(*bm->queue_packets));
- oggpack_writeinit(bm->queue_packet_buffers);
- }
- }
-}
-
-void vorbis_bitrate_clear(bitrate_manager_state *bm){
- int i;
- if(bm){
- if(bm->queue_binned)_ogg_free(bm->queue_binned);
- if(bm->queue_actual)_ogg_free(bm->queue_actual);
- if(bm->avg_binacc)_ogg_free(bm->avg_binacc);
- if(bm->minmax_binstack)_ogg_free(bm->minmax_binstack);
- if(bm->minmax_posstack)_ogg_free(bm->minmax_posstack);
- if(bm->minmax_limitstack)_ogg_free(bm->minmax_limitstack);
- if(bm->queue_packet_buffers){
- if(bm->queue_size==0){
- oggpack_writeclear(bm->queue_packet_buffers);
- _ogg_free(bm->queue_packet_buffers);
- }else{
- for(i=0;i<bm->queue_size;i++)
- oggpack_writeclear(bm->queue_packet_buffers+i);
- _ogg_free(bm->queue_packet_buffers);
- }
- }
- if(bm->queue_packets)_ogg_free(bm->queue_packets);
- memset(bm,0,sizeof(*bm));
- }
-}
-
-int vorbis_bitrate_managed(vorbis_block *vb){
- vorbis_dsp_state *vd=vb->vd;
- backend_lookup_state *b=vd->backend_state;
- bitrate_manager_state *bm=&b->bms;
-
- if(bm->queue_binned)return(1);
- return(0);
-}
-
-int vorbis_bitrate_maxmarkers(void){
- return 8*BITTRACK_DIVISOR;
-}
-
-/* finish taking in the block we just processed */
-int vorbis_bitrate_addblock(vorbis_block *vb){
- int i;
- vorbis_block_internal *vbi=vb->internal;
- vorbis_dsp_state *vd=vb->vd;
- backend_lookup_state *b=vd->backend_state;
- bitrate_manager_state *bm=&b->bms;
- vorbis_info *vi=vd->vi;
- codec_setup_info *ci=vi->codec_setup;
- bitrate_manager_info *bi=&ci->bi;
- int eofflag=vb->eofflag;
- int head=bm->queue_head;
- int next_head=head+1;
- int bins=bm->queue_bins;
- int minmax_head,new_minmax_head;
-
- ogg_uint32_t *head_ptr;
- oggpack_buffer temp;
-
- if(!bm->queue_binned){
- oggpack_buffer temp;
- /* not a bitrate managed stream, but for API simplicity, we'll
- buffer one packet to keep the code path clean */
-
- if(bm->queue_head)return(-1); /* one has been submitted without
- being claimed */
- bm->queue_head++;
-
- bm->queue_packets[0].packet=oggpack_get_buffer(&vb->opb);
- bm->queue_packets[0].bytes=oggpack_bytes(&vb->opb);
- bm->queue_packets[0].b_o_s=0;
- bm->queue_packets[0].e_o_s=vb->eofflag;
- bm->queue_packets[0].granulepos=vb->granulepos;
- bm->queue_packets[0].packetno=vb->sequence; /* for sake of completeness */
-
- memcpy(&temp,bm->queue_packet_buffers,sizeof(vb->opb));
- memcpy(bm->queue_packet_buffers,&vb->opb,sizeof(vb->opb));
- memcpy(&vb->opb,&temp,sizeof(vb->opb));
-
- return(0);
- }
-
- /* add encoded packet to head */
- if(next_head>=bm->queue_size)next_head=0;
- head_ptr=bm->queue_binned+bins*head;
-
- /* is there room to add a block? In proper use of the API, this will
- never come up... but guard it anyway */
- if(next_head==bm->avg_tail || next_head==bm->minmax_tail)return(-1);
-
- /* add the block to the toplevel queue */
- bm->queue_head=next_head;
- bm->queue_actual[head]=(vb->W?0x80000000UL:0);
-
- /* buffer packet fields */
- bm->queue_packets[head].packet=oggpack_get_buffer(&vb->opb);
- bm->queue_packets[head].bytes=oggpack_bytes(&vb->opb);
- bm->queue_packets[head].b_o_s=0;
- bm->queue_packets[head].e_o_s=vb->eofflag;
- bm->queue_packets[head].granulepos=vb->granulepos;
- bm->queue_packets[head].packetno=vb->sequence; /* for sake of completeness */
-
- /* swap packet buffers */
- memcpy(&temp,bm->queue_packet_buffers+head,sizeof(vb->opb));
- memcpy(bm->queue_packet_buffers+head,&vb->opb,sizeof(vb->opb));
- memcpy(&vb->opb,&temp,sizeof(vb->opb));
-
- /* save markers */
- memcpy(head_ptr,vbi->packet_markers,sizeof(*head_ptr)*bins);
-
- if(bm->avg_binacc)
- new_minmax_head=minmax_head=bm->avg_center;
- else
- new_minmax_head=minmax_head=head;
-
- /* the average tracking queue is updated first; its results (if it's
- in use) are taken into account by the min/max limiter (if min/max
- is in use) */
- if(bm->avg_binacc){
- unsigned long desired_center=bm->avg_centerdesired;
- if(eofflag)desired_center=0;
-
- /* update the avg head */
- for(i=0;i<bins;i++)
- bm->avg_binacc[i]+=LACING_ADJUST(head_ptr[i]);
- bm->avg_sampleacc+=ci->blocksizes[vb->W]>>1;
- bm->avg_centeracc+=ci->blocksizes[vb->W]>>1;
-
- if(bm->avg_sampleacc>bm->avg_sampledesired || eofflag){
-
- /* update the avg center */
- if(bm->avg_centeracc>desired_center){
- /* choose the new average floater */
- int samples=ci->blocksizes[vb->W]>>1;
- double upper=floater_interpolate(bm,vi,bi->queue_avgmax);
- double lower=floater_interpolate(bm,vi,bi->queue_avgmin);
- double new=bi->avgfloat_initial,slew;
- int bin;
-
- if(upper>0. && upper<new)new=upper;
- if(lower<bi->avgfloat_minimum)
- lower=bi->avgfloat_minimum;
- if(lower>new)new=lower;
-
- slew=(new-bm->avgfloat)/samples*vi->rate;
-
- if(slew<bi->avgfloat_downslew_max)
- new=bm->avgfloat+bi->avgfloat_downslew_max/vi->rate*samples;
- if(slew>bi->avgfloat_upslew_max)
- new=bm->avgfloat+bi->avgfloat_upslew_max/vi->rate*samples;
-
- bm->avgfloat=new;
-
- /* apply the average floater to new blocks */
- bin=bm->avgfloat*(BITTRACK_DIVISOR<<BITTRACK_BPT);
-
- while(bm->avg_centeracc>desired_center){
- samples=ci->blocksizes[bm->queue_actual[bm->avg_center]&
- 0x80000000UL?1:0]>>1;
-
- bm->queue_actual[bm->avg_center]|=bin;
-
- bm->avg_centeracc-=samples;
- bm->avg_center++;
- if(bm->noisetrigger_postpone)bm->noisetrigger_postpone-=samples;
- if(bm->avg_center>=bm->queue_size)bm->avg_center=0;
- }
- new_minmax_head=bm->avg_center;
-
- /* track noise bias triggers and noise bias */
- if(bm->avgfloat<bi->avgfloat_noise_lowtrigger)
- bm->noisetrigger_request+=1.f;
- else
- if(bm->noisetrigger_request>0. && bm->avgnoise>0.)
- bm->noisetrigger_request-=.2f;
-
- if(bm->avgfloat>bi->avgfloat_noise_hightrigger)
- bm->noisetrigger_request-=1.f;
- else
- if(bm->noisetrigger_request<0 && bm->avgnoise<0.)
- bm->noisetrigger_request+=.2f;
-
- if(bm->noisetrigger_postpone<=0){
- if(bm->noisetrigger_request<0.){
- bm->avgnoise-=1.f;
- if(-bm->noisetrigger_request>(signed long)(bm->avg_sampleacc)/2)
- bm->avgnoise-=1.f;
- bm->noisetrigger_postpone=bm->avg_sampleacc/2;
- }
- if(bm->noisetrigger_request>0.){
- bm->avgnoise+=1.f;
- if(bm->noisetrigger_request>(signed long)(bm->avg_sampleacc)/2)
- bm->avgnoise+=1.f;
- bm->noisetrigger_postpone=bm->avg_sampleacc/2;
- }
-
- /* we generally want the noise bias to drift back to zero */
- bm->noisetrigger_request=0.f;
- if(bm->avgnoise>0)
- bm->noisetrigger_request= -1.;
- if(bm->avgnoise<0)
- bm->noisetrigger_request= +1.;
-
- if(bm->avgnoise<bi->avgfloat_noise_minval)
- bm->avgnoise=bi->avgfloat_noise_minval;
- if(bm->avgnoise>bi->avgfloat_noise_maxval)
- bm->avgnoise=bi->avgfloat_noise_maxval;
- }
- }
-
- /* update the avg tail if needed */
- while(bm->avg_sampleacc>bm->avg_sampledesired){
- int samples=
- ci->blocksizes[bm->queue_actual[bm->avg_tail]&0x80000000UL?1:0]>>1;
- for(i=0;i<bm->queue_bins;i++)
- bm->avg_binacc[i]-=LACING_ADJUST(bm->queue_binned[bins*bm->avg_tail+i]);
- bm->avg_sampleacc-=samples;
- bm->avg_tail++;
- if(bm->avg_tail>=bm->queue_size)bm->avg_tail=0;
- }
-
-
- }
- }else{
- /* if we're not using an average tracker, the 'float' is nailed to
- the avgfloat_initial value. It needs to be set for the min/max
- to deal properly */
- long bin=bi->avgfloat_initial*(BITTRACK_DIVISOR<<BITTRACK_BPT);
- bm->queue_actual[head]|=bin;
- new_minmax_head=next_head;
- }
-
- /* update the min/max queues and enforce limits */
- if(bm->minmax_binstack){
- unsigned long sampledesired=eofflag?0:bm->minmax_sampledesired;
-
- /* add to stack recent */
- while(minmax_head!=new_minmax_head){
- unsigned int i;
- int samples=ci->blocksizes[bm->queue_actual[minmax_head]&
- 0x80000000UL?1:0]>>1;
-
- /* the construction here is not parallel to the floater's
- stack.
-
- floater[bin-1] <-> floater supported at bin
- ...
- floater[0] <-> floater supported at 1
- supported at zero is implicit.
- the BINBITS macro performs offsetting
-
-
- bin minmax[bin*2-1] <-> floater supported at bin
- ...
- 1 minmax[bin] <-> floater supported at 1
- 0 minmax[bin-1] <-> no limit/support (limited to/supported at bin 0,
- ie, no effect)
- -1 minmax[bin-2] <-> floater limited to bin-1
- ...
- -bin+1 minmax[0] <-> floater limited to 1
- limited to zero (val= -bin) is implicit
- */
- for(i=0;i<(unsigned int)bins;i++){
- bm->minmax_binstack[bm->minmax_stackptr*bins*2+bins+i]+=
- LACING_ADJUST(
- BINBITS(bm,minmax_head,
- (bm->queue_actual[minmax_head]&0x7fffffffUL)>
- ((i+1)<<BITTRACK_BPT)?
- bm->queue_actual[minmax_head]:
- ((i+1)<<BITTRACK_BPT)));
-
- bm->minmax_binstack[bm->minmax_stackptr*bins*2+i]+=
- LACING_ADJUST(
- BINBITS(bm,minmax_head,
- (bm->queue_actual[minmax_head]&0x7fffffffUL)<
- ((i+1)<<BITTRACK_BPT)?
- bm->queue_actual[minmax_head]:
- ((i+1)<<BITTRACK_BPT)));
- }
-
- bm->minmax_posstack[bm->minmax_stackptr]=minmax_head; /* not one
- past
- like
- typical */
- bm->minmax_limitstack[bm->minmax_stackptr]=0;
- bm->minmax_sampleacc+=samples;
- bm->minmax_acctotal+=
- LACING_ADJUST(BINBITS(bm,minmax_head,bm->queue_actual[minmax_head]));
-
- minmax_head++;
- if(minmax_head>=bm->queue_size)minmax_head=0;
- }
-
- /* check limits, enforce changes */
- if(bm->minmax_sampleacc>sampledesired){
- double bitrate=(double)bm->minmax_acctotal/bm->minmax_sampleacc*vi->rate;
- int limit=0;
-
- if((bi->queue_hardmax>0 && bitrate>bi->queue_hardmax) ||
- (bi->queue_hardmin>0 && bitrate<bi->queue_hardmin)){
- int newstack;
- int stackctr;
- long bitsum=limit_sum(bm,0);
-
- bitrate=(double)bitsum/bm->minmax_sampleacc*vi->rate;
-
- /* we're off rate. Iteratively try out new hard floater
- limits until we find one that brings us inside. Here's
- where we see the whole point of the limit stacks. */
- if(bi->queue_hardmax>0 && bitrate>bi->queue_hardmax){
- for(limit=-1;limit>-bins;limit--){
- long bitsum=limit_sum(bm,limit);
- bitrate=(double)bitsum/bm->minmax_sampleacc*vi->rate;
- if(bitrate<=bi->queue_hardmax)break;
- }
- }else if(bitrate<bi->queue_hardmin){
- for(limit=1;limit<bins;limit++){
- long bitsum=limit_sum(bm,limit);
- bitrate=(double)bitsum/bm->minmax_sampleacc*vi->rate;
- if(bitrate>=bi->queue_hardmin)break;
- }
- if(bitrate>bi->queue_hardmax)limit--;
- }
-
- for(i=limit-1;i>-bins;i--){
- long bitsum=limit_sum(bm,i);
- bitrate=(double)bitsum/bm->minmax_sampleacc*vi->rate;
- }
-
- bitsum=limit_sum(bm,limit);
- bitrate=(double)bitsum/bm->minmax_sampleacc*vi->rate;
-
- /* trace the limit backward, stop when we see a lower limit */
- newstack=bm->minmax_stackptr-1;
- while(newstack>=0){
- if(bm->minmax_limitstack[newstack]<limit)break;
- newstack--;
- }
-
- /* update bit counter with new limit and replace any stack
- limits that have been replaced by our new lower limit */
- stackctr=bm->minmax_stackptr;
- while(stackctr>newstack){
- bm->minmax_acctotal-=
- LIMITBITS(stackctr,bm->minmax_limitstack[stackctr]);
- bm->minmax_acctotal+=LIMITBITS(stackctr,limit);
-
- if(stackctr<bm->minmax_stackptr)
- for(i=0;i<bins*2;i++)
- bm->minmax_binstack[stackctr*bins*2+i]+=
- bm->minmax_binstack[(stackctr+1)*bins*2+i];
-
- stackctr--;
- }
- stackctr++;
- bm->minmax_posstack[stackctr]=bm->minmax_posstack[bm->minmax_stackptr];
- bm->minmax_limitstack[stackctr]=limit;
-
- /* set up new blank stack entry */
- stackctr++;
- bm->minmax_stackptr=stackctr;
- memset(&bm->minmax_binstack[stackctr*bins*2],
- 0,
- sizeof(*bm->minmax_binstack)*bins*2);
- bm->minmax_limitstack[stackctr]=0;
- bm->minmax_posstack[stackctr]=-1;
-
- }
- }
-
- /* remove from tail */
- while(bm->minmax_sampleacc>sampledesired){
- int samples=
- ci->blocksizes[bm->queue_actual[bm->minmax_tail]&0x80000000UL?1:0]>>1;
- int actual=bm->queue_actual[bm->minmax_tail]&0x7fffffffUL;
-
- for(i=0;i<bins;i++){
- bm->minmax_binstack[bins+i]-= /* always comes off the stack bottom */
- LACING_ADJUST(BINBITS(bm,bm->minmax_tail,
- actual>((i+1)<<BITTRACK_BPT)?
- actual:((i+1)<<BITTRACK_BPT)));
- bm->minmax_binstack[i]-=
- LACING_ADJUST(BINBITS(bm,bm->minmax_tail,
- actual<((i+1)<<BITTRACK_BPT)?
- actual:((i+1)<<BITTRACK_BPT)));
- }
-
- /* always perform in this order; max overrules min */
- if((bm->minmax_limitstack[0]<<BITTRACK_BPT)>actual)
- actual=(bm->minmax_limitstack[0]<<BITTRACK_BPT);
- if(((bins+bm->minmax_limitstack[0])<<BITTRACK_BPT)<actual)
- actual=(bins+bm->minmax_limitstack[0])<<BITTRACK_BPT;
-
- bm->minmax_acctotal-=LACING_ADJUST(BINBITS(bm,bm->minmax_tail,actual));
- bm->minmax_sampleacc-=samples;
-
- /* revise queue_actual to reflect the limit */
- bm->queue_actual[bm->minmax_tail]&=0x80000000UL;
- bm->queue_actual[bm->minmax_tail]|=actual;
-
- if(bm->minmax_tail==bm->minmax_posstack[0]){
- /* the stack becomes a FIFO; the first data has fallen off */
- memmove(bm->minmax_binstack,bm->minmax_binstack+bins*2,
- sizeof(*bm->minmax_binstack)*bins*2*bm->minmax_stackptr);
- memmove(bm->minmax_posstack,bm->minmax_posstack+1,
- sizeof(*bm->minmax_posstack)*bm->minmax_stackptr);
- memmove(bm->minmax_limitstack,bm->minmax_limitstack+1,
- sizeof(*bm->minmax_limitstack)*bm->minmax_stackptr);
- bm->minmax_stackptr--;
- }
-
- bm->minmax_tail++;
- if(bm->minmax_tail>=bm->queue_size)bm->minmax_tail=0;
- }
-
-
- bm->last_to_flush=bm->minmax_tail;
- }else{
- bm->last_to_flush=bm->avg_center;
- }
- if(eofflag)
- bm->last_to_flush=bm->queue_head;
- return(0);
-}
-
-int vorbis_bitrate_flushpacket(vorbis_dsp_state *vd,ogg_packet *op){
- backend_lookup_state *b=vd->backend_state;
- bitrate_manager_state *bm=&b->bms;
-
- if(bm->queue_size==0){
- if(bm->queue_head==0)return(0);
-
- memcpy(op,bm->queue_packets,sizeof(*op));
- bm->queue_head=0;
-
- }else{
- long bin;
- long bytes;
-
- if(bm->next_to_flush==bm->last_to_flush)return(0);
-
- bin=bm->queue_actual[bm->next_to_flush];
- bytes=(BINBITS(bm,bm->next_to_flush,bin)+7)/8;
-
- memcpy(op,bm->queue_packets+bm->next_to_flush,sizeof(*op));
-
- if(bytes<op->bytes)op->bytes=bytes;
-
- bm->next_to_flush++;
- if(bm->next_to_flush>=bm->queue_size)bm->next_to_flush=0;
-
- }
-
- return(1);
-}
diff --git a/lib/bitrate.h b/lib/bitrate.h
deleted file mode 100644
index b084b056..00000000
--- a/lib/bitrate.h
+++ /dev/null
@@ -1,95 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: bitrate tracking and management
- last mod: $Id: bitrate.h,v 1.5 2001/12/23 11:53:52 xiphmont Exp $
-
- ********************************************************************/
-
-#ifndef _V_BITRATE_H_
-#define _V_BITRATE_H_
-
-#include "vorbis/codec.h"
-#include "codec_internal.h"
-#include "os.h"
-
-/* encode side bitrate tracking */
-#define BITTRACK_DIVISOR 16
-#define BITTRACK_BPT 6
-typedef struct bitrate_manager_state {
- ogg_uint32_t *queue_binned;
- ogg_uint32_t *queue_actual;
- int queue_size;
-
- int queue_head;
- int queue_bins;
-
- long *avg_binacc;
- int avg_center;
- int avg_tail;
- ogg_uint32_t avg_centeracc;
- ogg_uint32_t avg_sampleacc;
- ogg_uint32_t avg_sampledesired;
- ogg_uint32_t avg_centerdesired;
-
- long *minmax_binstack;
- long *minmax_posstack;
- long *minmax_limitstack;
- long minmax_stackptr;
-
- long minmax_acctotal;
- int minmax_tail;
- ogg_uint32_t minmax_sampleacc;
- ogg_uint32_t minmax_sampledesired;
-
- int next_to_flush;
- int last_to_flush;
-
- double avgfloat;
- double avgnoise;
- long noisetrigger_postpone;
- double noisetrigger_request;
-
- /* unfortunately, we need to hold queued packet data somewhere */
- oggpack_buffer *queue_packet_buffers;
- ogg_packet *queue_packets;
-
-} bitrate_manager_state;
-
-typedef struct bitrate_manager_info{
- /* detailed bitrate management setup */
- double queue_avg_time;
- double queue_avg_center;
- double queue_minmax_time;
- double queue_hardmin;
- double queue_hardmax;
- double queue_avgmin;
- double queue_avgmax;
-
- double avgfloat_initial; /* set by mode */
- double avgfloat_minimum; /* set by mode */
- double avgfloat_downslew_max;
- double avgfloat_upslew_max;
- double avgfloat_noise_lowtrigger;
- double avgfloat_noise_hightrigger;
- double avgfloat_noise_minval;
- double avgfloat_noise_maxval;
-} bitrate_manager_info;
-
-extern void vorbis_bitrate_init(vorbis_info *vi,bitrate_manager_state *bs);
-extern void vorbis_bitrate_clear(bitrate_manager_state *bs);
-extern int vorbis_bitrate_managed(vorbis_block *vb);
-extern int vorbis_bitrate_maxmarkers(void);
-extern int vorbis_bitrate_addblock(vorbis_block *vb);
-extern int vorbis_bitrate_flushpacket(vorbis_dsp_state *vd, ogg_packet *op);
-
-#endif
diff --git a/lib/block.c b/lib/block.c
deleted file mode 100644
index 923b3ee1..00000000
--- a/lib/block.c
+++ /dev/null
@@ -1,821 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2002 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: PCM data vector blocking, windowing and dis/reassembly
- last mod: $Id: block.c,v 1.57 2002/01/22 08:06:06 xiphmont Exp $
-
- Handle windowing, overlap-add, etc of the PCM vectors. This is made
- more amusing by Vorbis' current two allowed block sizes.
-
- ********************************************************************/
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <ogg/ogg.h>
-#include "vorbis/codec.h"
-#include "codec_internal.h"
-
-#include "window.h"
-#include "mdct.h"
-#include "lpc.h"
-#include "registry.h"
-#include "misc.h"
-
-static int ilog2(unsigned int v){
- int ret=0;
- while(v>1){
- ret++;
- v>>=1;
- }
- return(ret);
-}
-
-/* pcm accumulator examples (not exhaustive):
-
- <-------------- lW ---------------->
- <--------------- W ---------------->
-: .....|..... _______________ |
-: .''' | '''_--- | |\ |
-:.....''' |_____--- '''......| | \_______|
-:.................|__________________|_______|__|______|
- |<------ Sl ------>| > Sr < |endW
- |beginSl |endSl | |endSr
- |beginW |endlW |beginSr
-
-
- |< lW >|
- <--------------- W ---------------->
- | | .. ______________ |
- | | ' `/ | ---_ |
- |___.'___/`. | ---_____|
- |_______|__|_______|_________________|
- | >|Sl|< |<------ Sr ----->|endW
- | | |endSl |beginSr |endSr
- |beginW | |endlW
- mult[0] |beginSl mult[n]
-
- <-------------- lW ----------------->
- |<--W-->|
-: .............. ___ | |
-: .''' |`/ \ | |
-:.....''' |/`....\|...|
-:.........................|___|___|___|
- |Sl |Sr |endW
- | | |endSr
- | |beginSr
- | |endSl
- |beginSl
- |beginW
-*/
-
-/* block abstraction setup *********************************************/
-
-#ifndef WORD_ALIGN
-#define WORD_ALIGN 8
-#endif
-
-int vorbis_block_init(vorbis_dsp_state *v, vorbis_block *vb){
- memset(vb,0,sizeof(*vb));
- vb->vd=v;
- vb->localalloc=0;
- vb->localstore=NULL;
- if(v->analysisp){
- vorbis_block_internal *vbi=
- vb->internal=_ogg_calloc(1,sizeof(vorbis_block_internal));
- oggpack_writeinit(&vb->opb);
- vbi->ampmax=-9999;
- vbi->packet_markers=_ogg_malloc(vorbis_bitrate_maxmarkers()*
- sizeof(*vbi->packet_markers));
- }
-
- return(0);
-}
-
-void *_vorbis_block_alloc(vorbis_block *vb,long bytes){
- bytes=(bytes+(WORD_ALIGN-1)) & ~(WORD_ALIGN-1);
- if(bytes+vb->localtop>vb->localalloc){
- /* can't just _ogg_realloc... there are outstanding pointers */
- if(vb->localstore){
- struct alloc_chain *link=_ogg_malloc(sizeof(*link));
- vb->totaluse+=vb->localtop;
- link->next=vb->reap;
- link->ptr=vb->localstore;
- vb->reap=link;
- }
- /* highly conservative */
- vb->localalloc=bytes;
- vb->localstore=_ogg_malloc(vb->localalloc);
- vb->localtop=0;
- }
- {
- void *ret=(void *)(((char *)vb->localstore)+vb->localtop);
- vb->localtop+=bytes;
- return ret;
- }
-}
-
-/* reap the chain, pull the ripcord */
-void _vorbis_block_ripcord(vorbis_block *vb){
- /* reap the chain */
- struct alloc_chain *reap=vb->reap;
- while(reap){
- struct alloc_chain *next=reap->next;
- _ogg_free(reap->ptr);
- memset(reap,0,sizeof(*reap));
- _ogg_free(reap);
- reap=next;
- }
- /* consolidate storage */
- if(vb->totaluse){
- vb->localstore=_ogg_realloc(vb->localstore,vb->totaluse+vb->localalloc);
- vb->localalloc+=vb->totaluse;
- vb->totaluse=0;
- }
-
- /* pull the ripcord */
- vb->localtop=0;
- vb->reap=NULL;
-}
-
-int vorbis_block_clear(vorbis_block *vb){
- if(vb->vd)
- if(vb->vd->analysisp)
- oggpack_writeclear(&vb->opb);
- _vorbis_block_ripcord(vb);
- if(vb->localstore)_ogg_free(vb->localstore);
-
- if(vb->internal){
- vorbis_block_internal *vbi=(vorbis_block_internal *)vb->internal;
- if(vbi->packet_markers)_ogg_free(vbi->packet_markers);
-
- _ogg_free(vb->internal);
- }
-
- memset(vb,0,sizeof(*vb));
- return(0);
-}
-
-/* Analysis side code, but directly related to blocking. Thus it's
- here and not in analysis.c (which is for analysis transforms only).
- The init is here because some of it is shared */
-
-static int _vds_shared_init(vorbis_dsp_state *v,vorbis_info *vi,int encp){
- int i;
- codec_setup_info *ci=vi->codec_setup;
- backend_lookup_state *b=NULL;
-
- memset(v,0,sizeof(*v));
- b=v->backend_state=_ogg_calloc(1,sizeof(*b));
-
- v->vi=vi;
- b->modebits=ilog2(ci->modes);
-
- b->transform[0]=_ogg_calloc(VI_TRANSFORMB,sizeof(*b->transform[0]));
- b->transform[1]=_ogg_calloc(VI_TRANSFORMB,sizeof(*b->transform[1]));
-
- /* MDCT is tranform 0 */
-
- b->transform[0][0]=_ogg_calloc(1,sizeof(mdct_lookup));
- b->transform[1][0]=_ogg_calloc(1,sizeof(mdct_lookup));
- mdct_init(b->transform[0][0],ci->blocksizes[0]);
- mdct_init(b->transform[1][0],ci->blocksizes[1]);
-
- b->window[0][0][0]=_ogg_calloc(VI_WINDOWB,sizeof(*b->window[0][0][0]));
- b->window[0][0][1]=b->window[0][0][0];
- b->window[0][1][0]=b->window[0][0][0];
- b->window[0][1][1]=b->window[0][0][0];
- b->window[1][0][0]=_ogg_calloc(VI_WINDOWB,sizeof(*b->window[1][0][0]));
- b->window[1][0][1]=_ogg_calloc(VI_WINDOWB,sizeof(*b->window[1][0][1]));
- b->window[1][1][0]=_ogg_calloc(VI_WINDOWB,sizeof(*b->window[1][1][0]));
- b->window[1][1][1]=_ogg_calloc(VI_WINDOWB,sizeof(*b->window[1][1][1]));
-
- for(i=0;i<VI_WINDOWB;i++){
- b->window[0][0][0][i]=
- _vorbis_window(i,ci->blocksizes[0],ci->blocksizes[0]/2,ci->blocksizes[0]/2);
- b->window[1][0][0][i]=
- _vorbis_window(i,ci->blocksizes[1],ci->blocksizes[0]/2,ci->blocksizes[0]/2);
- b->window[1][0][1][i]=
- _vorbis_window(i,ci->blocksizes[1],ci->blocksizes[0]/2,ci->blocksizes[1]/2);
- b->window[1][1][0][i]=
- _vorbis_window(i,ci->blocksizes[1],ci->blocksizes[1]/2,ci->blocksizes[0]/2);
- b->window[1][1][1][i]=
- _vorbis_window(i,ci->blocksizes[1],ci->blocksizes[1]/2,ci->blocksizes[1]/2);
- }
-
- if(encp){ /* encode/decode differ here */
- /* finish the codebooks */
- if(!ci->fullbooks){
- ci->fullbooks=_ogg_calloc(ci->books,sizeof(*ci->fullbooks));
- for(i=0;i<ci->books;i++)
- vorbis_book_init_encode(ci->fullbooks+i,ci->book_param[i]);
- }
- v->analysisp=1;
- }else{
- /* finish the codebooks */
- if(!ci->fullbooks){
- ci->fullbooks=_ogg_calloc(ci->books,sizeof(*ci->fullbooks));
- for(i=0;i<ci->books;i++){
- vorbis_book_init_decode(ci->fullbooks+i,ci->book_param[i]);
- /* decode codebooks are now standalone after init */
- vorbis_staticbook_destroy(ci->book_param[i]);
- ci->book_param[i]=NULL;
- }
- }
- }
-
- /* initialize the storage vectors. blocksize[1] is small for encode,
- but the correct size for decode */
- v->pcm_storage=ci->blocksizes[1];
- v->pcm=_ogg_malloc(vi->channels*sizeof(*v->pcm));
- v->pcmret=_ogg_malloc(vi->channels*sizeof(*v->pcmret));
- {
- int i;
- for(i=0;i<vi->channels;i++)
- v->pcm[i]=_ogg_calloc(v->pcm_storage,sizeof(*v->pcm[i]));
- }
-
- /* all 1 (large block) or 0 (small block) */
- /* explicitly set for the sake of clarity */
- v->lW=0; /* previous window size */
- v->W=0; /* current window size */
-
- /* all vector indexes */
- v->centerW=ci->blocksizes[1]/2;
-
- v->pcm_current=v->centerW;
-
- /* initialize all the mapping/backend lookups */
- b->mode=_ogg_calloc(ci->modes,sizeof(*b->mode));
- for(i=0;i<ci->modes;i++){
- int mapnum=ci->mode_param[i]->mapping;
- int maptype=ci->map_type[mapnum];
- b->mode[i]=_mapping_P[maptype]->look(v,ci->mode_param[i],
- ci->map_param[mapnum]);
- }
-
- return(0);
-}
-
-/* arbitrary settings and spec-mandated numbers get filled in here */
-int vorbis_analysis_init(vorbis_dsp_state *v,vorbis_info *vi){
- backend_lookup_state *b=NULL;
-
- _vds_shared_init(v,vi,1);
- b=v->backend_state;
- b->psy_g_look=_vp_global_look(vi);
-
- /* Initialize the envelope state storage */
- b->ve=_ogg_calloc(1,sizeof(*b->ve));
- _ve_envelope_init(b->ve,vi);
-
- vorbis_bitrate_init(vi,&b->bms);
-
- return(0);
-}
-
-void vorbis_dsp_clear(vorbis_dsp_state *v){
- int i,j,k;
- if(v){
- vorbis_info *vi=v->vi;
- codec_setup_info *ci=(vi?vi->codec_setup:NULL);
- backend_lookup_state *b=v->backend_state;
-
- if(b){
- if(b->window[0][0][0]){
- for(i=0;i<VI_WINDOWB;i++)
- if(b->window[0][0][0][i])_ogg_free(b->window[0][0][0][i]);
- _ogg_free(b->window[0][0][0]);
-
- for(j=0;j<2;j++)
- for(k=0;k<2;k++){
- for(i=0;i<VI_WINDOWB;i++)
- if(b->window[1][j][k][i])_ogg_free(b->window[1][j][k][i]);
- _ogg_free(b->window[1][j][k]);
- }
- }
-
- if(b->ve){
- _ve_envelope_clear(b->ve);
- _ogg_free(b->ve);
- }
-
- if(b->transform[0]){
- mdct_clear(b->transform[0][0]);
- _ogg_free(b->transform[0][0]);
- _ogg_free(b->transform[0]);
- }
- if(b->transform[1]){
- mdct_clear(b->transform[1][0]);
- _ogg_free(b->transform[1][0]);
- _ogg_free(b->transform[1]);
- }
- if(b->psy_g_look)_vp_global_free(b->psy_g_look);
- vorbis_bitrate_clear(&b->bms);
- }
-
- if(v->pcm){
- for(i=0;i<vi->channels;i++)
- if(v->pcm[i])_ogg_free(v->pcm[i]);
- _ogg_free(v->pcm);
- if(v->pcmret)_ogg_free(v->pcmret);
- }
-
- /* free mode lookups; these are actually vorbis_look_mapping structs */
- if(ci){
- for(i=0;i<ci->modes;i++){
- int mapnum=ci->mode_param[i]->mapping;
- int maptype=ci->map_type[mapnum];
- if(b && b->mode)_mapping_P[maptype]->free_look(b->mode[i]);
- }
- }
-
- if(b){
- if(b->mode)_ogg_free(b->mode);
-
- /* free header, header1, header2 */
- if(b->header)_ogg_free(b->header);
- if(b->header1)_ogg_free(b->header1);
- if(b->header2)_ogg_free(b->header2);
- _ogg_free(b);
- }
-
- memset(v,0,sizeof(*v));
- }
-}
-
-float **vorbis_analysis_buffer(vorbis_dsp_state *v, int vals){
- int i;
- vorbis_info *vi=v->vi;
- backend_lookup_state *b=v->backend_state;
-
- /* free header, header1, header2 */
- if(b->header)_ogg_free(b->header);b->header=NULL;
- if(b->header1)_ogg_free(b->header1);b->header1=NULL;
- if(b->header2)_ogg_free(b->header2);b->header2=NULL;
-
- /* Do we have enough storage space for the requested buffer? If not,
- expand the PCM (and envelope) storage */
-
- if(v->pcm_current+vals>=v->pcm_storage){
- v->pcm_storage=v->pcm_current+vals*2;
-
- for(i=0;i<vi->channels;i++){
- v->pcm[i]=_ogg_realloc(v->pcm[i],v->pcm_storage*sizeof(*v->pcm[i]));
- }
- }
-
- for(i=0;i<vi->channels;i++)
- v->pcmret[i]=v->pcm[i]+v->pcm_current;
-
- return(v->pcmret);
-}
-
-static void _preextrapolate_helper(vorbis_dsp_state *v){
- int i;
- int order=32;
- float *lpc=alloca(order*sizeof(*lpc));
- float *work=alloca(v->pcm_current*sizeof(*work));
- long j;
- v->preextrapolate=1;
-
- if(v->pcm_current-v->centerW>order*2){ /* safety */
- for(i=0;i<v->vi->channels;i++){
- /* need to run the extrapolation in reverse! */
- for(j=0;j<v->pcm_current;j++)
- work[j]=v->pcm[i][v->pcm_current-j-1];
-
- /* prime as above */
- vorbis_lpc_from_data(work,lpc,v->pcm_current-v->centerW,order);
-
- /* run the predictor filter */
- vorbis_lpc_predict(lpc,work+v->pcm_current-v->centerW-order,
- order,
- work+v->pcm_current-v->centerW,
- v->centerW);
-
- for(j=0;j<v->pcm_current;j++)
- v->pcm[i][v->pcm_current-j-1]=work[j];
-
- }
- }
-}
-
-
-/* call with val<=0 to set eof */
-
-int vorbis_analysis_wrote(vorbis_dsp_state *v, int vals){
- vorbis_info *vi=v->vi;
- codec_setup_info *ci=vi->codec_setup;
- /*backend_lookup_state *b=v->backend_state;*/
-
- if(vals<=0){
- int order=32;
- int i;
- float *lpc=alloca(order*sizeof(*lpc));
-
- /* if it wasn't done earlier (very short sample) */
- if(!v->preextrapolate)
- _preextrapolate_helper(v);
-
- /* We're encoding the end of the stream. Just make sure we have
- [at least] a full block of zeroes at the end. */
- /* actually, we don't want zeroes; that could drop a large
- amplitude off a cliff, creating spread spectrum noise that will
- suck to encode. Extrapolate for the sake of cleanliness. */
-
- vorbis_analysis_buffer(v,ci->blocksizes[1]*2);
- v->eofflag=v->pcm_current;
- v->pcm_current+=ci->blocksizes[1]*2;
-
- for(i=0;i<vi->channels;i++){
- if(v->eofflag>order*2){
- /* extrapolate with LPC to fill in */
- long n;
-
- /* make a predictor filter */
- n=v->eofflag;
- if(n>ci->blocksizes[1])n=ci->blocksizes[1];
- vorbis_lpc_from_data(v->pcm[i]+v->eofflag-n,lpc,n,order);
-
- /* run the predictor filter */
- vorbis_lpc_predict(lpc,v->pcm[i]+v->eofflag-order,order,
- v->pcm[i]+v->eofflag,v->pcm_current-v->eofflag);
- }else{
- /* not enough data to extrapolate (unlikely to happen due to
- guarding the overlap, but bulletproof in case that
- assumtion goes away). zeroes will do. */
- memset(v->pcm[i]+v->eofflag,0,
- (v->pcm_current-v->eofflag)*sizeof(*v->pcm[i]));
-
- }
- }
- }else{
-
- if(v->pcm_current+vals>v->pcm_storage)
- return(OV_EINVAL);
-
- v->pcm_current+=vals;
-
- /* we may want to reverse extrapolate the beginning of a stream
- too... in case we're beginning on a cliff! */
- /* clumsy, but simple. It only runs once, so simple is good. */
- if(!v->preextrapolate && v->pcm_current-v->centerW>ci->blocksizes[1])
- _preextrapolate_helper(v);
-
- }
- return(0);
-}
-
-/* do the deltas, envelope shaping, pre-echo and determine the size of
- the next block on which to continue analysis */
-int vorbis_analysis_blockout(vorbis_dsp_state *v,vorbis_block *vb){
- int i;
- vorbis_info *vi=v->vi;
- codec_setup_info *ci=vi->codec_setup;
- backend_lookup_state *b=v->backend_state;
- vorbis_look_psy_global *g=b->psy_g_look;
- vorbis_info_psy_global *gi=&ci->psy_g_param;
- long beginW=v->centerW-ci->blocksizes[v->W]/2,centerNext;
- vorbis_block_internal *vbi=(vorbis_block_internal *)vb->internal;
-
- /* check to see if we're started... */
- if(!v->preextrapolate)return(0);
-
- /* check to see if we're done... */
- if(v->eofflag==-1)return(0);
-
- /* By our invariant, we have lW, W and centerW set. Search for
- the next boundary so we can determine nW (the next window size)
- which lets us compute the shape of the current block's window */
-
- if(ci->blocksizes[0]<ci->blocksizes[1]){
- long bp=_ve_envelope_search(v);
- if(bp==-1)return(0); /* not enough data currently to search for a
- full long block */
- v->nW=bp;
-
- }else
- v->nW=0;
-
- centerNext=v->centerW+ci->blocksizes[v->W]/4+ci->blocksizes[v->nW]/4;
-
- {
- /* center of next block + next block maximum right side. */
-
- long blockbound=centerNext+ci->blocksizes[v->nW]/2;
- if(v->pcm_current<blockbound)return(0); /* not enough data yet;
- although this check is
- less strict that the
- _ve_envelope_search,
- the search is not run
- if we only use one
- block size */
-
-
- }
-
- /* fill in the block. Note that for a short window, lW and nW are *short*
- regardless of actual settings in the stream */
-
- _vorbis_block_ripcord(vb);
- if(v->W){
- vb->lW=v->lW;
- vb->W=v->W;
- vb->nW=v->nW;
- }else{
- vb->lW=0;
- vb->W=v->W;
- vb->nW=0;
- }
-
- if(v->W){
- if(!v->lW || !v->nW)
- vbi->blocktype=BLOCKTYPE_TRANSITION;
- else
- vbi->blocktype=BLOCKTYPE_LONG;
- }else{
- if(_ve_envelope_mark(v))
- vbi->blocktype=BLOCKTYPE_IMPULSE;
- else
- vbi->blocktype=BLOCKTYPE_PADDING;
- }
-
- vb->vd=v;
- vb->sequence=v->sequence++;
- vb->granulepos=v->granulepos;
- vb->pcmend=ci->blocksizes[v->W];
-
- /* copy the vectors; this uses the local storage in vb */
-
- /* this tracks 'strongest peak' for later psychoacoustics */
- /* moved to the global psy state; clean this mess up */
- if(vbi->ampmax>g->ampmax)g->ampmax=vbi->ampmax;
- g->ampmax=_vp_ampmax_decay(g->ampmax,v);
- vbi->ampmax=g->ampmax;
-
- vb->pcm=_vorbis_block_alloc(vb,sizeof(*vb->pcm)*vi->channels);
- vbi->pcmdelay=_vorbis_block_alloc(vb,sizeof(*vbi->pcmdelay)*vi->channels);
- for(i=0;i<vi->channels;i++){
- vbi->pcmdelay[i]=
- _vorbis_block_alloc(vb,(vb->pcmend+beginW)*sizeof(*vbi->pcmdelay[i]));
- memcpy(vbi->pcmdelay[i],v->pcm[i],(vb->pcmend+beginW)*sizeof(*vbi->pcmdelay[i]));
- vb->pcm[i]=vbi->pcmdelay[i]+beginW;
-
- /* before we added the delay
- vb->pcm[i]=_vorbis_block_alloc(vb,vb->pcmend*sizeof(*vb->pcm[i]));
- memcpy(vb->pcm[i],v->pcm[i]+beginW,ci->blocksizes[v->W]*sizeof(*vb->pcm[i]));
- */
-
- }
-
- /* handle eof detection: eof==0 means that we've not yet received EOF
- eof>0 marks the last 'real' sample in pcm[]
- eof<0 'no more to do'; doesn't get here */
-
- if(v->eofflag){
- if(v->centerW>=v->eofflag){
- v->eofflag=-1;
- vb->eofflag=1;
- return(1);
- }
- }
-
- /* advance storage vectors and clean up */
- {
- int new_centerNext=ci->blocksizes[1]/2+gi->delaycache;
- int movementW=centerNext-new_centerNext;
-
- if(movementW>0){
-
- _ve_envelope_shift(b->ve,movementW);
- v->pcm_current-=movementW;
-
- for(i=0;i<vi->channels;i++)
- memmove(v->pcm[i],v->pcm[i]+movementW,
- v->pcm_current*sizeof(*v->pcm[i]));
-
-
- v->lW=v->W;
- v->W=v->nW;
- v->centerW=new_centerNext;
-
- if(v->eofflag){
- v->eofflag-=movementW;
- /* do not add padding to end of stream! */
- if(v->centerW>=v->eofflag){
- v->granulepos+=movementW-(v->centerW-v->eofflag);
- }else{
- v->granulepos+=movementW;
- }
- }else{
- v->granulepos+=movementW;
- }
- }
- }
-
- /* done */
- return(1);
-}
-
-int vorbis_synthesis_init(vorbis_dsp_state *v,vorbis_info *vi){
- _vds_shared_init(v,vi,0);
-
- v->pcm_returned=-1;
- v->granulepos=-1;
- v->sequence=-1;
-
- return(0);
-}
-
-/* Unlike in analysis, the window is only partially applied for each
- block. The time domain envelope is not yet handled at the point of
- calling (as it relies on the previous block). */
-
-int vorbis_synthesis_blockin(vorbis_dsp_state *v,vorbis_block *vb){
- vorbis_info *vi=v->vi;
- codec_setup_info *ci=vi->codec_setup;
- int i,j;
-
- if(v->pcm_current>v->pcm_returned && v->pcm_returned!=-1)return(OV_EINVAL);
-
- v->lW=v->W;
- v->W=vb->W;
- v->nW=-1;
-
- v->glue_bits+=vb->glue_bits;
- v->time_bits+=vb->time_bits;
- v->floor_bits+=vb->floor_bits;
- v->res_bits+=vb->res_bits;
-
- if(v->sequence+1 != vb->sequence)v->granulepos=-1; /* out of sequence;
- lose count */
-
- v->sequence=vb->sequence;
-
- {
- int n=ci->blocksizes[v->W]/2;
- int n0=ci->blocksizes[0]/2;
- int n1=ci->blocksizes[1]/2;
-
- int thisCenter;
- int prevCenter;
-
- if(v->centerW){
- thisCenter=n1;
- prevCenter=0;
- }else{
- thisCenter=0;
- prevCenter=n1;
- }
-
- /* v->pcm is now used like a two-stage double buffer. We don't want
- to have to constantly shift *or* adjust memory usage. Don't
- accept a new block until the old is shifted out */
-
- /* overlap/add PCM */
-
- for(j=0;j<vi->channels;j++){
- /* the overlap/add section */
- if(v->lW){
- if(v->W){
- /* large/large */
- float *pcm=v->pcm[j]+prevCenter;
- float *p=vb->pcm[j];
- for(i=0;i<n1;i++)
- pcm[i]+=p[i];
- }else{
- /* large/small */
- float *pcm=v->pcm[j]+prevCenter+n1/2-n0/2;
- float *p=vb->pcm[j];
- for(i=0;i<n0;i++)
- pcm[i]+=p[i];
- }
- }else{
- if(v->W){
- /* small/large */
- float *pcm=v->pcm[j]+prevCenter;
- float *p=vb->pcm[j]+n1/2-n0/2;
- for(i=0;i<n0;i++)
- pcm[i]+=p[i];
- for(;i<n1/2+n0/2;i++)
- pcm[i]=p[i];
- }else{
- /* small/small */
- float *pcm=v->pcm[j]+prevCenter;
- float *p=vb->pcm[j];
- for(i=0;i<n0;i++)
- pcm[i]+=p[i];
- }
- }
-
- /* the copy section */
- {
- float *pcm=v->pcm[j]+thisCenter;
- float *p=vb->pcm[j]+n;
- for(i=0;i<n;i++)
- pcm[i]=p[i];
- }
- }
-
- if(v->centerW)
- v->centerW=0;
- else
- v->centerW=n1;
-
- /* deal with initial packet state; we do this using the explicit
- pcm_returned==-1 flag otherwise we're sensitive to first block
- being short or long */
-
- if(v->pcm_returned==-1){
- v->pcm_returned=thisCenter;
- v->pcm_current=thisCenter;
- }else{
- v->pcm_returned=prevCenter;
- v->pcm_current=prevCenter+
- ci->blocksizes[v->lW]/4+
- ci->blocksizes[v->W]/4;
- }
-
- /* track the frame number... This is for convenience, but also
- making sure our last packet doesn't end with added padding. If
- the last packet is partial, the number of samples we'll have to
- return will be past the vb->granulepos.
-
- This is not foolproof! It will be confused if we begin
- decoding at the last page after a seek or hole. In that case,
- we don't have a starting point to judge where the last frame
- is. For this reason, vorbisfile will always try to make sure
- it reads the last two marked pages in proper sequence */
-
- if(v->granulepos==-1)
- if(vb->granulepos==-1){
- v->granulepos=0;
- }else{
- v->granulepos=vb->granulepos;
- }
- else{
- v->granulepos+=ci->blocksizes[v->lW]/4+ci->blocksizes[v->W]/4;
- if(vb->granulepos!=-1 && v->granulepos!=vb->granulepos){
-
- if(v->granulepos>vb->granulepos){
- long extra=v->granulepos-vb->granulepos;
-
- if(vb->eofflag){
- /* partial last frame. Strip the extra samples off */
- v->pcm_current-=extra;
- }else if(vb->sequence == 1){
- /* ^^^ argh, this can be 1 from seeking! */
-
-
- /* partial first frame. Discard extra leading samples */
- v->pcm_returned+=extra;
- if(v->pcm_returned>v->pcm_current)
- v->pcm_returned=v->pcm_current;
-
- }
-
- }/* else{ Shouldn't happen *unless* the bitstream is out of
- spec. Either way, believe the bitstream } */
- v->granulepos=vb->granulepos;
- }
- }
-
- /* Update, cleanup */
-
- if(vb->eofflag)v->eofflag=1;
- }
-
- return(0);
-}
-
-/* pcm==NULL indicates we just want the pending samples, no more */
-int vorbis_synthesis_pcmout(vorbis_dsp_state *v,float ***pcm){
- vorbis_info *vi=v->vi;
- if(v->pcm_returned>-1 && v->pcm_returned<v->pcm_current){
- if(pcm){
- int i;
- for(i=0;i<vi->channels;i++)
- v->pcmret[i]=v->pcm[i]+v->pcm_returned;
- *pcm=v->pcmret;
- }
- return(v->pcm_current-v->pcm_returned);
- }
- return(0);
-}
-
-int vorbis_synthesis_read(vorbis_dsp_state *v,int bytes){
- if(bytes && v->pcm_returned+bytes>v->pcm_current)return(OV_EINVAL);
- v->pcm_returned+=bytes;
- return(0);
-}
-
diff --git a/lib/books/.cvsignore b/lib/books/.cvsignore
deleted file mode 100644
index 282522db..00000000
--- a/lib/books/.cvsignore
+++ /dev/null
@@ -1,2 +0,0 @@
-Makefile
-Makefile.in
diff --git a/lib/books/Makefile.am b/lib/books/Makefile.am
deleted file mode 100644
index 498ec3d3..00000000
--- a/lib/books/Makefile.am
+++ /dev/null
@@ -1,4 +0,0 @@
-## Process this file with automake to produce Makefile.in
-
-AUTOMAKE_OPTIONS = foreign
-SUBDIRS = coupled uncoupled floor
diff --git a/lib/books/coupled/.cvsignore b/lib/books/coupled/.cvsignore
deleted file mode 100644
index 282522db..00000000
--- a/lib/books/coupled/.cvsignore
+++ /dev/null
@@ -1,2 +0,0 @@
-Makefile
-Makefile.in
diff --git a/lib/books/coupled/Makefile.am b/lib/books/coupled/Makefile.am
deleted file mode 100644
index e67b0c6f..00000000
--- a/lib/books/coupled/Makefile.am
+++ /dev/null
@@ -1,106 +0,0 @@
-## Process this file with automake to produce Makefile.in
-
-AUTOMAKE_OPTIONS = foreign
-
-EXTRA_DIST = _44c0_long.vqh _44c0_s0_p0_r0.vqh _44c0_s0_p0_r1.vqh \
- _44c0_s0_p1_0.vqh _44c0_s0_p2_0.vqh _44c0_s0_p3_0.vqh\
- _44c0_s0_p4_0.vqh _44c0_s0_p4_1.vqh _44c0_s0_p5_0.vqh\
- _44c0_s0_p6_0.vqh _44c0_s0_p7_0.vqh _44c0_s0_p7_1.vqh\
- _44c0_s0_p7_2.vqh _44c0_s0_pN_r0.vqh _44c0_s0_pN_r1.vqh\
- _44c0_s1_p5_0.vqh _44c0_s1_p5_s0.vqh _44c0_s1_p6_0.vqh\
- _44c0_s1_p6_s0.vqh _44c0_s1_p7_0.vqh _44c0_s1_p7_1.vqh _44c0_s1_p7_2.vqh\
- _44c0_s1_p7_s0.vqh _44c0_s1_pS_r0.vqh _44c0_s1_pS_r1.vqh\
- _44c0_s2_p6_0.vqh _44c0_s2_p6_s0.vqh _44c0_s2_p7_0.vqh\
- _44c0_s2_p7_1.vqh _44c0_s2_p7_2.vqh _44c0_s2_p7_s0.vqh _44c0_s3_p7_0.vqh\
- _44c0_s3_p7_1.vqh _44c0_s3_p7_2.vqh _44c0_s3_p7_s0.vqh\
- _44c0_s4_p7_0.vqh _44c0_s4_p7_1.vqh _44c0_s4_p7_2.vqh _44c0_short.vqh\
- _44c1_long.vqh _44c1_s0_p1_0.vqh _44c1_s0_p2_0.vqh\
- _44c1_s0_p3_0.vqh _44c1_s0_p4_0.vqh _44c1_s0_p4_1.vqh\
- _44c1_s0_p5_0.vqh _44c1_s0_p6_0.vqh _44c1_s0_p7_0.vqh\
- _44c1_s0_p7_1.vqh _44c1_s0_p7_2.vqh _44c1_s1_p5_0.vqh\
- _44c1_s1_p6_0.vqh _44c1_s1_p7_0.vqh _44c1_s1_p7_1.vqh\
- _44c1_s1_p7_2.vqh _44c1_s2_p6_0.vqh _44c1_s2_p7_0.vqh\
- _44c1_s2_p7_1.vqh _44c1_s2_p7_2.vqh _44c1_s3_p7_0.vqh\
- _44c1_s3_p7_1.vqh _44c1_s3_p7_2.vqh _44c1_short.vqh\
- _44c2_long.vqh _44c2_s0_p1_0.vqh _44c2_s0_p2_0.vqh\
- _44c2_s0_p3_0.vqh _44c2_s0_p4_0.vqh _44c2_s0_p4_1.vqh\
- _44c2_s0_p5_0.vqh _44c2_s0_p6_0.vqh _44c2_s0_p7_0.vqh\
- _44c2_s0_p7_1.vqh _44c2_s0_p7_2.vqh _44c2_s1_p5_0.vqh\
- _44c2_s1_p6_0.vqh _44c2_s1_p7_0.vqh _44c2_s1_p7_1.vqh\
- _44c2_s1_p7_2.vqh _44c2_s2_p6_0.vqh _44c2_s2_p7_0.vqh\
- _44c2_s2_p7_1.vqh _44c2_s2_p7_2.vqh _44c2_s3_p7_0.vqh\
- _44c2_s3_p7_1.vqh _44c2_s3_p7_2.vqh _44c2_short.vqh\
- _44c3_long.vqh _44c3_s0_p1_0.vqh _44c3_s0_p2_0.vqh\
- _44c3_s0_p3_0.vqh _44c3_s0_p4_0.vqh _44c3_s0_p4_1.vqh\
- _44c3_s0_p5_0.vqh _44c3_s0_p6_0.vqh _44c3_s0_p7_0.vqh\
- _44c3_s0_p7_1.vqh _44c3_s0_p7_2.vqh _44c3_s1_p5_0.vqh\
- _44c3_s1_p6_0.vqh _44c3_s1_p7_0.vqh _44c3_s1_p7_1.vqh\
- _44c3_s1_p7_2.vqh _44c3_s2_p6_0.vqh _44c3_s2_p7_0.vqh\
- _44c3_s2_p7_1.vqh _44c3_s2_p7_2.vqh _44c3_s3_p7_0.vqh\
- _44c3_s3_p7_1.vqh _44c3_s3_p7_2.vqh _44c3_short.vqh\
- _44c4_long.vqd _44c4_long.vqh _44c4_s0_p0_r0.vqh\
- _44c4_s0_p0_r1.vqh _44c4_s0_p1_0.vqh _44c4_s0_p2_0.vqh\
- _44c4_s0_p3_0.vqh _44c4_s0_p4_0.vqh _44c4_s0_p5_0.vqh\
- _44c4_s0_p6_0.vqh _44c4_s0_p7_0.vqh _44c4_s0_p7_1.vqh\
- _44c4_s0_p8_0.vqh _44c4_s0_p8_1.vqh _44c4_s0_p9_0.vqh\
- _44c4_s0_p9_1.vqh _44c4_s0_p9_2.vqh _44c4_s0_pN_r0.vqh\
- _44c4_s0_pN_r1.vqh _44c4_s1_p2_0.vqh _44c4_s1_p2_s0.vqh\
- _44c4_s1_p4_0.vqh _44c4_s1_p4_s0.vqh _44c4_s1_p6_0.vqh\
- _44c4_s1_p6_s0.vqh _44c4_s1_p7_0.vqh _44c4_s1_p7_1.vqh\
- _44c4_s1_p7_s0.vqh _44c4_s1_p8_0.vqh _44c4_s1_p8_1.vqh\
- _44c4_s1_p8_s0.vqh _44c4_s1_p9_0.vqh _44c4_s1_p9_1.vqh\
- _44c4_s1_p9_2.vqh _44c4_s1_p9_s0.vqh _44c4_s1_pS_r0.vqh\
- _44c4_s1_pS_r1.vqh _44c4_s2_p6_0.vqh _44c4_s2_p6_s0.vqh\
- _44c4_s2_p7_0.vqh _44c4_s2_p7_1.vqh _44c4_s2_p7_s0.vqh\
- _44c4_s2_p8_0.vqh _44c4_s2_p8_1.vqh _44c4_s2_p8_s0.vqh\
- _44c4_s2_p9_0.vqh _44c4_s2_p9_1.vqh _44c4_s2_p9_2.vqh\
- _44c4_s2_p9_s0.vqh _44c4_s3_p7_0.vqh _44c4_s3_p7_1.vqh\
- _44c4_s3_p8_0.vqh _44c4_s3_p8_1.vqh _44c4_s3_p9_0.vqh\
- _44c4_s3_p9_1.vqh _44c4_s3_p9_2.vqh _44c4_s3_p9_s0.vqh\
- _44c4_short.vqd _44c4_short.vqh _44c5_long.vqh\
- _44c5_s0_p1_0.vqh _44c5_s0_p2_0.vqh _44c5_s0_p3_0.vqh\
- _44c5_s0_p4_0.vqh _44c5_s0_p5_0.vqh _44c5_s0_p6_0.vqh\
- _44c5_s0_p7_0.vqh _44c5_s0_p7_1.vqh _44c5_s0_p8_0.vqh\
- _44c5_s0_p8_1.vqh _44c5_s0_p9_0.vqh _44c5_s0_p9_1.vqh\
- _44c5_s0_p9_2.vqh _44c5_s1_p2_0.vqh _44c5_s1_p4_0.vqh\
- _44c5_s1_p6_0.vqh _44c5_s1_p7_0.vqh _44c5_s1_p7_1.vqh\
- _44c5_s1_p8_0.vqh _44c5_s1_p8_1.vqh _44c5_s1_p9_0.vqh\
- _44c5_s1_p9_1.vqh _44c5_s1_p9_2.vqh _44c5_s2_p6_0.vqh\
- _44c5_s2_p7_0.vqh _44c5_s2_p7_1.vqh _44c5_s2_p8_0.vqh\
- _44c5_s2_p8_1.vqh _44c5_s2_p9_0.vqh _44c5_s2_p9_1.vqh\
- _44c5_s2_p9_2.vqh _44c5_s3_p7_0.vqh _44c5_s3_p7_1.vqh\
- _44c5_s3_p8_0.vqh _44c5_s3_p8_1.vqh _44c5_s3_p9_0.vqh\
- _44c5_s3_p9_1.vqh _44c5_s3_p9_2.vqh _44c5_short.vqh\
- _44c6_long.vqh _44c6_s0_p1_0.vqh _44c6_s0_p2_0.vqh\
- _44c6_s0_p3_0.vqh _44c6_s0_p4_0.vqh _44c6_s0_p5_0.vqh\
- _44c6_s0_p6_0.vqh _44c6_s0_p7_0.vqh _44c6_s0_p7_1.vqh\
- _44c6_s0_p8_0.vqh _44c6_s0_p8_1.vqh _44c6_s0_p9_0.vqh\
- _44c6_s0_p9_1.vqh _44c6_s0_p9_2.vqh _44c6_s1_p2_0.vqh\
- _44c6_s1_p4_0.vqh _44c6_s1_p6_0.vqh _44c6_s1_p7_0.vqh\
- _44c6_s1_p7_1.vqh _44c6_s1_p8_0.vqh _44c6_s1_p8_1.vqh\
- _44c6_s1_p9_0.vqh _44c6_s1_p9_1.vqh _44c6_s1_p9_2.vqh\
- _44c6_s2_p6_0.vqh _44c6_s2_p7_0.vqh _44c6_s2_p7_1.vqh\
- _44c6_s2_p8_0.vqh _44c6_s2_p8_1.vqh _44c6_s2_p9_0.vqh\
- _44c6_s2_p9_1.vqh _44c6_s2_p9_2.vqh _44c6_s3_p7_0.vqh\
- _44c6_s3_p7_1.vqh _44c6_s3_p8_0.vqh _44c6_s3_p8_1.vqh\
- _44c6_s3_p9_0.vqh _44c6_s3_p9_1.vqh _44c6_s3_p9_2.vqh\
- _44c6_short.vqh _44c7_long.vqh _44c7_s0_p0_r0.vqh\
- _44c7_s0_p0_r1.vqh _44c7_s0_p1_0.vqh _44c7_s0_p1_1.vqh\
- _44c7_s0_p2_0.vqh _44c7_s0_p2_1.vqh _44c7_s0_p3_0.vqh\
- _44c7_s0_p4_0.vqh _44c7_s0_p5_0.vqh _44c7_s0_p6_0.vqh\
- _44c7_s0_p6_1.vqh _44c7_s0_p7_0.vqh _44c7_s0_p7_1.vqh\
- _44c7_s0_p8_0.vqh _44c7_s0_p8_1.vqh _44c7_s0_p9_0.vqh\
- _44c7_s0_p9_1.vqh _44c7_s0_p9_2.vqh _44c7_s0_pN_r0.vqh\
- _44c7_s0_pN_r1.vqh _44c7_short.vqh _44c8_long.vqh\
- _44c8_s0_p1_0.vqh _44c8_s0_p1_1.vqh _44c8_s0_p2_0.vqh\
- _44c8_s0_p2_1.vqh _44c8_s0_p3_0.vqh _44c8_s0_p4_0.vqh\
- _44c8_s0_p5_0.vqh _44c8_s0_p6_0.vqh _44c8_s0_p6_1.vqh\
- _44c8_s0_p7_0.vqh _44c8_s0_p7_1.vqh _44c8_s0_p8_0.vqh\
- _44c8_s0_p8_1.vqh _44c8_s0_p9_0.vqh _44c8_s0_p9_1.vqh\
- _44c8_s0_p9_2.vqh _44c8_short.vqh _44c9_long.vqh\
- _44c9_s0_p1_0.vqh _44c9_s0_p1_1.vqh _44c9_s0_p2_0.vqh\
- _44c9_s0_p2_1.vqh _44c9_s0_p3_0.vqh _44c9_s0_p4_0.vqh\
- _44c9_s0_p5_0.vqh _44c9_s0_p6_0.vqh _44c9_s0_p6_1.vqh\
- _44c9_s0_p7_0.vqh _44c9_s0_p7_1.vqh _44c9_s0_p8_0.vqh\
- _44c9_s0_p8_1.vqh _44c9_s0_p9_0.vqh _44c9_s0_p9_1.vqh\
- _44c9_s0_p9_2.vqh _44c9_short.vqh
diff --git a/lib/books/coupled/_44c0_long.vqh b/lib/books/coupled/_44c0_long.vqh
deleted file mode 100644
index 01f589ee..00000000
--- a/lib/books/coupled/_44c0_long.vqh
+++ /dev/null
@@ -1,40 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by huff/huffbuld
-
- ********************************************************************/
-
-#ifndef _V__44c0_long_VQH_
-#define _V__44c0_long_VQH_
-#include "codebook.h"
-
-static long _huff_lengthlist__44c0_long[] = {
- 3, 8, 9,10,11, 4, 8,12, 7, 3, 5, 8,10, 5, 8,14,
- 8, 4, 6, 7,10, 8,10,15, 8, 6, 6, 6, 8,11,12,15,
- 9, 8, 7, 6, 4,13,15,13, 4,18,18,18,18, 2, 6,13,
- 8,17,17,17,17, 6, 8,13,12,16,14,12,10,13,14,15,
-};
-
-static static_codebook _huff_book__44c0_long = {
- 2, 64,
- _huff_lengthlist__44c0_long,
- 0, 0, 0, 0, 0,
- NULL,
- NULL,
- NULL,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c0_s0_p0_r0.vqh b/lib/books/coupled/_44c0_s0_p0_r0.vqh
deleted file mode 100644
index edfccec7..00000000
--- a/lib/books/coupled/_44c0_s0_p0_r0.vqh
+++ /dev/null
@@ -1,61 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c0_s0_p0_r0_VQH_
-#define _V__44c0_s0_p0_r0_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c0_s0_p0_r0[] = {
- 2,
- 1,
- 3,
- 0,
- 4,
-};
-
-static long _vq_lengthlist__44c0_s0_p0_r0[] = {
- 1,10,10, 4, 5,10,10, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 3, 3, 9, 9, 9, 4, 4,
-};
-
-static float _vq_quantthresh__44c0_s0_p0_r0[] = {
- -0.5, -0.16667, 0.16667, 0.5,
-};
-
-static long _vq_quantmap__44c0_s0_p0_r0[] = {
- 3, 1, 0, 2, 4,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c0_s0_p0_r0 = {
- _vq_quantthresh__44c0_s0_p0_r0,
- _vq_quantmap__44c0_s0_p0_r0,
- 5,
- 5
-};
-
-static static_codebook _44c0_s0_p0_r0 = {
- 2, 25,
- _vq_lengthlist__44c0_s0_p0_r0,
- 1, -537569963, 1607816533, 3, 0,
- _vq_quantlist__44c0_s0_p0_r0,
- NULL,
- &_vq_auxt__44c0_s0_p0_r0,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c0_s0_p0_r1.vqh b/lib/books/coupled/_44c0_s0_p0_r1.vqh
deleted file mode 100644
index bb7b8042..00000000
--- a/lib/books/coupled/_44c0_s0_p0_r1.vqh
+++ /dev/null
@@ -1,61 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c0_s0_p0_r1_VQH_
-#define _V__44c0_s0_p0_r1_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c0_s0_p0_r1[] = {
- 2,
- 1,
- 3,
- 0,
- 4,
-};
-
-static long _vq_lengthlist__44c0_s0_p0_r1[] = {
- 1, 4, 5, 8, 8, 5, 4, 4, 8, 8, 5, 4, 4, 7, 8, 6,
- 7, 7, 7, 7,10, 9,10, 7, 7,
-};
-
-static float _vq_quantthresh__44c0_s0_p0_r1[] = {
- -0.16667, -0.055556, 0.055556, 0.16667,
-};
-
-static long _vq_quantmap__44c0_s0_p0_r1[] = {
- 3, 1, 0, 2, 4,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c0_s0_p0_r1 = {
- _vq_quantthresh__44c0_s0_p0_r1,
- _vq_quantmap__44c0_s0_p0_r1,
- 5,
- 5
-};
-
-static static_codebook _44c0_s0_p0_r1 = {
- 2, 25,
- _vq_lengthlist__44c0_s0_p0_r1,
- 1, -541298233, 1604088263, 3, 0,
- _vq_quantlist__44c0_s0_p0_r1,
- NULL,
- &_vq_auxt__44c0_s0_p0_r1,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c0_s0_p1_0.vqh b/lib/books/coupled/_44c0_s0_p1_0.vqh
deleted file mode 100644
index 5035cac6..00000000
--- a/lib/books/coupled/_44c0_s0_p1_0.vqh
+++ /dev/null
@@ -1,99 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c0_s0_p1_0_VQH_
-#define _V__44c0_s0_p1_0_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c0_s0_p1_0[] = {
- 2,
- 1,
- 3,
- 0,
- 4,
-};
-
-static long _vq_lengthlist__44c0_s0_p1_0[] = {
- 1, 5, 5, 0, 0, 0, 5, 5, 0, 0, 0, 5, 5, 0, 0, 0,
- 8, 9, 0, 0, 0, 0, 0, 0, 0, 6, 8, 7, 0, 0, 0, 9,
- 9, 0, 0, 0, 9, 9, 0, 0, 0,12,12, 0, 0, 0, 0, 0,
- 0, 0, 5, 7, 8, 0, 0, 0, 9, 9, 0, 0, 0, 9, 9, 0,
- 0, 0,12,12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 5, 9, 9, 0, 0, 0, 8, 8, 0, 0,
- 0, 8, 8, 0, 0, 0,11,10, 0, 0, 0, 0, 0, 0, 0, 5,
- 9, 9, 0, 0, 0, 8, 8, 0, 0, 0, 8, 8, 0, 0, 0,10,
- 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 5, 9, 9, 0, 0, 0, 8, 8, 0, 0, 0, 8, 8,
- 0, 0, 0,11,11, 0, 0, 0, 0, 0, 0, 0, 5, 9, 9, 0,
- 0, 0, 8, 8, 0, 0, 0, 8, 8, 0, 0, 0,11,10, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 9,12,12, 0, 0, 0,10,11, 0, 0, 0,10,11, 0, 0, 0,
- 12,12, 0, 0, 0, 0, 0, 0, 0, 9,12,12, 0, 0, 0,11,
- 11, 0, 0, 0,11,10, 0, 0, 0,12,12, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,
-};
-
-static float _vq_quantthresh__44c0_s0_p1_0[] = {
- -1.5, -0.5, 0.5, 1.5,
-};
-
-static long _vq_quantmap__44c0_s0_p1_0[] = {
- 3, 1, 0, 2, 4,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c0_s0_p1_0 = {
- _vq_quantthresh__44c0_s0_p1_0,
- _vq_quantmap__44c0_s0_p1_0,
- 5,
- 5
-};
-
-static static_codebook _44c0_s0_p1_0 = {
- 4, 625,
- _vq_lengthlist__44c0_s0_p1_0,
- 1, -533725184, 1611661312, 3, 0,
- _vq_quantlist__44c0_s0_p1_0,
- NULL,
- &_vq_auxt__44c0_s0_p1_0,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c0_s0_p2_0.vqh b/lib/books/coupled/_44c0_s0_p2_0.vqh
deleted file mode 100644
index d2081ad0..00000000
--- a/lib/books/coupled/_44c0_s0_p2_0.vqh
+++ /dev/null
@@ -1,70 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c0_s0_p2_0_VQH_
-#define _V__44c0_s0_p2_0_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c0_s0_p2_0[] = {
- 4,
- 3,
- 5,
- 2,
- 6,
- 1,
- 7,
- 0,
- 8,
-};
-
-static long _vq_lengthlist__44c0_s0_p2_0[] = {
- 1, 4, 4, 7, 6, 0, 0, 0, 0, 0, 4, 4, 7, 7, 0, 0,
- 0, 0, 0, 4, 4, 7, 7, 0, 0, 0, 0, 0, 6, 6, 8, 8,
- 0, 0, 0, 0, 0, 0, 0, 7, 7, 0, 0, 0, 0, 0, 0, 0,
- 8, 9, 0, 0, 0, 0, 0, 0, 0, 8, 8, 0, 0, 0, 0, 0,
- 0, 0,10,10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,
-};
-
-static float _vq_quantthresh__44c0_s0_p2_0[] = {
- -3.5, -2.5, -1.5, -0.5, 0.5, 1.5, 2.5, 3.5,
-};
-
-static long _vq_quantmap__44c0_s0_p2_0[] = {
- 7, 5, 3, 1, 0, 2, 4, 6,
- 8,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c0_s0_p2_0 = {
- _vq_quantthresh__44c0_s0_p2_0,
- _vq_quantmap__44c0_s0_p2_0,
- 9,
- 9
-};
-
-static static_codebook _44c0_s0_p2_0 = {
- 2, 81,
- _vq_lengthlist__44c0_s0_p2_0,
- 1, -531628032, 1611661312, 4, 0,
- _vq_quantlist__44c0_s0_p2_0,
- NULL,
- &_vq_auxt__44c0_s0_p2_0,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c0_s0_p3_0.vqh b/lib/books/coupled/_44c0_s0_p3_0.vqh
deleted file mode 100644
index 293da971..00000000
--- a/lib/books/coupled/_44c0_s0_p3_0.vqh
+++ /dev/null
@@ -1,93 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c0_s0_p3_0_VQH_
-#define _V__44c0_s0_p3_0_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c0_s0_p3_0[] = {
- 8,
- 7,
- 9,
- 6,
- 10,
- 5,
- 11,
- 4,
- 12,
- 3,
- 13,
- 2,
- 14,
- 1,
- 15,
- 0,
- 16,
-};
-
-static long _vq_lengthlist__44c0_s0_p3_0[] = {
- 1, 4, 4, 6, 6, 7, 7, 9, 9, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 5, 5, 7, 7, 7, 7, 9, 9, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 5, 5, 7, 7, 7, 8, 9, 9, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 6, 6, 7, 7, 8, 8,10,10, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 7, 7, 8, 8,10,10, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 8, 8, 9, 9,10,10, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 8, 9, 9,10,10, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9,11,11,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9,11,
- 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,10,10,
- 11,11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,10,
- 10,11,11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 11,11,12,11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,11,11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,12,12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,12,12, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,13,13, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,
-};
-
-static float _vq_quantthresh__44c0_s0_p3_0[] = {
- -7.5, -6.5, -5.5, -4.5, -3.5, -2.5, -1.5, -0.5,
- 0.5, 1.5, 2.5, 3.5, 4.5, 5.5, 6.5, 7.5,
-};
-
-static long _vq_quantmap__44c0_s0_p3_0[] = {
- 15, 13, 11, 9, 7, 5, 3, 1,
- 0, 2, 4, 6, 8, 10, 12, 14,
- 16,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c0_s0_p3_0 = {
- _vq_quantthresh__44c0_s0_p3_0,
- _vq_quantmap__44c0_s0_p3_0,
- 17,
- 17
-};
-
-static static_codebook _44c0_s0_p3_0 = {
- 2, 289,
- _vq_lengthlist__44c0_s0_p3_0,
- 1, -529530880, 1611661312, 5, 0,
- _vq_quantlist__44c0_s0_p3_0,
- NULL,
- &_vq_auxt__44c0_s0_p3_0,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c0_s0_p4_0.vqh b/lib/books/coupled/_44c0_s0_p4_0.vqh
deleted file mode 100644
index dadf05a7..00000000
--- a/lib/books/coupled/_44c0_s0_p4_0.vqh
+++ /dev/null
@@ -1,86 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c0_s0_p4_0_VQH_
-#define _V__44c0_s0_p4_0_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c0_s0_p4_0[] = {
- 7,
- 6,
- 8,
- 5,
- 9,
- 4,
- 10,
- 3,
- 11,
- 2,
- 12,
- 1,
- 13,
- 0,
- 14,
-};
-
-static long _vq_lengthlist__44c0_s0_p4_0[] = {
- 1, 3, 3, 6, 6,10,10,13,14,19,19,19,19,19,19, 5,
- 5, 5, 8, 8,11,11,14,14,19,19,19,19,19,19, 6, 5,
- 5, 8, 8,11,11,14,15,19,19,19,19,19,19,19, 8, 8,
- 10,10,12,13,15,15,19,19,19,19,19,19,19, 8, 8,10,
- 10,13,13,14,15,19,19,19,19,19,19,19,11,12,10,11,
- 13,14,16,16,19,19,19,19,19,19,19,13,12,11,10,13,
- 14,16,16,19,19,19,19,19,19,19,19,19,13,13,14,14,
- 18,17,19,19,19,19,19,19,19,19,19,13,13,14,14,18,
- 18,19,19,19,19,19,19,19,19,19,16,18,13,15,16,17,
- 19,19,19,19,19,19,19,19,19,19,17,14,12,17,15,19,
- 19,19,19,19,19,19,19,19,19,19,13,16,16,17,19,19,
- 19,19,19,19,19,19,19,19,19,17,12,17,15,19,19,19,
- 19,19,19,19,19,19,19,19,15,19,13,18,19,19,19,19,
- 19,19,19,19,19,19,19,19,16,19,15,19,19,19,19,19,
- 19,
-};
-
-static float _vq_quantthresh__44c0_s0_p4_0[] = {
- -45.5, -38.5, -31.5, -24.5, -17.5, -10.5, -3.5, 3.5,
- 10.5, 17.5, 24.5, 31.5, 38.5, 45.5,
-};
-
-static long _vq_quantmap__44c0_s0_p4_0[] = {
- 13, 11, 9, 7, 5, 3, 1, 0,
- 2, 4, 6, 8, 10, 12, 14,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c0_s0_p4_0 = {
- _vq_quantthresh__44c0_s0_p4_0,
- _vq_quantmap__44c0_s0_p4_0,
- 15,
- 15
-};
-
-static static_codebook _44c0_s0_p4_0 = {
- 2, 225,
- _vq_lengthlist__44c0_s0_p4_0,
- 1, -524779520, 1616642048, 4, 0,
- _vq_quantlist__44c0_s0_p4_0,
- NULL,
- &_vq_auxt__44c0_s0_p4_0,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c0_s0_p4_1.vqh b/lib/books/coupled/_44c0_s0_p4_1.vqh
deleted file mode 100644
index 77a5bf51..00000000
--- a/lib/books/coupled/_44c0_s0_p4_1.vqh
+++ /dev/null
@@ -1,65 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c0_s0_p4_1_VQH_
-#define _V__44c0_s0_p4_1_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c0_s0_p4_1[] = {
- 3,
- 2,
- 4,
- 1,
- 5,
- 0,
- 6,
-};
-
-static long _vq_lengthlist__44c0_s0_p4_1[] = {
- 2, 4, 4, 5, 5, 6, 6, 8, 5, 5, 6, 6, 6, 6, 8, 5,
- 5, 6, 6, 6, 6, 8, 6, 6, 6, 6, 6, 6, 8, 8, 8, 6,
- 6, 6, 6, 8, 8, 8, 7, 7, 7, 7, 8, 8, 8, 6, 6, 7,
- 7,
-};
-
-static float _vq_quantthresh__44c0_s0_p4_1[] = {
- -2.5, -1.5, -0.5, 0.5, 1.5, 2.5,
-};
-
-static long _vq_quantmap__44c0_s0_p4_1[] = {
- 5, 3, 1, 0, 2, 4, 6,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c0_s0_p4_1 = {
- _vq_quantthresh__44c0_s0_p4_1,
- _vq_quantmap__44c0_s0_p4_1,
- 7,
- 7
-};
-
-static static_codebook _44c0_s0_p4_1 = {
- 2, 49,
- _vq_lengthlist__44c0_s0_p4_1,
- 1, -533200896, 1611661312, 3, 0,
- _vq_quantlist__44c0_s0_p4_1,
- NULL,
- &_vq_auxt__44c0_s0_p4_1,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c0_s0_p5_0.vqh b/lib/books/coupled/_44c0_s0_p5_0.vqh
deleted file mode 100644
index dd983e19..00000000
--- a/lib/books/coupled/_44c0_s0_p5_0.vqh
+++ /dev/null
@@ -1,99 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c0_s0_p5_0_VQH_
-#define _V__44c0_s0_p5_0_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c0_s0_p5_0[] = {
- 2,
- 1,
- 3,
- 0,
- 4,
-};
-
-static long _vq_lengthlist__44c0_s0_p5_0[] = {
- 1, 5, 5, 0, 0, 0, 5, 5, 0, 0, 0, 5, 5, 0, 0, 0,
- 8, 8, 0, 0, 0, 0, 0, 0, 0, 5, 8, 8, 0, 0, 0, 9,
- 9, 0, 0, 0, 9, 9, 0, 0, 0,13,13, 0, 0, 0, 0, 0,
- 0, 0, 6, 8, 8, 0, 0, 0, 9, 9, 0, 0, 0, 9, 9, 0,
- 0, 0,13,13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 5, 9, 9, 0, 0, 0, 8, 8, 0, 0,
- 0, 8, 8, 0, 0, 0,11,10, 0, 0, 0, 0, 0, 0, 0, 5,
- 9, 9, 0, 0, 0, 8, 8, 0, 0, 0, 8, 8, 0, 0, 0,10,
- 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 5, 9, 9, 0, 0, 0, 8, 8, 0, 0, 0, 8, 8,
- 0, 0, 0,10,10, 0, 0, 0, 0, 0, 0, 0, 5, 9, 9, 0,
- 0, 0, 8, 8, 0, 0, 0, 8, 8, 0, 0, 0,10,10, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 8,13,13, 0, 0, 0,10,11, 0, 0, 0,10,11, 0, 0, 0,
- 11,11, 0, 0, 0, 0, 0, 0, 0, 8,13,13, 0, 0, 0,11,
- 10, 0, 0, 0,11,10, 0, 0, 0,11,11, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,
-};
-
-static float _vq_quantthresh__44c0_s0_p5_0[] = {
- -1.5, -0.5, 0.5, 1.5,
-};
-
-static long _vq_quantmap__44c0_s0_p5_0[] = {
- 3, 1, 0, 2, 4,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c0_s0_p5_0 = {
- _vq_quantthresh__44c0_s0_p5_0,
- _vq_quantmap__44c0_s0_p5_0,
- 5,
- 5
-};
-
-static static_codebook _44c0_s0_p5_0 = {
- 4, 625,
- _vq_lengthlist__44c0_s0_p5_0,
- 1, -533725184, 1611661312, 3, 0,
- _vq_quantlist__44c0_s0_p5_0,
- NULL,
- &_vq_auxt__44c0_s0_p5_0,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c0_s0_p6_0.vqh b/lib/books/coupled/_44c0_s0_p6_0.vqh
deleted file mode 100644
index 09661c56..00000000
--- a/lib/books/coupled/_44c0_s0_p6_0.vqh
+++ /dev/null
@@ -1,93 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c0_s0_p6_0_VQH_
-#define _V__44c0_s0_p6_0_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c0_s0_p6_0[] = {
- 8,
- 7,
- 9,
- 6,
- 10,
- 5,
- 11,
- 4,
- 12,
- 3,
- 13,
- 2,
- 14,
- 1,
- 15,
- 0,
- 16,
-};
-
-static long _vq_lengthlist__44c0_s0_p6_0[] = {
- 1, 4, 4, 7, 7,10,10,12,12, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 4, 4, 7, 7,10,10,12,12, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 4, 4, 7, 7,10,10,12,12, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 7, 6, 7, 7,11,11,13,13, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 7, 7,11,11,13,13, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 9, 9,11,11,14,14, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9,11,11,14,14, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,10,11,12,12,14,14,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,12,12,14,
- 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,13,13,
- 15,15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,13,
- 13,14,14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 14,15,15,15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,16,15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,16,16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,15,16, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,16,16, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,
-};
-
-static float _vq_quantthresh__44c0_s0_p6_0[] = {
- -7.5, -6.5, -5.5, -4.5, -3.5, -2.5, -1.5, -0.5,
- 0.5, 1.5, 2.5, 3.5, 4.5, 5.5, 6.5, 7.5,
-};
-
-static long _vq_quantmap__44c0_s0_p6_0[] = {
- 15, 13, 11, 9, 7, 5, 3, 1,
- 0, 2, 4, 6, 8, 10, 12, 14,
- 16,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c0_s0_p6_0 = {
- _vq_quantthresh__44c0_s0_p6_0,
- _vq_quantmap__44c0_s0_p6_0,
- 17,
- 17
-};
-
-static static_codebook _44c0_s0_p6_0 = {
- 2, 289,
- _vq_lengthlist__44c0_s0_p6_0,
- 1, -529530880, 1611661312, 5, 0,
- _vq_quantlist__44c0_s0_p6_0,
- NULL,
- &_vq_auxt__44c0_s0_p6_0,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c0_s0_p7_0.vqh b/lib/books/coupled/_44c0_s0_p7_0.vqh
deleted file mode 100644
index f2f23eaa..00000000
--- a/lib/books/coupled/_44c0_s0_p7_0.vqh
+++ /dev/null
@@ -1,65 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c0_s0_p7_0_VQH_
-#define _V__44c0_s0_p7_0_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c0_s0_p7_0[] = {
- 3,
- 2,
- 4,
- 1,
- 5,
- 0,
- 6,
-};
-
-static long _vq_lengthlist__44c0_s0_p7_0[] = {
- 1, 3, 3,11,11,11,11, 3, 6, 7,11,11,11,11, 4, 8,
- 7,11,11,11,11,11,11, 9,10,11,11,11,11,11,11,11,
- 11,11,11,11,11,10,10,10,10,10,10,10,10,10,10,10,
- 10,
-};
-
-static float _vq_quantthresh__44c0_s0_p7_0[] = {
- -167.5, -100.5, -33.5, 33.5, 100.5, 167.5,
-};
-
-static long _vq_quantmap__44c0_s0_p7_0[] = {
- 5, 3, 1, 0, 2, 4, 6,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c0_s0_p7_0 = {
- _vq_quantthresh__44c0_s0_p7_0,
- _vq_quantmap__44c0_s0_p7_0,
- 7,
- 7
-};
-
-static static_codebook _44c0_s0_p7_0 = {
- 2, 49,
- _vq_lengthlist__44c0_s0_p7_0,
- 1, -520544256, 1624293376, 3, 0,
- _vq_quantlist__44c0_s0_p7_0,
- NULL,
- &_vq_auxt__44c0_s0_p7_0,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c0_s0_p7_1.vqh b/lib/books/coupled/_44c0_s0_p7_1.vqh
deleted file mode 100644
index 362c30af..00000000
--- a/lib/books/coupled/_44c0_s0_p7_1.vqh
+++ /dev/null
@@ -1,115 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c0_s0_p7_1_VQH_
-#define _V__44c0_s0_p7_1_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c0_s0_p7_1[] = {
- 11,
- 10,
- 12,
- 9,
- 13,
- 8,
- 14,
- 7,
- 15,
- 6,
- 16,
- 5,
- 17,
- 4,
- 18,
- 3,
- 19,
- 2,
- 20,
- 1,
- 21,
- 0,
- 22,
-};
-
-static long _vq_lengthlist__44c0_s0_p7_1[] = {
- 1, 4, 4, 6, 6, 8, 8, 9, 9,10,10,11,11,12,11,12,
- 12,10,10,10,10,11,10, 5, 5, 5, 7, 7, 9, 9,10,11,
- 13,12,12,12,12,12,12,12,11,11,10,11,10,11,15, 6,
- 5, 7, 7, 9, 9,11,11,11,11,12,11,13,11,12,12,10,
- 10,10,10,10,10,15, 7, 7, 8, 8,10,10,11,12,15,14,
- 14,14,15,14,14,15,11,11,11,11,12,11,14, 8, 7, 8,
- 8,11,10,12,12,12,13,12,12,14,14,15,15,11,11,11,
- 13,10,11,15,11,11, 8, 9,10,10,12,11,13,14,14,15,
- 14,15,15,15,11,12,11,11,11,13,15,15,15, 9, 9,10,
- 10,13,12,13,13,13,15,15,14,15,14,12,11,10,12,12,
- 12,15,15,15,11, 9,11,11,11,11,13,15,15,15,15,15,
- 13,15,11,12,12,11,15,12,15,14,15,10,11,10,11,12,
- 12,13,12,15,15,14,15,15,13,11,12,11,12,13,12,15,
- 15,15,14,14,12,10,13,12,12,14,15,13,15,14,15,15,
- 11,11,11,12,12,13,15,15,15,15,14,11,12,13,12,12,
- 13,15,14,15,14,15,14,10,12,10,12,13,13,15,15,15,
- 15,15,13,14,13,12,13,13,14,13,15,15,13,15,12,11,
- 10,11,12,13,15,15,15,15,15,15,13,13,12,15,14,14,
- 15,15,13,15,15,10,11,11,11,12,15,15,15,15,15,15,
- 15,14,14,15,14,13,14,14,15,14,15,14,13,11,11,11,
- 12,12,15,15,15,15,15,15,15,13,15,13,13,15,15,15,
- 15,15,15,11,13,12,12,12,13,15,15,15,15,15,15,15,
- 14,13,15,15,14,13,15,15,15,14,12,11,15,11,13,12,
- 15,15,15,15,15,15,15,15,15,15,15,15,15,15,14,15,
- 14,12,12,11,13,12,13,15,15,14,15,15,15,15,15,15,
- 15,15,15,14,15,15,15,15,13,10,14,11,13,14,15,15,
- 15,15,15,15,15,15,15,13,15,15,15,14,15,15,14,12,
- 12,12,12,13,13,15,15,15,14,15,14,15,15,15,15,15,
- 15,15,15,15,14,15,12,13,13,13,13,12,15,15,15,15,
- 15,15,15,15,15,15,15,15,14,15,14,15,14,13,12,12,
- 13,15,13,15,15,15,15,15,15,15,15,15,14,15,15,15,
- 13,15,13,14,13,13,13,13,14,15,15,15,15,15,14,15,
- 15,15,15,14,15,15,14,14,15,15,15,12,13,12,12,14,
- 14,
-};
-
-static float _vq_quantthresh__44c0_s0_p7_1[] = {
- -31.5, -28.5, -25.5, -22.5, -19.5, -16.5, -13.5, -10.5,
- -7.5, -4.5, -1.5, 1.5, 4.5, 7.5, 10.5, 13.5,
- 16.5, 19.5, 22.5, 25.5, 28.5, 31.5,
-};
-
-static long _vq_quantmap__44c0_s0_p7_1[] = {
- 21, 19, 17, 15, 13, 11, 9, 7,
- 5, 3, 1, 0, 2, 4, 6, 8,
- 10, 12, 14, 16, 18, 20, 22,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c0_s0_p7_1 = {
- _vq_quantthresh__44c0_s0_p7_1,
- _vq_quantmap__44c0_s0_p7_1,
- 23,
- 23
-};
-
-static static_codebook _44c0_s0_p7_1 = {
- 2, 529,
- _vq_lengthlist__44c0_s0_p7_1,
- 1, -525303808, 1614282752, 5, 0,
- _vq_quantlist__44c0_s0_p7_1,
- NULL,
- &_vq_auxt__44c0_s0_p7_1,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c0_s0_p7_2.vqh b/lib/books/coupled/_44c0_s0_p7_2.vqh
deleted file mode 100644
index 386c7a1e..00000000
--- a/lib/books/coupled/_44c0_s0_p7_2.vqh
+++ /dev/null
@@ -1,63 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c0_s0_p7_2_VQH_
-#define _V__44c0_s0_p7_2_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c0_s0_p7_2[] = {
- 1,
- 0,
- 2,
-};
-
-static long _vq_lengthlist__44c0_s0_p7_2[] = {
- 2, 5, 5, 7, 6, 6, 7, 6, 6, 5, 6, 6, 7, 7, 7, 7,
- 7, 7, 5, 6, 6, 7, 7, 7, 7, 7, 7, 7, 8, 8, 8, 8,
- 8, 8, 8, 8, 6, 7, 7, 8, 7, 7, 7, 7, 7, 6, 7, 7,
- 7, 7, 7, 8, 7, 7, 7, 7, 8, 8, 8, 8, 7, 8, 8, 6,
- 7, 7, 7, 7, 7, 7, 6, 7, 6, 7, 7, 8, 7, 7, 8, 7,
- 7,
-};
-
-static float _vq_quantthresh__44c0_s0_p7_2[] = {
- -0.5, 0.5,
-};
-
-static long _vq_quantmap__44c0_s0_p7_2[] = {
- 1, 0, 2,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c0_s0_p7_2 = {
- _vq_quantthresh__44c0_s0_p7_2,
- _vq_quantmap__44c0_s0_p7_2,
- 3,
- 3
-};
-
-static static_codebook _44c0_s0_p7_2 = {
- 4, 81,
- _vq_lengthlist__44c0_s0_p7_2,
- 1, -535822336, 1611661312, 2, 0,
- _vq_quantlist__44c0_s0_p7_2,
- NULL,
- &_vq_auxt__44c0_s0_p7_2,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c0_s0_pN_r0.vqh b/lib/books/coupled/_44c0_s0_pN_r0.vqh
deleted file mode 100644
index 669195d2..00000000
--- a/lib/books/coupled/_44c0_s0_pN_r0.vqh
+++ /dev/null
@@ -1,61 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c0_s0_pN_r0_VQH_
-#define _V__44c0_s0_pN_r0_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c0_s0_pN_r0[] = {
- 2,
- 1,
- 3,
- 0,
- 4,
-};
-
-static long _vq_lengthlist__44c0_s0_pN_r0[] = {
- 2, 3, 3,10,10, 5, 4, 4,10,10, 5, 4, 4, 9,10,10,
- 4, 4,10, 8,10, 6, 5,10,10,
-};
-
-static float _vq_quantthresh__44c0_s0_pN_r0[] = {
- -0.5, -0.16667, 0.16667, 0.5,
-};
-
-static long _vq_quantmap__44c0_s0_pN_r0[] = {
- 3, 1, 0, 2, 4,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c0_s0_pN_r0 = {
- _vq_quantthresh__44c0_s0_pN_r0,
- _vq_quantmap__44c0_s0_pN_r0,
- 5,
- 5
-};
-
-static static_codebook _44c0_s0_pN_r0 = {
- 2, 25,
- _vq_lengthlist__44c0_s0_pN_r0,
- 1, -537569963, 1607816533, 3, 0,
- _vq_quantlist__44c0_s0_pN_r0,
- NULL,
- &_vq_auxt__44c0_s0_pN_r0,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c0_s0_pN_r1.vqh b/lib/books/coupled/_44c0_s0_pN_r1.vqh
deleted file mode 100644
index 1fe45587..00000000
--- a/lib/books/coupled/_44c0_s0_pN_r1.vqh
+++ /dev/null
@@ -1,61 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c0_s0_pN_r1_VQH_
-#define _V__44c0_s0_pN_r1_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c0_s0_pN_r1[] = {
- 2,
- 1,
- 3,
- 0,
- 4,
-};
-
-static long _vq_lengthlist__44c0_s0_pN_r1[] = {
- 2, 3, 3,10,10, 4, 4, 4,10,10, 4, 4, 4,10, 9,10,
- 5, 6,10,10, 9, 5, 5, 9, 9,
-};
-
-static float _vq_quantthresh__44c0_s0_pN_r1[] = {
- -0.16667, -0.055556, 0.055556, 0.16667,
-};
-
-static long _vq_quantmap__44c0_s0_pN_r1[] = {
- 3, 1, 0, 2, 4,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c0_s0_pN_r1 = {
- _vq_quantthresh__44c0_s0_pN_r1,
- _vq_quantmap__44c0_s0_pN_r1,
- 5,
- 5
-};
-
-static static_codebook _44c0_s0_pN_r1 = {
- 2, 25,
- _vq_lengthlist__44c0_s0_pN_r1,
- 1, -541298233, 1604088263, 3, 0,
- _vq_quantlist__44c0_s0_pN_r1,
- NULL,
- &_vq_auxt__44c0_s0_pN_r1,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c0_s1_p5_0.vqh b/lib/books/coupled/_44c0_s1_p5_0.vqh
deleted file mode 100644
index 81a1731d..00000000
--- a/lib/books/coupled/_44c0_s1_p5_0.vqh
+++ /dev/null
@@ -1,63 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c0_s1_p5_0_VQH_
-#define _V__44c0_s1_p5_0_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c0_s1_p5_0[] = {
- 1,
- 0,
- 2,
-};
-
-static long _vq_lengthlist__44c0_s1_p5_0[] = {
- 1, 3, 3, 0, 0, 0, 0, 0, 0, 3, 6, 6, 0, 0, 0, 0,
- 0, 0, 4, 6, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,
-};
-
-static float _vq_quantthresh__44c0_s1_p5_0[] = {
- -0.5, 0.5,
-};
-
-static long _vq_quantmap__44c0_s1_p5_0[] = {
- 1, 0, 2,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c0_s1_p5_0 = {
- _vq_quantthresh__44c0_s1_p5_0,
- _vq_quantmap__44c0_s1_p5_0,
- 3,
- 3
-};
-
-static static_codebook _44c0_s1_p5_0 = {
- 4, 81,
- _vq_lengthlist__44c0_s1_p5_0,
- 1, -535822336, 1611661312, 2, 0,
- _vq_quantlist__44c0_s1_p5_0,
- NULL,
- &_vq_auxt__44c0_s1_p5_0,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c0_s1_p5_s0.vqh b/lib/books/coupled/_44c0_s1_p5_s0.vqh
deleted file mode 100644
index af13a8fa..00000000
--- a/lib/books/coupled/_44c0_s1_p5_s0.vqh
+++ /dev/null
@@ -1,61 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c0_s1_p5_s0_VQH_
-#define _V__44c0_s1_p5_s0_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c0_s1_p5_s0[] = {
- 2,
- 1,
- 3,
- 0,
- 4,
-};
-
-static long _vq_lengthlist__44c0_s1_p5_s0[] = {
- 1,10, 9,17,17, 3, 5, 4,16,16, 3, 4, 4,16,16, 6,
- 13,12, 7, 8,16,12,12,16,16,
-};
-
-static float _vq_quantthresh__44c0_s1_p5_s0[] = {
- -1.5, -0.5, 0.5, 1.5,
-};
-
-static long _vq_quantmap__44c0_s1_p5_s0[] = {
- 3, 1, 0, 2, 4,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c0_s1_p5_s0 = {
- _vq_quantthresh__44c0_s1_p5_s0,
- _vq_quantmap__44c0_s1_p5_s0,
- 5,
- 5
-};
-
-static static_codebook _44c0_s1_p5_s0 = {
- 2, 25,
- _vq_lengthlist__44c0_s1_p5_s0,
- 1, -533725184, 1611661312, 3, 0,
- _vq_quantlist__44c0_s1_p5_s0,
- NULL,
- &_vq_auxt__44c0_s1_p5_s0,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c0_s1_p6_0.vqh b/lib/books/coupled/_44c0_s1_p6_0.vqh
deleted file mode 100644
index 6122e1db..00000000
--- a/lib/books/coupled/_44c0_s1_p6_0.vqh
+++ /dev/null
@@ -1,93 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c0_s1_p6_0_VQH_
-#define _V__44c0_s1_p6_0_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c0_s1_p6_0[] = {
- 8,
- 7,
- 9,
- 6,
- 10,
- 5,
- 11,
- 4,
- 12,
- 3,
- 13,
- 2,
- 14,
- 1,
- 15,
- 0,
- 16,
-};
-
-static long _vq_lengthlist__44c0_s1_p6_0[] = {
- 1, 3, 2, 4, 5, 8, 9,11,11, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 9, 9,11,11, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 9, 9,11,11, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,10,10,12,12, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0,10,10,12,12, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,10,10,12,13, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,10,10,12,12, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,11,11,13,13,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,11,11,13,
- 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,12,11,
- 13,13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,12,
- 12,13,13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 13,13,14,14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,15,14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,14,15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,14,14, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,15,15, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,
-};
-
-static float _vq_quantthresh__44c0_s1_p6_0[] = {
- -7.5, -6.5, -5.5, -4.5, -3.5, -2.5, -1.5, -0.5,
- 0.5, 1.5, 2.5, 3.5, 4.5, 5.5, 6.5, 7.5,
-};
-
-static long _vq_quantmap__44c0_s1_p6_0[] = {
- 15, 13, 11, 9, 7, 5, 3, 1,
- 0, 2, 4, 6, 8, 10, 12, 14,
- 16,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c0_s1_p6_0 = {
- _vq_quantthresh__44c0_s1_p6_0,
- _vq_quantmap__44c0_s1_p6_0,
- 17,
- 17
-};
-
-static static_codebook _44c0_s1_p6_0 = {
- 2, 289,
- _vq_lengthlist__44c0_s1_p6_0,
- 1, -529530880, 1611661312, 5, 0,
- _vq_quantlist__44c0_s1_p6_0,
- NULL,
- &_vq_auxt__44c0_s1_p6_0,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c0_s1_p6_s0.vqh b/lib/books/coupled/_44c0_s1_p6_s0.vqh
deleted file mode 100644
index dea611a3..00000000
--- a/lib/books/coupled/_44c0_s1_p6_s0.vqh
+++ /dev/null
@@ -1,70 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c0_s1_p6_s0_VQH_
-#define _V__44c0_s1_p6_s0_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c0_s1_p6_s0[] = {
- 4,
- 3,
- 5,
- 2,
- 6,
- 1,
- 7,
- 0,
- 8,
-};
-
-static long _vq_lengthlist__44c0_s1_p6_s0[] = {
- 1,11,11,20,20,14,13,13,20, 3, 5, 5,13,20,20,20,
- 14,14, 3, 5, 5,14,14,20,20,20,20, 5, 7, 7, 6, 6,
- 20,20,20,20, 8, 7, 7,13,13,20,20,20,20, 8, 9, 8,
- 20,20,20,20,20,20, 8, 8, 8,20,20,19,19,19,19, 9,
- 19,19,19,19,19,19,10,10,19,19,19,19,19,19,19,19,
- 19,
-};
-
-static float _vq_quantthresh__44c0_s1_p6_s0[] = {
- -3.5, -2.5, -1.5, -0.5, 0.5, 1.5, 2.5, 3.5,
-};
-
-static long _vq_quantmap__44c0_s1_p6_s0[] = {
- 7, 5, 3, 1, 0, 2, 4, 6,
- 8,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c0_s1_p6_s0 = {
- _vq_quantthresh__44c0_s1_p6_s0,
- _vq_quantmap__44c0_s1_p6_s0,
- 9,
- 9
-};
-
-static static_codebook _44c0_s1_p6_s0 = {
- 2, 81,
- _vq_lengthlist__44c0_s1_p6_s0,
- 1, -531628032, 1611661312, 4, 0,
- _vq_quantlist__44c0_s1_p6_s0,
- NULL,
- &_vq_auxt__44c0_s1_p6_s0,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c0_s1_p7_0.vqh b/lib/books/coupled/_44c0_s1_p7_0.vqh
deleted file mode 100644
index a11a3013..00000000
--- a/lib/books/coupled/_44c0_s1_p7_0.vqh
+++ /dev/null
@@ -1,65 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c0_s1_p7_0_VQH_
-#define _V__44c0_s1_p7_0_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c0_s1_p7_0[] = {
- 3,
- 2,
- 4,
- 1,
- 5,
- 0,
- 6,
-};
-
-static long _vq_lengthlist__44c0_s1_p7_0[] = {
- 1, 3, 3,11,11,11,11, 3, 6, 7,11,11,11,11, 4, 8,
- 7,11,11,11,11,11,11, 9,10,11,11,11,11,11,11,11,
- 11,11,11,11,11,10,10,10,10,10,10,10,10,10,10,10,
- 10,
-};
-
-static float _vq_quantthresh__44c0_s1_p7_0[] = {
- -167.5, -100.5, -33.5, 33.5, 100.5, 167.5,
-};
-
-static long _vq_quantmap__44c0_s1_p7_0[] = {
- 5, 3, 1, 0, 2, 4, 6,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c0_s1_p7_0 = {
- _vq_quantthresh__44c0_s1_p7_0,
- _vq_quantmap__44c0_s1_p7_0,
- 7,
- 7
-};
-
-static static_codebook _44c0_s1_p7_0 = {
- 2, 49,
- _vq_lengthlist__44c0_s1_p7_0,
- 1, -520544256, 1624293376, 3, 0,
- _vq_quantlist__44c0_s1_p7_0,
- NULL,
- &_vq_auxt__44c0_s1_p7_0,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c0_s1_p7_1.vqh b/lib/books/coupled/_44c0_s1_p7_1.vqh
deleted file mode 100644
index e2c43232..00000000
--- a/lib/books/coupled/_44c0_s1_p7_1.vqh
+++ /dev/null
@@ -1,115 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c0_s1_p7_1_VQH_
-#define _V__44c0_s1_p7_1_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c0_s1_p7_1[] = {
- 11,
- 10,
- 12,
- 9,
- 13,
- 8,
- 14,
- 7,
- 15,
- 6,
- 16,
- 5,
- 17,
- 4,
- 18,
- 3,
- 19,
- 2,
- 20,
- 1,
- 21,
- 0,
- 22,
-};
-
-static long _vq_lengthlist__44c0_s1_p7_1[] = {
- 1, 4, 4, 6, 6, 8, 8, 9, 9,10, 9,11,11,11,11,12,
- 11, 9, 9, 9,10,10,10, 6, 5, 6, 7, 7, 9, 9,10,10,
- 12,11,12,12,12,12,12,12,10,11,10,11,10,11,15, 6,
- 5, 7, 7, 9, 9,11,10,11,11,12,11,12,11,12,12,10,
- 10,10,10,10, 9,15, 7, 7, 8, 8,10,10,11,12,15,13,
- 13,13,15,13,13,14,11,11,11,11,12,11,13, 8, 7, 8,
- 8,11,10,11,12,12,12,12,12,13,13,14,14,11,11,10,
- 12,10,10,14,11,10, 8, 8,10, 9,12,11,12,13,13,14,
- 13,14,14,14,11,11,11,11,10,13,14,14,14, 9, 9, 9,
- 10,12,12,12,13,13,14,14,13,14,13,12,11,10,12,12,
- 12,14,14,14,10, 9,11,10,11,10,12,14,14,14,14,14,
- 13,14,11,12,12,11,14,12,14,13,14,10,10,10,11,12,
- 12,13,12,14,14,13,14,14,13,11,11,11,12,13,12,14,
- 14,14,13,13,11,10,12,12,12,13,14,13,14,13,14,14,
- 11,11,11,12,12,12,14,14,14,14,13,11,12,12,12,12,
- 13,14,13,14,13,14,13,10,12,10,11,13,13,14,14,14,
- 14,14,13,13,13,12,12,13,13,13,14,14,13,14,12,11,
- 10,10,12,12,14,14,14,14,14,14,13,12,12,14,13,13,
- 14,14,13,14,14,10,11,11,11,12,14,14,14,14,14,14,
- 14,13,13,14,13,13,13,13,14,13,14,13,13,11,11,10,
- 11,12,14,14,14,14,14,14,14,13,14,12,13,14,14,14,
- 14,14,14,11,13,12,12,12,12,14,14,14,14,14,14,14,
- 13,13,14,14,13,13,14,14,14,13,12,11,14,11,13,12,
- 14,14,14,14,14,14,14,14,14,14,14,14,14,14,13,14,
- 13,12,12,11,13,12,12,14,14,13,14,14,14,14,14,14,
- 14,14,14,13,14,14,14,14,12,10,13,10,12,13,14,14,
- 14,14,14,14,14,14,14,13,14,14,14,13,14,14,13,12,
- 12,12,12,12,12,14,14,14,13,14,13,14,14,14,14,14,
- 14,14,14,14,13,14,12,12,12,13,13,12,14,14,14,14,
- 14,14,14,14,14,14,14,14,13,14,13,14,13,12,11,12,
- 12,14,13,14,14,14,14,14,14,14,14,14,13,14,14,14,
- 13,14,13,13,13,13,13,13,13,14,14,14,14,14,13,14,
- 14,14,14,13,14,14,13,13,14,14,14,12,13,12,12,14,
- 14,
-};
-
-static float _vq_quantthresh__44c0_s1_p7_1[] = {
- -31.5, -28.5, -25.5, -22.5, -19.5, -16.5, -13.5, -10.5,
- -7.5, -4.5, -1.5, 1.5, 4.5, 7.5, 10.5, 13.5,
- 16.5, 19.5, 22.5, 25.5, 28.5, 31.5,
-};
-
-static long _vq_quantmap__44c0_s1_p7_1[] = {
- 21, 19, 17, 15, 13, 11, 9, 7,
- 5, 3, 1, 0, 2, 4, 6, 8,
- 10, 12, 14, 16, 18, 20, 22,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c0_s1_p7_1 = {
- _vq_quantthresh__44c0_s1_p7_1,
- _vq_quantmap__44c0_s1_p7_1,
- 23,
- 23
-};
-
-static static_codebook _44c0_s1_p7_1 = {
- 2, 529,
- _vq_lengthlist__44c0_s1_p7_1,
- 1, -525303808, 1614282752, 5, 0,
- _vq_quantlist__44c0_s1_p7_1,
- NULL,
- &_vq_auxt__44c0_s1_p7_1,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c0_s1_p7_2.vqh b/lib/books/coupled/_44c0_s1_p7_2.vqh
deleted file mode 100644
index f5d1d2e2..00000000
--- a/lib/books/coupled/_44c0_s1_p7_2.vqh
+++ /dev/null
@@ -1,63 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c0_s1_p7_2_VQH_
-#define _V__44c0_s1_p7_2_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c0_s1_p7_2[] = {
- 1,
- 0,
- 2,
-};
-
-static long _vq_lengthlist__44c0_s1_p7_2[] = {
- 2, 5, 5, 7, 6, 7, 7, 6, 7, 5, 5, 5, 7, 7, 7, 7,
- 7, 7, 5, 5, 5, 7, 7, 7, 7, 7, 7, 7, 7, 8, 8, 8,
- 8, 7, 8, 8, 7, 7, 7, 8, 7, 7, 8, 7, 8, 7, 7, 7,
- 8, 8, 7, 7, 7, 8, 7, 7, 7, 7, 8, 8, 7, 8, 8, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 8, 8, 7, 8, 8,
- 7,
-};
-
-static float _vq_quantthresh__44c0_s1_p7_2[] = {
- -0.5, 0.5,
-};
-
-static long _vq_quantmap__44c0_s1_p7_2[] = {
- 1, 0, 2,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c0_s1_p7_2 = {
- _vq_quantthresh__44c0_s1_p7_2,
- _vq_quantmap__44c0_s1_p7_2,
- 3,
- 3
-};
-
-static static_codebook _44c0_s1_p7_2 = {
- 4, 81,
- _vq_lengthlist__44c0_s1_p7_2,
- 1, -535822336, 1611661312, 2, 0,
- _vq_quantlist__44c0_s1_p7_2,
- NULL,
- &_vq_auxt__44c0_s1_p7_2,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c0_s1_p7_s0.vqh b/lib/books/coupled/_44c0_s1_p7_s0.vqh
deleted file mode 100644
index 595c76b4..00000000
--- a/lib/books/coupled/_44c0_s1_p7_s0.vqh
+++ /dev/null
@@ -1,70 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c0_s1_p7_s0_VQH_
-#define _V__44c0_s1_p7_s0_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c0_s1_p7_s0[] = {
- 4,
- 3,
- 5,
- 2,
- 6,
- 1,
- 7,
- 0,
- 8,
-};
-
-static long _vq_lengthlist__44c0_s1_p7_s0[] = {
- 1,15,14,17,17,15,16,16,17, 3, 5, 5,15,17,17,17,
- 16,15, 3, 5, 5,15,16,17,17,17,17, 5, 7, 7, 7, 7,
- 17,17,17,17, 7, 7, 7,13,13,17,17,17,17, 7, 8, 8,
- 17,17,17,17,17,17, 7, 8, 8,17,17,17,17,17,17, 8,
- 16,16,16,16,16,16, 9,10,16,16,16,16,16,16,16,16,
- 16,
-};
-
-static float _vq_quantthresh__44c0_s1_p7_s0[] = {
- -3.5, -2.5, -1.5, -0.5, 0.5, 1.5, 2.5, 3.5,
-};
-
-static long _vq_quantmap__44c0_s1_p7_s0[] = {
- 7, 5, 3, 1, 0, 2, 4, 6,
- 8,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c0_s1_p7_s0 = {
- _vq_quantthresh__44c0_s1_p7_s0,
- _vq_quantmap__44c0_s1_p7_s0,
- 9,
- 9
-};
-
-static static_codebook _44c0_s1_p7_s0 = {
- 2, 81,
- _vq_lengthlist__44c0_s1_p7_s0,
- 1, -531628032, 1611661312, 4, 0,
- _vq_quantlist__44c0_s1_p7_s0,
- NULL,
- &_vq_auxt__44c0_s1_p7_s0,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c0_s1_pS_r0.vqh b/lib/books/coupled/_44c0_s1_pS_r0.vqh
deleted file mode 100644
index f654250e..00000000
--- a/lib/books/coupled/_44c0_s1_pS_r0.vqh
+++ /dev/null
@@ -1,58 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c0_s1_pS_r0_VQH_
-#define _V__44c0_s1_pS_r0_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c0_s1_pS_r0[] = {
- 1,
- 0,
- 2,
-};
-
-static long _vq_lengthlist__44c0_s1_pS_r0[] = {
- 1, 2, 3, 6, 6, 6, 6, 5, 5,
-};
-
-static float _vq_quantthresh__44c0_s1_pS_r0[] = {
- -0.16667, 0.16667,
-};
-
-static long _vq_quantmap__44c0_s1_pS_r0[] = {
- 1, 0, 2,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c0_s1_pS_r0 = {
- _vq_quantthresh__44c0_s1_pS_r0,
- _vq_quantmap__44c0_s1_pS_r0,
- 3,
- 3
-};
-
-static static_codebook _44c0_s1_pS_r0 = {
- 2, 9,
- _vq_lengthlist__44c0_s1_pS_r0,
- 1, -539667115, 1607816533, 2, 0,
- _vq_quantlist__44c0_s1_pS_r0,
- NULL,
- &_vq_auxt__44c0_s1_pS_r0,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c0_s1_pS_r1.vqh b/lib/books/coupled/_44c0_s1_pS_r1.vqh
deleted file mode 100644
index 0f7ab193..00000000
--- a/lib/books/coupled/_44c0_s1_pS_r1.vqh
+++ /dev/null
@@ -1,58 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c0_s1_pS_r1_VQH_
-#define _V__44c0_s1_pS_r1_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c0_s1_pS_r1[] = {
- 1,
- 0,
- 2,
-};
-
-static long _vq_lengthlist__44c0_s1_pS_r1[] = {
- 1, 3, 2, 6, 6, 6, 6, 5, 5,
-};
-
-static float _vq_quantthresh__44c0_s1_pS_r1[] = {
- -0.055556, 0.055556,
-};
-
-static long _vq_quantmap__44c0_s1_pS_r1[] = {
- 1, 0, 2,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c0_s1_pS_r1 = {
- _vq_quantthresh__44c0_s1_pS_r1,
- _vq_quantmap__44c0_s1_pS_r1,
- 3,
- 3
-};
-
-static static_codebook _44c0_s1_pS_r1 = {
- 2, 9,
- _vq_lengthlist__44c0_s1_pS_r1,
- 1, -543395385, 1604088263, 2, 0,
- _vq_quantlist__44c0_s1_pS_r1,
- NULL,
- &_vq_auxt__44c0_s1_pS_r1,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c0_s2_p6_0.vqh b/lib/books/coupled/_44c0_s2_p6_0.vqh
deleted file mode 100644
index 53bcfe52..00000000
--- a/lib/books/coupled/_44c0_s2_p6_0.vqh
+++ /dev/null
@@ -1,70 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c0_s2_p6_0_VQH_
-#define _V__44c0_s2_p6_0_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c0_s2_p6_0[] = {
- 4,
- 3,
- 5,
- 2,
- 6,
- 1,
- 7,
- 0,
- 8,
-};
-
-static long _vq_lengthlist__44c0_s2_p6_0[] = {
- 1, 3, 2, 4, 5, 6, 7, 8, 8, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,
-};
-
-static float _vq_quantthresh__44c0_s2_p6_0[] = {
- -3.5, -2.5, -1.5, -0.5, 0.5, 1.5, 2.5, 3.5,
-};
-
-static long _vq_quantmap__44c0_s2_p6_0[] = {
- 7, 5, 3, 1, 0, 2, 4, 6,
- 8,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c0_s2_p6_0 = {
- _vq_quantthresh__44c0_s2_p6_0,
- _vq_quantmap__44c0_s2_p6_0,
- 9,
- 9
-};
-
-static static_codebook _44c0_s2_p6_0 = {
- 2, 81,
- _vq_lengthlist__44c0_s2_p6_0,
- 1, -531628032, 1611661312, 4, 0,
- _vq_quantlist__44c0_s2_p6_0,
- NULL,
- &_vq_auxt__44c0_s2_p6_0,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c0_s2_p6_s0.vqh b/lib/books/coupled/_44c0_s2_p6_s0.vqh
deleted file mode 100644
index af3b1a96..00000000
--- a/lib/books/coupled/_44c0_s2_p6_s0.vqh
+++ /dev/null
@@ -1,93 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c0_s2_p6_s0_VQH_
-#define _V__44c0_s2_p6_s0_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c0_s2_p6_s0[] = {
- 8,
- 7,
- 9,
- 6,
- 10,
- 5,
- 11,
- 4,
- 12,
- 3,
- 13,
- 2,
- 14,
- 1,
- 15,
- 0,
- 16,
-};
-
-static long _vq_lengthlist__44c0_s2_p6_s0[] = {
- 1,19,19,18,18,18,18,18,18,18,18,18,18,18,18,18,
- 18, 5, 5, 5,18,18,18,18,18,18,18,18,18,18,18,18,
- 18,18, 5, 5, 5,18,18,18,18,18,18,18,18,18,18,18,
- 18,18,18, 7, 5, 5, 9, 9,18,18,18,18,18,18,18,18,
- 18,18,18,18, 7, 5, 5, 9, 9,18,18,18,18,18,18,18,
- 18,18,18,18,18, 8, 6, 6, 8, 9,12,13,18,18,18,18,
- 18,18,18,18,18,18, 8, 6, 6, 9, 9,12,13,18,18,18,
- 18,18,18,18,18,18,18, 8, 7, 7,10,10,13,13,17,17,
- 18,18,18,18,18,18,18,18, 8, 7, 7,10, 9,13,13,16,
- 16,18,18,18,18,18,18,18,18, 8, 8, 8,11,11,14,14,
- 18,18,18,18,18,18,18,18,18,18, 8, 8, 8,11,11,15,
- 14,18,18,18,18,18,18,18,18,18,18, 9,10,10,13,14,
- 18,18,18,18,18,18,10,10,18,18,18,18,12,10,10,13,
- 13,18,18,18,18,18,18,18,18,18,18,18,18,11,11,11,
- 18,18,18,18,18,18,18,18,18,18,18,18,18,18,11,11,
- 11,18,18,18,18,18,18,18,18,18,18,18,18,18,18,11,
- 18,18,18,18,18,18,18,18,18,18,18,18,18,18,12,12,
- 18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,
- 18,
-};
-
-static float _vq_quantthresh__44c0_s2_p6_s0[] = {
- -7.5, -6.5, -5.5, -4.5, -3.5, -2.5, -1.5, -0.5,
- 0.5, 1.5, 2.5, 3.5, 4.5, 5.5, 6.5, 7.5,
-};
-
-static long _vq_quantmap__44c0_s2_p6_s0[] = {
- 15, 13, 11, 9, 7, 5, 3, 1,
- 0, 2, 4, 6, 8, 10, 12, 14,
- 16,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c0_s2_p6_s0 = {
- _vq_quantthresh__44c0_s2_p6_s0,
- _vq_quantmap__44c0_s2_p6_s0,
- 17,
- 17
-};
-
-static static_codebook _44c0_s2_p6_s0 = {
- 2, 289,
- _vq_lengthlist__44c0_s2_p6_s0,
- 1, -529530880, 1611661312, 5, 0,
- _vq_quantlist__44c0_s2_p6_s0,
- NULL,
- &_vq_auxt__44c0_s2_p6_s0,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c0_s2_p7_0.vqh b/lib/books/coupled/_44c0_s2_p7_0.vqh
deleted file mode 100644
index 853f55ea..00000000
--- a/lib/books/coupled/_44c0_s2_p7_0.vqh
+++ /dev/null
@@ -1,65 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c0_s2_p7_0_VQH_
-#define _V__44c0_s2_p7_0_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c0_s2_p7_0[] = {
- 3,
- 2,
- 4,
- 1,
- 5,
- 0,
- 6,
-};
-
-static long _vq_lengthlist__44c0_s2_p7_0[] = {
- 1, 3, 3,11,11,11,11, 3, 6, 7,11,11,11,11, 4, 8,
- 7,11,11,11,11,11,11, 9,10,11,11,11,11,11,11,11,
- 11,11,11,11,11,10,10,10,10,10,10,10,10,10,10,10,
- 10,
-};
-
-static float _vq_quantthresh__44c0_s2_p7_0[] = {
- -167.5, -100.5, -33.5, 33.5, 100.5, 167.5,
-};
-
-static long _vq_quantmap__44c0_s2_p7_0[] = {
- 5, 3, 1, 0, 2, 4, 6,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c0_s2_p7_0 = {
- _vq_quantthresh__44c0_s2_p7_0,
- _vq_quantmap__44c0_s2_p7_0,
- 7,
- 7
-};
-
-static static_codebook _44c0_s2_p7_0 = {
- 2, 49,
- _vq_lengthlist__44c0_s2_p7_0,
- 1, -520544256, 1624293376, 3, 0,
- _vq_quantlist__44c0_s2_p7_0,
- NULL,
- &_vq_auxt__44c0_s2_p7_0,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c0_s2_p7_1.vqh b/lib/books/coupled/_44c0_s2_p7_1.vqh
deleted file mode 100644
index e3bf6a1b..00000000
--- a/lib/books/coupled/_44c0_s2_p7_1.vqh
+++ /dev/null
@@ -1,115 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c0_s2_p7_1_VQH_
-#define _V__44c0_s2_p7_1_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c0_s2_p7_1[] = {
- 11,
- 10,
- 12,
- 9,
- 13,
- 8,
- 14,
- 7,
- 15,
- 6,
- 16,
- 5,
- 17,
- 4,
- 18,
- 3,
- 19,
- 2,
- 20,
- 1,
- 21,
- 0,
- 22,
-};
-
-static long _vq_lengthlist__44c0_s2_p7_1[] = {
- 1, 4, 4, 6, 6, 8, 8, 9, 9,10, 9,11,10,11,11,12,
- 11, 9, 9, 9,10,10,10, 6, 5, 6, 7, 7, 9, 9,10,10,
- 12,11,12,12,12,12,12,12,10,11,10,11,10,11,15, 6,
- 5, 7, 7, 9, 9,11,10,11,11,12,11,12,11,12,12,10,
- 10,10, 9,10, 9,15, 7, 8, 8, 8,10,10,11,12,15,13,
- 13,13,15,13,13,14,11,11,11,11,12,11,13, 8, 7, 8,
- 8,11,10,11,12,12,12,12,12,13,13,14,14,11,11,10,
- 12,10,10,14,12,11, 8, 8,10, 9,12,11,12,13,13,14,
- 13,14,14,14,11,11,11,11,10,13,14,14,14, 8, 9, 9,
- 10,12,12,12,13,13,14,14,13,14,13,12,11,10,12,12,
- 12,14,14,14,10, 9,11,10,11,10,12,14,14,14,14,14,
- 13,14,11,12,12,11,14,12,14,13,14,10,10,10,11,12,
- 12,13,12,14,14,13,14,14,13,11,11,11,12,13,12,14,
- 14,14,13,13,11,10,12,12,12,13,14,13,14,13,14,14,
- 11,11,11,12,12,12,14,14,14,14,13,11,12,12,12,12,
- 13,14,13,14,13,14,13,10,12,10,11,13,13,14,14,14,
- 14,14,13,13,13,12,12,13,13,13,14,14,13,14,12,11,
- 10,10,12,12,14,14,14,14,14,14,13,12,12,14,13,13,
- 14,14,13,14,14,10,11,11,11,12,14,14,14,14,14,14,
- 14,13,13,14,13,13,13,13,14,13,14,13,13,11,11,10,
- 11,12,14,14,14,14,14,14,14,13,14,12,13,14,14,14,
- 14,14,14,11,13,12,12,12,12,14,14,14,14,14,14,14,
- 13,13,14,14,13,13,14,14,14,13,12,11,14,10,13,12,
- 14,14,14,14,14,14,14,14,14,14,14,14,14,14,13,14,
- 13,12,12,11,13,11,12,14,14,13,14,14,14,14,14,14,
- 14,14,14,13,14,14,14,14,12,10,13,10,12,13,14,14,
- 14,14,14,14,14,14,14,13,14,14,14,13,14,14,13,12,
- 12,11,12,12,12,14,14,14,13,14,13,14,14,14,14,14,
- 14,14,14,14,13,14,12,12,12,13,13,11,14,14,14,14,
- 14,14,14,14,14,14,14,14,13,14,13,14,13,12,11,12,
- 12,14,13,14,14,14,14,14,14,14,14,14,13,14,14,14,
- 13,14,13,13,13,13,13,13,13,14,14,14,14,14,13,14,
- 14,14,14,13,14,14,13,13,14,14,14,12,13,12,12,14,
- 14,
-};
-
-static float _vq_quantthresh__44c0_s2_p7_1[] = {
- -31.5, -28.5, -25.5, -22.5, -19.5, -16.5, -13.5, -10.5,
- -7.5, -4.5, -1.5, 1.5, 4.5, 7.5, 10.5, 13.5,
- 16.5, 19.5, 22.5, 25.5, 28.5, 31.5,
-};
-
-static long _vq_quantmap__44c0_s2_p7_1[] = {
- 21, 19, 17, 15, 13, 11, 9, 7,
- 5, 3, 1, 0, 2, 4, 6, 8,
- 10, 12, 14, 16, 18, 20, 22,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c0_s2_p7_1 = {
- _vq_quantthresh__44c0_s2_p7_1,
- _vq_quantmap__44c0_s2_p7_1,
- 23,
- 23
-};
-
-static static_codebook _44c0_s2_p7_1 = {
- 2, 529,
- _vq_lengthlist__44c0_s2_p7_1,
- 1, -525303808, 1614282752, 5, 0,
- _vq_quantlist__44c0_s2_p7_1,
- NULL,
- &_vq_auxt__44c0_s2_p7_1,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c0_s2_p7_2.vqh b/lib/books/coupled/_44c0_s2_p7_2.vqh
deleted file mode 100644
index 8e2c4baf..00000000
--- a/lib/books/coupled/_44c0_s2_p7_2.vqh
+++ /dev/null
@@ -1,63 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c0_s2_p7_2_VQH_
-#define _V__44c0_s2_p7_2_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c0_s2_p7_2[] = {
- 1,
- 0,
- 2,
-};
-
-static long _vq_lengthlist__44c0_s2_p7_2[] = {
- 2, 5, 4, 7, 6, 7, 7, 6, 7, 5, 5, 5, 7, 7, 7, 7,
- 7, 7, 5, 5, 5, 7, 7, 7, 7, 7, 7, 7, 8, 8, 8, 8,
- 8, 8, 8, 8, 7, 7, 7, 8, 8, 7, 8, 7, 8, 7, 7, 7,
- 8, 8, 8, 8, 7, 8, 7, 7, 8, 8, 8, 8, 8, 8, 8, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 8, 8, 7, 8, 8,
- 7,
-};
-
-static float _vq_quantthresh__44c0_s2_p7_2[] = {
- -0.5, 0.5,
-};
-
-static long _vq_quantmap__44c0_s2_p7_2[] = {
- 1, 0, 2,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c0_s2_p7_2 = {
- _vq_quantthresh__44c0_s2_p7_2,
- _vq_quantmap__44c0_s2_p7_2,
- 3,
- 3
-};
-
-static static_codebook _44c0_s2_p7_2 = {
- 4, 81,
- _vq_lengthlist__44c0_s2_p7_2,
- 1, -535822336, 1611661312, 2, 0,
- _vq_quantlist__44c0_s2_p7_2,
- NULL,
- &_vq_auxt__44c0_s2_p7_2,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c0_s2_p7_s0.vqh b/lib/books/coupled/_44c0_s2_p7_s0.vqh
deleted file mode 100644
index 10cdd19f..00000000
--- a/lib/books/coupled/_44c0_s2_p7_s0.vqh
+++ /dev/null
@@ -1,93 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c0_s2_p7_s0_VQH_
-#define _V__44c0_s2_p7_s0_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c0_s2_p7_s0[] = {
- 8,
- 7,
- 9,
- 6,
- 10,
- 5,
- 11,
- 4,
- 12,
- 3,
- 13,
- 2,
- 14,
- 1,
- 15,
- 0,
- 16,
-};
-
-static long _vq_lengthlist__44c0_s2_p7_s0[] = {
- 1,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,
- 15, 5, 6, 6,15,15,15,15,15,15,15,15,15,15,15,15,
- 15,15, 5, 6, 6,15,15,15,15,15,15,15,15,15,15,15,
- 15,15,15, 7, 5, 5,10,10,15,15,15,15,15,15,15,15,
- 15,15,15,15, 7, 5, 6,10,10,15,15,15,15,15,15,15,
- 15,15,15,15,15, 8, 6, 6, 8, 9,13,12,15,15,15,15,
- 15,15,15,15,15,15, 8, 6, 6, 8, 8,12,11,15,15,15,
- 15,15,15,15,15,15,15, 8, 6, 7, 9, 9,12,12,15,15,
- 15,15,15,15,15,15,15,15, 8, 6, 6,10, 9,11,12,15,
- 15,15,15,15,15,15,15,15,15, 7, 7, 7,10,10,14,12,
- 15,15,15,15,15,15,15,15,15,15, 7, 7, 7,10,10,12,
- 14,15,15,15,15,15,15,15,15,15,15, 7, 9, 9,12,12,
- 15,15,15,15,15,15,10, 9,15,15,15,15,10, 9, 9,12,
- 11,15,15,15,15,15,15,15,15,15,15,15,15, 9,10,10,
- 15,15,15,15,15,15,15,15,15,15,15,15,15,15, 9,10,
- 10,15,15,15,15,15,15,15,15,15,15,15,15,15,15, 9,
- 15,15,15,15,15,15,15,15,15,15,15,15,15,15,10,10,
- 15,15,15,15,15,15,15,15,15,15,14,14,14,14,14,14,
- 14,
-};
-
-static float _vq_quantthresh__44c0_s2_p7_s0[] = {
- -7.5, -6.5, -5.5, -4.5, -3.5, -2.5, -1.5, -0.5,
- 0.5, 1.5, 2.5, 3.5, 4.5, 5.5, 6.5, 7.5,
-};
-
-static long _vq_quantmap__44c0_s2_p7_s0[] = {
- 15, 13, 11, 9, 7, 5, 3, 1,
- 0, 2, 4, 6, 8, 10, 12, 14,
- 16,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c0_s2_p7_s0 = {
- _vq_quantthresh__44c0_s2_p7_s0,
- _vq_quantmap__44c0_s2_p7_s0,
- 17,
- 17
-};
-
-static static_codebook _44c0_s2_p7_s0 = {
- 2, 289,
- _vq_lengthlist__44c0_s2_p7_s0,
- 1, -529530880, 1611661312, 5, 0,
- _vq_quantlist__44c0_s2_p7_s0,
- NULL,
- &_vq_auxt__44c0_s2_p7_s0,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c0_s3_p7_0.vqh b/lib/books/coupled/_44c0_s3_p7_0.vqh
deleted file mode 100644
index 9af64fe6..00000000
--- a/lib/books/coupled/_44c0_s3_p7_0.vqh
+++ /dev/null
@@ -1,65 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c0_s3_p7_0_VQH_
-#define _V__44c0_s3_p7_0_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c0_s3_p7_0[] = {
- 3,
- 2,
- 4,
- 1,
- 5,
- 0,
- 6,
-};
-
-static long _vq_lengthlist__44c0_s3_p7_0[] = {
- 1, 3, 3,11,11,11,11, 3, 6, 7,11,11,11,11, 4, 8,
- 7,11,11,11,11,11,11, 9,10,11,11,11,11,11,11,11,
- 11,11,11,11,11,10,10,10,10,10,10,10,10,10,10,10,
- 10,
-};
-
-static float _vq_quantthresh__44c0_s3_p7_0[] = {
- -167.5, -100.5, -33.5, 33.5, 100.5, 167.5,
-};
-
-static long _vq_quantmap__44c0_s3_p7_0[] = {
- 5, 3, 1, 0, 2, 4, 6,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c0_s3_p7_0 = {
- _vq_quantthresh__44c0_s3_p7_0,
- _vq_quantmap__44c0_s3_p7_0,
- 7,
- 7
-};
-
-static static_codebook _44c0_s3_p7_0 = {
- 2, 49,
- _vq_lengthlist__44c0_s3_p7_0,
- 1, -520544256, 1624293376, 3, 0,
- _vq_quantlist__44c0_s3_p7_0,
- NULL,
- &_vq_auxt__44c0_s3_p7_0,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c0_s3_p7_1.vqh b/lib/books/coupled/_44c0_s3_p7_1.vqh
deleted file mode 100644
index 63e8acd2..00000000
--- a/lib/books/coupled/_44c0_s3_p7_1.vqh
+++ /dev/null
@@ -1,115 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c0_s3_p7_1_VQH_
-#define _V__44c0_s3_p7_1_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c0_s3_p7_1[] = {
- 11,
- 10,
- 12,
- 9,
- 13,
- 8,
- 14,
- 7,
- 15,
- 6,
- 16,
- 5,
- 17,
- 4,
- 18,
- 3,
- 19,
- 2,
- 20,
- 1,
- 21,
- 0,
- 22,
-};
-
-static long _vq_lengthlist__44c0_s3_p7_1[] = {
- 1, 4, 4, 5, 5, 8, 8, 9, 9,10, 9,11,11,12,11,12,
- 11, 9, 9, 9,10,11,10, 6, 5, 6, 8, 8, 9, 9,10,10,
- 12,11,12,12,12,12,12,12,10,11,10,11,10,11,15, 6,
- 5, 8, 8, 9, 9,11,10,11,11,12,11,12,11,12,12,10,
- 10,10,10,10, 9,15, 7, 8, 8, 8,10,10,11,12,14,13,
- 13,13,14,13,13,14,11,11,11,11,12,11,13, 8, 8, 8,
- 8,11,10,11,12,12,12,12,12,13,13,14,14,11,11,10,
- 12,10,10,14,12,11, 9, 9,10,10,12,11,12,13,13,14,
- 13,14,14,14,11,11,11,11,10,13,14,14,14, 9, 9, 9,
- 10,12,12,12,13,13,14,14,13,14,13,12,11,10,12,12,
- 12,14,14,14,11, 9,11,10,11,10,12,14,14,14,14,14,
- 13,14,11,12,12,11,14,12,14,13,14,10,11,10,11,12,
- 12,13,12,14,14,13,14,14,13,11,11,11,12,13,12,14,
- 14,14,14,13,12,10,12,12,12,13,14,13,14,13,14,14,
- 11,11,11,12,12,12,14,14,14,14,13,11,12,12,12,12,
- 13,14,13,14,13,14,13,10,12,10,11,13,13,14,14,14,
- 14,14,13,13,13,12,12,13,13,13,14,14,13,14,12,11,
- 10,10,12,12,14,14,14,14,14,14,13,12,12,14,13,13,
- 14,14,13,14,14,10,11,11,11,12,14,14,14,14,14,14,
- 14,13,13,14,13,13,13,13,14,13,14,13,13,11,11,10,
- 11,12,14,14,14,14,14,14,14,13,14,12,13,14,14,14,
- 14,14,14,11,13,12,12,12,12,14,14,14,14,14,14,14,
- 13,13,14,14,13,13,14,14,14,13,12,11,14,11,13,12,
- 14,14,14,14,14,14,14,14,14,14,14,14,14,14,13,14,
- 13,12,12,11,13,12,12,14,14,13,14,14,14,14,14,14,
- 14,14,14,13,14,14,14,14,12,10,13,10,12,13,14,14,
- 14,14,14,14,14,14,14,13,14,14,14,13,14,14,13,12,
- 12,12,12,12,12,14,14,14,13,14,13,14,14,14,14,14,
- 14,14,14,14,13,14,12,12,12,13,13,12,14,14,14,14,
- 14,14,14,14,14,14,14,14,13,14,13,14,13,12,12,12,
- 12,14,13,14,14,14,14,14,14,14,14,14,13,14,14,14,
- 13,14,13,13,13,13,13,13,13,14,14,14,14,14,13,14,
- 14,14,14,13,14,14,13,13,14,14,14,12,13,12,12,14,
- 14,
-};
-
-static float _vq_quantthresh__44c0_s3_p7_1[] = {
- -31.5, -28.5, -25.5, -22.5, -19.5, -16.5, -13.5, -10.5,
- -7.5, -4.5, -1.5, 1.5, 4.5, 7.5, 10.5, 13.5,
- 16.5, 19.5, 22.5, 25.5, 28.5, 31.5,
-};
-
-static long _vq_quantmap__44c0_s3_p7_1[] = {
- 21, 19, 17, 15, 13, 11, 9, 7,
- 5, 3, 1, 0, 2, 4, 6, 8,
- 10, 12, 14, 16, 18, 20, 22,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c0_s3_p7_1 = {
- _vq_quantthresh__44c0_s3_p7_1,
- _vq_quantmap__44c0_s3_p7_1,
- 23,
- 23
-};
-
-static static_codebook _44c0_s3_p7_1 = {
- 2, 529,
- _vq_lengthlist__44c0_s3_p7_1,
- 1, -525303808, 1614282752, 5, 0,
- _vq_quantlist__44c0_s3_p7_1,
- NULL,
- &_vq_auxt__44c0_s3_p7_1,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c0_s3_p7_2.vqh b/lib/books/coupled/_44c0_s3_p7_2.vqh
deleted file mode 100644
index 728e229b..00000000
--- a/lib/books/coupled/_44c0_s3_p7_2.vqh
+++ /dev/null
@@ -1,63 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c0_s3_p7_2_VQH_
-#define _V__44c0_s3_p7_2_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c0_s3_p7_2[] = {
- 1,
- 0,
- 2,
-};
-
-static long _vq_lengthlist__44c0_s3_p7_2[] = {
- 2, 4, 4, 7, 6, 7, 8, 7, 7, 5, 5, 5, 8, 7, 7, 7,
- 7, 7, 4, 5, 5, 7, 8, 7, 8, 7, 7, 8, 8, 8, 8, 8,
- 8, 8, 8, 8, 7, 7, 8, 8, 8, 8, 8, 7, 8, 7, 7, 8,
- 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 7,
- 7, 7, 7, 8, 7, 7, 7, 8, 7, 7, 7, 8, 8, 8, 8, 8,
- 7,
-};
-
-static float _vq_quantthresh__44c0_s3_p7_2[] = {
- -0.5, 0.5,
-};
-
-static long _vq_quantmap__44c0_s3_p7_2[] = {
- 1, 0, 2,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c0_s3_p7_2 = {
- _vq_quantthresh__44c0_s3_p7_2,
- _vq_quantmap__44c0_s3_p7_2,
- 3,
- 3
-};
-
-static static_codebook _44c0_s3_p7_2 = {
- 4, 81,
- _vq_lengthlist__44c0_s3_p7_2,
- 1, -535822336, 1611661312, 2, 0,
- _vq_quantlist__44c0_s3_p7_2,
- NULL,
- &_vq_auxt__44c0_s3_p7_2,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c0_s3_p7_s0.vqh b/lib/books/coupled/_44c0_s3_p7_s0.vqh
deleted file mode 100644
index b3e871e0..00000000
--- a/lib/books/coupled/_44c0_s3_p7_s0.vqh
+++ /dev/null
@@ -1,163 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c0_s3_p7_s0_VQH_
-#define _V__44c0_s3_p7_s0_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c0_s3_p7_s0[] = {
- 16,
- 15,
- 17,
- 14,
- 18,
- 13,
- 19,
- 12,
- 20,
- 11,
- 21,
- 10,
- 22,
- 9,
- 23,
- 8,
- 24,
- 7,
- 25,
- 6,
- 26,
- 5,
- 27,
- 4,
- 28,
- 3,
- 29,
- 2,
- 30,
- 1,
- 31,
- 0,
- 32,
-};
-
-static long _vq_lengthlist__44c0_s3_p7_s0[] = {
- 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 5, 6, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 5, 6, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 8, 6, 5,10,10, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 8, 5, 6,10, 9, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 9, 7, 7, 7, 7,12,12, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 9, 7, 7, 8, 7,12,12, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 9, 8, 8, 8, 7,10, 9,13,14,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 9, 8, 8, 8, 7,10,10,13,
- 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0,10, 8, 8, 8, 8,10,10,
- 12,11,15,15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,10, 8, 8, 8, 8,10,
- 10,11,11,14,15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,10, 9, 9, 8, 8,
- 10,10,12,11,14,15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,11, 8, 8, 8,
- 9,10,11,12,12,14,15, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,11, 9, 8,
- 9, 9,11,10,12,13, 0,13,15, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,11, 9,
- 8, 9, 9,11,11,12,12,15, 0,15, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,10,
- 9, 8,10, 9,12,11,14,13, 0,15, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 10, 8, 8,10, 9,12,11,13,14,14,15, 0,15, 0,15, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 9, 9, 9,10,10,12,12,14,13, 0,15, 0, 0, 0,15,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 9, 9, 9,11,11,12,12,13,14,15,15, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,10,10,10,11,11,13,12,15,14,15,15,15, 0,
- 0, 0, 0, 0, 0, 0,10,11, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,12,10,10,11,11,13,13,13, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,11,10,10,12,12, 0,15, 0, 0,15, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,10,10,11,13,12,13, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,11,11,11,12,14,14,15, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,13,12,
- 0, 0, 0, 0, 0, 0, 0, 0,13,12,12,13,12, 0,15, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0,12,11,12,13,13,15, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,12,13,12,14,15, 0,
- 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,12,12,13,15, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,14,14, 0, 0, 0, 0,14,13,13,15,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,15,14, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,13,15,
- 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,13,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,14, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,
-};
-
-static float _vq_quantthresh__44c0_s3_p7_s0[] = {
- -15.5, -14.5, -13.5, -12.5, -11.5, -10.5, -9.5, -8.5,
- -7.5, -6.5, -5.5, -4.5, -3.5, -2.5, -1.5, -0.5,
- 0.5, 1.5, 2.5, 3.5, 4.5, 5.5, 6.5, 7.5,
- 8.5, 9.5, 10.5, 11.5, 12.5, 13.5, 14.5, 15.5,
-};
-
-static long _vq_quantmap__44c0_s3_p7_s0[] = {
- 31, 29, 27, 25, 23, 21, 19, 17,
- 15, 13, 11, 9, 7, 5, 3, 1,
- 0, 2, 4, 6, 8, 10, 12, 14,
- 16, 18, 20, 22, 24, 26, 28, 30,
- 32,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c0_s3_p7_s0 = {
- _vq_quantthresh__44c0_s3_p7_s0,
- _vq_quantmap__44c0_s3_p7_s0,
- 33,
- 33
-};
-
-static static_codebook _44c0_s3_p7_s0 = {
- 2, 1089,
- _vq_lengthlist__44c0_s3_p7_s0,
- 1, -527433728, 1611661312, 6, 0,
- _vq_quantlist__44c0_s3_p7_s0,
- NULL,
- &_vq_auxt__44c0_s3_p7_s0,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c0_s4_p7_0.vqh b/lib/books/coupled/_44c0_s4_p7_0.vqh
deleted file mode 100644
index ac6a105d..00000000
--- a/lib/books/coupled/_44c0_s4_p7_0.vqh
+++ /dev/null
@@ -1,65 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c0_s4_p7_0_VQH_
-#define _V__44c0_s4_p7_0_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c0_s4_p7_0[] = {
- 3,
- 2,
- 4,
- 1,
- 5,
- 0,
- 6,
-};
-
-static long _vq_lengthlist__44c0_s4_p7_0[] = {
- 1, 3, 3,11,11,11,11, 3, 5,10,11,11,11,11, 4, 8,
- 8,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,
- 11,11,11,11,11,11,11,11,11,11,11,10,10,10,10,10,
- 10,
-};
-
-static float _vq_quantthresh__44c0_s4_p7_0[] = {
- -167.5, -100.5, -33.5, 33.5, 100.5, 167.5,
-};
-
-static long _vq_quantmap__44c0_s4_p7_0[] = {
- 5, 3, 1, 0, 2, 4, 6,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c0_s4_p7_0 = {
- _vq_quantthresh__44c0_s4_p7_0,
- _vq_quantmap__44c0_s4_p7_0,
- 7,
- 7
-};
-
-static static_codebook _44c0_s4_p7_0 = {
- 2, 49,
- _vq_lengthlist__44c0_s4_p7_0,
- 1, -520544256, 1624293376, 3, 0,
- _vq_quantlist__44c0_s4_p7_0,
- NULL,
- &_vq_auxt__44c0_s4_p7_0,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c0_s4_p7_1.vqh b/lib/books/coupled/_44c0_s4_p7_1.vqh
deleted file mode 100644
index dd762c55..00000000
--- a/lib/books/coupled/_44c0_s4_p7_1.vqh
+++ /dev/null
@@ -1,115 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c0_s4_p7_1_VQH_
-#define _V__44c0_s4_p7_1_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c0_s4_p7_1[] = {
- 11,
- 10,
- 12,
- 9,
- 13,
- 8,
- 14,
- 7,
- 15,
- 6,
- 16,
- 5,
- 17,
- 4,
- 18,
- 3,
- 19,
- 2,
- 20,
- 1,
- 21,
- 0,
- 22,
-};
-
-static long _vq_lengthlist__44c0_s4_p7_1[] = {
- 1, 4, 4, 5, 5, 7, 7, 8, 8, 9, 8,10, 9,11,11,10,
- 11, 9, 9, 9, 9, 9,10, 6, 6, 6, 8, 8, 9, 9,10,10,
- 11,11,12,11,12,12,12,11,11, 9,10,10,11,10,14, 6,
- 5, 8, 8, 9, 9,10,10,10,11,11,11,12,11,11,11,10,
- 10, 9, 9,10,10,15, 8, 8, 9, 8,10,10,10,11,11,11,
- 11,11,12,12,13,13,11,11,10,11,12,12,15,10, 8, 9,
- 8,10,10,11,11,10,11,11,11,12,12,12,12,10,11,10,
- 10,10,11,15,11,12,10, 9, 9,10,10,11,12,11,12,12,
- 14,14,15,15,11,11,11,10,12,11,14,15,15,10, 8,10,
- 10,11,11,11,12,12,12,13,12,13,13,11,11,10,11,11,
- 11,15,15,15,12,10,10,10,11,11,12,12,12,14,14,15,
- 13,13,11,11,11,10,12,12,14,15,14,11,12,11,11,11,
- 12,12,11,13,12,12,13,14,15,11,10,10,11,11,11,15,
- 15,15,13,13,11,10,11,11,11,12,14,15,14,14,13,13,
- 11,11,12,11,13,13,14,15,15,15,15,12,13,12,12,12,
- 12,13,13,14,13,14,13,11,12,11,10,11,11,15,15,15,
- 15,15,13,13,13,14,13,13,15,14,15,15,13,14,12,12,
- 13,12,12,13,15,15,15,15,15,13,13,15,13,13,14,14,
- 13,15,13,15,13,12,13,12,11,12,11,15,15,15,15,15,
- 14,13,15,14,15,13,13,15,13,14,15,15,13,12,12,12,
- 13,12,15,15,15,15,15,15,15,13,14,15,13,14,13,14,
- 13,13,14,11,12,11,12,11,12,15,15,15,15,15,15,15,
- 14,15,13,14,13,12,14,15,15,13,13,14,13,12,13,13,
- 15,15,15,15,15,15,15,15,14,13,13,14,13,13,13,14,
- 14,11,13, 9,12,14,13,15,15,15,15,15,15,15,15,15,
- 14,15,15,13,15,14,15,15,13,13,11,13,13,15,15,15,
- 15,15,15,15,15,15,15,14,15,13,15,13,14,13,15, 9,
- 13,12,13,14,13,15,15,15,15,15,15,15,15,15,15,15,
- 15,15,15,15,15,15,13,13,13,13,15,13,15,15,15,15,
- 15,15,15,15,15,15,15,14,14,13,14,15,15,12,13,14,
- 13,14,14,15,15,15,15,15,15,15,15,15,15,15,15,15,
- 14,15,15,14,13,12,13,13,15,14,15,15,15,15,15,15,
- 15,15,15,15,15,15,14,15,14,15,14,13,13,14,14,15,
- 13,
-};
-
-static float _vq_quantthresh__44c0_s4_p7_1[] = {
- -31.5, -28.5, -25.5, -22.5, -19.5, -16.5, -13.5, -10.5,
- -7.5, -4.5, -1.5, 1.5, 4.5, 7.5, 10.5, 13.5,
- 16.5, 19.5, 22.5, 25.5, 28.5, 31.5,
-};
-
-static long _vq_quantmap__44c0_s4_p7_1[] = {
- 21, 19, 17, 15, 13, 11, 9, 7,
- 5, 3, 1, 0, 2, 4, 6, 8,
- 10, 12, 14, 16, 18, 20, 22,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c0_s4_p7_1 = {
- _vq_quantthresh__44c0_s4_p7_1,
- _vq_quantmap__44c0_s4_p7_1,
- 23,
- 23
-};
-
-static static_codebook _44c0_s4_p7_1 = {
- 2, 529,
- _vq_lengthlist__44c0_s4_p7_1,
- 1, -525303808, 1614282752, 5, 0,
- _vq_quantlist__44c0_s4_p7_1,
- NULL,
- &_vq_auxt__44c0_s4_p7_1,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c0_s4_p7_2.vqh b/lib/books/coupled/_44c0_s4_p7_2.vqh
deleted file mode 100644
index 5aaff8db..00000000
--- a/lib/books/coupled/_44c0_s4_p7_2.vqh
+++ /dev/null
@@ -1,63 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c0_s4_p7_2_VQH_
-#define _V__44c0_s4_p7_2_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c0_s4_p7_2[] = {
- 1,
- 0,
- 2,
-};
-
-static long _vq_lengthlist__44c0_s4_p7_2[] = {
- 1, 5, 5, 8, 6, 7, 8, 7, 7, 5, 5, 6, 8, 8, 8, 8,
- 8, 8, 5, 5, 6, 8, 8, 8, 8, 8, 8, 8, 8, 9, 9, 9,
- 9, 9, 9, 9, 7, 8, 8, 9, 8, 8, 9, 8, 8, 7, 8, 8,
- 8, 8, 8, 9, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 7,
- 8, 8, 9, 8, 8, 8, 8, 8, 7, 8, 8, 9, 8, 8, 9, 8,
- 8,
-};
-
-static float _vq_quantthresh__44c0_s4_p7_2[] = {
- -0.5, 0.5,
-};
-
-static long _vq_quantmap__44c0_s4_p7_2[] = {
- 1, 0, 2,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c0_s4_p7_2 = {
- _vq_quantthresh__44c0_s4_p7_2,
- _vq_quantmap__44c0_s4_p7_2,
- 3,
- 3
-};
-
-static static_codebook _44c0_s4_p7_2 = {
- 4, 81,
- _vq_lengthlist__44c0_s4_p7_2,
- 1, -535822336, 1611661312, 2, 0,
- _vq_quantlist__44c0_s4_p7_2,
- NULL,
- &_vq_auxt__44c0_s4_p7_2,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c0_short.vqh b/lib/books/coupled/_44c0_short.vqh
deleted file mode 100644
index 9c179bf3..00000000
--- a/lib/books/coupled/_44c0_short.vqh
+++ /dev/null
@@ -1,40 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by huff/huffbuld
-
- ********************************************************************/
-
-#ifndef _V__44c0_short_VQH_
-#define _V__44c0_short_VQH_
-#include "codebook.h"
-
-static long _huff_lengthlist__44c0_short[] = {
- 6,16,16,16,16, 5, 8,12,12,15,14,15,15, 5, 4, 9,
- 10,14,15,15,15, 4, 5,10, 8,15,15,15,15, 6, 6,10,
- 9, 5, 4, 4, 5, 8, 9,11, 5,15,15,15,15, 2, 4,11,
- 7,15,15,15,15, 3, 5,10,12, 9, 8, 8, 9, 9,10,11,
-};
-
-static static_codebook _huff_book__44c0_short = {
- 2, 64,
- _huff_lengthlist__44c0_short,
- 0, 0, 0, 0, 0,
- NULL,
- NULL,
- NULL,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c1_long.vqh b/lib/books/coupled/_44c1_long.vqh
deleted file mode 100644
index 120ff57a..00000000
--- a/lib/books/coupled/_44c1_long.vqh
+++ /dev/null
@@ -1,40 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by huff/huffbuld
-
- ********************************************************************/
-
-#ifndef _V__44c1_long_VQH_
-#define _V__44c1_long_VQH_
-#include "codebook.h"
-
-static long _huff_lengthlist__44c1_long[] = {
- 3, 9,10,10,10, 5, 8,11, 9, 4, 5, 7, 9, 6, 7,12,
- 10, 5, 4, 6, 9, 7, 8,14, 9, 6, 5, 6, 8, 9,10,13,
- 8, 7, 7, 6, 5,12,13, 9, 5,18,18,18,18, 2, 4,11,
- 7,18,18,18,18, 4, 6,12,10,13,15,12, 7,11,11,11,
-};
-
-static static_codebook _huff_book__44c1_long = {
- 2, 64,
- _huff_lengthlist__44c1_long,
- 0, 0, 0, 0, 0,
- NULL,
- NULL,
- NULL,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c1_s0_p1_0.vqh b/lib/books/coupled/_44c1_s0_p1_0.vqh
deleted file mode 100644
index ddcd690a..00000000
--- a/lib/books/coupled/_44c1_s0_p1_0.vqh
+++ /dev/null
@@ -1,99 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c1_s0_p1_0_VQH_
-#define _V__44c1_s0_p1_0_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c1_s0_p1_0[] = {
- 2,
- 1,
- 3,
- 0,
- 4,
-};
-
-static long _vq_lengthlist__44c1_s0_p1_0[] = {
- 1, 5, 5, 0, 0, 0, 6, 5, 0, 0, 0, 6, 6, 0, 0, 0,
- 8, 8, 0, 0, 0, 0, 0, 0, 0, 5, 7, 7, 0, 0, 0, 9,
- 8, 0, 0, 0, 8, 8, 0, 0, 0,11,11, 0, 0, 0, 0, 0,
- 0, 0, 5, 7, 7, 0, 0, 0, 8, 9, 0, 0, 0, 8, 8, 0,
- 0, 0,11,11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 5, 8, 8, 0, 0, 0, 8, 7, 0, 0,
- 0, 8, 8, 0, 0, 0,10,10, 0, 0, 0, 0, 0, 0, 0, 5,
- 8, 9, 0, 0, 0, 8, 8, 0, 0, 0, 8, 8, 0, 0, 0,10,
- 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 5, 9, 8, 0, 0, 0, 8, 8, 0, 0, 0, 8, 8,
- 0, 0, 0,10,10, 0, 0, 0, 0, 0, 0, 0, 6, 8, 9, 0,
- 0, 0, 8, 8, 0, 0, 0, 8, 8, 0, 0, 0,10,10, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 8,11,11, 0, 0, 0,10,10, 0, 0, 0,10,10, 0, 0, 0,
- 11,11, 0, 0, 0, 0, 0, 0, 0, 8,11,11, 0, 0, 0,10,
- 10, 0, 0, 0,10,10, 0, 0, 0,11,11, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,
-};
-
-static float _vq_quantthresh__44c1_s0_p1_0[] = {
- -1.5, -0.5, 0.5, 1.5,
-};
-
-static long _vq_quantmap__44c1_s0_p1_0[] = {
- 3, 1, 0, 2, 4,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c1_s0_p1_0 = {
- _vq_quantthresh__44c1_s0_p1_0,
- _vq_quantmap__44c1_s0_p1_0,
- 5,
- 5
-};
-
-static static_codebook _44c1_s0_p1_0 = {
- 4, 625,
- _vq_lengthlist__44c1_s0_p1_0,
- 1, -533725184, 1611661312, 3, 0,
- _vq_quantlist__44c1_s0_p1_0,
- NULL,
- &_vq_auxt__44c1_s0_p1_0,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c1_s0_p2_0.vqh b/lib/books/coupled/_44c1_s0_p2_0.vqh
deleted file mode 100644
index ca591d60..00000000
--- a/lib/books/coupled/_44c1_s0_p2_0.vqh
+++ /dev/null
@@ -1,70 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c1_s0_p2_0_VQH_
-#define _V__44c1_s0_p2_0_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c1_s0_p2_0[] = {
- 4,
- 3,
- 5,
- 2,
- 6,
- 1,
- 7,
- 0,
- 8,
-};
-
-static long _vq_lengthlist__44c1_s0_p2_0[] = {
- 1, 4, 4, 7, 7, 0, 0, 0, 0, 0, 4, 4, 7, 7, 0, 0,
- 0, 0, 0, 4, 4, 7, 7, 0, 0, 0, 0, 0, 6, 6, 7, 7,
- 0, 0, 0, 0, 0, 0, 0, 7, 7, 0, 0, 0, 0, 0, 0, 0,
- 8, 8, 0, 0, 0, 0, 0, 0, 0, 8, 9, 0, 0, 0, 0, 0,
- 0, 0,10,10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,
-};
-
-static float _vq_quantthresh__44c1_s0_p2_0[] = {
- -3.5, -2.5, -1.5, -0.5, 0.5, 1.5, 2.5, 3.5,
-};
-
-static long _vq_quantmap__44c1_s0_p2_0[] = {
- 7, 5, 3, 1, 0, 2, 4, 6,
- 8,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c1_s0_p2_0 = {
- _vq_quantthresh__44c1_s0_p2_0,
- _vq_quantmap__44c1_s0_p2_0,
- 9,
- 9
-};
-
-static static_codebook _44c1_s0_p2_0 = {
- 2, 81,
- _vq_lengthlist__44c1_s0_p2_0,
- 1, -531628032, 1611661312, 4, 0,
- _vq_quantlist__44c1_s0_p2_0,
- NULL,
- &_vq_auxt__44c1_s0_p2_0,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c1_s0_p3_0.vqh b/lib/books/coupled/_44c1_s0_p3_0.vqh
deleted file mode 100644
index 0b2a7d8b..00000000
--- a/lib/books/coupled/_44c1_s0_p3_0.vqh
+++ /dev/null
@@ -1,93 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c1_s0_p3_0_VQH_
-#define _V__44c1_s0_p3_0_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c1_s0_p3_0[] = {
- 8,
- 7,
- 9,
- 6,
- 10,
- 5,
- 11,
- 4,
- 12,
- 3,
- 13,
- 2,
- 14,
- 1,
- 15,
- 0,
- 16,
-};
-
-static long _vq_lengthlist__44c1_s0_p3_0[] = {
- 1, 4, 4, 7, 7, 7, 7, 9, 9, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 5, 4, 7, 7, 8, 8, 9, 9, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 5, 5, 7, 7, 8, 8,10, 9, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 6, 6, 7, 7, 8, 8,10,10, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 7, 7, 8, 8,10,10, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 8, 8, 9, 9,10,10, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 8, 9, 9,11,10, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,10,10, 9, 9,11,11,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9,11,
- 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,10,10,
- 11,11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,10,
- 10,11,11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 11,11,12,12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,12,11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,12,12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,12,12, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,13,13, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,
-};
-
-static float _vq_quantthresh__44c1_s0_p3_0[] = {
- -7.5, -6.5, -5.5, -4.5, -3.5, -2.5, -1.5, -0.5,
- 0.5, 1.5, 2.5, 3.5, 4.5, 5.5, 6.5, 7.5,
-};
-
-static long _vq_quantmap__44c1_s0_p3_0[] = {
- 15, 13, 11, 9, 7, 5, 3, 1,
- 0, 2, 4, 6, 8, 10, 12, 14,
- 16,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c1_s0_p3_0 = {
- _vq_quantthresh__44c1_s0_p3_0,
- _vq_quantmap__44c1_s0_p3_0,
- 17,
- 17
-};
-
-static static_codebook _44c1_s0_p3_0 = {
- 2, 289,
- _vq_lengthlist__44c1_s0_p3_0,
- 1, -529530880, 1611661312, 5, 0,
- _vq_quantlist__44c1_s0_p3_0,
- NULL,
- &_vq_auxt__44c1_s0_p3_0,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c1_s0_p4_0.vqh b/lib/books/coupled/_44c1_s0_p4_0.vqh
deleted file mode 100644
index bdca1d95..00000000
--- a/lib/books/coupled/_44c1_s0_p4_0.vqh
+++ /dev/null
@@ -1,86 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c1_s0_p4_0_VQH_
-#define _V__44c1_s0_p4_0_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c1_s0_p4_0[] = {
- 7,
- 6,
- 8,
- 5,
- 9,
- 4,
- 10,
- 3,
- 11,
- 2,
- 12,
- 1,
- 13,
- 0,
- 14,
-};
-
-static long _vq_lengthlist__44c1_s0_p4_0[] = {
- 1, 3, 3, 6, 6, 8, 8,11,11,20,20,20,20,19,19, 6,
- 5, 5, 7, 8, 9,10,12,12,19,19,19,19,19,19, 7, 5,
- 5, 8, 8,10,10,12,12,19,19,19,19,19,19,19, 8, 8,
- 9, 9,11,11,14,13,19,19,19,19,19,19,19, 8, 8, 9,
- 9,11,11,13,13,19,19,19,19,19,19,19,12,12,10,10,
- 12,12,14,14,19,19,19,19,19,19,19,13,13,10,10,12,
- 12,15,15,19,19,19,19,19,19,19,19,19,11,12,11,12,
- 15,14,19,19,19,19,19,19,19,19,19,12,12,12,12,15,
- 16,19,19,19,19,19,19,19,19,19,15,15,11,13,14,15,
- 19,19,19,19,19,19,19,19,19,16,16,13,12,15,15,19,
- 19,19,19,19,19,19,19,19,19,19,14,14,14,16,19,19,
- 19,19,19,19,19,19,19,19,19,14,14,15,15,19,19,19,
- 19,19,19,19,19,19,19,19,17,16,16,17,19,19,19,19,
- 19,19,19,19,19,19,19,18,18,16,15,19,19,19,19,19,
- 19,
-};
-
-static float _vq_quantthresh__44c1_s0_p4_0[] = {
- -45.5, -38.5, -31.5, -24.5, -17.5, -10.5, -3.5, 3.5,
- 10.5, 17.5, 24.5, 31.5, 38.5, 45.5,
-};
-
-static long _vq_quantmap__44c1_s0_p4_0[] = {
- 13, 11, 9, 7, 5, 3, 1, 0,
- 2, 4, 6, 8, 10, 12, 14,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c1_s0_p4_0 = {
- _vq_quantthresh__44c1_s0_p4_0,
- _vq_quantmap__44c1_s0_p4_0,
- 15,
- 15
-};
-
-static static_codebook _44c1_s0_p4_0 = {
- 2, 225,
- _vq_lengthlist__44c1_s0_p4_0,
- 1, -524779520, 1616642048, 4, 0,
- _vq_quantlist__44c1_s0_p4_0,
- NULL,
- &_vq_auxt__44c1_s0_p4_0,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c1_s0_p4_1.vqh b/lib/books/coupled/_44c1_s0_p4_1.vqh
deleted file mode 100644
index cedbfc9d..00000000
--- a/lib/books/coupled/_44c1_s0_p4_1.vqh
+++ /dev/null
@@ -1,65 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c1_s0_p4_1_VQH_
-#define _V__44c1_s0_p4_1_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c1_s0_p4_1[] = {
- 3,
- 2,
- 4,
- 1,
- 5,
- 0,
- 6,
-};
-
-static long _vq_lengthlist__44c1_s0_p4_1[] = {
- 2, 4, 4, 5, 5, 6, 6, 8, 5, 5, 6, 6, 6, 6, 8, 5,
- 5, 6, 6, 6, 6, 8, 6, 6, 6, 6, 6, 6, 8, 8, 8, 6,
- 6, 6, 6, 8, 8, 8, 7, 7, 7, 7, 8, 8, 8, 6, 6, 7,
- 7,
-};
-
-static float _vq_quantthresh__44c1_s0_p4_1[] = {
- -2.5, -1.5, -0.5, 0.5, 1.5, 2.5,
-};
-
-static long _vq_quantmap__44c1_s0_p4_1[] = {
- 5, 3, 1, 0, 2, 4, 6,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c1_s0_p4_1 = {
- _vq_quantthresh__44c1_s0_p4_1,
- _vq_quantmap__44c1_s0_p4_1,
- 7,
- 7
-};
-
-static static_codebook _44c1_s0_p4_1 = {
- 2, 49,
- _vq_lengthlist__44c1_s0_p4_1,
- 1, -533200896, 1611661312, 3, 0,
- _vq_quantlist__44c1_s0_p4_1,
- NULL,
- &_vq_auxt__44c1_s0_p4_1,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c1_s0_p5_0.vqh b/lib/books/coupled/_44c1_s0_p5_0.vqh
deleted file mode 100644
index 41fa28c6..00000000
--- a/lib/books/coupled/_44c1_s0_p5_0.vqh
+++ /dev/null
@@ -1,99 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c1_s0_p5_0_VQH_
-#define _V__44c1_s0_p5_0_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c1_s0_p5_0[] = {
- 2,
- 1,
- 3,
- 0,
- 4,
-};
-
-static long _vq_lengthlist__44c1_s0_p5_0[] = {
- 1, 5, 5, 0, 0, 0, 5, 5, 0, 0, 0, 5, 5, 0, 0, 0,
- 8, 8, 0, 0, 0, 0, 0, 0, 0, 6, 8, 7, 0, 0, 0, 9,
- 8, 0, 0, 0, 9, 9, 0, 0, 0,12,12, 0, 0, 0, 0, 0,
- 0, 0, 6, 7, 8, 0, 0, 0, 9, 9, 0, 0, 0, 9, 9, 0,
- 0, 0,12,12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 5, 9, 9, 0, 0, 0, 8, 8, 0, 0,
- 0, 8, 8, 0, 0, 0,11,10, 0, 0, 0, 0, 0, 0, 0, 5,
- 9, 9, 0, 0, 0, 8, 8, 0, 0, 0, 8, 8, 0, 0, 0,10,
- 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 5, 9, 8, 0, 0, 0, 8, 8, 0, 0, 0, 8, 8,
- 0, 0, 0,10,10, 0, 0, 0, 0, 0, 0, 0, 5, 8, 9, 0,
- 0, 0, 8, 8, 0, 0, 0, 8, 8, 0, 0, 0,10,10, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 8,12,12, 0, 0, 0,10,10, 0, 0, 0,10,11, 0, 0, 0,
- 11,11, 0, 0, 0, 0, 0, 0, 0, 8,12,12, 0, 0, 0,10,
- 10, 0, 0, 0,11,10, 0, 0, 0,11,11, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,
-};
-
-static float _vq_quantthresh__44c1_s0_p5_0[] = {
- -1.5, -0.5, 0.5, 1.5,
-};
-
-static long _vq_quantmap__44c1_s0_p5_0[] = {
- 3, 1, 0, 2, 4,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c1_s0_p5_0 = {
- _vq_quantthresh__44c1_s0_p5_0,
- _vq_quantmap__44c1_s0_p5_0,
- 5,
- 5
-};
-
-static static_codebook _44c1_s0_p5_0 = {
- 4, 625,
- _vq_lengthlist__44c1_s0_p5_0,
- 1, -533725184, 1611661312, 3, 0,
- _vq_quantlist__44c1_s0_p5_0,
- NULL,
- &_vq_auxt__44c1_s0_p5_0,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c1_s0_p6_0.vqh b/lib/books/coupled/_44c1_s0_p6_0.vqh
deleted file mode 100644
index 1e33cc49..00000000
--- a/lib/books/coupled/_44c1_s0_p6_0.vqh
+++ /dev/null
@@ -1,93 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c1_s0_p6_0_VQH_
-#define _V__44c1_s0_p6_0_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c1_s0_p6_0[] = {
- 8,
- 7,
- 9,
- 6,
- 10,
- 5,
- 11,
- 4,
- 12,
- 3,
- 13,
- 2,
- 14,
- 1,
- 15,
- 0,
- 16,
-};
-
-static long _vq_lengthlist__44c1_s0_p6_0[] = {
- 1, 4, 4, 7, 7, 9,10,12,12, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 4, 4, 7, 7,10,10,12,12, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 4, 4, 7, 7,10,10,12,12, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 6, 6, 8, 8,11,11,13,13, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 8, 8,11,11,13,13, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 9, 8,11,11,13,14, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 8,11,11,13,14, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,10,10,12,12,14,14,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,12,12,14,
- 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,13,12,
- 15,15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,12,
- 12,15,14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 14,14,15,15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,15,15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,16,16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,16,16, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,16,16, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,
-};
-
-static float _vq_quantthresh__44c1_s0_p6_0[] = {
- -7.5, -6.5, -5.5, -4.5, -3.5, -2.5, -1.5, -0.5,
- 0.5, 1.5, 2.5, 3.5, 4.5, 5.5, 6.5, 7.5,
-};
-
-static long _vq_quantmap__44c1_s0_p6_0[] = {
- 15, 13, 11, 9, 7, 5, 3, 1,
- 0, 2, 4, 6, 8, 10, 12, 14,
- 16,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c1_s0_p6_0 = {
- _vq_quantthresh__44c1_s0_p6_0,
- _vq_quantmap__44c1_s0_p6_0,
- 17,
- 17
-};
-
-static static_codebook _44c1_s0_p6_0 = {
- 2, 289,
- _vq_lengthlist__44c1_s0_p6_0,
- 1, -529530880, 1611661312, 5, 0,
- _vq_quantlist__44c1_s0_p6_0,
- NULL,
- &_vq_auxt__44c1_s0_p6_0,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c1_s0_p7_0.vqh b/lib/books/coupled/_44c1_s0_p7_0.vqh
deleted file mode 100644
index 80cdbde6..00000000
--- a/lib/books/coupled/_44c1_s0_p7_0.vqh
+++ /dev/null
@@ -1,65 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c1_s0_p7_0_VQH_
-#define _V__44c1_s0_p7_0_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c1_s0_p7_0[] = {
- 3,
- 2,
- 4,
- 1,
- 5,
- 0,
- 6,
-};
-
-static long _vq_lengthlist__44c1_s0_p7_0[] = {
- 1, 3, 3, 8, 8,15,15, 5, 5, 5,10, 9,14,14, 5, 5,
- 5,10,10,14,14,14, 7, 9,11,10,14,14,14, 8, 5,13,
- 10,14,14,14,11,13,14,14,14,14,14,13,12,14,13,14,
- 14,
-};
-
-static float _vq_quantthresh__44c1_s0_p7_0[] = {
- -167.5, -100.5, -33.5, 33.5, 100.5, 167.5,
-};
-
-static long _vq_quantmap__44c1_s0_p7_0[] = {
- 5, 3, 1, 0, 2, 4, 6,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c1_s0_p7_0 = {
- _vq_quantthresh__44c1_s0_p7_0,
- _vq_quantmap__44c1_s0_p7_0,
- 7,
- 7
-};
-
-static static_codebook _44c1_s0_p7_0 = {
- 2, 49,
- _vq_lengthlist__44c1_s0_p7_0,
- 1, -520544256, 1624293376, 3, 0,
- _vq_quantlist__44c1_s0_p7_0,
- NULL,
- &_vq_auxt__44c1_s0_p7_0,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c1_s0_p7_1.vqh b/lib/books/coupled/_44c1_s0_p7_1.vqh
deleted file mode 100644
index 228f3613..00000000
--- a/lib/books/coupled/_44c1_s0_p7_1.vqh
+++ /dev/null
@@ -1,115 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c1_s0_p7_1_VQH_
-#define _V__44c1_s0_p7_1_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c1_s0_p7_1[] = {
- 11,
- 10,
- 12,
- 9,
- 13,
- 8,
- 14,
- 7,
- 15,
- 6,
- 16,
- 5,
- 17,
- 4,
- 18,
- 3,
- 19,
- 2,
- 20,
- 1,
- 21,
- 0,
- 22,
-};
-
-static long _vq_lengthlist__44c1_s0_p7_1[] = {
- 2, 4, 4, 5, 5, 7, 7, 7, 7, 8, 8, 9, 9, 9, 9,10,
- 9, 9, 9, 9, 9,10,10, 6, 5, 5, 7, 7, 8, 8, 8, 9,
- 9, 9, 9, 9,10,10,10,10,10, 9,10, 9,10,10,13, 5,
- 5, 7, 7, 8, 8, 8, 8, 9, 9, 9, 9,10,10,10,10,10,
- 10, 9, 9,10,10,14, 7, 8, 8, 7, 8, 8, 9, 9,10,10,
- 10,10,10,11,11,11,10,10,10,10,11,11,13, 7, 7, 7,
- 7, 8, 8, 9, 9,10,10,10,10,10,10,11,11,10,10,10,
- 10,11,11,14,10,10, 8, 8, 9, 9, 9,10,10,10,10,11,
- 11,11,11,11,11,11,11,11,11,11,13,14,13, 8, 8, 9,
- 9,10,10,10,10,10,10,11,11,11,11,10,10,11,11,11,
- 11,13,14,14,10,10, 9, 9,10,10,10,10,11,11,11,11,
- 11,11,11,11,11,11,12,11,14,13,13,10, 9, 9, 9,10,
- 10,10,10,11,11,11,11,12,12,11,11,11,11,12,12,14,
- 14,13,12,12,10,10,10,10,11,11,11,11,11,11,12,11,
- 12,11,11,11,12,11,15,13,14,15,13,10,10,10,10,10,
- 11,11,11,12,11,12,11,11,11,11,11,12,12,14,15,13,
- 14,13,11,11,11,10,11,11,11,12,12,11,12,12,11,11,
- 12,11,12,12,14,14,14,13,13,11,11,11,11,11,11,12,
- 11,11,12,12,12,11,11,11,11,12,12,14,14,14,14,14,
- 12,12,11,11,11,11,12,11,12,12,12,12,11,11,11,11,
- 12,12,14,14,14,13,13,13,13,11,11,11,11,12,11,12,
- 12,12,12,11,12,11,12,12,12,14,14,14,14,13,14,13,
- 12,11,12,12,12,12,12,12,12,12,12,11,12,12,12,12,
- 13,14,14,13,14,13,14,12,12,12,11,12,12,12,11,12,
- 12,11,12,11,12,12,12,14,14,14,14,13,14,14,13,13,
- 12,12,12,12,12,12,13,13,12,12,12,12,12,12,13,13,
- 14,14,14,14,14,13,13,13,12,13,13,12,12,12,12,12,
- 12,12,12,12,13,14,13,13,14,13,13,13,14,13,12,13,
- 12,12,13,12,12,12,12,12,12,12,13,12,14,13,13,14,
- 14,14,14,14,14,14,12,12,12,12,12,13,12,12,12,12,
- 12,12,13,14,15,14,15,14,15,14,14,14,14,14,12,12,
- 13,12,13,13,13,13,12,12,14,13,14,15,15,14,14,15,
- 14,15,14,14,13,13,12,13,13,13,13,12,12,12,13,13,
- 14,
-};
-
-static float _vq_quantthresh__44c1_s0_p7_1[] = {
- -31.5, -28.5, -25.5, -22.5, -19.5, -16.5, -13.5, -10.5,
- -7.5, -4.5, -1.5, 1.5, 4.5, 7.5, 10.5, 13.5,
- 16.5, 19.5, 22.5, 25.5, 28.5, 31.5,
-};
-
-static long _vq_quantmap__44c1_s0_p7_1[] = {
- 21, 19, 17, 15, 13, 11, 9, 7,
- 5, 3, 1, 0, 2, 4, 6, 8,
- 10, 12, 14, 16, 18, 20, 22,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c1_s0_p7_1 = {
- _vq_quantthresh__44c1_s0_p7_1,
- _vq_quantmap__44c1_s0_p7_1,
- 23,
- 23
-};
-
-static static_codebook _44c1_s0_p7_1 = {
- 2, 529,
- _vq_lengthlist__44c1_s0_p7_1,
- 1, -525303808, 1614282752, 5, 0,
- _vq_quantlist__44c1_s0_p7_1,
- NULL,
- &_vq_auxt__44c1_s0_p7_1,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c1_s0_p7_2.vqh b/lib/books/coupled/_44c1_s0_p7_2.vqh
deleted file mode 100644
index fa34a985..00000000
--- a/lib/books/coupled/_44c1_s0_p7_2.vqh
+++ /dev/null
@@ -1,63 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c1_s0_p7_2_VQH_
-#define _V__44c1_s0_p7_2_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c1_s0_p7_2[] = {
- 1,
- 0,
- 2,
-};
-
-static long _vq_lengthlist__44c1_s0_p7_2[] = {
- 3, 5, 5, 7, 6, 6, 7, 6, 6, 5, 6, 6, 7, 7, 7, 7,
- 6, 6, 5, 6, 6, 7, 7, 7, 7, 6, 6, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 6, 7, 7, 7, 7, 7, 7, 7, 7, 6, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 6,
- 6, 7, 7, 7, 7, 7, 6, 6, 6, 6, 7, 7, 7, 7, 7, 7,
- 7,
-};
-
-static float _vq_quantthresh__44c1_s0_p7_2[] = {
- -0.5, 0.5,
-};
-
-static long _vq_quantmap__44c1_s0_p7_2[] = {
- 1, 0, 2,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c1_s0_p7_2 = {
- _vq_quantthresh__44c1_s0_p7_2,
- _vq_quantmap__44c1_s0_p7_2,
- 3,
- 3
-};
-
-static static_codebook _44c1_s0_p7_2 = {
- 4, 81,
- _vq_lengthlist__44c1_s0_p7_2,
- 1, -535822336, 1611661312, 2, 0,
- _vq_quantlist__44c1_s0_p7_2,
- NULL,
- &_vq_auxt__44c1_s0_p7_2,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c1_s1_p5_0.vqh b/lib/books/coupled/_44c1_s1_p5_0.vqh
deleted file mode 100644
index 12726b40..00000000
--- a/lib/books/coupled/_44c1_s1_p5_0.vqh
+++ /dev/null
@@ -1,63 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c1_s1_p5_0_VQH_
-#define _V__44c1_s1_p5_0_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c1_s1_p5_0[] = {
- 1,
- 0,
- 2,
-};
-
-static long _vq_lengthlist__44c1_s1_p5_0[] = {
- 1, 3, 3, 0, 0, 0, 0, 0, 0, 4, 5, 5, 0, 0, 0, 0,
- 0, 0, 4, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,
-};
-
-static float _vq_quantthresh__44c1_s1_p5_0[] = {
- -0.5, 0.5,
-};
-
-static long _vq_quantmap__44c1_s1_p5_0[] = {
- 1, 0, 2,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c1_s1_p5_0 = {
- _vq_quantthresh__44c1_s1_p5_0,
- _vq_quantmap__44c1_s1_p5_0,
- 3,
- 3
-};
-
-static static_codebook _44c1_s1_p5_0 = {
- 4, 81,
- _vq_lengthlist__44c1_s1_p5_0,
- 1, -535822336, 1611661312, 2, 0,
- _vq_quantlist__44c1_s1_p5_0,
- NULL,
- &_vq_auxt__44c1_s1_p5_0,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c1_s1_p6_0.vqh b/lib/books/coupled/_44c1_s1_p6_0.vqh
deleted file mode 100644
index fecfb6be..00000000
--- a/lib/books/coupled/_44c1_s1_p6_0.vqh
+++ /dev/null
@@ -1,93 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c1_s1_p6_0_VQH_
-#define _V__44c1_s1_p6_0_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c1_s1_p6_0[] = {
- 8,
- 7,
- 9,
- 6,
- 10,
- 5,
- 11,
- 4,
- 12,
- 3,
- 13,
- 2,
- 14,
- 1,
- 15,
- 0,
- 16,
-};
-
-static long _vq_lengthlist__44c1_s1_p6_0[] = {
- 1, 3, 2, 4, 5, 8, 9,11,11, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 9, 9,11,11, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 9, 9,11,11, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,10,10,12,12, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0,10,10,12,12, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,10,10,12,13, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,10,10,12,13, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,11,11,13,13,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,11,11,13,
- 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,12,11,
- 14,14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,11,
- 11,14,13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 13,13,14,14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,14,14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,15,15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,15,15, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,15,15, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,
-};
-
-static float _vq_quantthresh__44c1_s1_p6_0[] = {
- -7.5, -6.5, -5.5, -4.5, -3.5, -2.5, -1.5, -0.5,
- 0.5, 1.5, 2.5, 3.5, 4.5, 5.5, 6.5, 7.5,
-};
-
-static long _vq_quantmap__44c1_s1_p6_0[] = {
- 15, 13, 11, 9, 7, 5, 3, 1,
- 0, 2, 4, 6, 8, 10, 12, 14,
- 16,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c1_s1_p6_0 = {
- _vq_quantthresh__44c1_s1_p6_0,
- _vq_quantmap__44c1_s1_p6_0,
- 17,
- 17
-};
-
-static static_codebook _44c1_s1_p6_0 = {
- 2, 289,
- _vq_lengthlist__44c1_s1_p6_0,
- 1, -529530880, 1611661312, 5, 0,
- _vq_quantlist__44c1_s1_p6_0,
- NULL,
- &_vq_auxt__44c1_s1_p6_0,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c1_s1_p7_0.vqh b/lib/books/coupled/_44c1_s1_p7_0.vqh
deleted file mode 100644
index 565ca5cd..00000000
--- a/lib/books/coupled/_44c1_s1_p7_0.vqh
+++ /dev/null
@@ -1,65 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c1_s1_p7_0_VQH_
-#define _V__44c1_s1_p7_0_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c1_s1_p7_0[] = {
- 3,
- 2,
- 4,
- 1,
- 5,
- 0,
- 6,
-};
-
-static long _vq_lengthlist__44c1_s1_p7_0[] = {
- 1, 3, 3, 8, 8,15,15, 5, 5, 5,10, 9,14,14, 5, 5,
- 5,10,10,14,14,14, 7, 9,11,10,14,14,14, 8, 5,13,
- 10,14,14,14,11,13,14,14,14,14,14,13,12,14,13,14,
- 14,
-};
-
-static float _vq_quantthresh__44c1_s1_p7_0[] = {
- -167.5, -100.5, -33.5, 33.5, 100.5, 167.5,
-};
-
-static long _vq_quantmap__44c1_s1_p7_0[] = {
- 5, 3, 1, 0, 2, 4, 6,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c1_s1_p7_0 = {
- _vq_quantthresh__44c1_s1_p7_0,
- _vq_quantmap__44c1_s1_p7_0,
- 7,
- 7
-};
-
-static static_codebook _44c1_s1_p7_0 = {
- 2, 49,
- _vq_lengthlist__44c1_s1_p7_0,
- 1, -520544256, 1624293376, 3, 0,
- _vq_quantlist__44c1_s1_p7_0,
- NULL,
- &_vq_auxt__44c1_s1_p7_0,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c1_s1_p7_1.vqh b/lib/books/coupled/_44c1_s1_p7_1.vqh
deleted file mode 100644
index 69e20ef7..00000000
--- a/lib/books/coupled/_44c1_s1_p7_1.vqh
+++ /dev/null
@@ -1,115 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c1_s1_p7_1_VQH_
-#define _V__44c1_s1_p7_1_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c1_s1_p7_1[] = {
- 11,
- 10,
- 12,
- 9,
- 13,
- 8,
- 14,
- 7,
- 15,
- 6,
- 16,
- 5,
- 17,
- 4,
- 18,
- 3,
- 19,
- 2,
- 20,
- 1,
- 21,
- 0,
- 22,
-};
-
-static long _vq_lengthlist__44c1_s1_p7_1[] = {
- 2, 4, 4, 5, 5, 7, 7, 7, 7, 8, 8, 9, 9, 9, 9,10,
- 9, 9, 9, 9, 9,10,10, 6, 5, 5, 7, 7, 8, 8, 8, 9,
- 9, 9, 9, 9,10,10,10,10,10, 9,10, 9,10,10,13, 5,
- 5, 7, 7, 8, 8, 8, 8, 9, 9, 9, 9,10,10,10,10,10,
- 10, 9, 9,10,10,14, 7, 8, 8, 7, 8, 8, 9, 9,10,10,
- 10,10,10,11,11,11,10,10,10,10,11,11,13, 7, 7, 7,
- 7, 8, 8, 9, 9,10,10,10,10,10,10,11,11,10,10,10,
- 10,11,11,14,10,10, 8, 8, 9, 9, 9,10,10,10,10,11,
- 11,11,11,11,11,11,11,11,11,11,13,14,13, 8, 8, 9,
- 9,10,10,10,10,10,10,11,11,11,11,10,10,11,11,11,
- 11,13,14,14,10,10, 9, 9,10,10,10,10,11,11,11,11,
- 11,11,11,11,11,11,12,11,14,13,13,10, 9, 9, 9,10,
- 10,10,10,11,11,11,11,12,12,11,11,11,11,12,12,14,
- 14,13,12,12,10,10,10,10,11,11,11,11,11,11,12,11,
- 12,11,11,11,12,11,15,13,14,15,13,10,10,10,10,10,
- 11,11,11,12,11,12,11,11,11,11,11,12,12,14,15,13,
- 14,13,11,11,11,10,11,11,11,12,12,11,12,12,11,11,
- 12,11,12,12,14,14,14,13,13,11,11,11,11,11,11,12,
- 11,11,12,12,12,11,11,11,11,12,12,14,14,14,14,14,
- 12,12,11,11,11,11,12,11,12,12,12,12,11,11,11,11,
- 12,12,14,14,14,13,13,13,13,11,11,11,11,12,11,12,
- 12,12,12,11,12,11,12,12,12,14,14,14,14,13,14,13,
- 12,11,12,12,12,12,12,12,12,12,12,11,12,12,12,12,
- 13,14,14,13,14,13,14,12,12,12,11,12,12,12,11,12,
- 12,11,12,11,12,12,12,14,14,14,14,13,14,14,13,13,
- 12,12,12,12,12,12,13,13,12,12,12,12,12,12,13,13,
- 14,14,14,14,14,13,13,13,12,13,13,12,12,12,12,12,
- 12,12,12,12,13,14,13,13,14,13,13,13,14,13,12,13,
- 12,12,13,12,12,12,12,12,12,12,13,12,14,13,13,14,
- 14,14,14,14,14,14,12,12,12,12,12,13,12,12,12,12,
- 12,12,13,14,15,14,15,14,15,14,14,14,14,14,12,12,
- 13,12,13,13,13,13,12,12,14,13,14,15,15,14,14,15,
- 14,15,14,14,13,13,12,13,13,13,13,12,12,12,13,13,
- 14,
-};
-
-static float _vq_quantthresh__44c1_s1_p7_1[] = {
- -31.5, -28.5, -25.5, -22.5, -19.5, -16.5, -13.5, -10.5,
- -7.5, -4.5, -1.5, 1.5, 4.5, 7.5, 10.5, 13.5,
- 16.5, 19.5, 22.5, 25.5, 28.5, 31.5,
-};
-
-static long _vq_quantmap__44c1_s1_p7_1[] = {
- 21, 19, 17, 15, 13, 11, 9, 7,
- 5, 3, 1, 0, 2, 4, 6, 8,
- 10, 12, 14, 16, 18, 20, 22,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c1_s1_p7_1 = {
- _vq_quantthresh__44c1_s1_p7_1,
- _vq_quantmap__44c1_s1_p7_1,
- 23,
- 23
-};
-
-static static_codebook _44c1_s1_p7_1 = {
- 2, 529,
- _vq_lengthlist__44c1_s1_p7_1,
- 1, -525303808, 1614282752, 5, 0,
- _vq_quantlist__44c1_s1_p7_1,
- NULL,
- &_vq_auxt__44c1_s1_p7_1,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c1_s1_p7_2.vqh b/lib/books/coupled/_44c1_s1_p7_2.vqh
deleted file mode 100644
index bb6a1f2d..00000000
--- a/lib/books/coupled/_44c1_s1_p7_2.vqh
+++ /dev/null
@@ -1,63 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c1_s1_p7_2_VQH_
-#define _V__44c1_s1_p7_2_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c1_s1_p7_2[] = {
- 1,
- 0,
- 2,
-};
-
-static long _vq_lengthlist__44c1_s1_p7_2[] = {
- 3, 5, 5, 7, 6, 6, 7, 6, 6, 5, 5, 5, 7, 7, 7, 7,
- 6, 7, 5, 5, 5, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 6, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 6,
- 7, 7, 7, 7, 7, 7, 7, 7, 6, 7, 7, 7, 7, 7, 7, 7,
- 7,
-};
-
-static float _vq_quantthresh__44c1_s1_p7_2[] = {
- -0.5, 0.5,
-};
-
-static long _vq_quantmap__44c1_s1_p7_2[] = {
- 1, 0, 2,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c1_s1_p7_2 = {
- _vq_quantthresh__44c1_s1_p7_2,
- _vq_quantmap__44c1_s1_p7_2,
- 3,
- 3
-};
-
-static static_codebook _44c1_s1_p7_2 = {
- 4, 81,
- _vq_lengthlist__44c1_s1_p7_2,
- 1, -535822336, 1611661312, 2, 0,
- _vq_quantlist__44c1_s1_p7_2,
- NULL,
- &_vq_auxt__44c1_s1_p7_2,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c1_s2_p6_0.vqh b/lib/books/coupled/_44c1_s2_p6_0.vqh
deleted file mode 100644
index 7b2d10c8..00000000
--- a/lib/books/coupled/_44c1_s2_p6_0.vqh
+++ /dev/null
@@ -1,70 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c1_s2_p6_0_VQH_
-#define _V__44c1_s2_p6_0_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c1_s2_p6_0[] = {
- 4,
- 3,
- 5,
- 2,
- 6,
- 1,
- 7,
- 0,
- 8,
-};
-
-static long _vq_lengthlist__44c1_s2_p6_0[] = {
- 1, 3, 2, 4, 5, 6, 7, 8, 8, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,
-};
-
-static float _vq_quantthresh__44c1_s2_p6_0[] = {
- -3.5, -2.5, -1.5, -0.5, 0.5, 1.5, 2.5, 3.5,
-};
-
-static long _vq_quantmap__44c1_s2_p6_0[] = {
- 7, 5, 3, 1, 0, 2, 4, 6,
- 8,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c1_s2_p6_0 = {
- _vq_quantthresh__44c1_s2_p6_0,
- _vq_quantmap__44c1_s2_p6_0,
- 9,
- 9
-};
-
-static static_codebook _44c1_s2_p6_0 = {
- 2, 81,
- _vq_lengthlist__44c1_s2_p6_0,
- 1, -531628032, 1611661312, 4, 0,
- _vq_quantlist__44c1_s2_p6_0,
- NULL,
- &_vq_auxt__44c1_s2_p6_0,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c1_s2_p7_0.vqh b/lib/books/coupled/_44c1_s2_p7_0.vqh
deleted file mode 100644
index 6509e4d3..00000000
--- a/lib/books/coupled/_44c1_s2_p7_0.vqh
+++ /dev/null
@@ -1,65 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c1_s2_p7_0_VQH_
-#define _V__44c1_s2_p7_0_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c1_s2_p7_0[] = {
- 3,
- 2,
- 4,
- 1,
- 5,
- 0,
- 6,
-};
-
-static long _vq_lengthlist__44c1_s2_p7_0[] = {
- 1, 3, 3, 8, 8,15,15, 5, 5, 5,10, 9,14,14, 5, 5,
- 5,10,10,14,14,14, 7, 9,11,10,14,14,14, 8, 5,13,
- 10,14,14,14,11,13,14,14,14,14,14,13,12,14,13,14,
- 14,
-};
-
-static float _vq_quantthresh__44c1_s2_p7_0[] = {
- -167.5, -100.5, -33.5, 33.5, 100.5, 167.5,
-};
-
-static long _vq_quantmap__44c1_s2_p7_0[] = {
- 5, 3, 1, 0, 2, 4, 6,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c1_s2_p7_0 = {
- _vq_quantthresh__44c1_s2_p7_0,
- _vq_quantmap__44c1_s2_p7_0,
- 7,
- 7
-};
-
-static static_codebook _44c1_s2_p7_0 = {
- 2, 49,
- _vq_lengthlist__44c1_s2_p7_0,
- 1, -520544256, 1624293376, 3, 0,
- _vq_quantlist__44c1_s2_p7_0,
- NULL,
- &_vq_auxt__44c1_s2_p7_0,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c1_s2_p7_1.vqh b/lib/books/coupled/_44c1_s2_p7_1.vqh
deleted file mode 100644
index 9185a322..00000000
--- a/lib/books/coupled/_44c1_s2_p7_1.vqh
+++ /dev/null
@@ -1,115 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c1_s2_p7_1_VQH_
-#define _V__44c1_s2_p7_1_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c1_s2_p7_1[] = {
- 11,
- 10,
- 12,
- 9,
- 13,
- 8,
- 14,
- 7,
- 15,
- 6,
- 16,
- 5,
- 17,
- 4,
- 18,
- 3,
- 19,
- 2,
- 20,
- 1,
- 21,
- 0,
- 22,
-};
-
-static long _vq_lengthlist__44c1_s2_p7_1[] = {
- 2, 4, 4, 5, 5, 7, 7, 7, 7, 8, 8, 9, 9, 9, 9,10,
- 9, 9, 9, 9, 9,10,10, 6, 5, 5, 6, 7, 8, 8, 8, 9,
- 9, 9, 9, 9,10,10,10,10,10, 9, 9, 9,10,10,13, 6,
- 5, 7, 6, 8, 8, 8, 8, 9, 9, 9, 9,10,10,10,10,10,
- 9, 9, 9,10,10,14, 8, 8, 8, 7, 8, 8, 9, 9,10,10,
- 10,10,10,10,11,11,10,10,10,10,11,11,13, 8, 7, 7,
- 7, 8, 8, 9, 9,10,10,10,10,10,10,11,11,10,10,10,
- 10,11,11,14,10,10, 8, 8, 9, 9, 9, 9,10,10,10,11,
- 11,11,11,11,11,10,11,11,11,11,13,14,13, 8, 8, 9,
- 9,10, 9,10,10,10,10,11,11,11,11,10,10,11,11,11,
- 11,13,14,14,10,10, 9, 9,10,10,10,10,11,11,11,11,
- 11,11,11,11,11,11,12,11,14,13,13,10, 9, 9, 9,10,
- 10,10,10,11,11,11,11,12,12,11,11,11,11,12,12,14,
- 14,13,12,12,10,10,10,10,11,11,11,11,11,11,12,11,
- 11,11,11,11,12,11,15,13,13,15,13,10,10,10,10,10,
- 11,11,11,12,11,12,11,11,11,11,11,11,12,13,15,13,
- 14,13,11,11,11,10,11,11,11,12,12,11,12,12,11,11,
- 12,11,12,12,14,14,14,13,13,11,11,11,11,11,11,12,
- 11,11,12,12,12,11,11,11,11,12,12,13,14,14,14,14,
- 12,12,11,11,11,11,12,11,12,12,12,12,11,11,11,11,
- 12,12,14,14,14,13,13,13,13,11,11,11,11,11,11,12,
- 12,12,12,11,12,11,11,12,12,14,14,14,14,13,13,13,
- 12,11,12,11,12,12,12,12,12,12,12,11,12,12,12,12,
- 13,14,14,13,14,13,14,12,12,12,11,12,12,12,11,12,
- 12,11,12,11,12,12,12,14,13,14,14,13,14,14,13,13,
- 12,11,12,12,12,12,13,13,12,12,11,12,12,12,13,13,
- 14,14,13,14,14,13,13,12,12,13,12,12,12,12,12,12,
- 12,12,12,12,13,13,13,13,13,13,13,13,14,13,12,13,
- 12,12,12,12,12,12,12,12,12,12,13,12,13,13,13,14,
- 14,14,14,14,14,14,12,12,12,12,12,13,12,12,12,12,
- 12,12,12,13,15,14,15,14,15,14,14,14,14,14,12,12,
- 13,12,13,13,13,13,12,12,14,13,14,15,15,14,14,15,
- 14,15,14,14,13,13,12,13,13,13,13,12,12,12,12,13,
- 14,
-};
-
-static float _vq_quantthresh__44c1_s2_p7_1[] = {
- -31.5, -28.5, -25.5, -22.5, -19.5, -16.5, -13.5, -10.5,
- -7.5, -4.5, -1.5, 1.5, 4.5, 7.5, 10.5, 13.5,
- 16.5, 19.5, 22.5, 25.5, 28.5, 31.5,
-};
-
-static long _vq_quantmap__44c1_s2_p7_1[] = {
- 21, 19, 17, 15, 13, 11, 9, 7,
- 5, 3, 1, 0, 2, 4, 6, 8,
- 10, 12, 14, 16, 18, 20, 22,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c1_s2_p7_1 = {
- _vq_quantthresh__44c1_s2_p7_1,
- _vq_quantmap__44c1_s2_p7_1,
- 23,
- 23
-};
-
-static static_codebook _44c1_s2_p7_1 = {
- 2, 529,
- _vq_lengthlist__44c1_s2_p7_1,
- 1, -525303808, 1614282752, 5, 0,
- _vq_quantlist__44c1_s2_p7_1,
- NULL,
- &_vq_auxt__44c1_s2_p7_1,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c1_s2_p7_2.vqh b/lib/books/coupled/_44c1_s2_p7_2.vqh
deleted file mode 100644
index 8ab2ea72..00000000
--- a/lib/books/coupled/_44c1_s2_p7_2.vqh
+++ /dev/null
@@ -1,63 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c1_s2_p7_2_VQH_
-#define _V__44c1_s2_p7_2_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c1_s2_p7_2[] = {
- 1,
- 0,
- 2,
-};
-
-static long _vq_lengthlist__44c1_s2_p7_2[] = {
- 3, 5, 5, 7, 6, 6, 7, 6, 6, 5, 5, 5, 7, 7, 7, 7,
- 6, 7, 5, 5, 5, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 6, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 6,
- 7, 7, 7, 7, 7, 7, 7, 7, 6, 7, 7, 7, 7, 7, 7, 7,
- 7,
-};
-
-static float _vq_quantthresh__44c1_s2_p7_2[] = {
- -0.5, 0.5,
-};
-
-static long _vq_quantmap__44c1_s2_p7_2[] = {
- 1, 0, 2,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c1_s2_p7_2 = {
- _vq_quantthresh__44c1_s2_p7_2,
- _vq_quantmap__44c1_s2_p7_2,
- 3,
- 3
-};
-
-static static_codebook _44c1_s2_p7_2 = {
- 4, 81,
- _vq_lengthlist__44c1_s2_p7_2,
- 1, -535822336, 1611661312, 2, 0,
- _vq_quantlist__44c1_s2_p7_2,
- NULL,
- &_vq_auxt__44c1_s2_p7_2,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c1_s3_p7_0.vqh b/lib/books/coupled/_44c1_s3_p7_0.vqh
deleted file mode 100644
index ff7ad570..00000000
--- a/lib/books/coupled/_44c1_s3_p7_0.vqh
+++ /dev/null
@@ -1,65 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c1_s3_p7_0_VQH_
-#define _V__44c1_s3_p7_0_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c1_s3_p7_0[] = {
- 3,
- 2,
- 4,
- 1,
- 5,
- 0,
- 6,
-};
-
-static long _vq_lengthlist__44c1_s3_p7_0[] = {
- 1, 3, 3, 8, 8,15,15, 5, 5, 5,10, 9,14,14, 5, 5,
- 5,10,10,14,14,14, 7, 9,11,10,14,14,14, 8, 5,13,
- 10,14,14,14,11,13,14,14,14,14,14,13,12,14,13,14,
- 14,
-};
-
-static float _vq_quantthresh__44c1_s3_p7_0[] = {
- -167.5, -100.5, -33.5, 33.5, 100.5, 167.5,
-};
-
-static long _vq_quantmap__44c1_s3_p7_0[] = {
- 5, 3, 1, 0, 2, 4, 6,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c1_s3_p7_0 = {
- _vq_quantthresh__44c1_s3_p7_0,
- _vq_quantmap__44c1_s3_p7_0,
- 7,
- 7
-};
-
-static static_codebook _44c1_s3_p7_0 = {
- 2, 49,
- _vq_lengthlist__44c1_s3_p7_0,
- 1, -520544256, 1624293376, 3, 0,
- _vq_quantlist__44c1_s3_p7_0,
- NULL,
- &_vq_auxt__44c1_s3_p7_0,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c1_s3_p7_1.vqh b/lib/books/coupled/_44c1_s3_p7_1.vqh
deleted file mode 100644
index 593ef377..00000000
--- a/lib/books/coupled/_44c1_s3_p7_1.vqh
+++ /dev/null
@@ -1,115 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c1_s3_p7_1_VQH_
-#define _V__44c1_s3_p7_1_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c1_s3_p7_1[] = {
- 11,
- 10,
- 12,
- 9,
- 13,
- 8,
- 14,
- 7,
- 15,
- 6,
- 16,
- 5,
- 17,
- 4,
- 18,
- 3,
- 19,
- 2,
- 20,
- 1,
- 21,
- 0,
- 22,
-};
-
-static long _vq_lengthlist__44c1_s3_p7_1[] = {
- 2, 3, 4, 5, 5, 7, 7, 7, 8, 8, 8, 9, 9, 9, 9,10,
- 9, 9, 9, 9, 9,10,10, 6, 5, 5, 7, 7, 8, 8, 9, 9,
- 9, 9, 9,10,10,10,10,10,10,10,10, 9,10,10,13, 6,
- 5, 7, 7, 8, 8, 8, 9, 9, 9, 9,10,10,10,10,10,10,
- 10, 9, 9,10,10,14, 8, 8, 8, 8, 9, 9, 9, 9,10,10,
- 10,10,11,11,11,11,10,10,10,10,11,11,13, 8, 8, 8,
- 8, 8, 8, 9, 9,10,10,10,10,10,10,11,11,10,10,10,
- 10,11,11,14,10,11, 8, 8, 9, 9,10,10,10,10,11,11,
- 11,11,11,11,11,11,11,11,11,11,13,14,13, 8, 8, 9,
- 9,10,10,10,10,10,10,11,11,11,11,10,11,11,11,11,
- 11,13,14,14,10,10,10, 9,10,10,10,10,11,11,11,11,
- 11,11,11,11,11,11,12,12,14,13,13,10,10, 9, 9,10,
- 10,10,10,11,11,11,11,12,12,11,11,11,11,12,12,14,
- 14,13,12,12,10,10,10,10,11,11,11,11,11,11,12,11,
- 12,11,11,11,12,12,15,14,14,15,13,10,10,10,10,11,
- 11,11,12,12,12,12,11,11,11,11,11,12,12,14,15,13,
- 14,13,11,11,11,11,11,11,11,12,12,11,12,12,11,11,
- 12,11,12,12,14,14,14,13,13,11,11,11,11,11,11,12,
- 11,12,12,12,12,11,11,11,11,12,12,14,14,14,14,14,
- 12,12,11,11,11,11,12,12,12,12,12,12,12,12,11,11,
- 12,12,14,14,14,13,13,13,13,11,11,11,11,12,12,12,
- 12,12,12,11,12,11,12,12,12,14,14,14,14,13,14,13,
- 12,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,
- 13,14,14,13,14,13,14,12,12,12,11,12,12,12,12,12,
- 12,11,12,11,12,12,12,14,14,14,14,13,14,14,13,13,
- 12,12,12,12,12,12,13,13,12,12,12,12,12,12,13,13,
- 14,14,14,14,14,13,13,13,12,13,13,12,12,12,12,12,
- 12,12,12,12,13,14,13,13,14,13,13,13,14,13,12,13,
- 12,12,13,12,12,12,12,12,12,12,13,12,14,13,13,14,
- 14,14,14,14,14,14,13,12,12,12,12,13,12,12,12,12,
- 12,12,13,14,15,14,15,14,15,14,14,14,14,14,12,12,
- 13,12,13,13,13,13,12,12,14,13,14,15,15,14,14,15,
- 14,15,14,14,14,13,12,13,13,13,13,12,12,12,13,13,
- 14,
-};
-
-static float _vq_quantthresh__44c1_s3_p7_1[] = {
- -31.5, -28.5, -25.5, -22.5, -19.5, -16.5, -13.5, -10.5,
- -7.5, -4.5, -1.5, 1.5, 4.5, 7.5, 10.5, 13.5,
- 16.5, 19.5, 22.5, 25.5, 28.5, 31.5,
-};
-
-static long _vq_quantmap__44c1_s3_p7_1[] = {
- 21, 19, 17, 15, 13, 11, 9, 7,
- 5, 3, 1, 0, 2, 4, 6, 8,
- 10, 12, 14, 16, 18, 20, 22,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c1_s3_p7_1 = {
- _vq_quantthresh__44c1_s3_p7_1,
- _vq_quantmap__44c1_s3_p7_1,
- 23,
- 23
-};
-
-static static_codebook _44c1_s3_p7_1 = {
- 2, 529,
- _vq_lengthlist__44c1_s3_p7_1,
- 1, -525303808, 1614282752, 5, 0,
- _vq_quantlist__44c1_s3_p7_1,
- NULL,
- &_vq_auxt__44c1_s3_p7_1,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c1_s3_p7_2.vqh b/lib/books/coupled/_44c1_s3_p7_2.vqh
deleted file mode 100644
index b772da4d..00000000
--- a/lib/books/coupled/_44c1_s3_p7_2.vqh
+++ /dev/null
@@ -1,63 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c1_s3_p7_2_VQH_
-#define _V__44c1_s3_p7_2_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c1_s3_p7_2[] = {
- 1,
- 0,
- 2,
-};
-
-static long _vq_lengthlist__44c1_s3_p7_2[] = {
- 3, 5, 5, 7, 6, 6, 7, 6, 6, 5, 5, 5, 7, 7, 7, 7,
- 6, 7, 5, 5, 5, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 6, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 6,
- 7, 7, 7, 7, 7, 7, 7, 7, 6, 7, 7, 7, 7, 7, 7, 7,
- 7,
-};
-
-static float _vq_quantthresh__44c1_s3_p7_2[] = {
- -0.5, 0.5,
-};
-
-static long _vq_quantmap__44c1_s3_p7_2[] = {
- 1, 0, 2,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c1_s3_p7_2 = {
- _vq_quantthresh__44c1_s3_p7_2,
- _vq_quantmap__44c1_s3_p7_2,
- 3,
- 3
-};
-
-static static_codebook _44c1_s3_p7_2 = {
- 4, 81,
- _vq_lengthlist__44c1_s3_p7_2,
- 1, -535822336, 1611661312, 2, 0,
- _vq_quantlist__44c1_s3_p7_2,
- NULL,
- &_vq_auxt__44c1_s3_p7_2,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c1_short.vqh b/lib/books/coupled/_44c1_short.vqh
deleted file mode 100644
index e1e239e3..00000000
--- a/lib/books/coupled/_44c1_short.vqh
+++ /dev/null
@@ -1,40 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by huff/huffbuld
-
- ********************************************************************/
-
-#ifndef _V__44c1_short_VQH_
-#define _V__44c1_short_VQH_
-#include "codebook.h"
-
-static long _huff_lengthlist__44c1_short[] = {
- 5,17,17,17,17, 7,10,14,17, 7, 7, 9,11,17,17,17,
- 15, 5, 5, 6, 9,17,17,17,17, 7, 6, 7, 9,17,17,17,
- 15, 8, 5, 5, 8,17,17,17, 5,17,17,16,16, 2, 4,10,
- 7,16,16,16,16, 3, 3, 9,13, 9, 4, 4, 6, 9, 7,10,
-};
-
-static static_codebook _huff_book__44c1_short = {
- 2, 64,
- _huff_lengthlist__44c1_short,
- 0, 0, 0, 0, 0,
- NULL,
- NULL,
- NULL,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c2_long.vqh b/lib/books/coupled/_44c2_long.vqh
deleted file mode 100644
index c2969e47..00000000
--- a/lib/books/coupled/_44c2_long.vqh
+++ /dev/null
@@ -1,40 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by huff/huffbuld
-
- ********************************************************************/
-
-#ifndef _V__44c2_long_VQH_
-#define _V__44c2_long_VQH_
-#include "codebook.h"
-
-static long _huff_lengthlist__44c2_long[] = {
- 3,10,12,12,10, 6, 8,10,10, 6, 6, 7, 8, 7, 7,10,
- 12, 5, 4, 6, 7, 7, 7,11,12, 7, 5, 5, 7, 9, 8,11,
- 9, 7, 6, 5, 5,11,10, 8, 6,17,17,17,17, 2, 4, 9,
- 8,17,17,17,17, 4, 4, 9,10,14,13,12, 7, 8, 8, 9,
-};
-
-static static_codebook _huff_book__44c2_long = {
- 2, 64,
- _huff_lengthlist__44c2_long,
- 0, 0, 0, 0, 0,
- NULL,
- NULL,
- NULL,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c2_s0_p1_0.vqh b/lib/books/coupled/_44c2_s0_p1_0.vqh
deleted file mode 100644
index 1628ed45..00000000
--- a/lib/books/coupled/_44c2_s0_p1_0.vqh
+++ /dev/null
@@ -1,99 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c2_s0_p1_0_VQH_
-#define _V__44c2_s0_p1_0_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c2_s0_p1_0[] = {
- 2,
- 1,
- 3,
- 0,
- 4,
-};
-
-static long _vq_lengthlist__44c2_s0_p1_0[] = {
- 2, 5, 5, 0, 0, 0, 5, 5, 0, 0, 0, 5, 5, 0, 0, 0,
- 7, 7, 0, 0, 0, 0, 0, 0, 0, 5, 6, 6, 0, 0, 0, 7,
- 7, 0, 0, 0, 7, 7, 0, 0, 0,10,10, 0, 0, 0, 0, 0,
- 0, 0, 5, 6, 6, 0, 0, 0, 7, 8, 0, 0, 0, 7, 7, 0,
- 0, 0,10,10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 5, 7, 7, 0, 0, 0, 7, 7, 0, 0,
- 0, 7, 7, 0, 0, 0, 9, 9, 0, 0, 0, 0, 0, 0, 0, 5,
- 7, 7, 0, 0, 0, 7, 7, 0, 0, 0, 7, 7, 0, 0, 0, 9,
- 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 5, 8, 7, 0, 0, 0, 7, 7, 0, 0, 0, 7, 7,
- 0, 0, 0, 9, 9, 0, 0, 0, 0, 0, 0, 0, 5, 7, 8, 0,
- 0, 0, 7, 7, 0, 0, 0, 7, 7, 0, 0, 0, 9, 9, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 7,10,10, 0, 0, 0, 9, 9, 0, 0, 0, 9, 9, 0, 0, 0,
- 10,10, 0, 0, 0, 0, 0, 0, 0, 7,10,10, 0, 0, 0, 9,
- 9, 0, 0, 0, 9, 9, 0, 0, 0,10,10, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,
-};
-
-static float _vq_quantthresh__44c2_s0_p1_0[] = {
- -1.5, -0.5, 0.5, 1.5,
-};
-
-static long _vq_quantmap__44c2_s0_p1_0[] = {
- 3, 1, 0, 2, 4,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c2_s0_p1_0 = {
- _vq_quantthresh__44c2_s0_p1_0,
- _vq_quantmap__44c2_s0_p1_0,
- 5,
- 5
-};
-
-static static_codebook _44c2_s0_p1_0 = {
- 4, 625,
- _vq_lengthlist__44c2_s0_p1_0,
- 1, -533725184, 1611661312, 3, 0,
- _vq_quantlist__44c2_s0_p1_0,
- NULL,
- &_vq_auxt__44c2_s0_p1_0,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c2_s0_p2_0.vqh b/lib/books/coupled/_44c2_s0_p2_0.vqh
deleted file mode 100644
index 7f4509a4..00000000
--- a/lib/books/coupled/_44c2_s0_p2_0.vqh
+++ /dev/null
@@ -1,70 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c2_s0_p2_0_VQH_
-#define _V__44c2_s0_p2_0_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c2_s0_p2_0[] = {
- 4,
- 3,
- 5,
- 2,
- 6,
- 1,
- 7,
- 0,
- 8,
-};
-
-static long _vq_lengthlist__44c2_s0_p2_0[] = {
- 2, 3, 3, 6, 6, 0, 0, 0, 0, 0, 4, 4, 6, 6, 0, 0,
- 0, 0, 0, 4, 4, 6, 6, 0, 0, 0, 0, 0, 5, 5, 6, 6,
- 0, 0, 0, 0, 0, 0, 0, 6, 6, 0, 0, 0, 0, 0, 0, 0,
- 7, 7, 0, 0, 0, 0, 0, 0, 0, 7, 8, 0, 0, 0, 0, 0,
- 0, 0, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,
-};
-
-static float _vq_quantthresh__44c2_s0_p2_0[] = {
- -3.5, -2.5, -1.5, -0.5, 0.5, 1.5, 2.5, 3.5,
-};
-
-static long _vq_quantmap__44c2_s0_p2_0[] = {
- 7, 5, 3, 1, 0, 2, 4, 6,
- 8,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c2_s0_p2_0 = {
- _vq_quantthresh__44c2_s0_p2_0,
- _vq_quantmap__44c2_s0_p2_0,
- 9,
- 9
-};
-
-static static_codebook _44c2_s0_p2_0 = {
- 2, 81,
- _vq_lengthlist__44c2_s0_p2_0,
- 1, -531628032, 1611661312, 4, 0,
- _vq_quantlist__44c2_s0_p2_0,
- NULL,
- &_vq_auxt__44c2_s0_p2_0,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c2_s0_p3_0.vqh b/lib/books/coupled/_44c2_s0_p3_0.vqh
deleted file mode 100644
index ff4c1456..00000000
--- a/lib/books/coupled/_44c2_s0_p3_0.vqh
+++ /dev/null
@@ -1,93 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c2_s0_p3_0_VQH_
-#define _V__44c2_s0_p3_0_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c2_s0_p3_0[] = {
- 8,
- 7,
- 9,
- 6,
- 10,
- 5,
- 11,
- 4,
- 12,
- 3,
- 13,
- 2,
- 14,
- 1,
- 15,
- 0,
- 16,
-};
-
-static long _vq_lengthlist__44c2_s0_p3_0[] = {
- 2, 4, 4, 6, 6, 7, 7, 8, 8, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 4, 4, 6, 6, 7, 7, 9, 9, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 4, 4, 6, 6, 7, 7, 9, 9, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 5, 5, 6, 7, 8, 7, 9, 9, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 7, 7, 7, 8, 9, 9, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 8, 8,10,10, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 8, 8,10,10, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9,10,10,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 9,10,
- 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9,
- 11,10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9,
- 9,10,10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 10,10,11,11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,11,11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,11,11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,11,11, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,12,12, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,
-};
-
-static float _vq_quantthresh__44c2_s0_p3_0[] = {
- -7.5, -6.5, -5.5, -4.5, -3.5, -2.5, -1.5, -0.5,
- 0.5, 1.5, 2.5, 3.5, 4.5, 5.5, 6.5, 7.5,
-};
-
-static long _vq_quantmap__44c2_s0_p3_0[] = {
- 15, 13, 11, 9, 7, 5, 3, 1,
- 0, 2, 4, 6, 8, 10, 12, 14,
- 16,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c2_s0_p3_0 = {
- _vq_quantthresh__44c2_s0_p3_0,
- _vq_quantmap__44c2_s0_p3_0,
- 17,
- 17
-};
-
-static static_codebook _44c2_s0_p3_0 = {
- 2, 289,
- _vq_lengthlist__44c2_s0_p3_0,
- 1, -529530880, 1611661312, 5, 0,
- _vq_quantlist__44c2_s0_p3_0,
- NULL,
- &_vq_auxt__44c2_s0_p3_0,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c2_s0_p4_0.vqh b/lib/books/coupled/_44c2_s0_p4_0.vqh
deleted file mode 100644
index afc7c060..00000000
--- a/lib/books/coupled/_44c2_s0_p4_0.vqh
+++ /dev/null
@@ -1,86 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c2_s0_p4_0_VQH_
-#define _V__44c2_s0_p4_0_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c2_s0_p4_0[] = {
- 7,
- 6,
- 8,
- 5,
- 9,
- 4,
- 10,
- 3,
- 11,
- 2,
- 12,
- 1,
- 13,
- 0,
- 14,
-};
-
-static long _vq_lengthlist__44c2_s0_p4_0[] = {
- 1, 3, 3, 6, 6, 9, 9,11,12,20,20,20,20,20,20, 6,
- 5, 5, 7, 7,10,10,12,13,20,20,20,20,20,20, 7, 5,
- 5, 8, 8,10,10,13,13,20,20,20,20,20,20,20, 8, 8,
- 8, 9,11,11,13,14,20,20,20,20,20,19,19, 8, 8, 9,
- 9,11,11,13,13,19,19,19,19,19,19,19,12,12,10,10,
- 12,12,14,15,19,19,19,19,19,19,19,13,13,10,10,11,
- 11,14,14,19,19,19,19,19,19,19,19,19,11,12,12,12,
- 15,15,19,19,19,19,19,19,19,19,19,12,12,12,12,15,
- 15,19,19,19,19,19,19,19,19,19,15,16,12,13,15,16,
- 19,19,19,19,19,19,19,19,19,17,16,13,13,16,15,19,
- 19,19,19,19,19,19,19,19,19,19,14,15,15,16,19,19,
- 19,19,19,19,19,19,19,19,19,14,15,16,16,19,19,19,
- 19,19,19,19,19,19,19,19,18,17,17,16,19,19,19,19,
- 19,19,19,19,19,19,19,18,18,17,16,19,19,19,19,19,
- 19,
-};
-
-static float _vq_quantthresh__44c2_s0_p4_0[] = {
- -45.5, -38.5, -31.5, -24.5, -17.5, -10.5, -3.5, 3.5,
- 10.5, 17.5, 24.5, 31.5, 38.5, 45.5,
-};
-
-static long _vq_quantmap__44c2_s0_p4_0[] = {
- 13, 11, 9, 7, 5, 3, 1, 0,
- 2, 4, 6, 8, 10, 12, 14,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c2_s0_p4_0 = {
- _vq_quantthresh__44c2_s0_p4_0,
- _vq_quantmap__44c2_s0_p4_0,
- 15,
- 15
-};
-
-static static_codebook _44c2_s0_p4_0 = {
- 2, 225,
- _vq_lengthlist__44c2_s0_p4_0,
- 1, -524779520, 1616642048, 4, 0,
- _vq_quantlist__44c2_s0_p4_0,
- NULL,
- &_vq_auxt__44c2_s0_p4_0,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c2_s0_p4_1.vqh b/lib/books/coupled/_44c2_s0_p4_1.vqh
deleted file mode 100644
index c2bef2f0..00000000
--- a/lib/books/coupled/_44c2_s0_p4_1.vqh
+++ /dev/null
@@ -1,65 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c2_s0_p4_1_VQH_
-#define _V__44c2_s0_p4_1_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c2_s0_p4_1[] = {
- 3,
- 2,
- 4,
- 1,
- 5,
- 0,
- 6,
-};
-
-static long _vq_lengthlist__44c2_s0_p4_1[] = {
- 2, 4, 4, 6, 6, 6, 6, 8, 5, 5, 6, 6, 6, 6, 8, 4,
- 4, 6, 6, 6, 6, 8, 6, 6, 6, 6, 7, 7, 8, 8, 8, 6,
- 6, 7, 7, 8, 8, 8, 7, 7, 7, 7, 8, 8, 8, 6, 6, 7,
- 7,
-};
-
-static float _vq_quantthresh__44c2_s0_p4_1[] = {
- -2.5, -1.5, -0.5, 0.5, 1.5, 2.5,
-};
-
-static long _vq_quantmap__44c2_s0_p4_1[] = {
- 5, 3, 1, 0, 2, 4, 6,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c2_s0_p4_1 = {
- _vq_quantthresh__44c2_s0_p4_1,
- _vq_quantmap__44c2_s0_p4_1,
- 7,
- 7
-};
-
-static static_codebook _44c2_s0_p4_1 = {
- 2, 49,
- _vq_lengthlist__44c2_s0_p4_1,
- 1, -533200896, 1611661312, 3, 0,
- _vq_quantlist__44c2_s0_p4_1,
- NULL,
- &_vq_auxt__44c2_s0_p4_1,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c2_s0_p5_0.vqh b/lib/books/coupled/_44c2_s0_p5_0.vqh
deleted file mode 100644
index 565803f3..00000000
--- a/lib/books/coupled/_44c2_s0_p5_0.vqh
+++ /dev/null
@@ -1,99 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c2_s0_p5_0_VQH_
-#define _V__44c2_s0_p5_0_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c2_s0_p5_0[] = {
- 2,
- 1,
- 3,
- 0,
- 4,
-};
-
-static long _vq_lengthlist__44c2_s0_p5_0[] = {
- 1, 6, 6, 0, 0, 0, 5, 5, 0, 0, 0, 5, 5, 0, 0, 0,
- 8, 8, 0, 0, 0, 0, 0, 0, 0, 6, 8, 7, 0, 0, 0, 9,
- 8, 0, 0, 0, 8, 8, 0, 0, 0,12,12, 0, 0, 0, 0, 0,
- 0, 0, 6, 7, 8, 0, 0, 0, 8, 9, 0, 0, 0, 8, 9, 0,
- 0, 0,12,12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 5, 9, 8, 0, 0, 0, 8, 7, 0, 0,
- 0, 8, 8, 0, 0, 0,10,10, 0, 0, 0, 0, 0, 0, 0, 5,
- 8, 8, 0, 0, 0, 7, 8, 0, 0, 0, 8, 8, 0, 0, 0,10,
- 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 5, 9, 8, 0, 0, 0, 8, 8, 0, 0, 0, 8, 7,
- 0, 0, 0,10,10, 0, 0, 0, 0, 0, 0, 0, 5, 8, 9, 0,
- 0, 0, 8, 8, 0, 0, 0, 7, 8, 0, 0, 0,10,10, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 8,12,12, 0, 0, 0,10,10, 0, 0, 0,10,10, 0, 0, 0,
- 11,11, 0, 0, 0, 0, 0, 0, 0, 8,12,12, 0, 0, 0,10,
- 10, 0, 0, 0,10,10, 0, 0, 0,11,11, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,
-};
-
-static float _vq_quantthresh__44c2_s0_p5_0[] = {
- -1.5, -0.5, 0.5, 1.5,
-};
-
-static long _vq_quantmap__44c2_s0_p5_0[] = {
- 3, 1, 0, 2, 4,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c2_s0_p5_0 = {
- _vq_quantthresh__44c2_s0_p5_0,
- _vq_quantmap__44c2_s0_p5_0,
- 5,
- 5
-};
-
-static static_codebook _44c2_s0_p5_0 = {
- 4, 625,
- _vq_lengthlist__44c2_s0_p5_0,
- 1, -533725184, 1611661312, 3, 0,
- _vq_quantlist__44c2_s0_p5_0,
- NULL,
- &_vq_auxt__44c2_s0_p5_0,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c2_s0_p6_0.vqh b/lib/books/coupled/_44c2_s0_p6_0.vqh
deleted file mode 100644
index f339824e..00000000
--- a/lib/books/coupled/_44c2_s0_p6_0.vqh
+++ /dev/null
@@ -1,93 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c2_s0_p6_0_VQH_
-#define _V__44c2_s0_p6_0_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c2_s0_p6_0[] = {
- 8,
- 7,
- 9,
- 6,
- 10,
- 5,
- 11,
- 4,
- 12,
- 3,
- 13,
- 2,
- 14,
- 1,
- 15,
- 0,
- 16,
-};
-
-static long _vq_lengthlist__44c2_s0_p6_0[] = {
- 1, 4, 4, 7, 7,10,10,12,12, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 4, 4, 7, 7,10,10,12,12, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 4, 4, 7, 7,10,10,12,12, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 6, 6, 8, 8,11,10,13,13, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 8, 7,11,11,13,13, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 9, 9,11,11,13,13, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 8,11,11,13,13, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,10,10,12,12,14,14,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,12,12,14,
- 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,12,12,
- 14,14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,12,
- 12,14,14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 14,13,15,15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,14,15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,15,15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,15,15, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,16,16, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,
-};
-
-static float _vq_quantthresh__44c2_s0_p6_0[] = {
- -7.5, -6.5, -5.5, -4.5, -3.5, -2.5, -1.5, -0.5,
- 0.5, 1.5, 2.5, 3.5, 4.5, 5.5, 6.5, 7.5,
-};
-
-static long _vq_quantmap__44c2_s0_p6_0[] = {
- 15, 13, 11, 9, 7, 5, 3, 1,
- 0, 2, 4, 6, 8, 10, 12, 14,
- 16,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c2_s0_p6_0 = {
- _vq_quantthresh__44c2_s0_p6_0,
- _vq_quantmap__44c2_s0_p6_0,
- 17,
- 17
-};
-
-static static_codebook _44c2_s0_p6_0 = {
- 2, 289,
- _vq_lengthlist__44c2_s0_p6_0,
- 1, -529530880, 1611661312, 5, 0,
- _vq_quantlist__44c2_s0_p6_0,
- NULL,
- &_vq_auxt__44c2_s0_p6_0,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c2_s0_p7_0.vqh b/lib/books/coupled/_44c2_s0_p7_0.vqh
deleted file mode 100644
index 8ff30024..00000000
--- a/lib/books/coupled/_44c2_s0_p7_0.vqh
+++ /dev/null
@@ -1,65 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c2_s0_p7_0_VQH_
-#define _V__44c2_s0_p7_0_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c2_s0_p7_0[] = {
- 3,
- 2,
- 4,
- 1,
- 5,
- 0,
- 6,
-};
-
-static long _vq_lengthlist__44c2_s0_p7_0[] = {
- 1, 3, 3, 7, 7,14,14, 5, 5, 5, 8, 9,15,14, 5, 5,
- 5, 9, 8,15,15,15, 8, 9,10,10,15,15,15, 8, 6,10,
- 9,15,14,14,10,12,12,12,14,14,14,13,10,12,10,14,
- 14,
-};
-
-static float _vq_quantthresh__44c2_s0_p7_0[] = {
- -167.5, -100.5, -33.5, 33.5, 100.5, 167.5,
-};
-
-static long _vq_quantmap__44c2_s0_p7_0[] = {
- 5, 3, 1, 0, 2, 4, 6,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c2_s0_p7_0 = {
- _vq_quantthresh__44c2_s0_p7_0,
- _vq_quantmap__44c2_s0_p7_0,
- 7,
- 7
-};
-
-static static_codebook _44c2_s0_p7_0 = {
- 2, 49,
- _vq_lengthlist__44c2_s0_p7_0,
- 1, -520544256, 1624293376, 3, 0,
- _vq_quantlist__44c2_s0_p7_0,
- NULL,
- &_vq_auxt__44c2_s0_p7_0,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c2_s0_p7_1.vqh b/lib/books/coupled/_44c2_s0_p7_1.vqh
deleted file mode 100644
index faff750d..00000000
--- a/lib/books/coupled/_44c2_s0_p7_1.vqh
+++ /dev/null
@@ -1,115 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c2_s0_p7_1_VQH_
-#define _V__44c2_s0_p7_1_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c2_s0_p7_1[] = {
- 11,
- 10,
- 12,
- 9,
- 13,
- 8,
- 14,
- 7,
- 15,
- 6,
- 16,
- 5,
- 17,
- 4,
- 18,
- 3,
- 19,
- 2,
- 20,
- 1,
- 21,
- 0,
- 22,
-};
-
-static long _vq_lengthlist__44c2_s0_p7_1[] = {
- 1, 4, 4, 6, 6, 7, 7, 8, 8, 9, 9, 9, 9,10,10,10,
- 10,10,10,10,10,10,10, 6, 6, 6, 7, 7, 8, 8, 9, 9,
- 10,10,10,10,11,11,11,11,10,10,10,10,11,11,14, 6,
- 6, 7, 7, 9, 8, 9, 9,10,10,10,10,11,10,11,11,10,
- 10,10,10,11,11,14, 8, 8, 8, 8, 9, 9,10,10,10,11,
- 11,11,11,11,11,11,11,11,11,11,12,12,14, 8, 8, 8,
- 8, 9, 9,10,10,10,11,11,11,11,11,12,11,11,11,11,
- 11,12,12,14,11,11, 9, 9,10,10,10,10,11,11,11,11,
- 11,11,12,12,11,11,11,11,12,12,14,15,14, 9, 9,10,
- 10,10,10,11,11,11,11,11,12,12,12,11,12,11,11,12,
- 12,14,15,14,10,10,10,10,11,11,11,11,12,11,12,12,
- 12,12,12,12,12,12,12,12,15,15,14,11,11,10,10,11,
- 11,11,11,12,11,12,12,12,12,12,12,11,12,12,12,14,
- 14,14,13,13,11,10,11,11,12,12,12,12,12,12,12,12,
- 12,12,12,12,12,13,14,14,15,15,16,11,10,11,11,12,
- 12,12,12,12,12,12,12,12,12,12,12,13,12,14,15,14,
- 15,14,12,12,11,11,12,12,12,12,12,12,12,12,12,12,
- 12,12,13,13,15,15,15,15,15,12,12,11,11,12,12,12,
- 12,12,12,12,12,12,12,12,12,13,13,14,15,14,16,15,
- 14,13,12,12,12,12,13,12,12,13,13,13,12,12,12,12,
- 13,13,15,15,15,14,14,14,15,11,12,12,12,12,12,13,
- 13,13,13,12,12,12,12,13,13,14,15,14,15,16,14,14,
- 13,13,12,13,13,13,13,13,12,13,12,12,12,12,13,13,
- 16,15,14,15,15,15,15,13,14,12,12,12,12,13,12,13,
- 13,13,12,12,13,13,13,15,15,15,15,14,15,15,14,14,
- 13,12,13,13,13,13,13,13,13,13,12,13,13,13,15,15,
- 15,14,15,15,15,14,14,12,13,13,13,13,12,13,13,12,
- 13,12,12,13,14,14,14,14,15,14,15,15,14,15,14,14,
- 13,13,13,13,13,13,13,13,13,13,13,13,15,14,15,15,
- 14,14,15,14,15,14,13,13,12,13,13,13,13,12,13,12,
- 12,14,14,16,15,15,15,15,15,16,14,16,15,14,14,13,
- 13,13,14,13,13,13,13,13,14,14,16,15,15,15,15,15,
- 15,16,15,16,15,13,12,13,13,13,14,13,13,13,13,14,
- 14,
-};
-
-static float _vq_quantthresh__44c2_s0_p7_1[] = {
- -31.5, -28.5, -25.5, -22.5, -19.5, -16.5, -13.5, -10.5,
- -7.5, -4.5, -1.5, 1.5, 4.5, 7.5, 10.5, 13.5,
- 16.5, 19.5, 22.5, 25.5, 28.5, 31.5,
-};
-
-static long _vq_quantmap__44c2_s0_p7_1[] = {
- 21, 19, 17, 15, 13, 11, 9, 7,
- 5, 3, 1, 0, 2, 4, 6, 8,
- 10, 12, 14, 16, 18, 20, 22,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c2_s0_p7_1 = {
- _vq_quantthresh__44c2_s0_p7_1,
- _vq_quantmap__44c2_s0_p7_1,
- 23,
- 23
-};
-
-static static_codebook _44c2_s0_p7_1 = {
- 2, 529,
- _vq_lengthlist__44c2_s0_p7_1,
- 1, -525303808, 1614282752, 5, 0,
- _vq_quantlist__44c2_s0_p7_1,
- NULL,
- &_vq_auxt__44c2_s0_p7_1,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c2_s0_p7_2.vqh b/lib/books/coupled/_44c2_s0_p7_2.vqh
deleted file mode 100644
index 9133fd77..00000000
--- a/lib/books/coupled/_44c2_s0_p7_2.vqh
+++ /dev/null
@@ -1,63 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c2_s0_p7_2_VQH_
-#define _V__44c2_s0_p7_2_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c2_s0_p7_2[] = {
- 1,
- 0,
- 2,
-};
-
-static long _vq_lengthlist__44c2_s0_p7_2[] = {
- 2, 6, 5, 7, 6, 6, 7, 6, 6, 6, 6, 6, 7, 7, 7, 7,
- 7, 7, 6, 6, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 8, 7,
- 7, 8, 7, 7, 6, 7, 7, 7, 7, 7, 7, 7, 7, 6, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 8, 7, 7, 8, 7, 7, 6,
- 7, 7, 7, 7, 7, 7, 7, 7, 6, 7, 7, 7, 7, 7, 7, 7,
- 7,
-};
-
-static float _vq_quantthresh__44c2_s0_p7_2[] = {
- -0.5, 0.5,
-};
-
-static long _vq_quantmap__44c2_s0_p7_2[] = {
- 1, 0, 2,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c2_s0_p7_2 = {
- _vq_quantthresh__44c2_s0_p7_2,
- _vq_quantmap__44c2_s0_p7_2,
- 3,
- 3
-};
-
-static static_codebook _44c2_s0_p7_2 = {
- 4, 81,
- _vq_lengthlist__44c2_s0_p7_2,
- 1, -535822336, 1611661312, 2, 0,
- _vq_quantlist__44c2_s0_p7_2,
- NULL,
- &_vq_auxt__44c2_s0_p7_2,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c2_s1_p5_0.vqh b/lib/books/coupled/_44c2_s1_p5_0.vqh
deleted file mode 100644
index c2a243b1..00000000
--- a/lib/books/coupled/_44c2_s1_p5_0.vqh
+++ /dev/null
@@ -1,63 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c2_s1_p5_0_VQH_
-#define _V__44c2_s1_p5_0_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c2_s1_p5_0[] = {
- 1,
- 0,
- 2,
-};
-
-static long _vq_lengthlist__44c2_s1_p5_0[] = {
- 1, 3, 3, 0, 0, 0, 0, 0, 0, 4, 5, 5, 0, 0, 0, 0,
- 0, 0, 4, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,
-};
-
-static float _vq_quantthresh__44c2_s1_p5_0[] = {
- -0.5, 0.5,
-};
-
-static long _vq_quantmap__44c2_s1_p5_0[] = {
- 1, 0, 2,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c2_s1_p5_0 = {
- _vq_quantthresh__44c2_s1_p5_0,
- _vq_quantmap__44c2_s1_p5_0,
- 3,
- 3
-};
-
-static static_codebook _44c2_s1_p5_0 = {
- 4, 81,
- _vq_lengthlist__44c2_s1_p5_0,
- 1, -535822336, 1611661312, 2, 0,
- _vq_quantlist__44c2_s1_p5_0,
- NULL,
- &_vq_auxt__44c2_s1_p5_0,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c2_s1_p6_0.vqh b/lib/books/coupled/_44c2_s1_p6_0.vqh
deleted file mode 100644
index f99baeab..00000000
--- a/lib/books/coupled/_44c2_s1_p6_0.vqh
+++ /dev/null
@@ -1,93 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c2_s1_p6_0_VQH_
-#define _V__44c2_s1_p6_0_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c2_s1_p6_0[] = {
- 8,
- 7,
- 9,
- 6,
- 10,
- 5,
- 11,
- 4,
- 12,
- 3,
- 13,
- 2,
- 14,
- 1,
- 15,
- 0,
- 16,
-};
-
-static long _vq_lengthlist__44c2_s1_p6_0[] = {
- 1, 3, 2, 5, 4, 9, 9,11,11, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 9, 9,11,11, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 9, 9,11,11, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,10, 9,12,12, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0,10,10,12,12, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,10,10,12,12, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,10,10,12,12, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,11,11,13,13,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,11,11,13,
- 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,11,11,
- 13,13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,11,
- 11,13,13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 13,12,14,14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,13,14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,14,14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,14,14, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,15,15, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,
-};
-
-static float _vq_quantthresh__44c2_s1_p6_0[] = {
- -7.5, -6.5, -5.5, -4.5, -3.5, -2.5, -1.5, -0.5,
- 0.5, 1.5, 2.5, 3.5, 4.5, 5.5, 6.5, 7.5,
-};
-
-static long _vq_quantmap__44c2_s1_p6_0[] = {
- 15, 13, 11, 9, 7, 5, 3, 1,
- 0, 2, 4, 6, 8, 10, 12, 14,
- 16,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c2_s1_p6_0 = {
- _vq_quantthresh__44c2_s1_p6_0,
- _vq_quantmap__44c2_s1_p6_0,
- 17,
- 17
-};
-
-static static_codebook _44c2_s1_p6_0 = {
- 2, 289,
- _vq_lengthlist__44c2_s1_p6_0,
- 1, -529530880, 1611661312, 5, 0,
- _vq_quantlist__44c2_s1_p6_0,
- NULL,
- &_vq_auxt__44c2_s1_p6_0,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c2_s1_p7_0.vqh b/lib/books/coupled/_44c2_s1_p7_0.vqh
deleted file mode 100644
index 4c1080da..00000000
--- a/lib/books/coupled/_44c2_s1_p7_0.vqh
+++ /dev/null
@@ -1,65 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c2_s1_p7_0_VQH_
-#define _V__44c2_s1_p7_0_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c2_s1_p7_0[] = {
- 3,
- 2,
- 4,
- 1,
- 5,
- 0,
- 6,
-};
-
-static long _vq_lengthlist__44c2_s1_p7_0[] = {
- 1, 3, 3, 7, 7,14,14, 5, 5, 5, 8, 9,15,14, 5, 5,
- 5, 9, 8,15,15,15, 8, 9,10,10,15,15,15, 8, 6,10,
- 9,15,14,14,10,12,12,12,14,14,14,13,10,12,10,14,
- 14,
-};
-
-static float _vq_quantthresh__44c2_s1_p7_0[] = {
- -167.5, -100.5, -33.5, 33.5, 100.5, 167.5,
-};
-
-static long _vq_quantmap__44c2_s1_p7_0[] = {
- 5, 3, 1, 0, 2, 4, 6,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c2_s1_p7_0 = {
- _vq_quantthresh__44c2_s1_p7_0,
- _vq_quantmap__44c2_s1_p7_0,
- 7,
- 7
-};
-
-static static_codebook _44c2_s1_p7_0 = {
- 2, 49,
- _vq_lengthlist__44c2_s1_p7_0,
- 1, -520544256, 1624293376, 3, 0,
- _vq_quantlist__44c2_s1_p7_0,
- NULL,
- &_vq_auxt__44c2_s1_p7_0,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c2_s1_p7_1.vqh b/lib/books/coupled/_44c2_s1_p7_1.vqh
deleted file mode 100644
index f2fe33b1..00000000
--- a/lib/books/coupled/_44c2_s1_p7_1.vqh
+++ /dev/null
@@ -1,115 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c2_s1_p7_1_VQH_
-#define _V__44c2_s1_p7_1_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c2_s1_p7_1[] = {
- 11,
- 10,
- 12,
- 9,
- 13,
- 8,
- 14,
- 7,
- 15,
- 6,
- 16,
- 5,
- 17,
- 4,
- 18,
- 3,
- 19,
- 2,
- 20,
- 1,
- 21,
- 0,
- 22,
-};
-
-static long _vq_lengthlist__44c2_s1_p7_1[] = {
- 1, 4, 4, 6, 6, 7, 7, 8, 8, 9, 9, 9, 9, 9,10,10,
- 10,10,10,10,10,10,10, 7, 6, 6, 7, 7, 8, 8, 9, 9,
- 10,10,10,10,11,11,11,11,10,10,10,10,11,11,14, 6,
- 6, 7, 7, 8, 8, 9, 9,10,10,10,10,10,10,11,11,10,
- 10,10,10,11,11,14, 8, 8, 8, 8, 9, 9,10,10,10,11,
- 11,11,11,11,11,11,11,11,11,11,12,11,14, 8, 8, 8,
- 8, 9, 9,10,10,10,11,11,11,11,11,11,11,11,11,11,
- 11,11,12,14,11,11, 9, 9,10,10,10,10,11,11,11,11,
- 11,11,12,12,11,11,11,11,12,12,14,15,14, 9, 9,10,
- 10,10,10,11,11,11,11,11,12,12,11,11,11,11,11,12,
- 12,14,15,14,10,10,10,10,11,11,11,11,11,11,12,12,
- 12,12,11,12,12,12,12,12,15,15,14,11,10,10,10,11,
- 11,11,11,12,11,12,12,12,12,12,12,11,12,12,12,14,
- 14,14,13,13,11,10,11,11,12,12,12,12,12,12,12,12,
- 12,12,12,12,12,13,14,14,15,15,16,11,10,11,11,11,
- 12,12,12,12,12,12,12,12,12,12,12,12,12,14,15,14,
- 15,14,12,12,11,11,12,12,12,12,12,12,12,12,12,12,
- 12,12,13,13,14,15,15,14,14,12,11,11,11,12,12,12,
- 12,12,12,12,12,12,12,12,12,13,13,14,15,14,16,15,
- 14,13,12,12,12,12,12,12,12,12,12,12,12,12,12,12,
- 13,13,15,15,15,14,14,14,15,11,12,12,12,12,12,13,
- 13,12,13,12,12,12,12,13,13,14,15,14,15,16,14,14,
- 13,13,12,13,13,13,13,13,12,12,12,12,12,12,13,13,
- 16,15,14,15,15,15,15,13,14,12,12,12,12,13,12,13,
- 13,13,12,12,13,13,13,14,15,15,15,14,15,15,14,14,
- 13,12,13,13,13,13,13,13,13,13,12,13,13,13,15,14,
- 15,14,15,15,15,14,14,12,13,13,13,13,12,13,12,12,
- 13,12,12,13,14,14,14,14,15,14,15,15,14,15,14,14,
- 13,13,13,13,13,13,12,13,12,13,13,13,15,14,15,15,
- 14,14,15,14,15,14,13,13,12,13,12,13,13,12,13,12,
- 12,13,13,16,15,15,15,15,15,16,14,16,15,14,13,13,
- 13,13,14,13,13,13,13,13,14,14,15,15,15,15,15,15,
- 15,15,15,16,15,13,12,13,13,13,14,13,13,13,13,14,
- 14,
-};
-
-static float _vq_quantthresh__44c2_s1_p7_1[] = {
- -31.5, -28.5, -25.5, -22.5, -19.5, -16.5, -13.5, -10.5,
- -7.5, -4.5, -1.5, 1.5, 4.5, 7.5, 10.5, 13.5,
- 16.5, 19.5, 22.5, 25.5, 28.5, 31.5,
-};
-
-static long _vq_quantmap__44c2_s1_p7_1[] = {
- 21, 19, 17, 15, 13, 11, 9, 7,
- 5, 3, 1, 0, 2, 4, 6, 8,
- 10, 12, 14, 16, 18, 20, 22,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c2_s1_p7_1 = {
- _vq_quantthresh__44c2_s1_p7_1,
- _vq_quantmap__44c2_s1_p7_1,
- 23,
- 23
-};
-
-static static_codebook _44c2_s1_p7_1 = {
- 2, 529,
- _vq_lengthlist__44c2_s1_p7_1,
- 1, -525303808, 1614282752, 5, 0,
- _vq_quantlist__44c2_s1_p7_1,
- NULL,
- &_vq_auxt__44c2_s1_p7_1,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c2_s1_p7_2.vqh b/lib/books/coupled/_44c2_s1_p7_2.vqh
deleted file mode 100644
index f6bdd409..00000000
--- a/lib/books/coupled/_44c2_s1_p7_2.vqh
+++ /dev/null
@@ -1,63 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c2_s1_p7_2_VQH_
-#define _V__44c2_s1_p7_2_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c2_s1_p7_2[] = {
- 1,
- 0,
- 2,
-};
-
-static long _vq_lengthlist__44c2_s1_p7_2[] = {
- 2, 5, 5, 7, 7, 7, 7, 7, 7, 5, 5, 5, 7, 7, 7, 7,
- 7, 7, 5, 5, 5, 7, 7, 7, 7, 7, 7, 7, 7, 7, 8, 8,
- 8, 8, 8, 8, 7, 7, 7, 8, 7, 7, 8, 7, 7, 7, 7, 7,
- 8, 7, 7, 8, 7, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7,
-};
-
-static float _vq_quantthresh__44c2_s1_p7_2[] = {
- -0.5, 0.5,
-};
-
-static long _vq_quantmap__44c2_s1_p7_2[] = {
- 1, 0, 2,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c2_s1_p7_2 = {
- _vq_quantthresh__44c2_s1_p7_2,
- _vq_quantmap__44c2_s1_p7_2,
- 3,
- 3
-};
-
-static static_codebook _44c2_s1_p7_2 = {
- 4, 81,
- _vq_lengthlist__44c2_s1_p7_2,
- 1, -535822336, 1611661312, 2, 0,
- _vq_quantlist__44c2_s1_p7_2,
- NULL,
- &_vq_auxt__44c2_s1_p7_2,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c2_s2_p6_0.vqh b/lib/books/coupled/_44c2_s2_p6_0.vqh
deleted file mode 100644
index 0faa5409..00000000
--- a/lib/books/coupled/_44c2_s2_p6_0.vqh
+++ /dev/null
@@ -1,70 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c2_s2_p6_0_VQH_
-#define _V__44c2_s2_p6_0_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c2_s2_p6_0[] = {
- 4,
- 3,
- 5,
- 2,
- 6,
- 1,
- 7,
- 0,
- 8,
-};
-
-static long _vq_lengthlist__44c2_s2_p6_0[] = {
- 1, 3, 2, 5, 4, 7, 6, 8, 8, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,
-};
-
-static float _vq_quantthresh__44c2_s2_p6_0[] = {
- -3.5, -2.5, -1.5, -0.5, 0.5, 1.5, 2.5, 3.5,
-};
-
-static long _vq_quantmap__44c2_s2_p6_0[] = {
- 7, 5, 3, 1, 0, 2, 4, 6,
- 8,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c2_s2_p6_0 = {
- _vq_quantthresh__44c2_s2_p6_0,
- _vq_quantmap__44c2_s2_p6_0,
- 9,
- 9
-};
-
-static static_codebook _44c2_s2_p6_0 = {
- 2, 81,
- _vq_lengthlist__44c2_s2_p6_0,
- 1, -531628032, 1611661312, 4, 0,
- _vq_quantlist__44c2_s2_p6_0,
- NULL,
- &_vq_auxt__44c2_s2_p6_0,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c2_s2_p7_0.vqh b/lib/books/coupled/_44c2_s2_p7_0.vqh
deleted file mode 100644
index b8870ca0..00000000
--- a/lib/books/coupled/_44c2_s2_p7_0.vqh
+++ /dev/null
@@ -1,65 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c2_s2_p7_0_VQH_
-#define _V__44c2_s2_p7_0_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c2_s2_p7_0[] = {
- 3,
- 2,
- 4,
- 1,
- 5,
- 0,
- 6,
-};
-
-static long _vq_lengthlist__44c2_s2_p7_0[] = {
- 1, 3, 3, 7, 7,14,14, 5, 5, 5, 8, 9,15,14, 5, 5,
- 5, 9, 8,15,15,15, 8, 9,10,10,15,15,15, 8, 6,10,
- 9,15,14,14,10,12,12,12,14,14,14,13,10,12,10,14,
- 14,
-};
-
-static float _vq_quantthresh__44c2_s2_p7_0[] = {
- -167.5, -100.5, -33.5, 33.5, 100.5, 167.5,
-};
-
-static long _vq_quantmap__44c2_s2_p7_0[] = {
- 5, 3, 1, 0, 2, 4, 6,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c2_s2_p7_0 = {
- _vq_quantthresh__44c2_s2_p7_0,
- _vq_quantmap__44c2_s2_p7_0,
- 7,
- 7
-};
-
-static static_codebook _44c2_s2_p7_0 = {
- 2, 49,
- _vq_lengthlist__44c2_s2_p7_0,
- 1, -520544256, 1624293376, 3, 0,
- _vq_quantlist__44c2_s2_p7_0,
- NULL,
- &_vq_auxt__44c2_s2_p7_0,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c2_s2_p7_1.vqh b/lib/books/coupled/_44c2_s2_p7_1.vqh
deleted file mode 100644
index efc84821..00000000
--- a/lib/books/coupled/_44c2_s2_p7_1.vqh
+++ /dev/null
@@ -1,115 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c2_s2_p7_1_VQH_
-#define _V__44c2_s2_p7_1_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c2_s2_p7_1[] = {
- 11,
- 10,
- 12,
- 9,
- 13,
- 8,
- 14,
- 7,
- 15,
- 6,
- 16,
- 5,
- 17,
- 4,
- 18,
- 3,
- 19,
- 2,
- 20,
- 1,
- 21,
- 0,
- 22,
-};
-
-static long _vq_lengthlist__44c2_s2_p7_1[] = {
- 1, 4, 4, 6, 6, 7, 7, 8, 8, 9, 9, 9, 9, 9,10,10,
- 10,10,10,10,10,10,10, 7, 6, 6, 7, 7, 8, 8, 9, 9,
- 10,10,10,10,10,11,11,11,10,10,10,10,11,11,14, 6,
- 6, 7, 7, 8, 8, 9, 9,10,10,10,10,10,10,11,10,10,
- 10,10,10,11,11,14, 8, 9, 8, 8, 9, 9,10,10,10,10,
- 11,11,11,11,11,11,11,11,11,11,11,11,14, 9, 9, 8,
- 8, 9, 9,10,10,10,11,11,11,11,11,11,11,11,11,11,
- 11,11,12,14,11,11, 9, 9,10,10,10,10,11,11,11,11,
- 11,11,12,12,11,11,11,11,12,12,14,15,14, 9, 9, 9,
- 10,10,10,11,11,11,11,11,11,12,11,11,11,11,11,12,
- 12,14,15,14,10,10,10,10,11,11,11,11,11,11,12,12,
- 12,12,11,12,11,11,12,12,15,15,14,10,10,10,10,11,
- 11,11,11,12,11,12,12,12,12,12,12,11,12,12,12,14,
- 14,14,13,13,11,10,11,11,12,11,12,12,12,12,12,12,
- 12,12,12,12,12,12,14,14,15,15,16,10,10,11,11,11,
- 12,12,12,12,12,12,12,12,12,12,12,12,12,14,15,14,
- 15,14,12,12,11,11,12,12,12,12,12,12,12,12,12,12,
- 12,12,13,13,14,15,14,14,14,12,11,11,11,12,12,12,
- 12,12,12,12,12,12,12,12,12,13,13,14,15,14,15,15,
- 14,13,12,12,12,12,12,12,12,12,12,12,12,12,12,12,
- 13,13,15,15,15,14,14,14,14,11,12,12,12,12,12,13,
- 13,12,12,12,12,12,12,13,13,14,15,14,14,16,14,14,
- 13,12,12,12,13,12,13,12,12,12,12,12,12,12,13,13,
- 16,15,14,15,15,15,15,13,13,12,12,12,12,13,12,13,
- 13,13,12,12,13,13,13,14,15,15,15,14,15,15,14,14,
- 13,12,13,13,13,13,13,13,13,13,12,13,13,13,15,14,
- 15,14,15,15,15,14,14,12,13,13,13,13,12,13,12,12,
- 13,12,12,13,14,14,14,14,15,14,15,15,14,15,14,14,
- 13,13,13,13,13,13,12,13,12,13,13,13,15,14,15,15,
- 14,14,15,14,15,13,13,13,12,13,12,13,13,12,13,12,
- 12,13,13,15,15,15,15,15,15,16,14,16,15,14,13,12,
- 13,13,14,13,13,13,13,13,14,14,15,15,15,15,15,15,
- 15,15,15,16,15,13,12,13,13,13,13,13,13,13,13,14,
- 13,
-};
-
-static float _vq_quantthresh__44c2_s2_p7_1[] = {
- -31.5, -28.5, -25.5, -22.5, -19.5, -16.5, -13.5, -10.5,
- -7.5, -4.5, -1.5, 1.5, 4.5, 7.5, 10.5, 13.5,
- 16.5, 19.5, 22.5, 25.5, 28.5, 31.5,
-};
-
-static long _vq_quantmap__44c2_s2_p7_1[] = {
- 21, 19, 17, 15, 13, 11, 9, 7,
- 5, 3, 1, 0, 2, 4, 6, 8,
- 10, 12, 14, 16, 18, 20, 22,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c2_s2_p7_1 = {
- _vq_quantthresh__44c2_s2_p7_1,
- _vq_quantmap__44c2_s2_p7_1,
- 23,
- 23
-};
-
-static static_codebook _44c2_s2_p7_1 = {
- 2, 529,
- _vq_lengthlist__44c2_s2_p7_1,
- 1, -525303808, 1614282752, 5, 0,
- _vq_quantlist__44c2_s2_p7_1,
- NULL,
- &_vq_auxt__44c2_s2_p7_1,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c2_s2_p7_2.vqh b/lib/books/coupled/_44c2_s2_p7_2.vqh
deleted file mode 100644
index ebce281e..00000000
--- a/lib/books/coupled/_44c2_s2_p7_2.vqh
+++ /dev/null
@@ -1,63 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c2_s2_p7_2_VQH_
-#define _V__44c2_s2_p7_2_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c2_s2_p7_2[] = {
- 1,
- 0,
- 2,
-};
-
-static long _vq_lengthlist__44c2_s2_p7_2[] = {
- 2, 5, 5, 7, 7, 7, 7, 7, 7, 5, 5, 5, 7, 7, 7, 7,
- 7, 7, 5, 5, 5, 7, 7, 7, 7, 7, 7, 7, 7, 7, 8, 8,
- 8, 8, 8, 8, 7, 7, 7, 8, 7, 7, 8, 7, 7, 7, 7, 7,
- 8, 7, 7, 8, 7, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7,
-};
-
-static float _vq_quantthresh__44c2_s2_p7_2[] = {
- -0.5, 0.5,
-};
-
-static long _vq_quantmap__44c2_s2_p7_2[] = {
- 1, 0, 2,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c2_s2_p7_2 = {
- _vq_quantthresh__44c2_s2_p7_2,
- _vq_quantmap__44c2_s2_p7_2,
- 3,
- 3
-};
-
-static static_codebook _44c2_s2_p7_2 = {
- 4, 81,
- _vq_lengthlist__44c2_s2_p7_2,
- 1, -535822336, 1611661312, 2, 0,
- _vq_quantlist__44c2_s2_p7_2,
- NULL,
- &_vq_auxt__44c2_s2_p7_2,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c2_s3_p7_0.vqh b/lib/books/coupled/_44c2_s3_p7_0.vqh
deleted file mode 100644
index b572a5e4..00000000
--- a/lib/books/coupled/_44c2_s3_p7_0.vqh
+++ /dev/null
@@ -1,65 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c2_s3_p7_0_VQH_
-#define _V__44c2_s3_p7_0_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c2_s3_p7_0[] = {
- 3,
- 2,
- 4,
- 1,
- 5,
- 0,
- 6,
-};
-
-static long _vq_lengthlist__44c2_s3_p7_0[] = {
- 1, 3, 3, 7, 7,14,14, 5, 5, 5, 8, 9,15,14, 5, 5,
- 5, 9, 8,15,15,15, 8, 9,10,10,15,15,15, 8, 6,10,
- 9,15,14,14,10,12,12,12,14,14,14,13,10,12,10,14,
- 14,
-};
-
-static float _vq_quantthresh__44c2_s3_p7_0[] = {
- -167.5, -100.5, -33.5, 33.5, 100.5, 167.5,
-};
-
-static long _vq_quantmap__44c2_s3_p7_0[] = {
- 5, 3, 1, 0, 2, 4, 6,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c2_s3_p7_0 = {
- _vq_quantthresh__44c2_s3_p7_0,
- _vq_quantmap__44c2_s3_p7_0,
- 7,
- 7
-};
-
-static static_codebook _44c2_s3_p7_0 = {
- 2, 49,
- _vq_lengthlist__44c2_s3_p7_0,
- 1, -520544256, 1624293376, 3, 0,
- _vq_quantlist__44c2_s3_p7_0,
- NULL,
- &_vq_auxt__44c2_s3_p7_0,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c2_s3_p7_1.vqh b/lib/books/coupled/_44c2_s3_p7_1.vqh
deleted file mode 100644
index 1f965a47..00000000
--- a/lib/books/coupled/_44c2_s3_p7_1.vqh
+++ /dev/null
@@ -1,115 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c2_s3_p7_1_VQH_
-#define _V__44c2_s3_p7_1_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c2_s3_p7_1[] = {
- 11,
- 10,
- 12,
- 9,
- 13,
- 8,
- 14,
- 7,
- 15,
- 6,
- 16,
- 5,
- 17,
- 4,
- 18,
- 3,
- 19,
- 2,
- 20,
- 1,
- 21,
- 0,
- 22,
-};
-
-static long _vq_lengthlist__44c2_s3_p7_1[] = {
- 1, 4, 4, 6, 6, 7, 7, 8, 8, 9, 9, 9, 9, 9, 9,10,
- 10,10,10, 9, 9,10,10, 7, 6, 6, 8, 8, 8, 8, 9, 9,
- 10,10,10,10,10,11,11,11,10,10,10,10,11,11,14, 6,
- 6, 8, 7, 8, 8, 9, 9,10,10,10,10,10,10,11,10,10,
- 10,10,10,11,11,14, 8, 8, 8, 8, 9, 9,10,10,10,10,
- 11,11,11,11,11,11,11,11,11,11,11,11,14, 8, 8, 8,
- 8, 9, 9,10,10,10,10,11,11,11,11,11,11,11,11,11,
- 11,11,11,14,11,11, 9, 9,10,10,10,10,11,11,11,11,
- 11,11,12,12,11,11,11,11,12,12,14,15,14, 9, 9, 9,
- 10,10,10,11,11,11,11,11,11,12,11,11,11,11,11,12,
- 12,14,14,14,10,10,10,10,11,11,11,11,11,11,12,12,
- 12,12,11,12,11,11,12,12,14,14,14,11,11,10,10,10,
- 11,11,11,12,11,11,12,12,12,12,12,11,11,12,12,14,
- 14,14,13,13,11,10,11,11,11,11,12,12,12,12,12,12,
- 12,12,12,12,12,12,14,14,15,15,15,10,10,11,11,11,
- 12,12,12,12,12,12,12,12,12,12,12,12,12,14,14,14,
- 15,14,11,12,11,11,12,12,12,12,12,12,12,12,12,12,
- 12,12,13,13,14,15,14,14,14,12,11,11,11,11,12,12,
- 12,12,12,12,12,12,12,12,12,13,13,14,15,14,15,15,
- 14,13,12,12,12,12,12,12,12,12,12,12,12,12,12,12,
- 13,13,15,14,15,14,14,14,14,11,12,12,11,12,12,13,
- 13,12,12,12,12,12,12,13,13,14,14,14,14,16,14,14,
- 13,12,12,12,12,12,12,12,12,12,12,12,12,12,13,13,
- 16,15,14,15,15,15,15,13,13,12,12,12,12,13,12,13,
- 13,13,12,12,13,13,13,14,14,15,15,14,15,15,14,14,
- 13,12,13,13,13,13,13,13,13,12,12,13,13,13,15,14,
- 15,14,15,14,15,14,14,12,13,13,13,13,12,13,12,12,
- 13,12,12,13,14,14,14,14,15,14,15,15,14,15,14,14,
- 13,13,13,12,13,13,12,13,12,12,13,13,15,14,15,15,
- 14,14,15,14,14,13,13,12,12,13,12,13,13,12,12,12,
- 12,13,13,15,15,15,15,15,15,16,14,15,15,14,13,12,
- 13,13,13,13,13,13,13,13,14,14,15,15,15,15,15,15,
- 15,15,15,16,15,13,12,13,13,13,13,13,13,13,13,14,
- 13,
-};
-
-static float _vq_quantthresh__44c2_s3_p7_1[] = {
- -31.5, -28.5, -25.5, -22.5, -19.5, -16.5, -13.5, -10.5,
- -7.5, -4.5, -1.5, 1.5, 4.5, 7.5, 10.5, 13.5,
- 16.5, 19.5, 22.5, 25.5, 28.5, 31.5,
-};
-
-static long _vq_quantmap__44c2_s3_p7_1[] = {
- 21, 19, 17, 15, 13, 11, 9, 7,
- 5, 3, 1, 0, 2, 4, 6, 8,
- 10, 12, 14, 16, 18, 20, 22,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c2_s3_p7_1 = {
- _vq_quantthresh__44c2_s3_p7_1,
- _vq_quantmap__44c2_s3_p7_1,
- 23,
- 23
-};
-
-static static_codebook _44c2_s3_p7_1 = {
- 2, 529,
- _vq_lengthlist__44c2_s3_p7_1,
- 1, -525303808, 1614282752, 5, 0,
- _vq_quantlist__44c2_s3_p7_1,
- NULL,
- &_vq_auxt__44c2_s3_p7_1,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c2_s3_p7_2.vqh b/lib/books/coupled/_44c2_s3_p7_2.vqh
deleted file mode 100644
index b51f25e6..00000000
--- a/lib/books/coupled/_44c2_s3_p7_2.vqh
+++ /dev/null
@@ -1,63 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c2_s3_p7_2_VQH_
-#define _V__44c2_s3_p7_2_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c2_s3_p7_2[] = {
- 1,
- 0,
- 2,
-};
-
-static long _vq_lengthlist__44c2_s3_p7_2[] = {
- 2, 5, 5, 7, 7, 7, 7, 7, 7, 5, 5, 5, 7, 7, 7, 7,
- 7, 7, 5, 5, 5, 7, 7, 7, 7, 7, 7, 7, 7, 7, 8, 8,
- 8, 8, 8, 8, 7, 7, 7, 8, 7, 7, 8, 7, 7, 7, 7, 7,
- 8, 7, 7, 8, 7, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7,
-};
-
-static float _vq_quantthresh__44c2_s3_p7_2[] = {
- -0.5, 0.5,
-};
-
-static long _vq_quantmap__44c2_s3_p7_2[] = {
- 1, 0, 2,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c2_s3_p7_2 = {
- _vq_quantthresh__44c2_s3_p7_2,
- _vq_quantmap__44c2_s3_p7_2,
- 3,
- 3
-};
-
-static static_codebook _44c2_s3_p7_2 = {
- 4, 81,
- _vq_lengthlist__44c2_s3_p7_2,
- 1, -535822336, 1611661312, 2, 0,
- _vq_quantlist__44c2_s3_p7_2,
- NULL,
- &_vq_auxt__44c2_s3_p7_2,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c2_short.vqh b/lib/books/coupled/_44c2_short.vqh
deleted file mode 100644
index cf69d2ce..00000000
--- a/lib/books/coupled/_44c2_short.vqh
+++ /dev/null
@@ -1,40 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by huff/huffbuld
-
- ********************************************************************/
-
-#ifndef _V__44c2_short_VQH_
-#define _V__44c2_short_VQH_
-#include "codebook.h"
-
-static long _huff_lengthlist__44c2_short[] = {
- 8,17,17,17,17, 8,10,14,16,10, 9,10,11,17,17,17,
- 17, 7, 5, 6, 8,17,17,17,17, 8, 5, 5, 8,17,17,17,
- 17, 9, 6, 5, 7,16,16,16, 6,16,16,16,16, 3, 3,10,
- 9,16,16,16,16, 3, 2, 7,13,10, 5, 4, 5, 8, 6, 8,
-};
-
-static static_codebook _huff_book__44c2_short = {
- 2, 64,
- _huff_lengthlist__44c2_short,
- 0, 0, 0, 0, 0,
- NULL,
- NULL,
- NULL,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c3_long.vqh b/lib/books/coupled/_44c3_long.vqh
deleted file mode 100644
index a9716376..00000000
--- a/lib/books/coupled/_44c3_long.vqh
+++ /dev/null
@@ -1,40 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by huff/huffbuld
-
- ********************************************************************/
-
-#ifndef _V__44c3_long_VQH_
-#define _V__44c3_long_VQH_
-#include "codebook.h"
-
-static long _huff_lengthlist__44c3_long[] = {
- 3, 9,12,12,10, 7, 9,11, 9, 4, 5, 7, 8, 6, 8,12,
- 11, 4, 4, 6, 7, 8, 8,13,11, 6, 5, 6, 6,11,10,13,
- 9, 7, 6, 5, 4,13,12, 8, 5,18,18,18,18, 2, 5,11,
- 9,18,18,18,18, 5, 6,12,11,15,14,12, 7,11,11, 9,
-};
-
-static static_codebook _huff_book__44c3_long = {
- 2, 64,
- _huff_lengthlist__44c3_long,
- 0, 0, 0, 0, 0,
- NULL,
- NULL,
- NULL,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c3_s0_p1_0.vqh b/lib/books/coupled/_44c3_s0_p1_0.vqh
deleted file mode 100644
index 813d3739..00000000
--- a/lib/books/coupled/_44c3_s0_p1_0.vqh
+++ /dev/null
@@ -1,99 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c3_s0_p1_0_VQH_
-#define _V__44c3_s0_p1_0_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c3_s0_p1_0[] = {
- 2,
- 1,
- 3,
- 0,
- 4,
-};
-
-static long _vq_lengthlist__44c3_s0_p1_0[] = {
- 2, 5, 5, 0, 0, 0, 5, 5, 0, 0, 0, 5, 5, 0, 0, 0,
- 7, 7, 0, 0, 0, 0, 0, 0, 0, 5, 6, 6, 0, 0, 0, 8,
- 7, 0, 0, 0, 7, 7, 0, 0, 0,10,10, 0, 0, 0, 0, 0,
- 0, 0, 5, 6, 7, 0, 0, 0, 7, 8, 0, 0, 0, 7, 7, 0,
- 0, 0,10,10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 5, 7, 7, 0, 0, 0, 7, 7, 0, 0,
- 0, 7, 7, 0, 0, 0, 9, 8, 0, 0, 0, 0, 0, 0, 0, 5,
- 7, 7, 0, 0, 0, 6, 7, 0, 0, 0, 7, 7, 0, 0, 0, 8,
- 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 5, 8, 7, 0, 0, 0, 7, 7, 0, 0, 0, 7, 7,
- 0, 0, 0, 9, 9, 0, 0, 0, 0, 0, 0, 0, 5, 7, 8, 0,
- 0, 0, 7, 7, 0, 0, 0, 7, 7, 0, 0, 0, 9, 9, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 7,10,10, 0, 0, 0, 9, 9, 0, 0, 0, 9, 9, 0, 0, 0,
- 10,10, 0, 0, 0, 0, 0, 0, 0, 7,10,10, 0, 0, 0, 9,
- 9, 0, 0, 0, 9, 9, 0, 0, 0,10,10, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,
-};
-
-static float _vq_quantthresh__44c3_s0_p1_0[] = {
- -1.5, -0.5, 0.5, 1.5,
-};
-
-static long _vq_quantmap__44c3_s0_p1_0[] = {
- 3, 1, 0, 2, 4,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c3_s0_p1_0 = {
- _vq_quantthresh__44c3_s0_p1_0,
- _vq_quantmap__44c3_s0_p1_0,
- 5,
- 5
-};
-
-static static_codebook _44c3_s0_p1_0 = {
- 4, 625,
- _vq_lengthlist__44c3_s0_p1_0,
- 1, -533725184, 1611661312, 3, 0,
- _vq_quantlist__44c3_s0_p1_0,
- NULL,
- &_vq_auxt__44c3_s0_p1_0,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c3_s0_p2_0.vqh b/lib/books/coupled/_44c3_s0_p2_0.vqh
deleted file mode 100644
index 9a7305dc..00000000
--- a/lib/books/coupled/_44c3_s0_p2_0.vqh
+++ /dev/null
@@ -1,70 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c3_s0_p2_0_VQH_
-#define _V__44c3_s0_p2_0_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c3_s0_p2_0[] = {
- 4,
- 3,
- 5,
- 2,
- 6,
- 1,
- 7,
- 0,
- 8,
-};
-
-static long _vq_lengthlist__44c3_s0_p2_0[] = {
- 1, 4, 4, 7, 7, 0, 0, 0, 0, 0, 4, 4, 7, 7, 0, 0,
- 0, 0, 0, 4, 4, 7, 7, 0, 0, 0, 0, 0, 6, 6, 7, 7,
- 0, 0, 0, 0, 0, 0, 0, 7, 7, 0, 0, 0, 0, 0, 0, 0,
- 8, 9, 0, 0, 0, 0, 0, 0, 0, 8, 8, 0, 0, 0, 0, 0,
- 0, 0,10,10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,
-};
-
-static float _vq_quantthresh__44c3_s0_p2_0[] = {
- -3.5, -2.5, -1.5, -0.5, 0.5, 1.5, 2.5, 3.5,
-};
-
-static long _vq_quantmap__44c3_s0_p2_0[] = {
- 7, 5, 3, 1, 0, 2, 4, 6,
- 8,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c3_s0_p2_0 = {
- _vq_quantthresh__44c3_s0_p2_0,
- _vq_quantmap__44c3_s0_p2_0,
- 9,
- 9
-};
-
-static static_codebook _44c3_s0_p2_0 = {
- 2, 81,
- _vq_lengthlist__44c3_s0_p2_0,
- 1, -531628032, 1611661312, 4, 0,
- _vq_quantlist__44c3_s0_p2_0,
- NULL,
- &_vq_auxt__44c3_s0_p2_0,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c3_s0_p3_0.vqh b/lib/books/coupled/_44c3_s0_p3_0.vqh
deleted file mode 100644
index 476d5d4e..00000000
--- a/lib/books/coupled/_44c3_s0_p3_0.vqh
+++ /dev/null
@@ -1,93 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c3_s0_p3_0_VQH_
-#define _V__44c3_s0_p3_0_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c3_s0_p3_0[] = {
- 8,
- 7,
- 9,
- 6,
- 10,
- 5,
- 11,
- 4,
- 12,
- 3,
- 13,
- 2,
- 14,
- 1,
- 15,
- 0,
- 16,
-};
-
-static long _vq_lengthlist__44c3_s0_p3_0[] = {
- 2, 4, 4, 6, 6, 7, 7, 8, 9, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 4, 4, 6, 6, 7, 7, 9, 9, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 4, 4, 6, 6, 7, 7, 9, 9, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 5, 5, 7, 7, 8, 8, 9, 9, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 6, 6, 8, 8, 9, 9, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 8, 8,10,10, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 8, 8,10,10, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9,10,10,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 8,10,
- 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9,
- 10,10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9,
- 9,10,10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 10,10,11,11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,11,11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,12,12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,11,11, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,12,12, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,
-};
-
-static float _vq_quantthresh__44c3_s0_p3_0[] = {
- -7.5, -6.5, -5.5, -4.5, -3.5, -2.5, -1.5, -0.5,
- 0.5, 1.5, 2.5, 3.5, 4.5, 5.5, 6.5, 7.5,
-};
-
-static long _vq_quantmap__44c3_s0_p3_0[] = {
- 15, 13, 11, 9, 7, 5, 3, 1,
- 0, 2, 4, 6, 8, 10, 12, 14,
- 16,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c3_s0_p3_0 = {
- _vq_quantthresh__44c3_s0_p3_0,
- _vq_quantmap__44c3_s0_p3_0,
- 17,
- 17
-};
-
-static static_codebook _44c3_s0_p3_0 = {
- 2, 289,
- _vq_lengthlist__44c3_s0_p3_0,
- 1, -529530880, 1611661312, 5, 0,
- _vq_quantlist__44c3_s0_p3_0,
- NULL,
- &_vq_auxt__44c3_s0_p3_0,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c3_s0_p4_0.vqh b/lib/books/coupled/_44c3_s0_p4_0.vqh
deleted file mode 100644
index 019df198..00000000
--- a/lib/books/coupled/_44c3_s0_p4_0.vqh
+++ /dev/null
@@ -1,86 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c3_s0_p4_0_VQH_
-#define _V__44c3_s0_p4_0_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c3_s0_p4_0[] = {
- 7,
- 6,
- 8,
- 5,
- 9,
- 4,
- 10,
- 3,
- 11,
- 2,
- 12,
- 1,
- 13,
- 0,
- 14,
-};
-
-static long _vq_lengthlist__44c3_s0_p4_0[] = {
- 1, 3, 3, 7, 7, 9, 9,12,11,20,20,20,20,20,20, 5,
- 5, 5, 8, 8,10,10,12,13,20,20,20,20,20,20, 6, 5,
- 5, 8, 8,10,10,13,13,20,20,20,20,20,20,20, 8, 8,
- 9, 9,10,10,13,13,20,20,20,20,20,20,20, 8, 8, 9,
- 9,10,11,13,13,20,20,20,20,20,20,20,12,12,10,10,
- 11,11,14,14,20,20,20,20,20,20,20,13,13,10,10,11,
- 11,14,15,20,20,20,20,20,20,20,20,20,12,12,12,12,
- 14,15,20,20,20,20,20,20,20,20,20,12,11,12,12,15,
- 14,20,20,20,20,20,20,20,20,20,15,16,12,13,14,16,
- 20,20,20,20,20,20,20,20,20,18,16,13,13,15,15,20,
- 20,20,20,20,20,20,20,20,20,20,15,15,15,16,20,20,
- 20,20,20,20,20,20,20,20,20,15,15,16,16,20,20,20,
- 20,20,20,20,20,20,20,20,18,18,16,17,20,20,20,20,
- 20,20,20,20,20,20,20,18,20,17,16,20,20,20,20,20,
- 19,
-};
-
-static float _vq_quantthresh__44c3_s0_p4_0[] = {
- -45.5, -38.5, -31.5, -24.5, -17.5, -10.5, -3.5, 3.5,
- 10.5, 17.5, 24.5, 31.5, 38.5, 45.5,
-};
-
-static long _vq_quantmap__44c3_s0_p4_0[] = {
- 13, 11, 9, 7, 5, 3, 1, 0,
- 2, 4, 6, 8, 10, 12, 14,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c3_s0_p4_0 = {
- _vq_quantthresh__44c3_s0_p4_0,
- _vq_quantmap__44c3_s0_p4_0,
- 15,
- 15
-};
-
-static static_codebook _44c3_s0_p4_0 = {
- 2, 225,
- _vq_lengthlist__44c3_s0_p4_0,
- 1, -524779520, 1616642048, 4, 0,
- _vq_quantlist__44c3_s0_p4_0,
- NULL,
- &_vq_auxt__44c3_s0_p4_0,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c3_s0_p4_1.vqh b/lib/books/coupled/_44c3_s0_p4_1.vqh
deleted file mode 100644
index 0619267b..00000000
--- a/lib/books/coupled/_44c3_s0_p4_1.vqh
+++ /dev/null
@@ -1,65 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c3_s0_p4_1_VQH_
-#define _V__44c3_s0_p4_1_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c3_s0_p4_1[] = {
- 3,
- 2,
- 4,
- 1,
- 5,
- 0,
- 6,
-};
-
-static long _vq_lengthlist__44c3_s0_p4_1[] = {
- 2, 4, 4, 6, 6, 6, 6, 8, 5, 4, 6, 6, 7, 7, 8, 4,
- 4, 6, 6, 7, 7, 8, 6, 6, 6, 6, 7, 7, 8, 8, 8, 6,
- 6, 7, 7, 8, 8, 8, 7, 7, 7, 7, 8, 8, 8, 6, 6, 7,
- 7,
-};
-
-static float _vq_quantthresh__44c3_s0_p4_1[] = {
- -2.5, -1.5, -0.5, 0.5, 1.5, 2.5,
-};
-
-static long _vq_quantmap__44c3_s0_p4_1[] = {
- 5, 3, 1, 0, 2, 4, 6,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c3_s0_p4_1 = {
- _vq_quantthresh__44c3_s0_p4_1,
- _vq_quantmap__44c3_s0_p4_1,
- 7,
- 7
-};
-
-static static_codebook _44c3_s0_p4_1 = {
- 2, 49,
- _vq_lengthlist__44c3_s0_p4_1,
- 1, -533200896, 1611661312, 3, 0,
- _vq_quantlist__44c3_s0_p4_1,
- NULL,
- &_vq_auxt__44c3_s0_p4_1,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c3_s0_p5_0.vqh b/lib/books/coupled/_44c3_s0_p5_0.vqh
deleted file mode 100644
index 7f05bfbf..00000000
--- a/lib/books/coupled/_44c3_s0_p5_0.vqh
+++ /dev/null
@@ -1,99 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c3_s0_p5_0_VQH_
-#define _V__44c3_s0_p5_0_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c3_s0_p5_0[] = {
- 2,
- 1,
- 3,
- 0,
- 4,
-};
-
-static long _vq_lengthlist__44c3_s0_p5_0[] = {
- 1, 6, 6, 0, 0, 0, 5, 5, 0, 0, 0, 5, 5, 0, 0, 0,
- 8, 8, 0, 0, 0, 0, 0, 0, 0, 6, 8, 7, 0, 0, 0, 9,
- 8, 0, 0, 0, 8, 8, 0, 0, 0,12,12, 0, 0, 0, 0, 0,
- 0, 0, 6, 8, 8, 0, 0, 0, 8, 9, 0, 0, 0, 8, 8, 0,
- 0, 0,12,12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 5, 8, 8, 0, 0, 0, 8, 7, 0, 0,
- 0, 8, 8, 0, 0, 0,10,10, 0, 0, 0, 0, 0, 0, 0, 5,
- 8, 8, 0, 0, 0, 7, 8, 0, 0, 0, 8, 8, 0, 0, 0,10,
- 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 5, 9, 8, 0, 0, 0, 8, 8, 0, 0, 0, 8, 7,
- 0, 0, 0,10,10, 0, 0, 0, 0, 0, 0, 0, 5, 8, 9, 0,
- 0, 0, 8, 8, 0, 0, 0, 7, 8, 0, 0, 0,10,10, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 8,12,12, 0, 0, 0,10,10, 0, 0, 0,10,10, 0, 0, 0,
- 11,11, 0, 0, 0, 0, 0, 0, 0, 8,12,12, 0, 0, 0,10,
- 10, 0, 0, 0,10,10, 0, 0, 0,11,11, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,
-};
-
-static float _vq_quantthresh__44c3_s0_p5_0[] = {
- -1.5, -0.5, 0.5, 1.5,
-};
-
-static long _vq_quantmap__44c3_s0_p5_0[] = {
- 3, 1, 0, 2, 4,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c3_s0_p5_0 = {
- _vq_quantthresh__44c3_s0_p5_0,
- _vq_quantmap__44c3_s0_p5_0,
- 5,
- 5
-};
-
-static static_codebook _44c3_s0_p5_0 = {
- 4, 625,
- _vq_lengthlist__44c3_s0_p5_0,
- 1, -533725184, 1611661312, 3, 0,
- _vq_quantlist__44c3_s0_p5_0,
- NULL,
- &_vq_auxt__44c3_s0_p5_0,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c3_s0_p6_0.vqh b/lib/books/coupled/_44c3_s0_p6_0.vqh
deleted file mode 100644
index de784f5e..00000000
--- a/lib/books/coupled/_44c3_s0_p6_0.vqh
+++ /dev/null
@@ -1,93 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c3_s0_p6_0_VQH_
-#define _V__44c3_s0_p6_0_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c3_s0_p6_0[] = {
- 8,
- 7,
- 9,
- 6,
- 10,
- 5,
- 11,
- 4,
- 12,
- 3,
- 13,
- 2,
- 14,
- 1,
- 15,
- 0,
- 16,
-};
-
-static long _vq_lengthlist__44c3_s0_p6_0[] = {
- 1, 4, 4, 7, 7, 9,10,12,12, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 4, 4, 7, 7,10,10,12,12, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 4, 4, 7, 7,10,10,12,12, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 6, 6, 8, 8,10,10,13,12, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 8, 7,10,10,13,13, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 9, 9,11,11,13,13, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9,11,11,14,13, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,10,10,12,12,14,14,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,12,12,14,
- 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,13,13,
- 15,14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,13,
- 12,14,14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 14,14,15,15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,15,15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,16,16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,16,16, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,16,16, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,
-};
-
-static float _vq_quantthresh__44c3_s0_p6_0[] = {
- -7.5, -6.5, -5.5, -4.5, -3.5, -2.5, -1.5, -0.5,
- 0.5, 1.5, 2.5, 3.5, 4.5, 5.5, 6.5, 7.5,
-};
-
-static long _vq_quantmap__44c3_s0_p6_0[] = {
- 15, 13, 11, 9, 7, 5, 3, 1,
- 0, 2, 4, 6, 8, 10, 12, 14,
- 16,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c3_s0_p6_0 = {
- _vq_quantthresh__44c3_s0_p6_0,
- _vq_quantmap__44c3_s0_p6_0,
- 17,
- 17
-};
-
-static static_codebook _44c3_s0_p6_0 = {
- 2, 289,
- _vq_lengthlist__44c3_s0_p6_0,
- 1, -529530880, 1611661312, 5, 0,
- _vq_quantlist__44c3_s0_p6_0,
- NULL,
- &_vq_auxt__44c3_s0_p6_0,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c3_s0_p7_0.vqh b/lib/books/coupled/_44c3_s0_p7_0.vqh
deleted file mode 100644
index 2eecc377..00000000
--- a/lib/books/coupled/_44c3_s0_p7_0.vqh
+++ /dev/null
@@ -1,80 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c3_s0_p7_0_VQH_
-#define _V__44c3_s0_p7_0_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c3_s0_p7_0[] = {
- 6,
- 5,
- 7,
- 4,
- 8,
- 3,
- 9,
- 2,
- 10,
- 1,
- 11,
- 0,
- 12,
-};
-
-static long _vq_lengthlist__44c3_s0_p7_0[] = {
- 1, 3, 3, 7, 7,12,12,15,14,15,15,15,15, 5, 5, 5,
- 9, 9,14,13,15,15,15,15,15,15, 5, 5, 5, 9, 9,13,
- 12,15,15,15,15,15,15,15, 8, 9,10,10,13,13,15,15,
- 15,15,15,15,15, 9, 6,10, 9,13,13,15,15,15,15,15,
- 15,15,10,13,10,11,13,15,15,15,15,15,15,15,15,12,
- 10,12,10,13,15,15,15,15,15,15,15,15,15,15,15,13,
- 15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,
- 15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,
- 15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,
- 15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,
- 15,15,15,15,15,15,15,15,15,
-};
-
-static float _vq_quantthresh__44c3_s0_p7_0[] = {
- -368.5, -301.5, -234.5, -167.5, -100.5, -33.5, 33.5, 100.5,
- 167.5, 234.5, 301.5, 368.5,
-};
-
-static long _vq_quantmap__44c3_s0_p7_0[] = {
- 11, 9, 7, 5, 3, 1, 0, 2,
- 4, 6, 8, 10, 12,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c3_s0_p7_0 = {
- _vq_quantthresh__44c3_s0_p7_0,
- _vq_quantmap__44c3_s0_p7_0,
- 13,
- 13
-};
-
-static static_codebook _44c3_s0_p7_0 = {
- 2, 169,
- _vq_lengthlist__44c3_s0_p7_0,
- 1, -518447104, 1624293376, 4, 0,
- _vq_quantlist__44c3_s0_p7_0,
- NULL,
- &_vq_auxt__44c3_s0_p7_0,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c3_s0_p7_1.vqh b/lib/books/coupled/_44c3_s0_p7_1.vqh
deleted file mode 100644
index e810109e..00000000
--- a/lib/books/coupled/_44c3_s0_p7_1.vqh
+++ /dev/null
@@ -1,115 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c3_s0_p7_1_VQH_
-#define _V__44c3_s0_p7_1_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c3_s0_p7_1[] = {
- 11,
- 10,
- 12,
- 9,
- 13,
- 8,
- 14,
- 7,
- 15,
- 6,
- 16,
- 5,
- 17,
- 4,
- 18,
- 3,
- 19,
- 2,
- 20,
- 1,
- 21,
- 0,
- 22,
-};
-
-static long _vq_lengthlist__44c3_s0_p7_1[] = {
- 2, 4, 4, 6, 6, 6, 7, 7, 7, 8, 8, 8, 8, 9, 9, 9,
- 9, 9, 9, 9, 9, 9, 9, 6, 5, 5, 7, 7, 8, 8, 8, 8,
- 9, 9, 9, 9,10,10,10,10, 9, 9, 9, 9,10,10,13, 6,
- 5, 7, 7, 8, 8, 8, 8, 9, 9, 9, 9,10,10,10,10, 9,
- 9, 9, 9,10,10,13, 8, 8, 7, 7, 8, 8, 9, 9, 9,10,
- 10,10,10,10,10,10,10,10,10,10,11,11,13, 8, 8, 7,
- 7, 8, 8, 9, 9, 9, 9,10,10,10,10,10,10,10,10,10,
- 10,11,11,13,11,11, 8, 8, 9, 9, 9, 9,10,10,10,10,
- 11,10,11,11,10,10,10,10,11,11,13,13,13, 8, 8, 9,
- 8, 9,10,10,10,10,10,10,10,11,11,10,11,10,10,11,
- 11,14,14,14,10,10, 9, 9,10,10,10,10,10,10,11,11,
- 11,11,11,11,11,11,11,11,14,13,13,10,10, 9, 9,10,
- 10,10,10,10,11,11,10,11,11,11,11,11,11,11,11,14,
- 15,14,12,12,10,10,10,10,10,11,11,11,11,11,11,11,
- 11,11,11,11,11,12,14,14,14,14,13,10, 9,10,10,10,
- 11,11,11,11,11,11,11,11,11,11,11,11,11,14,14,14,
- 14,14,11,11,10,10,11,11,11,11,11,11,11,12,11,11,
- 11,11,11,12,15,14,14,13,13,11,11,10,10,11,11,11,
- 11,11,11,12,11,11,11,11,11,11,12,13,14,14,13,14,
- 13,12,11,11,11,11,11,11,12,12,11,11,11,11,11,11,
- 12,12,14,14,13,14,13,14,13,10,11,11,11,11,11,12,
- 12,12,11,11,11,11,11,12,12,14,14,13,14,13,13,13,
- 12,12,11,11,12,12,12,12,11,11,11,11,12,11,12,12,
- 13,14,15,14,13,14,14,12,12,11,11,11,11,12,12,11,
- 12,11,11,11,11,12,12,14,14,14,14,14,14,14,14,13,
- 12,12,12,12,11,11,12,11,12,11,11,11,12,12,14,13,
- 13,13,13,13,14,13,14,12,12,11,12,12,11,12,12,11,
- 11,11,12,12,12,13,14,13,13,13,14,13,14,13,12,12,
- 12,12,12,11,12,12,11,12,11,12,12,12,13,13,13,14,
- 13,13,13,14,13,12,13,11,11,12,11,12,12,11,11,11,
- 11,12,12,14,14,15,14,14,15,14,15,14,14,13,12,13,
- 12,12,12,12,12,12,12,13,13,13,14,15,14,13,14,14,
- 14,14,15,14,14,12,12,12,12,12,12,12,12,12,12,13,
- 13,
-};
-
-static float _vq_quantthresh__44c3_s0_p7_1[] = {
- -31.5, -28.5, -25.5, -22.5, -19.5, -16.5, -13.5, -10.5,
- -7.5, -4.5, -1.5, 1.5, 4.5, 7.5, 10.5, 13.5,
- 16.5, 19.5, 22.5, 25.5, 28.5, 31.5,
-};
-
-static long _vq_quantmap__44c3_s0_p7_1[] = {
- 21, 19, 17, 15, 13, 11, 9, 7,
- 5, 3, 1, 0, 2, 4, 6, 8,
- 10, 12, 14, 16, 18, 20, 22,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c3_s0_p7_1 = {
- _vq_quantthresh__44c3_s0_p7_1,
- _vq_quantmap__44c3_s0_p7_1,
- 23,
- 23
-};
-
-static static_codebook _44c3_s0_p7_1 = {
- 2, 529,
- _vq_lengthlist__44c3_s0_p7_1,
- 1, -525303808, 1614282752, 5, 0,
- _vq_quantlist__44c3_s0_p7_1,
- NULL,
- &_vq_auxt__44c3_s0_p7_1,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c3_s0_p7_2.vqh b/lib/books/coupled/_44c3_s0_p7_2.vqh
deleted file mode 100644
index b61c812b..00000000
--- a/lib/books/coupled/_44c3_s0_p7_2.vqh
+++ /dev/null
@@ -1,63 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c3_s0_p7_2_VQH_
-#define _V__44c3_s0_p7_2_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c3_s0_p7_2[] = {
- 1,
- 0,
- 2,
-};
-
-static long _vq_lengthlist__44c3_s0_p7_2[] = {
- 3, 5, 5, 7, 6, 6, 7, 6, 6, 6, 6, 6, 7, 7, 6, 7,
- 7, 6, 5, 6, 6, 7, 7, 7, 7, 6, 6, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 6, 7, 7, 7, 7, 7, 7, 7, 7, 6, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 6,
- 7, 6, 7, 7, 7, 7, 7, 6, 6, 6, 7, 7, 7, 6, 7, 6,
- 6,
-};
-
-static float _vq_quantthresh__44c3_s0_p7_2[] = {
- -0.5, 0.5,
-};
-
-static long _vq_quantmap__44c3_s0_p7_2[] = {
- 1, 0, 2,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c3_s0_p7_2 = {
- _vq_quantthresh__44c3_s0_p7_2,
- _vq_quantmap__44c3_s0_p7_2,
- 3,
- 3
-};
-
-static static_codebook _44c3_s0_p7_2 = {
- 4, 81,
- _vq_lengthlist__44c3_s0_p7_2,
- 1, -535822336, 1611661312, 2, 0,
- _vq_quantlist__44c3_s0_p7_2,
- NULL,
- &_vq_auxt__44c3_s0_p7_2,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c3_s1_p5_0.vqh b/lib/books/coupled/_44c3_s1_p5_0.vqh
deleted file mode 100644
index 271b8f43..00000000
--- a/lib/books/coupled/_44c3_s1_p5_0.vqh
+++ /dev/null
@@ -1,63 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c3_s1_p5_0_VQH_
-#define _V__44c3_s1_p5_0_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c3_s1_p5_0[] = {
- 1,
- 0,
- 2,
-};
-
-static long _vq_lengthlist__44c3_s1_p5_0[] = {
- 1, 3, 3, 0, 0, 0, 0, 0, 0, 4, 5, 5, 0, 0, 0, 0,
- 0, 0, 4, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,
-};
-
-static float _vq_quantthresh__44c3_s1_p5_0[] = {
- -0.5, 0.5,
-};
-
-static long _vq_quantmap__44c3_s1_p5_0[] = {
- 1, 0, 2,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c3_s1_p5_0 = {
- _vq_quantthresh__44c3_s1_p5_0,
- _vq_quantmap__44c3_s1_p5_0,
- 3,
- 3
-};
-
-static static_codebook _44c3_s1_p5_0 = {
- 4, 81,
- _vq_lengthlist__44c3_s1_p5_0,
- 1, -535822336, 1611661312, 2, 0,
- _vq_quantlist__44c3_s1_p5_0,
- NULL,
- &_vq_auxt__44c3_s1_p5_0,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c3_s1_p6_0.vqh b/lib/books/coupled/_44c3_s1_p6_0.vqh
deleted file mode 100644
index ed49aa50..00000000
--- a/lib/books/coupled/_44c3_s1_p6_0.vqh
+++ /dev/null
@@ -1,93 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c3_s1_p6_0_VQH_
-#define _V__44c3_s1_p6_0_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c3_s1_p6_0[] = {
- 8,
- 7,
- 9,
- 6,
- 10,
- 5,
- 11,
- 4,
- 12,
- 3,
- 13,
- 2,
- 14,
- 1,
- 15,
- 0,
- 16,
-};
-
-static long _vq_lengthlist__44c3_s1_p6_0[] = {
- 1, 2, 3, 4, 5, 9, 9,11,11, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,12,12,13,13, 9, 9,11,11, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,12,12,13,13, 9, 9,12,12, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,19,10,10,12,12, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,19,18, 9, 9,12,12, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,10,10,13,12, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,10,10,13,13, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,11,11,13,13,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,11,11,13,
- 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,12,12,
- 14,14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,12,
- 12,14,14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 13,13,14,15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,14,14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,15,15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,15,15, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,17,16, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,
-};
-
-static float _vq_quantthresh__44c3_s1_p6_0[] = {
- -7.5, -6.5, -5.5, -4.5, -3.5, -2.5, -1.5, -0.5,
- 0.5, 1.5, 2.5, 3.5, 4.5, 5.5, 6.5, 7.5,
-};
-
-static long _vq_quantmap__44c3_s1_p6_0[] = {
- 15, 13, 11, 9, 7, 5, 3, 1,
- 0, 2, 4, 6, 8, 10, 12, 14,
- 16,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c3_s1_p6_0 = {
- _vq_quantthresh__44c3_s1_p6_0,
- _vq_quantmap__44c3_s1_p6_0,
- 17,
- 17
-};
-
-static static_codebook _44c3_s1_p6_0 = {
- 2, 289,
- _vq_lengthlist__44c3_s1_p6_0,
- 1, -529530880, 1611661312, 5, 0,
- _vq_quantlist__44c3_s1_p6_0,
- NULL,
- &_vq_auxt__44c3_s1_p6_0,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c3_s1_p7_0.vqh b/lib/books/coupled/_44c3_s1_p7_0.vqh
deleted file mode 100644
index fa57a240..00000000
--- a/lib/books/coupled/_44c3_s1_p7_0.vqh
+++ /dev/null
@@ -1,80 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c3_s1_p7_0_VQH_
-#define _V__44c3_s1_p7_0_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c3_s1_p7_0[] = {
- 6,
- 5,
- 7,
- 4,
- 8,
- 3,
- 9,
- 2,
- 10,
- 1,
- 11,
- 0,
- 12,
-};
-
-static long _vq_lengthlist__44c3_s1_p7_0[] = {
- 1, 3, 3, 7, 7,12,12,15,14,15,15,15,15, 5, 5, 5,
- 9, 9,14,13,15,15,15,15,15,15, 5, 5, 5, 9, 9,13,
- 12,15,15,15,15,15,15,15, 8, 9,10,10,13,13,15,15,
- 15,15,15,15,15, 9, 6,10, 9,13,13,15,15,15,15,15,
- 15,15,10,13,10,11,13,15,15,15,15,15,15,15,15,12,
- 10,12,10,13,15,15,15,15,15,15,15,15,15,15,15,13,
- 15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,
- 15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,
- 15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,
- 15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,
- 15,15,15,15,15,15,15,15,15,
-};
-
-static float _vq_quantthresh__44c3_s1_p7_0[] = {
- -368.5, -301.5, -234.5, -167.5, -100.5, -33.5, 33.5, 100.5,
- 167.5, 234.5, 301.5, 368.5,
-};
-
-static long _vq_quantmap__44c3_s1_p7_0[] = {
- 11, 9, 7, 5, 3, 1, 0, 2,
- 4, 6, 8, 10, 12,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c3_s1_p7_0 = {
- _vq_quantthresh__44c3_s1_p7_0,
- _vq_quantmap__44c3_s1_p7_0,
- 13,
- 13
-};
-
-static static_codebook _44c3_s1_p7_0 = {
- 2, 169,
- _vq_lengthlist__44c3_s1_p7_0,
- 1, -518447104, 1624293376, 4, 0,
- _vq_quantlist__44c3_s1_p7_0,
- NULL,
- &_vq_auxt__44c3_s1_p7_0,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c3_s1_p7_1.vqh b/lib/books/coupled/_44c3_s1_p7_1.vqh
deleted file mode 100644
index 3b7e1106..00000000
--- a/lib/books/coupled/_44c3_s1_p7_1.vqh
+++ /dev/null
@@ -1,115 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c3_s1_p7_1_VQH_
-#define _V__44c3_s1_p7_1_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c3_s1_p7_1[] = {
- 11,
- 10,
- 12,
- 9,
- 13,
- 8,
- 14,
- 7,
- 15,
- 6,
- 16,
- 5,
- 17,
- 4,
- 18,
- 3,
- 19,
- 2,
- 20,
- 1,
- 21,
- 0,
- 22,
-};
-
-static long _vq_lengthlist__44c3_s1_p7_1[] = {
- 2, 4, 4, 6, 5, 6, 7, 7, 7, 8, 8, 8, 8, 9, 9, 9,
- 9, 9, 9, 9, 9, 9, 9, 6, 5, 5, 7, 7, 8, 8, 8, 8,
- 9, 9, 9, 9,10,10,10,10, 9, 9, 9, 9,10,10,13, 6,
- 6, 7, 7, 8, 8, 8, 8, 9, 9, 9, 9,10,10,10,10, 9,
- 9, 9, 9,10,10,13, 8, 8, 7, 7, 8, 8, 9, 9, 9,10,
- 10,10,10,10,10,10,10,10,10,10,11,11,13, 8, 8, 7,
- 7, 8, 8, 9, 9, 9, 9,10,10,10,10,10,10,10,10,10,
- 10,11,11,13,11,11, 8, 8, 9, 9, 9, 9,10,10,10,10,
- 10,10,11,11,10,11,10,10,11,11,13,13,13, 8, 8, 9,
- 8, 9,10,10,10,10,10,10,10,11,11,10,11,10,10,11,
- 11,14,14,14,10,10, 9, 9,10,10,10,10,10,10,11,11,
- 11,11,11,11,11,11,11,11,14,13,13,10,10, 9, 9,10,
- 10,10,10,10,11,11,10,11,11,11,11,11,11,11,11,14,
- 15,14,12,12,10,10,10,10,10,11,11,11,11,11,11,11,
- 11,11,11,11,12,12,14,14,14,14,13,10, 9,10,10,10,
- 11,11,11,11,11,11,11,11,11,11,11,11,11,14,14,14,
- 14,14,11,11,10,10,11,11,11,11,11,11,11,12,11,11,
- 11,11,11,12,15,14,14,13,13,11,11,10,10,11,11,11,
- 11,11,11,12,11,11,11,11,11,11,12,13,14,14,13,14,
- 13,12,11,11,11,11,11,11,12,12,11,11,11,11,11,11,
- 12,12,14,14,13,14,13,14,13,10,11,11,11,11,11,12,
- 12,11,11,11,11,11,11,12,12,14,14,13,14,13,13,13,
- 12,12,11,11,12,12,12,12,11,11,11,11,12,11,12,12,
- 13,14,15,14,13,14,14,12,12,11,11,11,11,12,12,11,
- 12,11,11,11,11,12,12,14,14,14,14,14,14,14,14,13,
- 12,12,12,12,11,11,12,11,12,11,11,11,12,12,14,13,
- 13,13,13,13,14,13,14,12,12,11,12,12,11,12,12,11,
- 11,11,12,12,12,13,14,13,13,13,14,13,14,13,12,12,
- 12,12,12,11,12,12,11,12,11,12,12,12,13,13,13,14,
- 13,13,13,14,13,12,13,11,11,12,11,12,12,11,11,11,
- 11,12,12,14,14,15,14,14,15,14,15,14,14,13,12,13,
- 12,12,12,12,12,12,12,13,13,13,14,15,14,13,14,14,
- 14,14,15,14,14,12,12,12,12,12,12,12,12,12,12,13,
- 13,
-};
-
-static float _vq_quantthresh__44c3_s1_p7_1[] = {
- -31.5, -28.5, -25.5, -22.5, -19.5, -16.5, -13.5, -10.5,
- -7.5, -4.5, -1.5, 1.5, 4.5, 7.5, 10.5, 13.5,
- 16.5, 19.5, 22.5, 25.5, 28.5, 31.5,
-};
-
-static long _vq_quantmap__44c3_s1_p7_1[] = {
- 21, 19, 17, 15, 13, 11, 9, 7,
- 5, 3, 1, 0, 2, 4, 6, 8,
- 10, 12, 14, 16, 18, 20, 22,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c3_s1_p7_1 = {
- _vq_quantthresh__44c3_s1_p7_1,
- _vq_quantmap__44c3_s1_p7_1,
- 23,
- 23
-};
-
-static static_codebook _44c3_s1_p7_1 = {
- 2, 529,
- _vq_lengthlist__44c3_s1_p7_1,
- 1, -525303808, 1614282752, 5, 0,
- _vq_quantlist__44c3_s1_p7_1,
- NULL,
- &_vq_auxt__44c3_s1_p7_1,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c3_s1_p7_2.vqh b/lib/books/coupled/_44c3_s1_p7_2.vqh
deleted file mode 100644
index 88aa17f9..00000000
--- a/lib/books/coupled/_44c3_s1_p7_2.vqh
+++ /dev/null
@@ -1,63 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c3_s1_p7_2_VQH_
-#define _V__44c3_s1_p7_2_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c3_s1_p7_2[] = {
- 1,
- 0,
- 2,
-};
-
-static long _vq_lengthlist__44c3_s1_p7_2[] = {
- 3, 5, 5, 7, 6, 6, 7, 6, 6, 5, 5, 5, 7, 7, 7, 7,
- 7, 7, 5, 5, 5, 7, 7, 7, 7, 7, 6, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 6, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 6,
- 7, 7, 7, 7, 7, 7, 7, 7, 6, 7, 7, 7, 7, 7, 7, 7,
- 7,
-};
-
-static float _vq_quantthresh__44c3_s1_p7_2[] = {
- -0.5, 0.5,
-};
-
-static long _vq_quantmap__44c3_s1_p7_2[] = {
- 1, 0, 2,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c3_s1_p7_2 = {
- _vq_quantthresh__44c3_s1_p7_2,
- _vq_quantmap__44c3_s1_p7_2,
- 3,
- 3
-};
-
-static static_codebook _44c3_s1_p7_2 = {
- 4, 81,
- _vq_lengthlist__44c3_s1_p7_2,
- 1, -535822336, 1611661312, 2, 0,
- _vq_quantlist__44c3_s1_p7_2,
- NULL,
- &_vq_auxt__44c3_s1_p7_2,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c3_s2_p6_0.vqh b/lib/books/coupled/_44c3_s2_p6_0.vqh
deleted file mode 100644
index e169d0b8..00000000
--- a/lib/books/coupled/_44c3_s2_p6_0.vqh
+++ /dev/null
@@ -1,70 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c3_s2_p6_0_VQH_
-#define _V__44c3_s2_p6_0_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c3_s2_p6_0[] = {
- 4,
- 3,
- 5,
- 2,
- 6,
- 1,
- 7,
- 0,
- 8,
-};
-
-static long _vq_lengthlist__44c3_s2_p6_0[] = {
- 1, 2, 3, 4, 5, 6, 7, 8, 8, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,
-};
-
-static float _vq_quantthresh__44c3_s2_p6_0[] = {
- -3.5, -2.5, -1.5, -0.5, 0.5, 1.5, 2.5, 3.5,
-};
-
-static long _vq_quantmap__44c3_s2_p6_0[] = {
- 7, 5, 3, 1, 0, 2, 4, 6,
- 8,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c3_s2_p6_0 = {
- _vq_quantthresh__44c3_s2_p6_0,
- _vq_quantmap__44c3_s2_p6_0,
- 9,
- 9
-};
-
-static static_codebook _44c3_s2_p6_0 = {
- 2, 81,
- _vq_lengthlist__44c3_s2_p6_0,
- 1, -531628032, 1611661312, 4, 0,
- _vq_quantlist__44c3_s2_p6_0,
- NULL,
- &_vq_auxt__44c3_s2_p6_0,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c3_s2_p7_0.vqh b/lib/books/coupled/_44c3_s2_p7_0.vqh
deleted file mode 100644
index 724e2cc0..00000000
--- a/lib/books/coupled/_44c3_s2_p7_0.vqh
+++ /dev/null
@@ -1,80 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c3_s2_p7_0_VQH_
-#define _V__44c3_s2_p7_0_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c3_s2_p7_0[] = {
- 6,
- 5,
- 7,
- 4,
- 8,
- 3,
- 9,
- 2,
- 10,
- 1,
- 11,
- 0,
- 12,
-};
-
-static long _vq_lengthlist__44c3_s2_p7_0[] = {
- 1, 3, 3, 7, 7,12,12,15,14,15,15,15,15, 5, 5, 5,
- 9, 9,14,13,15,15,15,15,15,15, 5, 5, 5, 9, 9,13,
- 12,15,15,15,15,15,15,15, 8, 9,10,10,13,13,15,15,
- 15,15,15,15,15, 9, 6,10, 9,13,13,15,15,15,15,15,
- 15,15,10,13,10,11,13,15,15,15,15,15,15,15,15,12,
- 10,12,10,13,15,15,15,15,15,15,15,15,15,15,15,13,
- 15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,
- 15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,
- 15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,
- 15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,
- 15,15,15,15,15,15,15,15,15,
-};
-
-static float _vq_quantthresh__44c3_s2_p7_0[] = {
- -368.5, -301.5, -234.5, -167.5, -100.5, -33.5, 33.5, 100.5,
- 167.5, 234.5, 301.5, 368.5,
-};
-
-static long _vq_quantmap__44c3_s2_p7_0[] = {
- 11, 9, 7, 5, 3, 1, 0, 2,
- 4, 6, 8, 10, 12,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c3_s2_p7_0 = {
- _vq_quantthresh__44c3_s2_p7_0,
- _vq_quantmap__44c3_s2_p7_0,
- 13,
- 13
-};
-
-static static_codebook _44c3_s2_p7_0 = {
- 2, 169,
- _vq_lengthlist__44c3_s2_p7_0,
- 1, -518447104, 1624293376, 4, 0,
- _vq_quantlist__44c3_s2_p7_0,
- NULL,
- &_vq_auxt__44c3_s2_p7_0,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c3_s2_p7_1.vqh b/lib/books/coupled/_44c3_s2_p7_1.vqh
deleted file mode 100644
index 0800fa96..00000000
--- a/lib/books/coupled/_44c3_s2_p7_1.vqh
+++ /dev/null
@@ -1,115 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c3_s2_p7_1_VQH_
-#define _V__44c3_s2_p7_1_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c3_s2_p7_1[] = {
- 11,
- 10,
- 12,
- 9,
- 13,
- 8,
- 14,
- 7,
- 15,
- 6,
- 16,
- 5,
- 17,
- 4,
- 18,
- 3,
- 19,
- 2,
- 20,
- 1,
- 21,
- 0,
- 22,
-};
-
-static long _vq_lengthlist__44c3_s2_p7_1[] = {
- 2, 4, 4, 5, 5, 6, 7, 7, 7, 8, 8, 8, 8, 9, 9, 9,
- 9, 9, 9, 9, 9, 9, 9, 6, 5, 6, 7, 7, 8, 8, 8, 8,
- 9, 9, 9, 9,10,10,10,10, 9, 9, 9, 9,10,10,13, 6,
- 6, 7, 7, 8, 8, 8, 8, 9, 9, 9, 9,10,10,10,10, 9,
- 9, 9, 9,10,10,13, 8, 8, 7, 7, 8, 8, 9, 9, 9,10,
- 10,10,10,10,10,10,10,10,10,10,11,11,13, 8, 8, 7,
- 7, 8, 8, 9, 9, 9, 9,10,10,10,10,10,10,10,10,10,
- 10,11,11,13,11,11, 8, 8, 9, 9, 9, 9,10,10,10,10,
- 11,10,11,11,10,10,10,10,11,11,13,13,13, 8, 8, 9,
- 8, 9,10,10,10,10,10,10,10,11,11,10,11,10,10,11,
- 11,14,14,14,10,10, 9, 9,10,10,10,10,10,10,11,11,
- 11,11,11,11,11,11,11,11,14,13,13,10,10, 9, 9,10,
- 10,10,10,10,11,11,10,11,11,11,11,11,11,11,11,14,
- 15,14,12,12,10,10,10,10,10,11,11,11,11,11,11,11,
- 11,11,11,11,11,12,14,14,14,14,13,10, 9,10,10,10,
- 11,11,11,11,11,11,11,11,11,11,11,11,11,14,14,14,
- 14,14,11,11,10,10,11,11,11,11,11,11,11,12,11,11,
- 11,11,11,12,15,14,14,13,13,11,11,10,10,11,11,11,
- 11,11,11,12,11,11,11,11,11,11,12,13,14,14,13,14,
- 13,12,11,11,11,11,11,11,12,12,11,11,11,11,11,11,
- 12,12,14,14,13,14,13,14,13,10,11,11,11,11,11,12,
- 12,12,11,11,11,11,11,12,12,14,14,13,14,13,13,13,
- 12,12,11,11,12,12,12,12,11,11,11,11,12,11,12,12,
- 13,14,15,14,13,14,14,12,12,11,11,11,11,12,12,11,
- 12,11,11,11,11,12,12,14,14,14,14,14,14,14,14,13,
- 12,12,12,12,11,11,12,11,12,11,11,11,12,12,14,13,
- 13,13,13,13,14,13,14,12,12,11,12,12,11,12,12,11,
- 11,11,12,12,12,13,14,13,13,13,14,13,14,13,12,12,
- 12,12,12,11,12,12,11,12,11,12,12,12,13,13,13,14,
- 13,13,13,14,13,12,13,11,11,12,11,12,12,11,11,11,
- 11,12,12,14,14,15,14,14,15,14,15,14,14,13,12,13,
- 12,12,12,12,12,12,12,13,13,13,14,15,14,13,14,14,
- 14,14,15,14,14,12,12,12,12,12,12,12,12,12,12,13,
- 13,
-};
-
-static float _vq_quantthresh__44c3_s2_p7_1[] = {
- -31.5, -28.5, -25.5, -22.5, -19.5, -16.5, -13.5, -10.5,
- -7.5, -4.5, -1.5, 1.5, 4.5, 7.5, 10.5, 13.5,
- 16.5, 19.5, 22.5, 25.5, 28.5, 31.5,
-};
-
-static long _vq_quantmap__44c3_s2_p7_1[] = {
- 21, 19, 17, 15, 13, 11, 9, 7,
- 5, 3, 1, 0, 2, 4, 6, 8,
- 10, 12, 14, 16, 18, 20, 22,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c3_s2_p7_1 = {
- _vq_quantthresh__44c3_s2_p7_1,
- _vq_quantmap__44c3_s2_p7_1,
- 23,
- 23
-};
-
-static static_codebook _44c3_s2_p7_1 = {
- 2, 529,
- _vq_lengthlist__44c3_s2_p7_1,
- 1, -525303808, 1614282752, 5, 0,
- _vq_quantlist__44c3_s2_p7_1,
- NULL,
- &_vq_auxt__44c3_s2_p7_1,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c3_s2_p7_2.vqh b/lib/books/coupled/_44c3_s2_p7_2.vqh
deleted file mode 100644
index bd68ce86..00000000
--- a/lib/books/coupled/_44c3_s2_p7_2.vqh
+++ /dev/null
@@ -1,63 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c3_s2_p7_2_VQH_
-#define _V__44c3_s2_p7_2_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c3_s2_p7_2[] = {
- 1,
- 0,
- 2,
-};
-
-static long _vq_lengthlist__44c3_s2_p7_2[] = {
- 3, 5, 5, 7, 6, 6, 7, 6, 6, 5, 5, 5, 7, 7, 7, 7,
- 7, 7, 5, 5, 5, 7, 7, 7, 7, 7, 6, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 6, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 6,
- 7, 7, 7, 7, 7, 7, 7, 7, 6, 7, 7, 7, 7, 7, 7, 7,
- 7,
-};
-
-static float _vq_quantthresh__44c3_s2_p7_2[] = {
- -0.5, 0.5,
-};
-
-static long _vq_quantmap__44c3_s2_p7_2[] = {
- 1, 0, 2,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c3_s2_p7_2 = {
- _vq_quantthresh__44c3_s2_p7_2,
- _vq_quantmap__44c3_s2_p7_2,
- 3,
- 3
-};
-
-static static_codebook _44c3_s2_p7_2 = {
- 4, 81,
- _vq_lengthlist__44c3_s2_p7_2,
- 1, -535822336, 1611661312, 2, 0,
- _vq_quantlist__44c3_s2_p7_2,
- NULL,
- &_vq_auxt__44c3_s2_p7_2,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c3_s3_p7_0.vqh b/lib/books/coupled/_44c3_s3_p7_0.vqh
deleted file mode 100644
index 1042aa8c..00000000
--- a/lib/books/coupled/_44c3_s3_p7_0.vqh
+++ /dev/null
@@ -1,80 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c3_s3_p7_0_VQH_
-#define _V__44c3_s3_p7_0_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c3_s3_p7_0[] = {
- 6,
- 5,
- 7,
- 4,
- 8,
- 3,
- 9,
- 2,
- 10,
- 1,
- 11,
- 0,
- 12,
-};
-
-static long _vq_lengthlist__44c3_s3_p7_0[] = {
- 1, 3, 3, 7, 7,12,12,15,14,15,15,15,15, 5, 5, 5,
- 9, 9,14,13,15,15,15,15,15,15, 5, 5, 5, 9, 9,13,
- 12,15,15,15,15,15,15,15, 8, 9,10,10,13,13,15,15,
- 15,15,15,15,15, 9, 6,10, 9,13,13,15,15,15,15,15,
- 15,15,10,13,10,11,13,15,15,15,15,15,15,15,15,12,
- 10,12,10,13,15,15,15,15,15,15,15,15,15,15,15,13,
- 15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,
- 15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,
- 15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,
- 15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,
- 15,15,15,15,15,15,15,15,15,
-};
-
-static float _vq_quantthresh__44c3_s3_p7_0[] = {
- -368.5, -301.5, -234.5, -167.5, -100.5, -33.5, 33.5, 100.5,
- 167.5, 234.5, 301.5, 368.5,
-};
-
-static long _vq_quantmap__44c3_s3_p7_0[] = {
- 11, 9, 7, 5, 3, 1, 0, 2,
- 4, 6, 8, 10, 12,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c3_s3_p7_0 = {
- _vq_quantthresh__44c3_s3_p7_0,
- _vq_quantmap__44c3_s3_p7_0,
- 13,
- 13
-};
-
-static static_codebook _44c3_s3_p7_0 = {
- 2, 169,
- _vq_lengthlist__44c3_s3_p7_0,
- 1, -518447104, 1624293376, 4, 0,
- _vq_quantlist__44c3_s3_p7_0,
- NULL,
- &_vq_auxt__44c3_s3_p7_0,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c3_s3_p7_1.vqh b/lib/books/coupled/_44c3_s3_p7_1.vqh
deleted file mode 100644
index bbc4101f..00000000
--- a/lib/books/coupled/_44c3_s3_p7_1.vqh
+++ /dev/null
@@ -1,115 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c3_s3_p7_1_VQH_
-#define _V__44c3_s3_p7_1_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c3_s3_p7_1[] = {
- 11,
- 10,
- 12,
- 9,
- 13,
- 8,
- 14,
- 7,
- 15,
- 6,
- 16,
- 5,
- 17,
- 4,
- 18,
- 3,
- 19,
- 2,
- 20,
- 1,
- 21,
- 0,
- 22,
-};
-
-static long _vq_lengthlist__44c3_s3_p7_1[] = {
- 2, 4, 4, 5, 5, 6, 7, 7, 7, 8, 8, 8, 8, 9, 9, 9,
- 9, 9, 9, 8, 9, 9, 9, 6, 5, 6, 7, 7, 8, 8, 8, 8,
- 9, 9, 9, 9,10,10,10,10, 9, 9, 9, 9,10,10,13, 6,
- 6, 7, 7, 8, 8, 8, 8, 9, 9, 9, 9,10,10,10,10, 9,
- 9, 9, 9,10,10,13, 8, 8, 8, 8, 8, 8, 9, 9, 9,10,
- 10,10,10,10,10,10,10,10,10,10,11,11,13, 8, 8, 7,
- 7, 8, 8, 9, 9, 9, 9,10,10,10,10,10,10,10,10,10,
- 10,11,11,13,11,10, 8, 8, 9, 9, 9, 9,10,10,10,10,
- 10,10,11,10,10,10,10,10,11,11,13,13,13, 8, 8, 9,
- 8, 9, 9,10,10,10,10,10,10,11,10,10,11,10,10,11,
- 11,14,14,14,10,10, 9, 9,10,10,10,10,10,10,11,11,
- 11,11,11,11,11,10,11,11,14,13,13,10,10, 9, 9,10,
- 10,10,10,10,11,11,10,11,11,11,11,11,11,11,11,14,
- 14,14,12,12,10,10,10,10,10,11,11,11,11,11,11,11,
- 11,11,11,11,11,12,14,14,14,13,13,10, 9,10,10,10,
- 11,11,11,11,11,11,11,11,11,11,11,11,11,14,14,14,
- 14,14,11,11,10,10,11,11,11,11,11,11,11,12,11,11,
- 11,11,11,12,15,14,14,13,13,11,11,10,10,11,11,11,
- 11,11,11,12,11,11,11,11,11,11,12,13,14,13,13,14,
- 13,12,11,11,11,11,11,11,11,12,11,11,11,11,11,11,
- 12,12,14,14,13,13,13,14,13,10,10,11,11,11,11,12,
- 12,11,11,11,11,11,11,12,12,14,14,13,13,13,13,13,
- 12,12,11,11,12,12,12,11,11,11,11,11,12,11,12,12,
- 13,13,14,14,13,14,13,12,12,11,11,11,11,12,12,11,
- 12,11,11,11,11,12,12,14,14,14,14,14,13,14,14,13,
- 12,12,12,12,11,11,12,11,12,11,11,11,12,12,14,13,
- 13,13,13,13,14,13,14,12,12,11,12,12,11,12,12,11,
- 11,11,11,12,12,13,14,13,13,13,14,13,13,13,12,12,
- 12,12,12,11,11,12,11,12,11,12,12,12,13,13,13,14,
- 13,13,13,13,13,12,13,11,11,12,11,12,12,11,11,11,
- 11,12,12,14,14,14,14,14,14,14,15,14,14,13,12,13,
- 12,12,12,12,12,12,12,13,13,13,13,15,14,13,14,14,
- 14,14,15,14,14,12,12,12,12,12,12,12,12,12,12,13,
- 13,
-};
-
-static float _vq_quantthresh__44c3_s3_p7_1[] = {
- -31.5, -28.5, -25.5, -22.5, -19.5, -16.5, -13.5, -10.5,
- -7.5, -4.5, -1.5, 1.5, 4.5, 7.5, 10.5, 13.5,
- 16.5, 19.5, 22.5, 25.5, 28.5, 31.5,
-};
-
-static long _vq_quantmap__44c3_s3_p7_1[] = {
- 21, 19, 17, 15, 13, 11, 9, 7,
- 5, 3, 1, 0, 2, 4, 6, 8,
- 10, 12, 14, 16, 18, 20, 22,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c3_s3_p7_1 = {
- _vq_quantthresh__44c3_s3_p7_1,
- _vq_quantmap__44c3_s3_p7_1,
- 23,
- 23
-};
-
-static static_codebook _44c3_s3_p7_1 = {
- 2, 529,
- _vq_lengthlist__44c3_s3_p7_1,
- 1, -525303808, 1614282752, 5, 0,
- _vq_quantlist__44c3_s3_p7_1,
- NULL,
- &_vq_auxt__44c3_s3_p7_1,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c3_s3_p7_2.vqh b/lib/books/coupled/_44c3_s3_p7_2.vqh
deleted file mode 100644
index e212e8be..00000000
--- a/lib/books/coupled/_44c3_s3_p7_2.vqh
+++ /dev/null
@@ -1,63 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c3_s3_p7_2_VQH_
-#define _V__44c3_s3_p7_2_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c3_s3_p7_2[] = {
- 1,
- 0,
- 2,
-};
-
-static long _vq_lengthlist__44c3_s3_p7_2[] = {
- 3, 5, 5, 7, 6, 6, 7, 6, 6, 5, 5, 5, 7, 7, 7, 7,
- 7, 7, 5, 5, 5, 7, 7, 7, 7, 7, 6, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 6, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 6,
- 7, 7, 7, 7, 7, 7, 7, 7, 6, 7, 7, 7, 7, 7, 7, 7,
- 7,
-};
-
-static float _vq_quantthresh__44c3_s3_p7_2[] = {
- -0.5, 0.5,
-};
-
-static long _vq_quantmap__44c3_s3_p7_2[] = {
- 1, 0, 2,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c3_s3_p7_2 = {
- _vq_quantthresh__44c3_s3_p7_2,
- _vq_quantmap__44c3_s3_p7_2,
- 3,
- 3
-};
-
-static static_codebook _44c3_s3_p7_2 = {
- 4, 81,
- _vq_lengthlist__44c3_s3_p7_2,
- 1, -535822336, 1611661312, 2, 0,
- _vq_quantlist__44c3_s3_p7_2,
- NULL,
- &_vq_auxt__44c3_s3_p7_2,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c3_short.vqh b/lib/books/coupled/_44c3_short.vqh
deleted file mode 100644
index a806d449..00000000
--- a/lib/books/coupled/_44c3_short.vqh
+++ /dev/null
@@ -1,40 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by huff/huffbuld
-
- ********************************************************************/
-
-#ifndef _V__44c3_short_VQH_
-#define _V__44c3_short_VQH_
-#include "codebook.h"
-
-static long _huff_lengthlist__44c3_short[] = {
- 8,17,17,17,17, 9,10,14,15, 8, 7, 9,12,16,16,16,
- 16, 6, 4, 6, 9,16,16,16,15, 7, 5, 5, 8,16,16,16,
- 16, 9, 6, 6, 7,16,16,16, 6,16,16,16,16, 3, 4, 9,
- 7,16,16,16,16, 3, 2, 7,12, 9, 4, 4, 5, 8, 7, 9,
-};
-
-static static_codebook _huff_book__44c3_short = {
- 2, 64,
- _huff_lengthlist__44c3_short,
- 0, 0, 0, 0, 0,
- NULL,
- NULL,
- NULL,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c4_long.vqd b/lib/books/coupled/_44c4_long.vqd
deleted file mode 100644
index 7aed0691..00000000
--- a/lib/books/coupled/_44c4_long.vqd
+++ /dev/null
@@ -1,3415 +0,0 @@
-9, 7, 7, 7, 7, 3, 7, 3, 7, 5, 5, 5, 5, 3, 7, 3, 3, 3, 1, 1, 5, 3, 3, 3, 1, 1, 1, 3, 1, 4, 2, 4, 2, 6, 4, 2, 2, 2, 2, 2, 2, 4, 4, 4, 2, 2, 2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 1, 7, 5, 5, 5, 1, 1, 3, 3, 3, 1, 1, 3, 1, 1, 1, 2, 4, 4, 4, 4, 4, 2, 2, 2, 4, 4, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 8, 7, 7, 7, 7, 7, 7, 5, 7, 1, 7, 5, 5, 3, 1, 1, 1, 5, 3, 3, 1, 3, 1, 1, 1, 2, 4, 2, 4, 4, 2, 2, 2, 4, 2, 2, 4, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 5, 7, 7, 7, 7, 7, 7, 7, 7, 5, 7, 1, 7, 7, 7, 1, 1, 1, 1, 3, 1, 1, 3, 1, 1, 1, 1, 2, 2, 4, 2, 4, 2, 4, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 1, 5, 7, 3, 1, 1, 1, 3, 3, 1, 3, 1, 3, 1, 3, 1, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 3, 7, 1, 5, 3, 3, 1, 1, 1, 3, 3, 3, 1, 1, 1, 5, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 8, 8, 5, 7, 7, 7, 5, 7, 3, 5, 1, 1, 5, 3, 1, 3, 1, 1, 3, 3, 1, 1, 1, 1, 1, 1, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 5, 7, 7, 3, 7, 5, 5, 1, 7, 3, 3, 3, 3, 5, 5, 0, 3, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 4, 4, 2, 4, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 8, 7, 3, 7, 5, 7, 3, 7, 3, 1, 3, 1, 5, 5, 1, 7, 7, 1, 3, 3, 1, 1, 1, 3, 1, 1, 2, 4, 2, 2, 2, 2, 2, 2, 6, 4, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 5, 7, 7, 3, 7, 5, 3, 5, 3, 5, 3, 3, 5, 3, 3, 7, 3, 1, 3, 1, 3, 5, 1, 1, 1, 2, 2, 4, 4, 2, 2, 2, 2, 2, 4, 0, 2, 2, 2, 2, 2, 2, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 7, 7, 7, 3, 7, 7, 7, 7, 7, 7, 5, 3, 7, 3, 5, 5, 1, 1, 1, 1, 1, 3, 1, 1, 1, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 7, 7, 7, 5, 7, 5, 7, 7, 7, 7, 7, 3, 5, 1, 5, 3, 1, 1, 1, 1, 1, 3, 1, 1, 1, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 7, 7, 7, 5, 8, 7, 7, 3, 7, 7, 5, 5, 3, 1, 7, 3, 1, 1, 3, 1, 3, 3, 1, 1, 1, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 5, 7, 7, 7, 7, 5, 7, 5, 7, 5, 7, 5, 1, 3, 3, 1, 3, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 7, 7, 7, 1, 7, 7, 5, 3, 7, 3, 1, 3, 3, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 5, 7, 7, 7, 7, 1, 7, 3, 7, 3, 7, 3, 1, 3, 5, 1, 1, 1, 1, 3, 3, 1, 3, 3, 3, 1, 1, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 7, 7, 3, 7, 5, 7, 1, 5, 1, 1, 3, 3, 1, 3, 1, 1, 5, 3, 1, 1, 1, 3, 1, 1, 2, 2, 2, 4, 2, 2, 2, 2, 2, 0, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 7, 7, 7, 3, 7, 5, 7, 1, 5, 1, 1, 1, 1, 1, 3, 1, 1, 3, 3, 1, 1, 1, 1, 3, 1, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 5, 7, 7, 7, 7, 3, 7, 3, 5, 1, 5, 1, 1, 3, 3, 1, 5, 3, 3, 5, 3, 1, 1, 3, 1, 1, 1, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 8, 3, 3, 8, 7, 1, 7, 7, 1, 5, 7, 7, 3, 5, 5, 3, 7, 7, 5, 5, 1, 7, 3, 3, 4, 6, 4, 2, 2, 2, 4, 2, 2, 2, 2, 2, 0, 4, 4, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 7, 7, 7, 7, 7, 7, 3, 7, 7, 3, 3, 7, 7, 1, 5, 5, 5, 7, 5, 3, 3, 0, 3, 1, 1, 2, 2, 4, 2, 2, 2, 4, 2, 0, 2, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 3, 7, 7, 7, 8, 7, 3, 7, 7, 3, 3, 7, 7, 1, 3, 5, 1, 7, 3, 1, 1, 0, 3, 1, 3, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 5, 5, 8, 5, 7, 7, 7, 1, 7, 7, 1, 3, 7, 7, 3, 3, 3, 1, 7, 1, 3, 1, 1, 1, 1, 3, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 7, 8, 7, 7, 8, 7, 1, 7, 7, 1, 3, 7, 7, 1, 1, 3, 1, 7, 3, 1, 1, 1, 1, 3, 3, 2, 4, 2, 2, 2, 2, 2, 2, 2, 0, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 7, 7, 7, 7, 7, 7, 1, 7, 7, 1, 3, 7, 5, 1, 1, 1, 1, 7, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 7, 7, 7, 8, 7, 1, 7, 7, 1, 3, 7, 5, 1, 1, 1, 1, 7, 1, 1, 1, 1, 1, 1, 3, 2, 4, 2, 2, 2, 2, 2, 2, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 8, 7, 7, 7, 7, 1, 7, 7, 1, 3, 7, 5, 1, 1, 1, 1, 7, 1, 1, 1, 1, 1, 3, 1, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 3, 7, 8, 7, 5, 7, 5, 1, 5, 5, 1, 1, 5, 3, 1, 1, 1, 3, 1, 5, 3, 1, 3, 1, 3, 3, 2, 4, 4, 4, 2, 2, 2, 2, 4, 2, 2, 4, 2, 4, 2, 2, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 5, 7, 7, 7, 7, 7, 7, 1, 5, 7, 1, 3, 5, 3, 1, 1, 5, 3, 5, 3, 1, 3, 1, 3, 1, 1, 2, 4, 2, 2, 4, 2, 2, 4, 2, 4, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 7, 7, 5, 7, 3, 1, 1, 1, 1, 3, 5, 5, 5, 3, 5, 1, 5, 1, 3, 1, 3, 1, 3, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 7, 7, 7, 5, 7, 5, 5, 5, 7, 3, 7, 5, 7, 7, 7, 3, 1, 3, 1, 3, 1, 1, 1, 3, 1, 4, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 2, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 7, 7, 7, 5, 7, 7, 5, 5, 7, 0, 7, 5, 5, 3, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 7, 7, 7, 5, 7, 5, 5, 5, 5, 1, 5, 5, 1, 1, 1, 3, 1, 3, 1, 1, 1, 1, 1, 1, 1, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 7, 7, 7, 5, 7, 5, 5, 5, 3, 1, 5, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 7, 7, 3, 7, 5, 5, 3, 3, 1, 1, 5, 3, 3, 1, 1, 1, 3, 1, 1, 3, 3, 1, 1, 1, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 7, 7, 3, 5, 3, 1, 1, 3, 1, 1, 3, 3, 3, 3, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 7, 7, 7, 5, 7, 7, 5, 1, 3, 1, 1, 1, 5, 1, 1, 1, 1, 3, 5, 1, 1, 1, 1, 1, 3, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 7, 7, 7, 5, 7, 3, 3, 3, 1, 3, 1, 3, 5, 1, 5, 1, 1, 1, 5, 1, 1, 1, 1, 1, 1, 4, 4, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 5, 7, 7, 5, 3, 7, 5, 7, 5, 3, 7, 3, 1, 7, 7, 5, 5, 5, 1, 5, 3, 3, 1, 1, 3, 1, 2, 2, 2, 2, 2, 4, 4, 2, 2, 2, 0, 2, 2, 2, 0, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 7, 7, 7, 5, 7, 7, 7, 7, 5, 5, 7, 3, 7, 7, 3, 1, 1, 1, 1, 5, 1, 3, 1, 3, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 5, 7, 7, 3, 7, 7, 7, 7, 5, 7, 5, 3, 7, 5, 3, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 7, 7, 7, 5, 7, 7, 7, 5, 5, 1, 3, 3, 5, 3, 1, 1, 1, 1, 1, 1, 1, 3, 1, 3, 1, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 7, 7, 7, 5, 7, 7, 7, 7, 5, 1, 1, 5, 3, 3, 1, 1, 1, 1, 1, 3, 3, 1, 1, 3, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 5, 5, 7, 7, 3, 7, 5, 5, 5, 5, 1, 1, 3, 3, 3, 3, 1, 1, 3, 3, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 5, 7, 5, 7, 5, 7, 5, 5, 3, 3, 1, 3, 1, 3, 3, 3, 1, 3, 3, 1, 1, 1, 1, 3, 3, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 5, 5, 5, 7, 5, 7, 3, 3, 3, 1, 3, 3, 1, 5, 5, 3, 1, 1, 3, 1, 1, 1, 3, 1, 1, 3, 4, 4, 2, 2, 2, 2, 4, 2, 2, 4, 4, 2, 2, 4, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 7, 7, 1, 7, 5, 3, 3, 5, 1, 3, 1, 1, 1, 5, 1, 1, 5, 3, 3, 1, 3, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 3, 7, 3, 5, 7, 7, 1, 7, 7, 1, 5, 7, 7, 3, 3, 5, 3, 5, 5, 5, 5, 1, 3, 1, 1, 2, 4, 4, 0, 2, 2, 2, 2, 2, 2, 2, 0, 0, 4, 4, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 7, 8, 7, 7, 8, 7, 1, 7, 7, 3, 5, 7, 7, 3, 5, 7, 3, 7, 3, 5, 1, 1, 1, 1, 1, 2, 2, 4, 2, 4, 2, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 5, 5, 5, 7, 7, 7, 7, 7, 1, 7, 7, 1, 3, 7, 7, 3, 5, 3, 1, 7, 3, 1, 1, 1, 1, 1, 3, 2, 2, 4, 2, 2, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 5, 8, 7, 7, 8, 7, 1, 7, 7, 1, 3, 7, 7, 0, 3, 3, 1, 7, 1, 1, 1, 1, 1, 1, 1, 2, 2, 4, 2, 2, 0, 2, 2, 2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 7, 7, 5, 7, 7, 7, 1, 7, 7, 0, 3, 7, 7, 1, 1, 1, 1, 7, 3, 1, 1, 1, 1, 1, 1, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 5, 7, 7, 7, 8, 7, 1, 7, 7, 1, 5, 7, 7, 1, 1, 1, 1, 7, 3, 1, 1, 1, 1, 1, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 7, 8, 5, 7, 7, 7, 1, 7, 7, 1, 3, 7, 5, 1, 1, 1, 1, 5, 1, 3, 1, 1, 1, 1, 3, 2, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 5, 7, 5, 7, 7, 7, 1, 7, 7, 1, 1, 5, 5, 1, 1, 1, 1, 5, 1, 1, 1, 1, 1, 1, 1, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 5, 5, 7, 5, 7, 7, 5, 1, 5, 7, 1, 3, 3, 3, 1, 7, 1, 1, 1, 3, 3, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 5, 7, 7, 3, 7, 3, 5, 3, 3, 3, 7, 3, 3, 1, 7, 3, 1, 3, 1, 5, 1, 1, 1, 3, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 4, 2, 2, 2, 0, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 7, 7, 7, 7, 7, 3, 7, 3, 5, 5, 3, 3, 3, 5, 7, 3, 1, 1, 1, 5, 1, 1, 1, 3, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 7, 7, 5, 3, 7, 7, 7, 5, 7, 3, 7, 3, 3, 1, 7, 3, 1, 1, 1, 1, 1, 3, 1, 1, 1, 4, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 7, 7, 5, 3, 7, 7, 5, 5, 5, 5, 7, 1, 3, 3, 7, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 0, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 7, 7, 7, 3, 5, 7, 5, 3, 5, 7, 5, 1, 3, 3, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 2, 0, 2, 2, 2, 2, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 7, 7, 7, 5, 7, 3, 7, 3, 1, 3, 7, 1, 1, 1, 5, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 5, 7, 7, 5, 7, 7, 7, 3, 1, 5, 5, 1, 3, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 7, 5, 3, 7, 5, 5, 3, 5, 5, 3, 1, 1, 1, 3, 1, 1, 1, 3, 3, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 5, 7, 3, 5, 7, 3, 5, 1, 1, 1, 5, 3, 3, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 5, 7, 1, 7, 5, 3, 5, 1, 5, 3, 7, 3, 5, 3, 1, 3, 1, 3, 1, 3, 3, 1, 1, 3, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 4, 2, 2, 4, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 7, 7, 7, 5, 5, 5, 5, 7, 5, 1, 1, 7, 3, 5, 5, 3, 3, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 7, 5, 7, 3, 7, 7, 5, 7, 7, 3, 1, 5, 1, 3, 1, 1, 3, 1, 3, 1, 3, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-7, 7, 7, 7, 7, 7, 7, 1, 7, 7, 5, 5, 3, 1, 3, 5, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 3, 3, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 7, 7, 7, 1, 5, 3, 5, 7, 5, 1, 3, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 3, 1, 3, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 7, 7, 7, 3, 7, 7, 5, 3, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 3, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 7, 7, 7, 3, 5, 5, 5, 3, 3, 1, 3, 1, 3, 3, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 5, 7, 7, 3, 5, 3, 3, 5, 1, 1, 1, 3, 3, 3, 3, 3, 1, 1, 3, 3, 3, 3, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 7, 5, 5, 3, 3, 3, 5, 3, 5, 3, 1, 3, 3, 3, 1, 3, 1, 1, 1, 1, 3, 1, 1, 3, 3, 2, 2, 4, 4, 2, 2, 4, 2, 2, 0, 2, 2, 0, 2, 2, 0, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 5, 5, 3, 5, 5, 1, 1, 5, 3, 3, 3, 1, 3, 3, 1, 1, 3, 5, 3, 1, 1, 3, 3, 5, 2, 2, 4, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 2, 4, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 5, 5, 7, 7, 7, 7, 3, 5, 3, 3, 5, 5, 5, 5, 1, 3, 3, 3, 0, 1, 1, 1, 3, 1, 1, 1, 5, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 7, 5, 7, 3, 5, 5, 1, 5, 3, 5, 3, 3, 1, 1, 1, 1, 1, 1, 3, 3, 1, 1, 3, 1, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 7, 7, 7, 3, 5, 5, 3, 1, 1, 5, 3, 1, 1, 3, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 7, 7, 7, 5, 5, 5, 3, 3, 3, 3, 1, 1, 3, 1, 1, 3, 3, 1, 1, 3, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 5, 7, 7, 3, 5, 3, 3, 3, 3, 3, 1, 1, 1, 3, 5, 3, 3, 3, 3, 1, 1, 1, 3, 1, 1, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 7, 5, 5, 3, 5, 3, 3, 1, 3, 1, 3, 1, 3, 3, 3, 3, 3, 1, 1, 3, 1, 1, 1, 3, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 5, 7, 3, 3, 5, 1, 5, 1, 1, 1, 3, 5, 3, 3, 1, 1, 1, 3, 1, 1, 1, 1, 3, 1, 1, 2, 2, 4, 4, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 7, 3, 5, 7, 1, 7, 1, 1, 1, 3, 3, 1, 1, 3, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 7, 7, 5, 7, 3, 3, 1, 3, 1, 7, 7, 7, 7, 5, 5, 1, 3, 1, 1, 1, 1, 3, 3, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 7, 7, 7, 5, 7, 5, 7, 7, 7, 1, 7, 7, 7, 5, 3, 3, 1, 3, 1, 1, 1, 1, 1, 1, 1, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 7, 5, 7, 7, 7, 1, 5, 3, 3, 0, 7, 3, 5, 5, 3, 3, 1, 1, 1, 3, 3, 1, 3, 1, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 7, 7, 7, 5, 7, 1, 5, 5, 5, 1, 5, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 3, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 7, 7, 7, 5, 7, 1, 5, 3, 5, 1, 5, 3, 3, 1, 1, 1, 1, 1, 3, 3, 3, 1, 1, 1, 1, 2, 4, 4, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 5, 7, 5, 7, 3, 7, 1, 7, 3, 3, 1, 3, 5, 3, 1, 1, 1, 1, 1, 3, 1, 1, 3, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-7, 7, 7, 7, 7, 7, 7, 3, 7, 3, 5, 1, 3, 1, 3, 3, 3, 3, 1, 1, 1, 3, 1, 1, 1, 3, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 7, 5, 7, 5, 7, 3, 5, 1, 1, 3, 3, 3, 1, 3, 3, 1, 1, 1, 3, 3, 1, 3, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 7, 5, 7, 5, 7, 3, 3, 3, 1, 3, 3, 3, 3, 1, 3, 1, 1, 3, 3, 3, 1, 1, 1, 3, 3, 2, 2, 2, 4, 2, 2, 2, 4, 6, 4, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 5, 7, 3, 7, 1, 5, 5, 3, 1, 3, 3, 1, 3, 3, 1, 3, 1, 3, 1, 3, 1, 1, 1, 1, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 7, 7, 5, 7, 7, 1, 3, 3, 5, 5, 3, 5, 7, 1, 1, 3, 3, 5, 5, 1, 1, 3, 1, 1, 4, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 5, 5, 7, 7, 7, 5, 7, 7, 7, 7, 7, 5, 7, 3, 5, 7, 3, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 2, 4, 2, 2, 2, 4, 2, 2, 4, 2, 2, 2, 2, 2, 2, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 5, 5, 7, 7, 7, 5, 7, 7, 5, 7, 7, 3, 7, 5, 5, 5, 1, 1, 1, 1, 3, 3, 1, 3, 1, 3, 1, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-7, 7, 5, 7, 7, 7, 7, 3, 7, 7, 7, 5, 7, 1, 5, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 5, 7, 7, 7, 7, 3, 7, 7, 3, 5, 5, 1, 3, 5, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 5, 7, 7, 7, 7, 5, 7, 7, 5, 5, 7, 1, 1, 3, 5, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 5, 7, 7, 7, 7, 5, 7, 7, 5, 5, 7, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 7, 7, 1, 7, 7, 3, 3, 3, 1, 1, 3, 3, 1, 3, 3, 1, 3, 1, 1, 1, 1, 1, 1, 3, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 7, 5, 3, 5, 3, 3, 1, 5, 3, 5, 1, 1, 3, 3, 5, 1, 3, 3, 1, 1, 1, 3, 3, 3, 2, 2, 4, 2, 2, 4, 4, 4, 2, 4, 4, 4, 2, 2, 2, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 7, 5, 7, 7, 7, 5, 5, 1, 5, 1, 5, 3, 1, 5, 3, 1, 1, 5, 1, 1, 1, 1, 1, 1, 5, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 5, 7, 7, 5, 7, 5, 5, 7, 5, 1, 5, 5, 5, 1, 3, 3, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 0, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 5, 7, 7, 7, 7, 5, 5, 5, 5, 5, 1, 3, 3, 3, 1, 1, 3, 1, 3, 3, 3, 1, 1, 1, 1, 3, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 5, 7, 5, 5, 5, 5, 5, 3, 3, 1, 3, 1, 3, 3, 1, 3, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 3, 7, 7, 5, 5, 3, 5, 5, 3, 1, 1, 3, 3, 3, 3, 3, 1, 1, 3, 1, 1, 1, 1, 1, 1, 3, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 5, 7, 7, 7, 7, 3, 7, 5, 5, 1, 3, 3, 3, 1, 1, 1, 3, 3, 1, 3, 1, 1, 1, 3, 1, 1, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 5, 7, 7, 1, 5, 5, 1, 3, 3, 5, 1, 3, 3, 3, 1, 1, 1, 1, 1, 3, 1, 3, 1, 1, 1, 4, 4, 2, 2, 2, 2, 2, 0, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 5, 7, 5, 5, 7, 3, 5, 3, 1, 3, 1, 1, 3, 1, 5, 3, 1, 1, 3, 1, 1, 3, 1, 1, 3, 5, 3, 2, 2, 4, 2, 2, 2, 2, 4, 4, 2, 4, 2, 2, 0, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 7, 7, 7, 3, 5, 5, 3, 1, 1, 3, 5, 1, 1, 1, 7, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 2, 4, 2, 2, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 5, 3, 5, 3, 5, 1, 5, 5, 5, 5, 5, 1, 3, 3, 7, 3, 1, 3, 1, 7, 0, 1, 1, 3, 3, 2, 2, 2, 2, 2, 2, 2, 2, 4, 4, 2, 4, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 7, 5, 7, 7, 7, 7, 7, 5, 5, 7, 5, 3, 1, 1, 7, 3, 3, 3, 1, 3, 1, 0, 1, 1, 1, 2, 2, 2, 2, 2, 2, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 7, 3, 7, 5, 7, 7, 7, 7, 5, 7, 7, 1, 1, 1, 7, 5, 1, 1, 5, 3, 1, 1, 1, 1, 3, 2, 2, 2, 2, 4, 2, 2, 2, 2, 0, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 7, 5, 7, 5, 7, 7, 7, 5, 5, 7, 7, 1, 1, 3, 7, 3, 1, 1, 3, 5, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 5, 7, 7, 7, 3, 7, 3, 7, 7, 7, 5, 3, 7, 7, 1, 1, 1, 7, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 7, 3, 7, 3, 7, 5, 7, 5, 5, 7, 7, 1, 1, 1, 5, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 5, 7, 7, 7, 7, 7, 1, 7, 7, 7, 7, 3, 7, 7, 3, 1, 3, 3, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 5, 3, 5, 3, 5, 7, 5, 3, 3, 7, 5, 3, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 2, 2, 0, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 5, 5, 3, 3, 3, 3, 5, 3, 3, 3, 3, 3, 3, 3, 1, 3, 1, 1, 3, 1, 3, 1, 3, 3, 3, 2, 4, 2, 2, 2, 4, 2, 2, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 5, 7, 7, 1, 5, 3, 3, 5, 3, 1, 5, 7, 1, 7, 5, 5, 3, 5, 3, 1, 5, 5, 0, 3, 3, 2, 4, 2, 2, 6, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 7, 7, 7, 1, 7, 5, 7, 5, 5, 3, 5, 7, 1, 5, 1, 3, 1, 1, 3, 1, 3, 1, 1, 1, 1, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 7, 7, 7, 1, 7, 7, 7, 7, 7, 1, 7, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 4, 2, 2, 0, 2, 2, 2, 2, 4, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 7, 7, 7, 1, 7, 5, 7, 7, 5, 1, 7, 7, 1, 1, 1, 3, 1, 3, 1, 1, 1, 1, 1, 1, 1, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 7, 7, 7, 1, 7, 7, 7, 5, 3, 1, 7, 5, 1, 3, 1, 3, 1, 1, 1, 3, 1, 1, 1, 1, 1, 2, 4, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 7, 7, 7, 1, 7, 5, 7, 3, 3, 1, 5, 5, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 7, 7, 7, 1, 7, 3, 7, 3, 3, 3, 3, 3, 1, 0, 1, 1, 1, 1, 1, 1, 3, 3, 3, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 7, 7, 7, 1, 7, 5, 7, 3, 1, 1, 3, 1, 1, 3, 3, 1, 1, 1, 3, 1, 1, 1, 3, 3, 1, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 5, 3, 3, 3, 3, 5, 5, 3, 3, 3, 3, 3, 5, 3, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 2, 4, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 5, 7, 7, 3, 3, 7, 5, 7, 7, 3, 5, 5, 1, 7, 7, 1, 3, 5, 1, 3, 5, 1, 3, 3, 3, 3, 2, 2, 4, 2, 2, 2, 2, 4, 2, 2, 2, 4, 2, 2, 2, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 3, 7, 7, 8, 7, 7, 7, 7, 7, 7, 5, 5, 7, 3, 7, 7, 3, 1, 1, 1, 3, 5, 1, 3, 1, 0, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 5, 7, 7, 7, 7, 5, 7, 7, 7, 7, 5, 3, 7, 7, 7, 5, 1, 1, 1, 3, 3, 5, 1, 1, 1, 1, 3, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 5, 7, 7, 7, 7, 3, 7, 7, 7, 7, 7, 5, 3, 7, 7, 5, 1, 3, 1, 1, 3, 5, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 5, 7, 7, 8, 7, 5, 7, 7, 7, 7, 5, 3, 1, 3, 3, 7, 1, 1, 0, 1, 1, 3, 1, 1, 1, 3, 1, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 3, 7, 7, 7, 7, 5, 7, 7, 7, 5, 5, 5, 3, 7, 5, 3, 1, 0, 1, 0, 1, 5, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 3, 7, 7, 8, 7, 3, 7, 7, 5, 3, 5, 1, 1, 3, 3, 1, 1, 1, 1, 1, 1, 5, 1, 1, 1, 1, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 5, 7, 7, 8, 7, 5, 7, 7, 7, 5, 7, 1, 1, 5, 3, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 5, 7, 7, 7, 7, 5, 7, 5, 3, 3, 5, 1, 1, 5, 3, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 3, 7, 7, 8, 7, 3, 7, 7, 5, 3, 5, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 5, 7, 7, 7, 7, 3, 7, 7, 7, 3, 3, 1, 1, 3, 1, 1, 0, 0, 0, 0, 1, 1, 1, 0, 1, 3, 3, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 5, 7, 7, 7, 7, 3, 7, 5, 5, 3, 3, 1, 3, 1, 3, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 3, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 5, 7, 7, 7, 7, 5, 7, 5, 7, 3, 5, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 0, 1, 1, 1, 1, 3, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 5, 7, 7, 7, 7, 3, 7, 7, 5, 1, 3, 3, 3, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 3, 2, 4, 2, 4, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 5, 7, 7, 7, 7, 3, 7, 3, 7, 3, 5, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 5, 7, 7, 7, 7, 5, 7, 5, 5, 1, 5, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 3, 4, 2, 4, 2, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 5, 7, 7, 7, 7, 5, 5, 5, 5, 3, 3, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 3, 3, 2, 4, 2, 2, 2, 2, 2, 2, 0, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 7, 7, 1, 7, 3, 5, 3, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 3, 4, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 7, 5, 7, 3, 5, 3, 3, 3, 3, 3, 3, 5, 1, 1, 3, 3, 1, 1, 5, 1, 1, 1, 1, 1, 3, 2, 2, 2, 2, 4, 2, 0, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 5, 7, 3, 3, 7, 3, 5, 1, 3, 3, 1, 5, 3, 1, 3, 1, 3, 3, 1, 3, 1, 3, 1, 3, 1, 4, 4, 2, 2, 6, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 7, 5, 3, 5, 5, 7, 5, 3, 3, 5, 3, 5, 3, 3, 5, 5, 3, 7, 3, 1, 1, 3, 5, 1, 6, 4, 4, 4, 6, 6, 4, 2, 2, 2, 4, 2, 6, 2, 2, 2, 4, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 8, 7, 5, 7, 7, 7, 7, 5, 5, 5, 7, 5, 7, 1, 1, 1, 5, 5, 5, 1, 1, 3, 1, 1, 1, 2, 2, 2, 2, 6, 4, 2, 2, 2, 2, 4, 4, 4, 4, 4, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 3, 7, 5, 7, 1, 1, 1, 5, 3, 3, 3, 1, 5, 1, 3, 1, 2, 2, 2, 2, 2, 2, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 5, 7, 7, 7, 5, 7, 7, 7, 5, 7, 3, 3, 7, 7, 5, 1, 1, 1, 3, 7, 3, 1, 3, 1, 1, 1, 1, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 8, 7, 7, 7, 7, 7, 7, 7, 5, 3, 7, 5, 1, 1, 1, 1, 1, 1, 3, 1, 1, 3, 1, 3, 1, 4, 4, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 5, 7, 7, 7, 5, 7, 7, 7, 7, 5, 5, 1, 5, 5, 3, 1, 1, 1, 1, 3, 3, 1, 1, 1, 3, 1, 1, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 8, 7, 7, 7, 5, 7, 7, 5, 5, 5, 3, 1, 3, 5, 5, 1, 1, 1, 1, 5, 1, 1, 1, 3, 3, 1, 1, 4, 4, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 7, 5, 5, 7, 5, 7, 1, 1, 3, 1, 5, 5, 1, 1, 3, 1, 1, 3, 3, 1, 3, 1, 1, 1, 4, 4, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 5, 3, 5, 7, 5, 7, 3, 1, 3, 1, 3, 3, 1, 7, 3, 3, 3, 3, 1, 3, 3, 3, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 8, 7, 7, 5, 7, 3, 7, 3, 3, 7, 1, 5, 5, 5, 7, 1, 5, 7, 1, 3, 3, 1, 3, 5, 0, 1, 3, 2, 2, 4, 4, 2, 4, 2, 4, 2, 4, 2, 2, 2, 2, 2, 2, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 5, 7, 7, 7, 7, 3, 7, 5, 5, 7, 5, 7, 5, 5, 7, 3, 7, 7, 1, 1, 1, 1, 3, 3, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 7, 7, 7, 3, 7, 7, 7, 7, 7, 7, 5, 5, 5, 0, 5, 1, 1, 1, 1, 1, 1, 3, 1, 1, 3, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 5, 7, 7, 7, 7, 3, 7, 5, 7, 5, 7, 5, 3, 1, 3, 1, 5, 1, 1, 1, 1, 1, 1, 1, 1, 3, 3, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 7, 7, 7, 5, 7, 7, 7, 3, 7, 3, 1, 3, 1, 1, 3, 3, 1, 3, 3, 1, 3, 3, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 7, 7, 7, 3, 7, 5, 7, 5, 7, 5, 1, 5, 1, 1, 1, 1, 1, 1, 3, 1, 1, 3, 1, 1, 1, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 5, 7, 7, 7, 3, 7, 5, 5, 3, 7, 1, 1, 5, 3, 3, 3, 1, 3, 3, 3, 3, 1, 1, 3, 1, 1, 4, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 7, 7, 5, 3, 7, 3, 3, 1, 5, 1, 3, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 3, 5, 1, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 5, 7, 7, 7, 1, 7, 5, 3, 1, 5, 1, 1, 3, 1, 1, 1, 1, 3, 1, 3, 1, 1, 3, 3, 1, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 5, 5, 7, 5, 5, 7, 7, 3, 5, 7, 3, 5, 7, 7, 1, 7, 7, 3, 7, 7, 5, 5, 1, 5, 1, 1, 2, 6, 2, 0, 2, 2, 4, 2, 2, 2, 2, 2, 0, 4, 4, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 7, 8, 7, 5, 7, 7, 3, 7, 7, 1, 3, 7, 7, 1, 5, 5, 5, 7, 5, 3, 1, 0, 5, 1, 1, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 3, 7, 7, 7, 5, 8, 7, 1, 7, 7, 1, 3, 7, 7, 1, 5, 3, 1, 7, 3, 5, 1, 1, 1, 3, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 1, 7, 7, 1, 3, 7, 7, 0, 5, 3, 1, 7, 1, 1, 0, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 8, 7, 7, 8, 7, 1, 7, 7, 1, 1, 7, 7, 1, 3, 1, 1, 7, 1, 1, 1, 3, 3, 3, 3, 4, 2, 2, 2, 2, 2, 2, 0, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 7, 8, 7, 7, 7, 7, 1, 7, 7, 1, 3, 7, 7, 1, 3, 3, 1, 7, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 7, 7, 7, 7, 8, 7, 1, 7, 7, 1, 1, 7, 7, 1, 1, 1, 1, 7, 1, 1, 1, 1, 1, 1, 1, 4, 2, 2, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 7, 7, 7, 7, 7, 1, 7, 7, 1, 3, 7, 5, 1, 1, 1, 1, 7, 1, 1, 1, 1, 1, 1, 1, 4, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 8, 5, 7, 8, 7, 1, 7, 5, 1, 1, 5, 5, 1, 1, 1, 1, 5, 1, 1, 3, 1, 1, 1, 3, 2, 2, 4, 2, 2, 2, 2, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 5, 8, 7, 5, 7, 7, 3, 7, 7, 1, 1, 3, 3, 1, 1, 1, 1, 1, 5, 1, 1, 1, 1, 1, 3, 2, 2, 2, 4, 4, 4, 4, 2, 2, 2, 4, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 8, 7, 7, 7, 7, 5, 7, 7, 1, 5, 5, 1, 3, 5, 1, 1, 1, 3, 1, 5, 1, 1, 1, 3, 3, 1, 1, 2, 6, 2, 2, 2, 2, 4, 4, 2, 4, 6, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 5, 7, 5, 7, 3, 3, 3, 3, 1, 7, 7, 7, 7, 5, 3, 1, 3, 3, 1, 1, 3, 1, 5, 3, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 7, 8, 7, 5, 7, 3, 5, 3, 5, 1, 7, 5, 7, 7, 3, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 7, 7, 7, 5, 7, 5, 7, 5, 5, 0, 5, 3, 1, 3, 3, 3, 1, 3, 1, 1, 1, 3, 1, 1, 1, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 7, 7, 7, 3, 7, 3, 3, 3, 5, 1, 5, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 5, 2, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 7, 7, 7, 3, 7, 7, 5, 5, 7, 1, 7, 5, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 0, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 7, 7, 7, 5, 7, 3, 1, 3, 3, 1, 1, 3, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 7, 7, 3, 7, 5, 3, 1, 3, 1, 5, 5, 3, 1, 1, 3, 1, 1, 3, 1, 3, 1, 1, 1, 3, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 7, 5, 5, 7, 5, 1, 3, 1, 1, 1, 3, 3, 5, 5, 1, 1, 1, 3, 1, 3, 3, 3, 3, 1, 4, 4, 2, 4, 2, 2, 2, 4, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 7, 7, 7, 5, 7, 3, 3, 3, 3, 3, 1, 3, 5, 1, 3, 1, 1, 1, 5, 5, 1, 0, 1, 1, 1, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 7, 5, 5, 3, 7, 5, 5, 7, 5, 3, 7, 1, 5, 7, 1, 5, 3, 1, 5, 3, 1, 3, 1, 5, 3, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 5, 7, 7, 7, 5, 7, 7, 7, 7, 5, 5, 7, 1, 7, 7, 3, 1, 5, 3, 3, 3, 1, 1, 1, 1, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 7, 7, 7, 5, 7, 7, 7, 7, 7, 5, 5, 5, 7, 5, 1, 1, 1, 1, 3, 5, 1, 1, 1, 1, 3, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 7, 7, 7, 5, 7, 7, 7, 5, 5, 5, 3, 5, 3, 7, 3, 1, 3, 1, 1, 5, 1, 1, 3, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 5, 5, 7, 7, 5, 7, 7, 5, 7, 5, 1, 1, 5, 5, 5, 1, 1, 1, 3, 1, 3, 1, 1, 1, 3, 1, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 7, 7, 7, 5, 7, 7, 5, 5, 5, 1, 1, 5, 1, 5, 1, 1, 1, 1, 3, 5, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 7, 7, 1, 7, 7, 5, 3, 3, 1, 3, 3, 3, 3, 3, 1, 1, 1, 3, 3, 3, 3, 1, 1, 1, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 5, 7, 7, 1, 7, 5, 3, 1, 3, 3, 1, 3, 5, 1, 3, 1, 1, 7, 3, 1, 1, 1, 1, 1, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 5, 7, 7, 7, 3, 7, 7, 5, 3, 1, 1, 3, 3, 1, 1, 3, 1, 3, 5, 3, 1, 1, 1, 1, 1, 1, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 5, 5, 7, 3, 5, 7, 7, 1, 7, 7, 3, 5, 7, 7, 1, 5, 7, 5, 7, 5, 3, 5, 1, 5, 1, 3, 2, 4, 4, 2, 2, 2, 2, 4, 0, 2, 2, 2, 0, 2, 4, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 5, 7, 7, 7, 7, 8, 7, 3, 7, 7, 1, 5, 7, 7, 3, 5, 5, 3, 7, 5, 5, 1, 0, 5, 1, 3, 0, 2, 2, 2, 2, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 7, 7, 5, 5, 7, 7, 1, 7, 7, 1, 1, 7, 7, 1, 3, 3, 1, 7, 1, 3, 1, 1, 1, 3, 3, 2, 2, 4, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 7, 8, 7, 7, 7, 7, 1, 7, 7, 1, 1, 7, 7, 0, 3, 3, 1, 7, 1, 3, 1, 1, 1, 1, 1, 2, 0, 4, 0, 2, 2, 2, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 5, 7, 7, 7, 7, 7, 7, 1, 7, 7, 1, 3, 7, 7, 1, 1, 1, 0, 7, 1, 1, 1, 1, 1, 1, 1, 0, 2, 4, 2, 0, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 5, 8, 7, 7, 7, 7, 1, 7, 7, 1, 5, 7, 7, 1, 1, 1, 0, 7, 3, 3, 1, 1, 1, 1, 3, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 7, 7, 7, 7, 7, 1, 7, 7, 1, 1, 7, 7, 1, 1, 0, 1, 7, 1, 1, 3, 1, 1, 1, 1, 2, 2, 4, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 7, 8, 5, 7, 7, 7, 1, 7, 7, 1, 1, 7, 5, 1, 1, 1, 0, 5, 1, 1, 1, 3, 1, 1, 1, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 8, 7, 7, 7, 7, 5, 7, 7, 1, 7, 7, 1, 3, 5, 3, 1, 3, 1, 1, 3, 1, 3, 1, 1, 1, 1, 3, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 3, 7, 5, 5, 7, 7, 3, 5, 7, 3, 5, 1, 1, 1, 7, 3, 1, 3, 1, 1, 1, 1, 1, 3, 1, 2, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 7, 5, 7, 3, 5, 3, 5, 5, 5, 1, 5, 3, 1, 1, 7, 5, 1, 5, 1, 5, 1, 1, 1, 3, 3, 4, 2, 0, 2, 2, 4, 2, 2, 6, 4, 2, 2, 4, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 7, 7, 5, 5, 7, 7, 7, 5, 7, 5, 3, 5, 1, 3, 7, 3, 1, 1, 3, 7, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 7, 7, 7, 5, 7, 7, 7, 5, 5, 7, 7, 5, 1, 1, 7, 5, 1, 1, 1, 5, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 5, 5, 7, 7, 7, 7, 5, 7, 7, 7, 5, 5, 7, 5, 1, 3, 1, 7, 3, 1, 3, 3, 5, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 0, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 7, 7, 7, 5, 7, 3, 7, 3, 3, 5, 7, 1, 3, 1, 7, 1, 1, 3, 3, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 7, 7, 5, 5, 7, 5, 5, 5, 3, 7, 5, 1, 1, 1, 7, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 7, 7, 3, 7, 7, 7, 5, 5, 7, 3, 1, 5, 1, 5, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 0, 0, 2, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 7, 7, 5, 5, 7, 3, 1, 3, 3, 3, 3, 3, 3, 3, 1, 1, 1, 1, 1, 1, 3, 1, 1, 3, 3, 2, 2, 2, 4, 4, 4, 2, 4, 4, 4, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 5, 7, 7, 1, 7, 7, 3, 3, 1, 3, 3, 7, 1, 5, 3, 1, 3, 1, 1, 1, 3, 1, 1, 1, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 7, 7, 7, 5, 7, 7, 7, 7, 5, 5, 5, 7, 1, 5, 5, 3, 1, 1, 3, 1, 1, 3, 1, 1, 1, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 5, 7, 7, 3, 7, 5, 5, 5, 7, 3, 5, 5, 1, 3, 1, 3, 3, 1, 3, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 7, 7, 7, 1, 7, 7, 7, 5, 3, 1, 1, 7, 3, 1, 1, 3, 1, 3, 5, 1, 1, 1, 1, 3, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 7, 7, 7, 1, 7, 5, 5, 5, 5, 1, 1, 5, 3, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 7, 7, 7, 3, 7, 5, 3, 3, 1, 1, 3, 5, 3, 1, 1, 1, 3, 1, 1, 1, 1, 3, 3, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 7, 7, 3, 7, 5, 5, 3, 3, 3, 1, 3, 3, 3, 1, 3, 1, 1, 3, 1, 1, 3, 1, 1, 3, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 7, 7, 3, 5, 3, 3, 3, 3, 1, 3, 5, 3, 3, 1, 3, 1, 3, 1, 3, 1, 1, 1, 1, 1, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 5, 5, 5, 5, 3, 5, 1, 3, 3, 5, 1, 1, 5, 3, 3, 1, 3, 3, 1, 1, 1, 1, 1, 3, 1, 3, 4, 4, 4, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 0, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 5, 5, 7, 5, 5, 5, 5, 1, 1, 3, 3, 3, 3, 3, 1, 1, 3, 5, 3, 1, 1, 1, 1, 3, 5, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 5, 5, 7, 7, 5, 7, 7, 5, 7, 3, 3, 1, 1, 3, 3, 3, 3, 1, 1, 1, 5, 3, 1, 1, 1, 1, 1, 3, 2, 2, 2, 2, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 5, 7, 7, 7, 7, 3, 5, 5, 5, 3, 1, 3, 1, 3, 3, 3, 1, 3, 1, 3, 1, 1, 1, 1, 1, 3, 1, 2, 2, 2, 2, 2, 0, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 5, 7, 7, 7, 7, 3, 7, 5, 3, 1, 3, 3, 1, 3, 1, 3, 1, 1, 1, 3, 1, 1, 1, 3, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 5, 7, 7, 7, 5, 3, 7, 7, 3, 1, 1, 5, 3, 3, 3, 3, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 5, 7, 7, 7, 7, 1, 5, 5, 3, 1, 1, 3, 3, 1, 1, 3, 1, 1, 1, 3, 1, 3, 1, 3, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 5, 7, 7, 3, 7, 3, 1, 3, 1, 3, 3, 1, 3, 3, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 5, 5, 5, 3, 5, 1, 5, 1, 3, 1, 3, 3, 1, 1, 1, 1, 3, 3, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 4, 4, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 5, 7, 7, 3, 5, 5, 5, 1, 1, 1, 5, 5, 3, 1, 3, 1, 3, 3, 3, 1, 1, 1, 1, 3, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 7, 7, 5, 7, 3, 5, 1, 1, 3, 5, 5, 7, 7, 5, 3, 1, 3, 1, 3, 1, 3, 3, 3, 3, 2, 2, 2, 2, 2, 2, 2, 0, 4, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 7, 7, 7, 7, 7, 5, 7, 7, 7, 1, 7, 3, 5, 5, 5, 3, 1, 3, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 7, 5, 7, 5, 7, 5, 7, 7, 5, 1, 7, 5, 5, 5, 1, 3, 1, 1, 1, 1, 1, 3, 1, 1, 1, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 7, 7, 7, 5, 7, 1, 7, 5, 5, 1, 5, 7, 3, 3, 1, 1, 1, 3, 1, 1, 3, 3, 1, 3, 3, 2, 4, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 7, 7, 7, 5, 7, 1, 7, 5, 5, 1, 5, 5, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 7, 7, 7, 3, 7, 3, 5, 5, 5, 1, 5, 3, 1, 1, 1, 1, 3, 1, 1, 1, 3, 1, 1, 3, 1, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 7, 5, 7, 5, 7, 1, 5, 1, 1, 1, 3, 1, 1, 1, 3, 1, 1, 3, 1, 1, 1, 1, 3, 3, 3, 2, 4, 2, 2, 4, 2, 2, 2, 2, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 5, 7, 7, 7, 5, 7, 1, 7, 3, 1, 3, 3, 3, 3, 1, 1, 1, 3, 1, 3, 1, 1, 1, 1, 1, 1, 2, 4, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 7, 7, 7, 5, 7, 1, 5, 3, 1, 3, 1, 3, 3, 1, 3, 3, 3, 3, 1, 3, 3, 3, 1, 1, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 5, 7, 7, 7, 3, 7, 1, 5, 3, 1, 1, 3, 3, 5, 3, 3, 1, 1, 1, 3, 1, 1, 3, 1, 3, 1, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 7, 5, 7, 3, 7, 7, 5, 7, 5, 5, 5, 5, 5, 7, 5, 3, 5, 5, 5, 7, 3, 1, 3, 3, 1, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 5, 7, 7, 7, 7, 5, 7, 7, 3, 7, 7, 1, 7, 5, 5, 7, 3, 1, 3, 3, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 5, 7, 7, 7, 7, 5, 7, 7, 5, 7, 7, 1, 5, 7, 5, 7, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 5, 7, 7, 7, 7, 5, 7, 7, 3, 5, 5, 1, 3, 5, 1, 3, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 5, 7, 7, 7, 7, 5, 7, 7, 3, 7, 7, 3, 3, 7, 5, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 3, 3, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 5, 7, 7, 7, 7, 5, 7, 7, 5, 5, 5, 3, 3, 7, 3, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 3, 1, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 3, 7, 7, 7, 7, 3, 7, 7, 1, 5, 3, 1, 1, 3, 1, 1, 1, 0, 0, 1, 0, 1, 1, 1, 1, 1, 3, 2, 4, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 5, 7, 7, 7, 3, 7, 7, 3, 3, 5, 3, 1, 3, 3, 1, 1, 1, 1, 1, 3, 3, 1, 1, 1, 3, 1, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 5, 7, 5, 5, 3, 5, 5, 1, 1, 5, 3, 5, 1, 1, 3, 3, 3, 1, 5, 1, 1, 1, 1, 1, 1, 3, 2, 2, 2, 4, 2, 2, 4, 4, 4, 4, 4, 2, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 7, 7, 7, 5, 7, 7, 5, 1, 3, 7, 5, 5, 1, 5, 3, 1, 1, 3, 3, 1, 1, 3, 1, 3, 3, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 5, 7, 7, 3, 7, 7, 5, 5, 7, 3, 3, 5, 3, 3, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 3, 7, 7, 5, 7, 5, 7, 5, 3, 3, 3, 3, 3, 1, 3, 3, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 3, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-7, 7, 5, 7, 7, 5, 7, 3, 3, 5, 3, 3, 1, 3, 1, 3, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 5, 7, 7, 7, 7, 1, 7, 3, 3, 3, 1, 1, 5, 3, 1, 3, 1, 3, 3, 1, 1, 1, 3, 3, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 7, 7, 7, 3, 5, 7, 3, 1, 3, 3, 1, 1, 5, 3, 3, 3, 1, 1, 3, 1, 3, 1, 1, 1, 3, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 5, 3, 7, 1, 5, 3, 3, 1, 3, 3, 1, 3, 3, 1, 1, 3, 1, 3, 1, 3, 1, 3, 1, 1, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 5, 5, 7, 5, 1, 5, 3, 5, 3, 3, 3, 3, 3, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 2, 2, 4, 2, 2, 2, 6, 2, 4, 2, 2, 2, 2, 4, 2, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 7, 7, 3, 5, 5, 1, 1, 3, 1, 5, 5, 7, 1, 7, 3, 1, 1, 1, 3, 3, 3, 1, 3, 1, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 5, 3, 7, 5, 7, 3, 7, 3, 3, 3, 5, 3, 3, 1, 7, 1, 1, 3, 3, 7, 1, 1, 1, 1, 3, 2, 2, 2, 2, 2, 2, 2, 2, 4, 4, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 3, 7, 7, 7, 5, 7, 7, 7, 5, 7, 7, 7, 7, 5, 5, 3, 3, 7, 3, 1, 5, 3, 5, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 3, 7, 7, 7, 5, 7, 5, 7, 3, 7, 5, 5, 7, 7, 3, 1, 3, 7, 5, 1, 1, 5, 5, 0, 0, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 3, 7, 7, 7, 5, 7, 5, 7, 7, 7, 5, 5, 7, 7, 1, 1, 3, 7, 3, 1, 1, 1, 7, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 5, 7, 7, 7, 7, 7, 3, 7, 7, 7, 5, 5, 7, 7, 1, 1, 1, 7, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 7, 5, 7, 5, 7, 7, 7, 7, 5, 3, 7, 1, 1, 1, 7, 1, 3, 1, 1, 3, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 7, 5, 7, 3, 7, 5, 7, 3, 5, 7, 7, 1, 1, 1, 5, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 7, 3, 5, 3, 5, 3, 5, 3, 1, 3, 1, 1, 1, 3, 5, 1, 1, 1, 1, 1, 1, 3, 1, 3, 3, 4, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 5, 7, 3, 7, 5, 5, 1, 5, 3, 5, 1, 3, 3, 3, 3, 1, 3, 1, 3, 1, 1, 1, 1, 1, 1, 1, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 7, 7, 3, 7, 5, 3, 7, 1, 3, 5, 7, 1, 7, 3, 3, 3, 3, 3, 1, 3, 5, 1, 1, 5, 2, 4, 2, 2, 4, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 7, 7, 7, 3, 7, 7, 7, 7, 5, 1, 5, 7, 1, 7, 3, 5, 1, 1, 3, 1, 1, 1, 1, 3, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 7, 7, 7, 1, 7, 7, 5, 7, 3, 1, 5, 3, 3, 1, 1, 5, 3, 3, 1, 3, 3, 1, 1, 1, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 7, 7, 7, 1, 7, 7, 7, 7, 5, 1, 7, 5, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 7, 7, 8, 1, 7, 5, 7, 3, 3, 3, 7, 5, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 7, 7, 7, 1, 7, 7, 5, 5, 1, 1, 7, 5, 1, 1, 0, 1, 1, 1, 1, 1, 1, 3, 3, 1, 1, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 7, 7, 7, 1, 7, 7, 7, 3, 3, 1, 1, 3, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 4, 4, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 7, 7, 1, 7, 5, 5, 3, 1, 3, 3, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 3, 3, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 5, 5, 5, 5, 5, 5, 3, 3, 5, 3, 3, 3, 3, 1, 5, 1, 1, 1, 3, 1, 1, 3, 3, 1, 1, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 5, 7, 7, 7, 1, 7, 5, 7, 7, 7, 7, 5, 1, 7, 7, 1, 3, 5, 1, 3, 5, 1, 5, 5, 3, 1, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 6, 0, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 5, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 5, 7, 5, 7, 7, 5, 1, 7, 5, 3, 5, 1, 1, 5, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 5, 7, 7, 7, 7, 5, 7, 7, 7, 7, 7, 3, 3, 5, 5, 7, 1, 3, 5, 3, 1, 7, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 5, 7, 7, 8, 7, 3, 7, 7, 7, 7, 5, 3, 3, 5, 5, 5, 1, 1, 1, 3, 1, 7, 1, 1, 1, 1, 1, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 5, 7, 7, 7, 7, 5, 7, 7, 5, 7, 5, 3, 3, 5, 3, 3, 1, 1, 1, 1, 1, 7, 3, 3, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 5, 7, 7, 7, 7, 5, 7, 7, 7, 5, 5, 1, 3, 7, 3, 1, 3, 1, 1, 1, 1, 5, 1, 3, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 5, 7, 7, 8, 7, 1, 7, 7, 7, 5, 5, 1, 1, 5, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 5, 7, 7, 7, 7, 3, 7, 7, 5, 5, 5, 1, 3, 7, 1, 1, 1, 5, 1, 1, 1, 3, 3, 1, 3, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 5, 7, 7, 7, 7, 5, 7, 5, 5, 1, 3, 3, 1, 3, 3, 3, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 5, 7, 7, 8, 7, 5, 7, 7, 5, 3, 5, 3, 3, 3, 3, 3, 1, 3, 1, 1, 1, 1, 3, 1, 1, 1, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 5, 7, 7, 7, 7, 1, 7, 5, 5, 3, 5, 1, 1, 3, 3, 1, 3, 1, 1, 1, 3, 3, 3, 1, 1, 1, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 5, 7, 7, 7, 7, 5, 5, 3, 5, 1, 5, 1, 1, 3, 3, 3, 3, 3, 1, 1, 3, 3, 3, 1, 1, 1, 3, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 5, 7, 7, 7, 7, 5, 7, 7, 3, 1, 3, 3, 3, 1, 1, 1, 3, 1, 1, 3, 1, 3, 3, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 5, 7, 7, 7, 7, 1, 7, 3, 5, 1, 5, 1, 1, 3, 3, 3, 1, 1, 1, 1, 1, 3, 3, 1, 3, 1, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 5, 7, 7, 7, 7, 3, 7, 5, 5, 1, 3, 3, 3, 1, 3, 3, 1, 1, 1, 1, 1, 1, 3, 3, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 5, 7, 7, 7, 7, 3, 5, 7, 5, 1, 3, 3, 1, 3, 3, 3, 1, 3, 1, 3, 1, 3, 1, 1, 1, 1, 3, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-7, 7, 5, 7, 7, 7, 7, 3, 7, 5, 3, 1, 5, 1, 1, 1, 3, 3, 1, 3, 1, 1, 1, 1, 1, 3, 3, 3, 1, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 3, 7, 5, 7, 7, 1, 7, 3, 3, 1, 3, 1, 1, 1, 3, 3, 3, 3, 3, 1, 3, 1, 3, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 3, 7, 7, 5, 7, 3, 5, 5, 3, 1, 3, 1, 1, 5, 3, 3, 1, 3, 3, 1, 3, 3, 1, 3, 1, 1, 1, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 5, 7, 7, 3, 5, 5, 3, 3, 3, 1, 1, 3, 1, 1, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 5, 5, 3, 5, 3, 3, 3, 5, 3, 1, 3, 3, 1, 3, 1, 1, 1, 1, 3, 1, 1, 3, 1, 1, 1, 1, 1, 4, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-7, 7, 7, 7, 5, 5, 5, 1, 5, 3, 1, 3, 1, 3, 1, 1, 3, 5, 1, 3, 3, 3, 1, 3, 1, 1, 1, 3, 3, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 5, 7, 5, 7, 7, 5, 7, 3, 3, 3, 1, 1, 3, 3, 1, 1, 3, 3, 1, 1, 1, 1, 1, 1, 1, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 7, 7, 3, 5, 5, 7, 7, 3, 1, 3, 1, 1, 5, 5, 3, 3, 5, 3, 3, 1, 1, 1, 1, 3, 1, 4, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 7, 5, 3, 5, 7, 5, 5, 3, 3, 3, 1, 3, 3, 3, 1, 3, 1, 3, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-7, 8, 7, 5, 7, 7, 3, 5, 7, 5, 7, 5, 3, 3, 1, 1, 5, 3, 3, 1, 3, 1, 3, 1, 1, 3, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 4, 6, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 7, 7, 3, 3, 5, 5, 5, 5, 5, 5, 1, 1, 5, 1, 1, 3, 3, 3, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 4, 4, 6, 4, 6, 2, 0, 2, 2, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-7, 7, 7, 7, 7, 7, 5, 5, 7, 5, 7, 5, 3, 7, 1, 1, 5, 3, 1, 1, 1, 3, 3, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 4, 4, 4, 2, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-7, 8, 7, 7, 7, 7, 3, 5, 7, 3, 3, 5, 1, 5, 1, 1, 5, 1, 1, 1, 3, 3, 1, 1, 1, 1, 1, 1, 1, 4, 2, 2, 2, 2, 2, 2, 4, 4, 4, 2, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-7, 8, 7, 7, 7, 7, 5, 5, 7, 3, 5, 5, 3, 5, 1, 1, 3, 3, 3, 3, 3, 3, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 4, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 5, 7, 5, 5, 7, 5, 3, 5, 3, 3, 1, 1, 5, 5, 3, 3, 3, 3, 3, 1, 3, 1, 1, 1, 1, 4, 2, 2, 2, 2, 2, 4, 6, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 7, 7, 3, 3, 5, 3, 3, 5, 3, 3, 1, 1, 5, 5, 1, 3, 3, 3, 3, 1, 1, 1, 1, 3, 1, 4, 2, 2, 2, 2, 2, 4, 4, 2, 6, 2, 2, 2, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 7, 7, 5, 7, 7, 1, 5, 7, 1, 5, 3, 1, 3, 5, 3, 1, 3, 3, 3, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 4, 2, 4, 4, 4, 6, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 7, 7, 3, 7, 5, 7, 3, 3, 3, 3, 1, 1, 5, 5, 1, 1, 3, 3, 3, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 4, 6, 4, 2, 2, 0, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-7, 8, 7, 7, 7, 7, 5, 5, 5, 3, 3, 5, 5, 1, 3, 3, 5, 3, 1, 1, 5, 3, 1, 1, 1, 1, 3, 1, 1, 2, 2, 2, 2, 2, 0, 2, 4, 2, 4, 2, 2, 0, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 7, 7, 7, 7, 5, 5, 3, 5, 5, 3, 3, 1, 5, 7, 3, 3, 3, 1, 1, 1, 1, 1, 1, 1, 1, 4, 2, 2, 2, 2, 2, 2, 4, 4, 4, 2, 0, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 7, 7, 7, 7, 3, 7, 7, 7, 7, 7, 5, 1, 5, 3, 1, 3, 5, 3, 3, 1, 1, 1, 1, 1, 1, 4, 2, 2, 2, 2, 4, 4, 4, 6, 4, 2, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 7, 7, 5, 5, 5, 5, 5, 7, 5, 5, 3, 1, 3, 5, 3, 5, 5, 5, 5, 1, 1, 1, 1, 3, 1, 2, 2, 2, 2, 2, 2, 4, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 7, 7, 3, 7, 3, 5, 7, 5, 5, 5, 5, 1, 3, 5, 1, 3, 3, 3, 3, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 4, 4, 4, 4, 2, 2, 2, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 7, 7, 7, 5, 5, 5, 5, 5, 3, 3, 5, 1, 5, 5, 3, 1, 3, 5, 3, 1, 1, 1, 3, 1, 1, 2, 2, 2, 2, 4, 2, 2, 4, 2, 4, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 7, 7, 5, 7, 5, 5, 5, 5, 3, 3, 3, 1, 5, 5, 1, 1, 5, 3, 3, 1, 1, 1, 1, 3, 1, 4, 2, 2, 2, 2, 2, 2, 4, 4, 4, 2, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 7, 7, 5, 5, 7, 7, 5, 7, 3, 3, 3, 1, 5, 3, 1, 1, 5, 3, 3, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 4, 6, 4, 4, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 7, 7, 5, 5, 7, 7, 7, 5, 3, 3, 5, 3, 7, 3, 1, 1, 5, 5, 1, 1, 1, 1, 1, 1, 1, 4, 2, 2, 2, 2, 2, 2, 4, 4, 6, 2, 2, 0, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 7, 7, 5, 5, 7, 7, 5, 7, 5, 5, 7, 1, 3, 5, 1, 1, 5, 5, 1, 1, 1, 1, 1, 1, 3, 2, 2, 2, 2, 2, 2, 2, 4, 4, 6, 2, 2, 2, 2, 2, 0, 4, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 7, 7, 5, 5, 7, 5, 3, 5, 7, 5, 7, 3, 5, 5, 1, 1, 5, 5, 1, 1, 1, 1, 1, 1, 1, 4, 2, 2, 2, 2, 2, 2, 4, 4, 4, 2, 0, 0, 0, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 7, 7, 5, 5, 7, 7, 7, 3, 5, 3, 3, 3, 5, 3, 1, 1, 3, 5, 3, 1, 1, 1, 1, 1, 1, 4, 2, 2, 2, 2, 2, 2, 4, 4, 4, 2, 2, 2, 0, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 8, 7, 7, 5, 5, 5, 5, 5, 7, 7, 5, 5, 5, 5, 3, 1, 3, 3, 3, 3, 1, 1, 1, 1, 1, 1, 4, 2, 2, 2, 2, 2, 2, 4, 4, 4, 2, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-7, 8, 7, 7, 7, 7, 5, 5, 7, 5, 7, 7, 7, 7, 1, 1, 5, 5, 1, 5, 5, 3, 3, 1, 1, 1, 1, 3, 1, 2, 2, 2, 2, 2, 2, 2, 6, 4, 4, 2, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 7, 7, 5, 5, 7, 3, 3, 5, 3, 3, 3, 1, 1, 3, 1, 3, 3, 5, 3, 3, 1, 1, 3, 1, 1, 2, 2, 2, 2, 2, 2, 2, 4, 6, 4, 2, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-7, 8, 7, 7, 7, 7, 7, 5, 5, 5, 5, 5, 5, 5, 3, 3, 3, 1, 1, 1, 3, 3, 5, 1, 1, 1, 1, 1, 3, 2, 2, 2, 2, 2, 2, 2, 4, 2, 4, 2, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 7, 7, 7, 5, 5, 5, 3, 3, 5, 5, 1, 3, 1, 1, 1, 3, 3, 3, 3, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 6, 4, 4, 2, 2, 0, 2, 2, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 7, 7, 5, 3, 5, 3, 5, 5, 3, 3, 1, 1, 5, 3, 1, 3, 5, 3, 3, 1, 1, 1, 1, 1, 3, 2, 2, 2, 2, 2, 2, 2, 4, 4, 6, 2, 2, 2, 0, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 7, 5, 5, 5, 3, 3, 5, 5, 5, 3, 3, 3, 1, 3, 1, 1, 3, 5, 3, 1, 1, 1, 1, 1, 3, 2, 4, 2, 2, 2, 2, 2, 2, 6, 4, 2, 2, 0, 2, 2, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 7, 7, 5, 5, 5, 5, 7, 7, 5, 5, 3, 1, 3, 3, 3, 1, 3, 5, 3, 1, 1, 1, 1, 3, 1, 4, 2, 2, 2, 2, 0, 2, 4, 4, 4, 2, 2, 0, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 5, 7, 7, 7, 7, 5, 5, 5, 7, 5, 5, 5, 5, 1, 5, 3, 1, 1, 5, 5, 3, 1, 1, 1, 1, 3, 1, 2, 2, 2, 2, 2, 2, 2, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 7, 7, 5, 3, 5, 3, 3, 5, 5, 5, 3, 1, 5, 3, 1, 3, 5, 5, 3, 1, 1, 1, 1, 1, 1, 2, 2, 2, 0, 2, 2, 2, 4, 2, 4, 2, 2, 0, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 8, 7, 7, 7, 7, 5, 7, 7, 7, 7, 7, 5, 1, 3, 1, 1, 7, 7, 7, 3, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 4, 6, 4, 2, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 8, 7, 5, 7, 7, 7, 7, 7, 7, 5, 5, 1, 3, 1, 3, 5, 5, 3, 3, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 4, 4, 4, 2, 0, 0, 0, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 7, 7, 7, 5, 5, 3, 7, 5, 7, 5, 5, 3, 3, 5, 3, 3, 3, 3, 3, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 4, 4, 2, 2, 0, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 7, 7, 5, 5, 5, 5, 5, 7, 7, 5, 3, 3, 1, 1, 1, 3, 3, 3, 3, 3, 1, 1, 1, 1, 1, 4, 2, 2, 2, 2, 2, 2, 2, 4, 4, 4, 2, 0, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-7, 8, 7, 7, 7, 7, 5, 3, 5, 1, 5, 3, 5, 3, 3, 1, 1, 1, 3, 1, 3, 3, 3, 1, 3, 1, 1, 1, 1, 4, 4, 2, 2, 2, 2, 2, 4, 4, 6, 2, 2, 0, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 8, 7, 7, 5, 7, 7, 7, 7, 5, 5, 3, 3, 3, 3, 1, 1, 3, 5, 1, 3, 3, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 4, 6, 6, 2, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 7, 7, 5, 7, 7, 7, 5, 5, 7, 5, 3, 3, 3, 5, 1, 3, 3, 3, 3, 1, 1, 1, 1, 3, 1, 4, 2, 2, 2, 2, 2, 2, 4, 6, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 3, 3, 5, 3, 5, 1, 3, 3, 5, 3, 1, 1, 1, 1, 1, 1, 4, 2, 2, 2, 2, 2, 2, 4, 4, 4, 2, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 7, 7, 5, 5, 7, 7, 5, 3, 7, 5, 3, 5, 3, 3, 1, 3, 3, 3, 3, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 6, 4, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 7, 7, 3, 7, 7, 5, 7, 7, 7, 3, 5, 3, 3, 5, 3, 3, 5, 3, 5, 1, 3, 1, 1, 3, 1, 2, 2, 2, 2, 2, 2, 2, 4, 6, 4, 4, 2, 2, 0, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 7, 5, 5, 5, 7, 5, 5, 5, 3, 3, 3, 3, 3, 3, 3, 3, 5, 3, 1, 1, 1, 1, 3, 1, 2, 2, 2, 2, 2, 2, 2, 4, 4, 4, 4, 2, 0, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-7, 8, 7, 7, 7, 7, 7, 5, 7, 5, 3, 5, 5, 5, 3, 5, 1, 3, 3, 1, 7, 5, 5, 1, 1, 1, 1, 1, 1, 4, 4, 4, 2, 2, 2, 2, 6, 6, 4, 2, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 8, 7, 7, 7, 7, 7, 3, 5, 3, 5, 5, 3, 3, 3, 1, 5, 1, 1, 3, 3, 1, 1, 1, 1, 1, 3, 2, 2, 2, 2, 2, 4, 2, 6, 4, 6, 2, 0, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 7, 7, 7, 3, 5, 3, 5, 7, 5, 1, 3, 1, 3, 3, 3, 3, 3, 3, 3, 1, 3, 1, 3, 1, 2, 2, 2, 2, 2, 2, 2, 4, 6, 4, 2, 2, 0, 0, 2, 2, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 3, 7, 3, 5, 3, 5, 3, 5, 1, 3, 3, 1, 5, 3, 3, 1, 3, 1, 3, 1, 3, 3, 3, 3, 3, 2, 4, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 8, 7, 5, 5, 5, 3, 3, 5, 3, 5, 3, 3, 3, 5, 3, 3, 3, 3, 3, 1, 1, 3, 3, 3, 3, 1, 4, 4, 4, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 8, 7, 8, 5, 5, 5, 3, 5, 5, 1, 1, 3, 1, 1, 5, 3, 3, 3, 3, 1, 3, 1, 1, 3, 3, 3, 4, 4, 2, 2, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 7, 7, 3, 5, 3, 3, 3, 5, 3, 1, 1, 3, 5, 3, 3, 3, 3, 5, 3, 1, 3, 5, 3, 3, 3, 4, 4, 4, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 5, 3, 5, 5, 3, 3, 3, 3, 5, 5, 3, 1, 3, 3, 1, 3, 3, 3, 3, 1, 1, 3, 1, 3, 3, 4, 4, 2, 2, 2, 4, 4, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 5, 5, 5, 3, 3, 5, 3, 3, 3, 3, 1, 5, 3, 3, 3, 3, 1, 5, 1, 1, 3, 3, 3, 3, 4, 4, 2, 4, 2, 4, 2, 2, 4, 4, 2, 2, 2, 2, 2, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 7, 5, 3, 3, 5, 3, 5, 3, 3, 3, 1, 3, 1, 3, 5, 3, 3, 5, 3, 3, 3, 1, 1, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 5, 5, 3, 5, 3, 5, 5, 3, 1, 3, 5, 3, 5, 3, 1, 5, 3, 1, 1, 1, 1, 1, 1, 1, 1, 4, 2, 2, 2, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 7, 3, 5, 5, 5, 5, 3, 3, 3, 3, 3, 3, 5, 3, 3, 5, 5, 3, 3, 1, 1, 1, 1, 1, 4, 4, 2, 2, 2, 4, 2, 2, 4, 4, 4, 4, 2, 2, 2, 4, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 7, 5, 5, 5, 5, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 5, 3, 3, 3, 1, 1, 1, 3, 1, 4, 2, 2, 4, 4, 4, 4, 2, 2, 4, 2, 4, 2, 2, 4, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 5, 5, 5, 5, 5, 3, 3, 3, 3, 3, 3, 1, 3, 3, 3, 3, 3, 5, 1, 1, 1, 3, 3, 3, 1, 4, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 8, 7, 7, 7, 5, 3, 5, 3, 3, 5, 3, 3, 3, 1, 5, 3, 1, 5, 1, 3, 3, 1, 1, 1, 1, 1, 1, 4, 4, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 7, 5, 3, 5, 3, 3, 5, 3, 3, 3, 1, 3, 5, 1, 3, 3, 3, 3, 1, 3, 1, 1, 3, 3, 4, 2, 2, 2, 4, 4, 2, 4, 4, 4, 4, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 7, 3, 5, 3, 5, 3, 3, 3, 5, 3, 3, 3, 1, 1, 3, 3, 3, 3, 1, 1, 1, 1, 1, 3, 4, 2, 2, 2, 2, 2, 6, 2, 4, 2, 4, 4, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 5, 7, 5, 5, 5, 3, 3, 3, 3, 5, 3, 3, 1, 3, 1, 1, 3, 3, 5, 1, 3, 1, 1, 1, 3, 4, 4, 2, 2, 2, 4, 2, 2, 4, 2, 4, 4, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 7, 5, 3, 5, 5, 3, 5, 3, 5, 3, 3, 1, 3, 1, 3, 3, 3, 1, 1, 1, 1, 3, 1, 1, 2, 2, 2, 2, 2, 2, 4, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 8, 5, 7, 7, 3, 5, 5, 5, 3, 5, 3, 3, 1, 1, 3, 1, 3, 3, 3, 5, 3, 1, 1, 3, 1, 1, 2, 4, 4, 2, 2, 4, 6, 4, 4, 2, 4, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 7, 7, 5, 5, 5, 3, 5, 5, 3, 3, 3, 1, 1, 3, 3, 3, 1, 3, 3, 3, 1, 1, 1, 1, 3, 2, 4, 4, 2, 2, 4, 6, 4, 4, 2, 4, 2, 4, 4, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 8, 7, 7, 3, 5, 3, 5, 3, 5, 3, 1, 5, 3, 5, 1, 1, 3, 3, 3, 5, 3, 3, 1, 3, 1, 3, 4, 2, 4, 2, 2, 4, 4, 4, 4, 2, 2, 2, 4, 2, 4, 0, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 7, 7, 3, 5, 5, 3, 5, 5, 3, 5, 3, 1, 3, 1, 1, 3, 3, 3, 5, 1, 3, 3, 1, 1, 1, 4, 4, 2, 2, 2, 4, 4, 4, 4, 2, 4, 2, 4, 2, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 7, 7, 3, 5, 3, 5, 5, 5, 3, 3, 5, 1, 3, 3, 1, 3, 1, 5, 5, 1, 3, 3, 1, 1, 1, 2, 4, 4, 2, 4, 4, 4, 4, 4, 2, 4, 2, 2, 2, 2, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 8, 7, 7, 3, 5, 3, 3, 5, 5, 3, 3, 5, 3, 1, 3, 3, 3, 1, 3, 3, 3, 3, 3, 3, 1, 1, 4, 2, 2, 2, 2, 4, 4, 4, 4, 2, 2, 2, 4, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 5, 7, 5, 5, 5, 5, 3, 3, 5, 3, 5, 1, 3, 1, 1, 3, 3, 1, 3, 3, 1, 3, 1, 1, 1, 2, 2, 2, 2, 2, 4, 4, 4, 2, 2, 2, 4, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 8, 5, 7, 3, 5, 5, 5, 5, 3, 3, 5, 3, 1, 3, 3, 1, 3, 1, 3, 3, 3, 1, 1, 1, 1, 3, 4, 4, 2, 2, 2, 2, 4, 4, 4, 2, 4, 2, 4, 2, 2, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 8, 5, 7, 5, 3, 3, 5, 3, 5, 3, 3, 3, 3, 3, 1, 1, 3, 3, 5, 3, 1, 3, 1, 1, 1, 1, 4, 4, 2, 2, 2, 4, 4, 4, 4, 4, 2, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 8, 7, 8, 3, 5, 3, 5, 5, 5, 3, 5, 5, 1, 3, 1, 1, 1, 3, 3, 3, 3, 1, 1, 1, 1, 1, 2, 4, 4, 2, 2, 6, 4, 6, 6, 4, 4, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 7, 7, 3, 3, 3, 3, 5, 3, 3, 3, 5, 5, 3, 1, 1, 3, 3, 1, 1, 3, 3, 3, 1, 1, 3, 2, 2, 2, 2, 2, 2, 4, 4, 4, 4, 2, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-7, 8, 7, 7, 5, 7, 7, 5, 5, 5, 5, 5, 3, 5, 5, 3, 3, 1, 3, 1, 1, 3, 3, 1, 3, 1, 1, 1, 3, 4, 2, 2, 2, 2, 4, 4, 6, 2, 4, 2, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 7, 7, 3, 5, 5, 5, 3, 3, 1, 5, 3, 3, 3, 3, 1, 1, 5, 3, 3, 1, 1, 3, 1, 3, 3, 2, 4, 4, 2, 2, 2, 2, 2, 6, 2, 4, 2, 2, 2, 2, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 7, 7, 3, 5, 5, 3, 5, 3, 3, 3, 5, 1, 5, 1, 1, 3, 3, 3, 3, 1, 3, 1, 1, 3, 3, 2, 2, 4, 2, 2, 4, 6, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 5, 7, 5, 5, 5, 3, 5, 5, 5, 3, 5, 1, 3, 3, 1, 3, 3, 3, 5, 3, 3, 3, 1, 1, 3, 2, 2, 2, 2, 2, 4, 4, 4, 4, 6, 4, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-7, 8, 7, 7, 7, 7, 5, 5, 3, 5, 5, 5, 5, 3, 5, 1, 3, 3, 1, 3, 1, 3, 3, 1, 1, 3, 1, 3, 3, 2, 2, 4, 2, 2, 4, 4, 2, 2, 4, 4, 2, 0, 2, 2, 2, 4, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-7, 9, 7, 7, 7, 7, 5, 5, 3, 5, 3, 1, 3, 5, 3, 1, 3, 1, 3, 1, 3, 5, 5, 1, 1, 3, 1, 3, 1, 4, 2, 2, 2, 2, 4, 2, 4, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 8, 7, 7, 5, 5, 5, 5, 5, 5, 3, 3, 5, 1, 3, 3, 1, 1, 3, 3, 3, 1, 1, 1, 1, 1, 3, 4, 2, 4, 2, 2, 4, 4, 2, 4, 6, 4, 2, 2, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-7, 8, 7, 7, 5, 8, 3, 5, 3, 3, 3, 3, 3, 3, 5, 1, 5, 1, 1, 3, 3, 3, 3, 1, 3, 3, 1, 1, 3, 4, 4, 2, 2, 2, 2, 2, 4, 2, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-7, 7, 7, 7, 7, 7, 7, 5, 5, 3, 3, 3, 3, 3, 3, 1, 3, 1, 1, 5, 1, 3, 3, 1, 1, 3, 3, 1, 1, 2, 2, 4, 2, 2, 2, 2, 2, 4, 4, 4, 2, 2, 2, 2, 2, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 5, 7, 7, 5, 5, 5, 3, 3, 3, 3, 3, 1, 3, 3, 3, 3, 3, 3, 3, 1, 3, 1, 1, 3, 1, 4, 2, 2, 2, 2, 4, 2, 2, 2, 4, 4, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-7, 7, 7, 8, 7, 7, 7, 3, 5, 3, 3, 3, 3, 3, 5, 1, 3, 3, 1, 3, 3, 3, 3, 3, 3, 3, 1, 3, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 0, 2, 2, 4, 2, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-7, 8, 7, 7, 3, 7, 3, 5, 3, 3, 5, 7, 3, 3, 3, 1, 3, 1, 1, 1, 3, 3, 5, 1, 3, 1, 1, 3, 1, 2, 4, 2, 2, 2, 2, 2, 4, 4, 4, 4, 4, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-7, 8, 7, 7, 7, 7, 3, 5, 5, 3, 3, 3, 3, 3, 5, 1, 3, 3, 1, 3, 1, 1, 5, 3, 3, 1, 1, 3, 3, 2, 2, 2, 2, 2, 4, 4, 2, 2, 6, 4, 2, 4, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-7, 8, 7, 7, 5, 7, 5, 5, 3, 5, 5, 3, 3, 5, 5, 1, 3, 3, 1, 3, 1, 1, 3, 1, 1, 1, 1, 3, 3, 2, 4, 4, 2, 2, 2, 4, 2, 2, 4, 4, 4, 2, 2, 2, 2, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 5, 5, 7, 3, 5, 5, 5, 5, 3, 3, 5, 1, 3, 1, 1, 3, 3, 3, 3, 1, 1, 3, 1, 3, 3, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 5, 7, 5, 7, 5, 5, 3, 5, 7, 7, 5, 5, 3, 1, 3, 3, 1, 3, 3, 3, 3, 3, 1, 1, 1, 1, 1, 4, 4, 4, 4, 2, 2, 2, 2, 2, 4, 4, 2, 4, 2, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 3, 7, 5, 7, 5, 3, 7, 5, 3, 3, 3, 1, 3, 3, 1, 3, 3, 3, 3, 3, 3, 3, 1, 3, 3, 2, 4, 4, 2, 2, 4, 4, 2, 2, 2, 4, 4, 4, 2, 2, 2, 2, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 7, 7, 7, 5, 3, 3, 5, 5, 3, 3, 5, 1, 3, 3, 1, 3, 3, 3, 3, 5, 1, 1, 3, 1, 1, 4, 4, 2, 4, 2, 2, 4, 2, 2, 4, 4, 4, 2, 2, 2, 2, 4, 0, 2, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0,
-7, 8, 7, 8, 5, 7, 5, 5, 5, 3, 3, 3, 1, 3, 3, 1, 3, 1, 1, 3, 1, 3, 3, 3, 1, 1, 1, 1, 1, 2, 4, 4, 4, 4, 2, 4, 2, 4, 4, 2, 4, 2, 2, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 5, 7, 7, 3, 5, 5, 5, 5, 3, 5, 3, 1, 1, 3, 1, 1, 3, 1, 3, 3, 1, 3, 1, 1, 1, 2, 4, 4, 4, 2, 4, 2, 2, 2, 2, 2, 4, 4, 2, 2, 2, 4, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 8, 5, 7, 7, 5, 5, 7, 5, 5, 5, 3, 3, 1, 3, 3, 3, 3, 3, 1, 5, 1, 1, 3, 3, 1, 1, 4, 2, 4, 2, 4, 4, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-7, 7, 7, 7, 7, 7, 7, 7, 7, 5, 5, 5, 3, 1, 5, 1, 3, 3, 1, 1, 3, 3, 5, 3, 1, 1, 1, 1, 1, 2, 2, 2, 2, 4, 4, 4, 4, 4, 2, 2, 2, 2, 4, 2, 2, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-7, 8, 7, 7, 5, 7, 8, 5, 7, 5, 3, 5, 3, 3, 3, 3, 1, 1, 1, 1, 3, 1, 3, 3, 1, 1, 1, 1, 3, 4, 4, 4, 4, 2, 2, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 5, 7, 7, 7, 7, 3, 3, 3, 5, 5, 5, 3, 3, 3, 3, 3, 1, 3, 3, 3, 3, 3, 1, 1, 3, 3, 3, 4, 4, 4, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 4, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 5, 7, 7, 3, 3, 5, 5, 5, 5, 3, 5, 1, 1, 3, 3, 3, 1, 1, 3, 3, 3, 1, 1, 3, 3, 4, 4, 4, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 7, 7, 5, 5, 3, 5, 5, 3, 3, 3, 5, 3, 3, 3, 3, 3, 1, 3, 3, 3, 1, 1, 1, 3, 3, 4, 2, 2, 2, 2, 4, 2, 2, 4, 2, 4, 2, 2, 2, 2, 2, 4, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 7, 7, 7, 7, 5, 3, 3, 5, 3, 5, 3, 1, 3, 1, 1, 3, 1, 1, 3, 1, 1, 1, 3, 1, 1, 2, 4, 4, 2, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 7, 7, 7, 5, 5, 3, 3, 5, 1, 3, 5, 3, 1, 1, 1, 1, 1, 3, 3, 1, 3, 1, 3, 1, 3, 4, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 7, 7, 7, 5, 3, 3, 5, 5, 3, 3, 3, 3, 1, 1, 1, 1, 3, 1, 5, 3, 1, 1, 3, 3, 3, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 8, 5, 7, 8, 5, 3, 3, 5, 3, 3, 3, 5, 1, 3, 1, 1, 3, 3, 1, 3, 1, 1, 3, 3, 1, 3, 4, 2, 2, 2, 2, 4, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 5, 7, 7, 5, 5, 3, 5, 5, 3, 3, 5, 3, 5, 1, 1, 1, 1, 1, 1, 1, 1, 3, 3, 3, 3, 2, 4, 4, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 7, 8, 7, 5, 5, 5, 5, 5, 3, 3, 3, 3, 3, 3, 1, 1, 3, 3, 3, 1, 1, 1, 3, 1, 3, 4, 2, 4, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 8, 7, 7, 7, 5, 3, 5, 5, 3, 3, 3, 3, 3, 3, 3, 1, 1, 1, 3, 1, 3, 3, 1, 1, 1, 1, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 8, 7, 7, 7, 5, 5, 3, 5, 1, 5, 3, 5, 1, 3, 3, 1, 3, 1, 3, 3, 1, 1, 3, 1, 3, 3, 2, 4, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 5, 7, 7, 7, 5, 5, 3, 5, 5, 7, 7, 7, 5, 3, 1, 1, 1, 3, 3, 1, 3, 3, 3, 1, 3, 3, 1, 4, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 8, 7, 7, 7, 7, 3, 7, 7, 7, 7, 7, 7, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 3, 3, 1, 4, 2, 2, 2, 4, 2, 2, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 8, 7, 7, 7, 7, 5, 3, 7, 7, 7, 5, 3, 1, 1, 1, 1, 3, 3, 3, 3, 1, 1, 3, 3, 5, 3, 4, 2, 4, 2, 2, 4, 4, 4, 2, 2, 2, 4, 2, 2, 2, 2, 6, 2, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 8, 7, 7, 7, 7, 3, 3, 5, 3, 5, 3, 5, 1, 1, 3, 3, 3, 1, 3, 3, 1, 1, 3, 3, 3, 5, 2, 4, 4, 2, 4, 2, 2, 2, 2, 4, 2, 4, 4, 2, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 9, 7, 7, 7, 7, 7, 5, 5, 5, 7, 7, 5, 5, 5, 1, 1, 1, 1, 3, 1, 1, 1, 3, 1, 1, 3, 3, 3, 4, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-7, 7, 7, 8, 7, 7, 7, 5, 7, 7, 7, 5, 3, 1, 5, 3, 3, 3, 3, 3, 3, 3, 1, 1, 3, 3, 1, 3, 1, 6, 2, 4, 4, 4, 2, 2, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 7, 7, 7, 5, 7, 7, 7, 7, 5, 5, 3, 1, 3, 3, 1, 1, 1, 1, 1, 1, 3, 3, 3, 1, 1, 4, 6, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 6, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 8, 7, 7, 8, 7, 7, 7, 7, 7, 5, 3, 3, 3, 3, 3, 1, 3, 1, 1, 1, 1, 1, 3, 3, 1, 3, 4, 2, 4, 4, 2, 2, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-7, 7, 7, 7, 5, 7, 7, 5, 7, 7, 7, 5, 5, 5, 5, 1, 3, 3, 1, 3, 3, 3, 3, 3, 3, 1, 1, 3, 1, 4, 4, 4, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 5, 7, 7, 7, 5, 7, 7, 3, 5, 5, 3, 3, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 3, 3, 1, 2, 4, 4, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 7, 7, 7, 3, 7, 7, 7, 1, 3, 1, 3, 3, 1, 3, 3, 3, 1, 3, 3, 1, 3, 3, 3, 1, 3, 2, 4, 4, 2, 2, 2, 4, 2, 2, 2, 4, 2, 2, 2, 2, 2, 4, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 7, 5, 3, 5, 5, 3, 3, 5, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1, 1, 1, 6, 4, 4, 4, 4, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 7, 8, 5, 5, 5, 3, 5, 3, 3, 3, 3, 3, 3, 3, 3, 1, 3, 1, 3, 1, 1, 1, 1, 1, 1, 4, 2, 2, 2, 2, 4, 4, 2, 2, 2, 4, 2, 2, 2, 0, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 5, 7, 3, 5, 5, 5, 3, 3, 3, 3, 5, 3, 5, 1, 3, 3, 5, 3, 3, 1, 1, 3, 3, 3, 3, 4, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 5, 7, 5, 5, 5, 3, 3, 3, 3, 5, 3, 1, 3, 3, 3, 3, 1, 5, 1, 3, 1, 1, 1, 1, 3, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 8, 7, 5, 3, 7, 5, 5, 5, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1, 1, 1, 1, 1, 1, 3, 4, 2, 2, 2, 2, 2, 4, 4, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 5, 7, 7, 3, 5, 3, 5, 3, 3, 5, 3, 3, 3, 3, 3, 3, 3, 1, 3, 3, 1, 1, 1, 1, 3, 4, 6, 2, 2, 4, 2, 2, 4, 4, 4, 4, 2, 4, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 5, 3, 3, 5, 3, 3, 1, 3, 3, 3, 3, 1, 3, 3, 1, 3, 3, 1, 1, 1, 1, 1, 1, 3, 2, 2, 4, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 7, 5, 5, 5, 5, 3, 5, 3, 3, 3, 3, 1, 3, 3, 3, 3, 3, 1, 1, 1, 3, 3, 1, 1, 3, 4, 2, 4, 2, 2, 4, 4, 4, 4, 4, 4, 4, 4, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 5, 5, 5, 3, 3, 5, 5, 3, 3, 5, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 1, 1, 1, 4, 2, 2, 2, 4, 4, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 5, 7, 7, 5, 5, 3, 3, 3, 3, 3, 3, 5, 3, 3, 1, 3, 3, 5, 3, 1, 1, 1, 1, 1, 3, 4, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 7, 5, 7, 5, 3, 5, 3, 3, 3, 3, 5, 3, 1, 3, 1, 1, 3, 3, 1, 1, 1, 1, 3, 1, 3, 4, 4, 2, 4, 4, 4, 4, 4, 2, 4, 2, 2, 4, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 7, 5, 5, 5, 5, 5, 5, 3, 3, 3, 3, 3, 1, 1, 1, 1, 3, 3, 3, 1, 1, 1, 1, 1, 1, 4, 4, 2, 4, 2, 4, 4, 6, 4, 2, 2, 2, 2, 2, 2, 0, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 7, 5, 7, 5, 3, 3, 5, 3, 5, 3, 5, 5, 3, 3, 1, 5, 3, 1, 5, 1, 3, 3, 3, 3, 3, 2, 4, 4, 4, 2, 2, 4, 4, 4, 2, 4, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 7, 7, 7, 5, 5, 5, 5, 5, 1, 3, 3, 3, 3, 3, 1, 3, 3, 5, 5, 1, 3, 1, 1, 1, 3, 4, 2, 2, 4, 4, 4, 4, 6, 4, 2, 4, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 7, 5, 5, 5, 3, 3, 5, 5, 5, 3, 3, 1, 1, 1, 1, 3, 3, 3, 3, 1, 3, 3, 1, 1, 3, 4, 2, 2, 4, 2, 2, 4, 6, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 5, 7, 7, 3, 3, 5, 5, 1, 3, 3, 5, 3, 3, 3, 1, 3, 3, 3, 3, 3, 1, 3, 1, 1, 1, 4, 4, 4, 2, 2, 2, 4, 2, 4, 4, 2, 4, 4, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 5, 7, 3, 3, 3, 5, 3, 3, 3, 3, 3, 3, 3, 1, 1, 3, 3, 1, 3, 3, 1, 1, 1, 1, 2, 2, 2, 4, 2, 2, 4, 4, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 5, 5, 3, 5, 5, 5, 5, 5, 5, 3, 1, 3, 3, 3, 1, 3, 1, 3, 1, 5, 1, 3, 3, 3, 4, 4, 2, 2, 4, 2, 4, 2, 2, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 8, 7, 5, 3, 5, 5, 5, 5, 5, 3, 5, 5, 5, 3, 3, 5, 5, 3, 3, 3, 3, 3, 3, 1, 1, 1, 1, 4, 2, 2, 4, 4, 4, 4, 2, 2, 4, 2, 4, 4, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 8, 7, 7, 7, 7, 3, 5, 5, 3, 5, 5, 3, 5, 3, 5, 5, 3, 1, 3, 3, 3, 3, 3, 3, 1, 3, 3, 4, 4, 2, 2, 2, 2, 4, 2, 4, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 8, 8, 7, 7, 7, 5, 3, 3, 5, 3, 3, 5, 3, 3, 3, 1, 1, 3, 3, 3, 3, 1, 3, 1, 1, 3, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 7, 5, 7, 5, 3, 3, 5, 3, 3, 5, 5, 3, 5, 3, 1, 3, 3, 3, 5, 3, 5, 1, 3, 1, 1, 2, 4, 2, 4, 2, 2, 2, 2, 4, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 8, 7, 5, 7, 7, 5, 5, 1, 3, 5, 3, 3, 5, 1, 3, 3, 1, 1, 3, 3, 1, 1, 3, 1, 1, 1, 3, 4, 4, 2, 2, 2, 4, 4, 4, 4, 4, 4, 2, 4, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 8, 8, 7, 5, 7, 3, 3, 3, 5, 3, 3, 3, 3, 1, 3, 3, 1, 3, 3, 3, 3, 1, 3, 1, 3, 1, 3, 4, 4, 2, 2, 2, 4, 2, 4, 2, 4, 4, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 8, 7, 7, 7, 7, 3, 5, 3, 3, 5, 3, 3, 3, 1, 3, 3, 3, 1, 3, 3, 3, 1, 3, 1, 1, 1, 3, 4, 2, 2, 4, 2, 2, 4, 2, 4, 4, 4, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 7, 5, 7, 5, 1, 5, 5, 3, 1, 3, 3, 3, 3, 3, 1, 3, 1, 3, 3, 1, 1, 1, 1, 1, 1, 4, 6, 6, 2, 4, 6, 2, 6, 2, 2, 4, 2, 2, 2, 0, 0, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 8, 7, 5, 3, 5, 3, 3, 5, 5, 5, 5, 3, 1, 5, 1, 1, 3, 3, 1, 5, 3, 1, 1, 1, 1, 3, 2, 4, 4, 2, 2, 4, 2, 4, 2, 2, 6, 4, 4, 2, 2, 0, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 3, 7, 5, 5, 3, 3, 5, 3, 5, 5, 3, 1, 5, 3, 3, 3, 3, 1, 3, 1, 3, 1, 1, 3, 1, 4, 4, 4, 2, 4, 4, 4, 6, 2, 2, 4, 6, 2, 2, 2, 0, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 8, 7, 7, 7, 7, 5, 3, 5, 5, 5, 3, 3, 1, 1, 1, 3, 1, 5, 3, 1, 3, 1, 1, 1, 1, 3, 1, 2, 4, 4, 2, 2, 4, 2, 4, 2, 4, 4, 4, 2, 2, 0, 0, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 8, 7, 7, 7, 8, 5, 5, 5, 3, 3, 3, 3, 3, 1, 1, 3, 3, 3, 3, 3, 3, 1, 1, 1, 3, 1, 1, 2, 2, 4, 2, 4, 2, 2, 4, 2, 2, 4, 2, 2, 2, 0, 0, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 5, 7, 7, 3, 3, 5, 3, 3, 3, 5, 3, 1, 5, 3, 5, 3, 3, 1, 3, 3, 1, 3, 1, 1, 1, 4, 4, 4, 2, 2, 4, 2, 6, 2, 2, 4, 4, 2, 2, 2, 0, 2, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 7, 7, 7, 3, 3, 3, 3, 3, 3, 3, 3, 1, 3, 3, 3, 1, 3, 1, 1, 3, 3, 1, 1, 1, 3, 2, 6, 4, 2, 2, 2, 2, 4, 2, 2, 2, 6, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 5, 5, 7, 3, 3, 5, 5, 5, 3, 5, 1, 1, 3, 3, 1, 3, 1, 3, 3, 1, 1, 1, 1, 1, 1, 4, 6, 4, 2, 2, 6, 2, 2, 2, 4, 4, 2, 2, 2, 2, 0, 4, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-7, 8, 7, 8, 3, 7, 7, 3, 5, 3, 5, 3, 3, 3, 3, 1, 3, 3, 5, 3, 1, 3, 3, 3, 3, 1, 3, 1, 1, 2, 4, 4, 4, 4, 2, 2, 4, 2, 2, 6, 2, 2, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-7, 8, 7, 7, 7, 5, 7, 7, 3, 3, 5, 3, 3, 3, 3, 1, 5, 1, 1, 3, 5, 1, 3, 1, 3, 3, 1, 1, 1, 4, 4, 2, 2, 4, 4, 4, 4, 2, 4, 6, 4, 2, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-7, 9, 7, 7, 7, 7, 7, 5, 5, 5, 5, 3, 3, 5, 3, 1, 5, 1, 5, 3, 3, 3, 3, 1, 1, 1, 1, 3, 1, 2, 4, 4, 2, 2, 2, 2, 4, 2, 2, 4, 4, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-7, 8, 7, 7, 5, 7, 7, 3, 5, 3, 5, 3, 3, 3, 3, 3, 3, 1, 3, 3, 3, 3, 3, 1, 1, 1, 1, 3, 1, 4, 4, 4, 2, 4, 2, 2, 4, 2, 2, 4, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 7, 5, 7, 5, 3, 3, 5, 5, 5, 5, 3, 1, 3, 1, 3, 3, 1, 1, 3, 3, 1, 1, 1, 3, 1, 2, 4, 4, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 4, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 7, 5, 7, 5, 3, 5, 5, 5, 3, 5, 3, 1, 3, 1, 3, 5, 3, 3, 3, 1, 3, 1, 1, 3, 1, 2, 2, 4, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 0, 0, 2, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 8, 7, 5, 5, 7, 3, 3, 5, 5, 3, 3, 3, 3, 1, 5, 3, 3, 1, 3, 1, 1, 3, 3, 1, 1, 3, 1, 4, 4, 4, 2, 4, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 4, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-7, 8, 7, 7, 7, 5, 7, 5, 3, 5, 5, 3, 5, 3, 3, 3, 3, 1, 5, 1, 3, 1, 3, 1, 1, 1, 1, 3, 1, 2, 6, 4, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 4, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 5, 7, 7, 5, 3, 3, 3, 3, 5, 5, 3, 1, 1, 1, 1, 3, 1, 5, 3, 3, 1, 1, 1, 1, 3, 2, 4, 4, 4, 2, 4, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 4, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 7, 7, 7, 3, 5, 1, 7, 3, 3, 3, 3, 1, 3, 3, 3, 3, 3, 3, 3, 3, 1, 1, 1, 1, 3, 4, 4, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 0, 4, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-7, 7, 7, 8, 7, 5, 8, 5, 3, 5, 7, 3, 3, 5, 3, 1, 1, 1, 5, 3, 3, 3, 3, 3, 1, 1, 1, 1, 3, 4, 4, 4, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 4, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 7, 5, 7, 3, 3, 3, 5, 5, 5, 3, 3, 1, 1, 3, 3, 3, 1, 1, 3, 1, 1, 1, 1, 1, 3, 2, 4, 2, 2, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 5, 3, 7, 3, 3, 3, 5, 3, 3, 3, 3, 1, 3, 3, 3, 3, 1, 3, 3, 1, 1, 1, 1, 1, 1, 2, 4, 4, 2, 4, 4, 4, 4, 4, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 8, 7, 5, 5, 7, 7, 5, 5, 5, 5, 3, 3, 3, 3, 3, 3, 1, 3, 1, 1, 1, 1, 3, 3, 1, 1, 3, 4, 4, 4, 4, 2, 4, 6, 2, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 8, 7, 5, 7, 7, 5, 5, 3, 3, 3, 5, 3, 3, 1, 3, 3, 5, 3, 3, 3, 3, 3, 3, 3, 1, 1, 3, 2, 2, 4, 2, 4, 4, 4, 2, 4, 2, 2, 2, 2, 2, 0, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 7, 5, 7, 5, 3, 5, 3, 5, 3, 3, 1, 3, 3, 3, 3, 3, 3, 3, 3, 1, 1, 3, 1, 1, 3, 4, 4, 2, 2, 2, 4, 2, 4, 2, 4, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 7, 5, 5, 5, 5, 3, 3, 3, 3, 3, 3, 1, 3, 3, 5, 3, 3, 3, 1, 3, 1, 3, 3, 3, 1, 4, 4, 2, 4, 2, 2, 4, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 7, 8, 3, 5, 3, 3, 5, 3, 3, 3, 3, 3, 3, 3, 5, 3, 3, 1, 3, 1, 3, 1, 1, 1, 4, 4, 4, 2, 2, 2, 2, 4, 2, 2, 2, 4, 2, 2, 2, 2, 2, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 5, 7, 3, 3, 5, 3, 3, 5, 3, 1, 1, 3, 1, 3, 3, 3, 3, 3, 1, 1, 3, 3, 1, 3, 2, 2, 4, 2, 2, 4, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 8, 7, 7, 7, 7, 3, 3, 5, 3, 3, 3, 3, 3, 1, 1, 3, 5, 3, 3, 3, 3, 3, 1, 1, 3, 3, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 3, 7, 5, 3, 5, 5, 3, 5, 3, 3, 3, 3, 5, 3, 3, 3, 3, 3, 1, 1, 1, 3, 1, 3, 4, 6, 4, 4, 2, 4, 6, 2, 4, 2, 2, 2, 2, 2, 2, 4, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 7, 5, 7, 5, 3, 5, 3, 3, 5, 5, 3, 3, 3, 3, 1, 3, 3, 3, 3, 1, 1, 3, 1, 3, 3, 2, 6, 2, 6, 4, 2, 6, 4, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 5, 7, 7, 5, 3, 3, 5, 3, 5, 5, 3, 3, 3, 5, 5, 3, 5, 3, 3, 1, 1, 1, 1, 1, 3, 4, 4, 4, 4, 2, 4, 4, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 5, 7, 7, 7, 7, 5, 3, 3, 5, 3, 3, 5, 1, 3, 1, 5, 3, 3, 3, 3, 3, 3, 1, 3, 1, 1, 1, 4, 6, 4, 4, 2, 4, 4, 2, 2, 4, 4, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 5, 3, 7, 3, 5, 5, 3, 3, 5, 3, 1, 3, 3, 3, 3, 3, 3, 3, 1, 3, 1, 3, 1, 1, 1, 4, 4, 2, 2, 4, 4, 6, 6, 4, 4, 4, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 7, 3, 7, 5, 5, 5, 3, 3, 5, 3, 3, 3, 3, 3, 3, 3, 1, 3, 1, 3, 1, 3, 3, 1, 3, 2, 2, 2, 4, 2, 2, 4, 4, 2, 4, 2, 2, 2, 4, 2, 2, 2, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 7, 5, 7, 5, 3, 5, 7, 3, 3, 3, 3, 3, 5, 3, 3, 1, 3, 3, 1, 3, 1, 1, 1, 1, 1, 4, 4, 2, 4, 4, 4, 4, 4, 2, 4, 4, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 5, 5, 5, 7, 5, 3, 5, 5, 5, 5, 5, 3, 3, 3, 3, 3, 3, 1, 1, 3, 1, 1, 1, 1, 1, 3, 4, 4, 2, 4, 2, 4, 6, 4, 4, 2, 4, 2, 4, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 5, 5, 7, 5, 3, 3, 5, 5, 5, 3, 3, 3, 3, 1, 3, 3, 1, 1, 3, 1, 1, 1, 3, 3, 3, 2, 4, 2, 4, 4, 2, 2, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 5, 5, 5, 3, 5, 5, 3, 3, 5, 3, 3, 1, 1, 3, 3, 3, 3, 3, 1, 1, 3, 3, 1, 1, 1, 4, 2, 4, 2, 2, 4, 4, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 7, 7, 8, 5, 3, 5, 3, 3, 5, 3, 3, 1, 3, 5, 3, 1, 1, 3, 1, 1, 1, 1, 1, 1, 3, 4, 4, 2, 4, 4, 2, 4, 4, 4, 4, 4, 2, 4, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 5, 5, 5, 5, 3, 3, 3, 5, 5, 3, 3, 1, 3, 3, 1, 3, 3, 3, 1, 3, 1, 1, 3, 1, 3, 4, 4, 2, 2, 6, 2, 4, 4, 2, 4, 2, 2, 4, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 5, 7, 7, 3, 3, 5, 3, 3, 5, 3, 1, 3, 3, 3, 3, 5, 1, 3, 3, 3, 1, 1, 1, 1, 3, 2, 4, 4, 2, 4, 4, 2, 2, 2, 2, 2, 2, 4, 4, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 8, 7, 5, 5, 7, 3, 5, 5, 3, 3, 5, 3, 3, 3, 3, 1, 3, 1, 3, 1, 3, 3, 1, 1, 3, 1, 3, 2, 4, 2, 4, 4, 2, 4, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 5, 7, 5, 3, 5, 1, 3, 3, 3, 1, 3, 3, 3, 1, 1, 3, 3, 1, 3, 3, 3, 1, 1, 1, 2, 2, 2, 4, 4, 4, 2, 2, 4, 4, 4, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 5, 7, 5, 3, 3, 3, 5, 3, 5, 5, 3, 3, 1, 1, 3, 3, 3, 3, 3, 3, 3, 1, 3, 1, 1, 4, 4, 2, 4, 2, 4, 2, 2, 4, 4, 4, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 7, 5, 5, 3, 5, 3, 5, 3, 5, 1, 3, 3, 3, 3, 1, 3, 1, 3, 3, 1, 3, 3, 1, 1, 2, 4, 4, 2, 2, 2, 4, 2, 2, 4, 2, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 5, 3, 7, 5, 5, 3, 5, 3, 3, 5, 5, 3, 3, 3, 3, 1, 1, 3, 3, 1, 1, 3, 1, 1, 1, 2, 4, 2, 4, 2, 4, 4, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 7, 5, 5, 5, 5, 5, 3, 3, 3, 3, 3, 1, 3, 3, 3, 3, 1, 1, 3, 1, 1, 1, 1, 1, 1, 2, 4, 2, 2, 2, 2, 2, 4, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 7, 7, 7, 5, 5, 5, 5, 1, 3, 3, 5, 1, 3, 3, 3, 3, 5, 3, 1, 3, 1, 1, 1, 1, 1, 6, 4, 2, 4, 2, 2, 2, 2, 6, 4, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 7, 5, 5, 5, 5, 5, 1, 5, 3, 5, 3, 1, 3, 1, 1, 1, 5, 3, 1, 3, 1, 1, 1, 3, 1, 4, 4, 4, 2, 2, 4, 4, 4, 4, 4, 2, 2, 2, 4, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 7, 5, 5, 5, 3, 3, 5, 3, 3, 3, 3, 3, 3, 3, 3, 1, 5, 3, 3, 3, 3, 1, 1, 1, 3, 4, 6, 4, 2, 2, 2, 4, 4, 4, 4, 2, 2, 2, 4, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 7, 7, 7, 5, 3, 3, 5, 3, 3, 5, 3, 3, 3, 3, 3, 3, 3, 3, 1, 3, 3, 1, 1, 1, 3, 4, 4, 4, 4, 2, 2, 2, 2, 4, 4, 2, 2, 4, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 7, 7, 7, 5, 5, 3, 5, 5, 5, 3, 3, 1, 3, 1, 1, 3, 3, 3, 3, 3, 3, 1, 1, 1, 1, 4, 4, 2, 4, 2, 4, 4, 4, 4, 4, 2, 4, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 7, 5, 8, 5, 5, 3, 3, 3, 3, 3, 1, 1, 5, 3, 3, 3, 5, 3, 1, 3, 3, 3, 1, 1, 1, 4, 4, 4, 4, 2, 4, 2, 4, 4, 2, 4, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 5, 7, 7, 5, 3, 3, 5, 3, 3, 3, 3, 3, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 4, 6, 2, 2, 2, 2, 4, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 5, 5, 3, 3, 3, 5, 5, 3, 1, 5, 3, 5, 5, 3, 5, 3, 3, 1, 3, 1, 3, 1, 3, 3, 2, 2, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 7, 5, 5, 5, 5, 3, 3, 5, 3, 3, 3, 3, 3, 5, 5, 3, 5, 3, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 7, 3, 7, 5, 5, 3, 5, 3, 3, 3, 3, 3, 5, 3, 3, 5, 3, 3, 3, 3, 1, 3, 1, 5, 3, 6, 2, 4, 4, 4, 4, 2, 2, 2, 2, 2, 4, 2, 2, 4, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 5, 7, 7, 5, 5, 3, 3, 5, 3, 3, 5, 3, 3, 3, 3, 3, 5, 3, 3, 3, 3, 3, 1, 1, 1, 3, 1, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 5, 5, 3, 5, 5, 5, 3, 3, 3, 3, 3, 3, 3, 3, 5, 3, 5, 5, 3, 1, 3, 3, 1, 1, 3, 4, 4, 2, 2, 4, 2, 4, 4, 2, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 5, 5, 7, 3, 7, 5, 3, 5, 5, 3, 3, 3, 3, 3, 1, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4, 2, 4, 2, 4, 4, 2, 2, 4, 2, 4, 2, 2, 4, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 7, 5, 5, 3, 5, 5, 5, 3, 5, 1, 5, 3, 3, 3, 3, 3, 5, 5, 1, 3, 3, 1, 1, 3, 1, 4, 4, 2, 4, 2, 4, 2, 4, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 7, 5, 5, 5, 5, 5, 3, 5, 3, 3, 1, 3, 5, 5, 3, 5, 3, 3, 5, 3, 3, 1, 1, 3, 3, 4, 4, 2, 2, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 5, 5, 5, 5, 5, 5, 3, 3, 3, 3, 3, 3, 3, 3, 5, 3, 3, 3, 5, 3, 1, 1, 3, 3, 1, 3, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-7, 7, 7, 5, 7, 5, 5, 5, 5, 3, 5, 3, 5, 1, 3, 3, 3, 3, 5, 5, 3, 5, 3, 1, 3, 3, 1, 3, 5, 2, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 5, 3, 5, 5, 5, 3, 3, 3, 3, 1, 3, 3, 3, 3, 5, 1, 3, 3, 3, 1, 1, 1, 1, 1, 3, 2, 6, 4, 4, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 5, 5, 7, 5, 5, 3, 3, 3, 3, 3, 1, 3, 1, 3, 3, 5, 3, 3, 3, 1, 3, 1, 3, 3, 3, 4, 2, 2, 2, 2, 4, 4, 2, 2, 2, 4, 4, 2, 4, 2, 2, 2, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 5, 5, 7, 3, 3, 5, 5, 5, 5, 3, 3, 1, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1, 1, 1, 3, 4, 4, 2, 2, 2, 4, 2, 4, 2, 2, 2, 2, 2, 4, 2, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 5, 3, 3, 5, 5, 5, 3, 3, 3, 3, 3, 3, 1, 3, 3, 5, 3, 5, 5, 3, 1, 3, 1, 3, 1, 3, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 5, 5, 5, 5, 5, 3, 3, 1, 5, 3, 1, 3, 5, 3, 3, 3, 3, 3, 3, 3, 1, 3, 1, 3, 3, 2, 4, 4, 2, 4, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 8, 8, 7, 5, 7, 7, 5, 3, 5, 5, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1, 1, 1, 3, 4, 4, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 5, 3, 7, 3, 5, 5, 3, 3, 5, 3, 1, 3, 5, 3, 1, 3, 3, 3, 3, 3, 3, 1, 3, 3, 3, 4, 4, 2, 4, 4, 4, 4, 4, 2, 4, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 8, 7, 7, 3, 5, 3, 3, 3, 3, 5, 1, 1, 3, 1, 3, 5, 3, 3, 3, 1, 3, 3, 3, 1, 1, 1, 5, 4, 4, 2, 4, 2, 2, 4, 4, 2, 2, 4, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 5, 7, 5, 5, 5, 3, 5, 5, 5, 3, 3, 5, 1, 3, 3, 1, 3, 5, 1, 1, 3, 1, 1, 3, 1, 3, 4, 4, 4, 4, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 5, 5, 7, 3, 5, 3, 5, 5, 5, 3, 3, 1, 3, 5, 3, 3, 3, 3, 5, 3, 3, 1, 1, 1, 1, 4, 4, 4, 4, 2, 4, 2, 4, 2, 2, 2, 4, 4, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 5, 7, 3, 5, 5, 3, 3, 3, 1, 1, 1, 5, 3, 3, 5, 5, 3, 3, 3, 3, 1, 1, 3, 3, 4, 4, 4, 2, 2, 2, 4, 4, 2, 4, 2, 2, 2, 4, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-7, 7, 8, 7, 5, 5, 5, 5, 5, 3, 3, 5, 5, 1, 3, 1, 3, 3, 3, 3, 3, 3, 3, 1, 1, 1, 1, 1, 3, 2, 4, 2, 2, 4, 4, 2, 4, 2, 2, 2, 2, 4, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 7, 5, 7, 5, 5, 3, 3, 3, 3, 3, 3, 1, 3, 3, 5, 1, 5, 1, 3, 1, 3, 3, 1, 1, 3, 4, 4, 2, 4, 4, 4, 4, 2, 2, 4, 4, 2, 2, 2, 2, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 8, 7, 7, 5, 7, 3, 7, 5, 3, 5, 3, 3, 1, 3, 5, 3, 3, 1, 1, 3, 5, 3, 3, 3, 3, 1, 3, 4, 4, 2, 4, 2, 2, 2, 4, 2, 4, 4, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-7, 8, 8, 7, 5, 5, 5, 5, 3, 3, 5, 3, 5, 1, 3, 1, 3, 3, 1, 3, 3, 3, 5, 1, 1, 1, 1, 3, 3, 2, 2, 4, 2, 2, 4, 6, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-7, 7, 7, 7, 5, 5, 7, 5, 5, 5, 5, 5, 3, 3, 3, 3, 5, 3, 1, 3, 1, 3, 3, 1, 1, 1, 3, 3, 3, 2, 4, 4, 2, 2, 4, 2, 4, 2, 2, 4, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-7, 7, 7, 7, 5, 5, 7, 7, 3, 3, 5, 3, 5, 3, 3, 3, 3, 5, 1, 1, 5, 3, 1, 3, 3, 1, 3, 1, 3, 4, 2, 4, 2, 2, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 5, 5, 5, 3, 5, 5, 5, 3, 5, 3, 3, 1, 5, 3, 3, 3, 3, 3, 5, 1, 1, 1, 3, 1, 3, 4, 4, 4, 4, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 3, 7, 7, 3, 5, 3, 3, 3, 3, 3, 1, 1, 5, 3, 3, 1, 1, 1, 3, 1, 3, 3, 3, 1, 3, 4, 2, 4, 4, 2, 2, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 7, 7, 7, 5, 3, 5, 5, 5, 5, 3, 1, 3, 3, 3, 3, 3, 1, 3, 3, 1, 3, 1, 3, 1, 3, 2, 4, 4, 2, 2, 4, 4, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 7, 3, 7, 5, 3, 5, 3, 3, 5, 3, 3, 3, 3, 3, 3, 3, 3, 3, 5, 1, 1, 3, 1, 1, 5, 4, 4, 2, 4, 2, 2, 4, 4, 2, 2, 2, 4, 2, 2, 2, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 7, 3, 7, 3, 5, 5, 5, 3, 5, 3, 3, 1, 5, 3, 1, 5, 3, 3, 3, 3, 1, 1, 3, 1, 1, 2, 4, 4, 2, 2, 4, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 7, 5, 7, 5, 5, 3, 3, 3, 5, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1, 1, 1, 3, 3, 2, 4, 4, 2, 2, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 7, 3, 7, 3, 3, 3, 3, 5, 5, 3, 3, 3, 7, 1, 1, 1, 3, 3, 3, 3, 1, 1, 1, 3, 3, 4, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 5, 7, 7, 5, 7, 5, 3, 5, 5, 3, 5, 3, 3, 1, 3, 3, 3, 1, 3, 3, 3, 3, 1, 1, 1, 3, 1, 4, 4, 2, 2, 4, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 7, 7, 7, 3, 3, 3, 5, 3, 5, 1, 3, 1, 5, 3, 3, 5, 3, 3, 3, 3, 1, 1, 1, 3, 3, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 7, 5, 7, 3, 5, 5, 3, 5, 5, 3, 3, 3, 3, 3, 1, 3, 5, 3, 3, 3, 3, 3, 3, 1, 3, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 7, 5, 7, 5, 3, 3, 3, 3, 7, 3, 3, 3, 3, 3, 3, 1, 3, 3, 1, 3, 3, 1, 3, 1, 3, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 7, 7, 7, 3, 3, 3, 5, 5, 5, 1, 3, 1, 3, 1, 3, 1, 5, 3, 3, 1, 1, 1, 3, 1, 1, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 6, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 7, 7, 7, 5, 5, 3, 5, 3, 3, 1, 3, 3, 3, 5, 1, 3, 5, 1, 1, 3, 3, 1, 1, 1, 3, 2, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 7, 7, 7, 3, 5, 3, 3, 3, 5, 1, 1, 3, 3, 3, 1, 3, 3, 3, 3, 3, 3, 1, 1, 1, 3, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 5, 7, 7, 7, 3, 5, 3, 5, 3, 3, 1, 3, 1, 3, 3, 5, 3, 1, 3, 1, 3, 1, 3, 3, 1, 3, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 7, 7, 8, 3, 7, 7, 5, 3, 5, 1, 3, 1, 3, 3, 3, 3, 3, 3, 3, 3, 1, 1, 1, 1, 3, 4, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 6, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 5, 7, 8, 7, 7, 5, 5, 3, 3, 3, 3, 1, 3, 3, 3, 5, 1, 3, 1, 1, 1, 3, 1, 3, 1, 4, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-7, 8, 7, 7, 7, 5, 8, 3, 5, 1, 3, 3, 3, 1, 3, 3, 3, 3, 1, 5, 3, 3, 1, 3, 1, 1, 3, 3, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 6, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 8, 8, 7, 7, 7, 5, 5, 7, 5, 3, 3, 3, 3, 3, 7, 3, 3, 3, 3, 1, 3, 1, 1, 3, 1, 1, 1, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 7, 5, 7, 3, 5, 3, 3, 5, 5, 1, 1, 3, 3, 3, 3, 3, 3, 3, 5, 3, 3, 1, 3, 3, 1, 4, 2, 2, 4, 2, 2, 2, 4, 2, 2, 2, 4, 2, 2, 2, 2, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 7, 7, 7, 7, 5, 3, 3, 3, 3, 1, 3, 1, 3, 3, 1, 3, 3, 1, 1, 3, 1, 1, 1, 1, 3, 4, 2, 4, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 6, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 7, 8, 7, 3, 5, 5, 5, 3, 5, 3, 3, 3, 5, 3, 3, 1, 3, 1, 1, 3, 3, 3, 1, 1, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 4, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 7, 7, 7, 5, 5, 1, 5, 5, 3, 3, 1, 1, 5, 3, 1, 3, 3, 1, 1, 3, 1, 1, 1, 1, 1, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 7, 8, 7, 5, 5, 3, 5, 1, 5, 1, 3, 3, 5, 1, 3, 3, 3, 1, 1, 3, 1, 3, 3, 1, 1, 4, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 7, 7, 7, 5, 5, 3, 3, 3, 5, 3, 3, 1, 5, 3, 1, 3, 3, 1, 1, 3, 1, 1, 3, 1, 1, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 6, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 5, 7, 7, 3, 5, 3, 3, 5, 5, 3, 3, 1, 3, 3, 1, 3, 3, 1, 1, 3, 1, 1, 1, 1, 1, 2, 2, 4, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-7, 7, 7, 7, 7, 7, 7, 3, 5, 5, 5, 3, 3, 3, 3, 1, 3, 5, 1, 1, 3, 3, 3, 1, 1, 1, 1, 1, 1, 2, 2, 4, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 7, 7, 7, 5, 5, 3, 5, 3, 3, 3, 1, 3, 3, 3, 3, 1, 1, 3, 3, 1, 1, 1, 1, 1, 3, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 8, 7, 7, 3, 5, 3, 5, 3, 5, 3, 3, 3, 3, 3, 1, 3, 3, 1, 1, 1, 1, 1, 1, 1, 1, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 7, 7, 7, 7, 5, 5, 5, 5, 5, 7, 5, 3, 3, 1, 1, 1, 3, 1, 1, 1, 3, 1, 1, 3, 3, 2, 2, 2, 2, 2, 4, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 7, 7, 7, 5, 5, 5, 5, 3, 3, 5, 3, 3, 1, 3, 3, 1, 3, 1, 3, 3, 3, 3, 3, 1, 3, 2, 2, 2, 2, 2, 4, 4, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 5, 7, 7, 5, 5, 5, 3, 3, 3, 5, 5, 1, 3, 3, 3, 3, 1, 1, 3, 3, 3, 1, 3, 1, 3, 2, 4, 2, 4, 2, 2, 2, 2, 2, 4, 2, 4, 4, 4, 2, 2, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 7, 3, 5, 5, 3, 3, 5, 3, 3, 5, 5, 3, 1, 3, 3, 1, 3, 3, 3, 1, 1, 1, 3, 1, 1, 2, 4, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 7, 5, 7, 5, 5, 3, 5, 5, 1, 5, 3, 3, 3, 3, 3, 3, 5, 3, 3, 3, 1, 3, 3, 3, 1, 4, 6, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 5, 5, 5, 3, 3, 5, 3, 5, 3, 3, 1, 5, 3, 3, 3, 3, 3, 3, 1, 3, 1, 5, 1, 3, 4, 2, 4, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 7, 5, 7, 5, 5, 3, 5, 3, 3, 5, 3, 1, 3, 3, 3, 1, 5, 3, 3, 3, 1, 1, 1, 1, 1, 4, 2, 2, 2, 2, 2, 4, 2, 4, 4, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 7, 7, 8, 5, 5, 3, 3, 3, 3, 5, 3, 3, 3, 3, 3, 3, 3, 5, 3, 3, 1, 1, 1, 3, 1, 4, 4, 4, 2, 2, 4, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-7, 8, 7, 7, 7, 7, 5, 5, 5, 5, 3, 3, 3, 5, 1, 3, 3, 3, 3, 1, 3, 3, 3, 1, 1, 1, 1, 1, 3, 4, 4, 2, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 5, 7, 7, 5, 5, 7, 3, 3, 3, 3, 5, 3, 1, 1, 3, 3, 3, 3, 3, 1, 1, 1, 3, 1, 3, 4, 4, 4, 2, 2, 4, 2, 4, 2, 4, 2, 2, 4, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 5, 7, 7, 5, 3, 3, 3, 5, 3, 5, 5, 3, 3, 3, 3, 3, 3, 3, 5, 3, 3, 1, 1, 1, 1, 4, 4, 2, 2, 2, 4, 4, 2, 2, 4, 6, 2, 4, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 8, 7, 3, 8, 5, 5, 5, 5, 5, 5, 5, 5, 3, 3, 3, 1, 3, 3, 3, 3, 3, 1, 3, 3, 3, 1, 4, 4, 4, 2, 4, 4, 2, 2, 2, 4, 4, 2, 4, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 3, 7, 3, 3, 5, 3, 5, 3, 3, 3, 1, 3, 1, 3, 3, 3, 5, 3, 1, 3, 1, 1, 1, 3, 4, 4, 2, 2, 2, 4, 2, 2, 4, 2, 2, 4, 4, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 5, 5, 7, 5, 5, 5, 3, 5, 3, 3, 3, 3, 1, 3, 3, 1, 3, 3, 3, 1, 1, 1, 1, 3, 1, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 7, 5, 7, 3, 5, 5, 5, 5, 3, 5, 5, 1, 1, 3, 1, 1, 3, 5, 1, 1, 1, 1, 3, 3, 3, 4, 4, 2, 2, 4, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 7, 7, 7, 5, 3, 5, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1, 3, 3, 3, 3, 1, 1, 3, 3, 4, 4, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 4, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 7, 7, 5, 5, 3, 3, 5, 3, 3, 3, 3, 3, 1, 5, 3, 1, 3, 3, 3, 1, 1, 1, 1, 3, 4, 4, 4, 2, 2, 2, 4, 2, 4, 2, 2, 2, 2, 4, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 5, 3, 7, 5, 3, 3, 3, 5, 3, 3, 3, 3, 3, 3, 3, 3, 1, 1, 3, 5, 3, 3, 3, 1, 1, 4, 2, 2, 2, 2, 4, 2, 2, 2, 2, 4, 4, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 5, 7, 5, 5, 3, 5, 3, 3, 3, 3, 3, 3, 3, 5, 3, 1, 3, 3, 1, 3, 1, 1, 1, 1, 4, 2, 2, 2, 4, 2, 4, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 7, 3, 5, 5, 3, 3, 3, 3, 3, 3, 3, 1, 1, 3, 5, 5, 1, 3, 3, 3, 1, 3, 3, 1, 1, 4, 4, 4, 2, 2, 4, 4, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 7, 7, 7, 5, 3, 5, 5, 3, 3, 3, 3, 3, 1, 3, 1, 3, 1, 1, 3, 3, 3, 3, 1, 1, 3, 4, 2, 2, 2, 2, 2, 2, 2, 4, 2, 4, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 5, 7, 7, 5, 7, 5, 5, 3, 3, 1, 3, 3, 3, 1, 1, 3, 1, 3, 3, 3, 3, 3, 3, 1, 1, 1, 3, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 5, 5, 5, 3, 3, 3, 3, 5, 3, 3, 1, 3, 3, 3, 3, 3, 3, 1, 1, 5, 3, 3, 1, 3, 3, 2, 4, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 7, 5, 5, 5, 5, 3, 1, 3, 3, 3, 3, 1, 3, 3, 3, 3, 3, 3, 1, 3, 3, 5, 1, 1, 1, 4, 4, 4, 2, 4, 2, 2, 2, 4, 4, 4, 4, 4, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 7, 7, 3, 5, 5, 3, 3, 3, 3, 3, 1, 3, 3, 3, 5, 3, 1, 5, 3, 3, 3, 3, 1, 3, 4, 4, 2, 2, 4, 2, 2, 2, 2, 4, 2, 2, 4, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 5, 5, 7, 5, 3, 3, 3, 3, 3, 3, 3, 3, 3, 5, 3, 1, 1, 3, 3, 3, 3, 1, 1, 1, 1, 6, 2, 2, 2, 4, 2, 4, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 5, 5, 3, 3, 5, 5, 5, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 7, 3, 5, 5, 3, 3, 5, 5, 5, 3, 5, 3, 3, 1, 1, 3, 1, 1, 3, 3, 3, 1, 1, 1, 3, 4, 2, 2, 2, 2, 4, 4, 2, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-7, 7, 7, 7, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 3, 5, 5, 3, 3, 5, 3, 5, 3, 3, 3, 3, 1, 4, 4, 2, 2, 2, 2, 4, 4, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 5, 5, 5, 5, 3, 5, 3, 5, 5, 3, 5, 3, 5, 5, 3, 5, 3, 3, 5, 3, 3, 3, 3, 3, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 5, 5, 7, 3, 5, 5, 3, 3, 3, 3, 3, 3, 3, 5, 3, 5, 3, 3, 3, 5, 3, 3, 3, 3, 1, 4, 2, 4, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 7, 7, 5, 5, 3, 3, 3, 3, 5, 1, 3, 3, 3, 3, 3, 3, 1, 5, 1, 5, 1, 1, 1, 1, 3, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 5, 7, 7, 5, 5, 3, 3, 3, 3, 1, 3, 3, 3, 1, 1, 1, 3, 1, 3, 3, 3, 3, 1, 1, 3, 2, 4, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 7, 5, 7, 5, 5, 3, 3, 3, 3, 1, 3, 3, 5, 5, 3, 1, 3, 3, 1, 5, 3, 3, 1, 3, 1, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 3, 5, 7, 5, 3, 3, 5, 3, 3, 3, 3, 3, 3, 3, 1, 1, 3, 3, 3, 3, 3, 1, 1, 1, 1, 2, 4, 4, 4, 2, 2, 2, 2, 2, 4, 2, 4, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 5, 5, 5, 7, 5, 5, 5, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1, 3, 3, 5, 3, 3, 1, 1, 1, 4, 2, 4, 2, 4, 4, 4, 2, 4, 2, 4, 2, 4, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 5, 5, 7, 5, 5, 5, 3, 7, 5, 5, 5, 3, 1, 1, 1, 3, 3, 5, 3, 5, 5, 3, 1, 1, 3, 2, 2, 2, 6, 4, 2, 2, 2, 2, 4, 4, 4, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 5, 7, 5, 3, 3, 3, 5, 5, 5, 3, 5, 3, 3, 3, 3, 1, 1, 3, 5, 3, 3, 1, 1, 1, 1, 2, 2, 2, 4, 4, 2, 4, 2, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 5, 5, 5, 3, 3, 3, 3, 3, 5, 5, 3, 3, 1, 3, 1, 3, 3, 3, 5, 3, 3, 3, 1, 1, 1, 2, 2, 2, 4, 4, 2, 2, 2, 2, 4, 4, 4, 2, 2, 2, 2, 4, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 7, 5, 7, 5, 5, 5, 5, 5, 3, 5, 5, 1, 3, 3, 1, 1, 3, 3, 5, 3, 3, 3, 1, 1, 1, 2, 2, 2, 4, 4, 2, 2, 2, 2, 4, 4, 4, 6, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 7, 5, 7, 3, 5, 5, 3, 3, 3, 1, 5, 3, 3, 3, 1, 3, 3, 5, 5, 5, 5, 3, 3, 1, 3, 2, 2, 2, 4, 4, 2, 2, 2, 2, 4, 4, 4, 4, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-7, 7, 7, 7, 5, 3, 7, 5, 5, 3, 3, 5, 5, 3, 5, 3, 3, 3, 1, 1, 3, 1, 3, 5, 5, 3, 1, 3, 1, 2, 2, 2, 4, 4, 4, 4, 2, 2, 2, 4, 4, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 5, 7, 3, 7, 5, 5, 5, 3, 5, 3, 3, 3, 1, 3, 3, 1, 1, 5, 3, 5, 3, 3, 3, 3, 1, 1, 4, 2, 2, 4, 4, 4, 4, 2, 4, 6, 4, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 7, 5, 5, 5, 5, 3, 5, 5, 3, 3, 3, 1, 3, 3, 1, 3, 1, 3, 3, 5, 3, 3, 1, 1, 1, 2, 2, 2, 4, 4, 4, 4, 2, 4, 4, 4, 4, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 8, 5, 7, 5, 3, 3, 5, 3, 3, 3, 3, 5, 1, 3, 1, 1, 1, 3, 1, 5, 5, 5, 3, 1, 3, 1, 4, 4, 2, 2, 2, 2, 4, 2, 4, 6, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 7, 5, 3, 3, 5, 5, 5, 5, 5, 5, 3, 3, 5, 3, 1, 3, 3, 1, 3, 3, 3, 3, 1, 1, 1, 2, 2, 2, 4, 4, 2, 2, 2, 2, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 7, 7, 5, 5, 3, 5, 3, 5, 5, 3, 3, 1, 3, 1, 1, 3, 1, 3, 5, 1, 3, 3, 1, 1, 1, 4, 2, 2, 4, 2, 2, 4, 2, 4, 2, 4, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 5, 7, 7, 5, 5, 5, 3, 5, 5, 3, 3, 3, 1, 3, 3, 1, 1, 3, 3, 3, 3, 3, 3, 1, 3, 2, 2, 2, 6, 4, 2, 2, 2, 2, 4, 2, 4, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 5, 7, 5, 5, 5, 5, 5, 5, 3, 5, 5, 1, 1, 3, 1, 3, 3, 1, 3, 3, 3, 1, 1, 3, 1, 4, 2, 2, 2, 4, 4, 4, 2, 4, 4, 2, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-7, 7, 7, 8, 5, 7, 7, 7, 3, 3, 5, 5, 5, 5, 5, 1, 1, 3, 1, 3, 3, 1, 5, 3, 1, 3, 3, 1, 1, 4, 2, 2, 4, 2, 2, 2, 2, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-7, 8, 7, 7, 7, 7, 7, 3, 3, 3, 3, 5, 5, 3, 3, 1, 3, 3, 1, 1, 1, 1, 3, 1, 3, 1, 3, 1, 3, 4, 2, 2, 4, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 7, 7, 7, 3, 3, 3, 5, 5, 3, 3, 3, 1, 3, 3, 1, 1, 1, 3, 3, 3, 3, 3, 3, 1, 1, 4, 2, 2, 4, 4, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 4, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-7, 8, 7, 7, 7, 7, 5, 3, 5, 5, 5, 5, 3, 3, 5, 1, 3, 3, 1, 3, 3, 3, 5, 5, 3, 1, 1, 3, 3, 4, 4, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 5, 5, 7, 5, 5, 3, 3, 5, 3, 1, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1, 3, 1, 2, 4, 2, 4, 2, 4, 4, 2, 2, 2, 4, 2, 2, 2, 2, 2, 4, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 5, 5, 5, 5, 3, 5, 3, 5, 5, 3, 3, 3, 3, 3, 5, 3, 1, 3, 1, 3, 3, 1, 1, 1, 1, 3, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 4, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 5, 3, 7, 5, 7, 5, 3, 5, 3, 3, 3, 3, 5, 3, 3, 3, 3, 3, 1, 3, 3, 3, 3, 1, 1, 4, 4, 4, 2, 2, 2, 4, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 5, 5, 5, 7, 5, 7, 5, 3, 5, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1, 5, 1, 1, 3, 1, 3, 2, 2, 4, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 7, 5, 5, 5, 5, 5, 3, 5, 3, 5, 5, 5, 5, 3, 3, 5, 3, 1, 1, 3, 1, 3, 1, 1, 1, 2, 4, 4, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-7, 7, 7, 7, 5, 7, 7, 7, 5, 5, 3, 5, 3, 5, 3, 3, 5, 3, 5, 3, 3, 3, 3, 3, 1, 3, 3, 1, 1, 4, 2, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 6, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 7, 5, 7, 7, 5, 5, 5, 7, 3, 3, 5, 5, 3, 3, 3, 3, 3, 5, 3, 3, 1, 3, 1, 1, 3, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 5, 5, 7, 5, 5, 5, 5, 7, 5, 3, 3, 3, 5, 3, 3, 3, 3, 3, 1, 3, 1, 1, 1, 3, 3, 2, 4, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 6, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 5, 7, 7, 5, 5, 3, 5, 3, 3, 3, 3, 1, 3, 3, 1, 3, 3, 3, 3, 1, 3, 1, 1, 1, 1, 3, 2, 4, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 4, 2, 2, 2, 4, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 7, 5, 5, 5, 3, 5, 5, 3, 3, 5, 3, 3, 3, 3, 3, 1, 3, 3, 1, 1, 1, 3, 1, 1, 1, 4, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 6, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 7, 5, 5, 5, 5, 5, 3, 5, 3, 3, 1, 3, 3, 1, 3, 3, 3, 1, 3, 3, 1, 1, 1, 1, 3, 4, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 5, 7, 7, 5, 5, 3, 5, 3, 5, 3, 3, 3, 3, 3, 3, 1, 3, 1, 3, 1, 1, 3, 1, 1, 1, 3, 2, 4, 2, 4, 4, 4, 4, 2, 2, 2, 2, 4, 2, 2, 2, 2, 4, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 7, 5, 5, 3, 5, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1, 1, 1, 1, 1, 1, 3, 1, 5, 4, 2, 4, 4, 4, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 4, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 7, 7, 7, 5, 5, 3, 3, 3, 3, 3, 3, 3, 1, 1, 3, 3, 1, 3, 1, 1, 1, 1, 1, 1, 1, 4, 4, 4, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 7, 7, 7, 5, 3, 3, 5, 5, 3, 3, 3, 3, 1, 3, 1, 1, 1, 1, 3, 3, 1, 3, 3, 1, 3, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-7, 8, 7, 7, 7, 5, 7, 5, 5, 5, 5, 3, 3, 3, 5, 3, 3, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 4, 4, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-7, 8, 8, 7, 5, 7, 7, 3, 5, 7, 3, 3, 5, 3, 3, 1, 3, 3, 1, 3, 3, 1, 1, 1, 1, 3, 1, 3, 1, 2, 2, 2, 2, 4, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 6, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 5, 5, 7, 3, 5, 3, 3, 5, 3, 7, 3, 3, 3, 3, 1, 1, 3, 3, 3, 3, 1, 3, 1, 1, 3, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 7, 7, 7, 3, 7, 5, 5, 3, 3, 5, 3, 3, 3, 3, 3, 3, 1, 3, 1, 3, 3, 3, 1, 1, 1, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 6, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 9, 7, 7, 7, 7, 7, 5, 7, 5, 5, 5, 3, 5, 5, 3, 3, 1, 3, 1, 3, 1, 1, 1, 3, 3, 3, 3, 1, 4, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-7, 8, 7, 7, 5, 7, 7, 3, 7, 5, 5, 5, 3, 5, 3, 5, 3, 3, 3, 1, 3, 3, 3, 3, 1, 3, 3, 1, 1, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 4, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 5, 5, 7, 5, 7, 3, 3, 3, 7, 7, 5, 5, 1, 3, 3, 1, 3, 3, 1, 3, 1, 3, 1, 5, 3, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 4, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-7, 8, 7, 7, 7, 7, 7, 5, 5, 5, 5, 5, 7, 7, 5, 3, 3, 3, 3, 1, 3, 1, 3, 3, 1, 1, 1, 3, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 6, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 7, 7, 5, 5, 1, 5, 5, 5, 5, 1, 3, 3, 3, 3, 1, 5, 1, 3, 3, 1, 3, 1, 1, 3, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 7, 7, 7, 3, 7, 7, 7, 5, 5, 5, 5, 5, 3, 5, 3, 1, 3, 1, 3, 1, 1, 3, 1, 3, 3, 4, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 8, 7, 7, 7, 7, 5, 7, 3, 7, 5, 1, 5, 3, 7, 5, 5, 3, 1, 3, 1, 3, 3, 1, 3, 1, 3, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 3, 7, 7, 5, 7, 7, 7, 7, 3, 5, 3, 5, 5, 3, 3, 1, 3, 1, 1, 1, 1, 3, 1, 3, 3, 4, 4, 2, 2, 4, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 8, 7, 7, 7, 7, 5, 5, 7, 7, 5, 1, 5, 1, 5, 3, 5, 5, 3, 5, 1, 3, 3, 1, 1, 1, 3, 3, 6, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 7, 7, 5, 7, 5, 7, 7, 5, 7, 1, 5, 3, 5, 5, 3, 5, 3, 3, 3, 3, 1, 1, 1, 3, 4, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 4, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 8, 7, 7, 7, 7, 3, 7, 7, 7, 7, 5, 7, 3, 5, 3, 5, 5, 1, 5, 1, 3, 3, 3, 3, 1, 1, 1, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 7, 5, 7, 5, 7, 5, 7, 5, 5, 5, 5, 7, 5, 7, 3, 3, 5, 1, 3, 1, 5, 1, 1, 3, 1, 4, 4, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 6, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-7, 8, 7, 7, 7, 5, 7, 3, 7, 5, 5, 1, 3, 5, 3, 5, 3, 5, 3, 1, 3, 3, 5, 3, 1, 1, 1, 3, 1, 4, 2, 2, 2, 4, 4, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 6, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 7, 7, 3, 7, 5, 5, 5, 5, 7, 5, 7, 3, 5, 5, 3, 3, 1, 5, 3, 1, 3, 1, 3, 1, 4, 4, 2, 2, 2, 4, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 7, 7, 7, 5, 7, 7, 7, 5, 5, 7, 3, 5, 3, 5, 5, 1, 5, 1, 3, 3, 1, 1, 1, 3, 1, 4, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 6, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 7, 7, 7, 5, 7, 5, 7, 7, 5, 5, 3, 5, 5, 7, 5, 1, 5, 1, 3, 3, 1, 3, 1, 3, 1, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 7, 7, 7, 5, 7, 7, 7, 7, 5, 7, 3, 5, 3, 5, 3, 1, 3, 1, 3, 1, 1, 1, 1, 3, 1, 4, 2, 4, 2, 4, 4, 4, 4, 2, 4, 2, 2, 2, 2, 2, 2, 6, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 8, 7, 7, 7, 7, 5, 7, 7, 7, 7, 7, 7, 5, 7, 3, 7, 5, 1, 3, 1, 5, 3, 3, 3, 1, 3, 1, 4, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 4, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 8, 7, 7, 7, 7, 5, 7, 7, 7, 5, 5, 7, 5, 7, 5, 7, 5, 1, 3, 3, 5, 1, 3, 3, 1, 3, 3, 2, 2, 2, 2, 2, 2, 4, 4, 2, 4, 2, 2, 2, 2, 2, 2, 4, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 7, 7, 7, 5, 7, 7, 7, 5, 5, 5, 5, 5, 3, 5, 5, 3, 5, 1, 5, 3, 1, 3, 1, 3, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 4, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 7, 7, 3, 7, 1, 7, 5, 3, 7, 5, 7, 5, 3, 3, 1, 3, 1, 5, 3, 1, 3, 1, 3, 1, 4, 4, 2, 2, 2, 4, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 6, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 7, 5, 5, 5, 3, 5, 3, 3, 3, 3, 1, 3, 3, 3, 3, 1, 1, 3, 3, 3, 3, 1, 5, 3, 2, 4, 6, 4, 2, 2, 2, 4, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-7, 8, 7, 7, 5, 5, 7, 5, 5, 5, 3, 3, 3, 3, 1, 3, 5, 3, 3, 1, 3, 3, 5, 3, 1, 1, 3, 3, 3, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 7, 5, 5, 3, 5, 3, 5, 1, 3, 5, 3, 3, 3, 3, 3, 1, 5, 3, 3, 3, 3, 3, 3, 3, 1, 4, 2, 4, 2, 4, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 8, 5, 5, 5, 3, 5, 5, 5, 3, 3, 3, 3, 1, 3, 3, 3, 3, 3, 3, 3, 1, 1, 3, 3, 3, 1, 4, 2, 4, 2, 2, 4, 4, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 5, 5, 5, 5, 5, 5, 3, 3, 3, 3, 3, 3, 3, 7, 3, 3, 1, 5, 3, 3, 3, 1, 1, 3, 3, 3, 2, 4, 2, 4, 4, 4, 4, 4, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 8, 7, 7, 3, 5, 5, 3, 3, 3, 3, 1, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1, 3, 3, 4, 2, 2, 4, 4, 2, 4, 4, 2, 4, 2, 2, 4, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 5, 5, 5, 3, 5, 3, 5, 3, 3, 5, 3, 3, 3, 3, 5, 5, 3, 3, 5, 3, 1, 1, 1, 1, 3, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 7, 5, 3, 5, 5, 5, 5, 5, 5, 1, 1, 5, 3, 3, 3, 3, 3, 3, 3, 3, 1, 3, 5, 1, 4, 4, 4, 4, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 8, 5, 7, 3, 3, 3, 3, 5, 3, 3, 5, 3, 1, 1, 3, 1, 3, 3, 3, 1, 1, 1, 1, 1, 1, 3, 4, 4, 6, 2, 2, 4, 4, 4, 2, 4, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 5, 7, 3, 3, 3, 3, 5, 3, 3, 3, 3, 1, 1, 3, 5, 1, 1, 3, 3, 1, 1, 1, 3, 1, 1, 2, 4, 4, 2, 4, 4, 4, 2, 2, 4, 4, 2, 2, 2, 2, 0, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 5, 5, 3, 5, 1, 3, 3, 3, 3, 3, 1, 3, 3, 3, 3, 3, 3, 5, 1, 1, 1, 1, 1, 1, 4, 4, 6, 2, 2, 4, 2, 4, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 5, 7, 7, 3, 5, 3, 3, 3, 3, 3, 1, 3, 3, 3, 3, 1, 3, 5, 1, 3, 3, 1, 3, 3, 3, 4, 4, 4, 2, 2, 4, 4, 2, 2, 4, 2, 2, 4, 4, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 5, 5, 5, 5, 3, 5, 3, 3, 3, 3, 3, 3, 3, 3, 1, 3, 3, 3, 3, 1, 1, 3, 1, 1, 1, 2, 4, 4, 4, 2, 2, 4, 4, 4, 4, 4, 4, 2, 2, 2, 2, 2, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 8, 7, 7, 5, 3, 3, 5, 5, 3, 3, 3, 5, 3, 3, 3, 1, 1, 1, 3, 3, 1, 1, 3, 3, 1, 1, 2, 2, 2, 4, 2, 2, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 5, 5, 5, 3, 3, 5, 3, 5, 3, 3, 3, 5, 3, 3, 5, 1, 1, 3, 3, 1, 1, 1, 3, 1, 3, 4, 2, 4, 4, 4, 4, 4, 6, 4, 2, 4, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 5, 5, 5, 3, 3, 3, 5, 3, 5, 3, 3, 5, 3, 3, 3, 3, 3, 3, 1, 3, 1, 1, 1, 3, 1, 4, 4, 4, 4, 4, 2, 4, 2, 2, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 3, 5, 5, 3, 5, 5, 3, 3, 3, 3, 3, 5, 1, 3, 3, 1, 3, 3, 3, 1, 1, 1, 1, 1, 1, 4, 4, 2, 4, 4, 2, 4, 2, 2, 4, 4, 4, 4, 4, 2, 2, 2, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 5, 5, 5, 3, 5, 3, 3, 3, 3, 1, 3, 1, 3, 3, 3, 3, 3, 3, 3, 1, 3, 3, 3, 3, 3, 4, 2, 4, 4, 4, 4, 4, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 7, 3, 5, 5, 5, 3, 1, 3, 3, 3, 3, 3, 3, 5, 3, 3, 3, 5, 3, 3, 3, 3, 1, 1, 3, 6, 4, 4, 4, 4, 4, 4, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 5, 5, 3, 5, 5, 5, 1, 3, 3, 3, 3, 5, 1, 5, 1, 3, 3, 5, 3, 3, 1, 1, 1, 1, 4, 4, 4, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-7, 8, 7, 7, 5, 5, 5, 3, 5, 5, 5, 3, 5, 1, 3, 3, 5, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1, 1, 3, 4, 4, 4, 4, 2, 2, 2, 4, 4, 2, 2, 2, 4, 4, 2, 2, 2, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 7, 7, 5, 3, 5, 5, 3, 5, 5, 3, 3, 3, 3, 3, 3, 1, 3, 3, 3, 1, 3, 1, 1, 3, 3, 2, 2, 4, 4, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 5, 7, 7, 3, 5, 5, 1, 3, 3, 3, 3, 1, 3, 1, 3, 5, 3, 5, 3, 1, 3, 3, 3, 3, 3, 6, 4, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 5, 5, 3, 5, 3, 3, 5, 3, 1, 3, 3, 3, 1, 3, 3, 3, 3, 3, 1, 1, 1, 1, 1, 3, 6, 4, 4, 4, 4, 2, 4, 2, 2, 4, 2, 2, 4, 4, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 7, 7, 3, 5, 3, 3, 5, 1, 3, 3, 3, 3, 3, 1, 3, 3, 3, 3, 1, 1, 1, 1, 3, 3, 4, 4, 4, 6, 2, 4, 2, 4, 2, 4, 2, 4, 2, 4, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 5, 5, 3, 3, 5, 3, 3, 3, 3, 3, 3, 1, 3, 1, 1, 3, 3, 3, 1, 3, 1, 1, 3, 3, 4, 4, 4, 4, 2, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 5, 7, 5, 5, 7, 5, 5, 3, 3, 3, 3, 3, 5, 3, 3, 3, 3, 3, 3, 1, 3, 3, 1, 3, 1, 1, 3, 4, 2, 2, 2, 2, 4, 4, 4, 4, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 5, 5, 7, 3, 3, 3, 3, 3, 5, 3, 3, 1, 5, 3, 3, 3, 5, 5, 3, 1, 3, 3, 3, 1, 3, 2, 4, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 5, 7, 7, 3, 5, 5, 3, 3, 3, 3, 3, 1, 3, 3, 3, 1, 3, 3, 3, 1, 3, 1, 1, 1, 1, 4, 4, 2, 2, 2, 4, 4, 2, 4, 2, 4, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 3, 5, 5, 5, 3, 3, 3, 3, 3, 3, 3, 5, 3, 5, 5, 3, 3, 1, 1, 1, 3, 1, 1, 1, 3, 4, 2, 2, 2, 4, 6, 4, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 5, 5, 5, 5, 5, 3, 3, 3, 3, 1, 3, 3, 3, 3, 3, 3, 1, 3, 1, 1, 3, 1, 3, 1, 3, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 8, 7, 7, 7, 3, 5, 3, 5, 1, 3, 3, 3, 3, 3, 1, 3, 3, 1, 3, 3, 3, 1, 1, 3, 1, 1, 4, 4, 4, 4, 4, 4, 2, 4, 4, 2, 4, 2, 4, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 5, 5, 5, 3, 5, 3, 5, 3, 3, 3, 3, 3, 3, 3, 1, 3, 3, 5, 3, 3, 3, 1, 1, 1, 1, 4, 2, 2, 2, 2, 4, 2, 0, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 5, 7, 5, 3, 3, 3, 3, 3, 5, 3, 3, 3, 3, 3, 3, 3, 3, 3, 5, 1, 1, 1, 3, 1, 3, 2, 2, 2, 2, 2, 4, 2, 2, 4, 4, 2, 2, 4, 4, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 5, 5, 5, 7, 3, 5, 3, 5, 3, 3, 3, 3, 3, 3, 3, 1, 3, 3, 3, 3, 3, 1, 1, 1, 5, 3, 4, 2, 4, 2, 4, 4, 4, 2, 4, 2, 4, 2, 2, 4, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 7, 5, 3, 3, 3, 3, 3, 3, 3, 3, 1, 3, 5, 3, 3, 3, 5, 5, 3, 1, 1, 3, 1, 3, 4, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 5, 7, 5, 5, 3, 5, 3, 3, 3, 3, 3, 3, 3, 3, 1, 3, 1, 5, 3, 3, 1, 1, 3, 1, 1, 4, 4, 2, 2, 2, 4, 4, 2, 2, 4, 4, 2, 2, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 7, 7, 7, 5, 5, 3, 3, 3, 3, 3, 3, 3, 3, 5, 3, 3, 3, 5, 5, 3, 1, 1, 1, 1, 1, 2, 4, 2, 4, 2, 2, 4, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-7, 9, 7, 7, 7, 5, 7, 5, 5, 3, 3, 5, 3, 5, 5, 3, 3, 3, 5, 3, 3, 5, 5, 3, 3, 1, 1, 3, 1, 4, 4, 2, 4, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 7, 7, 3, 5, 3, 3, 5, 3, 3, 3, 3, 5, 5, 3, 3, 3, 5, 5, 3, 5, 1, 3, 3, 3, 6, 2, 2, 4, 2, 2, 4, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 5, 7, 3, 3, 3, 5, 1, 3, 3, 3, 3, 5, 3, 3, 3, 1, 3, 1, 3, 3, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 4, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 7, 7, 7, 5, 3, 5, 3, 3, 5, 3, 3, 3, 5, 5, 1, 1, 3, 3, 3, 1, 1, 1, 1, 1, 1, 2, 4, 2, 4, 2, 6, 4, 4, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 5, 7, 7, 5, 5, 5, 3, 3, 5, 5, 3, 3, 5, 3, 1, 3, 5, 3, 1, 1, 1, 3, 1, 3, 3, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 5, 5, 5, 3, 3, 3, 3, 3, 1, 3, 3, 3, 3, 3, 3, 3, 3, 5, 3, 3, 1, 1, 3, 1, 1, 2, 4, 4, 2, 2, 4, 4, 4, 4, 4, 4, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 3, 5, 5, 3, 5, 3, 1, 5, 5, 5, 3, 3, 3, 3, 3, 5, 1, 3, 3, 1, 1, 1, 1, 1, 1, 4, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 8, 7, 3, 5, 7, 5, 5, 3, 5, 3, 5, 5, 3, 5, 3, 3, 3, 3, 3, 1, 1, 1, 1, 3, 1, 3, 3, 2, 4, 4, 2, 4, 2, 2, 2, 4, 4, 4, 2, 2, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 5, 5, 5, 3, 3, 3, 1, 3, 5, 3, 3, 3, 3, 3, 5, 3, 5, 1, 3, 1, 1, 1, 3, 3, 1, 4, 4, 2, 2, 4, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 7, 3, 3, 7, 3, 3, 3, 3, 3, 3, 3, 5, 3, 3, 5, 3, 3, 3, 3, 1, 1, 1, 3, 3, 4, 4, 4, 2, 2, 4, 2, 2, 2, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 5, 5, 5, 5, 5, 5, 1, 5, 3, 3, 1, 1, 5, 3, 3, 3, 3, 3, 5, 3, 1, 3, 1, 3, 3, 4, 4, 4, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-7, 7, 7, 7, 5, 5, 5, 3, 5, 5, 1, 5, 3, 3, 1, 3, 5, 5, 3, 3, 3, 3, 5, 3, 1, 3, 1, 1, 3, 6, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 8, 3, 5, 5, 5, 5, 5, 5, 3, 5, 5, 3, 3, 5, 5, 3, 5, 3, 3, 5, 3, 3, 3, 3, 3, 3, 4, 2, 2, 4, 4, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 7, 5, 5, 3, 5, 3, 3, 3, 5, 3, 3, 1, 7, 3, 5, 5, 3, 3, 3, 3, 1, 1, 1, 3, 3, 6, 4, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 8, 3, 7, 7, 3, 5, 5, 3, 3, 5, 5, 3, 3, 3, 3, 3, 5, 3, 3, 3, 3, 3, 1, 1, 5, 3, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 2, 2, 2, 2, 4, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 8, 5, 5, 5, 3, 5, 3, 5, 5, 3, 3, 3, 3, 5, 5, 3, 5, 3, 5, 5, 3, 3, 1, 1, 3, 3, 4, 6, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-7, 8, 7, 7, 7, 5, 5, 3, 3, 5, 3, 3, 3, 5, 1, 3, 3, 3, 3, 3, 3, 3, 5, 3, 1, 1, 1, 1, 3, 4, 4, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 5, 7, 7, 3, 5, 3, 3, 5, 5, 3, 5, 3, 3, 3, 1, 5, 3, 3, 3, 3, 3, 1, 1, 1, 3, 4, 4, 4, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 3, 7, 5, 5, 5, 3, 5, 5, 3, 3, 1, 1, 5, 5, 3, 3, 3, 3, 3, 3, 1, 1, 1, 3, 3, 4, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-7, 8, 7, 7, 5, 5, 5, 5, 3, 3, 3, 3, 3, 3, 5, 3, 3, 5, 1, 5, 5, 1, 5, 3, 3, 1, 1, 1, 1, 4, 4, 4, 2, 2, 6, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-7, 8, 7, 7, 7, 7, 5, 1, 5, 3, 3, 1, 5, 5, 3, 3, 3, 3, 3, 5, 5, 3, 3, 3, 1, 3, 3, 3, 3, 2, 4, 4, 2, 2, 2, 4, 2, 4, 2, 2, 4, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-7, 8, 7, 7, 5, 7, 7, 5, 5, 5, 1, 5, 5, 5, 3, 1, 5, 5, 3, 5, 5, 5, 3, 3, 1, 1, 1, 1, 1, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 5, 7, 5, 3, 3, 5, 3, 5, 3, 1, 1, 1, 5, 3, 3, 5, 5, 3, 3, 3, 3, 1, 1, 1, 3, 4, 4, 4, 4, 2, 4, 4, 2, 2, 4, 2, 2, 4, 4, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-7, 8, 7, 7, 7, 7, 7, 5, 5, 5, 3, 3, 5, 3, 1, 3, 3, 3, 3, 3, 3, 5, 3, 3, 1, 3, 1, 3, 1, 4, 2, 4, 2, 2, 2, 4, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-7, 8, 7, 7, 7, 7, 7, 3, 5, 3, 3, 1, 5, 3, 1, 1, 5, 3, 3, 5, 3, 3, 3, 1, 1, 3, 1, 3, 3, 4, 2, 4, 4, 2, 4, 4, 2, 4, 2, 2, 4, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-7, 8, 7, 7, 5, 7, 7, 3, 3, 3, 3, 3, 3, 3, 1, 1, 3, 3, 3, 3, 3, 3, 3, 1, 1, 3, 1, 1, 3, 4, 4, 4, 2, 4, 4, 4, 2, 4, 2, 2, 4, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 8, 7, 7, 7, 3, 5, 3, 5, 5, 5, 3, 3, 1, 3, 5, 3, 5, 3, 3, 3, 3, 3, 1, 1, 3, 3, 6, 6, 2, 4, 2, 2, 4, 2, 4, 2, 2, 4, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-7, 8, 7, 7, 7, 7, 7, 3, 5, 3, 3, 3, 5, 1, 3, 3, 3, 3, 3, 1, 3, 5, 3, 3, 1, 1, 1, 3, 3, 4, 4, 2, 2, 2, 2, 6, 4, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 8, 5, 7, 7, 5, 5, 3, 3, 3, 1, 3, 3, 5, 3, 5, 3, 3, 3, 3, 3, 3, 3, 1, 1, 1, 3, 4, 2, 4, 2, 2, 2, 4, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 5, 7, 5, 3, 3, 3, 5, 3, 1, 3, 3, 3, 3, 3, 1, 3, 3, 5, 1, 1, 3, 1, 1, 3, 3, 4, 2, 2, 2, 4, 2, 4, 2, 4, 4, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 7, 7, 3, 3, 5, 5, 3, 3, 3, 3, 3, 5, 3, 3, 1, 5, 3, 1, 1, 1, 1, 1, 3, 3, 4, 4, 2, 2, 2, 2, 2, 2, 4, 4, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 5, 7, 7, 3, 3, 5, 3, 5, 5, 5, 3, 5, 3, 5, 3, 1, 3, 3, 3, 3, 1, 3, 1, 3, 3, 2, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-7, 8, 7, 8, 5, 7, 7, 3, 5, 3, 5, 5, 5, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1, 1, 1, 1, 3, 6, 2, 4, 2, 2, 4, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 5, 5, 7, 7, 3, 5, 3, 5, 5, 5, 3, 5, 7, 3, 5, 3, 3, 3, 3, 5, 3, 1, 1, 1, 1, 3, 4, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-7, 8, 7, 7, 7, 7, 7, 5, 5, 5, 3, 5, 3, 5, 1, 3, 3, 3, 3, 1, 3, 3, 1, 1, 1, 1, 1, 1, 3, 4, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 5, 5, 5, 3, 3, 3, 3, 3, 3, 3, 3, 1, 5, 3, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 3, 2, 2, 4, 4, 2, 2, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-7, 8, 7, 7, 3, 7, 7, 3, 5, 3, 3, 3, 3, 3, 3, 1, 3, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 1, 3, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 5, 7, 7, 3, 5, 3, 3, 3, 3, 5, 1, 3, 3, 5, 1, 3, 3, 3, 3, 1, 3, 3, 1, 3, 1, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 8, 5, 7, 7, 3, 5, 3, 3, 3, 3, 3, 3, 5, 3, 1, 3, 5, 3, 3, 3, 3, 1, 1, 1, 1, 5, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 5, 7, 7, 5, 5, 5, 5, 3, 5, 5, 3, 3, 3, 3, 3, 1, 3, 3, 3, 3, 3, 1, 1, 1, 3, 5, 4, 4, 4, 2, 2, 4, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 5, 7, 7, 3, 3, 3, 3, 5, 3, 3, 3, 1, 3, 3, 1, 1, 3, 3, 3, 3, 1, 3, 1, 3, 3, 4, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 7, 5, 7, 3, 5, 3, 5, 3, 3, 3, 3, 1, 3, 3, 1, 3, 1, 3, 3, 1, 1, 1, 1, 1, 3, 4, 4, 6, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 4, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 7, 7, 7, 3, 5, 3, 3, 3, 5, 3, 3, 3, 3, 3, 1, 1, 3, 3, 3, 3, 1, 1, 1, 3, 3, 6, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 8, 5, 7, 7, 5, 5, 3, 3, 3, 3, 3, 1, 1, 3, 3, 3, 3, 5, 3, 3, 3, 1, 1, 1, 1, 5, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 3, 7, 7, 5, 5, 3, 3, 3, 3, 1, 3, 3, 1, 3, 1, 3, 1, 1, 3, 1, 1, 3, 1, 1, 3, 4, 4, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 5, 5, 7, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1, 3, 1, 3, 1, 1, 1, 3, 5, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 5, 7, 5, 7, 7, 5, 5, 5, 5, 3, 3, 3, 3, 1, 3, 3, 1, 5, 1, 1, 3, 1, 1, 1, 4, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 7, 5, 7, 3, 5, 5, 7, 3, 3, 3, 3, 5, 3, 5, 3, 3, 3, 1, 1, 3, 1, 1, 1, 3, 5, 2, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 6, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 8, 7, 5, 7, 7, 5, 5, 5, 3, 3, 3, 5, 3, 3, 1, 5, 1, 3, 1, 1, 3, 1, 1, 1, 1, 3, 3, 4, 2, 4, 4, 4, 4, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 0, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-7, 8, 7, 7, 7, 7, 7, 7, 5, 5, 5, 3, 5, 5, 3, 5, 3, 5, 3, 3, 3, 3, 3, 1, 1, 3, 1, 3, 1, 4, 4, 4, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 6, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 5, 7, 7, 5, 5, 5, 5, 3, 5, 3, 3, 3, 3, 5, 3, 3, 3, 1, 3, 1, 1, 1, 1, 3, 1, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 7, 7, 7, 7, 5, 5, 5, 5, 5, 5, 3, 5, 3, 5, 3, 3, 5, 3, 3, 3, 3, 1, 1, 3, 1, 4, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 3, 5, 8, 5, 5, 3, 5, 3, 5, 5, 3, 5, 3, 5, 3, 5, 5, 3, 3, 1, 3, 3, 1, 1, 1, 4, 4, 2, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 5, 5, 5, 3, 5, 5, 5, 3, 3, 3, 3, 3, 3, 3, 1, 3, 5, 3, 3, 1, 1, 1, 1, 1, 3, 4, 4, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 5, 5, 7, 3, 5, 7, 5, 3, 5, 3, 3, 3, 3, 3, 3, 1, 3, 3, 1, 3, 1, 1, 3, 3, 3, 2, 6, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 5, 5, 5, 5, 3, 5, 5, 3, 5, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1, 1, 3, 1, 1, 1, 4, 4, 2, 4, 4, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 5, 7, 7, 3, 5, 3, 3, 3, 3, 3, 3, 1, 3, 3, 3, 3, 1, 1, 3, 3, 1, 3, 1, 1, 3, 4, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 7, 7, 7, 5, 5, 3, 3, 5, 3, 3, 3, 3, 3, 5, 3, 1, 3, 3, 3, 3, 1, 3, 3, 3, 3, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 5, 7, 7, 5, 3, 5, 3, 5, 5, 5, 3, 3, 5, 3, 3, 1, 3, 1, 5, 3, 1, 3, 1, 3, 1, 4, 4, 4, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 5, 7, 7, 5, 5, 3, 3, 1, 3, 3, 3, 3, 1, 3, 3, 1, 3, 1, 3, 3, 1, 1, 1, 1, 3, 6, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 7, 7, 1, 5, 5, 5, 3, 3, 5, 3, 3, 3, 1, 3, 3, 3, 3, 1, 1, 1, 1, 1, 3, 1, 4, 4, 4, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 5, 5, 5, 5, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 5, 1, 1, 3, 1, 1, 1, 1, 3, 3, 3, 4, 2, 2, 2, 2, 4, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 5, 7, 5, 5, 3, 3, 5, 3, 3, 3, 3, 5, 1, 3, 3, 3, 3, 5, 3, 3, 1, 3, 1, 3, 1, 4, 2, 2, 2, 2, 2, 4, 4, 4, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 5, 7, 7, 5, 3, 5, 5, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 5, 3, 3, 1, 3, 3, 3, 4, 4, 2, 2, 4, 2, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 5, 5, 7, 7, 5, 3, 5, 3, 5, 3, 3, 5, 3, 3, 1, 3, 3, 3, 5, 3, 3, 3, 3, 1, 1, 1, 4, 4, 2, 2, 2, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 5, 7, 7, 3, 3, 3, 5, 3, 5, 5, 3, 5, 3, 3, 5, 3, 3, 3, 3, 3, 3, 3, 1, 1, 1, 4, 4, 4, 2, 2, 4, 2, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 8, 7, 7, 7, 5, 5, 5, 5, 5, 3, 3, 5, 1, 1, 3, 3, 3, 3, 1, 3, 3, 3, 1, 1, 3, 1, 3, 4, 4, 2, 4, 2, 4, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 5, 5, 7, 3, 5, 3, 5, 5, 3, 3, 1, 1, 3, 5, 3, 1, 3, 3, 3, 3, 1, 1, 1, 3, 3, 6, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 7, 7, 7, 5, 3, 5, 5, 5, 5, 5, 3, 3, 3, 3, 3, 3, 1, 3, 1, 3, 1, 1, 3, 3, 5, 6, 4, 2, 4, 4, 4, 2, 4, 4, 2, 4, 2, 2, 4, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 5, 7, 7, 5, 3, 3, 5, 3, 3, 3, 3, 5, 3, 3, 3, 1, 3, 3, 3, 3, 3, 1, 3, 3, 3, 6, 4, 4, 2, 2, 4, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 5, 7, 5, 5, 3, 5, 5, 5, 5, 3, 3, 5, 3, 3, 3, 1, 3, 5, 1, 1, 3, 1, 1, 1, 5, 4, 6, 4, 2, 2, 2, 6, 2, 4, 4, 4, 2, 2, 2, 0, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 5, 7, 5, 5, 3, 5, 7, 3, 5, 3, 3, 3, 3, 3, 1, 3, 3, 1, 3, 1, 3, 1, 1, 1, 3, 4, 2, 2, 4, 2, 4, 4, 4, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 8, 7, 7, 7, 3, 5, 5, 3, 1, 3, 3, 1, 3, 3, 3, 1, 3, 3, 3, 1, 3, 3, 1, 1, 3, 1, 4, 6, 2, 2, 4, 2, 4, 4, 2, 4, 4, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 8, 5, 5, 5, 3, 3, 5, 3, 1, 5, 5, 3, 3, 3, 3, 1, 3, 3, 1, 3, 1, 1, 1, 1, 3, 3, 4, 4, 2, 4, 2, 4, 2, 4, 2, 4, 4, 0, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 5, 7, 5, 5, 3, 3, 3, 5, 3, 3, 3, 3, 3, 3, 3, 5, 3, 3, 3, 1, 1, 3, 3, 1, 1, 2, 4, 4, 2, 2, 2, 4, 4, 4, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 5, 7, 7, 5, 3, 3, 3, 5, 3, 3, 3, 1, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1, 2, 4, 2, 4, 2, 4, 4, 2, 4, 6, 2, 2, 2, 2, 2, 2, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 5, 7, 7, 3, 3, 3, 3, 5, 3, 3, 1, 3, 3, 3, 3, 5, 1, 5, 3, 3, 3, 3, 1, 1, 1, 4, 4, 2, 2, 2, 2, 2, 2, 4, 2, 2, 4, 2, 2, 2, 2, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 5, 7, 5, 5, 3, 5, 3, 5, 3, 3, 3, 3, 5, 1, 3, 1, 3, 3, 3, 1, 3, 3, 1, 3, 3, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 8, 7, 7, 7, 3, 5, 3, 3, 3, 3, 3, 3, 3, 1, 3, 3, 3, 1, 1, 1, 3, 3, 1, 3, 1, 3, 6, 2, 4, 2, 2, 4, 2, 2, 4, 4, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 7, 7, 7, 3, 3, 3, 5, 3, 3, 5, 3, 1, 3, 3, 5, 3, 1, 3, 3, 1, 3, 1, 1, 1, 1, 4, 2, 4, 2, 4, 2, 4, 2, 2, 4, 2, 2, 4, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 5, 5, 5, 5, 5, 3, 3, 3, 3, 3, 5, 1, 3, 3, 5, 3, 5, 3, 3, 1, 1, 1, 3, 1, 1, 4, 4, 4, 2, 2, 2, 4, 4, 4, 2, 4, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 5, 7, 7, 3, 5, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1, 3, 1, 3, 6, 4, 2, 2, 2, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 7, 5, 3, 5, 3, 5, 5, 3, 3, 1, 1, 3, 3, 3, 3, 1, 3, 3, 3, 3, 1, 1, 3, 1, 4, 6, 2, 2, 4, 2, 2, 2, 4, 4, 2, 2, 4, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 7, 7, 3, 5, 3, 5, 3, 5, 3, 3, 1, 5, 3, 3, 3, 3, 3, 3, 3, 3, 1, 1, 3, 3, 4, 4, 2, 2, 2, 4, 4, 4, 4, 6, 4, 2, 4, 2, 2, 2, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 8, 7, 7, 7, 3, 5, 3, 7, 5, 3, 3, 3, 1, 3, 3, 3, 1, 3, 5, 5, 3, 3, 1, 3, 1, 3, 6, 4, 4, 4, 4, 2, 4, 2, 4, 4, 2, 2, 2, 2, 2, 2, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 5, 7, 7, 3, 5, 3, 3, 3, 3, 1, 5, 1, 3, 3, 3, 3, 3, 5, 1, 3, 3, 1, 3, 1, 1, 4, 4, 2, 2, 2, 2, 2, 2, 4, 6, 2, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 5, 7, 7, 5, 3, 3, 3, 5, 5, 5, 3, 1, 3, 3, 3, 3, 1, 3, 1, 3, 3, 3, 1, 1, 1, 4, 4, 2, 4, 4, 4, 4, 2, 4, 6, 4, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 5, 7, 5, 3, 3, 5, 3, 3, 5, 3, 5, 3, 5, 3, 3, 1, 3, 3, 3, 1, 3, 1, 1, 1, 1, 2, 4, 4, 2, 2, 2, 2, 2, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 9, 7, 7, 5, 5, 5, 3, 5, 3, 3, 5, 5, 3, 5, 3, 3, 3, 1, 1, 3, 3, 1, 3, 1, 3, 1, 5, 1, 4, 4, 2, 2, 2, 4, 2, 4, 4, 2, 4, 2, 4, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 5, 5, 5, 5, 5, 3, 5, 5, 3, 5, 3, 1, 3, 1, 1, 3, 3, 5, 3, 1, 1, 1, 1, 3, 1, 4, 4, 2, 4, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 5, 5, 5, 5, 5, 3, 5, 5, 3, 3, 3, 3, 1, 5, 3, 3, 3, 3, 1, 3, 3, 1, 3, 3, 3, 1, 2, 4, 2, 2, 2, 2, 4, 4, 4, 4, 4, 2, 4, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 5, 7, 7, 3, 5, 3, 5, 3, 3, 3, 3, 1, 3, 1, 1, 1, 1, 3, 5, 3, 3, 3, 1, 1, 3, 4, 2, 2, 4, 4, 2, 4, 4, 4, 4, 2, 4, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 5, 7, 7, 5, 5, 3, 5, 3, 3, 3, 3, 1, 5, 1, 1, 3, 3, 3, 3, 3, 3, 1, 1, 1, 3, 4, 4, 4, 4, 2, 4, 4, 4, 2, 2, 4, 2, 2, 4, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 5, 5, 5, 3, 3, 5, 3, 5, 3, 3, 3, 3, 5, 3, 1, 3, 3, 3, 3, 3, 3, 1, 1, 1, 3, 4, 6, 4, 2, 2, 4, 4, 6, 4, 4, 2, 2, 2, 2, 4, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 8, 7, 7, 7, 3, 5, 5, 3, 3, 3, 3, 1, 1, 5, 3, 3, 1, 5, 3, 3, 3, 1, 1, 1, 3, 3, 4, 4, 4, 2, 2, 2, 4, 2, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 5, 7, 5, 3, 5, 3, 5, 3, 3, 3, 3, 3, 3, 3, 1, 3, 3, 3, 5, 3, 3, 1, 3, 1, 1, 4, 2, 2, 2, 2, 4, 4, 4, 4, 4, 2, 2, 2, 2, 2, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 7, 7, 3, 3, 5, 5, 5, 5, 3, 1, 3, 5, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1, 3, 1, 2, 2, 2, 2, 2, 2, 4, 4, 4, 6, 2, 2, 2, 2, 2, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 5, 7, 7, 3, 3, 5, 3, 3, 5, 3, 3, 3, 5, 1, 1, 1, 3, 3, 3, 3, 3, 3, 1, 1, 3, 4, 2, 2, 2, 2, 2, 4, 6, 4, 6, 4, 2, 2, 4, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 5, 5, 5, 3, 5, 5, 5, 3, 5, 3, 5, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1, 1, 1, 2, 4, 2, 2, 4, 2, 4, 4, 4, 2, 4, 4, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 7, 7, 3, 5, 3, 3, 5, 3, 3, 5, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1, 1, 1, 3, 4, 2, 4, 4, 4, 4, 4, 6, 4, 4, 2, 2, 2, 2, 2, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 7, 7, 3, 5, 3, 5, 3, 3, 1, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1, 1, 1, 3, 1, 2, 2, 2, 2, 4, 4, 2, 4, 4, 4, 4, 2, 2, 2, 2, 2, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 5, 5, 5, 5, 3, 3, 3, 3, 5, 3, 1, 3, 3, 1, 3, 3, 3, 3, 3, 3, 1, 1, 1, 1, 4, 4, 4, 2, 4, 2, 4, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 5, 5, 7, 3, 3, 3, 3, 3, 3, 5, 5, 3, 3, 3, 3, 3, 1, 1, 5, 3, 1, 1, 1, 1, 1, 4, 4, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 5, 7, 7, 5, 5, 5, 5, 3, 5, 3, 3, 3, 3, 1, 3, 3, 3, 1, 3, 3, 1, 1, 1, 1, 1, 4, 6, 2, 2, 2, 2, 2, 2, 2, 4, 4, 2, 2, 2, 2, 2, 0, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 5, 7, 7, 5, 5, 3, 5, 5, 3, 5, 3, 1, 3, 3, 3, 3, 3, 5, 5, 3, 1, 1, 1, 1, 1, 4, 4, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 5, 7, 5, 3, 5, 3, 3, 3, 3, 3, 3, 3, 3, 1, 3, 1, 3, 3, 1, 3, 3, 1, 1, 1, 3, 2, 4, 2, 2, 2, 4, 2, 4, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 7, 5, 5, 5, 5, 5, 3, 5, 5, 5, 1, 3, 3, 5, 3, 3, 1, 1, 3, 1, 1, 3, 3, 3, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 5, 7, 5, 3, 5, 5, 5, 3, 3, 3, 3, 1, 3, 3, 3, 3, 3, 3, 3, 3, 1, 3, 1, 1, 1, 4, 4, 2, 2, 4, 2, 4, 4, 2, 2, 2, 4, 2, 2, 2, 2, 2, 0, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 8, 7, 5, 7, 7, 3, 5, 3, 5, 3, 3, 5, 3, 1, 3, 3, 3, 3, 5, 5, 1, 3, 3, 3, 1, 1, 3, 4, 2, 2, 2, 2, 2, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 5, 7, 7, 5, 3, 5, 5, 3, 3, 3, 3, 1, 3, 3, 3, 3, 3, 3, 1, 3, 1, 1, 1, 3, 3, 2, 4, 4, 2, 2, 2, 4, 2, 2, 4, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 7, 5, 3, 3, 3, 3, 3, 3, 5, 3, 5, 5, 3, 3, 3, 3, 3, 3, 1, 1, 1, 1, 1, 1, 4, 2, 4, 4, 4, 4, 4, 2, 2, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 3, 7, 7, 3, 3, 3, 3, 3, 5, 3, 3, 1, 3, 3, 3, 3, 3, 3, 3, 1, 3, 1, 1, 1, 3, 4, 4, 2, 4, 4, 4, 4, 4, 2, 4, 4, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 5, 7, 3, 5, 3, 3, 3, 5, 5, 5, 3, 5, 5, 3, 3, 5, 3, 3, 1, 1, 1, 1, 3, 1, 4, 4, 2, 2, 4, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 5, 7, 5, 5, 3, 5, 3, 5, 5, 3, 3, 3, 5, 3, 3, 3, 3, 5, 1, 1, 1, 1, 3, 3, 4, 4, 4, 4, 2, 2, 2, 2, 4, 4, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 5, 5, 7, 3, 5, 3, 3, 1, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1, 3, 1, 1, 3, 1, 3, 3, 2, 6, 2, 2, 4, 2, 4, 2, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 7, 7, 3, 5, 3, 3, 3, 3, 5, 3, 3, 5, 3, 3, 3, 3, 3, 5, 1, 1, 3, 3, 3, 3, 2, 4, 2, 2, 2, 4, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 5, 5, 5, 3, 5, 5, 3, 3, 5, 3, 3, 1, 3, 3, 3, 1, 3, 5, 3, 1, 1, 1, 1, 3, 3, 4, 4, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 8, 7, 5, 7, 5, 3, 7, 5, 3, 3, 3, 3, 3, 1, 3, 3, 1, 3, 3, 3, 5, 3, 3, 1, 3, 1, 1, 4, 4, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 5, 5, 5, 3, 5, 3, 3, 1, 3, 3, 1, 3, 3, 3, 3, 5, 3, 1, 3, 3, 3, 3, 1, 1, 3, 2, 4, 4, 2, 2, 2, 2, 2, 4, 2, 2, 4, 2, 4, 4, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 5, 5, 5, 7, 3, 5, 3, 3, 3, 3, 5, 1, 3, 5, 3, 3, 3, 5, 3, 3, 3, 3, 1, 3, 3, 3, 2, 4, 2, 4, 2, 2, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 8, 5, 5, 5, 3, 5, 5, 3, 1, 3, 3, 3, 3, 3, 5, 3, 3, 3, 3, 3, 1, 3, 1, 1, 1, 1, 2, 4, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 5, 5, 5, 3, 5, 3, 5, 3, 5, 3, 3, 1, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1, 1, 1, 3, 4, 4, 2, 2, 4, 4, 4, 2, 2, 2, 4, 4, 2, 2, 2, 2, 2, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 5, 5, 5, 3, 5, 5, 5, 5, 5, 5, 3, 1, 3, 3, 3, 1, 3, 3, 5, 1, 1, 1, 3, 3, 3, 2, 4, 2, 4, 2, 2, 2, 2, 2, 2, 2, 4, 2, 4, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 7, 7, 3, 1, 5, 3, 3, 5, 3, 3, 3, 1, 3, 3, 3, 1, 3, 3, 3, 3, 3, 1, 1, 1, 1, 4, 6, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 7, 7, 5, 3, 5, 5, 3, 3, 3, 3, 1, 3, 3, 3, 5, 5, 3, 5, 5, 3, 3, 3, 3, 1, 3, 6, 6, 4, 2, 2, 4, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 7, 7, 7, 3, 5, 3, 3, 3, 3, 3, 1, 3, 3, 3, 1, 3, 3, 5, 3, 3, 3, 1, 3, 1, 3, 2, 4, 2, 4, 4, 2, 2, 2, 4, 2, 4, 2, 4, 2, 4, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 5, 5, 5, 3, 5, 3, 3, 3, 5, 5, 3, 3, 3, 3, 5, 3, 1, 5, 3, 3, 3, 3, 1, 1, 3, 4, 4, 4, 4, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 5, 5, 5, 3, 3, 5, 3, 3, 3, 5, 1, 5, 1, 3, 3, 3, 1, 3, 3, 3, 3, 1, 1, 1, 3, 6, 2, 2, 2, 2, 2, 4, 4, 2, 2, 2, 4, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 5, 7, 7, 3, 3, 5, 3, 3, 3, 3, 3, 1, 3, 3, 3, 3, 1, 3, 3, 1, 1, 1, 3, 1, 1, 2, 2, 4, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 7, 5, 5, 3, 5, 3, 3, 3, 3, 3, 1, 3, 3, 1, 3, 3, 3, 3, 5, 3, 1, 1, 3, 1, 3, 4, 4, 4, 2, 2, 2, 4, 4, 2, 4, 4, 2, 2, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 5, 5, 7, 3, 5, 1, 3, 1, 5, 3, 3, 3, 3, 3, 1, 3, 1, 3, 3, 3, 3, 1, 3, 1, 1, 2, 4, 4, 2, 4, 2, 4, 2, 2, 4, 4, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 5, 7, 7, 3, 5, 3, 3, 1, 3, 3, 3, 3, 3, 3, 1, 3, 3, 3, 3, 3, 3, 1, 3, 1, 1, 2, 4, 2, 2, 2, 2, 4, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 5, 5, 5, 5, 5, 7, 3, 3, 3, 3, 1, 3, 3, 3, 3, 3, 3, 5, 3, 3, 1, 1, 3, 1, 1, 4, 4, 4, 2, 2, 2, 4, 2, 2, 4, 2, 4, 4, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 7, 5, 5, 5, 5, 3, 5, 3, 3, 1, 3, 5, 3, 3, 1, 3, 1, 3, 3, 3, 1, 3, 1, 1, 3, 4, 4, 2, 2, 4, 4, 4, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-7, 8, 7, 7, 7, 7, 7, 5, 5, 3, 3, 3, 3, 3, 1, 1, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1, 1, 5, 4, 4, 4, 4, 4, 2, 2, 2, 4, 2, 4, 4, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 8, 5, 5, 7, 5, 5, 3, 1, 1, 3, 1, 3, 3, 3, 3, 3, 3, 1, 3, 5, 3, 1, 3, 1, 1, 3, 4, 2, 2, 2, 2, 4, 4, 4, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 5, 5, 5, 3, 5, 3, 5, 5, 3, 1, 3, 3, 5, 5, 3, 3, 5, 3, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 2, 2, 2, 2, 2, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 5, 5, 5, 3, 7, 5, 1, 3, 5, 3, 3, 1, 3, 3, 3, 1, 5, 3, 5, 1, 1, 1, 1, 3, 1, 2, 4, 4, 2, 4, 4, 4, 2, 2, 4, 4, 2, 4, 4, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 7, 7, 5, 1, 5, 3, 3, 3, 1, 3, 3, 3, 3, 5, 3, 3, 5, 5, 3, 3, 3, 1, 3, 3, 3, 4, 6, 2, 2, 4, 2, 4, 4, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 8, 7, 7, 5, 5, 3, 3, 5, 3, 5, 5, 5, 3, 1, 3, 5, 3, 3, 3, 3, 3, 3, 1, 3, 3, 1, 3, 4, 4, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 5, 3, 5, 5, 3, 5, 5, 3, 3, 5, 3, 1, 3, 5, 3, 3, 5, 3, 3, 3, 1, 1, 3, 3, 5, 4, 6, 2, 2, 4, 2, 4, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 5, 5, 5, 5, 5, 5, 5, 3, 3, 3, 3, 3, 5, 5, 5, 1, 5, 3, 3, 3, 3, 1, 1, 3, 3, 6, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 7, 7, 5, 3, 7, 3, 5, 3, 3, 3, 5, 1, 5, 3, 3, 3, 3, 3, 3, 3, 1, 1, 3, 3, 3, 2, 2, 4, 2, 4, 4, 2, 4, 2, 2, 2, 2, 4, 4, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 5, 7, 3, 5, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1, 5, 3, 3, 3, 1, 1, 1, 3, 1, 4, 2, 4, 2, 2, 2, 2, 2, 2, 2, 4, 2, 4, 2, 2, 2, 2, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 3, 5, 5, 3, 5, 3, 5, 3, 3, 3, 3, 1, 3, 3, 1, 3, 3, 3, 3, 3, 1, 1, 3, 1, 1, 4, 2, 4, 4, 2, 2, 2, 2, 4, 2, 2, 2, 4, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 5, 5, 7, 3, 7, 5, 5, 5, 1, 3, 5, 3, 3, 3, 3, 3, 5, 1, 3, 3, 3, 1, 1, 3, 3, 2, 4, 4, 2, 2, 4, 2, 4, 4, 2, 2, 2, 2, 4, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 7, 5, 7, 3, 5, 3, 5, 3, 5, 3, 3, 3, 5, 3, 3, 3, 5, 3, 3, 3, 3, 1, 3, 3, 3, 2, 4, 4, 2, 4, 2, 4, 2, 2, 4, 2, 4, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 7, 7, 5, 3, 7, 3, 3, 1, 3, 3, 3, 1, 5, 1, 1, 1, 5, 3, 1, 1, 3, 1, 3, 3, 3, 4, 4, 2, 4, 2, 2, 4, 2, 4, 4, 2, 4, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 8, 7, 7, 7, 5, 5, 3, 5, 5, 1, 3, 3, 1, 3, 3, 3, 3, 3, 3, 3, 5, 3, 1, 1, 1, 3, 4, 6, 4, 2, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 7, 5, 3, 5, 5, 5, 5, 5, 3, 5, 3, 3, 5, 3, 3, 3, 3, 5, 3, 3, 3, 1, 1, 3, 1, 4, 2, 2, 2, 4, 2, 4, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 7, 5, 7, 3, 5, 3, 5, 5, 1, 3, 3, 3, 5, 5, 3, 3, 5, 5, 5, 3, 1, 1, 3, 3, 1, 2, 6, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 8, 5, 5, 3, 5, 3, 5, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1, 3, 1, 1, 1, 4, 2, 4, 2, 4, 4, 6, 4, 2, 2, 2, 2, 4, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 7, 5, 3, 5, 7, 3, 3, 3, 1, 1, 3, 3, 3, 3, 1, 3, 3, 3, 1, 3, 1, 1, 1, 1, 1, 2, 2, 4, 2, 4, 2, 4, 4, 4, 4, 2, 4, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 8, 5, 7, 5, 5, 7, 3, 3, 5, 3, 3, 3, 1, 1, 3, 3, 1, 3, 3, 1, 3, 1, 1, 1, 1, 1, 2, 6, 4, 2, 4, 4, 6, 6, 4, 2, 2, 4, 4, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-7, 7, 7, 7, 7, 7, 5, 5, 5, 5, 3, 3, 5, 1, 3, 3, 1, 5, 3, 3, 3, 3, 3, 3, 1, 1, 1, 1, 1, 4, 4, 4, 2, 4, 4, 4, 2, 2, 4, 4, 4, 4, 4, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-7, 8, 7, 7, 7, 5, 7, 3, 7, 3, 3, 3, 3, 3, 1, 3, 3, 3, 3, 3, 5, 3, 3, 3, 3, 1, 3, 3, 3, 4, 4, 2, 2, 4, 2, 4, 4, 2, 4, 2, 4, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 5, 7, 5, 3, 7, 3, 5, 3, 3, 3, 3, 3, 3, 1, 3, 1, 3, 3, 1, 1, 1, 1, 1, 1, 1, 2, 4, 2, 4, 4, 4, 6, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-7, 8, 7, 7, 5, 5, 7, 3, 7, 3, 1, 3, 3, 5, 3, 3, 3, 3, 1, 1, 3, 1, 3, 3, 1, 1, 3, 1, 3, 4, 4, 4, 2, 4, 4, 6, 4, 2, 2, 2, 4, 4, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-7, 8, 7, 7, 7, 5, 7, 3, 5, 3, 3, 5, 3, 3, 3, 3, 3, 1, 3, 3, 3, 5, 3, 3, 3, 1, 1, 1, 1, 4, 4, 4, 2, 4, 4, 6, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 7, 5, 3, 3, 7, 3, 3, 3, 3, 3, 3, 5, 1, 3, 1, 1, 3, 1, 3, 1, 3, 1, 1, 1, 3, 2, 4, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 7, 7, 5, 5, 7, 3, 5, 3, 3, 1, 3, 3, 3, 1, 3, 1, 3, 3, 5, 1, 3, 1, 1, 1, 1, 4, 4, 4, 2, 2, 2, 6, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 7, 5, 7, 3, 7, 3, 3, 3, 3, 3, 5, 3, 1, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1, 2, 2, 2, 2, 4, 4, 6, 4, 2, 4, 2, 2, 4, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-7, 8, 7, 7, 7, 7, 5, 5, 7, 3, 3, 3, 5, 5, 3, 3, 1, 3, 1, 3, 3, 5, 3, 1, 3, 1, 1, 3, 3, 4, 2, 4, 2, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-7, 8, 7, 7, 5, 7, 7, 5, 7, 3, 5, 3, 3, 3, 1, 3, 3, 1, 1, 1, 3, 3, 3, 3, 1, 1, 1, 1, 3, 4, 2, 4, 2, 4, 2, 4, 2, 4, 4, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-7, 8, 7, 7, 5, 5, 7, 5, 5, 3, 5, 5, 3, 3, 3, 1, 3, 3, 1, 1, 3, 1, 1, 3, 3, 1, 3, 1, 1, 4, 4, 4, 2, 2, 2, 6, 4, 4, 2, 2, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-7, 8, 7, 7, 5, 7, 7, 3, 7, 3, 3, 5, 3, 3, 3, 3, 3, 3, 1, 1, 3, 3, 1, 5, 1, 1, 1, 1, 3, 4, 4, 4, 4, 4, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 8, 5, 7, 7, 3, 7, 5, 5, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1, 3, 1, 1, 1, 1, 1, 1, 3, 4, 4, 4, 2, 4, 2, 4, 4, 4, 2, 2, 4, 2, 2, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 7, 7, 5, 5, 7, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1, 1, 3, 3, 3, 1, 1, 1, 1, 1, 3, 4, 4, 4, 2, 6, 2, 6, 2, 4, 2, 2, 2, 2, 2, 2, 2, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-7, 8, 7, 7, 7, 7, 7, 7, 7, 3, 5, 3, 3, 3, 3, 3, 3, 3, 1, 3, 3, 3, 3, 1, 1, 1, 1, 1, 1, 2, 4, 4, 2, 4, 4, 6, 4, 2, 2, 2, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 7, 7, 7, 3, 7, 3, 5, 5, 3, 3, 3, 3, 1, 3, 1, 3, 3, 1, 1, 3, 1, 1, 1, 1, 1, 4, 4, 2, 2, 4, 4, 6, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 8, 5, 5, 7, 3, 7, 3, 3, 3, 5, 3, 3, 1, 3, 3, 1, 3, 3, 3, 5, 3, 3, 1, 1, 1, 1, 2, 4, 2, 2, 4, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 7, 7, 7, 5, 7, 3, 3, 3, 1, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1, 3, 1, 1, 3, 1, 2, 2, 2, 2, 4, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-7, 8, 7, 7, 7, 7, 7, 7, 7, 1, 3, 3, 5, 3, 1, 3, 3, 3, 3, 1, 3, 1, 1, 3, 1, 1, 3, 1, 1, 4, 4, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 5, 5, 7, 7, 7, 7, 7, 5, 3, 5, 3, 1, 3, 3, 3, 3, 1, 3, 1, 3, 1, 3, 1, 1, 1, 4, 2, 4, 4, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-7, 8, 7, 7, 7, 7, 7, 7, 8, 5, 7, 3, 3, 3, 3, 3, 1, 5, 1, 1, 3, 3, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 8, 7, 7, 7, 5, 7, 5, 5, 3, 1, 3, 3, 1, 1, 3, 1, 3, 3, 1, 3, 1, 1, 1, 1, 1, 1, 4, 2, 2, 2, 2, 2, 4, 2, 4, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-7, 8, 7, 7, 7, 7, 7, 5, 7, 5, 5, 5, 3, 1, 3, 3, 3, 3, 1, 3, 1, 3, 1, 3, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-7, 8, 7, 7, 5, 7, 7, 7, 7, 1, 5, 3, 3, 3, 3, 3, 1, 3, 3, 3, 3, 1, 1, 1, 3, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 5, 5, 5, 5, 7, 3, 3, 1, 3, 3, 3, 1, 1, 3, 3, 1, 3, 1, 1, 3, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 7, 5, 7, 5, 7, 3, 5, 5, 3, 3, 3, 3, 1, 3, 1, 1, 3, 3, 3, 1, 1, 1, 1, 1, 1, 4, 4, 4, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 5, 3, 5, 5, 5, 5, 5, 3, 3, 3, 3, 3, 1, 3, 3, 3, 3, 1, 5, 1, 3, 1, 1, 1, 1, 3, 1, 4, 2, 4, 4, 2, 2, 2, 4, 2, 2, 4, 2, 2, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0,
-7, 7, 7, 7, 3, 5, 3, 5, 3, 1, 3, 3, 3, 3, 1, 3, 3, 3, 3, 3, 1, 3, 1, 1, 1, 3, 1, 3, 3, 4, 2, 2, 2, 4, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0,
-7, 7, 5, 5, 5, 5, 3, 5, 3, 3, 3, 5, 3, 3, 3, 3, 1, 3, 3, 1, 1, 3, 1, 1, 1, 1, 1, 3, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 5, 5, 5, 5, 3, 5, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1, 3, 3, 1, 1, 1, 1, 1, 1, 1, 3, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 5, 5, 3, 3, 3, 5, 3, 3, 5, 5, 3, 1, 1, 5, 3, 3, 1, 3, 3, 1, 1, 1, 3, 3, 1, 1, 3, 2, 2, 2, 2, 4, 4, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 3, 5, 3, 3, 5, 3, 5, 1, 3, 5, 3, 3, 1, 3, 1, 3, 3, 1, 1, 3, 3, 1, 1, 3, 2, 2, 2, 2, 2, 2, 4, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0,
-9, 8, 7, 5, 5, 3, 5, 5, 5, 3, 5, 5, 3, 5, 5, 1, 3, 3, 5, 3, 3, 3, 1, 1, 1, 3, 3, 3, 3, 4, 2, 2, 4, 2, 4, 2, 4, 2, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 5, 5, 5, 5, 3, 5, 7, 5, 3, 3, 3, 3, 3, 3, 5, 3, 1, 3, 3, 1, 3, 3, 3, 1, 3, 4, 4, 2, 4, 4, 4, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 5, 5, 5, 5, 5, 7, 3, 5, 3, 3, 3, 3, 3, 3, 3, 1, 3, 1, 1, 1, 5, 1, 5, 3, 4, 2, 6, 4, 2, 4, 4, 2, 2, 2, 4, 4, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
-9, 8, 8, 7, 5, 3, 7, 3, 5, 5, 5, 3, 3, 3, 5, 3, 3, 3, 3, 3, 1, 3, 3, 3, 3, 3, 3, 3, 1, 2, 2, 4, 4, 2, 2, 2, 2, 2, 4, 4, 4, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 5, 5, 5, 5, 5, 3, 5, 5, 3, 5, 3, 3, 1, 3, 3, 1, 1, 1, 1, 1, 3, 3, 3, 1, 3, 1, 4, 4, 2, 4, 2, 4, 4, 4, 4, 4, 2, 4, 4, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 5, 3, 5, 3, 3, 5, 5, 3, 5, 3, 5, 3, 5, 5, 3, 3, 3, 3, 3, 1, 3, 1, 1, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 6, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
-8, 7, 5, 5, 7, 3, 3, 3, 5, 5, 5, 3, 3, 5, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1, 3, 1, 3, 1, 2, 2, 4, 4, 4, 6, 4, 4, 2, 4, 4, 2, 4, 4, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 7, 5, 3, 5, 5, 5, 3, 3, 1, 7, 3, 5, 5, 3, 3, 5, 3, 3, 1, 3, 3, 5, 3, 5, 3, 4, 4, 4, 6, 4, 4, 4, 4, 2, 4, 2, 4, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 2, 0, 0, 0,
-8, 8, 7, 7, 7, 7, 5, 5, 3, 3, 5, 5, 3, 7, 7, 3, 3, 3, 3, 5, 3, 5, 1, 3, 3, 5, 3, 7, 1, 6, 4, 4, 6, 4, 6, 6, 6, 2, 6, 2, 2, 2, 2, 4, 2, 4, 2, 2, 2, 2, 2, 2, 0, 2, 2, 0, 0, 0, 0, 0,
-8, 7, 5, 7, 7, 7, 7, 7, 5, 7, 7, 7, 7, 7, 5, 5, 3, 7, 5, 5, 5, 3, 3, 5, 7, 5, 5, 5, 7, 7, 4, 4, 4, 4, 6, 4, 6, 2, 4, 4, 6, 6, 6, 4, 2, 4, 2, 2, 4, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 5, 7, 7, 3, 5, 7, 5, 3, 5, 5, 5, 7, 5, 5, 5, 7, 5, 7, 5, 5, 3, 5, 3, 3, 3, 5, 5, 4, 4, 4, 4, 4, 4, 4, 2, 4, 4, 2, 4, 4, 6, 6, 2, 2, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 7, 5, 5, 7, 7, 5, 7, 7, 7, 5, 5, 5, 5, 7, 3, 5, 5, 5, 3, 5, 7, 7, 5, 7, 5, 6, 7, 6, 6, 6, 2, 4, 6, 4, 4, 2, 6, 6, 6, 6, 2, 4, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 3, 5, 7, 5, 5, 7, 7, 5, 5, 7, 7, 5, 7, 5, 7, 5, 5, 5, 5, 5, 5, 5, 5, 7, 6, 4, 4, 6, 4, 6, 6, 7, 4, 4, 6, 6, 4, 6, 4, 2, 4, 4, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 5, 5, 7, 7, 7, 5, 3, 7, 5, 7, 3, 5, 7, 7, 5, 5, 5, 5, 5, 5, 3, 5, 7, 7, 3, 5, 3, 6, 6, 2, 6, 7, 6, 4, 4, 6, 4, 6, 6, 4, 6, 4, 2, 4, 4, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 5, 7, 7, 7, 5, 5, 5, 7, 7, 7, 5, 5, 5, 5, 3, 7, 7, 7, 7, 5, 5, 5, 5, 5, 5, 7, 5, 6, 6, 2, 6, 6, 6, 6, 6, 4, 4, 6, 6, 6, 6, 4, 2, 2, 6, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 7, 5, 5, 7, 5, 3, 7, 5, 3, 5, 5, 5, 1, 5, 7, 7, 5, 5, 5, 5, 5, 5, 5, 5, 5, 7, 6, 4, 6, 4, 4, 7, 6, 4, 2, 6, 6, 4, 6, 2, 2, 2, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 5, 5, 7, 7, 5, 7, 5, 3, 7, 7, 5, 5, 7, 5, 3, 7, 5, 7, 5, 7, 5, 5, 5, 7, 5, 7, 3, 6, 7, 4, 6, 6, 6, 6, 6, 4, 2, 6, 6, 4, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 5, 7, 7, 7, 5, 7, 7, 3, 7, 7, 5, 3, 5, 5, 3, 7, 7, 7, 5, 5, 5, 5, 5, 7, 5, 7, 5, 6, 6, 2, 4, 4, 6, 6, 6, 4, 4, 4, 6, 2, 6, 2, 2, 2, 2, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 5, 7, 7, 7, 5, 7, 5, 3, 7, 7, 5, 5, 5, 5, 3, 7, 5, 5, 5, 5, 5, 5, 5, 5, 3, 7, 5, 7, 7, 2, 6, 6, 4, 4, 6, 4, 4, 4, 6, 2, 6, 2, 0, 2, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 7, 7, 5, 5, 7, 3, 7, 3, 1, 5, 7, 5, 5, 7, 5, 7, 5, 5, 5, 7, 7, 7, 5, 7, 7, 6, 4, 2, 7, 7, 6, 4, 6, 4, 4, 6, 6, 6, 2, 4, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 7, 7, 5, 5, 5, 3, 7, 5, 5, 7, 5, 5, 3, 7, 3, 7, 5, 5, 5, 7, 5, 5, 5, 7, 5, 7, 4, 4, 4, 4, 4, 6, 6, 4, 2, 6, 2, 2, 6, 2, 0, 4, 6, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 7, 7, 3, 3, 5, 5, 7, 7, 7, 7, 7, 3, 5, 3, 3, 7, 7, 5, 5, 7, 5, 7, 5, 5, 5, 7, 6, 4, 6, 7, 4, 6, 6, 4, 4, 6, 4, 4, 4, 2, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 7, 7, 5, 7, 3, 3, 7, 7, 3, 7, 5, 3, 5, 3, 3, 7, 7, 5, 5, 7, 5, 7, 7, 7, 7, 6, 6, 4, 6, 6, 4, 6, 4, 2, 4, 6, 6, 4, 2, 2, 0, 4, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 7, 7, 3, 7, 3, 5, 7, 3, 5, 5, 5, 5, 5, 5, 5, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 6, 2, 4, 7, 4, 4, 4, 4, 4, 6, 4, 2, 4, 2, 0, 4, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 5, 7, 3, 7, 5, 5, 7, 7, 7, 7, 5, 3, 7, 7, 5, 7, 5, 7, 5, 7, 5, 7, 7, 7, 5, 6, 6, 2, 4, 6, 4, 6, 4, 4, 6, 6, 4, 2, 2, 2, 0, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 7, 3, 5, 7, 3, 7, 3, 5, 7, 7, 5, 5, 7, 3, 5, 5, 7, 7, 5, 7, 7, 7, 7, 5, 6, 6, 4, 6, 6, 2, 4, 4, 4, 6, 6, 2, 2, 2, 2, 0, 6, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 7, 7, 7, 5, 3, 3, 5, 5, 5, 7, 5, 5, 5, 7, 5, 7, 5, 7, 7, 5, 5, 5, 5, 5, 7, 7, 6, 4, 6, 6, 2, 6, 4, 4, 4, 6, 4, 2, 2, 2, 0, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 5, 7, 7, 7, 5, 5, 3, 7, 7, 5, 5, 5, 7, 5, 5, 5, 3, 7, 7, 7, 5, 5, 7, 7, 7, 5, 5, 6, 6, 4, 7, 6, 2, 4, 4, 4, 4, 4, 6, 2, 2, 2, 2, 6, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 8, 7, 7, 7, 7, 5, 7, 5, 7, 5, 7, 7, 5, 5, 5, 7, 5, 7, 3, 5, 7, 3, 5, 5, 7, 7, 5, 6, 6, 2, 6, 6, 2, 4, 6, 2, 4, 4, 4, 4, 2, 2, 0, 2, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 5, 7, 7, 7, 7, 5, 7, 5, 7, 5, 5, 7, 7, 5, 5, 3, 3, 7, 5, 5, 7, 5, 5, 7, 5, 5, 5, 6, 4, 2, 4, 6, 4, 6, 6, 2, 4, 4, 6, 2, 2, 2, 0, 6, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 7, 7, 5, 7, 5, 3, 7, 3, 3, 7, 7, 3, 5, 5, 5, 5, 5, 5, 7, 3, 5, 7, 3, 5, 7, 6, 4, 2, 6, 6, 2, 6, 4, 2, 4, 2, 4, 2, 2, 2, 0, 6, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 5, 5, 7, 5, 5, 5, 7, 3, 3, 7, 5, 3, 3, 5, 3, 5, 3, 3, 3, 3, 3, 1, 3, 3, 3, 4, 2, 2, 2, 4, 2, 2, 2, 2, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 5, 3, 3, 5, 5, 3, 1, 3, 3, 3, 3, 3, 1, 3, 3, 3, 3, 3, 3, 3, 5, 1, 3, 1, 4, 2, 6, 4, 4, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 4, 2, 2, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 5, 3, 5, 5, 3, 3, 3, 3, 3, 3, 3, 3, 1, 3, 7, 3, 3, 3, 1, 3, 3, 3, 3, 3, 1, 4, 4, 4, 4, 4, 4, 2, 4, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 5, 5, 7, 3, 5, 3, 5, 1, 5, 1, 3, 3, 3, 3, 1, 3, 3, 5, 3, 1, 1, 3, 3, 3, 1, 6, 4, 4, 4, 6, 4, 6, 6, 2, 4, 4, 2, 2, 4, 4, 2, 4, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-8, 5, 7, 5, 5, 5, 5, 5, 5, 3, 3, 3, 3, 3, 1, 3, 3, 3, 3, 1, 3, 1, 3, 3, 3, 5, 3, 3, 3, 6, 4, 4, 4, 4, 4, 4, 2, 2, 4, 4, 2, 2, 2, 2, 2, 6, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 3, 5, 5, 5, 3, 3, 3, 3, 5, 3, 3, 3, 3, 3, 3, 3, 1, 3, 3, 1, 3, 3, 3, 1, 1, 4, 2, 4, 2, 6, 4, 2, 4, 2, 2, 4, 4, 2, 2, 2, 2, 6, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 3, 5, 3, 5, 5, 5, 3, 3, 5, 5, 5, 1, 5, 5, 3, 3, 3, 5, 3, 1, 3, 7, 3, 3, 5, 6, 2, 6, 4, 4, 6, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 6, 0, 2, 0, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 5, 7, 7, 7, 3, 5, 3, 3, 5, 3, 3, 1, 3, 3, 3, 1, 3, 3, 1, 1, 3, 3, 3, 3, 1, 6, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 7, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 5, 7, 7, 7, 5, 5, 3, 3, 5, 5, 3, 3, 3, 3, 3, 1, 1, 3, 1, 1, 1, 3, 1, 1, 1, 6, 2, 4, 4, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 0, 6, 2, 0, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 5, 7, 5, 7, 3, 3, 3, 3, 7, 3, 3, 1, 3, 3, 3, 3, 1, 3, 1, 1, 1, 7, 1, 3, 1, 6, 2, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 7, 0, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
-9, 7, 5, 5, 5, 7, 5, 7, 5, 3, 3, 1, 7, 3, 3, 3, 3, 3, 3, 3, 3, 1, 1, 3, 1, 5, 1, 1, 1, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 7, 0, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 5, 7, 7, 5, 3, 5, 3, 3, 5, 3, 3, 3, 1, 5, 1, 3, 1, 1, 1, 1, 1, 5, 1, 1, 1, 4, 2, 2, 2, 4, 4, 2, 2, 2, 2, 0, 2, 0, 2, 2, 2, 6, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 3, 7, 5, 5, 5, 3, 5, 5, 3, 3, 3, 3, 3, 3, 5, 3, 3, 3, 3, 5, 5, 1, 1, 3, 3, 4, 4, 4, 4, 4, 2, 4, 2, 4, 2, 4, 2, 2, 2, 2, 2, 4, 0, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 5, 5, 7, 7, 7, 3, 3, 5, 3, 3, 3, 5, 1, 1, 3, 5, 1, 3, 5, 1, 1, 3, 3, 1, 1, 3, 6, 2, 4, 4, 4, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 6, 2, 2, 2, 2, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 5, 7, 5, 5, 3, 3, 5, 3, 1, 1, 3, 3, 3, 3, 5, 3, 1, 1, 1, 3, 3, 3, 3, 1, 1, 2, 2, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 7, 2, 0, 2, 2, 0, 2, 0, 2, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 7, 7, 7, 7, 5, 5, 5, 3, 5, 1, 5, 3, 3, 1, 3, 1, 1, 3, 1, 3, 1, 3, 1, 1, 3, 4, 4, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 7, 2, 2, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 5, 7, 7, 5, 5, 3, 5, 3, 5, 1, 3, 3, 3, 3, 3, 5, 1, 1, 3, 1, 3, 1, 5, 3, 3, 1, 4, 2, 4, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 6, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 7, 5, 5, 3, 5, 3, 3, 5, 1, 1, 3, 3, 3, 1, 3, 3, 1, 3, 1, 1, 1, 3, 1, 1, 1, 4, 2, 4, 6, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 5, 7, 5, 5, 3, 3, 3, 5, 3, 3, 1, 5, 3, 1, 3, 5, 3, 1, 3, 3, 3, 3, 5, 3, 1, 1, 6, 2, 4, 4, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 6, 2, 2, 0, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 5, 7, 5, 5, 3, 3, 5, 3, 5, 3, 1, 3, 3, 1, 3, 3, 3, 3, 5, 1, 1, 3, 3, 1, 3, 3, 2, 2, 2, 4, 2, 4, 2, 2, 2, 4, 2, 2, 4, 2, 2, 2, 6, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 7, 7, 7, 5, 5, 5, 5, 3, 3, 3, 5, 3, 3, 3, 1, 1, 3, 3, 3, 3, 5, 3, 3, 1, 3, 6, 2, 4, 4, 2, 2, 4, 2, 2, 4, 2, 2, 4, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 5, 5, 5, 5, 3, 5, 3, 3, 1, 3, 5, 3, 3, 3, 3, 3, 1, 3, 1, 3, 1, 1, 3, 3, 3, 4, 2, 2, 4, 2, 4, 2, 4, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 4, 2, 2, 2, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 5, 5, 5, 5, 5, 7, 5, 5, 3, 3, 3, 3, 3, 3, 1, 5, 3, 3, 3, 1, 3, 1, 1, 3, 3, 3, 2, 2, 2, 2, 4, 4, 4, 4, 2, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 5, 5, 5, 5, 3, 5, 5, 3, 7, 3, 5, 3, 3, 3, 3, 3, 3, 3, 1, 3, 3, 3, 1, 3, 1, 6, 2, 4, 4, 4, 4, 4, 4, 2, 2, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 5, 5, 5, 3, 3, 5, 5, 5, 5, 3, 5, 1, 3, 3, 5, 3, 1, 3, 1, 3, 3, 5, 3, 5, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 2, 2, 2, 2, 2, 6, 2, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 5, 5, 5, 5, 3, 5, 5, 3, 5, 3, 5, 1, 3, 3, 3, 3, 3, 3, 1, 1, 3, 1, 1, 1, 1, 6, 2, 4, 2, 4, 4, 4, 4, 4, 2, 4, 4, 2, 2, 4, 2, 6, 2, 2, 2, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 5, 3, 5, 5, 5, 3, 5, 5, 1, 5, 3, 3, 1, 3, 3, 3, 1, 3, 1, 1, 3, 3, 1, 3, 1, 2, 4, 4, 2, 2, 6, 4, 4, 2, 2, 4, 4, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
-8, 7, 5, 5, 5, 5, 3, 5, 5, 5, 5, 1, 3, 3, 3, 5, 3, 3, 5, 3, 3, 5, 3, 1, 3, 5, 1, 3, 3, 6, 2, 4, 2, 2, 4, 4, 2, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 4, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 7, 5, 5, 7, 3, 5, 5, 3, 5, 3, 3, 1, 3, 1, 5, 1, 3, 3, 3, 1, 3, 5, 3, 3, 1, 4, 4, 4, 4, 4, 4, 4, 6, 2, 4, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 5, 7, 7, 5, 3, 7, 5, 5, 5, 1, 7, 3, 5, 1, 1, 3, 5, 3, 1, 3, 1, 3, 1, 7, 1, 3, 3, 4, 4, 4, 4, 4, 4, 2, 4, 2, 4, 2, 4, 2, 2, 2, 2, 6, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
-8, 7, 5, 5, 7, 5, 3, 7, 3, 5, 3, 3, 5, 3, 3, 1, 1, 3, 3, 3, 1, 3, 3, 1, 3, 7, 3, 1, 5, 4, 4, 4, 2, 4, 4, 2, 4, 2, 4, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 5, 5, 3, 5, 5, 3, 5, 7, 3, 5, 3, 5, 1, 3, 3, 5, 3, 1, 1, 1, 1, 1, 7, 3, 3, 1, 6, 2, 2, 4, 2, 4, 2, 4, 4, 2, 2, 2, 4, 2, 2, 2, 6, 2, 2, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 5, 7, 7, 7, 7, 7, 3, 5, 3, 5, 3, 1, 3, 3, 5, 3, 3, 1, 1, 1, 1, 5, 1, 1, 1, 4, 4, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 0, 0, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 5, 7, 7, 7, 7, 5, 5, 7, 3, 5, 3, 1, 3, 3, 7, 1, 3, 1, 1, 3, 3, 5, 1, 3, 1, 4, 2, 2, 2, 4, 2, 4, 4, 2, 2, 2, 4, 2, 2, 2, 2, 7, 2, 2, 0, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 7, 7, 7, 7, 5, 5, 5, 5, 3, 3, 3, 3, 1, 3, 5, 5, 1, 3, 1, 1, 3, 7, 1, 1, 1, 6, 2, 6, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 6, 0, 2, 0, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
-8, 7, 8, 7, 7, 7, 7, 7, 5, 5, 3, 5, 3, 3, 3, 3, 3, 3, 5, 1, 1, 3, 1, 3, 3, 5, 1, 1, 1, 4, 2, 4, 4, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 6, 2, 2, 2, 0, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 7, 7, 7, 5, 7, 7, 7, 3, 5, 3, 3, 1, 3, 7, 3, 1, 1, 1, 1, 1, 5, 1, 1, 1, 4, 2, 4, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 6, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 5, 7, 7, 7, 3, 5, 3, 5, 3, 3, 3, 1, 3, 3, 7, 3, 1, 3, 3, 3, 3, 3, 3, 3, 3, 6, 2, 4, 2, 4, 4, 2, 2, 2, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 5, 7, 7, 7, 3, 3, 3, 5, 3, 3, 3, 3, 3, 3, 3, 3, 1, 3, 3, 3, 3, 5, 3, 5, 3, 6, 4, 4, 4, 4, 4, 4, 4, 2, 2, 4, 4, 4, 2, 2, 2, 6, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 5, 7, 7, 7, 5, 5, 7, 5, 3, 3, 5, 5, 5, 3, 5, 3, 3, 3, 1, 3, 3, 3, 1, 1, 3, 4, 2, 4, 2, 2, 2, 4, 4, 2, 2, 4, 2, 2, 2, 2, 2, 6, 2, 2, 0, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 7, 7, 5, 7, 7, 7, 7, 5, 3, 1, 3, 1, 3, 3, 5, 1, 3, 3, 1, 3, 3, 5, 1, 1, 1, 4, 4, 4, 2, 2, 6, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 7, 2, 2, 2, 2, 0, 2, 0, 2, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 5, 7, 7, 7, 5, 5, 5, 5, 3, 1, 1, 1, 1, 3, 3, 3, 3, 3, 1, 3, 7, 3, 1, 1, 3, 4, 2, 4, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 6, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 5, 5, 5, 5, 5, 5, 5, 5, 3, 5, 5, 3, 3, 3, 3, 3, 1, 3, 3, 3, 5, 5, 3, 3, 3, 6, 4, 4, 4, 4, 4, 2, 4, 4, 6, 2, 6, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
-7, 7, 7, 7, 5, 5, 3, 3, 5, 3, 5, 3, 3, 3, 3, 3, 3, 3, 5, 3, 1, 3, 1, 3, 1, 5, 1, 3, 1, 4, 2, 4, 4, 4, 4, 2, 2, 2, 4, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 3, 5, 3, 5, 5, 5, 3, 1, 5, 5, 3, 3, 3, 3, 5, 3, 1, 5, 1, 3, 3, 3, 3, 3, 1, 6, 4, 4, 4, 4, 4, 4, 4, 2, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 5, 5, 5, 5, 5, 5, 5, 5, 3, 7, 3, 3, 5, 1, 3, 3, 3, 1, 3, 1, 3, 1, 3, 3, 3, 3, 6, 4, 4, 4, 4, 4, 2, 4, 4, 4, 4, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 5, 5, 7, 5, 5, 3, 5, 5, 3, 7, 5, 3, 3, 3, 3, 3, 3, 1, 3, 1, 1, 3, 5, 3, 3, 1, 6, 2, 4, 2, 4, 6, 4, 4, 4, 4, 4, 2, 4, 2, 2, 2, 2, 2, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 7, 7, 5, 5, 5, 3, 3, 1, 7, 3, 3, 3, 1, 3, 5, 3, 1, 3, 1, 1, 3, 3, 3, 1, 1, 6, 2, 4, 4, 4, 6, 2, 6, 2, 6, 2, 2, 4, 2, 2, 2, 6, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 7, 7, 5, 5, 5, 3, 5, 3, 7, 3, 3, 3, 3, 5, 1, 3, 3, 3, 3, 3, 3, 3, 1, 3, 3, 4, 2, 2, 2, 2, 2, 2, 4, 4, 2, 4, 2, 2, 2, 4, 2, 2, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 5, 5, 5, 7, 5, 3, 5, 3, 7, 3, 3, 3, 3, 3, 3, 3, 1, 3, 1, 1, 1, 5, 1, 3, 1, 4, 2, 2, 2, 4, 4, 2, 4, 2, 4, 2, 4, 2, 2, 2, 2, 6, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 5, 7, 5, 5, 5, 5, 5, 1, 7, 3, 3, 3, 3, 3, 5, 3, 3, 3, 3, 3, 3, 5, 1, 1, 3, 6, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 6, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 7, 7, 5, 7, 5, 3, 5, 3, 7, 3, 3, 1, 3, 3, 1, 3, 1, 1, 1, 1, 1, 1, 1, 3, 1, 4, 2, 4, 4, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 7, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 5, 7, 7, 5, 7, 5, 3, 5, 3, 7, 3, 3, 3, 3, 1, 3, 1, 3, 1, 1, 1, 1, 5, 1, 3, 1, 6, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 6, 0, 0, 2, 0, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-9, 9, 7, 7, 7, 5, 3, 7, 3, 3, 5, 1, 5, 3, 3, 3, 1, 3, 3, 1, 3, 3, 1, 1, 1, 3, 3, 1, 1, 4, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 0, 2, 2, 2, 2, 7, 2, 2, 0, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 7, 5, 3, 5, 5, 5, 5, 5, 3, 3, 3, 1, 3, 5, 3, 5, 1, 5, 3, 1, 5, 3, 3, 3, 3, 4, 4, 4, 4, 2, 4, 4, 4, 2, 2, 2, 2, 4, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 5, 5, 3, 5, 5, 3, 3, 3, 1, 3, 5, 3, 3, 3, 7, 5, 5, 5, 1, 3, 3, 5, 3, 3, 3, 4, 4, 4, 4, 4, 2, 2, 4, 2, 2, 4, 2, 2, 2, 2, 2, 6, 2, 0, 2, 2, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 5, 5, 3, 5, 5, 7, 3, 3, 3, 3, 3, 3, 1, 3, 3, 7, 1, 3, 3, 1, 1, 1, 7, 1, 3, 1, 4, 2, 4, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 0, 2, 2, 7, 2, 2, 0, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 5, 5, 7, 5, 5, 5, 3, 3, 3, 3, 3, 3, 5, 3, 5, 3, 3, 3, 1, 1, 1, 3, 1, 1, 1, 4, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 6, 2, 2, 2, 2, 2, 0, 2, 2, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 5, 3, 3, 3, 7, 3, 5, 3, 1, 1, 5, 3, 1, 3, 3, 3, 1, 3, 1, 3, 3, 3, 5, 3, 3, 6, 2, 4, 4, 2, 4, 2, 4, 4, 4, 4, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 5, 7, 5, 5, 7, 1, 3, 3, 1, 3, 3, 3, 1, 3, 5, 1, 1, 3, 1, 3, 1, 3, 3, 3, 3, 4, 4, 6, 4, 2, 2, 4, 4, 4, 4, 4, 2, 4, 2, 2, 2, 4, 2, 2, 2, 0, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 5, 5, 5, 7, 5, 7, 5, 5, 3, 1, 1, 3, 1, 3, 5, 7, 3, 3, 5, 3, 3, 3, 5, 3, 5, 5, 6, 6, 4, 2, 2, 6, 2, 4, 2, 2, 4, 2, 2, 2, 2, 2, 6, 2, 2, 2, 0, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0,
-7, 7, 7, 5, 5, 5, 5, 5, 5, 5, 5, 3, 5, 1, 3, 1, 3, 5, 5, 1, 1, 5, 1, 1, 1, 3, 3, 3, 3, 4, 2, 4, 4, 2, 4, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 7, 2, 0, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 5, 5, 3, 5, 5, 5, 3, 3, 5, 1, 3, 3, 3, 3, 5, 3, 3, 3, 1, 1, 1, 3, 1, 1, 1, 4, 2, 4, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 6, 0, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-9, 9, 7, 5, 5, 5, 3, 5, 3, 5, 5, 3, 1, 5, 5, 3, 3, 3, 5, 3, 1, 3, 3, 1, 3, 3, 3, 1, 3, 4, 2, 4, 4, 4, 4, 4, 4, 2, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 5, 7, 5, 5, 3, 5, 5, 3, 5, 5, 3, 3, 3, 1, 5, 1, 1, 3, 1, 1, 1, 3, 5, 3, 3, 4, 2, 6, 4, 6, 6, 4, 4, 2, 2, 4, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 5, 5, 5, 5, 3, 5, 5, 3, 3, 5, 5, 5, 5, 3, 3, 3, 3, 3, 3, 1, 3, 3, 3, 3, 3, 3, 4, 2, 4, 4, 4, 6, 4, 4, 2, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 4, 2, 2, 0, 0, 0, 0, 0, 0,
-7, 7, 7, 7, 7, 7, 5, 3, 5, 5, 5, 3, 5, 3, 3, 3, 1, 3, 3, 3, 3, 3, 3, 3, 3, 5, 5, 5, 1, 6, 4, 4, 4, 4, 2, 2, 4, 2, 2, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 7, 7, 3, 5, 3, 5, 5, 3, 7, 3, 3, 3, 3, 3, 3, 3, 1, 3, 1, 3, 3, 3, 3, 3, 1, 4, 2, 4, 2, 4, 4, 4, 4, 2, 4, 4, 4, 2, 2, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 7, 7, 7, 5, 5, 3, 5, 3, 5, 3, 3, 1, 3, 3, 3, 1, 3, 3, 1, 3, 1, 3, 3, 3, 3, 4, 4, 4, 2, 4, 4, 2, 6, 2, 2, 2, 6, 2, 2, 2, 2, 4, 2, 2, 2, 2, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 7, 7, 5, 7, 5, 5, 5, 3, 5, 3, 3, 1, 3, 1, 3, 3, 1, 1, 3, 1, 3, 3, 3, 5, 3, 6, 4, 4, 2, 4, 4, 2, 4, 2, 4, 4, 2, 2, 2, 2, 0, 6, 0, 2, 2, 0, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 5, 5, 5, 7, 5, 5, 5, 5, 5, 3, 7, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1, 1, 3, 1, 3, 1, 4, 2, 4, 4, 4, 4, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 5, 5, 7, 7, 5, 7, 7, 5, 5, 1, 5, 1, 5, 3, 1, 1, 3, 3, 3, 3, 1, 1, 1, 5, 1, 3, 3, 4, 2, 2, 4, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 7, 0, 2, 2, 0, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 5, 7, 5, 5, 5, 5, 3, 3, 3, 3, 5, 5, 3, 3, 3, 3, 1, 3, 3, 1, 1, 5, 1, 1, 1, 4, 2, 4, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 7, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 7, 5, 3, 5, 5, 3, 1, 5, 3, 3, 3, 3, 1, 3, 3, 3, 3, 1, 1, 3, 3, 3, 3, 1, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 7, 2, 2, 2, 2, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 8, 7, 5, 7, 5, 3, 5, 5, 5, 5, 3, 3, 5, 1, 3, 3, 3, 3, 3, 3, 1, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 2, 6, 2, 2, 4, 4, 4, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
-8, 7, 5, 7, 7, 7, 5, 5, 5, 5, 5, 1, 3, 1, 3, 3, 3, 5, 7, 5, 3, 3, 5, 3, 1, 5, 3, 5, 5, 4, 2, 4, 4, 4, 4, 4, 6, 2, 2, 2, 4, 2, 2, 2, 0, 4, 0, 2, 2, 0, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 5, 7, 5, 3, 5, 1, 5, 1, 3, 1, 3, 3, 3, 3, 7, 3, 3, 3, 1, 3, 3, 3, 3, 3, 1, 4, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 6, 2, 2, 2, 2, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 7, 7, 5, 5, 3, 5, 3, 3, 3, 3, 3, 1, 3, 1, 5, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 4, 2, 4, 4, 4, 4, 4, 2, 2, 2, 2, 2, 2, 0, 2, 2, 7, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 5, 5, 7, 5, 3, 5, 3, 3, 3, 3, 3, 3, 1, 3, 1, 3, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 6, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 7, 7, 5, 3, 5, 5, 3, 3, 3, 5, 3, 3, 3, 5, 3, 1, 3, 3, 3, 3, 3, 1, 3, 3, 4, 4, 4, 4, 4, 4, 4, 2, 2, 2, 4, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
-7, 7, 7, 7, 7, 7, 7, 7, 3, 7, 7, 5, 3, 3, 3, 3, 3, 5, 5, 1, 3, 3, 1, 1, 3, 3, 1, 3, 3, 6, 2, 4, 4, 4, 4, 4, 4, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 7, 7, 7, 7, 5, 7, 5, 5, 5, 3, 1, 5, 1, 5, 5, 3, 1, 5, 1, 1, 3, 5, 1, 3, 1, 4, 2, 4, 4, 4, 2, 2, 4, 4, 4, 4, 2, 2, 2, 2, 2, 6, 2, 2, 0, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 7, 7, 5, 5, 5, 7, 3, 7, 7, 3, 3, 1, 3, 3, 5, 3, 1, 3, 1, 3, 1, 5, 3, 3, 3, 4, 2, 4, 2, 4, 4, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 6, 2, 0, 0, 0, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 8, 7, 7, 7, 7, 7, 5, 7, 5, 5, 7, 1, 3, 3, 3, 5, 3, 3, 1, 5, 1, 3, 1, 7, 3, 3, 1, 4, 2, 2, 2, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 7, 0, 2, 0, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 3, 5, 5, 5, 3, 3, 5, 3, 3, 3, 3, 5, 5, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 6, 4, 4, 4, 2, 4, 2, 4, 4, 2, 2, 6, 2, 2, 4, 2, 2, 2, 2, 2, 4, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 5, 5, 5, 3, 5, 3, 3, 3, 3, 3, 3, 3, 5, 3, 3, 3, 3, 3, 1, 7, 1, 3, 3, 3, 1, 4, 2, 4, 2, 4, 4, 2, 4, 2, 2, 4, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-7, 7, 7, 7, 5, 7, 7, 5, 3, 5, 5, 3, 3, 5, 5, 3, 1, 3, 3, 3, 3, 3, 1, 5, 3, 3, 3, 5, 1, 6, 4, 4, 4, 4, 6, 2, 4, 4, 4, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 5, 7, 5, 5, 5, 5, 3, 3, 3, 3, 5, 3, 3, 3, 3, 1, 3, 3, 1, 3, 1, 5, 3, 1, 3, 4, 4, 2, 4, 4, 6, 2, 4, 2, 2, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 5, 7, 5, 5, 5, 3, 3, 5, 3, 3, 5, 1, 3, 3, 5, 5, 3, 1, 3, 3, 3, 3, 3, 5, 5, 3, 4, 2, 6, 2, 4, 4, 4, 2, 2, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 5, 5, 5, 3, 3, 5, 3, 3, 7, 3, 3, 3, 3, 3, 3, 1, 1, 3, 1, 3, 1, 7, 3, 1, 3, 6, 2, 4, 4, 4, 4, 4, 4, 2, 2, 4, 4, 4, 2, 2, 2, 4, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 7, 5, 7, 5, 5, 3, 3, 3, 3, 3, 3, 1, 3, 5, 1, 3, 1, 5, 1, 3, 1, 5, 1, 3, 1, 4, 2, 2, 4, 4, 4, 2, 4, 2, 4, 2, 2, 2, 2, 2, 2, 6, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 5, 7, 7, 7, 3, 7, 3, 3, 3, 5, 3, 5, 3, 1, 5, 3, 5, 3, 3, 1, 3, 1, 3, 3, 3, 3, 3, 1, 4, 2, 2, 4, 4, 2, 4, 4, 2, 2, 2, 2, 2, 2, 2, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 5, 7, 3, 5, 5, 5, 5, 3, 1, 5, 3, 3, 1, 3, 3, 3, 3, 3, 3, 1, 1, 3, 5, 1, 3, 3, 4, 2, 4, 4, 4, 4, 2, 4, 2, 2, 4, 2, 2, 2, 2, 2, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 5, 7, 7, 7, 7, 5, 7, 5, 5, 5, 3, 3, 3, 3, 3, 3, 1, 3, 1, 3, 3, 1, 1, 1, 5, 1, 3, 1, 4, 2, 4, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 6, 2, 2, 0, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 7, 7, 7, 7, 5, 5, 5, 3, 3, 3, 3, 3, 1, 3, 3, 3, 1, 3, 1, 3, 1, 5, 1, 1, 1, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 7, 2, 0, 0, 2, 0, 2, 2, 2, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 5, 5, 5, 7, 5, 5, 3, 5, 3, 1, 5, 3, 3, 1, 3, 3, 3, 1, 3, 1, 3, 1, 7, 1, 1, 1, 6, 2, 4, 4, 2, 4, 2, 2, 2, 2, 2, 2, 0, 2, 0, 0, 6, 2, 2, 2, 0, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 8, 7, 5, 5, 7, 5, 3, 3, 7, 3, 1, 3, 3, 3, 3, 3, 3, 3, 1, 3, 3, 1, 3, 3, 5, 1, 3, 4, 4, 6, 4, 4, 4, 4, 4, 2, 4, 4, 4, 4, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 7, 5, 5, 7, 5, 3, 7, 3, 3, 3, 3, 3, 1, 3, 3, 3, 1, 1, 1, 5, 1, 3, 3, 5, 3, 4, 4, 4, 6, 4, 4, 2, 4, 4, 4, 2, 4, 2, 2, 2, 2, 4, 0, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 7, 7, 5, 5, 5, 5, 3, 3, 3, 3, 3, 3, 3, 3, 5, 3, 3, 5, 1, 3, 3, 5, 3, 3, 3, 6, 2, 4, 4, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 6, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 7, 5, 7, 7, 5, 5, 3, 3, 3, 3, 3, 3, 1, 3, 5, 3, 1, 3, 1, 1, 3, 5, 3, 1, 3, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 7, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 7, 3, 5, 5, 3, 3, 3, 3, 5, 3, 5, 3, 1, 3, 5, 3, 3, 5, 3, 3, 3, 3, 1, 1, 3, 4, 4, 4, 4, 4, 4, 4, 4, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 8, 7, 7, 7, 5, 5, 3, 3, 5, 3, 1, 1, 3, 3, 5, 3, 5, 3, 3, 3, 5, 3, 3, 3, 1, 3, 1, 2, 2, 4, 4, 2, 4, 4, 4, 2, 2, 6, 2, 4, 2, 2, 2, 4, 0, 2, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 5, 5, 5, 3, 5, 5, 5, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1, 3, 3, 3, 1, 3, 3, 4, 4, 6, 4, 2, 4, 2, 4, 2, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 7, 5, 3, 5, 5, 5, 5, 3, 3, 1, 3, 3, 3, 3, 5, 3, 3, 5, 1, 3, 3, 3, 3, 5, 3, 6, 2, 4, 6, 4, 4, 4, 2, 2, 2, 4, 2, 2, 2, 2, 2, 4, 2, 0, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 3, 5, 5, 5, 5, 5, 3, 3, 3, 3, 3, 3, 3, 5, 3, 3, 3, 1, 3, 1, 3, 3, 3, 1, 2, 2, 4, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 6, 2, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 5, 5, 3, 5, 5, 5, 3, 5, 3, 5, 5, 3, 3, 5, 3, 1, 3, 1, 1, 1, 1, 3, 3, 3, 4, 2, 6, 4, 4, 2, 4, 4, 4, 2, 4, 4, 2, 4, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 5, 7, 3, 5, 3, 5, 3, 5, 3, 3, 5, 5, 3, 3, 3, 5, 3, 3, 7, 1, 3, 1, 5, 3, 3, 1, 4, 2, 4, 4, 2, 4, 4, 4, 4, 4, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 5, 5, 5, 3, 3, 5, 5, 3, 5, 3, 1, 3, 3, 3, 3, 3, 3, 3, 1, 3, 3, 5, 3, 3, 3, 6, 2, 6, 4, 4, 6, 4, 4, 2, 4, 4, 2, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 7, 5, 3, 5, 3, 3, 3, 1, 3, 3, 5, 3, 3, 1, 5, 3, 1, 3, 1, 1, 1, 5, 3, 5, 3, 6, 4, 4, 4, 6, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 8, 7, 5, 5, 5, 5, 3, 5, 5, 3, 3, 3, 3, 3, 1, 1, 5, 3, 1, 5, 1, 1, 1, 5, 1, 3, 1, 4, 2, 4, 4, 4, 4, 2, 4, 2, 2, 4, 2, 2, 2, 2, 2, 4, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 5, 5, 5, 5, 5, 5, 3, 3, 3, 3, 5, 3, 1, 3, 3, 3, 3, 3, 1, 1, 3, 1, 3, 1, 3, 3, 4, 2, 2, 4, 4, 4, 4, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 5, 5, 3, 3, 3, 3, 5, 3, 3, 5, 7, 3, 5, 3, 3, 3, 3, 3, 1, 1, 3, 3, 5, 1, 5, 1, 4, 2, 4, 2, 2, 4, 2, 4, 2, 2, 4, 6, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 4, 2, 2, 2, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 5, 5, 5, 7, 7, 7, 3, 5, 5, 3, 3, 5, 3, 5, 3, 3, 3, 3, 1, 3, 3, 1, 3, 1, 4, 2, 4, 4, 4, 4, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 7, 5, 5, 7, 3, 7, 5, 3, 7, 5, 3, 3, 3, 3, 5, 3, 3, 3, 3, 1, 1, 5, 3, 1, 3, 6, 2, 6, 4, 4, 6, 4, 4, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 5, 7, 7, 3, 5, 3, 3, 7, 7, 3, 3, 3, 3, 5, 3, 3, 3, 1, 1, 3, 3, 3, 3, 1, 6, 4, 4, 2, 4, 4, 2, 6, 2, 4, 2, 4, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 5, 5, 5, 5, 5, 3, 7, 7, 3, 7, 3, 3, 3, 3, 3, 5, 1, 1, 3, 3, 1, 1, 3, 1, 3, 1, 6, 2, 4, 2, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 0, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 5, 5, 7, 5, 5, 5, 3, 1, 5, 3, 1, 3, 3, 5, 3, 5, 1, 3, 3, 3, 3, 3, 1, 3, 3, 6, 4, 4, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 5, 7, 8, 3, 5, 3, 7, 5, 7, 1, 5, 5, 3, 3, 3, 3, 3, 3, 1, 3, 3, 3, 3, 1, 3, 6, 2, 4, 2, 2, 4, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 6, 2, 2, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 7, 7, 7, 5, 7, 5, 7, 5, 7, 3, 5, 5, 3, 3, 5, 1, 1, 1, 1, 1, 1, 3, 1, 3, 1, 4, 2, 4, 2, 2, 4, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 6, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 5, 7, 7, 7, 3, 5, 7, 5, 1, 3, 3, 7, 1, 3, 3, 3, 1, 3, 1, 1, 3, 3, 3, 1, 1, 6, 2, 2, 2, 4, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 7, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 8, 7, 7, 8, 7, 5, 5, 5, 7, 7, 3, 3, 5, 7, 3, 1, 3, 3, 1, 3, 1, 1, 1, 3, 1, 3, 3, 6, 2, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 7, 0, 2, 0, 2, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 8, 7, 5, 7, 7, 7, 1, 5, 7, 7, 5, 3, 5, 7, 1, 3, 1, 3, 1, 3, 1, 1, 1, 3, 1, 1, 3, 4, 2, 2, 4, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 7, 0, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 8, 7, 7, 7, 7, 5, 5, 5, 7, 3, 3, 5, 3, 1, 3, 3, 3, 3, 3, 3, 1, 3, 5, 5, 3, 3, 3, 4, 2, 4, 4, 2, 4, 2, 4, 2, 4, 4, 4, 2, 2, 4, 2, 4, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 8, 7, 5, 3, 3, 7, 7, 3, 5, 5, 7, 3, 3, 3, 3, 3, 5, 3, 3, 5, 5, 5, 3, 1, 4, 4, 4, 4, 2, 4, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 7, 7, 7, 5, 5, 7, 7, 5, 3, 5, 5, 3, 3, 3, 3, 1, 3, 1, 3, 3, 3, 3, 3, 1, 4, 2, 2, 4, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 6, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
-7, 7, 7, 7, 5, 8, 7, 7, 7, 5, 7, 7, 3, 3, 5, 7, 1, 3, 1, 3, 3, 3, 1, 1, 1, 5, 1, 3, 1, 4, 2, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 2, 2, 7, 0, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 5, 7, 7, 5, 3, 5, 7, 7, 1, 3, 3, 5, 1, 1, 1, 1, 3, 3, 1, 1, 3, 3, 1, 3, 3, 4, 2, 4, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 7, 2, 2, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0,
-9, 8, 8, 5, 5, 5, 5, 3, 3, 3, 3, 3, 3, 3, 3, 5, 3, 3, 3, 3, 1, 3, 3, 1, 3, 3, 3, 3, 1, 4, 4, 4, 4, 4, 2, 4, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 4, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 5, 7, 7, 3, 3, 5, 5, 3, 3, 3, 3, 3, 1, 5, 5, 3, 3, 5, 3, 3, 1, 3, 1, 3, 1, 2, 2, 2, 4, 4, 2, 2, 4, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 4, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 7, 7, 5, 5, 3, 3, 5, 3, 5, 3, 3, 3, 1, 5, 3, 3, 1, 3, 3, 5, 3, 3, 3, 3, 3, 4, 2, 4, 6, 4, 4, 2, 4, 2, 2, 2, 4, 4, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 7, 7, 7, 3, 3, 3, 7, 3, 5, 3, 3, 3, 3, 3, 3, 1, 3, 3, 1, 3, 1, 3, 3, 3, 3, 4, 6, 4, 6, 4, 4, 4, 4, 4, 4, 2, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 5, 7, 7, 3, 5, 5, 5, 3, 7, 5, 3, 1, 5, 3, 3, 1, 1, 3, 1, 1, 3, 3, 1, 3, 3, 4, 2, 4, 4, 4, 4, 2, 4, 2, 6, 4, 4, 4, 2, 2, 4, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 5, 7, 7, 8, 5, 5, 3, 5, 3, 7, 3, 3, 1, 3, 5, 3, 3, 1, 3, 1, 1, 3, 3, 1, 1, 1, 4, 4, 4, 4, 4, 4, 2, 4, 2, 4, 2, 2, 2, 4, 2, 2, 6, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 5, 7, 7, 5, 3, 3, 5, 3, 3, 3, 5, 3, 3, 3, 3, 3, 1, 3, 1, 3, 3, 3, 1, 1, 1, 4, 2, 2, 4, 4, 4, 4, 4, 4, 4, 4, 2, 2, 4, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 5, 7, 7, 7, 5, 5, 3, 5, 3, 7, 3, 3, 3, 1, 1, 3, 3, 1, 5, 1, 1, 3, 3, 1, 1, 1, 4, 2, 4, 4, 4, 4, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 6, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 5, 7, 7, 5, 5, 3, 7, 3, 5, 3, 5, 3, 3, 3, 3, 3, 1, 3, 3, 1, 1, 3, 3, 1, 1, 6, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 0, 7, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 7, 7, 7, 5, 7, 3, 7, 5, 5, 3, 3, 1, 3, 3, 3, 1, 1, 5, 1, 1, 1, 3, 1, 3, 1, 6, 2, 4, 4, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 7, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 5, 7, 7, 5, 5, 5, 7, 3, 5, 1, 3, 3, 3, 3, 1, 3, 1, 3, 3, 1, 3, 3, 1, 3, 1, 6, 2, 2, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 7, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 9, 8, 7, 7, 7, 7, 5, 7, 3, 5, 5, 5, 3, 3, 3, 1, 3, 3, 3, 1, 3, 1, 1, 3, 3, 1, 1, 1, 4, 2, 2, 4, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 6, 2, 2, 2, 0, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-9, 9, 8, 5, 7, 7, 7, 5, 5, 5, 5, 3, 3, 3, 3, 1, 1, 3, 5, 3, 3, 5, 3, 3, 3, 5, 3, 3, 1, 4, 4, 4, 4, 4, 4, 2, 4, 2, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 5, 7, 7, 5, 7, 7, 7, 3, 5, 1, 3, 1, 3, 3, 3, 3, 3, 5, 1, 1, 3, 3, 3, 1, 1, 4, 2, 4, 6, 4, 4, 2, 4, 2, 2, 4, 2, 2, 2, 4, 2, 4, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 5, 7, 7, 7, 7, 5, 5, 7, 3, 5, 3, 5, 3, 1, 3, 5, 3, 1, 3, 1, 3, 3, 5, 1, 3, 1, 4, 2, 4, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 0, 2, 6, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 7, 7, 5, 5, 3, 7, 3, 3, 1, 3, 3, 3, 1, 5, 3, 3, 3, 3, 3, 5, 5, 3, 1, 1, 4, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 6, 0, 0, 0, 0, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0,
-9, 9, 8, 7, 7, 7, 7, 7, 5, 5, 7, 3, 3, 3, 5, 3, 3, 3, 3, 3, 1, 3, 1, 3, 1, 5, 1, 1, 1, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 0, 2, 2, 2, 2, 7, 0, 2, 2, 2, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 5, 7, 5, 3, 5, 5, 5, 3, 1, 1, 5, 3, 3, 3, 3, 3, 1, 3, 3, 1, 5, 5, 3, 5, 5, 6, 4, 6, 4, 4, 4, 4, 4, 2, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 5, 7, 7, 7, 5, 5, 5, 5, 3, 3, 3, 5, 3, 1, 3, 3, 3, 1, 3, 1, 1, 3, 5, 3, 3, 3, 4, 4, 4, 6, 4, 4, 4, 6, 2, 4, 4, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 7, 7, 7, 5, 5, 3, 5, 3, 3, 1, 3, 3, 5, 3, 3, 3, 1, 3, 3, 3, 3, 3, 3, 1, 3, 4, 4, 4, 2, 4, 6, 4, 2, 2, 2, 4, 2, 4, 2, 2, 2, 6, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 5, 7, 7, 7, 5, 3, 5, 7, 1, 3, 3, 5, 3, 3, 1, 5, 1, 1, 3, 1, 1, 1, 5, 1, 3, 1, 2, 2, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 6, 2, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 5, 7, 7, 7, 5, 5, 5, 3, 3, 3, 1, 3, 1, 3, 3, 3, 3, 1, 3, 1, 3, 1, 3, 3, 3, 3, 4, 2, 2, 2, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 6, 2, 2, 2, 2, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 5, 5, 5, 3, 5, 5, 5, 3, 3, 3, 5, 5, 3, 3, 3, 5, 3, 1, 3, 1, 3, 3, 1, 1, 3, 5, 4, 2, 2, 6, 4, 2, 4, 4, 2, 4, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 5, 5, 7, 5, 5, 3, 5, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1, 1, 3, 3, 1, 3, 1, 4, 2, 4, 6, 4, 4, 2, 6, 2, 4, 4, 4, 2, 2, 2, 4, 2, 2, 4, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 7, 5, 5, 3, 5, 3, 3, 3, 1, 5, 3, 3, 3, 3, 5, 3, 3, 3, 1, 3, 1, 3, 1, 3, 1, 4, 2, 4, 4, 2, 6, 2, 4, 4, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 7, 7, 3, 5, 3, 5, 5, 3, 5, 3, 5, 3, 3, 3, 5, 3, 3, 3, 1, 5, 5, 5, 1, 5, 3, 6, 4, 6, 6, 4, 4, 4, 2, 2, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 7, 7, 7, 5, 5, 5, 5, 3, 3, 5, 3, 3, 3, 5, 5, 5, 1, 3, 1, 1, 3, 3, 3, 3, 1, 4, 2, 4, 4, 2, 4, 2, 4, 2, 2, 4, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 7, 7, 5, 5, 5, 5, 5, 3, 3, 5, 3, 3, 5, 3, 3, 1, 1, 1, 1, 3, 3, 5, 5, 1, 1, 2, 4, 4, 2, 4, 6, 2, 4, 2, 4, 4, 2, 2, 4, 2, 2, 4, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 7, 7, 5, 7, 5, 3, 5, 3, 3, 3, 3, 3, 1, 3, 5, 3, 3, 3, 3, 3, 1, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 2, 4, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 7, 7, 5, 7, 5, 3, 5, 5, 3, 3, 3, 5, 3, 3, 3, 5, 1, 3, 1, 3, 3, 5, 3, 3, 3, 4, 6, 4, 2, 6, 2, 4, 4, 2, 4, 2, 2, 2, 2, 2, 2, 4, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 7, 7, 7, 5, 3, 5, 3, 3, 5, 1, 1, 3, 3, 5, 3, 1, 1, 3, 1, 3, 1, 3, 3, 3, 1, 2, 4, 2, 2, 4, 2, 2, 2, 2, 4, 2, 2, 2, 4, 2, 0, 7, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 7, 7, 7, 7, 5, 3, 5, 3, 3, 3, 3, 3, 5, 3, 3, 1, 1, 5, 1, 1, 3, 3, 1, 3, 3, 4, 2, 4, 4, 2, 2, 2, 4, 2, 2, 4, 2, 2, 2, 2, 2, 7, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 7, 7, 5, 5, 5, 3, 5, 3, 5, 1, 3, 3, 3, 3, 3, 1, 3, 5, 1, 3, 3, 3, 3, 3, 1, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 6, 0, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 5, 7, 7, 5, 5, 3, 3, 3, 5, 3, 3, 1, 3, 3, 3, 3, 3, 3, 1, 3, 1, 3, 3, 1, 1, 4, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 6, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 7, 7, 5, 5, 7, 7, 3, 5, 3, 3, 1, 3, 3, 3, 3, 1, 3, 1, 3, 3, 3, 3, 3, 1, 4, 4, 4, 2, 6, 2, 2, 2, 4, 4, 4, 6, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 7, 7, 7, 7, 7, 5, 7, 3, 3, 1, 3, 3, 3, 3, 3, 3, 1, 3, 1, 1, 1, 5, 5, 5, 1, 4, 4, 4, 4, 2, 4, 2, 4, 2, 2, 4, 2, 4, 2, 2, 2, 6, 2, 2, 0, 2, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 7, 7, 7, 7, 7, 5, 7, 5, 7, 3, 3, 5, 1, 3, 5, 3, 1, 1, 1, 3, 3, 3, 3, 1, 1, 4, 2, 4, 2, 2, 4, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 6, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 7, 7, 7, 5, 7, 5, 7, 5, 7, 3, 3, 5, 3, 3, 3, 1, 3, 3, 1, 1, 3, 3, 1, 1, 1, 2, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 7, 0, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 5, 7, 7, 5, 7, 5, 7, 5, 7, 1, 1, 3, 3, 3, 3, 1, 3, 3, 3, 3, 1, 5, 1, 1, 1, 2, 4, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 7, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 3, 7, 7, 3, 5, 5, 3, 3, 3, 3, 5, 5, 3, 5, 3, 3, 3, 3, 1, 3, 1, 5, 3, 3, 1, 4, 2, 4, 4, 4, 4, 2, 4, 2, 4, 2, 2, 2, 2, 2, 2, 2, 4, 2, 4, 4, 2, 4, 2, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 5, 3, 1, 1, 3, 3, 1, 3, 5, 3, 1, 3, 1, 1, 3, 3, 5, 3, 3, 6, 4, 4, 4, 2, 4, 2, 4, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 3, 7, 7, 7, 5, 7, 5, 3, 3, 3, 1, 5, 3, 5, 3, 1, 1, 5, 1, 3, 3, 5, 3, 3, 3, 4, 2, 4, 4, 4, 4, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 6, 2, 2, 2, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 5, 7, 7, 7, 7, 7, 7, 5, 3, 1, 5, 5, 3, 1, 3, 3, 3, 5, 1, 1, 3, 3, 3, 1, 3, 4, 4, 4, 4, 4, 4, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 6, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 5, 5, 5, 5, 3, 5, 3, 1, 5, 5, 3, 3, 3, 3, 3, 3, 3, 3, 1, 1, 3, 5, 3, 3, 1, 4, 2, 6, 4, 4, 2, 4, 4, 2, 6, 2, 4, 2, 2, 4, 2, 2, 2, 2, 2, 2, 4, 2, 2, 0, 2, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 3, 5, 5, 5, 5, 3, 5, 3, 3, 3, 3, 3, 1, 1, 3, 3, 3, 3, 1, 3, 1, 3, 3, 3, 1, 6, 2, 4, 6, 4, 4, 6, 6, 4, 2, 2, 4, 2, 4, 2, 2, 4, 2, 2, 2, 2, 4, 2, 2, 2, 0, 0, 0, 0, 0, 0,
-7, 7, 7, 5, 5, 5, 5, 5, 5, 3, 3, 3, 3, 3, 3, 3, 5, 3, 1, 1, 3, 3, 1, 3, 1, 5, 1, 5, 1, 4, 4, 6, 4, 4, 6, 4, 4, 4, 4, 4, 4, 2, 2, 2, 2, 2, 2, 0, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 5, 5, 7, 3, 5, 5, 5, 3, 3, 3, 3, 1, 3, 3, 3, 3, 1, 3, 3, 3, 3, 7, 3, 5, 3, 6, 4, 6, 4, 4, 6, 4, 4, 4, 4, 6, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 5, 3, 5, 7, 5, 5, 5, 5, 1, 5, 3, 3, 3, 5, 3, 5, 3, 3, 3, 1, 1, 1, 5, 1, 3, 3, 6, 4, 2, 4, 2, 4, 4, 6, 4, 2, 4, 2, 4, 2, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 5, 5, 7, 5, 3, 3, 5, 3, 3, 3, 5, 1, 3, 3, 5, 3, 3, 3, 1, 3, 3, 5, 1, 3, 3, 4, 4, 4, 2, 4, 4, 2, 4, 4, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 3, 7, 7, 5, 7, 5, 3, 3, 5, 3, 5, 3, 3, 3, 3, 1, 1, 3, 1, 3, 3, 5, 3, 3, 3, 6, 2, 4, 6, 4, 4, 2, 4, 2, 4, 2, 2, 4, 2, 2, 2, 4, 2, 2, 2, 2, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 7, 5, 7, 7, 7, 7, 7, 3, 7, 3, 3, 3, 3, 1, 1, 3, 3, 3, 1, 1, 1, 3, 1, 3, 1, 6, 4, 2, 4, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 6, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 5, 7, 5, 7, 7, 5, 3, 5, 3, 5, 3, 1, 3, 3, 3, 1, 3, 1, 1, 1, 3, 1, 3, 1, 7, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 7, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 5, 7, 7, 7, 7, 7, 5, 1, 3, 3, 5, 3, 3, 3, 3, 3, 3, 3, 1, 1, 1, 5, 3, 1, 1, 6, 2, 2, 4, 4, 4, 4, 2, 2, 2, 2, 2, 2, 0, 2, 2, 7, 0, 2, 2, 2, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 8, 7, 5, 5, 7, 5, 7, 7, 3, 1, 5, 1, 5, 5, 3, 3, 3, 1, 3, 1, 1, 1, 1, 3, 1, 1, 1, 6, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 6, 2, 2, 0, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 5, 5, 3, 7, 7, 5, 7, 5, 3, 3, 3, 5, 3, 1, 3, 5, 3, 3, 3, 1, 1, 1, 3, 3, 3, 3, 4, 2, 4, 4, 4, 4, 4, 4, 2, 4, 2, 2, 4, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 4, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 3, 7, 7, 5, 7, 7, 5, 3, 1, 3, 3, 5, 3, 3, 3, 1, 1, 3, 3, 3, 3, 1, 1, 3, 3, 6, 4, 6, 4, 4, 4, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 4, 2, 2, 2, 0, 2, 0, 2, 2, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 5, 7, 7, 7, 5, 7, 5, 3, 3, 3, 3, 5, 1, 3, 3, 3, 1, 5, 1, 1, 3, 3, 3, 1, 3, 4, 2, 2, 2, 2, 4, 4, 4, 2, 2, 2, 2, 4, 2, 2, 2, 4, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 3, 5, 7, 7, 7, 7, 5, 3, 5, 3, 5, 5, 3, 3, 3, 1, 1, 5, 1, 3, 3, 3, 3, 1, 3, 4, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 7, 0, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 3, 5, 5, 5, 7, 5, 3, 3, 3, 3, 5, 3, 1, 1, 3, 3, 1, 3, 3, 3, 3, 3, 3, 5, 1, 4, 4, 4, 4, 2, 2, 2, 4, 2, 2, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 7, 7, 7, 5, 5, 5, 3, 3, 1, 5, 1, 3, 3, 5, 3, 1, 3, 3, 3, 3, 5, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 6, 4, 2, 4, 2, 2, 2, 2, 2, 4, 2, 2, 2, 0, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 5, 5, 5, 7, 5, 7, 3, 3, 1, 5, 3, 3, 3, 1, 3, 3, 3, 3, 1, 3, 3, 3, 3, 3, 3, 4, 2, 2, 4, 4, 4, 4, 6, 4, 4, 6, 2, 4, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 7, 7, 7, 7, 5, 7, 5, 3, 3, 1, 3, 3, 3, 3, 5, 5, 1, 5, 1, 3, 1, 5, 3, 5, 1, 2, 4, 4, 4, 2, 4, 2, 4, 2, 4, 2, 4, 2, 2, 2, 2, 4, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 7, 7, 7, 5, 5, 5, 3, 3, 3, 3, 3, 3, 5, 5, 3, 1, 1, 1, 3, 1, 3, 3, 3, 1, 4, 2, 2, 4, 4, 6, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 7, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 3, 7, 3, 5, 5, 5, 3, 5, 3, 3, 3, 3, 5, 3, 3, 3, 1, 1, 3, 1, 3, 3, 3, 3, 5, 3, 6, 2, 4, 4, 2, 4, 4, 4, 2, 4, 4, 4, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 5, 5, 5, 5, 3, 5, 5, 5, 1, 5, 1, 5, 3, 3, 3, 1, 1, 3, 1, 1, 1, 5, 1, 3, 1, 2, 4, 4, 4, 4, 6, 2, 4, 2, 4, 4, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 4, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 5, 7, 5, 5, 5, 5, 3, 5, 3, 3, 3, 3, 1, 3, 1, 3, 3, 1, 3, 3, 3, 1, 3, 3, 3, 5, 6, 2, 4, 4, 6, 6, 4, 6, 2, 4, 4, 2, 4, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 3, 7, 7, 5, 3, 7, 5, 3, 3, 5, 5, 3, 3, 1, 5, 3, 1, 3, 1, 1, 3, 5, 1, 3, 1, 6, 2, 4, 4, 2, 4, 4, 4, 4, 2, 2, 4, 4, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 5, 5, 5, 5, 3, 5, 3, 3, 3, 3, 3, 3, 3, 3, 1, 5, 3, 1, 3, 1, 1, 3, 5, 1, 3, 3, 4, 2, 2, 4, 4, 4, 4, 2, 4, 6, 2, 4, 2, 4, 2, 2, 4, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 5, 5, 5, 5, 5, 5, 3, 5, 3, 3, 3, 5, 3, 3, 3, 5, 3, 1, 3, 3, 1, 1, 3, 3, 3, 1, 6, 2, 4, 4, 4, 4, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 7, 7, 7, 7, 5, 5, 5, 3, 3, 7, 3, 3, 3, 3, 3, 5, 1, 3, 1, 1, 1, 3, 1, 3, 1, 4, 2, 4, 2, 4, 6, 2, 4, 2, 6, 6, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 5, 3, 7, 7, 5, 3, 5, 5, 1, 3, 3, 5, 5, 5, 5, 5, 1, 3, 3, 1, 3, 1, 3, 1, 3, 1, 6, 2, 4, 4, 2, 4, 4, 4, 4, 4, 4, 4, 2, 2, 2, 4, 2, 2, 2, 4, 2, 4, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 5, 7, 7, 5, 7, 7, 5, 3, 5, 5, 3, 1, 3, 3, 3, 5, 5, 5, 3, 3, 3, 3, 3, 3, 3, 6, 2, 2, 2, 2, 4, 4, 4, 4, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 7, 7, 8, 5, 5, 7, 7, 1, 5, 3, 3, 3, 3, 3, 5, 3, 3, 5, 1, 3, 1, 3, 3, 3, 1, 4, 4, 4, 2, 4, 4, 4, 4, 4, 4, 2, 4, 2, 4, 2, 2, 4, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 7, 7, 5, 5, 7, 7, 1, 7, 3, 5, 3, 5, 3, 5, 3, 3, 3, 1, 3, 3, 5, 3, 3, 1, 6, 2, 4, 2, 4, 4, 4, 2, 2, 4, 4, 4, 2, 2, 2, 2, 4, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 5, 3, 7, 5, 3, 5, 3, 3, 5, 3, 3, 1, 1, 3, 5, 3, 1, 3, 3, 1, 3, 3, 3, 3, 1, 4, 2, 4, 4, 2, 4, 2, 2, 4, 2, 2, 4, 2, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 7, 5, 7, 7, 7, 7, 5, 3, 5, 3, 5, 7, 1, 3, 3, 1, 1, 3, 1, 3, 3, 3, 5, 1, 1, 2, 2, 4, 4, 4, 4, 4, 4, 2, 4, 4, 2, 4, 2, 2, 2, 4, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 8, 7, 7, 7, 7, 7, 7, 1, 7, 3, 5, 7, 3, 3, 3, 1, 1, 3, 1, 1, 1, 1, 1, 3, 1, 4, 2, 4, 4, 4, 6, 2, 4, 4, 2, 2, 4, 2, 2, 2, 2, 6, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 7, 5, 7, 7, 5, 7, 7, 1, 7, 3, 5, 7, 3, 1, 3, 1, 1, 3, 1, 1, 1, 5, 3, 1, 3, 4, 2, 4, 2, 2, 6, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 6, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 5, 7, 5, 7, 7, 7, 3, 7, 1, 7, 7, 3, 3, 3, 5, 5, 3, 1, 1, 1, 5, 1, 3, 1, 4, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 7, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 7, 5, 7, 7, 7, 7, 5, 1, 3, 3, 3, 5, 1, 5, 3, 5, 1, 3, 1, 3, 3, 3, 1, 3, 3, 4, 2, 2, 4, 4, 4, 4, 4, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 8, 7, 7, 7, 7, 7, 5, 3, 3, 3, 5, 7, 1, 3, 3, 3, 3, 3, 1, 1, 3, 3, 3, 1, 3, 6, 4, 4, 4, 4, 6, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 6, 0, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 5, 3, 3, 1, 7, 7, 1, 3, 5, 1, 3, 1, 1, 1, 1, 3, 1, 3, 1, 7, 2, 4, 4, 2, 6, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 6, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 7, 5, 7, 7, 7, 7, 5, 3, 3, 1, 5, 7, 3, 3, 3, 3, 1, 3, 1, 1, 5, 3, 3, 1, 1, 6, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 7, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 7, 7, 7, 7, 7, 7, 5, 1, 3, 1, 3, 7, 1, 3, 3, 1, 5, 1, 1, 1, 1, 3, 3, 3, 1, 6, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 6, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 5, 5, 5, 7, 5, 3, 3, 5, 3, 3, 3, 3, 3, 1, 3, 3, 3, 3, 5, 1, 1, 3, 5, 3, 3, 3, 6, 4, 6, 6, 4, 6, 2, 4, 4, 6, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 0, 2, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 7, 5, 7, 5, 3, 5, 3, 3, 3, 5, 3, 3, 3, 3, 3, 1, 1, 5, 1, 3, 1, 5, 3, 3, 1, 4, 4, 4, 4, 4, 2, 4, 2, 4, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 4, 2, 4, 2, 2, 2, 2, 0, 0, 0, 0, 0,
-7, 7, 7, 7, 7, 5, 7, 5, 3, 5, 5, 3, 3, 3, 3, 1, 5, 3, 5, 3, 3, 7, 1, 3, 5, 5, 1, 3, 3, 6, 2, 4, 4, 4, 4, 2, 4, 2, 2, 4, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 7, 7, 7, 5, 7, 5, 5, 3, 7, 3, 3, 3, 3, 3, 3, 3, 3, 5, 1, 1, 3, 3, 3, 1, 1, 4, 4, 4, 4, 2, 4, 2, 4, 2, 4, 2, 2, 2, 2, 4, 2, 4, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 5, 7, 7, 3, 5, 3, 3, 5, 3, 1, 3, 1, 3, 3, 3, 1, 1, 3, 1, 1, 1, 3, 3, 3, 4, 2, 4, 4, 4, 4, 4, 4, 2, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 7, 7, 5, 3, 5, 3, 5, 5, 3, 5, 1, 1, 3, 3, 1, 1, 3, 1, 1, 3, 5, 3, 3, 1, 4, 2, 6, 4, 2, 6, 2, 4, 2, 2, 4, 2, 4, 2, 2, 2, 4, 2, 0, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 7, 5, 7, 7, 5, 7, 5, 1, 7, 3, 3, 3, 3, 3, 5, 3, 3, 3, 1, 1, 3, 5, 1, 3, 3, 6, 4, 6, 6, 2, 4, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 4, 2, 0, 0, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 7, 7, 7, 7, 5, 7, 5, 1, 7, 3, 3, 5, 3, 3, 1, 3, 1, 3, 1, 1, 3, 3, 1, 3, 1, 4, 2, 4, 2, 4, 6, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 6, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 5, 1, 7, 3, 3, 5, 3, 1, 3, 3, 1, 3, 1, 1, 1, 3, 1, 1, 1, 4, 2, 4, 4, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 7, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 7, 5, 7, 7, 7, 7, 3, 3, 7, 1, 3, 3, 5, 3, 3, 3, 1, 1, 1, 1, 1, 3, 3, 1, 1, 4, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 7, 2, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 7, 7, 7, 5, 7, 3, 3, 5, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1, 3, 1, 3, 1, 3, 1, 4, 2, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 6, 0, 0, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 5, 7, 7, 5, 5, 5, 3, 1, 3, 3, 3, 3, 1, 3, 5, 3, 3, 1, 1, 3, 3, 1, 5, 3, 4, 2, 4, 6, 4, 4, 2, 4, 2, 4, 2, 4, 2, 2, 4, 2, 2, 2, 2, 2, 4, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 7, 7, 7, 7, 7, 5, 3, 1, 3, 3, 3, 3, 3, 3, 3, 3, 1, 3, 1, 1, 1, 7, 3, 3, 1, 4, 2, 4, 6, 4, 4, 4, 4, 2, 2, 4, 2, 2, 2, 2, 2, 6, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 7, 7, 8, 5, 5, 5, 5, 3, 3, 1, 3, 3, 3, 3, 3, 3, 1, 5, 3, 1, 1, 3, 3, 1, 3, 4, 2, 4, 4, 2, 4, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 7, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 7, 5, 8, 5, 7, 7, 5, 3, 1, 3, 5, 3, 3, 3, 5, 1, 1, 3, 1, 1, 3, 3, 3, 3, 3, 4, 2, 4, 2, 2, 4, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 6, 2, 0, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 7, 5, 7, 5, 7, 5, 1, 3, 3, 3, 5, 5, 3, 1, 5, 1, 1, 3, 1, 1, 1, 3, 1, 1, 1, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 7, 2, 2, 2, 2, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 7, 5, 8, 5, 3, 3, 3, 5, 3, 5, 5, 1, 1, 5, 3, 5, 1, 3, 3, 3, 3, 5, 3, 5, 3, 4, 2, 4, 4, 4, 4, 4, 4, 4, 4, 4, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 7, 7, 8, 7, 7, 5, 3, 3, 3, 5, 5, 1, 3, 3, 3, 3, 1, 3, 1, 1, 3, 5, 3, 3, 3, 4, 4, 4, 4, 4, 7, 2, 2, 4, 2, 2, 2, 4, 2, 2, 2, 2, 0, 2, 0, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 7, 7, 8, 7, 5, 5, 5, 3, 3, 1, 5, 5, 3, 1, 3, 1, 1, 3, 3, 1, 1, 3, 1, 3, 1, 4, 2, 4, 2, 2, 4, 2, 4, 2, 4, 2, 4, 2, 2, 2, 2, 7, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 7, 7, 8, 5, 7, 5, 3, 3, 3, 3, 3, 3, 1, 3, 3, 1, 1, 3, 1, 1, 1, 5, 1, 3, 1, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 6, 0, 0, 0, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 7, 7, 7, 5, 7, 3, 3, 1, 3, 3, 5, 1, 3, 7, 3, 1, 3, 1, 1, 1, 5, 1, 1, 1, 2, 2, 4, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 7, 0, 0, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 5, 3, 5, 5, 3, 3, 5, 3, 3, 3, 3, 5, 5, 3, 5, 5, 3, 5, 1, 3, 5, 5, 1, 3, 1, 4, 2, 4, 4, 4, 2, 2, 4, 2, 4, 2, 2, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 0, 2, 0, 0, 0,
-8, 7, 7, 7, 5, 5, 5, 3, 5, 3, 7, 3, 3, 3, 5, 3, 5, 3, 3, 3, 1, 1, 1, 3, 3, 5, 5, 3, 1, 6, 4, 4, 4, 2, 4, 4, 2, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 7, 5, 7, 5, 5, 5, 3, 3, 5, 5, 3, 3, 3, 3, 5, 3, 1, 3, 1, 1, 3, 3, 3, 3, 1, 4, 2, 4, 4, 4, 6, 2, 4, 2, 2, 4, 2, 2, 4, 6, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 7, 5, 7, 3, 3, 5, 5, 1, 5, 3, 5, 3, 3, 3, 5, 1, 1, 3, 1, 1, 3, 3, 3, 3, 1, 4, 2, 4, 4, 2, 4, 2, 4, 2, 4, 4, 2, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 7, 5, 7, 5, 5, 3, 5, 1, 7, 3, 5, 3, 1, 5, 3, 1, 1, 3, 1, 3, 3, 5, 1, 5, 1, 6, 2, 4, 4, 4, 4, 2, 4, 2, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 7, 7, 7, 5, 5, 5, 5, 3, 5, 3, 3, 3, 3, 3, 5, 3, 1, 3, 1, 3, 3, 5, 1, 1, 1, 6, 2, 4, 2, 4, 4, 2, 4, 2, 4, 4, 2, 4, 2, 2, 2, 6, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 7, 5, 7, 3, 5, 5, 3, 5, 5, 3, 3, 3, 5, 5, 5, 3, 3, 3, 1, 1, 3, 3, 1, 3, 3, 2, 2, 4, 4, 4, 4, 2, 2, 2, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 7, 7, 7, 7, 5, 5, 5, 1, 3, 3, 3, 3, 3, 5, 3, 5, 1, 5, 1, 3, 3, 3, 3, 3, 3, 4, 4, 6, 4, 2, 4, 2, 4, 2, 2, 2, 4, 2, 2, 2, 2, 4, 2, 2, 0, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 7, 7, 7, 5, 5, 3, 3, 1, 5, 1, 3, 3, 3, 5, 5, 3, 3, 1, 1, 3, 3, 3, 1, 3, 1, 4, 2, 2, 4, 2, 4, 2, 4, 2, 4, 2, 2, 2, 2, 2, 2, 6, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 7, 5, 7, 5, 7, 5, 5, 3, 3, 3, 3, 3, 5, 3, 3, 3, 1, 3, 1, 3, 3, 3, 1, 3, 3, 4, 2, 4, 4, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 6, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0,
-7, 7, 7, 7, 7, 7, 7, 5, 5, 5, 5, 3, 5, 5, 3, 3, 3, 3, 5, 1, 1, 3, 1, 1, 1, 5, 1, 3, 3, 4, 4, 4, 2, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 7, 2, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 5, 3, 7, 3, 7, 3, 3, 3, 5, 3, 3, 5, 5, 3, 3, 3, 1, 1, 3, 1, 3, 5, 1, 3, 1, 4, 2, 4, 2, 2, 4, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 7, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 5, 5, 7, 5, 7, 5, 3, 5, 3, 3, 5, 1, 3, 3, 3, 3, 3, 3, 3, 3, 1, 5, 3, 5, 3, 4, 2, 6, 4, 2, 4, 4, 4, 2, 4, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 7, 7, 7, 7, 5, 5, 3, 3, 5, 3, 5, 3, 1, 5, 5, 3, 1, 1, 1, 3, 1, 7, 3, 3, 3, 2, 2, 4, 4, 2, 4, 2, 4, 2, 4, 2, 4, 4, 4, 2, 2, 4, 2, 0, 0, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 5, 5, 5, 3, 3, 3, 3, 3, 5, 1, 1, 3, 1, 3, 1, 5, 1, 1, 1, 4, 2, 2, 2, 4, 6, 2, 4, 2, 2, 2, 2, 2, 2, 2, 0, 7, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 7, 5, 7, 7, 5, 5, 3, 5, 5, 1, 1, 3, 3, 3, 7, 3, 1, 3, 1, 1, 3, 3, 1, 1, 1, 4, 2, 4, 2, 2, 4, 2, 2, 2, 2, 0, 2, 2, 2, 2, 2, 6, 2, 2, 0, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 7, 7, 7, 3, 3, 5, 3, 3, 5, 1, 3, 3, 1, 1, 5, 3, 3, 3, 1, 1, 1, 3, 1, 1, 3, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 7, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 5, 5, 5, 5, 3, 5, 5, 3, 3, 3, 5, 5, 5, 3, 3, 3, 1, 1, 3, 1, 3, 3, 3, 3, 1, 6, 2, 6, 6, 2, 4, 2, 4, 2, 4, 2, 4, 2, 4, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 7, 5, 7, 7, 7, 7, 5, 3, 3, 3, 3, 3, 3, 5, 5, 1, 3, 3, 3, 3, 1, 3, 1, 5, 1, 4, 4, 4, 4, 4, 4, 2, 2, 2, 4, 4, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 7, 7, 7, 7, 3, 7, 7, 5, 7, 3, 5, 3, 5, 3, 1, 3, 1, 3, 1, 1, 3, 5, 3, 3, 1, 4, 2, 2, 6, 4, 6, 2, 4, 4, 2, 2, 2, 2, 4, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 5, 5, 7, 3, 3, 5, 3, 3, 3, 3, 3, 3, 1, 3, 3, 3, 5, 5, 3, 4, 4, 4, 4, 2, 6, 2, 6, 2, 4, 2, 2, 4, 2, 2, 2, 6, 2, 2, 2, 0, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 7, 7, 7, 7, 7, 7, 5, 5, 5, 5, 3, 5, 3, 3, 3, 1, 3, 3, 1, 1, 1, 3, 1, 5, 3, 6, 2, 4, 4, 2, 4, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 6, 2, 2, 2, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 5, 5, 5, 5, 5, 5, 3, 5, 1, 3, 5, 3, 3, 1, 1, 3, 3, 1, 1, 1, 1, 5, 3, 1, 3, 1, 6, 2, 4, 4, 6, 4, 2, 2, 2, 6, 6, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 2, 0, 0, 0, 0, 0,
-8, 8, 7, 5, 3, 5, 5, 5, 5, 5, 5, 3, 3, 7, 5, 3, 3, 3, 5, 1, 3, 1, 3, 3, 1, 3, 1, 5, 3, 4, 2, 4, 4, 4, 4, 4, 2, 2, 2, 4, 6, 2, 4, 4, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 5, 5, 5, 5, 7, 3, 5, 5, 3, 5, 3, 3, 3, 3, 3, 3, 3, 1, 3, 3, 3, 1, 3, 3, 3, 1, 4, 2, 4, 2, 4, 6, 2, 4, 2, 4, 6, 4, 4, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 5, 5, 5, 7, 5, 3, 3, 3, 7, 3, 5, 1, 3, 3, 3, 3, 1, 3, 1, 3, 1, 5, 1, 3, 1, 4, 2, 4, 2, 2, 7, 2, 6, 2, 4, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 7, 5, 7, 7, 5, 5, 3, 3, 7, 5, 3, 3, 3, 3, 5, 3, 1, 5, 1, 3, 1, 5, 1, 3, 1, 2, 2, 4, 2, 2, 4, 4, 6, 2, 4, 2, 4, 2, 4, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 5, 7, 5, 7, 5, 5, 3, 7, 3, 5, 1, 3, 3, 5, 1, 3, 3, 3, 5, 3, 3, 1, 3, 3, 6, 4, 4, 2, 4, 6, 2, 4, 2, 4, 4, 4, 2, 2, 2, 2, 6, 0, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 7, 5, 5, 5, 7, 5, 1, 7, 3, 3, 3, 3, 3, 5, 3, 1, 3, 3, 3, 1, 3, 3, 3, 3, 4, 2, 4, 4, 4, 4, 4, 2, 4, 4, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 7, 7, 7, 7, 5, 7, 5, 1, 7, 3, 3, 5, 1, 3, 5, 3, 3, 5, 1, 3, 3, 3, 1, 1, 1, 4, 2, 4, 4, 2, 4, 2, 2, 4, 4, 2, 4, 4, 4, 2, 2, 6, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 7, 5, 7, 5, 7, 7, 7, 3, 7, 3, 5, 3, 3, 3, 3, 1, 1, 1, 1, 1, 1, 3, 3, 1, 1, 4, 2, 4, 4, 2, 4, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 6, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 7, 5, 7, 7, 7, 7, 5, 3, 5, 3, 3, 5, 1, 3, 3, 3, 3, 3, 1, 1, 1, 3, 1, 5, 1, 4, 2, 2, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 7, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 7, 7, 7, 7, 7, 5, 3, 5, 3, 3, 5, 1, 3, 3, 1, 1, 1, 1, 1, 1, 3, 1, 3, 1, 6, 2, 4, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 6, 0, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 3, 5, 7, 7, 5, 5, 5, 3, 1, 3, 3, 3, 3, 5, 3, 1, 3, 3, 1, 1, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 6, 2, 4, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 7, 5, 7, 7, 7, 7, 5, 3, 3, 3, 3, 3, 1, 3, 5, 1, 3, 3, 3, 1, 3, 5, 1, 3, 3, 4, 2, 6, 6, 4, 4, 4, 4, 2, 4, 4, 2, 2, 2, 2, 2, 4, 2, 2, 0, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 5, 7, 7, 7, 7, 7, 5, 1, 3, 1, 3, 3, 3, 3, 5, 3, 1, 3, 3, 3, 3, 5, 3, 3, 1, 6, 4, 4, 6, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 6, 0, 2, 2, 0, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 5, 7, 7, 7, 5, 5, 7, 5, 5, 3, 5, 3, 1, 3, 3, 3, 1, 3, 1, 1, 1, 5, 1, 1, 3, 6, 2, 2, 2, 2, 4, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 7, 2, 0, 0, 2, 0, 2, 0, 2, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 5, 5, 7, 7, 5, 3, 3, 3, 1, 3, 5, 3, 1, 3, 3, 1, 1, 1, 3, 3, 3, 5, 5, 1, 5, 4, 6, 6, 4, 4, 6, 2, 2, 2, 4, 2, 6, 4, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 5, 5, 5, 3, 5, 5, 5, 3, 3, 3, 3, 3, 3, 3, 3, 1, 3, 3, 3, 1, 3, 5, 3, 1, 3, 6, 6, 6, 4, 4, 6, 2, 4, 4, 4, 4, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 5, 5, 5, 5, 5, 5, 3, 1, 1, 5, 3, 3, 5, 5, 3, 3, 3, 3, 3, 3, 1, 1, 3, 1, 4, 4, 2, 2, 4, 4, 4, 6, 2, 4, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 7, 7, 7, 5, 7, 5, 5, 1, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1, 3, 1, 3, 1, 4, 2, 4, 4, 2, 6, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 5, 7, 7, 7, 5, 5, 5, 3, 3, 1, 5, 5, 3, 3, 5, 3, 3, 3, 1, 3, 1, 3, 1, 3, 1, 4, 4, 4, 6, 4, 2, 4, 4, 2, 2, 4, 2, 2, 2, 2, 2, 6, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 5, 5, 3, 5, 5, 3, 3, 1, 3, 3, 5, 3, 1, 3, 5, 3, 1, 3, 3, 3, 3, 3, 3, 3, 6, 2, 6, 4, 4, 4, 2, 4, 2, 4, 4, 2, 4, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0,
-8, 7, 7, 5, 5, 5, 5, 5, 3, 5, 5, 3, 3, 5, 5, 5, 3, 3, 5, 5, 3, 3, 1, 3, 3, 5, 3, 3, 3, 6, 4, 4, 2, 4, 4, 2, 4, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 4, 2, 2, 4, 2, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 5, 3, 5, 5, 5, 3, 5, 3, 3, 3, 5, 3, 3, 3, 3, 3, 3, 3, 1, 3, 1, 5, 1, 3, 1, 4, 2, 4, 4, 4, 4, 4, 4, 2, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 5, 5, 5, 5, 5, 5, 5, 3, 5, 3, 5, 1, 1, 1, 5, 3, 3, 3, 3, 3, 3, 5, 3, 3, 3, 4, 2, 4, 2, 4, 6, 2, 4, 2, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 5, 7, 3, 5, 3, 5, 5, 3, 5, 1, 3, 3, 3, 3, 5, 3, 1, 5, 1, 1, 3, 5, 1, 3, 1, 4, 4, 2, 2, 2, 4, 4, 4, 2, 6, 4, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 3, 5, 5, 5, 3, 5, 3, 5, 1, 3, 3, 5, 3, 3, 3, 3, 1, 3, 3, 3, 1, 3, 1, 3, 3, 4, 4, 4, 2, 4, 4, 4, 4, 4, 4, 4, 4, 2, 2, 4, 2, 2, 2, 2, 4, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 5, 5, 5, 3, 3, 3, 3, 5, 3, 3, 5, 3, 1, 3, 3, 3, 3, 5, 5, 3, 3, 3, 5, 1, 3, 3, 7, 2, 4, 6, 4, 4, 4, 4, 2, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
-7, 7, 7, 5, 5, 7, 7, 5, 5, 3, 5, 3, 3, 3, 3, 3, 5, 3, 5, 3, 1, 3, 1, 1, 3, 5, 1, 3, 1, 4, 2, 6, 6, 4, 2, 2, 4, 2, 4, 4, 2, 2, 2, 2, 2, 2, 2, 4, 2, 4, 4, 2, 2, 2, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 3, 7, 5, 5, 5, 5, 3, 3, 3, 3, 3, 1, 3, 3, 3, 3, 1, 3, 1, 1, 3, 3, 1, 5, 1, 4, 2, 6, 4, 2, 4, 2, 4, 2, 4, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 5, 7, 7, 7, 5, 3, 5, 1, 5, 3, 5, 1, 3, 3, 3, 3, 1, 3, 1, 3, 1, 7, 5, 5, 1, 6, 2, 4, 4, 4, 4, 4, 4, 2, 4, 4, 4, 4, 2, 2, 2, 4, 0, 0, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 5, 3, 7, 5, 3, 5, 5, 3, 3, 3, 3, 1, 3, 3, 3, 5, 3, 1, 3, 3, 3, 3, 5, 3, 3, 1, 7, 4, 4, 4, 4, 6, 4, 4, 2, 4, 2, 4, 2, 2, 2, 2, 4, 2, 2, 2, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 5, 7, 7, 7, 5, 3, 5, 3, 3, 3, 3, 1, 1, 3, 3, 5, 1, 3, 1, 1, 1, 5, 3, 3, 1, 4, 4, 4, 4, 4, 4, 4, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 5, 3, 5, 3, 5, 1, 3, 1, 3, 3, 3, 1, 1, 1, 1, 3, 1, 1, 3, 2, 2, 4, 4, 2, 4, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 6, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-7, 7, 7, 7, 7, 7, 7, 7, 5, 5, 5, 3, 3, 5, 3, 3, 3, 1, 3, 3, 1, 3, 1, 3, 1, 7, 1, 1, 1, 4, 2, 4, 2, 2, 4, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 5, 7, 7, 7, 7, 5, 7, 5, 3, 7, 5, 5, 1, 3, 3, 3, 3, 1, 3, 1, 1, 3, 5, 1, 1, 1, 4, 2, 6, 2, 2, 4, 2, 2, 4, 2, 2, 2, 2, 0, 2, 2, 6, 2, 0, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 8, 7, 3, 7, 5, 5, 5, 5, 3, 3, 1, 3, 5, 3, 1, 1, 3, 3, 1, 3, 1, 1, 1, 5, 1, 1, 1, 4, 2, 2, 2, 2, 4, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 6, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 8, 5, 5, 7, 3, 5, 5, 3, 5, 5, 3, 3, 5, 3, 1, 3, 5, 3, 1, 1, 1, 3, 1, 3, 3, 3, 3, 4, 2, 4, 4, 4, 4, 2, 4, 6, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 5, 7, 5, 7, 3, 5, 3, 7, 3, 3, 3, 3, 3, 3, 5, 5, 1, 3, 3, 3, 3, 5, 5, 5, 3, 4, 4, 4, 4, 2, 4, 2, 4, 2, 2, 4, 2, 4, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 5, 7, 5, 7, 5, 7, 7, 7, 5, 5, 3, 3, 1, 3, 5, 3, 1, 1, 1, 1, 3, 3, 3, 3, 1, 4, 2, 4, 4, 2, 4, 2, 2, 4, 2, 4, 2, 2, 2, 2, 2, 6, 0, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 8, 7, 3, 7, 5, 7, 5, 5, 5, 7, 3, 3, 1, 3, 3, 1, 5, 3, 1, 3, 1, 1, 3, 5, 1, 3, 1, 4, 4, 2, 4, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 6, 2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 5, 3, 5, 3, 5, 5, 5, 3, 3, 5, 3, 3, 1, 3, 3, 3, 3, 3, 1, 3, 1, 3, 3, 3, 1, 4, 4, 4, 2, 4, 2, 2, 6, 2, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 0, 0, 0, 0, 0,
-8, 7, 7, 5, 5, 5, 5, 3, 5, 5, 5, 3, 3, 5, 3, 3, 1, 3, 3, 5, 1, 5, 1, 3, 3, 3, 1, 3, 1, 6, 4, 4, 4, 4, 2, 4, 4, 2, 4, 2, 4, 4, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 5, 5, 5, 3, 3, 3, 5, 3, 7, 3, 3, 3, 3, 3, 5, 3, 3, 3, 1, 1, 3, 1, 3, 1, 1, 4, 2, 4, 4, 2, 2, 4, 4, 2, 4, 4, 2, 2, 4, 2, 4, 2, 2, 2, 2, 2, 2, 4, 4, 2, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 5, 5, 3, 5, 5, 3, 5, 5, 1, 5, 3, 3, 3, 3, 1, 3, 1, 1, 3, 3, 1, 3, 5, 3, 3, 5, 6, 4, 6, 4, 4, 6, 2, 4, 4, 4, 4, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 5, 7, 5, 3, 3, 3, 3, 7, 5, 3, 1, 1, 3, 5, 3, 1, 1, 1, 3, 1, 1, 3, 3, 3, 6, 4, 4, 4, 4, 4, 2, 4, 2, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 3, 5, 3, 5, 3, 3, 5, 5, 1, 3, 3, 1, 3, 3, 3, 3, 3, 3, 3, 1, 1, 3, 1, 1, 6, 2, 4, 2, 4, 2, 2, 4, 4, 2, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 5, 3, 5, 5, 7, 5, 3, 3, 3, 7, 3, 5, 3, 3, 5, 3, 3, 1, 3, 1, 5, 1, 5, 3, 3, 3, 4, 2, 6, 2, 2, 4, 2, 4, 2, 4, 2, 2, 4, 2, 2, 2, 6, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 5, 3, 5, 5, 3, 5, 3, 5, 3, 7, 5, 5, 3, 3, 1, 5, 3, 1, 3, 1, 3, 1, 3, 3, 1, 3, 6, 4, 4, 2, 4, 4, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 7, 5, 3, 5, 3, 5, 1, 5, 3, 3, 1, 5, 3, 5, 3, 1, 3, 1, 1, 1, 3, 1, 3, 1, 6, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 6, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 8, 5, 3, 5, 3, 5, 3, 3, 5, 3, 3, 3, 3, 3, 3, 1, 5, 3, 1, 1, 1, 1, 3, 3, 1, 3, 1, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 8, 5, 5, 5, 5, 5, 3, 5, 5, 3, 1, 3, 3, 1, 3, 5, 3, 3, 1, 3, 3, 3, 3, 3, 3, 3, 5, 6, 4, 4, 4, 6, 6, 4, 4, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 3, 5, 5, 3, 5, 5, 3, 3, 3, 3, 1, 1, 3, 5, 3, 3, 3, 3, 1, 1, 3, 3, 3, 1, 2, 4, 4, 2, 2, 6, 2, 4, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 5, 5, 5, 5, 5, 3, 5, 3, 3, 3, 3, 3, 3, 3, 1, 5, 3, 1, 3, 1, 1, 3, 3, 1, 3, 5, 4, 4, 2, 6, 2, 2, 2, 4, 4, 4, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 5, 5, 5, 5, 5, 5, 5, 5, 3, 3, 3, 3, 3, 3, 1, 5, 3, 3, 3, 3, 3, 1, 5, 3, 5, 3, 4, 4, 4, 4, 2, 2, 4, 6, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 5, 3, 5, 5, 3, 5, 5, 3, 3, 3, 5, 3, 3, 3, 3, 3, 1, 3, 1, 1, 3, 3, 3, 3, 3, 2, 2, 6, 4, 4, 4, 4, 2, 4, 6, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 3, 7, 5, 5, 5, 5, 3, 5, 3, 3, 1, 3, 1, 3, 3, 3, 3, 3, 3, 3, 5, 3, 5, 1, 6, 4, 4, 4, 4, 4, 4, 4, 2, 4, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 3, 5, 5, 5, 5, 5, 3, 5, 3, 3, 3, 1, 3, 3, 5, 3, 3, 3, 3, 1, 3, 3, 1, 3, 4, 4, 4, 2, 4, 4, 2, 6, 2, 4, 4, 4, 4, 4, 2, 2, 4, 2, 2, 2, 2, 2, 4, 2, 2, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 7, 5, 5, 3, 5, 5, 5, 1, 5, 3, 5, 5, 5, 5, 5, 3, 1, 3, 1, 1, 3, 3, 3, 3, 3, 4, 2, 6, 4, 4, 4, 4, 6, 2, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 5, 5, 5, 5, 3, 5, 3, 1, 3, 5, 7, 5, 3, 5, 5, 3, 5, 1, 5, 5, 3, 5, 5, 3, 4, 6, 4, 4, 4, 4, 4, 4, 4, 6, 2, 4, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 5, 3, 3, 5, 3, 5, 5, 3, 1, 5, 7, 3, 5, 5, 3, 7, 3, 1, 3, 3, 5, 5, 3, 5, 3, 4, 4, 2, 4, 4, 4, 6, 4, 4, 4, 2, 4, 2, 4, 4, 2, 4, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 7, 5, 5, 5, 5, 5, 5, 3, 3, 5, 5, 5, 7, 7, 3, 7, 3, 3, 1, 5, 5, 5, 3, 7, 5, 6, 2, 4, 4, 4, 6, 6, 4, 4, 2, 2, 2, 2, 2, 4, 4, 4, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 5, 7, 5, 3, 5, 7, 5, 7, 5, 3, 5, 5, 7, 7, 5, 7, 5, 7, 5, 5, 7, 5, 5, 7, 3, 5, 3, 6, 2, 4, 4, 6, 4, 6, 6, 2, 4, 4, 4, 4, 4, 2, 2, 4, 2, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 7, 5, 5, 7, 3, 5, 5, 3, 5, 5, 7, 5, 3, 3, 3, 7, 5, 3, 3, 3, 3, 5, 3, 3, 3, 4, 4, 2, 4, 6, 4, 6, 4, 2, 4, 4, 4, 6, 4, 4, 2, 4, 2, 4, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 5, 7, 7, 5, 7, 5, 3, 7, 7, 3, 3, 5, 7, 5, 3, 7, 3, 7, 5, 3, 5, 3, 5, 5, 3, 5, 3, 4, 6, 4, 4, 6, 6, 4, 6, 2, 2, 4, 4, 6, 6, 2, 2, 4, 4, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 5, 7, 7, 7, 3, 5, 3, 5, 7, 7, 5, 5, 7, 5, 5, 5, 3, 7, 5, 5, 5, 5, 7, 5, 5, 5, 7, 4, 6, 2, 6, 6, 4, 4, 4, 4, 4, 2, 4, 4, 6, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 7, 5, 3, 7, 3, 7, 5, 5, 3, 3, 5, 5, 3, 5, 3, 7, 3, 3, 3, 3, 3, 3, 3, 5, 3, 6, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 6, 6, 6, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 7, 7, 5, 7, 3, 5, 5, 5, 5, 5, 7, 5, 3, 7, 3, 7, 3, 3, 5, 5, 7, 5, 5, 7, 5, 6, 6, 4, 6, 7, 4, 6, 6, 4, 6, 4, 4, 6, 2, 2, 2, 4, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 5, 5, 7, 5, 5, 7, 7, 7, 7, 7, 5, 5, 7, 7, 3, 5, 5, 5, 5, 5, 5, 7, 7, 5, 5, 5, 5, 6, 4, 4, 4, 6, 6, 6, 4, 6, 6, 4, 6, 4, 4, 2, 2, 2, 4, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 7, 7, 5, 5, 5, 7, 7, 5, 3, 5, 7, 5, 3, 5, 5, 7, 3, 3, 5, 5, 5, 7, 3, 5, 3, 6, 6, 4, 6, 6, 7, 6, 4, 4, 6, 4, 4, 4, 2, 4, 4, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 5, 7, 7, 7, 5, 5, 5, 7, 7, 5, 5, 5, 7, 5, 5, 7, 3, 5, 5, 5, 7, 3, 5, 3, 3, 1, 3, 4, 4, 4, 4, 6, 4, 6, 6, 6, 6, 4, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 7, 5, 5, 7, 7, 7, 7, 3, 3, 3, 7, 7, 1, 5, 5, 5, 5, 5, 7, 5, 3, 5, 5, 5, 5, 7, 4, 6, 4, 6, 4, 6, 2, 4, 4, 2, 6, 4, 4, 2, 4, 4, 2, 2, 2, 2, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 5, 7, 7, 5, 7, 7, 7, 7, 5, 3, 5, 7, 5, 3, 7, 3, 7, 5, 3, 5, 3, 5, 7, 5, 5, 3, 4, 2, 4, 4, 4, 4, 7, 4, 4, 2, 2, 6, 4, 4, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 7, 5, 5, 7, 7, 7, 7, 5, 5, 5, 7, 5, 1, 7, 3, 5, 5, 5, 3, 5, 5, 7, 3, 5, 5, 4, 2, 4, 4, 4, 4, 6, 2, 2, 4, 4, 2, 4, 6, 4, 4, 2, 6, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 7, 7, 5, 7, 7, 5, 7, 5, 3, 5, 7, 5, 1, 5, 3, 3, 5, 7, 7, 5, 7, 7, 5, 3, 7, 2, 4, 2, 6, 4, 6, 4, 4, 4, 4, 4, 6, 4, 6, 4, 2, 2, 2, 2, 0, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 7, 7, 5, 5, 5, 7, 7, 3, 3, 7, 7, 5, 3, 5, 3, 7, 5, 7, 7, 5, 7, 7, 3, 7, 5, 4, 4, 4, 7, 6, 4, 6, 2, 2, 2, 2, 6, 4, 2, 2, 2, 2, 2, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 7, 7, 5, 7, 5, 7, 7, 3, 5, 3, 7, 5, 1, 5, 5, 5, 7, 7, 7, 5, 5, 7, 5, 3, 7, 4, 4, 4, 6, 6, 4, 6, 4, 4, 2, 4, 6, 6, 6, 4, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 7, 7, 5, 7, 5, 7, 5, 5, 3, 7, 7, 7, 1, 7, 5, 7, 7, 5, 7, 5, 5, 7, 5, 3, 7, 4, 6, 4, 4, 4, 4, 6, 4, 6, 4, 4, 4, 4, 4, 4, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 7, 5, 3, 7, 5, 7, 7, 5, 1, 5, 7, 5, 1, 5, 1, 5, 3, 5, 3, 5, 3, 7, 3, 1, 5, 6, 4, 4, 6, 4, 4, 4, 6, 2, 2, 4, 4, 4, 4, 2, 2, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 8, 7, 7, 7, 7, 7, 5, 7, 7, 3, 5, 7, 7, 5, 3, 5, 3, 7, 5, 5, 5, 5, 5, 5, 5, 5, 7, 4, 4, 4, 7, 4, 6, 7, 4, 4, 4, 4, 6, 4, 6, 4, 2, 4, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 7, 7, 5, 5, 7, 5, 5, 3, 5, 7, 5, 3, 7, 5, 7, 7, 7, 7, 7, 3, 7, 5, 5, 5, 4, 6, 2, 7, 6, 2, 6, 4, 2, 4, 4, 4, 4, 2, 4, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 7, 7, 7, 7, 5, 5, 7, 5, 5, 5, 7, 3, 3, 5, 5, 3, 5, 3, 3, 5, 5, 5, 3, 5, 5, 4, 4, 2, 4, 2, 4, 6, 4, 4, 4, 4, 6, 4, 2, 4, 2, 4, 2, 2, 2, 2, 2, 4, 2, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 7, 7, 5, 5, 3, 5, 7, 3, 3, 5, 7, 3, 3, 5, 3, 5, 3, 5, 5, 3, 5, 5, 5, 7, 3, 6, 4, 2, 6, 4, 4, 4, 2, 2, 4, 4, 4, 4, 4, 2, 2, 4, 2, 4, 0, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 7, 7, 5, 5, 7, 7, 5, 3, 5, 7, 5, 1, 3, 3, 3, 3, 3, 3, 3, 1, 5, 3, 3, 3, 2, 2, 4, 4, 6, 6, 4, 2, 4, 2, 2, 6, 4, 2, 2, 2, 4, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 5, 5, 7, 5, 3, 5, 1, 3, 3, 3, 1, 3, 3, 3, 1, 1, 3, 1, 3, 3, 5, 3, 3, 3, 2, 2, 6, 6, 4, 2, 2, 4, 2, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 5, 5, 5, 5, 5, 5, 5, 3, 3, 5, 3, 3, 3, 3, 3, 3, 1, 1, 3, 3, 5, 3, 3, 3, 3, 6, 4, 6, 6, 4, 4, 4, 6, 2, 6, 2, 2, 4, 2, 4, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 7, 7, 5, 5, 5, 3, 5, 3, 3, 3, 5, 1, 5, 3, 3, 3, 3, 3, 1, 5, 3, 5, 1, 3, 1, 4, 6, 4, 4, 6, 6, 4, 4, 4, 2, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 5, 7, 5, 3, 3, 5, 3, 1, 5, 5, 3, 1, 3, 3, 3, 3, 3, 3, 1, 3, 1, 5, 1, 1, 1, 4, 2, 6, 2, 4, 6, 2, 4, 2, 4, 6, 2, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 5, 7, 7, 5, 5, 3, 3, 3, 3, 5, 3, 1, 3, 3, 3, 5, 3, 1, 5, 1, 3, 3, 7, 3, 1, 1, 4, 2, 4, 4, 4, 2, 2, 4, 2, 4, 2, 4, 2, 2, 2, 2, 6, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 8, 7, 7, 7, 5, 5, 3, 3, 3, 3, 7, 3, 5, 3, 1, 3, 5, 1, 1, 3, 1, 1, 1, 5, 1, 1, 1, 4, 2, 4, 2, 4, 4, 4, 4, 2, 2, 4, 2, 2, 2, 2, 2, 6, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 7, 7, 7, 5, 5, 5, 3, 1, 1, 5, 3, 1, 3, 3, 3, 3, 5, 3, 3, 1, 5, 3, 3, 3, 4, 4, 4, 4, 4, 4, 2, 6, 4, 4, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 7, 7, 5, 7, 5, 3, 5, 3, 5, 3, 3, 3, 3, 3, 3, 1, 1, 3, 1, 3, 1, 5, 3, 3, 3, 4, 4, 2, 2, 2, 4, 2, 4, 2, 2, 4, 2, 2, 2, 2, 2, 6, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 7, 7, 7, 5, 5, 5, 3, 7, 3, 3, 1, 1, 3, 3, 3, 1, 1, 1, 3, 1, 5, 1, 1, 1, 4, 2, 2, 4, 2, 4, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 5, 5, 5, 3, 5, 5, 3, 1, 3, 3, 5, 1, 3, 3, 3, 3, 3, 1, 3, 3, 5, 3, 3, 3, 6, 4, 4, 6, 4, 4, 2, 4, 2, 4, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
-9, 8, 8, 7, 7, 7, 7, 7, 5, 5, 5, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1, 3, 1, 3, 1, 3, 1, 1, 3, 4, 4, 4, 4, 4, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 6, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 8, 7, 7, 7, 5, 7, 5, 5, 5, 1, 3, 3, 5, 3, 1, 3, 3, 3, 1, 3, 3, 3, 3, 3, 3, 3, 3, 6, 4, 4, 2, 4, 4, 2, 4, 4, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 4, 2, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 7, 5, 7, 5, 5, 7, 1, 3, 1, 3, 3, 1, 3, 5, 3, 3, 3, 1, 3, 1, 5, 3, 3, 1, 2, 4, 4, 4, 2, 6, 2, 4, 2, 2, 2, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 8, 7, 7, 7, 5, 7, 7, 5, 7, 1, 5, 3, 5, 3, 3, 3, 3, 3, 1, 3, 1, 1, 1, 5, 1, 1, 1, 4, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 7, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 7, 5, 5, 3, 3, 7, 3, 3, 3, 3, 3, 5, 3, 5, 3, 1, 3, 3, 1, 1, 5, 1, 3, 3, 6, 4, 2, 4, 4, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 6, 2, 2, 0, 0, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-9, 9, 7, 7, 7, 5, 7, 5, 3, 5, 5, 3, 3, 3, 3, 3, 1, 3, 3, 3, 1, 3, 3, 1, 1, 5, 3, 1, 3, 4, 6, 4, 4, 2, 2, 2, 2, 4, 2, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
-9, 8, 8, 7, 7, 5, 3, 5, 3, 5, 5, 3, 7, 1, 5, 5, 3, 3, 5, 3, 1, 3, 3, 3, 1, 3, 1, 3, 3, 2, 2, 4, 4, 2, 2, 4, 4, 4, 4, 6, 4, 2, 2, 2, 2, 4, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 5, 5, 5, 7, 5, 3, 5, 5, 3, 5, 3, 3, 3, 3, 3, 5, 5, 3, 1, 3, 1, 3, 3, 1, 3, 3, 4, 2, 2, 4, 4, 4, 4, 4, 2, 4, 4, 4, 2, 2, 2, 2, 4, 2, 2, 4, 4, 4, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 7, 5, 5, 7, 3, 7, 5, 3, 3, 3, 5, 3, 3, 3, 3, 3, 1, 3, 1, 3, 3, 1, 3, 3, 3, 4, 4, 4, 4, 4, 4, 2, 4, 2, 2, 4, 2, 4, 2, 2, 2, 6, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 5, 3, 7, 3, 5, 7, 3, 3, 3, 5, 3, 3, 3, 3, 3, 1, 5, 3, 3, 3, 3, 5, 3, 3, 6, 4, 4, 4, 4, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 6, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 5, 5, 5, 5, 3, 3, 3, 5, 5, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1, 1, 3, 5, 1, 1, 1, 4, 4, 4, 4, 4, 2, 2, 2, 4, 4, 4, 2, 2, 4, 4, 2, 2, 2, 4, 2, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 5, 5, 3, 3, 3, 5, 3, 5, 5, 3, 3, 5, 5, 1, 3, 3, 3, 1, 3, 1, 5, 1, 3, 1, 4, 2, 2, 4, 4, 4, 4, 6, 2, 2, 6, 2, 2, 2, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 5, 5, 3, 5, 3, 5, 7, 3, 3, 3, 3, 5, 3, 3, 5, 3, 1, 3, 1, 1, 1, 5, 1, 3, 1, 6, 4, 4, 6, 4, 6, 4, 4, 2, 2, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 5, 5, 5, 3, 5, 3, 3, 7, 3, 3, 1, 3, 5, 3, 5, 3, 5, 1, 3, 3, 5, 3, 3, 3, 6, 4, 4, 4, 4, 7, 4, 6, 4, 4, 4, 4, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 5, 7, 5, 3, 5, 5, 3, 5, 3, 7, 3, 3, 3, 3, 3, 5, 3, 3, 3, 3, 3, 5, 3, 3, 5, 5, 6, 4, 4, 4, 4, 4, 4, 4, 2, 4, 2, 4, 2, 2, 4, 2, 4, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 5, 5, 3, 5, 5, 5, 5, 5, 5, 3, 5, 5, 3, 3, 3, 5, 1, 1, 5, 3, 3, 3, 3, 1, 3, 5, 6, 4, 6, 4, 2, 2, 6, 4, 2, 4, 2, 4, 4, 4, 4, 2, 2, 2, 2, 2, 4, 2, 4, 2, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 5, 7, 5, 5, 5, 3, 3, 7, 3, 3, 5, 3, 3, 3, 3, 3, 1, 1, 3, 1, 3, 3, 5, 3, 3, 1, 4, 4, 6, 6, 2, 4, 2, 2, 2, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 5, 5, 3, 5, 5, 5, 5, 3, 7, 5, 3, 1, 3, 3, 5, 1, 1, 3, 3, 3, 3, 5, 1, 1, 1, 4, 4, 4, 2, 2, 4, 2, 6, 2, 2, 4, 2, 2, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 7, 7, 3, 5, 5, 7, 5, 1, 5, 5, 3, 1, 1, 3, 7, 3, 3, 3, 3, 5, 3, 5, 5, 3, 1, 4, 4, 2, 4, 4, 4, 2, 2, 2, 4, 4, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 7, 5, 3, 3, 7, 7, 5, 3, 7, 3, 3, 1, 3, 3, 3, 3, 1, 5, 1, 5, 3, 7, 1, 1, 1, 4, 2, 4, 4, 4, 6, 4, 4, 2, 4, 4, 4, 2, 2, 4, 2, 4, 2, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 5, 5, 3, 5, 3, 5, 5, 5, 1, 5, 3, 3, 1, 3, 3, 3, 3, 1, 5, 1, 3, 1, 5, 1, 3, 1, 4, 4, 4, 2, 2, 4, 2, 2, 2, 4, 6, 2, 4, 2, 2, 2, 7, 2, 0, 2, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 5, 5, 5, 5, 5, 5, 3, 3, 5, 3, 5, 1, 3, 1, 3, 1, 1, 3, 3, 1, 3, 3, 1, 3, 3, 6, 4, 4, 2, 2, 6, 2, 4, 2, 2, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
-8, 7, 5, 7, 5, 7, 5, 3, 5, 5, 3, 3, 3, 5, 3, 3, 3, 3, 5, 1, 5, 3, 3, 3, 1, 5, 1, 1, 3, 4, 4, 6, 2, 2, 4, 2, 4, 2, 2, 2, 2, 2, 0, 2, 2, 6, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 7, 7, 7, 5, 5, 7, 3, 3, 5, 3, 3, 1, 3, 3, 5, 3, 1, 3, 1, 1, 3, 3, 1, 5, 3, 2, 4, 4, 4, 2, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 0, 6, 2, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 7, 7, 7, 5, 7, 5, 3, 3, 5, 3, 3, 3, 3, 1, 3, 1, 1, 1, 1, 3, 1, 3, 3, 1, 1, 4, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 7, 0, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 7, 5, 3, 7, 5, 5, 3, 5, 3, 3, 3, 3, 3, 3, 1, 1, 3, 1, 1, 3, 3, 1, 1, 1, 6, 2, 4, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 7, 2, 2, 2, 2, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 5, 5, 5, 5, 5, 3, 5, 5, 3, 1, 3, 3, 3, 3, 3, 3, 3, 1, 3, 3, 1, 1, 1, 3, 3, 1, 4, 4, 2, 4, 2, 4, 2, 2, 2, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 4, 2, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 7, 7, 5, 3, 7, 3, 5, 3, 3, 1, 3, 3, 1, 1, 3, 1, 1, 3, 1, 3, 3, 3, 3, 3, 1, 6, 4, 4, 6, 4, 6, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 7, 7, 3, 5, 7, 3, 5, 7, 5, 3, 3, 3, 3, 3, 5, 3, 3, 5, 3, 1, 3, 3, 3, 1, 1, 4, 2, 4, 6, 4, 4, 2, 4, 2, 2, 4, 2, 2, 2, 2, 2, 7, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 7, 7, 5, 3, 5, 3, 5, 7, 5, 5, 3, 1, 3, 3, 3, 1, 1, 3, 1, 1, 1, 3, 1, 3, 3, 6, 2, 4, 4, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 7, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 7, 7, 3, 5, 5, 5, 5, 3, 1, 3, 3, 3, 5, 5, 1, 3, 1, 3, 1, 3, 1, 3, 3, 1, 6, 2, 2, 4, 2, 4, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 6, 2, 2, 0, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 7, 5, 3, 5, 5, 5, 3, 3, 3, 3, 5, 3, 5, 3, 3, 1, 3, 3, 3, 3, 1, 3, 3, 3, 1, 4, 2, 4, 4, 6, 4, 2, 4, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 5, 5, 5, 3, 3, 5, 3, 3, 3, 3, 3, 5, 3, 3, 3, 3, 1, 3, 3, 1, 5, 3, 3, 3, 1, 1, 6, 2, 4, 6, 4, 6, 4, 2, 2, 4, 4, 6, 2, 2, 2, 2, 4, 2, 2, 4, 2, 4, 2, 2, 2, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 5, 5, 5, 5, 5, 3, 3, 3, 3, 3, 5, 3, 3, 1, 3, 1, 1, 5, 1, 3, 1, 5, 3, 5, 3, 6, 4, 6, 4, 6, 6, 4, 6, 4, 4, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 5, 5, 5, 5, 3, 3, 7, 5, 3, 7, 3, 3, 3, 3, 1, 3, 1, 3, 1, 1, 3, 1, 3, 3, 5, 3, 6, 4, 4, 4, 4, 4, 2, 4, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 5, 5, 5, 5, 3, 5, 5, 3, 7, 3, 3, 3, 3, 1, 3, 1, 3, 1, 1, 3, 1, 5, 1, 5, 1, 4, 2, 4, 2, 4, 6, 6, 4, 2, 4, 2, 4, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 5, 5, 3, 3, 3, 3, 5, 5, 3, 1, 3, 3, 5, 3, 3, 3, 3, 1, 3, 1, 3, 3, 3, 1, 4, 2, 4, 2, 2, 4, 2, 2, 2, 2, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0,
-7, 7, 7, 5, 5, 5, 3, 5, 3, 3, 5, 3, 5, 3, 3, 3, 1, 3, 5, 1, 1, 5, 3, 3, 3, 5, 1, 1, 1, 4, 4, 4, 6, 4, 4, 4, 4, 2, 2, 4, 2, 2, 4, 2, 2, 6, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-7, 7, 7, 5, 5, 5, 5, 5, 3, 3, 5, 3, 7, 3, 5, 3, 1, 1, 3, 1, 1, 3, 1, 1, 3, 5, 1, 3, 3, 7, 2, 4, 2, 2, 4, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 6, 2, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 5, 3, 5, 7, 5, 3, 3, 3, 5, 5, 3, 5, 3, 1, 1, 3, 1, 1, 3, 1, 3, 3, 3, 3, 3, 1, 6, 4, 2, 2, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 6, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 5, 5, 3, 5, 3, 3, 5, 3, 3, 3, 3, 3, 3, 1, 1, 3, 1, 3, 5, 1, 3, 1, 5, 1, 1, 3, 4, 4, 4, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 6, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 3, 5, 5, 3, 3, 3, 3, 3, 1, 5, 3, 3, 1, 5, 5, 1, 1, 1, 3, 1, 3, 3, 1, 3, 3, 4, 2, 4, 2, 4, 4, 2, 4, 4, 4, 4, 4, 2, 2, 4, 2, 4, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 3, 5, 7, 5, 3, 7, 5, 3, 5, 1, 3, 3, 1, 3, 5, 3, 1, 3, 1, 3, 3, 5, 3, 3, 3, 4, 4, 4, 4, 4, 4, 2, 4, 2, 2, 6, 2, 2, 2, 2, 0, 4, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 5, 5, 5, 3, 7, 3, 3, 5, 1, 3, 3, 3, 3, 5, 3, 1, 3, 3, 1, 3, 3, 3, 3, 3, 4, 4, 4, 4, 2, 6, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 6, 2, 2, 0, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 5, 5, 5, 3, 5, 3, 5, 5, 3, 5, 3, 3, 3, 1, 3, 5, 1, 3, 3, 1, 1, 1, 3, 1, 3, 1, 6, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 7, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 5, 5, 5, 3, 5, 5, 5, 3, 1, 3, 1, 3, 3, 3, 3, 3, 3, 1, 3, 1, 3, 3, 5, 3, 4, 4, 6, 6, 4, 4, 2, 4, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 5, 5, 5, 5, 3, 5, 5, 3, 5, 1, 1, 3, 3, 3, 3, 5, 3, 3, 3, 3, 1, 1, 5, 3, 3, 1, 4, 4, 4, 4, 4, 2, 2, 4, 2, 2, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 3, 5, 7, 3, 5, 5, 5, 3, 3, 1, 3, 3, 3, 3, 5, 1, 3, 3, 3, 1, 3, 5, 3, 3, 5, 6, 2, 4, 4, 2, 4, 2, 4, 2, 4, 6, 2, 4, 2, 2, 2, 6, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 7, 7, 7, 5, 5, 3, 3, 1, 3, 1, 3, 3, 3, 5, 3, 3, 1, 1, 1, 1, 3, 3, 1, 3, 1, 4, 2, 4, 2, 4, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 7, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 5, 7, 3, 5, 5, 5, 5, 3, 3, 3, 3, 5, 3, 3, 1, 3, 3, 3, 3, 3, 5, 3, 5, 1, 5, 3, 6, 4, 7, 4, 4, 4, 2, 4, 2, 4, 4, 2, 2, 2, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0,
-8, 7, 7, 5, 5, 5, 3, 5, 3, 5, 5, 3, 3, 5, 3, 3, 3, 5, 1, 3, 3, 3, 1, 1, 1, 1, 3, 3, 3, 4, 2, 4, 4, 6, 4, 2, 4, 4, 2, 4, 4, 2, 2, 4, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 5, 7, 3, 5, 5, 5, 3, 3, 3, 3, 3, 5, 3, 5, 3, 5, 3, 3, 3, 3, 3, 3, 3, 1, 6, 4, 6, 4, 4, 6, 2, 6, 2, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 3, 5, 5, 5, 3, 3, 7, 5, 5, 3, 3, 3, 1, 3, 1, 3, 1, 1, 1, 1, 3, 5, 3, 3, 1, 6, 2, 4, 4, 2, 4, 4, 2, 4, 4, 4, 4, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 5, 5, 3, 3, 5, 5, 5, 3, 7, 3, 5, 1, 3, 3, 5, 3, 3, 3, 1, 1, 3, 3, 3, 3, 3, 4, 2, 6, 2, 4, 4, 2, 4, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 5, 5, 7, 5, 7, 5, 5, 3, 7, 3, 3, 3, 3, 3, 3, 1, 1, 3, 3, 3, 3, 3, 3, 3, 3, 6, 2, 4, 2, 2, 2, 4, 2, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 3, 5, 5, 7, 7, 5, 5, 3, 7, 5, 5, 3, 3, 3, 3, 1, 1, 1, 3, 3, 1, 3, 3, 3, 1, 4, 4, 6, 4, 2, 4, 2, 4, 2, 4, 4, 2, 2, 2, 2, 2, 6, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 5, 5, 7, 7, 7, 5, 5, 3, 7, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1, 3, 3, 1, 3, 1, 3, 4, 2, 2, 4, 4, 4, 2, 4, 2, 2, 4, 2, 2, 2, 2, 2, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 5, 7, 5, 5, 7, 3, 5, 7, 5, 5, 3, 1, 3, 1, 3, 1, 3, 3, 1, 1, 3, 3, 1, 3, 1, 4, 2, 4, 4, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 6, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 5, 3, 5, 7, 7, 3, 5, 3, 7, 3, 5, 3, 3, 3, 3, 1, 1, 1, 1, 1, 1, 5, 1, 1, 1, 6, 2, 2, 2, 4, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 6, 0, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 5, 7, 5, 7, 7, 3, 5, 5, 5, 3, 3, 3, 5, 3, 5, 3, 1, 3, 3, 3, 1, 3, 3, 1, 3, 4, 2, 4, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 7, 0, 2, 2, 0, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 7, 7, 7, 7, 3, 5, 5, 3, 3, 5, 1, 3, 3, 5, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 6, 6, 4, 4, 6, 4, 4, 4, 2, 4, 2, 4, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
-8, 7, 5, 7, 5, 5, 7, 7, 5, 5, 5, 3, 1, 5, 5, 3, 1, 5, 5, 3, 3, 3, 3, 1, 1, 3, 3, 3, 1, 4, 4, 4, 4, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 6, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 5, 7, 7, 5, 7, 7, 7, 3, 5, 5, 3, 1, 3, 3, 1, 3, 5, 1, 3, 3, 3, 1, 1, 5, 3, 3, 1, 4, 4, 2, 4, 4, 4, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 7, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 5, 7, 3, 5, 5, 5, 7, 5, 3, 3, 3, 3, 3, 3, 3, 3, 5, 3, 1, 3, 3, 1, 1, 3, 1, 3, 1, 4, 2, 4, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 6, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 5, 5, 3, 5, 5, 5, 3, 3, 5, 3, 3, 1, 3, 3, 5, 5, 3, 3, 3, 1, 1, 1, 3, 3, 3, 1, 4, 4, 4, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 7, 2, 0, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 3, 5, 3, 3, 3, 5, 7, 1, 3, 3, 5, 3, 3, 3, 3, 5, 3, 1, 1, 3, 3, 3, 3, 1, 1, 6, 2, 4, 2, 4, 4, 4, 6, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 5, 7, 7, 7, 7, 7, 5, 3, 3, 3, 5, 5, 3, 3, 3, 3, 1, 3, 1, 5, 1, 3, 3, 3, 5, 6, 2, 4, 6, 4, 6, 4, 6, 4, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 3, 7, 7, 5, 7, 7, 5, 5, 5, 1, 5, 3, 3, 3, 3, 1, 3, 3, 1, 3, 3, 5, 3, 3, 1, 4, 2, 4, 4, 2, 6, 2, 4, 2, 4, 4, 2, 4, 2, 2, 2, 6, 2, 2, 2, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 5, 7, 7, 5, 7, 7, 7, 3, 3, 3, 3, 3, 3, 3, 5, 3, 3, 3, 3, 1, 1, 5, 3, 3, 1, 4, 2, 4, 2, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 6, 2, 2, 0, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 5, 7, 7, 7, 7, 7, 5, 3, 3, 3, 5, 3, 3, 3, 3, 1, 1, 3, 1, 1, 3, 3, 1, 3, 1, 4, 2, 4, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 6, 0, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 5, 5, 3, 5, 5, 5, 3, 3, 5, 3, 3, 3, 5, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1, 4, 2, 2, 4, 4, 2, 2, 4, 2, 4, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 5, 5, 3, 5, 5, 3, 5, 3, 3, 3, 5, 3, 3, 1, 3, 1, 3, 3, 1, 3, 3, 3, 1, 5, 3, 6, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 5, 5, 7, 5, 5, 3, 5, 3, 5, 3, 3, 3, 3, 3, 5, 3, 3, 3, 1, 3, 1, 3, 3, 3, 1, 4, 2, 4, 4, 4, 4, 2, 4, 2, 4, 2, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 5, 5, 5, 5, 5, 5, 3, 1, 7, 5, 3, 3, 3, 3, 5, 3, 1, 3, 1, 3, 1, 5, 1, 3, 3, 6, 2, 4, 2, 2, 4, 2, 4, 4, 4, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 8, 7, 3, 5, 5, 5, 5, 3, 3, 3, 5, 3, 3, 3, 3, 3, 5, 1, 5, 3, 1, 5, 3, 7, 3, 5, 3, 6, 2, 6, 4, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 0, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 5, 7, 5, 3, 5, 3, 5, 5, 5, 3, 3, 3, 3, 3, 5, 5, 3, 3, 1, 1, 1, 3, 3, 3, 3, 6, 6, 4, 4, 4, 4, 2, 2, 2, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 7, 7, 7, 5, 5, 5, 5, 3, 5, 3, 5, 3, 3, 3, 5, 1, 1, 1, 3, 3, 3, 3, 1, 3, 1, 6, 2, 4, 4, 2, 6, 2, 4, 2, 2, 4, 2, 2, 2, 2, 2, 6, 0, 0, 2, 2, 0, 2, 0, 2, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 7, 7, 7, 3, 3, 5, 5, 5, 3, 1, 3, 1, 5, 5, 5, 1, 1, 1, 3, 3, 3, 1, 1, 1, 4, 2, 4, 2, 2, 6, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 6, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 7, 7, 7, 7, 5, 5, 7, 5, 7, 5, 3, 1, 1, 5, 3, 3, 1, 5, 1, 1, 1, 3, 1, 3, 1, 6, 2, 4, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 7, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 5, 5, 7, 7, 5, 3, 5, 5, 5, 5, 3, 3, 3, 3, 3, 3, 1, 3, 1, 1, 3, 3, 5, 3, 1, 1, 4, 2, 4, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 0, 6, 2, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 5, 3, 5, 5, 5, 3, 5, 5, 3, 3, 3, 5, 3, 1, 3, 3, 3, 1, 3, 1, 3, 3, 3, 3, 3, 3, 4, 2, 2, 4, 2, 2, 2, 2, 2, 4, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 7, 7, 5, 7, 3, 3, 3, 3, 3, 3, 3, 1, 3, 3, 5, 5, 3, 5, 1, 3, 1, 5, 5, 3, 3, 4, 2, 4, 4, 4, 4, 2, 2, 2, 4, 4, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 8, 7, 5, 7, 5, 7, 5, 5, 5, 5, 3, 3, 3, 3, 1, 3, 5, 3, 3, 5, 3, 3, 3, 5, 1, 5, 3, 7, 2, 4, 4, 4, 4, 2, 4, 2, 2, 4, 2, 2, 2, 2, 2, 6, 0, 0, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 8, 5, 5, 5, 3, 5, 3, 5, 5, 3, 1, 3, 3, 3, 3, 3, 5, 3, 1, 1, 1, 1, 1, 3, 3, 3, 3, 6, 4, 4, 2, 4, 6, 2, 4, 2, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
-9, 8, 8, 7, 7, 7, 5, 7, 3, 3, 5, 5, 3, 3, 3, 3, 3, 3, 5, 3, 1, 3, 3, 3, 3, 3, 3, 1, 1, 4, 4, 4, 4, 4, 4, 2, 2, 2, 2, 2, 6, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
-9, 8, 8, 7, 7, 7, 5, 5, 3, 3, 5, 3, 3, 3, 3, 3, 3, 5, 3, 3, 3, 3, 1, 3, 3, 3, 3, 3, 5, 6, 2, 4, 6, 4, 4, 4, 4, 4, 2, 4, 2, 4, 4, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 5, 5, 7, 5, 7, 3, 5, 5, 1, 3, 1, 5, 3, 3, 3, 5, 3, 3, 3, 1, 5, 1, 5, 5, 3, 3, 6, 2, 4, 6, 4, 6, 2, 2, 4, 4, 4, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 8, 5, 7, 7, 5, 7, 3, 5, 5, 3, 3, 3, 3, 3, 5, 3, 5, 3, 3, 3, 1, 3, 1, 5, 1, 3, 1, 4, 4, 4, 4, 2, 4, 2, 4, 2, 2, 4, 2, 4, 2, 2, 2, 4, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 5, 7, 3, 5, 5, 3, 5, 5, 5, 3, 3, 3, 3, 5, 1, 3, 5, 3, 3, 3, 1, 3, 1, 1, 3, 1, 4, 2, 4, 4, 4, 6, 4, 4, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0,
-8, 7, 7, 5, 5, 5, 3, 5, 3, 5, 7, 3, 3, 3, 3, 1, 3, 3, 5, 3, 1, 5, 1, 1, 1, 5, 3, 5, 1, 4, 2, 2, 2, 4, 2, 4, 4, 4, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 7, 7, 3, 5, 3, 5, 5, 5, 5, 3, 3, 3, 3, 3, 5, 1, 3, 3, 1, 5, 3, 5, 3, 3, 5, 7, 4, 4, 6, 4, 4, 4, 4, 4, 6, 4, 4, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 7, 3, 5, 3, 5, 5, 3, 5, 3, 5, 3, 3, 3, 5, 1, 5, 3, 1, 1, 1, 5, 1, 1, 3, 6, 2, 4, 4, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
-9, 8, 8, 7, 7, 7, 5, 5, 3, 5, 3, 3, 5, 3, 3, 3, 1, 3, 3, 3, 3, 3, 1, 3, 1, 5, 1, 5, 1, 4, 2, 6, 4, 2, 4, 2, 4, 2, 4, 4, 4, 4, 2, 2, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 5, 5, 5, 3, 5, 5, 3, 3, 5, 3, 1, 3, 3, 3, 3, 3, 3, 1, 1, 3, 3, 1, 3, 3, 4, 2, 6, 4, 6, 4, 6, 2, 2, 4, 4, 4, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 5, 5, 5, 5, 5, 5, 7, 3, 3, 7, 3, 5, 3, 1, 3, 3, 1, 3, 1, 3, 1, 3, 3, 3, 1, 4, 2, 6, 2, 4, 6, 2, 4, 2, 4, 4, 4, 4, 2, 2, 2, 4, 2, 2, 2, 2, 2, 4, 2, 2, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 5, 7, 5, 5, 5, 3, 5, 5, 3, 7, 3, 3, 3, 3, 1, 3, 3, 1, 3, 1, 3, 3, 5, 1, 5, 3, 4, 4, 4, 4, 2, 6, 4, 4, 2, 4, 6, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 3, 5, 5, 5, 5, 3, 7, 7, 3, 7, 3, 5, 3, 3, 3, 3, 1, 1, 3, 3, 3, 3, 5, 1, 5, 1, 6, 2, 6, 4, 4, 4, 2, 2, 2, 4, 2, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 7, 7, 3, 5, 3, 5, 5, 1, 7, 5, 3, 1, 1, 3, 3, 3, 1, 3, 1, 3, 1, 7, 1, 3, 1, 6, 2, 2, 4, 4, 6, 2, 4, 2, 2, 2, 4, 2, 2, 2, 2, 4, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 8, 5, 7, 5, 5, 5, 3, 3, 7, 3, 7, 3, 3, 3, 3, 3, 3, 3, 1, 1, 1, 3, 1, 7, 1, 3, 1, 6, 2, 2, 2, 4, 4, 2, 4, 2, 2, 4, 2, 4, 2, 2, 2, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 5, 7, 5, 5, 3, 5, 3, 5, 3, 5, 3, 3, 1, 1, 3, 3, 3, 3, 3, 1, 3, 3, 3, 1, 3, 1, 4, 2, 4, 4, 4, 2, 2, 2, 2, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 5, 7, 3, 3, 1, 5, 5, 3, 7, 5, 3, 1, 3, 3, 3, 3, 1, 3, 1, 3, 1, 5, 1, 3, 3, 4, 2, 6, 4, 2, 4, 4, 2, 4, 4, 4, 2, 2, 2, 2, 2, 6, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 3, 7, 7, 5, 5, 5, 5, 3, 1, 7, 3, 3, 1, 3, 3, 3, 3, 1, 1, 1, 3, 3, 5, 1, 1, 1, 4, 2, 4, 4, 2, 2, 2, 4, 2, 2, 4, 4, 2, 2, 2, 2, 4, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 5, 7, 5, 5, 3, 5, 3, 1, 7, 3, 1, 3, 3, 3, 3, 3, 3, 3, 1, 1, 3, 5, 1, 3, 1, 4, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 7, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 5, 7, 7, 3, 5, 3, 5, 5, 3, 7, 3, 3, 3, 1, 3, 1, 3, 1, 3, 1, 1, 1, 5, 1, 1, 1, 4, 4, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 7, 2, 2, 0, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 8, 5, 7, 5, 5, 3, 5, 3, 5, 3, 3, 3, 5, 3, 1, 3, 5, 3, 1, 3, 1, 5, 3, 3, 3, 5, 3, 4, 4, 4, 2, 4, 2, 2, 4, 2, 2, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 4, 2, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 5, 7, 7, 3, 7, 1, 7, 5, 5, 1, 3, 3, 1, 1, 3, 3, 1, 1, 3, 3, 3, 3, 1, 5, 5, 4, 4, 4, 6, 4, 2, 2, 6, 2, 2, 4, 2, 4, 2, 2, 2, 4, 2, 2, 2, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 7, 7, 7, 5, 5, 3, 7, 7, 5, 3, 1, 3, 3, 3, 5, 1, 3, 3, 5, 3, 3, 3, 3, 1, 3, 4, 2, 2, 2, 2, 4, 2, 2, 2, 2, 6, 2, 4, 2, 4, 2, 6, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 7, 7, 3, 5, 5, 7, 7, 5, 5, 1, 3, 3, 3, 5, 3, 1, 3, 3, 3, 3, 3, 1, 1, 1, 4, 4, 4, 2, 2, 2, 2, 4, 2, 2, 4, 2, 2, 2, 2, 0, 7, 2, 0, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 5, 5, 5, 3, 5, 3, 5, 7, 5, 3, 3, 3, 3, 3, 3, 3, 1, 1, 1, 1, 1, 3, 1, 3, 1, 4, 2, 4, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 7, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 5, 3, 5, 3, 5, 3, 3, 3, 3, 3, 3, 5, 1, 3, 5, 3, 3, 1, 3, 3, 3, 3, 3, 3, 2, 2, 4, 2, 4, 4, 2, 4, 2, 2, 4, 4, 4, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
-7, 7, 5, 7, 5, 5, 5, 5, 3, 5, 5, 3, 1, 3, 3, 3, 5, 3, 3, 3, 3, 5, 1, 3, 3, 5, 3, 5, 3, 6, 4, 6, 6, 4, 4, 4, 2, 2, 2, 4, 2, 2, 2, 4, 2, 2, 2, 4, 2, 2, 4, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-7, 7, 7, 7, 5, 5, 3, 5, 3, 5, 5, 3, 3, 3, 3, 5, 3, 5, 3, 3, 5, 5, 1, 5, 3, 3, 3, 1, 1, 4, 2, 4, 4, 2, 2, 2, 4, 2, 4, 4, 6, 2, 2, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 3, 5, 3, 3, 3, 3, 5, 5, 7, 3, 3, 3, 3, 1, 5, 3, 3, 3, 1, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 2, 4, 4, 2, 2, 2, 4, 2, 4, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 5, 3, 3, 5, 3, 5, 5, 1, 5, 5, 3, 1, 3, 1, 3, 3, 1, 3, 1, 1, 3, 1, 1, 1, 1, 6, 2, 4, 2, 4, 4, 4, 4, 2, 4, 4, 4, 4, 2, 4, 2, 2, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 5, 5, 5, 3, 5, 3, 5, 5, 3, 5, 3, 3, 1, 5, 1, 5, 3, 1, 3, 1, 3, 3, 5, 3, 3, 3, 4, 2, 6, 4, 2, 2, 4, 4, 4, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 5, 5, 3, 3, 5, 3, 5, 5, 3, 5, 1, 5, 3, 3, 3, 3, 3, 3, 3, 1, 1, 3, 7, 3, 3, 3, 4, 2, 4, 4, 4, 2, 2, 4, 2, 4, 4, 2, 2, 2, 2, 0, 6, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 3, 7, 5, 5, 3, 3, 5, 3, 5, 3, 3, 3, 3, 1, 1, 1, 3, 3, 1, 1, 3, 5, 1, 1, 3, 6, 2, 4, 2, 2, 4, 2, 4, 2, 4, 2, 2, 2, 2, 2, 2, 7, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 5, 5, 5, 5, 3, 3, 3, 3, 1, 7, 3, 3, 3, 3, 3, 3, 3, 1, 3, 1, 1, 3, 5, 3, 3, 3, 4, 2, 4, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 5, 5, 3, 3, 5, 3, 5, 3, 5, 3, 3, 3, 3, 3, 3, 3, 1, 3, 1, 1, 1, 5, 1, 1, 1, 6, 2, 4, 2, 6, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 6, 0, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 5, 5, 3, 3, 5, 3, 5, 5, 3, 3, 3, 3, 3, 3, 3, 3, 1, 5, 1, 3, 1, 5, 1, 1, 1, 6, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 2, 2, 6, 2, 2, 0, 0, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 5, 5, 5, 5, 5, 5, 3, 3, 3, 5, 5, 1, 1, 3, 5, 1, 3, 5, 3, 3, 3, 1, 1, 1, 1, 4, 4, 4, 4, 4, 4, 4, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 5, 5, 7, 7, 3, 3, 5, 3, 5, 3, 5, 3, 3, 1, 3, 3, 1, 3, 3, 1, 1, 5, 3, 5, 5, 4, 4, 2, 4, 6, 2, 2, 4, 4, 4, 2, 2, 2, 2, 2, 2, 6, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 5, 5, 7, 3, 5, 3, 3, 5, 3, 3, 3, 3, 3, 3, 3, 5, 3, 1, 3, 3, 3, 1, 5, 3, 3, 3, 4, 2, 2, 2, 2, 4, 2, 4, 2, 2, 4, 2, 2, 2, 2, 2, 6, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 5, 7, 3, 5, 3, 3, 5, 3, 5, 5, 3, 3, 1, 1, 5, 1, 3, 3, 1, 3, 3, 3, 3, 3, 1, 4, 2, 2, 4, 2, 4, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 7, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 5, 5, 5, 5, 5, 3, 3, 3, 3, 3, 3, 1, 3, 3, 3, 5, 1, 1, 1, 1, 3, 5, 1, 3, 1, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 6, 2, 2, 2, 2, 0, 2, 2, 2, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 3, 5, 3, 3, 5, 5, 5, 3, 3, 5, 1, 1, 3, 3, 3, 1, 3, 1, 3, 3, 3, 3, 3, 3, 4, 2, 4, 4, 4, 4, 4, 4, 4, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 5, 7, 7, 3, 3, 3, 5, 3, 1, 3, 3, 3, 5, 1, 3, 3, 3, 3, 1, 1, 1, 5, 1, 3, 3, 6, 4, 6, 4, 4, 4, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 6, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 5, 3, 3, 3, 3, 5, 3, 1, 1, 3, 5, 3, 3, 3, 1, 1, 3, 1, 1, 1, 5, 3, 3, 3, 4, 2, 6, 2, 4, 2, 2, 4, 2, 2, 4, 2, 2, 0, 2, 2, 7, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 5, 5, 5, 7, 5, 5, 5, 5, 3, 3, 1, 3, 1, 3, 3, 3, 3, 3, 1, 3, 3, 3, 5, 3, 1, 3, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 6, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 5, 5, 3, 5, 3, 5, 5, 3, 3, 3, 1, 3, 5, 5, 3, 5, 3, 3, 3, 1, 3, 3, 1, 3, 3, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 6, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 5, 5, 3, 5, 5, 3, 7, 5, 5, 3, 5, 3, 5, 1, 3, 3, 3, 1, 1, 1, 3, 1, 3, 3, 3, 1, 4, 4, 4, 4, 4, 4, 4, 4, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0,
-9, 8, 7, 5, 5, 3, 5, 5, 3, 5, 3, 3, 1, 3, 5, 3, 1, 3, 5, 5, 1, 5, 3, 1, 3, 3, 3, 5, 3, 4, 2, 6, 4, 2, 2, 2, 4, 2, 2, 4, 4, 4, 4, 2, 2, 2, 2, 2, 4, 2, 2, 4, 2, 2, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 7, 5, 5, 5, 5, 3, 5, 1, 3, 3, 5, 3, 1, 5, 3, 3, 3, 3, 1, 5, 3, 3, 3, 5, 3, 6, 2, 6, 4, 6, 4, 4, 6, 4, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 7, 7, 7, 5, 5, 3, 7, 3, 3, 5, 5, 3, 3, 3, 3, 3, 1, 3, 1, 1, 1, 3, 3, 3, 1, 6, 4, 4, 6, 4, 2, 4, 4, 4, 4, 2, 4, 2, 2, 4, 2, 2, 2, 2, 2, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 7, 5, 7, 7, 5, 5, 7, 5, 5, 3, 3, 3, 3, 3, 5, 1, 1, 3, 1, 3, 1, 5, 3, 3, 1, 7, 4, 6, 4, 6, 4, 4, 4, 2, 4, 2, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 5, 5, 7, 7, 7, 5, 7, 7, 3, 5, 5, 3, 3, 3, 3, 3, 1, 1, 3, 1, 1, 3, 3, 3, 3, 3, 6, 2, 4, 2, 4, 4, 4, 4, 2, 6, 4, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 7, 5, 7, 7, 5, 7, 5, 3, 3, 5, 3, 3, 3, 3, 5, 3, 1, 3, 3, 1, 1, 1, 1, 3, 1, 6, 2, 4, 2, 2, 4, 2, 4, 2, 4, 2, 4, 2, 2, 2, 2, 6, 2, 2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 7, 7, 5, 7, 5, 7, 7, 7, 5, 7, 1, 3, 3, 3, 3, 5, 3, 1, 1, 1, 3, 3, 1, 3, 1, 7, 2, 2, 2, 4, 4, 2, 2, 2, 2, 4, 2, 4, 2, 2, 2, 6, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 7, 7, 5, 5, 5, 7, 5, 7, 3, 5, 3, 3, 3, 5, 3, 3, 1, 5, 1, 3, 1, 5, 1, 3, 3, 6, 4, 4, 2, 4, 4, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 5, 7, 3, 5, 7, 5, 7, 7, 7, 5, 5, 3, 3, 3, 3, 5, 3, 1, 1, 1, 1, 1, 3, 1, 3, 1, 4, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 6, 0, 0, 2, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 5, 7, 7, 7, 5, 7, 7, 5, 5, 7, 3, 3, 3, 3, 3, 3, 3, 3, 1, 3, 1, 1, 3, 1, 1, 7, 2, 6, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 6, 2, 2, 2, 2, 0, 0, 2, 2, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 7, 5, 5, 5, 5, 7, 5, 5, 3, 7, 3, 5, 5, 1, 5, 1, 3, 1, 1, 3, 1, 3, 3, 3, 1, 7, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 6, 2, 2, 2, 0, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 8, 7, 7, 7, 7, 3, 7, 7, 5, 5, 3, 5, 5, 5, 3, 3, 3, 3, 3, 5, 3, 3, 3, 3, 1, 3, 3, 4, 4, 4, 4, 4, 2, 4, 4, 4, 4, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 7, 7, 7, 5, 7, 7, 7, 1, 5, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 5, 3, 3, 3, 3, 3, 6, 4, 4, 6, 4, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 6, 2, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 5, 7, 7, 7, 5, 5, 5, 5, 5, 3, 3, 1, 1, 3, 3, 3, 1, 1, 3, 3, 1, 1, 3, 1, 1, 6, 4, 4, 2, 2, 2, 4, 2, 2, 2, 4, 2, 2, 2, 2, 2, 7, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
-9, 8, 8, 7, 7, 5, 7, 5, 3, 3, 5, 5, 5, 3, 3, 3, 3, 1, 3, 1, 1, 1, 1, 1, 3, 3, 3, 3, 1, 6, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 6, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 5, 3, 7, 3, 3, 5, 3, 3, 3, 3, 5, 3, 5, 1, 3, 1, 1, 3, 1, 3, 3, 3, 3, 5, 3, 4, 2, 4, 2, 2, 6, 2, 4, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 4, 4, 2, 2, 2, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 5, 5, 7, 3, 7, 5, 5, 5, 5, 3, 3, 3, 3, 1, 5, 3, 1, 3, 1, 1, 3, 5, 1, 3, 3, 4, 4, 7, 2, 4, 4, 4, 4, 4, 4, 6, 4, 4, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 7, 8, 7, 7, 3, 5, 5, 3, 5, 3, 7, 5, 3, 5, 5, 3, 1, 3, 1, 1, 1, 7, 5, 3, 1, 6, 4, 4, 6, 4, 6, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 6, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 7, 7, 5, 5, 3, 5, 5, 3, 3, 3, 7, 3, 3, 3, 5, 1, 1, 3, 1, 1, 1, 5, 3, 1, 1, 4, 2, 4, 4, 2, 4, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 6, 2, 0, 2, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 5, 7, 7, 5, 7, 5, 5, 5, 3, 3, 5, 3, 3, 1, 5, 1, 1, 3, 1, 1, 3, 5, 3, 1, 1, 4, 2, 2, 4, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 6, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 5, 5, 3, 5, 3, 5, 3, 3, 3, 3, 3, 3, 5, 3, 5, 3, 1, 3, 3, 3, 3, 3, 3, 3, 3, 6, 2, 4, 4, 4, 4, 4, 4, 2, 4, 2, 4, 4, 2, 2, 2, 4, 2, 2, 2, 2, 2, 4, 2, 2, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 5, 5, 5, 5, 5, 3, 5, 5, 5, 5, 3, 5, 1, 3, 3, 3, 3, 5, 3, 1, 3, 3, 3, 3, 3, 1, 6, 2, 4, 4, 4, 4, 4, 2, 2, 4, 4, 2, 4, 4, 4, 2, 2, 2, 2, 4, 4, 4, 2, 2, 2, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 5, 5, 5, 5, 5, 5, 5, 5, 3, 3, 3, 3, 3, 3, 3, 3, 1, 3, 3, 1, 3, 1, 3, 3, 3, 3, 6, 4, 4, 6, 4, 4, 4, 4, 2, 4, 2, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 5, 5, 3, 3, 5, 5, 5, 3, 7, 3, 3, 3, 3, 3, 3, 1, 3, 3, 1, 1, 1, 3, 1, 3, 1, 4, 2, 4, 4, 2, 6, 2, 4, 2, 4, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 5, 5, 7, 5, 5, 3, 5, 3, 3, 3, 5, 3, 1, 3, 5, 1, 1, 1, 1, 3, 3, 3, 3, 3, 1, 4, 2, 4, 2, 4, 4, 2, 4, 2, 4, 4, 2, 4, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 5, 5, 5, 5, 5, 3, 5, 3, 3, 3, 3, 3, 1, 5, 3, 3, 3, 3, 3, 1, 5, 5, 5, 3, 3, 3, 6, 4, 6, 4, 4, 4, 2, 4, 2, 4, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 5, 5, 3, 5, 5, 5, 5, 3, 5, 3, 3, 3, 3, 3, 3, 1, 3, 3, 3, 3, 3, 3, 1, 1, 1, 4, 2, 4, 4, 4, 6, 4, 4, 4, 4, 4, 4, 2, 2, 2, 2, 6, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 3, 7, 5, 7, 5, 7, 5, 3, 7, 3, 5, 3, 3, 3, 5, 3, 3, 3, 1, 1, 1, 3, 3, 3, 1, 4, 2, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 5, 7, 5, 7, 5, 7, 5, 3, 5, 5, 5, 1, 1, 3, 5, 3, 1, 3, 1, 3, 3, 3, 1, 1, 1, 4, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 4, 2, 0, 7, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 5, 7, 5, 7, 3, 7, 3, 3, 3, 1, 5, 1, 3, 3, 1, 3, 1, 1, 1, 1, 1, 3, 3, 1, 1, 2, 2, 4, 2, 4, 4, 2, 2, 2, 2, 2, 2, 0, 0, 2, 2, 6, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 5, 7, 5, 7, 3, 7, 5, 3, 3, 3, 3, 3, 3, 5, 1, 3, 1, 1, 1, 1, 3, 3, 1, 1, 1, 4, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 7, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 5, 5, 5, 3, 3, 5, 1, 3, 1, 3, 5, 1, 5, 3, 3, 5, 1, 3, 1, 3, 3, 3, 1, 3, 1, 4, 4, 6, 4, 6, 4, 2, 4, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 5, 5, 5, 5, 5, 7, 3, 3, 3, 3, 3, 3, 3, 3, 5, 3, 1, 3, 3, 3, 3, 3, 3, 3, 1, 4, 4, 4, 4, 4, 4, 4, 4, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 5, 5, 5, 5, 1, 7, 3, 3, 3, 1, 5, 3, 3, 3, 3, 3, 1, 3, 1, 3, 1, 5, 1, 1, 3, 4, 2, 2, 2, 4, 6, 2, 4, 2, 4, 4, 2, 2, 2, 2, 2, 6, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 5, 5, 5, 5, 5, 3, 5, 5, 5, 3, 3, 3, 3, 1, 3, 3, 3, 3, 3, 1, 3, 5, 3, 1, 3, 1, 4, 4, 4, 4, 4, 4, 4, 4, 2, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 5, 5, 7, 5, 5, 3, 5, 5, 3, 3, 1, 3, 3, 3, 3, 3, 1, 1, 3, 3, 3, 3, 3, 1, 3, 1, 4, 2, 4, 4, 2, 4, 2, 4, 4, 4, 2, 4, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 3, 5, 3, 3, 3, 3, 5, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1, 5, 3, 1, 3, 3, 3, 3, 1, 4, 2, 4, 4, 4, 6, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 5, 5, 5, 5, 7, 3, 5, 3, 3, 5, 1, 5, 3, 1, 1, 3, 3, 1, 3, 1, 1, 1, 3, 1, 3, 1, 2, 2, 2, 4, 2, 4, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 5, 3, 5, 5, 5, 5, 5, 3, 3, 1, 3, 3, 3, 3, 3, 3, 1, 1, 3, 1, 1, 1, 3, 3, 3, 1, 4, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-7, 7, 5, 3, 1, 3, 5, 3, 3, 5, 3, 1, 3, 3, 3, 3, 3, 3, 5, 3, 3, 3, 1, 1, 3, 3, 1, 3, 1, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0,
-9, 5, 5, 3, 3, 3, 3, 3, 5, 3, 1, 1, 5, 3, 3, 3, 3, 3, 1, 3, 3, 3, 3, 3, 1, 1, 1, 3, 3, 2, 2, 2, 4, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 0, 6, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 5, 5, 3, 3, 3, 5, 5, 3, 3, 3, 3, 5, 3, 3, 3, 1, 3, 3, 1, 3, 1, 1, 1, 3, 1, 1, 1, 3, 2, 4, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 4, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 5, 5, 3, 3, 5, 3, 5, 3, 5, 3, 3, 3, 3, 3, 3, 3, 3, 1, 1, 3, 1, 1, 3, 1, 3, 1, 1, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 6, 2, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 5, 5, 3, 3, 3, 3, 3, 3, 3, 3, 3, 5, 3, 3, 3, 1, 3, 1, 3, 1, 1, 1, 1, 1, 3, 3, 1, 3, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 0, 2, 2, 0, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-9, 5, 5, 3, 5, 3, 5, 5, 5, 3, 3, 3, 3, 3, 3, 3, 1, 1, 3, 3, 3, 3, 1, 1, 1, 3, 3, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 0, 6, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 5, 5, 3, 5, 3, 3, 5, 3, 5, 1, 3, 3, 3, 1, 3, 3, 3, 1, 1, 1, 3, 1, 1, 3, 1, 3, 1, 1, 2, 2, 4, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 0, 2, 0, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 5, 5, 5, 3, 5, 5, 5, 5, 3, 3, 3, 3, 3, 3, 3, 3, 1, 3, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 6, 2, 0, 0, 0, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-9, 5, 5, 3, 5, 3, 3, 3, 5, 3, 1, 3, 5, 3, 3, 3, 3, 3, 3, 1, 1, 3, 3, 1, 3, 3, 3, 1, 1, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 6, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 5, 5, 3, 3, 3, 5, 3, 3, 3, 3, 1, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1, 1, 3, 3, 1, 1, 1, 2, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 5, 3, 3, 3, 3, 3, 3, 5, 5, 1, 3, 3, 3, 3, 3, 3, 3, 1, 1, 3, 3, 1, 1, 1, 3, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 6, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 5, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1, 3, 3, 1, 3, 1, 3, 3, 3, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0,
-9, 5, 5, 1, 3, 5, 3, 3, 3, 3, 5, 3, 5, 3, 3, 3, 3, 1, 3, 3, 1, 3, 3, 1, 1, 3, 1, 1, 1, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 5, 5, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1, 3, 3, 1, 3, 1, 1, 3, 1, 1, 1, 1, 1, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 5, 5, 3, 3, 3, 3, 5, 3, 1, 3, 3, 3, 1, 3, 3, 3, 3, 3, 3, 3, 5, 3, 1, 3, 3, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 6, 2, 0, 0, 2, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-9, 5, 5, 3, 5, 3, 3, 3, 5, 3, 3, 3, 5, 3, 3, 3, 1, 1, 3, 1, 3, 5, 1, 1, 3, 1, 1, 1, 3, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 6, 0, 0, 0, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0,
-9, 5, 5, 3, 3, 3, 3, 3, 3, 5, 1, 3, 5, 3, 3, 1, 3, 3, 3, 3, 3, 3, 1, 1, 1, 3, 1, 1, 1, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 5, 5, 3, 3, 3, 5, 5, 3, 5, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1, 3, 3, 3, 3, 3, 3, 1, 3, 1, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 6, 0, 2, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 5, 5, 3, 3, 5, 3, 5, 3, 3, 3, 3, 3, 3, 3, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 2, 2, 4, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 4, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 5, 5, 5, 5, 7, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1, 3, 1, 3, 3, 5, 3, 5, 3, 3, 1, 4, 2, 4, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 5, 5, 3, 5, 3, 5, 3, 5, 5, 3, 5, 3, 1, 1, 1, 5, 3, 1, 3, 3, 5, 3, 1, 1, 2, 2, 4, 2, 6, 2, 2, 2, 2, 6, 2, 2, 4, 2, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 5, 7, 5, 3, 5, 3, 3, 3, 3, 3, 5, 3, 5, 1, 1, 3, 5, 5, 1, 1, 3, 5, 3, 1, 3, 2, 2, 2, 4, 4, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 5, 5, 5, 3, 3, 5, 7, 3, 5, 5, 7, 5, 5, 3, 5, 3, 1, 3, 3, 3, 3, 3, 1, 5, 2, 2, 2, 2, 4, 4, 2, 4, 2, 2, 2, 2, 2, 6, 4, 2, 2, 2, 2, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 9, 7, 7, 7, 5, 7, 7, 7, 5, 7, 7, 7, 5, 7, 3, 7, 7, 7, 7, 7, 7, 3, 7, 5, 7, 5, 7, 1, 4, 4, 7, 6, 6, 6, 2, 2, 4, 2, 2, 2, 4, 4, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 3, 7, 5, 7, 7, 7, 7, 7, 3, 3, 7, 5, 7, 7, 3, 1, 2, 4, 6, 4, 2, 4, 2, 2, 2, 0, 0, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 5, 8, 1, 7, 7, 7, 7, 7, 3, 3, 7, 7, 7, 5, 3, 1, 2, 2, 4, 6, 4, 6, 2, 2, 2, 2, 2, 2, 2, 4, 2, 4, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 7, 7, 7, 5, 7, 8, 5, 7, 7, 7, 3, 7, 7, 7, 7, 7, 5, 3, 7, 5, 5, 5, 3, 1, 2, 2, 4, 2, 4, 6, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 8, 7, 7, 7, 5, 7, 7, 7, 7, 7, 7, 5, 7, 5, 7, 7, 7, 5, 1, 5, 5, 3, 5, 3, 1, 2, 2, 4, 2, 4, 4, 2, 2, 2, 4, 4, 2, 2, 2, 2, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 8, 7, 7, 7, 7, 7, 8, 5, 7, 7, 7, 3, 7, 7, 7, 7, 7, 5, 1, 5, 7, 5, 5, 1, 1, 0, 2, 2, 2, 2, 6, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 8, 7, 7, 7, 7, 7, 7, 5, 7, 7, 7, 3, 7, 7, 7, 7, 5, 3, 1, 5, 5, 3, 3, 1, 1, 2, 2, 2, 2, 2, 6, 2, 2, 4, 2, 2, 2, 2, 4, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 8, 7, 7, 7, 7, 7, 7, 7, 8, 5, 7, 7, 7, 1, 7, 5, 7, 7, 7, 3, 1, 5, 5, 1, 1, 1, 3, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 7, 7, 7, 5, 7, 7, 5, 7, 7, 7, 3, 7, 7, 7, 7, 7, 3, 3, 3, 5, 1, 3, 1, 1, 2, 2, 2, 2, 2, 6, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 8, 7, 7, 7, 5, 7, 8, 5, 7, 5, 7, 3, 7, 5, 7, 7, 5, 1, 5, 5, 3, 3, 1, 3, 1, 2, 4, 2, 2, 2, 4, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 4, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 5, 7, 5, 7, 3, 7, 5, 7, 7, 7, 1, 5, 5, 1, 1, 5, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 4, 2, 2, 2, 2, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 7, 7, 7, 5, 7, 7, 7, 7, 5, 7, 1, 7, 7, 7, 7, 5, 1, 5, 3, 1, 3, 3, 3, 3, 2, 2, 4, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 5, 5, 7, 1, 7, 3, 7, 7, 5, 1, 1, 3, 1, 1, 1, 3, 1, 2, 2, 2, 2, 2, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 6, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 5, 7, 1, 7, 5, 7, 3, 5, 1, 1, 3, 1, 1, 1, 1, 1, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 0, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 5, 7, 7, 7, 7, 8, 5, 7, 7, 7, 3, 7, 3, 7, 5, 3, 1, 1, 1, 1, 1, 1, 1, 1, 2, 6, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 6, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 7, 7, 8, 7, 7, 7, 7, 7, 5, 7, 7, 3, 7, 3, 7, 3, 3, 1, 3, 1, 1, 1, 3, 3, 1, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 7, 7, 7, 5, 7, 7, 7, 7, 5, 7, 1, 7, 5, 7, 3, 1, 1, 1, 1, 3, 3, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 7, 7, 7, 5, 7, 7, 7, 5, 5, 7, 3, 7, 3, 7, 3, 3, 1, 1, 1, 3, 1, 1, 3, 1, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 7, 7, 7, 5, 5, 7, 7, 7, 5, 7, 3, 7, 3, 5, 1, 1, 1, 3, 1, 1, 3, 1, 1, 1, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 7, 7, 7, 5, 7, 7, 7, 7, 5, 7, 1, 7, 3, 5, 1, 3, 3, 1, 1, 1, 1, 3, 3, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 8, 7, 7, 7, 5, 7, 7, 7, 7, 5, 7, 3, 7, 5, 5, 3, 3, 3, 1, 3, 3, 1, 1, 3, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 7, 7, 7, 5, 5, 7, 7, 7, 7, 7, 1, 5, 5, 3, 3, 1, 3, 1, 1, 3, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 5, 7, 7, 3, 5, 7, 7, 7, 7, 7, 1, 5, 3, 3, 1, 1, 1, 1, 1, 1, 3, 3, 1, 3, 4, 2, 4, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 7, 7, 7, 5, 7, 7, 7, 7, 5, 7, 3, 5, 3, 1, 1, 3, 3, 1, 3, 3, 1, 1, 1, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 7, 7, 7, 7, 7, 5, 7, 7, 7, 5, 3, 5, 3, 1, 1, 3, 3, 1, 1, 3, 3, 1, 1, 1, 4, 4, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 7, 7, 7, 5, 5, 7, 7, 7, 7, 7, 3, 5, 3, 3, 1, 3, 1, 3, 3, 1, 3, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 2, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 7, 7, 7, 5, 7, 7, 7, 7, 5, 5, 3, 3, 1, 1, 3, 1, 3, 3, 1, 3, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 7, 7, 7, 5, 5, 7, 7, 5, 5, 5, 3, 1, 3, 1, 3, 3, 3, 3, 3, 3, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 7, 7, 7, 5, 5, 7, 5, 7, 1, 3, 3, 1, 5, 3, 3, 3, 3, 3, 3, 3, 1, 3, 3, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 6, 2, 2, 2, 2, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-9, 9, 7, 7, 7, 7, 7, 5, 5, 7, 7, 7, 3, 3, 3, 3, 3, 3, 1, 3, 3, 3, 3, 1, 1, 3, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 0, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 7, 7, 7, 5, 7, 7, 5, 5, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1, 3, 1, 1, 1, 1, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 4, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 8, 7, 7, 7, 7, 7, 3, 7, 7, 5, 3, 3, 3, 1, 3, 3, 5, 3, 1, 3, 3, 3, 3, 1, 1, 1, 3, 2, 2, 4, 2, 2, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 7, 7, 7, 3, 7, 7, 3, 3, 3, 3, 3, 3, 3, 1, 3, 1, 1, 3, 3, 3, 3, 1, 1, 1, 2, 4, 4, 2, 4, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 7, 7, 5, 5, 7, 7, 1, 3, 3, 1, 3, 3, 3, 3, 3, 3, 3, 5, 3, 3, 1, 3, 1, 1, 4, 2, 4, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 6, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 5, 7, 7, 7, 7, 7, 3, 3, 3, 3, 3, 3, 1, 3, 3, 3, 3, 1, 3, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 3, 5, 3, 3, 3, 1, 3, 1, 1, 3, 3, 5, 1, 1, 1, 1, 1, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 6, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 7, 7, 7, 7, 3, 7, 7, 3, 1, 1, 3, 3, 5, 5, 5, 1, 3, 3, 3, 5, 1, 1, 3, 3, 1, 2, 2, 2, 2, 4, 4, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 2, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 7, 7, 7, 7, 3, 7, 7, 5, 3, 3, 3, 3, 5, 1, 3, 3, 3, 3, 3, 1, 3, 3, 3, 3, 1, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 7, 5, 7, 7, 3, 5, 7, 3, 1, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1, 3, 3, 1, 3, 1, 3, 4, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 7, 7, 7, 7, 5, 5, 7, 1, 3, 3, 3, 3, 3, 1, 3, 3, 1, 1, 1, 3, 1, 1, 1, 1, 3, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 7, 7, 7, 7, 5, 7, 7, 3, 1, 1, 3, 3, 3, 3, 5, 3, 3, 5, 3, 3, 1, 3, 3, 1, 3, 4, 2, 4, 4, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 7, 7, 7, 7, 5, 7, 7, 1, 1, 3, 3, 3, 3, 3, 3, 3, 1, 3, 5, 3, 1, 3, 3, 1, 1, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 7, 5, 7, 5, 5, 5, 7, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1, 3, 3, 2, 2, 4, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 7, 7, 5, 5, 1, 7, 3, 1, 3, 3, 3, 5, 3, 3, 3, 3, 3, 3, 3, 3, 1, 3, 3, 3, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 7, 7, 7, 7, 5, 5, 7, 3, 3, 1, 1, 3, 3, 3, 3, 3, 3, 3, 1, 3, 3, 3, 1, 1, 1, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 7, 7, 7, 5, 5, 3, 7, 7, 1, 3, 3, 5, 3, 5, 3, 3, 3, 3, 3, 3, 1, 3, 1, 3, 1, 4, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 7, 7, 7, 5, 1, 7, 5, 3, 3, 3, 5, 3, 3, 1, 1, 5, 3, 3, 3, 1, 3, 3, 3, 1, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 7, 7, 7, 7, 3, 5, 5, 1, 3, 3, 3, 3, 1, 3, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 7, 7, 5, 7, 1, 7, 7, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1, 1, 3, 1, 3, 1, 3, 1, 2, 2, 4, 2, 4, 2, 2, 2, 2, 4, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 7, 7, 5, 5, 3, 5, 7, 3, 3, 3, 3, 3, 3, 1, 3, 1, 3, 1, 3, 3, 3, 1, 3, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 5, 7, 7, 5, 5, 5, 5, 3, 7, 5, 3, 1, 3, 3, 3, 3, 3, 3, 1, 3, 3, 3, 1, 5, 1, 3, 1, 2, 2, 2, 2, 2, 2, 2, 2, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 7, 7, 5, 5, 3, 5, 5, 3, 3, 1, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1, 3, 3, 3, 1, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 7, 7, 5, 5, 3, 5, 5, 3, 3, 1, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1, 1, 3, 3, 1, 2, 4, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 7, 7, 5, 7, 3, 5, 5, 3, 3, 3, 3, 3, 5, 3, 3, 3, 1, 3, 1, 3, 3, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 5, 5, 5, 7, 3, 5, 3, 3, 5, 3, 5, 3, 3, 3, 1, 3, 5, 1, 3, 3, 1, 1, 5, 3, 2, 2, 2, 2, 2, 2, 2, 4, 4, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 7, 5, 3, 5, 5, 5, 5, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1, 1, 3, 3, 3, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 7, 5, 3, 7, 5, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1, 3, 1, 5, 3, 3, 3, 1, 3, 3, 4, 2, 2, 2, 4, 4, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 6, 2, 2, 2, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 7, 5, 5, 7, 5, 5, 5, 3, 3, 1, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1, 1, 3, 2, 2, 4, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 7, 5, 3, 3, 3, 5, 3, 3, 3, 3, 3, 3, 1, 3, 3, 1, 3, 3, 3, 3, 1, 1, 1, 1, 2, 2, 2, 2, 4, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
-9, 7, 8, 7, 7, 7, 5, 5, 5, 3, 5, 3, 3, 3, 3, 3, 1, 3, 3, 3, 3, 3, 1, 3, 1, 1, 3, 1, 3, 2, 2, 2, 2, 4, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 7, 7, 5, 3, 3, 5, 3, 3, 1, 5, 3, 5, 3, 1, 3, 3, 1, 1, 3, 3, 1, 1, 1, 3, 2, 4, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 8, 5, 5, 7, 7, 5, 3, 3, 5, 5, 3, 3, 3, 3, 3, 5, 1, 3, 1, 3, 3, 3, 1, 3, 1, 3, 3, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 5, 5, 5, 3, 3, 3, 3, 3, 3, 1, 1, 3, 3, 3, 1, 3, 3, 3, 1, 3, 3, 3, 3, 1, 3, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
-9, 7, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 1, 7, 7, 7, 7, 5, 3, 3, 1, 3, 5, 1, 3, 3, 1, 1, 1, 4, 2, 4, 2, 2, 2, 2, 2, 2, 2, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 8, 7, 7, 7, 7, 7, 7, 7, 7, 1, 3, 5, 5, 1, 5, 3, 3, 1, 5, 3, 1, 3, 5, 1, 1, 1, 2, 4, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 8, 7, 7, 8, 7, 5, 7, 7, 3, 5, 7, 7, 3, 1, 5, 1, 1, 3, 3, 1, 3, 3, 1, 1, 5, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 1, 5, 7, 7, 5, 3, 3, 1, 1, 3, 3, 1, 1, 3, 1, 1, 3, 2, 2, 4, 4, 4, 2, 4, 2, 2, 2, 2, 2, 2, 4, 4, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 8, 7, 7, 7, 7, 7, 7, 5, 1, 7, 7, 7, 3, 3, 3, 1, 1, 1, 3, 1, 1, 3, 1, 1, 1, 2, 2, 4, 2, 4, 2, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 5, 1, 7, 7, 5, 3, 3, 3, 1, 1, 1, 3, 1, 1, 3, 3, 1, 3, 4, 2, 4, 2, 2, 2, 2, 4, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 7, 8, 7, 7, 7, 7, 7, 7, 1, 7, 5, 5, 5, 3, 3, 1, 3, 1, 1, 1, 3, 3, 3, 3, 1, 2, 4, 4, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 1, 7, 7, 7, 7, 3, 1, 1, 3, 1, 1, 1, 3, 3, 3, 3, 1, 2, 4, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 8, 7, 5, 7, 7, 7, 5, 7, 7, 1, 5, 1, 5, 5, 3, 1, 1, 1, 3, 3, 1, 3, 5, 1, 5, 3, 2, 4, 2, 4, 2, 2, 4, 2, 4, 2, 2, 2, 4, 6, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 5, 7, 5, 7, 8, 7, 7, 7, 5, 5, 7, 1, 7, 7, 7, 3, 1, 3, 5, 5, 5, 1, 1, 5, 1, 5, 6, 4, 2, 4, 4, 2, 2, 7, 6, 4, 6, 2, 4, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 8, 5, 8, 8, 7, 7, 7, 7, 5, 7, 5, 7, 7, 7, 5, 3, 5, 7, 7, 5, 1, 1, 5, 1, 3, 4, 4, 2, 2, 2, 2, 2, 4, 6, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 7, 7, 8, 7, 7, 7, 7, 5, 7, 5, 7, 7, 7, 3, 1, 5, 7, 5, 3, 1, 1, 3, 1, 3, 2, 2, 2, 2, 4, 2, 4, 6, 4, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 8, 7, 8, 7, 7, 7, 8, 7, 7, 7, 1, 7, 7, 7, 3, 1, 3, 7, 5, 5, 1, 1, 5, 3, 3, 4, 2, 0, 2, 2, 4, 4, 6, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 8, 7, 7, 8, 7, 8, 7, 7, 1, 7, 1, 7, 7, 7, 3, 1, 3, 5, 5, 3, 3, 1, 3, 1, 5, 4, 2, 2, 2, 4, 2, 4, 6, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 8, 7, 7, 8, 7, 7, 7, 7, 3, 7, 1, 7, 7, 7, 1, 1, 5, 5, 5, 5, 1, 1, 3, 1, 5, 2, 2, 2, 2, 2, 2, 4, 6, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 8, 5, 8, 7, 7, 7, 7, 8, 8, 7, 3, 7, 3, 5, 5, 7, 3, 1, 5, 7, 5, 3, 1, 1, 3, 1, 3, 4, 2, 2, 4, 4, 4, 4, 6, 2, 2, 2, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 5, 8, 7, 7, 8, 7, 7, 8, 7, 3, 7, 3, 5, 5, 7, 5, 1, 5, 7, 5, 5, 1, 1, 3, 1, 1, 2, 2, 2, 4, 4, 2, 6, 6, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 5, 8, 7, 7, 8, 7, 7, 8, 7, 3, 7, 3, 5, 5, 7, 3, 1, 3, 7, 5, 5, 1, 1, 5, 1, 3, 4, 2, 2, 2, 4, 2, 4, 6, 2, 2, 2, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 9, 8, 5, 7, 7, 7, 8, 7, 7, 8, 7, 5, 7, 3, 7, 7, 8, 3, 1, 5, 5, 5, 3, 1, 1, 3, 1, 3, 4, 2, 2, 4, 4, 2, 4, 6, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 5, 5, 5, 5, 7, 5, 5, 7, 5, 1, 7, 3, 5, 3, 5, 3, 1, 1, 5, 5, 3, 3, 5, 5, 1, 3, 4, 2, 4, 4, 2, 2, 2, 4, 2, 4, 2, 4, 2, 4, 2, 0, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 8, 7, 5, 7, 7, 7, 7, 3, 7, 5, 5, 3, 7, 7, 7, 3, 7, 7, 7, 3, 3, 3, 3, 7, 6, 2, 6, 2, 4, 2, 4, 6, 2, 4, 2, 6, 2, 6, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 8, 7, 7, 7, 7, 1, 7, 7, 5, 5, 7, 7, 7, 5, 5, 5, 3, 7, 6, 2, 6, 4, 4, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 8, 7, 7, 8, 8, 7, 7, 7, 7, 8, 5, 7, 7, 5, 3, 7, 7, 5, 5, 5, 7, 7, 5, 7, 5, 1, 7, 7, 2, 6, 4, 2, 2, 4, 2, 2, 2, 2, 2, 4, 2, 2, 2, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 7, 8, 7, 7, 7, 7, 7, 8, 5, 7, 7, 3, 1, 7, 7, 7, 5, 5, 7, 7, 5, 5, 5, 3, 5, 6, 2, 6, 2, 2, 2, 4, 6, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 8, 7, 8, 8, 8, 7, 7, 7, 7, 7, 3, 7, 7, 7, 3, 7, 7, 3, 3, 5, 7, 7, 3, 3, 1, 3, 5, 4, 4, 4, 2, 2, 2, 2, 4, 2, 2, 0, 2, 2, 4, 0, 0, 0, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 8, 8, 7, 7, 8, 7, 7, 7, 5, 7, 7, 5, 3, 5, 7, 5, 3, 7, 5, 7, 3, 5, 3, 3, 5, 6, 2, 6, 4, 2, 2, 4, 6, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 7, 8, 7, 7, 8, 7, 7, 8, 5, 7, 7, 7, 3, 7, 7, 5, 1, 5, 7, 7, 3, 3, 3, 3, 5, 6, 2, 7, 4, 4, 4, 4, 4, 2, 2, 2, 2, 2, 2, 0, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 8, 7, 7, 8, 8, 3, 8, 7, 7, 8, 3, 7, 5, 5, 1, 7, 7, 5, 1, 5, 7, 7, 1, 3, 5, 5, 5, 6, 2, 6, 4, 2, 4, 4, 4, 2, 2, 2, 2, 0, 2, 2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 5, 3, 5, 5, 3, 1, 7, 7, 3, 1, 5, 7, 5, 3, 3, 5, 1, 5, 6, 2, 6, 4, 2, 4, 6, 6, 2, 2, 2, 2, 2, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 5, 7, 7, 7, 5, 3, 3, 3, 5, 3, 5, 1, 1, 5, 5, 1, 1, 3, 5, 3, 3, 1, 1, 3, 1, 3, 2, 2, 4, 4, 4, 2, 2, 2, 2, 4, 2, 2, 4, 2, 0, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 7, 7, 5, 7, 7, 5, 7, 3, 7, 7, 5, 5, 5, 3, 3, 3, 5, 5, 7, 1, 3, 5, 5, 7, 4, 2, 6, 4, 4, 2, 2, 2, 6, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 8, 7, 5, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 5, 7, 7, 7, 7, 3, 3, 5, 5, 1, 3, 5, 3, 3, 7, 6, 2, 4, 6, 6, 4, 4, 4, 2, 2, 2, 2, 4, 2, 4, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 9, 7, 8, 7, 7, 7, 8, 7, 7, 8, 8, 7, 7, 5, 5, 3, 5, 7, 7, 3, 3, 5, 5, 5, 5, 5, 7, 5, 6, 4, 2, 2, 4, 4, 2, 4, 2, 4, 2, 2, 4, 7, 4, 2, 0, 4, 4, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 8, 7, 7, 8, 7, 7, 7, 5, 7, 7, 7, 7, 5, 5, 7, 5, 5, 7, 5, 3, 3, 7, 5, 3, 5, 7, 7, 6, 6, 2, 4, 2, 2, 4, 2, 2, 2, 2, 2, 2, 6, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 8, 7, 7, 7, 8, 8, 8, 7, 8, 7, 7, 7, 5, 5, 5, 1, 5, 5, 3, 3, 3, 5, 5, 3, 3, 5, 5, 6, 2, 2, 4, 4, 4, 6, 6, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 9, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 5, 7, 7, 5, 5, 7, 5, 5, 5, 5, 5, 5, 5, 5, 5, 7, 6, 2, 6, 2, 4, 6, 4, 6, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 8, 7, 7, 8, 8, 8, 7, 7, 8, 7, 7, 7, 5, 7, 7, 5, 7, 7, 5, 3, 3, 5, 5, 3, 3, 3, 5, 6, 6, 2, 6, 4, 4, 4, 2, 6, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 8, 7, 7, 7, 8, 7, 8, 7, 7, 7, 7, 7, 5, 7, 3, 3, 5, 7, 1, 5, 5, 5, 5, 3, 5, 5, 3, 7, 4, 2, 6, 2, 6, 4, 4, 6, 2, 2, 2, 2, 4, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 9, 9, 7, 7, 8, 8, 8, 7, 7, 8, 7, 7, 7, 7, 5, 7, 3, 5, 7, 1, 5, 3, 7, 5, 3, 5, 3, 5, 7, 2, 2, 4, 4, 4, 4, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 9, 7, 7, 7, 8, 7, 7, 7, 7, 7, 3, 7, 5, 5, 5, 5, 3, 5, 1, 1, 3, 3, 3, 3, 3, 5, 5, 7, 4, 2, 2, 4, 2, 4, 4, 4, 2, 4, 4, 4, 4, 4, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 8, 7, 5, 7, 5, 7, 8, 5, 7, 7, 5, 7, 5, 3, 3, 5, 3, 5, 1, 3, 1, 3, 3, 3, 3, 1, 1, 6, 2, 4, 2, 2, 2, 4, 2, 4, 2, 2, 4, 2, 2, 4, 2, 2, 2, 0, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 5, 7, 5, 5, 5, 3, 3, 5, 3, 1, 1, 5, 5, 1, 3, 3, 5, 6, 2, 4, 2, 4, 6, 6, 2, 2, 6, 2, 2, 2, 4, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 9, 8, 7, 5, 7, 7, 7, 7, 5, 7, 7, 5, 7, 5, 3, 3, 3, 3, 5, 3, 3, 5, 5, 3, 3, 3, 3, 3, 4, 2, 2, 2, 2, 2, 4, 4, 2, 2, 2, 4, 6, 2, 0, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 8, 7, 7, 5, 5, 7, 7, 7, 7, 5, 7, 7, 5, 7, 7, 7, 5, 7, 7, 7, 5, 8, 3, 5, 5, 5, 3, 6, 6, 6, 6, 6, 2, 6, 6, 2, 6, 4, 6, 6, 2, 2, 0, 0, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 8, 7, 8, 7, 7, 8, 7, 7, 8, 7, 7, 7, 7, 7, 7, 8, 5, 7, 8, 7, 7, 8, 5, 7, 5, 7, 3, 7, 7, 7, 7, 4, 2, 4, 6, 4, 6, 6, 7, 2, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 8, 7, 8, 5, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 5, 7, 7, 7, 7, 8, 1, 7, 5, 5, 7, 7, 6, 4, 6, 6, 2, 6, 4, 2, 6, 4, 6, 4, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 8, 7, 8, 5, 8, 7, 8, 7, 7, 7, 7, 7, 5, 7, 7, 7, 5, 7, 7, 7, 5, 8, 1, 5, 5, 5, 7, 6, 6, 4, 6, 4, 4, 6, 4, 4, 7, 4, 6, 2, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 9, 7, 7, 8, 7, 7, 7, 8, 7, 8, 7, 7, 7, 5, 7, 7, 8, 5, 7, 7, 7, 5, 8, 1, 3, 5, 5, 5, 2, 6, 4, 4, 6, 2, 6, 2, 2, 2, 2, 4, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 8, 7, 8, 7, 8, 8, 7, 7, 7, 7, 7, 7, 5, 7, 7, 7, 5, 7, 7, 7, 7, 7, 1, 3, 7, 5, 7, 2, 4, 4, 6, 6, 2, 6, 4, 2, 2, 0, 0, 2, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 9, 8, 7, 8, 7, 7, 8, 5, 5, 8, 7, 7, 7, 3, 5, 7, 7, 5, 7, 7, 7, 7, 7, 3, 5, 5, 7, 5, 4, 7, 4, 6, 6, 2, 6, 6, 0, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 8, 7, 8, 5, 5, 7, 8, 5, 7, 7, 3, 5, 7, 7, 5, 7, 7, 7, 5, 7, 1, 3, 5, 5, 7, 2, 6, 4, 7, 6, 4, 6, 6, 2, 2, 4, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 7, 7, 5, 7, 7, 7, 3, 7, 7, 7, 5, 7, 1, 1, 5, 7, 3, 4, 4, 4, 6, 4, 2, 4, 4, 0, 2, 0, 2, 2, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 8, 7, 8, 8, 7, 7, 7, 7, 8, 7, 7, 7, 3, 7, 7, 8, 3, 7, 7, 7, 7, 8, 1, 3, 7, 7, 3, 6, 6, 2, 4, 6, 2, 2, 6, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 8, 7, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 5, 7, 7, 8, 3, 7, 7, 7, 7, 7, 1, 3, 5, 5, 5, 6, 6, 6, 6, 6, 4, 6, 6, 2, 2, 0, 2, 2, 2, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 8, 7, 8, 7, 8, 7, 7, 7, 7, 7, 7, 7, 1, 5, 7, 8, 3, 7, 7, 5, 7, 7, 1, 5, 5, 7, 5, 4, 4, 6, 6, 6, 2, 6, 4, 2, 2, 2, 2, 4, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 8, 7, 8, 7, 7, 7, 7, 7, 7, 7, 5, 7, 3, 5, 3, 8, 5, 7, 7, 7, 7, 7, 1, 3, 3, 5, 5, 4, 6, 2, 6, 6, 2, 6, 6, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 7, 7, 7, 7, 3, 7, 7, 7, 5, 1, 3, 7, 7, 3, 3, 3, 5, 5, 5, 1, 3, 3, 1, 3, 2, 2, 4, 4, 4, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 8, 7, 7, 3, 7, 7, 7, 7, 1, 7, 5, 5, 7, 7, 5, 7, 8, 7, 5, 7, 5, 7, 5, 7, 3, 7, 6, 4, 6, 6, 0, 4, 2, 4, 6, 2, 6, 2, 2, 4, 2, 2, 4, 0, 0, 0, 2, 0, 2, 2, 0, 0, 0, 0, 0, 0,
-9, 8, 8, 7, 8, 7, 8, 7, 8, 5, 8, 7, 7, 8, 7, 7, 7, 7, 5, 7, 7, 7, 1, 7, 5, 7, 3, 7, 7, 6, 6, 6, 7, 7, 4, 2, 4, 6, 2, 6, 2, 2, 0, 2, 2, 0, 2, 2, 0, 2, 6, 2, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 8, 7, 7, 8, 7, 5, 7, 5, 5, 7, 7, 7, 7, 7, 7, 8, 7, 7, 1, 7, 3, 5, 3, 5, 7, 6, 7, 4, 6, 6, 4, 4, 2, 2, 4, 4, 2, 4, 2, 2, 0, 2, 2, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0,
-7, 9, 8, 7, 8, 7, 8, 7, 7, 7, 7, 7, 5, 8, 7, 7, 7, 5, 7, 7, 7, 7, 5, 7, 5, 7, 5, 5, 5, 7, 6, 4, 4, 6, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 8, 7, 7, 5, 7, 7, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 3, 7, 5, 5, 5, 7, 5, 7, 6, 4, 7, 6, 2, 4, 2, 2, 2, 0, 2, 2, 0, 2, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 8, 7, 8, 7, 8, 5, 8, 5, 8, 7, 7, 7, 5, 5, 7, 7, 5, 7, 7, 7, 5, 5, 1, 5, 5, 7, 5, 7, 6, 2, 6, 6, 2, 2, 2, 2, 2, 0, 2, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 9, 7, 7, 8, 7, 8, 7, 7, 3, 7, 7, 7, 8, 7, 7, 7, 3, 7, 7, 7, 7, 3, 7, 5, 7, 5, 7, 3, 7, 6, 4, 6, 6, 2, 4, 2, 2, 2, 0, 2, 0, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 8, 7, 8, 7, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 5, 5, 7, 7, 7, 3, 5, 3, 7, 3, 5, 5, 6, 6, 6, 6, 6, 4, 4, 4, 6, 2, 0, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 9, 8, 7, 8, 7, 7, 7, 7, 5, 8, 7, 5, 7, 7, 5, 7, 7, 5, 7, 8, 7, 3, 7, 3, 5, 5, 7, 5, 7, 6, 4, 7, 6, 2, 4, 2, 4, 2, 0, 2, 2, 2, 2, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 8, 7, 8, 7, 7, 7, 5, 7, 8, 7, 7, 7, 7, 5, 7, 7, 3, 7, 7, 5, 3, 7, 5, 7, 7, 7, 3, 7, 6, 4, 6, 6, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 8, 7, 7, 7, 7, 7, 8, 7, 5, 7, 5, 3, 7, 7, 5, 7, 7, 5, 3, 5, 5, 7, 3, 5, 1, 6, 4, 6, 6, 6, 2, 4, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 5, 7, 5, 5, 7, 7, 3, 7, 7, 5, 1, 5, 5, 7, 5, 7, 3, 7, 2, 2, 6, 6, 2, 2, 2, 4, 2, 2, 2, 2, 4, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 7, 7, 5, 7, 3, 7, 3, 5, 5, 7, 1, 7, 5, 3, 7, 7, 5, 3, 3, 7, 3, 3, 3, 3, 4, 2, 4, 2, 4, 4, 2, 2, 4, 2, 2, 2, 0, 2, 2, 2, 2, 2, 0, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 8, 7, 7, 5, 7, 5, 7, 7, 8, 5, 7, 8, 5, 5, 5, 7, 3, 7, 7, 7, 5, 7, 1, 5, 7, 7, 7, 4, 2, 2, 6, 6, 2, 2, 2, 2, 2, 2, 6, 6, 2, 0, 0, 0, 4, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 8, 7, 8, 7, 7, 7, 7, 7, 7, 5, 7, 7, 5, 5, 7, 7, 5, 7, 7, 7, 5, 7, 1, 5, 7, 7, 5, 2, 2, 2, 2, 6, 2, 4, 2, 2, 4, 2, 2, 4, 2, 0, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 8, 7, 8, 7, 7, 7, 7, 7, 7, 3, 7, 8, 5, 5, 7, 7, 3, 7, 7, 7, 7, 7, 3, 5, 7, 5, 3, 6, 2, 2, 4, 6, 2, 2, 2, 2, 4, 4, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 8, 7, 8, 7, 8, 7, 7, 7, 7, 5, 7, 7, 5, 3, 7, 5, 5, 7, 7, 7, 5, 5, 1, 5, 5, 3, 1, 4, 2, 2, 6, 4, 6, 6, 2, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 8, 7, 8, 7, 7, 7, 7, 7, 8, 5, 5, 8, 7, 5, 7, 5, 5, 7, 7, 3, 3, 5, 1, 3, 5, 5, 3, 2, 2, 2, 4, 6, 4, 4, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 8, 7, 8, 8, 7, 7, 8, 3, 7, 7, 5, 5, 5, 5, 5, 7, 5, 5, 3, 5, 3, 3, 7, 5, 3, 4, 4, 4, 4, 6, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 8, 7, 8, 7, 7, 8, 7, 7, 8, 3, 5, 7, 3, 1, 3, 5, 3, 7, 5, 7, 5, 5, 3, 7, 3, 3, 1, 4, 4, 2, 4, 4, 4, 4, 2, 4, 4, 2, 2, 4, 4, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 8, 7, 7, 7, 7, 7, 8, 5, 7, 7, 3, 1, 5, 3, 3, 5, 5, 3, 3, 5, 5, 3, 5, 3, 3, 2, 2, 4, 2, 2, 2, 2, 2, 4, 2, 4, 2, 4, 4, 2, 2, 2, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 7, 5, 7, 3, 5, 5, 5, 3, 7, 3, 5, 7, 3, 1, 3, 5, 3, 5, 3, 3, 3, 5, 1, 3, 2, 2, 2, 4, 2, 4, 2, 2, 4, 4, 4, 2, 2, 2, 6, 2, 2, 2, 4, 2, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 8, 8, 7, 7, 7, 7, 5, 7, 7, 5, 7, 7, 7, 7, 7, 5, 1, 5, 7, 3, 5, 3, 5, 3, 7, 3, 5, 4, 4, 6, 4, 7, 4, 2, 2, 2, 2, 4, 6, 2, 6, 6, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 5, 5, 7, 7, 5, 7, 7, 3, 7, 7, 5, 1, 7, 7, 1, 7, 5, 5, 4, 2, 6, 6, 4, 4, 2, 2, 0, 2, 2, 4, 2, 2, 2, 0, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 7, 7, 7, 7, 5, 7, 7, 5, 7, 8, 7, 5, 5, 7, 1, 7, 7, 3, 1, 5, 7, 3, 7, 5, 3, 2, 2, 7, 4, 6, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 8, 7, 7, 7, 7, 7, 7, 8, 7, 5, 7, 7, 7, 5, 7, 7, 3, 7, 7, 5, 1, 5, 7, 3, 3, 3, 1, 2, 2, 7, 6, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 7, 7, 7, 7, 5, 7, 7, 5, 7, 7, 7, 5, 5, 7, 3, 7, 7, 5, 3, 5, 5, 5, 3, 3, 1, 2, 2, 6, 2, 4, 2, 2, 2, 4, 2, 2, 2, 4, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 8, 7, 7, 7, 8, 5, 7, 7, 7, 3, 7, 8, 7, 5, 7, 7, 3, 7, 5, 1, 3, 1, 5, 3, 5, 1, 1, 2, 2, 6, 4, 4, 2, 2, 2, 4, 2, 2, 2, 4, 2, 4, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 7, 7, 7, 7, 5, 7, 7, 3, 7, 7, 7, 5, 5, 7, 3, 7, 5, 1, 3, 3, 3, 5, 5, 3, 1, 2, 4, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 3, 7, 8, 7, 7, 5, 7, 5, 7, 7, 5, 1, 1, 3, 5, 5, 5, 1, 2, 2, 6, 6, 4, 2, 2, 2, 2, 2, 4, 2, 4, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 5, 7, 7, 5, 5, 5, 7, 1, 7, 7, 3, 1, 1, 5, 5, 5, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 5, 7, 7, 7, 5, 5, 7, 3, 7, 7, 3, 1, 1, 3, 5, 3, 1, 1, 0, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 4, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 8, 7, 7, 7, 7, 7, 5, 7, 7, 3, 7, 7, 7, 5, 7, 7, 1, 7, 7, 3, 3, 1, 3, 3, 5, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 7, 8, 7, 5, 5, 7, 3, 7, 7, 7, 5, 7, 7, 5, 5, 7, 3, 1, 1, 1, 1, 5, 1, 1, 2, 2, 2, 2, 4, 4, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 8, 7, 7, 7, 7, 7, 5, 7, 7, 3, 7, 7, 7, 5, 7, 7, 1, 5, 5, 1, 1, 1, 1, 3, 3, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 5, 7, 7, 5, 5, 7, 3, 7, 7, 7, 5, 5, 7, 3, 5, 5, 3, 1, 1, 1, 1, 1, 1, 1, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 7, 5, 7, 7, 7, 7, 7, 5, 7, 7, 5, 5, 5, 5, 1, 5, 1, 1, 3, 3, 1, 3, 1, 1, 1, 2, 4, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 4, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 8, 7, 7, 7, 7, 7, 5, 7, 7, 3, 7, 5, 5, 3, 5, 3, 1, 5, 3, 1, 1, 1, 1, 1, 1, 3, 1, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 1, 7, 7, 7, 5, 5, 5, 1, 3, 3, 3, 1, 1, 3, 1, 1, 1, 1, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 3, 7, 5, 7, 3, 3, 3, 1, 1, 5, 1, 1, 1, 3, 3, 1, 1, 1, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 3, 7, 7, 7, 3, 3, 3, 3, 3, 3, 1, 1, 1, 3, 1, 1, 3, 1, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 7, 5, 7, 7, 5, 7, 7, 1, 7, 5, 5, 3, 5, 5, 3, 3, 5, 3, 3, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 4, 2, 2, 2, 4, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 8, 7, 7, 7, 7, 7, 5, 7, 7, 1, 7, 7, 3, 5, 5, 3, 1, 3, 3, 3, 1, 1, 3, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 8, 7, 7, 7, 7, 7, 7, 7, 1, 7, 5, 5, 3, 3, 3, 1, 3, 3, 3, 1, 3, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 8, 7, 7, 7, 7, 7, 7, 7, 7, 3, 7, 5, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1, 1, 1, 1, 1, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 2, 2, 2, 2, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 7, 7, 7, 5, 5, 7, 7, 3, 3, 3, 3, 3, 3, 3, 3, 5, 3, 3, 1, 3, 1, 1, 1, 3, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 3, 7, 3, 3, 3, 1, 3, 1, 3, 3, 3, 3, 3, 3, 1, 3, 3, 3, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 8, 7, 7, 7, 7, 7, 7, 7, 7, 3, 3, 3, 3, 3, 3, 3, 1, 1, 1, 3, 3, 1, 1, 1, 3, 3, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 7, 5, 7, 7, 7, 7, 5, 1, 7, 5, 3, 5, 3, 3, 3, 1, 3, 1, 3, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 0, 2, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 7, 5, 7, 5, 5, 7, 7, 3, 5, 3, 3, 3, 3, 5, 3, 3, 3, 1, 3, 3, 1, 1, 1, 5, 3, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 7, 7, 7, 5, 5, 7, 7, 3, 5, 3, 1, 3, 3, 3, 1, 3, 3, 3, 1, 3, 3, 1, 1, 1, 3, 2, 2, 2, 2, 2, 4, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 4, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 7, 7, 7, 7, 7, 5, 7, 1, 3, 3, 1, 3, 3, 3, 3, 1, 3, 3, 3, 3, 3, 3, 1, 3, 3, 2, 2, 2, 2, 2, 4, 2, 2, 2, 4, 4, 2, 4, 2, 2, 2, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 8, 7, 7, 7, 7, 5, 5, 7, 5, 1, 5, 3, 1, 3, 3, 3, 3, 3, 3, 3, 1, 1, 1, 1, 1, 1, 3, 2, 2, 2, 2, 4, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 7, 7, 7, 5, 5, 7, 3, 1, 3, 3, 3, 3, 3, 3, 3, 3, 1, 3, 3, 1, 3, 3, 1, 3, 3, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 5, 7, 3, 5, 7, 5, 1, 3, 1, 1, 3, 5, 3, 1, 3, 3, 3, 1, 3, 1, 3, 1, 1, 3, 2, 2, 2, 4, 4, 4, 2, 2, 2, 2, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 8, 7, 7, 5, 7, 5, 7, 5, 5, 3, 3, 5, 3, 3, 1, 3, 3, 3, 1, 1, 3, 3, 1, 3, 1, 3, 1, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 4, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 7, 7, 7, 5, 7, 5, 7, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 2, 0, 2, 2, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 5, 7, 5, 7, 7, 7, 1, 3, 3, 3, 3, 3, 3, 3, 3, 5, 3, 3, 3, 3, 3, 3, 3, 1, 2, 4, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 6, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 1, 3, 3, 3, 3, 3, 3, 3, 1, 1, 1, 3, 3, 3, 1, 3, 3, 3, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 7, 7, 7, 5, 5, 5, 5, 3, 3, 3, 3, 3, 5, 5, 3, 3, 5, 1, 3, 3, 3, 1, 3, 3, 1, 4, 4, 2, 2, 2, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 0, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 7, 7, 3, 5, 5, 5, 1, 3, 3, 3, 3, 5, 3, 3, 1, 3, 1, 3, 3, 3, 1, 3, 3, 1, 4, 2, 2, 2, 2, 4, 2, 2, 4, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 0, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 7, 7, 7, 5, 7, 7, 1, 3, 1, 3, 3, 3, 7, 7, 3, 3, 3, 3, 1, 3, 3, 1, 1, 1, 1, 4, 2, 2, 2, 4, 2, 6, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 7, 7, 7, 3, 7, 5, 5, 1, 1, 5, 3, 3, 5, 3, 3, 3, 3, 3, 3, 1, 3, 1, 1, 3, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 7, 5, 7, 5, 5, 5, 5, 3, 1, 3, 3, 5, 3, 3, 3, 3, 3, 1, 3, 1, 1, 3, 1, 3, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 5, 5, 7, 5, 5, 5, 1, 3, 1, 3, 5, 5, 3, 1, 3, 3, 3, 3, 3, 1, 3, 3, 1, 3, 3, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 7, 7, 7, 5, 7, 5, 3, 1, 3, 3, 3, 3, 5, 1, 3, 3, 1, 1, 1, 3, 3, 1, 1, 1, 3, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 5, 7, 7, 5, 7, 3, 3, 3, 3, 3, 5, 3, 3, 3, 3, 3, 1, 3, 3, 3, 1, 1, 1, 3, 4, 4, 4, 2, 2, 2, 4, 4, 2, 2, 4, 2, 2, 2, 2, 2, 4, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 5, 7, 5, 5, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1, 3, 3, 1, 3, 1, 1, 3, 3, 3, 3, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 7, 5, 7, 5, 5, 5, 5, 3, 3, 3, 3, 3, 1, 3, 3, 1, 3, 3, 3, 5, 1, 3, 1, 3, 1, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 7, 5, 7, 3, 5, 5, 5, 3, 5, 3, 3, 3, 3, 3, 1, 3, 3, 1, 3, 3, 1, 3, 1, 3, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 5, 7, 3, 5, 5, 3, 1, 3, 3, 3, 3, 1, 1, 3, 3, 3, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 7, 5, 7, 3, 5, 5, 3, 1, 1, 5, 3, 5, 3, 3, 3, 3, 3, 1, 3, 1, 3, 1, 3, 3, 3, 4, 4, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 4, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 7, 5, 7, 3, 5, 3, 5, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 5, 1, 3, 1, 3, 3, 3, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 5, 7, 5, 5, 5, 3, 1, 1, 5, 1, 3, 5, 3, 1, 1, 1, 3, 3, 1, 3, 1, 1, 1, 1, 4, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 7, 5, 7, 3, 5, 3, 5, 3, 5, 5, 1, 3, 3, 3, 3, 1, 1, 1, 3, 3, 3, 1, 3, 3, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 0, 2, 2, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 7, 7, 7, 3, 3, 5, 3, 3, 3, 3, 1, 5, 3, 3, 1, 1, 3, 3, 1, 1, 3, 1, 1, 1, 1, 2, 2, 2, 4, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 7, 5, 7, 5, 3, 5, 5, 5, 3, 3, 3, 3, 3, 3, 3, 1, 3, 1, 3, 3, 1, 3, 1, 1, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 3, 7, 3, 3, 3, 5, 3, 3, 3, 1, 3, 5, 3, 3, 3, 1, 3, 3, 1, 3, 3, 1, 3, 3, 4, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 5, 7, 5, 3, 7, 3, 3, 3, 3, 3, 3, 1, 3, 3, 3, 3, 3, 1, 3, 3, 3, 3, 3, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 7, 5, 7, 5, 5, 7, 7, 3, 3, 1, 3, 5, 1, 3, 3, 3, 1, 3, 3, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 7, 3, 5, 5, 5, 5, 3, 3, 3, 3, 5, 3, 3, 5, 1, 1, 3, 3, 3, 3, 1, 3, 1, 3, 1, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 5, 7, 5, 3, 7, 1, 3, 3, 3, 3, 3, 3, 5, 1, 3, 1, 3, 1, 3, 3, 1, 1, 3, 3, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 7, 3, 7, 3, 3, 5, 5, 3, 1, 3, 3, 5, 3, 5, 3, 5, 3, 3, 3, 3, 1, 3, 1, 3, 1, 2, 2, 2, 2, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 7, 5, 7, 3, 3, 5, 3, 3, 1, 3, 3, 3, 3, 3, 3, 3, 3, 1, 3, 3, 3, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 7, 3, 7, 5, 5, 7, 5, 1, 3, 5, 3, 3, 3, 3, 3, 3, 3, 1, 3, 3, 3, 3, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 7, 3, 5, 3, 3, 5, 3, 5, 3, 3, 3, 1, 3, 3, 3, 3, 3, 3, 3, 1, 3, 3, 3, 1, 1, 4, 4, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 5, 5, 3, 3, 5, 5, 3, 3, 5, 3, 3, 1, 3, 3, 3, 1, 1, 3, 1, 3, 1, 3, 3, 1, 4, 2, 4, 2, 4, 4, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 7, 3, 5, 7, 3, 5, 5, 3, 3, 3, 3, 3, 3, 3, 3, 5, 3, 3, 3, 3, 1, 1, 3, 1, 1, 4, 4, 2, 4, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 7, 5, 5, 5, 5, 5, 3, 3, 3, 3, 3, 5, 3, 3, 3, 3, 3, 3, 3, 1, 1, 3, 3, 1, 3, 4, 2, 2, 2, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 5, 7, 5, 5, 5, 5, 3, 1, 3, 3, 3, 1, 5, 3, 3, 3, 5, 3, 3, 1, 3, 3, 3, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 7, 5, 5, 5, 5, 5, 7, 3, 3, 3, 3, 3, 3, 3, 1, 3, 1, 3, 3, 1, 1, 3, 1, 3, 1, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 5, 3, 5, 5, 3, 5, 3, 3, 1, 5, 3, 3, 3, 5, 5, 3, 5, 3, 3, 3, 5, 1, 3, 1, 3, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 8, 7, 7, 3, 7, 7, 5, 8, 7, 3, 7, 7, 7, 7, 7, 7, 5, 7, 7, 8, 5, 7, 1, 3, 5, 7, 7, 6, 6, 4, 6, 4, 6, 2, 4, 4, 6, 6, 4, 6, 2, 0, 0, 2, 2, 0, 0, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 8, 8, 8, 5, 7, 8, 7, 8, 7, 1, 7, 7, 8, 7, 3, 8, 7, 7, 7, 8, 5, 7, 5, 3, 1, 7, 3, 6, 7, 2, 4, 4, 2, 2, 6, 2, 6, 4, 6, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0,
-8, 9, 7, 8, 7, 7, 7, 7, 7, 8, 7, 3, 7, 7, 8, 7, 7, 8, 7, 7, 7, 7, 7, 7, 5, 1, 1, 7, 3, 6, 6, 2, 6, 6, 4, 2, 2, 2, 4, 6, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 9, 8, 8, 7, 5, 7, 8, 7, 8, 7, 1, 7, 7, 7, 7, 7, 8, 5, 7, 7, 7, 8, 7, 5, 5, 3, 7, 3, 7, 4, 2, 4, 4, 4, 2, 6, 2, 6, 6, 4, 4, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 8, 7, 5, 5, 8, 8, 7, 7, 7, 1, 7, 7, 7, 5, 7, 8, 7, 7, 7, 7, 7, 7, 3, 3, 3, 7, 5, 4, 6, 4, 4, 2, 4, 2, 6, 2, 6, 4, 2, 4, 2, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 8, 7, 5, 3, 7, 7, 5, 7, 5, 1, 7, 3, 5, 5, 5, 7, 7, 7, 7, 7, 5, 7, 7, 1, 1, 7, 7, 7, 2, 4, 6, 6, 2, 4, 4, 2, 2, 4, 4, 2, 2, 6, 2, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 8, 7, 7, 7, 5, 7, 5, 7, 7, 1, 7, 7, 7, 7, 5, 7, 3, 7, 7, 7, 7, 7, 3, 5, 7, 5, 5, 4, 7, 2, 2, 7, 2, 0, 4, 2, 2, 2, 4, 2, 6, 4, 4, 4, 2, 2, 2, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 8, 7, 7, 7, 7, 7, 7, 8, 7, 1, 7, 7, 7, 7, 3, 7, 5, 7, 7, 7, 7, 7, 5, 7, 7, 7, 7, 4, 7, 2, 2, 4, 2, 2, 4, 2, 2, 2, 2, 0, 2, 2, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 8, 8, 7, 7, 7, 7, 7, 7, 7, 1, 7, 7, 5, 7, 7, 7, 5, 7, 7, 7, 7, 7, 5, 3, 5, 5, 5, 6, 6, 4, 4, 6, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 8, 7, 5, 7, 7, 7, 7, 8, 7, 1, 7, 8, 7, 7, 5, 7, 5, 7, 7, 7, 5, 5, 3, 3, 5, 5, 5, 2, 6, 2, 6, 4, 4, 6, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 8, 7, 5, 7, 7, 7, 7, 8, 7, 1, 7, 7, 7, 5, 7, 7, 5, 5, 7, 7, 7, 7, 7, 5, 7, 5, 3, 2, 4, 2, 4, 6, 4, 2, 6, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 1, 7, 7, 5, 5, 5, 7, 7, 5, 7, 7, 7, 7, 3, 1, 3, 3, 5, 4, 4, 4, 6, 6, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 3, 7, 7, 5, 5, 7, 7, 5, 5, 7, 7, 7, 5, 5, 3, 7, 5, 5, 6, 2, 4, 7, 6, 6, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 8, 7, 7, 8, 7, 5, 7, 7, 7, 1, 7, 7, 5, 3, 3, 7, 3, 5, 7, 7, 7, 5, 5, 3, 5, 5, 3, 4, 6, 2, 4, 6, 2, 4, 4, 2, 2, 2, 2, 4, 4, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 5, 3, 3, 3, 5, 7, 5, 3, 5, 7, 5, 3, 3, 5, 3, 1, 5, 3, 5, 1, 1, 3, 5, 3, 3, 4, 4, 2, 4, 2, 2, 2, 4, 2, 4, 2, 4, 2, 4, 4, 2, 2, 2, 2, 2, 2, 0, 2, 2, 2, 0, 0, 0, 0, 0, 0,
-9, 8, 8, 5, 8, 7, 7, 3, 8, 8, 7, 1, 7, 7, 7, 7, 5, 7, 1, 7, 7, 7, 3, 7, 1, 1, 7, 7, 7, 2, 2, 4, 0, 6, 6, 0, 2, 2, 2, 6, 4, 2, 4, 2, 0, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 8, 3, 8, 7, 8, 1, 8, 8, 7, 1, 7, 8, 7, 7, 5, 7, 1, 7, 7, 8, 5, 7, 3, 1, 7, 7, 5, 6, 6, 2, 0, 4, 2, 0, 2, 2, 4, 4, 2, 2, 4, 4, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 8, 5, 8, 8, 7, 3, 7, 8, 8, 1, 7, 8, 8, 7, 5, 7, 1, 5, 7, 7, 5, 7, 1, 3, 7, 7, 5, 6, 2, 4, 0, 7, 6, 0, 2, 0, 2, 2, 2, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 8, 3, 8, 8, 8, 3, 8, 8, 7, 1, 7, 8, 7, 7, 7, 7, 1, 5, 7, 7, 3, 7, 1, 1, 7, 7, 5, 6, 4, 4, 2, 6, 4, 0, 2, 0, 4, 2, 2, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 8, 7, 8, 7, 8, 3, 8, 8, 7, 3, 5, 8, 8, 5, 7, 7, 1, 5, 7, 8, 7, 7, 3, 1, 7, 7, 7, 6, 2, 2, 2, 6, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 8, 5, 8, 7, 8, 3, 8, 8, 8, 1, 5, 7, 7, 7, 7, 7, 1, 7, 7, 8, 5, 5, 1, 1, 7, 7, 5, 6, 4, 4, 2, 4, 6, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 8, 5, 8, 7, 7, 5, 7, 7, 8, 5, 5, 8, 7, 7, 7, 7, 5, 7, 7, 7, 5, 5, 1, 3, 7, 7, 3, 6, 4, 6, 2, 6, 4, 0, 0, 0, 0, 2, 2, 0, 2, 0, 0, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 8, 5, 7, 3, 7, 8, 7, 3, 7, 7, 7, 7, 7, 7, 3, 7, 7, 7, 3, 5, 7, 3, 7, 1, 1, 0, 4, 6, 2, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 7, 0, 6, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 8, 3, 8, 7, 8, 1, 7, 7, 8, 3, 7, 7, 7, 7, 7, 7, 1, 7, 7, 7, 3, 5, 7, 1, 7, 3, 1, 2, 4, 4, 2, 2, 4, 4, 2, 2, 0, 2, 4, 2, 6, 6, 0, 4, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 8, 5, 8, 7, 8, 1, 8, 7, 7, 3, 8, 8, 7, 7, 7, 7, 1, 7, 7, 5, 7, 5, 7, 1, 7, 1, 1, 2, 4, 4, 2, 4, 4, 2, 4, 4, 2, 2, 4, 2, 4, 6, 0, 4, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 8, 3, 8, 8, 7, 1, 7, 7, 7, 0, 7, 7, 7, 7, 7, 7, 1, 5, 7, 5, 5, 5, 5, 3, 7, 3, 1, 4, 4, 6, 2, 6, 4, 2, 2, 4, 2, 2, 4, 2, 4, 6, 0, 4, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 8, 3, 8, 8, 8, 3, 8, 7, 7, 3, 7, 7, 7, 5, 7, 7, 1, 7, 7, 5, 3, 3, 5, 1, 7, 3, 1, 2, 4, 4, 2, 4, 2, 4, 4, 4, 2, 4, 2, 2, 4, 4, 0, 6, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 8, 3, 8, 7, 7, 5, 8, 7, 7, 1, 7, 8, 7, 5, 7, 7, 1, 5, 7, 7, 3, 5, 5, 1, 7, 1, 1, 2, 2, 4, 4, 4, 4, 2, 4, 2, 2, 2, 2, 2, 4, 4, 0, 6, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 8, 5, 8, 7, 8, 1, 7, 7, 8, 1, 7, 7, 5, 7, 5, 5, 3, 3, 5, 5, 1, 1, 5, 3, 7, 3, 1, 2, 6, 4, 6, 4, 2, 2, 4, 2, 2, 2, 0, 2, 2, 4, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 8, 3, 7, 5, 5, 7, 7, 3, 7, 5, 7, 1, 5, 3, 5, 5, 5, 7, 3, 3, 1, 3, 5, 1, 5, 6, 7, 6, 7, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 4, 2, 4, 4, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 8, 7, 8, 5, 8, 7, 7, 7, 7, 1, 7, 7, 7, 5, 7, 5, 5, 5, 7, 7, 5, 5, 5, 3, 7, 1, 3, 6, 6, 2, 6, 4, 4, 2, 4, 4, 2, 2, 2, 2, 2, 4, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 8, 7, 5, 7, 7, 8, 7, 7, 1, 7, 7, 7, 5, 7, 3, 3, 7, 7, 7, 5, 5, 5, 3, 5, 3, 1, 4, 6, 6, 6, 2, 2, 4, 4, 2, 2, 2, 2, 2, 2, 4, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 8, 7, 8, 7, 7, 7, 7, 7, 7, 1, 7, 8, 7, 5, 5, 5, 5, 5, 7, 7, 5, 5, 5, 1, 7, 3, 3, 2, 2, 4, 6, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 4, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 8, 7, 8, 5, 7, 7, 7, 7, 7, 1, 7, 7, 7, 5, 7, 5, 7, 7, 7, 5, 5, 5, 7, 3, 7, 5, 1, 4, 6, 6, 4, 4, 4, 2, 6, 4, 2, 2, 2, 2, 2, 2, 2, 4, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 8, 3, 7, 7, 7, 7, 7, 3, 7, 7, 5, 5, 5, 5, 3, 3, 5, 5, 3, 3, 5, 1, 7, 3, 1, 2, 4, 2, 6, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 5, 7, 3, 7, 7, 7, 5, 7, 3, 7, 5, 5, 3, 5, 3, 3, 3, 3, 5, 1, 1, 3, 3, 3, 1, 5, 6, 4, 4, 2, 2, 2, 2, 2, 2, 4, 2, 2, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 0, 0, 0, 0, 0, 0,
-9, 9, 8, 7, 8, 5, 7, 7, 7, 8, 7, 3, 5, 8, 7, 8, 3, 7, 3, 7, 7, 7, 3, 7, 1, 7, 7, 7, 7, 6, 2, 2, 2, 6, 4, 2, 2, 2, 4, 6, 4, 6, 4, 0, 0, 2, 2, 2, 0, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 8, 7, 8, 5, 7, 8, 7, 8, 7, 1, 7, 7, 7, 7, 7, 5, 7, 7, 7, 8, 7, 7, 3, 7, 7, 7, 5, 4, 2, 2, 2, 6, 6, 4, 2, 2, 6, 6, 2, 6, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0,
-8, 9, 8, 7, 7, 7, 7, 8, 7, 8, 8, 3, 7, 7, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 1, 7, 7, 3, 7, 6, 4, 2, 2, 4, 4, 6, 4, 2, 2, 6, 2, 4, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 9, 7, 7, 8, 5, 7, 8, 7, 8, 7, 3, 7, 7, 8, 7, 7, 5, 5, 7, 7, 7, 5, 7, 3, 7, 5, 5, 7, 6, 2, 2, 2, 6, 4, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-7, 8, 8, 7, 7, 3, 7, 7, 7, 8, 7, 1, 7, 8, 8, 5, 7, 5, 7, 7, 7, 7, 7, 7, 3, 7, 7, 7, 3, 6, 2, 2, 2, 6, 4, 2, 2, 2, 2, 2, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 8, 7, 7, 7, 7, 8, 7, 8, 7, 3, 5, 7, 8, 7, 7, 7, 5, 7, 7, 7, 5, 7, 3, 5, 7, 5, 5, 4, 2, 2, 4, 6, 4, 2, 2, 2, 2, 2, 0, 2, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 9, 8, 7, 7, 5, 7, 7, 5, 7, 8, 5, 7, 7, 8, 7, 7, 7, 5, 7, 7, 7, 5, 7, 1, 5, 7, 7, 5, 6, 0, 2, 2, 6, 6, 2, 2, 0, 0, 4, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 8, 7, 7, 5, 5, 7, 5, 7, 7, 7, 5, 7, 7, 7, 5, 7, 5, 5, 7, 5, 5, 5, 1, 3, 5, 5, 3, 6, 6, 6, 6, 6, 4, 2, 2, 2, 4, 2, 4, 2, 4, 2, 4, 4, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 8, 7, 7, 7, 5, 7, 8, 7, 8, 7, 7, 7, 8, 7, 1, 7, 7, 7, 7, 7, 5, 7, 1, 7, 7, 7, 5, 6, 7, 6, 4, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 7, 7, 5, 7, 7, 7, 8, 7, 7, 7, 7, 7, 5, 7, 7, 7, 7, 7, 5, 7, 1, 5, 7, 3, 5, 4, 6, 4, 4, 4, 6, 2, 6, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 9, 8, 7, 7, 7, 5, 7, 7, 7, 8, 7, 7, 7, 7, 7, 5, 7, 5, 7, 7, 5, 5, 7, 1, 7, 5, 3, 5, 4, 2, 2, 2, 6, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 5, 5, 7, 7, 7, 7, 7, 3, 5, 1, 3, 3, 5, 1, 4, 6, 6, 4, 6, 6, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 9, 8, 7, 7, 7, 7, 8, 7, 7, 8, 7, 7, 5, 7, 7, 3, 5, 7, 7, 7, 7, 5, 7, 1, 3, 5, 7, 3, 2, 4, 4, 2, 4, 6, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 8, 7, 5, 7, 7, 7, 7, 7, 7, 7, 7, 5, 1, 5, 3, 5, 3, 5, 1, 3, 1, 3, 5, 1, 1, 6, 4, 6, 2, 4, 4, 2, 6, 2, 2, 2, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 7, 3, 7, 7, 7, 7, 7, 7, 7, 7, 7, 1, 7, 5, 5, 5, 5, 5, 3, 1, 3, 3, 1, 1, 6, 2, 2, 2, 2, 4, 2, 4, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 8, 7, 7, 7, 7, 7, 7, 3, 7, 7, 7, 8, 7, 5, 5, 7, 5, 7, 7, 7, 3, 7, 5, 1, 7, 7, 3, 7, 7, 2, 2, 6, 4, 2, 6, 0, 2, 2, 2, 4, 2, 2, 2, 0, 2, 0, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 8, 7, 8, 7, 8, 8, 8, 5, 7, 7, 7, 7, 7, 1, 7, 7, 7, 7, 7, 7, 5, 7, 1, 1, 5, 5, 3, 7, 6, 4, 2, 7, 2, 2, 2, 2, 2, 0, 4, 7, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 8, 7, 8, 8, 7, 3, 8, 7, 7, 7, 7, 5, 7, 7, 7, 8, 7, 7, 1, 7, 1, 1, 5, 5, 7, 6, 4, 2, 2, 6, 2, 2, 4, 0, 0, 0, 2, 4, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 8, 7, 8, 7, 7, 8, 7, 5, 7, 7, 7, 7, 7, 5, 5, 7, 7, 7, 7, 7, 3, 7, 1, 3, 3, 5, 5, 7, 6, 2, 2, 6, 2, 2, 6, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 9, 7, 7, 8, 7, 7, 7, 7, 5, 8, 7, 7, 8, 5, 5, 7, 7, 7, 7, 7, 7, 3, 7, 1, 1, 7, 5, 3, 6, 4, 2, 4, 4, 6, 2, 6, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 8, 7, 8, 8, 7, 7, 7, 3, 7, 7, 7, 8, 5, 5, 1, 5, 5, 7, 7, 7, 1, 7, 3, 1, 5, 5, 3, 6, 6, 2, 2, 6, 2, 2, 6, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 9, 8, 7, 8, 7, 7, 8, 7, 1, 7, 7, 7, 7, 7, 5, 3, 5, 5, 7, 7, 5, 1, 7, 1, 1, 7, 3, 3, 6, 7, 2, 2, 6, 4, 4, 6, 2, 2, 0, 2, 2, 2, 4, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 8, 7, 8, 7, 7, 7, 7, 5, 7, 5, 7, 7, 3, 7, 5, 5, 5, 7, 7, 7, 5, 7, 3, 1, 5, 5, 3, 6, 7, 2, 2, 4, 4, 2, 6, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 8, 7, 8, 7, 5, 7, 7, 5, 7, 7, 5, 7, 3, 5, 3, 7, 5, 7, 7, 7, 5, 7, 1, 3, 5, 3, 3, 4, 6, 2, 2, 7, 2, 2, 6, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 7, 7, 7, 7, 7, 5, 8, 7, 5, 7, 3, 3, 5, 7, 7, 5, 5, 7, 5, 7, 5, 5, 7, 7, 3, 2, 4, 4, 2, 4, 2, 4, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 7, 7, 8, 7, 7, 7, 7, 7, 7, 7, 5, 3, 5, 7, 7, 7, 7, 7, 5, 7, 3, 7, 5, 3, 3, 6, 6, 2, 2, 7, 2, 2, 4, 2, 0, 0, 0, 2, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 8, 7, 7, 8, 8, 7, 7, 7, 8, 7, 5, 8, 5, 5, 5, 5, 7, 7, 7, 7, 1, 7, 3, 7, 5, 5, 1, 6, 6, 2, 2, 6, 4, 2, 7, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 7, 7, 8, 7, 7, 7, 8, 7, 3, 7, 5, 3, 5, 5, 7, 7, 7, 7, 5, 7, 3, 5, 5, 5, 1, 6, 6, 2, 4, 6, 4, 2, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 8, 7, 7, 7, 8, 7, 7, 7, 8, 7, 5, 7, 5, 3, 5, 3, 7, 7, 7, 7, 5, 7, 3, 5, 5, 3, 3, 6, 4, 2, 2, 6, 2, 2, 6, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 9, 8, 7, 7, 8, 7, 7, 7, 7, 7, 7, 5, 7, 3, 5, 5, 3, 7, 5, 3, 5, 3, 7, 5, 3, 5, 1, 3, 2, 4, 4, 4, 2, 2, 2, 4, 4, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 8, 7, 5, 5, 7, 5, 5, 3, 3, 3, 3, 7, 3, 3, 7, 7, 3, 1, 1, 5, 5, 1, 3, 5, 3, 5, 5, 2, 2, 4, 2, 6, 4, 2, 2, 2, 4, 2, 2, 4, 4, 2, 4, 2, 2, 2, 0, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 8, 7, 7, 5, 8, 5, 5, 5, 7, 7, 5, 7, 7, 3, 3, 3, 5, 5, 1, 5, 3, 5, 1, 3, 5, 5, 5, 2, 4, 4, 2, 6, 4, 4, 4, 4, 6, 2, 2, 4, 4, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 9, 8, 7, 5, 7, 7, 7, 5, 3, 8, 7, 1, 7, 7, 7, 5, 7, 7, 5, 1, 7, 5, 7, 7, 5, 5, 5, 5, 2, 4, 4, 4, 2, 2, 4, 2, 4, 2, 2, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 8, 8, 5, 7, 8, 7, 7, 7, 7, 7, 1, 7, 7, 7, 5, 5, 7, 5, 3, 7, 3, 5, 5, 7, 3, 5, 1, 2, 2, 2, 2, 4, 4, 2, 6, 2, 2, 2, 2, 2, 2, 0, 0, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 8, 7, 5, 7, 8, 7, 3, 5, 8, 7, 1, 7, 7, 7, 5, 3, 5, 3, 1, 1, 3, 5, 3, 5, 3, 1, 3, 2, 2, 2, 2, 4, 4, 2, 6, 4, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 9, 8, 7, 5, 7, 8, 8, 5, 7, 7, 7, 1, 7, 7, 5, 3, 3, 5, 1, 3, 3, 7, 7, 3, 5, 3, 5, 1, 2, 4, 4, 2, 4, 4, 4, 2, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 8, 7, 5, 7, 8, 7, 5, 7, 7, 7, 3, 7, 5, 3, 3, 3, 3, 1, 5, 7, 7, 7, 5, 5, 7, 3, 1, 2, 4, 2, 4, 2, 2, 2, 4, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 9, 8, 7, 5, 7, 7, 7, 3, 3, 7, 7, 1, 7, 3, 5, 3, 5, 1, 3, 3, 1, 3, 7, 3, 3, 5, 3, 1, 2, 2, 4, 2, 4, 4, 4, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 7, 7, 7, 7, 7, 5, 5, 3, 5, 5, 5, 1, 3, 5, 7, 7, 5, 7, 5, 3, 5, 5, 1, 7, 7, 7, 6, 6, 2, 6, 2, 4, 6, 2, 2, 2, 4, 4, 2, 4, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 5, 7, 7, 3, 3, 7, 7, 7, 7, 7, 7, 7, 5, 5, 1, 1, 7, 7, 7, 2, 6, 2, 6, 0, 4, 2, 2, 0, 0, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 5, 7, 7, 7, 3, 7, 7, 7, 3, 3, 7, 7, 5, 5, 1, 5, 5, 7, 6, 2, 4, 2, 4, 2, 2, 2, 2, 2, 2, 4, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 7, 7, 7, 7, 8, 7, 7, 3, 7, 7, 7, 3, 7, 5, 5, 5, 1, 7, 7, 5, 1, 1, 1, 5, 6, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 5, 5, 7, 7, 7, 7, 7, 5, 5, 5, 5, 3, 1, 3, 1, 3, 1, 1, 3, 7, 3, 1, 1, 3, 5, 6, 2, 6, 4, 4, 2, 2, 4, 2, 6, 6, 2, 2, 4, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 5, 3, 5, 7, 5, 3, 7, 3, 7, 3, 7, 7, 7, 3, 1, 1, 1, 3, 6, 2, 4, 2, 2, 2, 2, 2, 2, 4, 4, 2, 4, 4, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 8, 7, 7, 7, 7, 5, 7, 5, 7, 3, 3, 7, 7, 5, 1, 7, 1, 5, 1, 3, 3, 5, 1, 1, 1, 1, 5, 6, 2, 4, 2, 2, 2, 2, 6, 2, 2, 4, 2, 4, 4, 2, 0, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 7, 7, 8, 7, 7, 7, 7, 5, 5, 5, 7, 5, 3, 7, 3, 7, 5, 3, 5, 5, 1, 1, 3, 3, 3, 4, 0, 4, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 8, 7, 8, 7, 8, 7, 7, 7, 7, 3, 5, 5, 7, 3, 1, 7, 1, 5, 1, 1, 3, 5, 3, 1, 1, 3, 5, 4, 2, 4, 2, 4, 2, 2, 4, 2, 2, 2, 2, 2, 4, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 5, 3, 7, 7, 5, 3, 7, 1, 5, 3, 1, 5, 5, 1, 1, 1, 1, 3, 6, 2, 4, 2, 4, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 5, 5, 7, 7, 7, 3, 7, 1, 7, 3, 1, 3, 5, 1, 1, 1, 3, 3, 6, 2, 6, 2, 4, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 7, 7, 8, 7, 5, 7, 7, 3, 3, 5, 5, 5, 3, 7, 1, 7, 1, 1, 3, 5, 3, 1, 1, 1, 5, 4, 2, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 8, 7, 7, 7, 7, 7, 7, 7, 7, 3, 3, 7, 7, 5, 3, 5, 1, 7, 3, 1, 3, 5, 1, 1, 1, 3, 3, 6, 0, 4, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 7, 7, 8, 7, 7, 7, 7, 3, 3, 5, 7, 3, 1, 7, 1, 7, 3, 1, 5, 5, 3, 1, 1, 1, 5, 6, 2, 4, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 7, 7, 7, 5, 7, 7, 7, 5, 3, 3, 7, 5, 1, 3, 1, 3, 1, 1, 1, 5, 1, 1, 1, 1, 5, 4, 2, 6, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 3, 1, 5, 7, 5, 3, 3, 1, 3, 1, 1, 3, 5, 3, 3, 1, 3, 3, 4, 2, 4, 2, 2, 2, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 7, 7, 8, 7, 7, 7, 5, 3, 3, 5, 7, 3, 3, 5, 1, 3, 1, 1, 1, 5, 1, 1, 3, 1, 3, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 4, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 8, 7, 7, 7, 7, 7, 7, 7, 7, 5, 3, 5, 7, 3, 1, 5, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 3, 2, 4, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 7, 7, 8, 7, 7, 7, 7, 3, 3, 7, 5, 3, 1, 5, 1, 1, 1, 1, 3, 3, 1, 1, 1, 3, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 8, 7, 7, 7, 7, 7, 7, 7, 7, 3, 3, 5, 5, 3, 3, 3, 1, 3, 1, 3, 1, 3, 3, 1, 1, 1, 3, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 3, 1, 1, 7, 3, 3, 3, 1, 1, 1, 3, 5, 3, 1, 3, 1, 1, 1, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 5, 7, 7, 7, 8, 7, 7, 7, 7, 3, 3, 3, 5, 3, 1, 1, 3, 3, 1, 3, 3, 3, 3, 3, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 0, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 7, 7, 7, 5, 7, 7, 7, 3, 3, 3, 5, 1, 3, 3, 3, 1, 1, 3, 3, 1, 1, 1, 1, 3, 1, 4, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 2, 0, 0, 0, 0, 0, 0,
-8, 8, 5, 7, 7, 7, 7, 7, 7, 7, 7, 1, 1, 3, 5, 1, 3, 3, 3, 3, 1, 1, 1, 3, 3, 3, 1, 1, 3, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 7, 7, 7, 5, 7, 7, 7, 1, 1, 1, 5, 5, 3, 3, 1, 3, 1, 3, 3, 3, 1, 1, 1, 1, 3, 2, 2, 2, 2, 4, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 3, 1, 3, 3, 3, 3, 3, 3, 1, 3, 3, 1, 3, 1, 1, 1, 3, 3, 2, 4, 2, 2, 2, 2, 2, 2, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 1, 1, 3, 3, 3, 3, 3, 3, 3, 1, 1, 3, 3, 1, 3, 1, 1, 3, 2, 2, 4, 2, 4, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 1, 3, 3, 3, 3, 3, 1, 1, 3, 3, 1, 1, 1, 1, 1, 1, 3, 3, 2, 2, 2, 2, 4, 4, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 4, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 7, 7, 7, 7, 7, 5, 5, 1, 1, 3, 3, 3, 1, 3, 1, 3, 3, 1, 1, 5, 3, 1, 1, 3, 1, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 7, 7, 5, 7, 7, 7, 3, 1, 3, 3, 3, 1, 3, 1, 3, 1, 1, 3, 3, 1, 1, 1, 1, 1, 4, 4, 4, 2, 4, 2, 2, 2, 4, 4, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 5, 3, 1, 3, 3, 5, 5, 3, 3, 1, 3, 3, 1, 3, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 7, 7, 7, 7, 7, 3, 7, 3, 3, 3, 3, 3, 5, 3, 3, 3, 3, 3, 1, 1, 3, 1, 1, 5, 1, 2, 2, 2, 2, 4, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 0, 2, 0, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 5, 7, 7, 7, 7, 5, 7, 5, 3, 1, 3, 3, 3, 3, 3, 5, 3, 3, 3, 3, 3, 3, 1, 1, 3, 3, 3, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 2, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 7, 7, 7, 5, 7, 3, 3, 3, 1, 1, 3, 3, 3, 3, 3, 3, 3, 1, 3, 1, 3, 1, 1, 1, 1, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 7, 7, 7, 5, 7, 3, 3, 3, 1, 3, 3, 3, 3, 3, 1, 3, 3, 3, 1, 3, 3, 1, 1, 1, 1, 2, 4, 2, 2, 4, 2, 2, 4, 4, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 5, 7, 7, 5, 7, 7, 5, 3, 3, 1, 3, 3, 5, 3, 3, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 4, 2, 4, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 5, 7, 7, 7, 7, 3, 5, 3, 3, 3, 1, 3, 3, 3, 3, 1, 3, 3, 3, 1, 1, 1, 1, 3, 3, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 7, 7, 7, 5, 5, 5, 5, 3, 1, 3, 3, 3, 5, 3, 3, 3, 1, 3, 3, 3, 1, 1, 1, 1, 3, 2, 2, 2, 2, 4, 2, 4, 4, 4, 2, 2, 4, 2, 2, 2, 2, 4, 2, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 7, 7, 7, 5, 7, 5, 3, 3, 1, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1, 2, 4, 2, 2, 2, 4, 0, 2, 2, 2, 4, 4, 4, 2, 2, 2, 2, 2, 2, 0, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 3, 7, 7, 5, 7, 5, 5, 3, 1, 3, 3, 5, 5, 3, 1, 3, 5, 1, 3, 1, 3, 1, 3, 3, 3, 4, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 5, 7, 7, 7, 5, 3, 5, 3, 3, 3, 1, 3, 3, 3, 3, 1, 1, 1, 1, 3, 1, 1, 3, 3, 3, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 7, 7, 7, 3, 5, 5, 5, 3, 3, 3, 1, 3, 3, 3, 1, 1, 5, 3, 1, 3, 1, 3, 3, 1, 3, 2, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 5, 7, 7, 3, 7, 5, 5, 3, 3, 3, 3, 3, 5, 3, 1, 3, 3, 1, 3, 1, 3, 3, 1, 1, 1, 4, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 7, 7, 5, 5, 3, 5, 3, 3, 3, 5, 3, 3, 3, 3, 3, 3, 3, 1, 1, 1, 1, 3, 1, 1, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 7, 7, 7, 5, 5, 3, 5, 3, 1, 1, 3, 1, 3, 3, 3, 1, 1, 3, 3, 3, 3, 3, 1, 1, 1, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 5, 7, 7, 3, 7, 3, 5, 3, 1, 3, 3, 3, 3, 3, 5, 3, 3, 5, 3, 3, 3, 1, 1, 3, 3, 4, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 5, 7, 7, 5, 5, 5, 3, 5, 3, 1, 3, 3, 5, 1, 5, 3, 3, 3, 3, 1, 3, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 5, 7, 7, 3, 5, 1, 3, 5, 1, 5, 1, 3, 3, 1, 3, 3, 3, 1, 1, 3, 3, 3, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 5, 7, 7, 5, 5, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1, 3, 3, 1, 1, 3, 3, 3, 3, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 0, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 7, 7, 3, 3, 3, 3, 5, 3, 3, 3, 3, 3, 3, 1, 3, 1, 3, 1, 3, 1, 3, 3, 3, 3, 4, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 5, 7, 7, 5, 5, 3, 5, 3, 1, 3, 1, 3, 3, 5, 3, 3, 3, 3, 3, 1, 1, 3, 3, 1, 3, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
-8, 7, 8, 7, 5, 7, 5, 5, 5, 1, 3, 3, 3, 1, 3, 1, 3, 5, 3, 3, 1, 3, 1, 1, 3, 3, 1, 3, 1, 2, 2, 4, 2, 2, 4, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 7, 7, 7, 3, 3, 3, 5, 3, 3, 3, 3, 3, 3, 1, 3, 3, 3, 3, 3, 3, 1, 1, 3, 3, 1, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 5, 7, 5, 5, 5, 3, 5, 3, 3, 3, 3, 3, 3, 1, 3, 5, 3, 3, 3, 1, 3, 3, 3, 3, 1, 2, 4, 4, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 0, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 7, 7, 5, 3, 3, 5, 3, 7, 3, 3, 3, 3, 1, 3, 3, 3, 5, 3, 3, 3, 3, 3, 3, 3, 1, 2, 2, 2, 2, 2, 2, 4, 4, 2, 2, 2, 4, 4, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 5, 5, 5, 3, 5, 3, 3, 3, 3, 5, 3, 3, 3, 3, 5, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4, 4, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 3, 5, 5, 5, 3, 3, 3, 3, 1, 1, 3, 3, 3, 3, 3, 3, 1, 3, 3, 3, 3, 3, 3, 3, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 5, 7, 3, 5, 5, 3, 3, 5, 3, 3, 3, 3, 3, 3, 5, 5, 3, 3, 3, 3, 3, 3, 1, 1, 3, 1, 3, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 5, 5, 7, 5, 3, 1, 3, 3, 3, 3, 3, 1, 3, 3, 3, 1, 1, 3, 3, 3, 3, 3, 1, 3, 1, 1, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 5, 3, 5, 7, 1, 5, 3, 3, 1, 3, 3, 3, 1, 3, 3, 1, 1, 3, 3, 1, 1, 1, 3, 3, 1, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 4, 4, 2, 2, 4, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 7, 5, 5, 5, 3, 5, 3, 3, 3, 1, 3, 3, 7, 3, 5, 3, 1, 1, 3, 1, 1, 3, 1, 5, 3, 2, 2, 4, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 5, 7, 3, 7, 3, 1, 5, 3, 7, 3, 3, 7, 3, 3, 1, 3, 1, 1, 1, 3, 1, 1, 3, 1, 1, 3, 2, 2, 2, 4, 2, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 7, 3, 5, 3, 3, 5, 3, 3, 3, 3, 3, 3, 5, 1, 3, 3, 1, 1, 3, 1, 1, 1, 3, 1, 1, 4, 2, 2, 4, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 0, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 5, 3, 5, 5, 5, 3, 3, 3, 3, 3, 3, 3, 1, 3, 1, 3, 1, 1, 1, 3, 1, 1, 3, 1, 1, 1, 4, 4, 2, 4, 2, 6, 2, 2, 2, 2, 4, 2, 4, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 5, 7, 5, 3, 5, 5, 1, 3, 3, 5, 1, 3, 3, 1, 3, 1, 5, 1, 1, 3, 1, 3, 3, 1, 3, 1, 1, 4, 4, 2, 2, 4, 4, 2, 4, 4, 2, 2, 2, 2, 4, 4, 2, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 5, 5, 3, 5, 5, 3, 3, 1, 5, 3, 1, 3, 1, 3, 5, 3, 5, 1, 3, 1, 1, 1, 3, 1, 3, 1, 4, 2, 2, 2, 2, 4, 2, 4, 2, 4, 2, 2, 4, 4, 2, 2, 4, 0, 0, 0, 2, 0, 2, 2, 2, 0, 0, 0, 0, 0, 0,
-9, 8, 8, 5, 7, 5, 3, 3, 5, 3, 5, 7, 1, 1, 3, 3, 5, 5, 3, 1, 3, 3, 3, 3, 3, 3, 3, 3, 1, 2, 2, 2, 2, 2, 6, 4, 4, 4, 4, 2, 2, 4, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 8, 7, 5, 7, 7, 3, 7, 3, 5, 5, 1, 7, 3, 1, 7, 5, 1, 3, 5, 5, 5, 5, 5, 1, 3, 5, 5, 6, 4, 4, 2, 4, 4, 4, 6, 4, 4, 2, 6, 4, 4, 2, 4, 4, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 7, 7, 7, 7, 7, 5, 7, 7, 7, 7, 7, 7, 7, 7, 7, 5, 7, 7, 7, 3, 3, 5, 5, 5, 7, 6, 4, 6, 2, 4, 4, 4, 4, 6, 4, 2, 6, 4, 4, 2, 2, 2, 2, 4, 4, 4, 4, 0, 2, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 7, 5, 7, 7, 3, 7, 7, 7, 7, 7, 7, 7, 7, 3, 5, 1, 5, 5, 7, 7, 5, 3, 3, 5, 5, 6, 4, 4, 2, 4, 6, 6, 6, 4, 4, 2, 4, 4, 2, 2, 2, 2, 0, 2, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 8, 8, 7, 5, 7, 8, 7, 7, 7, 7, 7, 8, 7, 7, 3, 7, 3, 7, 7, 5, 3, 7, 3, 7, 7, 7, 7, 6, 2, 2, 6, 6, 2, 2, 2, 2, 4, 2, 6, 2, 2, 0, 2, 2, 4, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 8, 7, 8, 7, 7, 8, 7, 7, 8, 5, 5, 7, 7, 7, 5, 7, 3, 7, 7, 7, 7, 7, 1, 7, 5, 5, 7, 2, 2, 2, 2, 4, 2, 2, 2, 2, 4, 4, 6, 4, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 8, 7, 7, 7, 7, 7, 7, 5, 7, 8, 7, 7, 5, 7, 7, 7, 7, 7, 3, 7, 5, 5, 7, 5, 5, 6, 2, 2, 6, 4, 4, 6, 4, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 9, 8, 7, 8, 7, 7, 7, 7, 5, 8, 3, 7, 7, 7, 5, 7, 3, 3, 8, 7, 5, 5, 5, 3, 7, 7, 7, 7, 6, 2, 2, 2, 6, 2, 2, 2, 0, 2, 0, 2, 2, 2, 0, 0, 0, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 8, 7, 7, 8, 7, 7, 7, 5, 7, 8, 7, 7, 5, 7, 3, 7, 7, 3, 3, 5, 1, 5, 7, 7, 7, 6, 2, 2, 6, 6, 2, 2, 4, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 8, 7, 7, 7, 7, 7, 7, 5, 8, 3, 3, 7, 5, 5, 3, 5, 5, 7, 7, 3, 3, 3, 1, 3, 3, 5, 5, 6, 2, 2, 6, 6, 4, 4, 4, 2, 2, 0, 2, 2, 4, 2, 2, 4, 2, 0, 0, 0, 0, 0, 2, 2, 0, 0, 0, 0, 0, 0,
-9, 8, 8, 7, 7, 5, 7, 7, 3, 3, 7, 5, 3, 7, 5, 5, 5, 3, 5, 7, 7, 3, 1, 3, 1, 3, 7, 7, 3, 4, 4, 2, 4, 6, 4, 4, 4, 2, 6, 2, 4, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 8, 7, 7, 3, 7, 7, 5, 7, 7, 1, 5, 7, 7, 5, 3, 7, 7, 7, 7, 5, 1, 7, 7, 7, 5, 5, 3, 6, 7, 2, 4, 2, 2, 2, 6, 4, 6, 2, 4, 4, 6, 2, 2, 2, 0, 0, 0, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 8, 7, 7, 7, 7, 8, 5, 7, 8, 1, 7, 7, 7, 7, 5, 8, 5, 7, 7, 5, 5, 5, 7, 7, 5, 5, 3, 2, 7, 2, 4, 2, 2, 4, 4, 6, 6, 2, 2, 7, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 9, 8, 7, 7, 5, 8, 8, 5, 7, 8, 5, 7, 7, 7, 7, 7, 7, 3, 7, 7, 7, 1, 7, 7, 7, 5, 7, 3, 4, 7, 2, 2, 4, 2, 2, 4, 2, 4, 2, 2, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 8, 7, 7, 7, 7, 7, 5, 7, 7, 3, 5, 7, 7, 7, 5, 7, 3, 7, 7, 5, 1, 7, 7, 7, 7, 5, 3, 6, 7, 2, 4, 4, 2, 4, 4, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 8, 7, 5, 5, 7, 7, 3, 5, 5, 3, 3, 3, 5, 3, 3, 5, 3, 3, 5, 3, 3, 3, 5, 3, 1, 3, 1, 6, 2, 2, 2, 2, 2, 2, 2, 4, 2, 4, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 7, 7, 7, 5, 5, 7, 3, 7, 7, 7, 7, 7, 7, 5, 5, 5, 3, 1, 7, 7, 7, 5, 7, 1, 6, 6, 4, 4, 2, 2, 4, 4, 4, 2, 2, 0, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 3, 7, 7, 7, 3, 7, 7, 7, 1, 7, 8, 5, 7, 5, 7, 1, 7, 7, 7, 7, 7, 5, 1, 7, 7, 3, 7, 2, 2, 2, 6, 6, 2, 4, 0, 2, 2, 4, 2, 7, 2, 0, 2, 4, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 8, 5, 8, 7, 8, 7, 8, 8, 7, 1, 7, 8, 5, 7, 7, 7, 3, 7, 8, 7, 7, 7, 5, 3, 7, 7, 1, 7, 2, 2, 0, 4, 4, 0, 4, 0, 0, 2, 2, 2, 6, 4, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 8, 5, 8, 7, 8, 7, 7, 8, 7, 3, 7, 8, 3, 7, 7, 7, 3, 7, 7, 7, 7, 7, 5, 3, 7, 7, 0, 6, 2, 2, 2, 6, 6, 2, 2, 0, 0, 2, 2, 0, 6, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 8, 3, 8, 7, 8, 3, 7, 8, 7, 5, 8, 8, 5, 7, 5, 5, 3, 7, 7, 5, 7, 7, 5, 5, 7, 5, 1, 6, 4, 2, 2, 6, 6, 2, 6, 2, 0, 2, 2, 2, 2, 2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 8, 5, 8, 7, 8, 3, 7, 7, 7, 1, 8, 8, 5, 5, 7, 7, 1, 7, 7, 7, 7, 7, 5, 3, 7, 7, 3, 7, 4, 2, 2, 6, 6, 2, 6, 2, 2, 2, 2, 2, 4, 2, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 8, 7, 8, 8, 8, 3, 8, 7, 7, 3, 7, 8, 3, 3, 5, 7, 1, 5, 7, 5, 7, 7, 5, 1, 5, 5, 1, 7, 2, 2, 2, 6, 6, 2, 4, 0, 0, 2, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 8, 5, 8, 7, 8, 3, 8, 8, 7, 3, 8, 8, 5, 7, 7, 7, 3, 7, 7, 7, 3, 7, 5, 1, 5, 7, 1, 7, 2, 2, 2, 6, 6, 2, 6, 0, 2, 2, 0, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 8, 3, 8, 7, 8, 3, 8, 7, 7, 3, 7, 8, 1, 5, 5, 7, 1, 7, 7, 7, 5, 3, 5, 1, 5, 5, 1, 7, 2, 2, 2, 6, 7, 2, 6, 2, 0, 2, 2, 0, 4, 0, 0, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 8, 7, 8, 5, 8, 8, 7, 3, 7, 8, 3, 3, 3, 3, 3, 3, 7, 3, 5, 1, 1, 1, 3, 5, 1, 6, 2, 2, 2, 6, 6, 2, 6, 4, 2, 2, 4, 4, 4, 2, 2, 0, 4, 4, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 8, 5, 7, 7, 8, 3, 7, 8, 5, 3, 7, 8, 1, 5, 3, 5, 3, 3, 7, 5, 7, 5, 7, 1, 5, 5, 3, 7, 4, 2, 2, 6, 4, 2, 4, 4, 2, 2, 4, 4, 4, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 8, 5, 7, 5, 5, 5, 5, 8, 5, 3, 3, 5, 5, 5, 5, 7, 3, 7, 7, 7, 3, 5, 5, 5, 7, 5, 3, 7, 2, 2, 2, 2, 7, 4, 2, 6, 7, 6, 4, 4, 4, 2, 0, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 9, 7, 7, 7, 7, 7, 7, 7, 8, 7, 3, 7, 8, 7, 8, 7, 7, 3, 7, 7, 3, 7, 7, 5, 7, 5, 7, 1, 7, 4, 2, 4, 2, 4, 2, 4, 4, 2, 2, 0, 4, 2, 2, 0, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 9, 7, 7, 8, 7, 7, 7, 7, 8, 7, 3, 7, 7, 7, 8, 5, 7, 1, 7, 7, 5, 7, 5, 3, 7, 5, 7, 1, 7, 4, 4, 7, 6, 6, 4, 4, 2, 2, 2, 2, 2, 2, 0, 0, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 9, 8, 7, 7, 5, 7, 7, 7, 8, 7, 3, 7, 7, 7, 7, 7, 7, 1, 7, 7, 7, 7, 5, 3, 5, 3, 7, 1, 6, 2, 4, 6, 4, 4, 4, 6, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 9, 7, 7, 8, 7, 7, 7, 5, 8, 7, 3, 7, 7, 5, 7, 7, 7, 1, 7, 5, 5, 7, 3, 3, 3, 5, 3, 1, 4, 4, 2, 6, 2, 6, 4, 6, 4, 2, 2, 2, 2, 2, 0, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 9, 8, 7, 8, 7, 7, 7, 7, 8, 7, 3, 7, 7, 3, 7, 7, 7, 3, 7, 5, 7, 3, 5, 3, 3, 5, 3, 1, 6, 2, 4, 4, 2, 6, 4, 6, 4, 4, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 9, 8, 7, 8, 5, 7, 7, 7, 8, 5, 5, 7, 7, 5, 7, 1, 7, 1, 7, 7, 3, 1, 3, 3, 3, 3, 3, 1, 7, 2, 2, 6, 2, 6, 4, 6, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 8, 7, 5, 7, 3, 5, 5, 7, 1, 5, 3, 3, 5, 7, 3, 5, 1, 5, 3, 3, 1, 3, 1, 1, 3, 5, 1, 4, 4, 2, 2, 4, 4, 2, 2, 4, 2, 4, 6, 0, 2, 0, 2, 2, 2, 0, 2, 0, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-9, 9, 8, 7, 7, 5, 5, 7, 7, 7, 5, 5, 5, 5, 3, 7, 5, 7, 1, 3, 7, 5, 1, 3, 3, 3, 5, 3, 1, 6, 4, 2, 4, 4, 6, 4, 6, 4, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 9, 8, 5, 7, 3, 7, 7, 5, 8, 7, 3, 7, 7, 7, 7, 3, 5, 5, 7, 7, 7, 1, 3, 3, 5, 5, 5, 5, 7, 6, 2, 4, 6, 4, 2, 2, 4, 4, 6, 6, 6, 2, 2, 2, 2, 4, 2, 2, 0, 0, 2, 2, 2, 0, 0, 0, 0, 0, 0,
-8, 9, 8, 7, 7, 5, 8, 7, 5, 8, 8, 1, 7, 7, 7, 8, 5, 7, 5, 7, 8, 7, 7, 5, 5, 7, 1, 7, 7, 7, 6, 2, 2, 4, 6, 2, 2, 2, 2, 6, 4, 6, 2, 0, 0, 0, 0, 0, 0, 0, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0,
-9, 9, 8, 7, 7, 7, 8, 8, 7, 8, 8, 3, 7, 7, 8, 8, 3, 7, 7, 7, 8, 7, 7, 7, 3, 7, 3, 7, 7, 7, 6, 4, 4, 4, 6, 2, 2, 2, 4, 4, 4, 4, 4, 0, 0, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 9, 8, 7, 7, 5, 8, 8, 7, 7, 8, 3, 7, 7, 7, 7, 1, 7, 5, 7, 7, 7, 7, 5, 5, 7, 3, 7, 3, 4, 4, 2, 2, 7, 6, 4, 2, 4, 4, 6, 2, 2, 2, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 9, 8, 7, 7, 5, 9, 8, 7, 8, 8, 3, 7, 7, 7, 8, 7, 7, 7, 7, 7, 7, 5, 3, 3, 7, 3, 5, 3, 4, 4, 4, 6, 6, 7, 2, 2, 4, 2, 4, 4, 2, 2, 0, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 8, 8, 7, 3, 8, 8, 7, 8, 8, 3, 7, 5, 8, 7, 5, 7, 7, 7, 7, 5, 7, 5, 3, 3, 5, 3, 5, 4, 4, 4, 4, 6, 6, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 8, 7, 7, 5, 7, 7, 5, 7, 7, 5, 5, 7, 7, 7, 7, 7, 1, 7, 7, 5, 5, 3, 3, 3, 1, 5, 3, 6, 4, 2, 7, 6, 6, 6, 4, 4, 4, 2, 6, 4, 6, 2, 2, 4, 4, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 8, 7, 7, 7, 8, 7, 7, 8, 7, 7, 7, 5, 7, 7, 5, 7, 5, 7, 7, 5, 7, 5, 7, 5, 3, 5, 3, 4, 4, 4, 6, 4, 6, 4, 4, 6, 4, 2, 4, 2, 2, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 9, 8, 7, 7, 7, 7, 7, 7, 8, 8, 7, 5, 5, 7, 7, 5, 5, 5, 7, 7, 5, 5, 5, 7, 7, 5, 5, 5, 6, 6, 2, 4, 6, 4, 2, 2, 4, 2, 2, 4, 2, 2, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 7, 7, 8, 7, 7, 7, 7, 5, 7, 5, 7, 7, 5, 7, 5, 7, 7, 7, 5, 5, 5, 5, 5, 5, 3, 7, 4, 2, 4, 6, 4, 2, 2, 4, 0, 4, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 8, 7, 7, 8, 7, 8, 7, 7, 7, 7, 7, 5, 7, 7, 1, 7, 5, 7, 7, 7, 5, 3, 5, 3, 1, 3, 7, 7, 6, 2, 4, 6, 4, 2, 2, 4, 2, 4, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 9, 7, 7, 7, 7, 8, 7, 5, 7, 7, 7, 7, 5, 7, 7, 7, 7, 7, 8, 7, 5, 7, 3, 7, 7, 5, 5, 5, 6, 4, 2, 4, 6, 6, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 5, 3, 7, 7, 5, 5, 7, 5, 7, 5, 7, 7, 5, 5, 5, 1, 3, 5, 6, 4, 4, 4, 6, 4, 4, 2, 6, 2, 4, 2, 2, 2, 2, 2, 4, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 9, 8, 7, 7, 7, 7, 7, 7, 7, 8, 5, 3, 7, 7, 7, 3, 3, 3, 7, 7, 7, 5, 3, 3, 3, 3, 3, 3, 2, 2, 2, 4, 4, 4, 4, 2, 2, 4, 2, 2, 4, 4, 2, 2, 2, 0, 2, 0, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 9, 7, 7, 7, 7, 5, 7, 5, 5, 7, 3, 5, 5, 7, 3, 1, 7, 3, 5, 5, 1, 5, 3, 3, 1, 1, 3, 3, 2, 2, 2, 4, 4, 4, 4, 6, 2, 4, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 5, 7, 7, 7, 5, 7, 5, 5, 7, 7, 5, 3, 7, 7, 8, 7, 3, 3, 5, 5, 5, 5, 3, 5, 6, 6, 6, 4, 2, 2, 6, 6, 7, 2, 4, 2, 6, 4, 2, 0, 0, 2, 4, 4, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 8, 7, 7, 7, 8, 7, 7, 7, 8, 7, 7, 8, 7, 5, 1, 7, 7, 7, 7, 3, 3, 1, 7, 7, 3, 3, 7, 2, 4, 4, 6, 6, 2, 4, 6, 6, 4, 4, 2, 2, 2, 0, 0, 2, 2, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 8, 8, 8, 8, 7, 7, 7, 5, 7, 8, 7, 5, 3, 5, 7, 7, 7, 1, 1, 5, 7, 3, 5, 3, 5, 6, 4, 2, 4, 4, 2, 4, 6, 4, 2, 2, 2, 4, 4, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 8, 7, 7, 7, 7, 7, 7, 7, 7, 8, 7, 5, 1, 3, 7, 7, 7, 1, 1, 3, 7, 5, 3, 1, 5, 2, 2, 4, 4, 6, 4, 4, 6, 4, 2, 2, 2, 4, 4, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 9, 8, 7, 8, 7, 8, 7, 7, 7, 7, 7, 7, 8, 7, 3, 3, 7, 7, 7, 7, 1, 3, 3, 7, 5, 5, 3, 3, 2, 4, 2, 4, 4, 4, 6, 6, 4, 2, 2, 2, 2, 4, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 9, 7, 7, 8, 7, 7, 7, 7, 7, 7, 5, 7, 7, 7, 5, 5, 7, 5, 7, 7, 1, 1, 3, 5, 3, 5, 1, 3, 2, 4, 2, 4, 4, 4, 2, 6, 4, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 5, 5, 7, 7, 5, 1, 5, 7, 7, 7, 1, 3, 5, 5, 1, 1, 5, 5, 2, 0, 2, 4, 2, 2, 2, 2, 4, 2, 2, 2, 2, 4, 2, 0, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 5, 8, 7, 7, 5, 7, 7, 7, 7, 5, 5, 1, 7, 7, 7, 7, 1, 3, 1, 3, 1, 3, 3, 3, 6, 4, 2, 2, 2, 4, 2, 4, 4, 4, 6, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 5, 3, 5, 5, 5, 7, 5, 3, 5, 3, 3, 3, 5, 3, 5, 3, 5, 1, 5, 3, 1, 3, 5, 5, 6, 2, 2, 4, 4, 6, 2, 2, 2, 4, 4, 6, 2, 2, 2, 2, 4, 4, 4, 0, 0, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
-9, 8, 8, 7, 8, 7, 7, 8, 7, 7, 7, 5, 5, 7, 7, 3, 7, 3, 7, 7, 7, 5, 1, 1, 7, 7, 7, 5, 3, 2, 2, 2, 6, 4, 2, 0, 4, 6, 4, 0, 0, 2, 6, 2, 2, 4, 4, 2, 4, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 8, 7, 7, 8, 7, 7, 7, 5, 7, 7, 7, 3, 1, 5, 7, 7, 7, 3, 1, 3, 7, 7, 7, 5, 1, 2, 2, 2, 6, 4, 4, 2, 2, 6, 4, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 9, 8, 7, 8, 5, 7, 7, 7, 7, 7, 5, 7, 7, 7, 7, 3, 5, 5, 7, 5, 3, 1, 5, 5, 5, 5, 3, 3, 2, 2, 2, 4, 4, 6, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 9, 8, 7, 8, 7, 7, 7, 7, 7, 7, 5, 7, 7, 7, 1, 5, 5, 5, 7, 7, 3, 3, 5, 5, 5, 5, 3, 3, 2, 2, 2, 2, 4, 6, 6, 2, 4, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 8, 7, 8, 7, 7, 7, 7, 5, 7, 5, 5, 7, 7, 5, 5, 5, 3, 7, 5, 5, 1, 3, 1, 3, 5, 3, 1, 4, 2, 2, 4, 4, 6, 2, 4, 4, 2, 2, 4, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 8, 5, 7, 7, 7, 7, 7, 7, 7, 3, 7, 5, 5, 3, 5, 3, 7, 5, 3, 5, 3, 3, 5, 3, 3, 2, 2, 2, 2, 4, 6, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 8, 7, 8, 5, 7, 7, 7, 7, 7, 5, 7, 5, 7, 3, 3, 5, 5, 3, 5, 3, 1, 3, 5, 3, 5, 1, 1, 2, 2, 2, 4, 4, 2, 4, 4, 4, 2, 2, 2, 4, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 8, 5, 7, 7, 7, 1, 7, 5, 3, 5, 5, 3, 1, 5, 5, 7, 3, 1, 1, 3, 3, 1, 5, 1, 3, 2, 4, 4, 2, 4, 4, 4, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 8, 7, 8, 7, 7, 7, 7, 5, 7, 5, 5, 5, 7, 1, 3, 3, 5, 3, 3, 3, 3, 1, 1, 1, 5, 1, 1, 2, 2, 4, 6, 4, 4, 2, 2, 2, 2, 2, 2, 4, 4, 2, 4, 2, 2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 3, 5, 7, 7, 7, 7, 7, 5, 3, 3, 5, 3, 1, 1, 1, 3, 1, 5, 3, 3, 5, 3, 3, 1, 2, 6, 4, 2, 7, 4, 2, 4, 4, 4, 4, 4, 6, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 8, 7, 8, 5, 5, 7, 7, 5, 5, 7, 5, 5, 5, 3, 3, 5, 1, 5, 5, 5, 5, 5, 5, 3, 5, 1, 1, 2, 4, 2, 4, 6, 4, 2, 2, 4, 2, 2, 2, 2, 4, 2, 4, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 7, 5, 7, 7, 7, 7, 5, 5, 5, 5, 5, 5, 3, 5, 3, 5, 1, 1, 1, 3, 1, 3, 5, 3, 3, 2, 2, 4, 4, 2, 4, 2, 2, 2, 2, 2, 4, 4, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 8, 7, 7, 5, 7, 5, 7, 7, 5, 5, 5, 3, 5, 5, 3, 1, 3, 5, 3, 3, 3, 3, 3, 5, 3, 1, 3, 2, 4, 4, 2, 2, 2, 4, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 8, 7, 8, 5, 5, 3, 7, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1, 3, 3, 1, 3, 3, 3, 3, 1, 3, 2, 2, 4, 2, 4, 2, 4, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 5, 5, 7, 5, 3, 5, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 5, 3, 3, 3, 3, 5, 2, 2, 2, 4, 2, 4, 2, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 5, 5, 3, 7, 3, 5, 5, 7, 5, 3, 3, 5, 5, 1, 3, 1, 5, 3, 3, 1, 3, 5, 3, 1, 5, 4, 6, 2, 4, 4, 4, 4, 4, 2, 4, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 8, 5, 7, 7, 5, 7, 7, 7, 5, 5, 5, 3, 5, 7, 5, 7, 3, 5, 5, 5, 5, 5, 7, 5, 3, 3, 5, 6, 6, 4, 6, 6, 6, 6, 7, 2, 4, 2, 4, 2, 2, 2, 2, 2, 2, 4, 4, 4, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 3, 5, 7, 7, 7, 7, 5, 5, 7, 5, 5, 7, 7, 7, 5, 3, 1, 6, 4, 6, 6, 6, 2, 6, 7, 6, 6, 4, 6, 6, 2, 2, 0, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 7, 7, 7, 5, 7, 7, 7, 3, 5, 7, 7, 7, 7, 7, 7, 7, 5, 1, 7, 7, 5, 5, 1, 1, 7, 2, 7, 6, 6, 2, 2, 4, 2, 2, 2, 4, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 5, 7, 7, 7, 7, 7, 7, 7, 7, 7, 1, 7, 7, 3, 5, 1, 1, 4, 2, 6, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 8, 7, 5, 7, 7, 5, 7, 7, 7, 7, 7, 7, 1, 5, 7, 3, 7, 1, 1, 4, 2, 2, 2, 4, 4, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 3, 7, 7, 7, 7, 7, 5, 1, 7, 3, 1, 5, 1, 1, 4, 2, 2, 2, 2, 4, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 5, 7, 7, 3, 7, 5, 7, 7, 7, 5, 1, 7, 3, 1, 5, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 7, 7, 7, 5, 7, 7, 7, 3, 7, 7, 3, 7, 7, 7, 5, 7, 5, 1, 5, 5, 1, 3, 1, 1, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 4, 2, 2, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 7, 7, 7, 7, 5, 7, 7, 7, 5, 7, 7, 3, 5, 7, 7, 5, 5, 3, 1, 5, 1, 3, 5, 1, 1, 2, 4, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 7, 7, 7, 7, 5, 5, 7, 7, 3, 5, 7, 3, 7, 3, 7, 3, 7, 5, 1, 3, 3, 1, 3, 1, 3, 2, 2, 2, 2, 4, 2, 2, 4, 4, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 7, 7, 5, 7, 7, 7, 7, 7, 5, 7, 7, 3, 7, 7, 7, 5, 7, 3, 1, 1, 3, 1, 3, 3, 3, 2, 2, 4, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 8, 7, 5, 7, 7, 3, 7, 5, 7, 3, 5, 3, 1, 3, 1, 1, 1, 1, 3, 4, 4, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 5, 7, 7, 3, 7, 5, 7, 1, 5, 1, 1, 1, 1, 3, 1, 3, 3, 4, 2, 2, 2, 4, 2, 4, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 7, 7, 7, 7, 7, 5, 8, 7, 5, 7, 7, 3, 7, 7, 7, 3, 3, 3, 1, 1, 1, 1, 3, 3, 1, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 3, 7, 3, 7, 3, 3, 3, 1, 1, 3, 1, 1, 3, 1, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 8, 7, 7, 7, 5, 7, 7, 7, 7, 7, 5, 7, 7, 3, 5, 5, 7, 1, 1, 3, 1, 3, 1, 3, 3, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 7, 7, 7, 7, 7, 5, 7, 7, 5, 7, 7, 3, 5, 3, 7, 1, 3, 3, 3, 3, 3, 3, 1, 3, 1, 4, 4, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 5, 7, 1, 5, 3, 5, 3, 3, 1, 3, 1, 3, 3, 1, 3, 1, 2, 4, 2, 2, 2, 4, 2, 4, 2, 2, 2, 2, 4, 4, 2, 2, 2, 2, 2, 0, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 7, 5, 7, 7, 5, 7, 7, 5, 5, 7, 1, 5, 3, 3, 3, 1, 3, 1, 3, 3, 3, 1, 3, 1, 4, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 5, 7, 3, 5, 3, 3, 1, 3, 1, 1, 3, 1, 1, 1, 1, 1, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 7, 5, 7, 5, 7, 7, 7, 5, 5, 7, 3, 5, 3, 3, 3, 3, 1, 1, 3, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-8, 9, 7, 7, 7, 7, 5, 7, 7, 5, 7, 7, 3, 3, 7, 5, 3, 3, 1, 3, 3, 1, 3, 1, 3, 3, 3, 3, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 7, 7, 5, 7, 7, 7, 7, 7, 5, 3, 5, 5, 3, 3, 3, 3, 1, 1, 3, 1, 1, 3, 1, 1, 1, 4, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 0, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 7, 7, 5, 7, 7, 7, 7, 7, 5, 5, 3, 3, 3, 1, 3, 1, 1, 1, 3, 1, 3, 1, 3, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 7, 5, 7, 5, 5, 7, 7, 3, 3, 5, 3, 3, 3, 5, 3, 3, 3, 3, 3, 1, 5, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 7, 7, 7, 7, 3, 7, 7, 3, 3, 5, 3, 3, 3, 3, 3, 3, 3, 3, 1, 1, 1, 3, 1, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 7, 7, 7, 7, 7, 5, 7, 3, 3, 1, 3, 5, 1, 3, 1, 3, 3, 1, 1, 1, 3, 3, 3, 1, 4, 2, 6, 2, 2, 2, 2, 2, 4, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 7, 7, 7, 5, 3, 5, 7, 7, 3, 3, 3, 3, 1, 3, 3, 3, 3, 1, 1, 3, 1, 3, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 7, 7, 7, 5, 5, 7, 7, 5, 1, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1, 1, 3, 1, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 7, 7, 7, 7, 3, 3, 7, 5, 1, 3, 3, 3, 5, 3, 1, 5, 3, 5, 3, 1, 3, 3, 3, 3, 3, 4, 2, 2, 2, 4, 4, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 8, 5, 5, 5, 3, 7, 5, 3, 3, 3, 3, 3, 3, 1, 1, 1, 3, 5, 3, 3, 3, 1, 1, 3, 2, 2, 2, 2, 2, 4, 4, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 7, 7, 5, 5, 5, 7, 5, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1, 3, 3, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 4, 2, 2, 2, 2, 2, 4, 2, 0, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 7, 7, 5, 7, 5, 5, 7, 5, 1, 3, 1, 5, 3, 3, 3, 3, 3, 1, 1, 1, 3, 3, 3, 1, 3, 4, 2, 2, 4, 4, 2, 2, 2, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 7, 5, 5, 5, 5, 7, 5, 1, 3, 3, 5, 3, 3, 3, 3, 3, 3, 3, 3, 1, 1, 3, 3, 3, 4, 4, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 7, 7, 5, 7, 5, 3, 7, 3, 3, 3, 3, 5, 3, 3, 3, 1, 3, 3, 3, 1, 1, 3, 3, 3, 3, 4, 2, 4, 4, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 7, 3, 7, 3, 3, 7, 5, 1, 3, 5, 3, 3, 3, 5, 1, 3, 3, 3, 3, 3, 1, 1, 3, 3, 2, 2, 4, 2, 4, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 5, 5, 7, 3, 3, 7, 3, 1, 3, 3, 3, 3, 3, 3, 1, 3, 3, 3, 1, 3, 1, 1, 1, 3, 4, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 7, 7, 5, 5, 5, 7, 5, 3, 3, 3, 3, 5, 3, 3, 3, 3, 3, 3, 3, 3, 1, 3, 3, 3, 2, 4, 4, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 7, 7, 5, 5, 5, 3, 7, 3, 3, 3, 5, 5, 3, 1, 3, 1, 1, 1, 3, 3, 3, 1, 3, 1, 1, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 5, 7, 5, 5, 3, 3, 5, 5, 3, 3, 1, 3, 5, 5, 3, 3, 3, 3, 1, 3, 3, 3, 1, 1, 1, 2, 2, 2, 4, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-8, 9, 7, 7, 5, 7, 5, 5, 3, 5, 5, 3, 3, 3, 3, 3, 5, 1, 5, 3, 3, 3, 3, 3, 5, 1, 3, 3, 3, 4, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 5, 7, 5, 7, 5, 5, 5, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1, 3, 3, 1, 3, 1, 1, 1, 3, 2, 2, 4, 2, 4, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 5, 5, 3, 3, 3, 5, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 2, 2, 2, 4, 4, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 5, 7, 7, 7, 7, 7, 3, 3, 5, 3, 3, 3, 3, 3, 3, 5, 3, 3, 3, 3, 3, 1, 3, 3, 1, 3, 3, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 7, 5, 5, 3, 5, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 7, 7, 5, 5, 3, 3, 5, 3, 3, 3, 3, 3, 3, 5, 3, 3, 3, 3, 1, 3, 1, 3, 1, 1, 1, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 7, 7, 5, 5, 1, 3, 3, 3, 3, 3, 3, 3, 5, 5, 3, 3, 1, 3, 5, 1, 1, 3, 1, 1, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 5, 5, 3, 5, 3, 5, 5, 3, 3, 3, 3, 3, 3, 1, 3, 3, 3, 1, 3, 1, 1, 1, 3, 3, 2, 2, 2, 2, 2, 4, 2, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 7, 5, 5, 5, 3, 3, 5, 3, 3, 1, 3, 3, 3, 3, 3, 3, 5, 3, 3, 5, 3, 3, 3, 1, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 7, 7, 7, 3, 3, 3, 5, 5, 3, 3, 3, 3, 3, 3, 3, 1, 1, 3, 3, 3, 3, 1, 3, 3, 1, 4, 2, 2, 2, 4, 2, 4, 2, 4, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 7, 5, 5, 3, 5, 3, 5, 3, 5, 3, 3, 1, 3, 3, 3, 3, 3, 3, 3, 1, 1, 3, 1, 3, 1, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 7, 5, 5, 5, 3, 3, 1, 3, 3, 3, 5, 3, 1, 3, 1, 3, 3, 3, 1, 3, 3, 3, 3, 1, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 7, 7, 5, 3, 5, 5, 5, 3, 3, 3, 3, 3, 3, 3, 3, 1, 3, 1, 3, 1, 3, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 7, 5, 5, 3, 3, 3, 3, 3, 3, 1, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1, 3, 2, 4, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 7, 5, 5, 5, 5, 5, 3, 3, 3, 3, 1, 3, 3, 3, 3, 3, 3, 3, 3, 1, 1, 3, 3, 1, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 7, 7, 5, 5, 5, 3, 5, 3, 3, 3, 3, 3, 3, 3, 5, 3, 3, 3, 3, 3, 3, 1, 3, 5, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 5, 7, 7, 3, 3, 5, 3, 5, 3, 3, 1, 3, 3, 3, 5, 3, 1, 5, 1, 3, 3, 1, 3, 1, 3, 4, 4, 4, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 5, 5, 3, 3, 5, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1, 1, 3, 1, 1, 3, 1, 4, 2, 4, 2, 2, 2, 4, 2, 4, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 5, 5, 5, 7, 3, 3, 3, 3, 3, 1, 3, 3, 3, 3, 5, 3, 1, 3, 3, 3, 3, 1, 3, 3, 3, 3, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 5, 5, 5, 5, 3, 5, 3, 5, 3, 3, 5, 3, 5, 5, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1, 1, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 7, 5, 5, 3, 3, 5, 3, 5, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1, 3, 1, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 7, 7, 7, 5, 3, 3, 3, 3, 3, 3, 3, 3, 1, 3, 3, 3, 3, 3, 3, 3, 1, 3, 3, 3, 1, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 7, 5, 5, 3, 3, 5, 3, 3, 5, 3, 3, 3, 3, 1, 3, 1, 1, 1, 1, 3, 1, 3, 3, 1, 1, 4, 2, 2, 2, 4, 2, 2, 2, 4, 4, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 7, 5, 5, 3, 3, 5, 3, 5, 3, 3, 3, 3, 5, 1, 3, 3, 3, 3, 3, 3, 1, 1, 1, 3, 3, 2, 2, 4, 2, 4, 2, 2, 4, 2, 2, 4, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 5, 7, 5, 5, 3, 3, 3, 3, 5, 3, 3, 3, 3, 5, 3, 1, 3, 3, 1, 3, 3, 3, 3, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 5, 7, 5, 5, 5, 5, 3, 3, 3, 3, 5, 3, 1, 3, 5, 3, 1, 3, 3, 1, 1, 3, 3, 1, 3, 3, 3, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 5, 5, 5, 7, 7, 1, 3, 5, 1, 1, 5, 3, 3, 1, 3, 1, 1, 3, 1, 1, 1, 3, 1, 1, 1, 4, 2, 4, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 7, 7, 7, 5, 7, 5, 3, 3, 1, 3, 3, 3, 3, 1, 3, 3, 3, 3, 3, 3, 1, 1, 3, 1, 1, 4, 2, 2, 2, 2, 2, 2, 4, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 7, 7, 5, 7, 5, 1, 5, 3, 3, 1, 5, 5, 3, 5, 3, 3, 3, 3, 3, 3, 3, 1, 3, 3, 1, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 7, 7, 5, 7, 3, 3, 1, 3, 3, 1, 1, 3, 3, 3, 3, 1, 3, 3, 3, 3, 3, 1, 1, 3, 1, 6, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 5, 7, 7, 3, 5, 3, 3, 3, 1, 3, 3, 3, 3, 3, 3, 1, 3, 3, 3, 1, 3, 3, 3, 3, 3, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 5, 5, 5, 5, 3, 1, 3, 3, 3, 3, 3, 5, 3, 1, 3, 1, 3, 3, 3, 3, 3, 1, 1, 1, 3, 2, 4, 2, 2, 2, 2, 4, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 5, 7, 5, 3, 3, 1, 5, 3, 3, 3, 3, 1, 3, 5, 3, 3, 1, 3, 3, 1, 3, 1, 1, 1, 3, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 7, 7, 3, 3, 3, 3, 1, 3, 1, 3, 3, 3, 3, 3, 3, 1, 1, 1, 3, 3, 1, 1, 3, 3, 1, 4, 2, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 5, 5, 5, 5, 3, 3, 3, 3, 3, 3, 3, 1, 3, 1, 3, 1, 1, 3, 1, 3, 3, 1, 1, 3, 3, 2, 4, 4, 4, 2, 4, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 5, 5, 3, 5, 3, 3, 3, 1, 3, 3, 3, 3, 1, 1, 3, 1, 1, 5, 3, 3, 3, 1, 3, 3, 2, 2, 2, 2, 4, 2, 2, 4, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 7, 7, 7, 8, 3, 5, 7, 7, 1, 7, 3, 3, 3, 3, 1, 1, 1, 1, 3, 5, 3, 1, 5, 3, 3, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 4, 2, 2, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 5, 7, 7, 7, 7, 7, 7, 5, 7, 8, 3, 3, 7, 3, 5, 3, 1, 3, 3, 3, 3, 3, 3, 3, 3, 1, 3, 1, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 8, 7, 7, 8, 5, 5, 7, 5, 1, 7, 5, 3, 5, 3, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 2, 2, 4, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 5, 7, 8, 7, 7, 7, 7, 5, 7, 5, 1, 7, 3, 3, 5, 3, 3, 3, 1, 3, 3, 1, 3, 1, 1, 1, 3, 2, 4, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 8, 7, 7, 7, 7, 7, 5, 7, 3, 3, 5, 3, 3, 3, 3, 3, 3, 1, 3, 1, 3, 1, 1, 3, 1, 1, 2, 4, 4, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 7, 7, 7, 7, 7, 5, 7, 3, 1, 5, 3, 1, 3, 3, 1, 3, 5, 3, 3, 1, 1, 1, 3, 3, 5, 2, 2, 2, 4, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 5, 7, 7, 5, 3, 5, 5, 1, 7, 3, 3, 3, 3, 1, 1, 3, 5, 3, 3, 1, 1, 1, 5, 3, 2, 2, 2, 2, 4, 2, 2, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 5, 1, 7, 7, 7, 1, 8, 7, 3, 7, 5, 7, 7, 5, 5, 7, 1, 1, 2, 6, 2, 2, 2, 2, 2, 7, 2, 2, 2, 2, 4, 4, 2, 4, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 9, 8, 7, 7, 7, 7, 8, 7, 8, 7, 7, 7, 7, 7, 5, 3, 7, 7, 3, 3, 7, 7, 7, 5, 7, 7, 1, 1, 2, 2, 2, 2, 2, 4, 2, 6, 4, 6, 4, 2, 6, 2, 2, 0, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 8, 7, 8, 8, 7, 8, 7, 8, 8, 7, 7, 8, 7, 7, 3, 7, 5, 1, 5, 7, 7, 7, 5, 7, 7, 1, 1, 2, 2, 2, 2, 2, 2, 2, 6, 2, 2, 2, 2, 6, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 8, 7, 7, 7, 7, 8, 7, 8, 8, 7, 3, 7, 7, 7, 1, 7, 5, 1, 7, 7, 7, 7, 3, 7, 5, 1, 3, 2, 4, 2, 4, 2, 2, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 8, 7, 8, 7, 7, 7, 7, 7, 8, 5, 3, 7, 7, 7, 1, 7, 5, 3, 5, 7, 7, 5, 5, 5, 7, 1, 3, 2, 6, 2, 4, 2, 2, 4, 7, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 8, 7, 8, 7, 7, 8, 7, 8, 8, 7, 3, 8, 7, 5, 3, 7, 5, 1, 3, 5, 5, 7, 3, 3, 5, 3, 3, 2, 6, 2, 2, 2, 2, 4, 6, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 8, 7, 8, 7, 7, 8, 7, 7, 7, 7, 5, 7, 7, 7, 1, 7, 5, 1, 5, 5, 5, 7, 3, 5, 7, 1, 3, 2, 4, 4, 2, 2, 2, 4, 6, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 5, 7, 7, 7, 7, 5, 5, 7, 3, 3, 5, 5, 3, 3, 7, 3, 3, 3, 1, 3, 5, 5, 3, 5, 1, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 5, 7, 7, 5, 8, 3, 5, 7, 5, 5, 7, 3, 5, 1, 7, 3, 1, 1, 3, 5, 7, 5, 3, 5, 1, 1, 2, 4, 4, 4, 2, 2, 2, 6, 2, 4, 2, 4, 2, 4, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 7, 8, 7, 7, 7, 7, 7, 7, 7, 5, 3, 1, 7, 7, 3, 1, 7, 7, 7, 1, 1, 5, 1, 3, 6, 2, 7, 4, 4, 6, 2, 2, 0, 2, 6, 4, 6, 4, 2, 0, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 8, 7, 8, 8, 7, 7, 7, 7, 7, 5, 7, 7, 7, 7, 5, 7, 7, 1, 3, 7, 5, 7, 1, 5, 7, 5, 5, 4, 2, 7, 4, 2, 2, 2, 6, 0, 2, 7, 6, 4, 2, 4, 2, 2, 2, 4, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 8, 8, 7, 7, 7, 7, 5, 7, 8, 7, 5, 3, 8, 7, 3, 3, 5, 7, 7, 5, 7, 7, 7, 3, 4, 2, 4, 2, 6, 4, 2, 2, 2, 2, 6, 2, 2, 2, 2, 0, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 9, 8, 7, 7, 7, 7, 5, 7, 7, 7, 7, 5, 7, 7, 7, 3, 7, 7, 1, 5, 3, 3, 7, 3, 5, 7, 5, 3, 4, 2, 6, 2, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 5, 7, 7, 7, 3, 5, 5, 5, 1, 5, 5, 5, 1, 1, 5, 3, 1, 3, 5, 5, 7, 5, 3, 3, 1, 1, 4, 4, 4, 2, 4, 2, 4, 2, 2, 4, 4, 2, 2, 4, 4, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 7, 7, 7, 5, 7, 5, 5, 3, 5, 5, 5, 5, 1, 7, 7, 1, 1, 3, 5, 5, 3, 3, 3, 1, 1, 2, 2, 4, 2, 2, 4, 4, 4, 2, 4, 4, 2, 4, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 7, 7, 7, 7, 7, 3, 3, 5, 7, 7, 3, 1, 7, 7, 1, 3, 7, 5, 7, 1, 3, 5, 1, 3, 6, 4, 6, 4, 6, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 9, 7, 7, 7, 5, 7, 7, 5, 7, 8, 3, 3, 7, 7, 5, 3, 7, 7, 5, 7, 5, 3, 7, 3, 5, 5, 7, 3, 6, 2, 6, 4, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 7, 7, 7, 5, 5, 7, 5, 3, 5, 7, 7, 5, 3, 7, 7, 7, 7, 5, 3, 7, 5, 5, 3, 5, 1, 6, 2, 6, 4, 4, 2, 2, 4, 2, 4, 6, 4, 4, 6, 4, 2, 2, 0, 4, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 8, 7, 7, 7, 5, 7, 7, 7, 7, 7, 7, 7, 5, 7, 7, 7, 7, 7, 5, 7, 5, 5, 3, 3, 1, 4, 2, 6, 2, 2, 2, 2, 2, 2, 0, 2, 0, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 5, 7, 7, 7, 7, 7, 7, 5, 5, 7, 7, 7, 5, 3, 5, 7, 5, 3, 5, 3, 7, 3, 5, 5, 3, 1, 4, 2, 6, 4, 4, 4, 4, 2, 2, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 8, 5, 7, 7, 5, 5, 5, 7, 7, 7, 5, 7, 7, 5, 7, 7, 5, 3, 5, 5, 5, 7, 5, 5, 5, 5, 3, 4, 2, 2, 2, 2, 2, 4, 4, 4, 2, 2, 2, 2, 2, 2, 0, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 3, 7, 7, 7, 7, 5, 7, 5, 5, 7, 7, 3, 7, 5, 3, 5, 5, 3, 4, 2, 6, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 7, 5, 7, 7, 5, 7, 7, 5, 5, 7, 5, 5, 3, 7, 7, 5, 5, 7, 3, 7, 3, 3, 1, 3, 1, 4, 2, 6, 4, 4, 4, 4, 4, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 5, 8, 5, 7, 7, 7, 7, 7, 5, 5, 7, 5, 3, 1, 3, 5, 3, 7, 5, 3, 7, 3, 3, 7, 3, 1, 4, 2, 6, 4, 2, 2, 4, 4, 2, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 5, 7, 5, 5, 7, 7, 7, 7, 5, 5, 5, 5, 3, 1, 1, 5, 1, 5, 5, 3, 7, 3, 5, 3, 3, 1, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 5, 7, 7, 7, 7, 5, 7, 5, 5, 1, 5, 7, 3, 3, 5, 5, 3, 7, 5, 3, 7, 3, 3, 5, 3, 1, 4, 2, 2, 2, 2, 2, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 7, 7, 5, 7, 7, 5, 7, 5, 5, 7, 7, 5, 3, 5, 7, 5, 7, 5, 1, 7, 5, 5, 3, 3, 1, 4, 2, 4, 2, 2, 2, 4, 4, 2, 2, 0, 2, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 5, 5, 7, 5, 5, 1, 5, 3, 5, 5, 5, 1, 7, 3, 5, 5, 5, 3, 4, 2, 6, 2, 2, 2, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 7, 7, 7, 7, 5, 7, 7, 3, 3, 5, 5, 3, 1, 5, 5, 5, 5, 5, 3, 7, 5, 5, 5, 3, 3, 4, 2, 4, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 8, 7, 7, 7, 7, 7, 7, 5, 5, 7, 7, 5, 3, 1, 5, 5, 5, 5, 3, 7, 3, 3, 3, 3, 1, 2, 2, 2, 2, 4, 2, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 8, 5, 7, 7, 5, 7, 5, 3, 5, 7, 5, 1, 3, 3, 5, 1, 3, 3, 1, 5, 3, 1, 1, 3, 5, 2, 2, 2, 2, 2, 2, 4, 4, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 5, 5, 7, 7, 3, 7, 5, 3, 3, 7, 3, 3, 3, 1, 1, 1, 5, 5, 1, 3, 1, 1, 1, 3, 5, 2, 2, 2, 2, 2, 2, 4, 4, 2, 4, 2, 2, 2, 2, 2, 6, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 7, 7, 7, 5, 7, 7, 7, 5, 7, 5, 1, 1, 5, 3, 3, 5, 5, 5, 7, 5, 3, 5, 1, 5, 6, 2, 2, 6, 2, 2, 4, 4, 2, 0, 0, 2, 2, 2, 2, 2, 0, 0, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-7, 8, 7, 7, 7, 3, 8, 8, 7, 8, 7, 7, 7, 7, 7, 5, 1, 7, 1, 1, 3, 3, 3, 7, 5, 1, 3, 1, 5, 2, 2, 2, 2, 2, 2, 2, 6, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 7, 7, 7, 8, 5, 7, 5, 5, 7, 7, 7, 3, 1, 3, 1, 1, 3, 3, 3, 3, 3, 1, 3, 1, 3, 4, 2, 4, 2, 2, 2, 4, 4, 4, 2, 4, 4, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 7, 7, 7, 8, 5, 7, 7, 7, 7, 7, 5, 5, 1, 5, 3, 1, 1, 3, 3, 5, 3, 3, 1, 3, 3, 2, 2, 4, 4, 4, 2, 4, 2, 2, 4, 2, 4, 2, 4, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 8, 7, 7, 7, 7, 8, 5, 7, 7, 7, 5, 7, 5, 3, 1, 3, 1, 1, 3, 5, 3, 5, 3, 3, 3, 1, 3, 4, 2, 4, 4, 2, 2, 4, 4, 4, 4, 2, 2, 4, 2, 4, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 8, 7, 7, 5, 7, 8, 5, 7, 7, 7, 7, 7, 5, 3, 1, 3, 1, 1, 1, 1, 1, 5, 1, 1, 3, 1, 5, 4, 2, 2, 4, 2, 2, 4, 4, 2, 2, 2, 2, 4, 4, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 9, 8, 7, 7, 5, 8, 7, 7, 7, 5, 5, 5, 5, 5, 5, 1, 1, 1, 1, 5, 3, 3, 3, 1, 3, 3, 3, 3, 4, 2, 2, 6, 2, 2, 4, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 9, 7, 7, 7, 5, 7, 7, 3, 3, 1, 3, 1, 5, 5, 1, 3, 3, 1, 1, 3, 3, 3, 1, 3, 3, 5, 1, 1, 2, 2, 2, 2, 2, 2, 4, 4, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 5, 7, 5, 7, 7, 5, 7, 7, 5, 5, 7, 7, 1, 3, 3, 1, 3, 5, 7, 7, 3, 3, 5, 5, 1, 1, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 4, 2, 2, 2, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 7, 7, 7, 7, 7, 8, 7, 7, 7, 7, 7, 3, 5, 7, 7, 5, 5, 7, 7, 5, 3, 3, 3, 1, 1, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 4, 4, 2, 2, 4, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 8, 7, 8, 7, 7, 7, 8, 5, 7, 7, 7, 3, 5, 7, 3, 3, 1, 3, 5, 3, 1, 1, 3, 1, 3, 2, 2, 2, 2, 2, 2, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 8, 7, 8, 7, 7, 8, 7, 7, 7, 7, 7, 1, 5, 5, 1, 1, 5, 5, 5, 1, 1, 3, 5, 1, 1, 2, 4, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 1, 3, 5, 1, 1, 3, 7, 5, 5, 1, 3, 5, 3, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 8, 7, 8, 7, 7, 7, 7, 5, 7, 5, 7, 1, 3, 5, 1, 1, 3, 3, 3, 1, 1, 3, 5, 1, 1, 2, 4, 2, 2, 2, 2, 2, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 8, 7, 8, 5, 7, 7, 7, 3, 5, 5, 7, 1, 3, 5, 1, 1, 3, 3, 3, 1, 1, 3, 3, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 8, 7, 7, 7, 7, 7, 7, 1, 5, 3, 3, 1, 3, 3, 1, 3, 3, 7, 3, 1, 3, 3, 3, 1, 1, 2, 2, 4, 2, 2, 4, 2, 4, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 1, 7, 7, 3, 1, 1, 5, 3, 3, 1, 3, 1, 3, 1, 3, 3, 1, 1, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 0, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 8, 7, 8, 7, 7, 7, 7, 7, 7, 5, 5, 7, 5, 1, 1, 5, 1, 3, 5, 3, 5, 1, 3, 3, 3, 3, 3, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 3, 5, 7, 7, 3, 5, 5, 5, 3, 3, 1, 3, 3, 3, 1, 3, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 5, 5, 5, 7, 3, 1, 3, 1, 1, 3, 5, 1, 1, 1, 3, 3, 3, 3, 2, 4, 2, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 7, 8, 7, 7, 7, 7, 3, 5, 7, 5, 1, 1, 3, 3, 3, 3, 1, 3, 1, 3, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
-7, 7, 7, 5, 8, 7, 8, 5, 7, 7, 7, 1, 5, 5, 3, 1, 3, 5, 1, 1, 3, 3, 1, 3, 1, 1, 1, 3, 1, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 5, 7, 7, 7, 7, 7, 7, 7, 3, 5, 5, 5, 1, 3, 5, 3, 3, 3, 3, 1, 3, 3, 5, 1, 3, 3, 4, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 7, 7, 7, 7, 7, 5, 7, 1, 3, 5, 3, 3, 1, 1, 1, 1, 3, 3, 1, 3, 3, 3, 1, 3, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 8, 7, 7, 5, 5, 7, 7, 1, 3, 5, 3, 3, 3, 3, 3, 1, 3, 3, 3, 1, 3, 3, 3, 3, 3, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 8, 5, 7, 7, 7, 7, 7, 7, 7, 1, 3, 1, 3, 3, 3, 3, 3, 3, 5, 3, 3, 3, 3, 3, 1, 3, 5, 2, 2, 2, 2, 4, 2, 4, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
-8, 8, 8, 7, 7, 7, 7, 5, 7, 7, 7, 1, 3, 3, 3, 1, 1, 1, 3, 1, 1, 3, 3, 1, 3, 1, 1, 1, 1, 4, 2, 2, 4, 2, 2, 4, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
-9, 8, 8, 5, 7, 7, 7, 7, 3, 7, 7, 1, 5, 3, 3, 3, 1, 5, 1, 3, 1, 3, 3, 1, 1, 1, 1, 1, 1, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-7, 8, 8, 7, 7, 7, 7, 5, 3, 7, 7, 3, 3, 5, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1, 1, 1, 3, 3, 2, 2, 4, 4, 2, 2, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
-9, 9, 8, 3, 7, 7, 7, 7, 5, 5, 5, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1, 3, 1, 3, 1, 3, 1, 2, 2, 2, 2, 4, 2, 2, 4, 2, 4, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 5, 3, 3, 3, 3, 3, 7, 3, 5, 5, 3, 5, 1, 1, 5, 3, 3, 3, 1, 3, 3, 3, 5, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 5, 7, 7, 5, 3, 3, 5, 3, 7, 7, 3, 7, 5, 3, 5, 3, 3, 3, 1, 3, 3, 1, 3, 1, 3, 1, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
-9, 9, 8, 5, 7, 5, 7, 5, 3, 3, 3, 5, 5, 5, 5, 3, 3, 1, 1, 1, 1, 1, 1, 3, 1, 1, 3, 3, 1, 4, 4, 4, 4, 2, 4, 2, 4, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 5, 5, 3, 5, 3, 7, 1, 3, 3, 1, 3, 1, 3, 5, 3, 1, 3, 3, 1, 5, 3, 5, 3, 3, 1, 1, 2, 2, 2, 4, 2, 2, 4, 4, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 5, 5, 5, 3, 5, 3, 3, 3, 5, 3, 3, 1, 1, 1, 3, 5, 3, 1, 3, 3, 3, 1, 3, 3, 1, 2, 4, 2, 4, 2, 2, 2, 4, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-7, 7, 5, 5, 5, 5, 5, 3, 3, 5, 5, 5, 3, 5, 3, 1, 1, 3, 3, 3, 3, 3, 5, 3, 1, 5, 3, 5, 1, 2, 2, 4, 4, 2, 4, 2, 2, 2, 2, 2, 2, 4, 4, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 5, 5, 7, 7, 5, 7, 5, 3, 7, 5, 5, 1, 5, 5, 3, 5, 1, 5, 5, 3, 1, 3, 3, 1, 5, 1, 5, 1, 2, 2, 4, 6, 6, 2, 2, 2, 6, 4, 4, 6, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 5, 5, 7, 7, 7, 5, 7, 3, 7, 7, 5, 1, 7, 5, 1, 3, 3, 5, 5, 7, 3, 5, 5, 1, 5, 1, 7, 1, 2, 2, 4, 6, 6, 2, 2, 2, 4, 2, 4, 4, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-7, 3, 3, 7, 7, 7, 7, 7, 5, 5, 7, 7, 5, 7, 7, 3, 5, 3, 5, 5, 7, 3, 1, 5, 1, 7, 1, 7, 1, 2, 2, 6, 7, 6, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 5, 3, 7, 8, 5, 7, 5, 7, 7, 7, 5, 5, 5, 7, 3, 5, 3, 7, 5, 7, 3, 3, 7, 3, 5, 5, 7, 1, 2, 2, 4, 4, 4, 6, 2, 2, 2, 6, 4, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 5, 5, 7, 7, 7, 7, 7, 7, 5, 7, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 1, 5, 5, 1, 3, 3, 5, 3, 2, 2, 2, 4, 2, 2, 4, 2, 2, 2, 2, 4, 4, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 3, 7, 8, 7, 7, 7, 7, 7, 7, 3, 5, 7, 7, 3, 3, 5, 5, 1, 7, 5, 1, 3, 1, 3, 1, 3, 1, 2, 2, 4, 2, 2, 4, 2, 2, 2, 2, 2, 4, 4, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 5, 7, 7, 7, 7, 7, 5, 7, 7, 5, 7, 7, 7, 3, 3, 3, 5, 3, 7, 1, 1, 3, 1, 3, 1, 3, 1, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 5, 7, 5, 5, 7, 5, 7, 7, 5, 3, 7, 5, 3, 3, 3, 3, 3, 3, 1, 1, 1, 1, 3, 1, 1, 3, 4, 2, 2, 2, 2, 2, 4, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 7, 5, 5, 5, 3, 7, 7, 5, 3, 5, 5, 1, 1, 1, 1, 7, 3, 3, 1, 5, 1, 1, 3, 1, 1, 6, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 4, 2, 2, 4, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 3, 7, 7, 7, 7, 5, 5, 5, 7, 5, 5, 5, 7, 5, 7, 5, 7, 7, 7, 3, 1, 5, 1, 1, 3, 5, 3, 6, 7, 2, 4, 4, 2, 6, 4, 6, 2, 2, 2, 4, 4, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 3, 7, 7, 7, 7, 7, 3, 7, 7, 5, 3, 7, 5, 5, 5, 7, 5, 7, 5, 5, 1, 7, 5, 1, 1, 5, 1, 2, 4, 2, 2, 6, 2, 4, 2, 2, 2, 2, 2, 2, 4, 4, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 3, 7, 7, 7, 7, 7, 5, 7, 7, 7, 3, 7, 7, 5, 7, 7, 5, 5, 7, 1, 1, 5, 1, 1, 1, 5, 1, 2, 2, 2, 4, 2, 2, 4, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 1, 7, 7, 7, 7, 7, 7, 5, 7, 5, 3, 5, 7, 3, 5, 3, 3, 1, 5, 1, 1, 1, 1, 1, 1, 1, 3, 2, 4, 2, 4, 2, 2, 2, 4, 4, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 5, 7, 7, 7, 5, 5, 5, 5, 5, 3, 3, 5, 5, 3, 3, 3, 3, 1, 3, 1, 1, 1, 1, 1, 1, 3, 5, 4, 4, 2, 4, 2, 2, 2, 4, 2, 2, 4, 2, 2, 4, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 5, 7, 7, 5, 3, 5, 5, 7, 7, 5, 5, 7, 5, 3, 7, 1, 1, 1, 3, 3, 1, 1, 3, 1, 3, 1, 3, 4, 2, 2, 2, 4, 2, 4, 4, 2, 2, 4, 2, 6, 4, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 5, 5, 5, 3, 5, 5, 3, 3, 1, 3, 1, 1, 3, 3, 5, 3, 3, 1, 3, 1, 3, 1, 1, 3, 3, 3, 2, 4, 2, 2, 2, 4, 4, 2, 2, 2, 4, 4, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 5, 7, 7, 7, 5, 5, 3, 5, 5, 3, 3, 3, 5, 5, 3, 3, 5, 1, 3, 1, 3, 1, 1, 1, 3, 3, 1, 4, 4, 2, 4, 2, 2, 4, 2, 2, 4, 2, 2, 4, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 8, 3, 7, 7, 3, 3, 5, 7, 1, 3, 3, 1, 3, 3, 3, 3, 1, 5, 5, 3, 3, 3, 3, 3, 1, 4, 2, 4, 2, 2, 2, 4, 2, 4, 2, 4, 4, 4, 4, 2, 2, 0, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 1, 7, 5, 7, 7, 7, 3, 5, 7, 7, 1, 5, 7, 3, 5, 3, 7, 7, 1, 5, 1, 5, 3, 1, 3, 3, 5, 2, 4, 2, 2, 2, 2, 2, 2, 4, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 5, 7, 5, 7, 7, 7, 5, 7, 7, 5, 1, 3, 7, 3, 1, 5, 7, 5, 7, 5, 1, 3, 1, 3, 1, 1, 3, 4, 4, 4, 2, 4, 2, 2, 2, 2, 2, 4, 2, 4, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 5, 7, 7, 7, 7, 5, 3, 5, 7, 3, 3, 3, 5, 1, 1, 3, 3, 5, 1, 1, 1, 1, 1, 1, 1, 3, 5, 2, 4, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 4, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 5, 7, 7, 7, 7, 7, 3, 3, 7, 7, 3, 3, 3, 1, 3, 3, 3, 1, 3, 3, 3, 1, 1, 3, 1, 1, 3, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 4, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 5, 7, 7, 7, 7, 7, 5, 5, 7, 7, 5, 3, 3, 1, 5, 3, 3, 1, 3, 5, 3, 3, 1, 1, 3, 1, 1, 4, 2, 4, 2, 4, 4, 2, 2, 2, 4, 2, 4, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 5, 7, 7, 7, 7, 7, 3, 7, 7, 3, 5, 3, 3, 3, 3, 3, 3, 1, 3, 1, 1, 3, 1, 1, 1, 3, 1, 4, 2, 2, 2, 2, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 5, 7, 7, 7, 7, 7, 3, 7, 7, 5, 5, 3, 1, 3, 3, 3, 3, 3, 3, 1, 1, 3, 3, 1, 3, 1, 3, 4, 4, 2, 2, 2, 4, 4, 4, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 5, 5, 5, 5, 3, 3, 3, 3, 5, 3, 1, 3, 3, 3, 3, 3, 3, 1, 1, 3, 1, 1, 5, 3, 3, 3, 4, 2, 2, 4, 2, 2, 4, 2, 2, 2, 4, 2, 2, 4, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 5, 5, 7, 5, 5, 3, 3, 1, 3, 3, 3, 1, 1, 3, 3, 3, 3, 1, 3, 5, 3, 3, 1, 3, 2, 2, 2, 2, 4, 4, 2, 2, 4, 4, 4, 2, 2, 4, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-7, 7, 7, 7, 8, 5, 7, 7, 5, 5, 7, 5, 3, 3, 5, 5, 7, 5, 7, 1, 3, 5, 3, 7, 5, 5, 3, 7, 3, 6, 6, 6, 2, 4, 2, 6, 4, 6, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-7, 7, 7, 7, 7, 7, 7, 7, 5, 7, 7, 7, 3, 3, 7, 3, 7, 7, 7, 5, 7, 5, 5, 7, 5, 5, 5, 7, 5, 6, 7, 6, 2, 4, 4, 6, 4, 6, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 8, 7, 3, 7, 7, 5, 7, 7, 7, 3, 7, 7, 5, 7, 1, 3, 3, 7, 1, 6, 6, 4, 2, 2, 2, 4, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 5, 7, 7, 7, 7, 7, 7, 7, 7, 7, 5, 3, 5, 7, 3, 7, 7, 7, 3, 3, 5, 5, 7, 3, 3, 5, 3, 1, 4, 4, 4, 2, 4, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 5, 5, 7, 7, 7, 7, 7, 7, 7, 7, 3, 1, 3, 7, 3, 5, 7, 7, 3, 7, 7, 1, 7, 1, 3, 3, 3, 1, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 7, 7, 7, 5, 7, 7, 7, 5, 3, 3, 5, 3, 7, 5, 7, 3, 7, 7, 3, 7, 1, 1, 5, 1, 1, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 5, 7, 8, 7, 7, 7, 7, 7, 7, 3, 3, 3, 7, 3, 7, 7, 7, 1, 5, 5, 1, 7, 1, 1, 3, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 7, 5, 7, 7, 3, 7, 7, 5, 5, 5, 7, 3, 7, 7, 7, 3, 5, 5, 1, 7, 1, 1, 3, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 4, 2, 4, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 7, 7, 7, 7, 7, 5, 7, 5, 1, 5, 7, 3, 5, 7, 7, 3, 3, 3, 3, 3, 1, 3, 3, 3, 1, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 7, 7, 7, 3, 3, 5, 7, 5, 3, 7, 7, 5, 7, 3, 7, 7, 5, 5, 3, 1, 3, 3, 5, 1, 3, 2, 4, 2, 4, 2, 2, 2, 2, 2, 4, 2, 2, 6, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 5, 3, 7, 7, 7, 7, 7, 5, 7, 7, 5, 7, 3, 7, 3, 7, 3, 7, 7, 5, 5, 1, 1, 3, 5, 1, 1, 1, 4, 4, 2, 2, 2, 4, 2, 2, 6, 4, 2, 2, 2, 4, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 3, 3, 7, 7, 7, 7, 7, 5, 7, 7, 7, 7, 5, 5, 3, 5, 5, 5, 7, 3, 5, 1, 1, 1, 5, 1, 1, 1, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 5, 1, 7, 7, 5, 7, 7, 5, 7, 7, 5, 3, 5, 5, 3, 5, 3, 5, 7, 1, 1, 1, 3, 1, 5, 1, 1, 3, 2, 2, 4, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 5, 3, 7, 7, 7, 5, 5, 5, 3, 5, 1, 3, 3, 5, 3, 3, 3, 3, 1, 1, 1, 1, 1, 3, 3, 1, 3, 3, 4, 2, 2, 4, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 1, 7, 7, 5, 5, 7, 3, 7, 7, 3, 3, 5, 3, 3, 3, 1, 3, 3, 3, 1, 1, 1, 1, 1, 1, 1, 1, 4, 4, 2, 4, 4, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 5, 7, 7, 7, 5, 7, 3, 5, 5, 3, 5, 1, 3, 3, 1, 3, 3, 5, 1, 1, 1, 3, 1, 1, 1, 1, 3, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 4, 2, 2, 4, 2, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 5, 3, 5, 3, 5, 3, 3, 3, 3, 3, 3, 1, 1, 5, 3, 3, 3, 1, 3, 3, 1, 1, 3, 3, 1, 3, 4, 4, 2, 2, 2, 2, 4, 2, 2, 2, 2, 4, 4, 2, 4, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 8, 7, 7, 7, 7, 5, 3, 7, 7, 5, 3, 8, 5, 3, 3, 7, 5, 3, 5, 3, 7, 7, 5, 5, 5, 1, 3, 4, 2, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 8, 7, 8, 7, 7, 7, 7, 5, 1, 7, 7, 3, 5, 8, 5, 3, 5, 5, 5, 7, 3, 5, 5, 3, 1, 6, 4, 4, 6, 4, 4, 7, 2, 2, 2, 2, 4, 4, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 7, 8, 7, 7, 7, 7, 8, 5, 1, 7, 5, 3, 5, 7, 5, 3, 3, 3, 5, 5, 5, 5, 5, 1, 1, 6, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 7, 7, 8, 7, 7, 7, 8, 3, 1, 7, 5, 3, 3, 7, 5, 1, 3, 3, 7, 7, 5, 5, 3, 1, 1, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 4, 4, 2, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 8, 7, 7, 7, 7, 7, 7, 7, 7, 3, 3, 5, 3, 3, 3, 7, 3, 1, 1, 5, 5, 5, 5, 3, 3, 3, 1, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 4, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 8, 7, 7, 7, 7, 7, 7, 3, 3, 5, 3, 1, 5, 7, 3, 3, 3, 3, 5, 5, 1, 3, 3, 1, 3, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 8, 7, 7, 7, 8, 7, 7, 7, 7, 5, 5, 7, 5, 5, 3, 7, 5, 3, 3, 5, 7, 7, 1, 3, 3, 1, 5, 2, 2, 4, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 5, 7, 5, 7, 3, 3, 5, 3, 5, 5, 3, 3, 3, 3, 3, 3, 1, 1, 1, 1, 1, 3, 1, 3, 1, 1, 4, 2, 4, 2, 4, 4, 4, 2, 2, 2, 2, 4, 4, 4, 2, 2, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 7, 7, 7, 5, 3, 5, 5, 5, 3, 3, 3, 3, 3, 3, 3, 5, 3, 3, 3, 3, 3, 3, 1, 1, 1, 4, 2, 2, 4, 4, 4, 2, 2, 2, 2, 2, 4, 4, 2, 4, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 7, 5, 7, 5, 5, 3, 5, 3, 3, 3, 3, 1, 3, 3, 5, 3, 3, 3, 3, 5, 3, 1, 1, 5, 3, 4, 6, 2, 4, 6, 4, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 7, 7, 7, 5, 3, 5, 5, 5, 3, 3, 3, 3, 3, 5, 3, 3, 1, 1, 1, 3, 1, 3, 1, 3, 1, 4, 6, 2, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 7, 7, 7, 7, 5, 5, 7, 3, 1, 3, 5, 3, 3, 3, 3, 3, 5, 1, 3, 1, 3, 1, 3, 3, 1, 2, 4, 4, 4, 2, 2, 4, 4, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 7, 5, 7, 5, 3, 5, 5, 3, 3, 3, 3, 1, 5, 3, 5, 1, 3, 1, 1, 3, 3, 3, 1, 3, 1, 4, 4, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 5, 7, 7, 7, 8, 7, 3, 5, 7, 3, 3, 3, 5, 1, 1, 3, 3, 3, 3, 1, 3, 3, 3, 3, 3, 1, 3, 2, 4, 2, 2, 4, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 5, 7, 7, 7, 8, 7, 5, 5, 7, 3, 3, 3, 3, 3, 3, 5, 3, 1, 1, 1, 1, 3, 1, 3, 3, 3, 3, 2, 2, 4, 2, 2, 2, 4, 4, 2, 2, 2, 2, 4, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 5, 7, 7, 7, 5, 5, 3, 5, 7, 3, 5, 5, 3, 3, 3, 3, 3, 3, 1, 1, 3, 3, 3, 1, 3, 3, 3, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 7, 7, 5, 3, 7, 7, 5, 3, 3, 5, 3, 1, 5, 3, 1, 1, 1, 1, 3, 3, 3, 3, 1, 3, 4, 4, 2, 2, 2, 4, 4, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 5, 7, 5, 5, 7, 7, 5, 5, 5, 5, 1, 3, 1, 3, 7, 5, 3, 3, 1, 3, 5, 3, 5, 5, 1, 1, 4, 4, 2, 6, 2, 2, 2, 2, 6, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 7, 8, 5, 5, 5, 5, 5, 5, 5, 3, 7, 1, 3, 7, 3, 3, 5, 3, 3, 3, 3, 3, 1, 1, 1, 2, 7, 4, 4, 4, 2, 6, 2, 2, 6, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 5, 7, 5, 7, 7, 7, 5, 7, 5, 5, 1, 3, 5, 3, 3, 7, 3, 5, 3, 3, 1, 3, 3, 1, 1, 1, 1, 2, 6, 4, 4, 2, 4, 4, 4, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 7, 7, 5, 5, 3, 3, 5, 5, 5, 3, 3, 3, 3, 3, 3, 5, 3, 1, 3, 3, 3, 3, 3, 1, 3, 2, 4, 4, 2, 4, 2, 2, 2, 4, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 5, 7, 7, 7, 7, 3, 5, 3, 7, 5, 3, 3, 5, 1, 1, 5, 3, 1, 5, 3, 3, 3, 3, 3, 3, 3, 1, 2, 4, 2, 4, 2, 2, 2, 2, 2, 4, 2, 2, 2, 4, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 3, 5, 7, 7, 7, 3, 5, 7, 7, 5, 3, 5, 7, 3, 1, 5, 3, 3, 3, 1, 1, 3, 1, 3, 3, 1, 3, 4, 4, 2, 2, 2, 2, 2, 4, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 5, 7, 7, 7, 5, 5, 5, 3, 3, 5, 3, 1, 3, 5, 5, 1, 1, 1, 3, 3, 3, 3, 3, 3, 3, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 4, 4, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 7, 7, 5, 5, 5, 5, 5, 3, 3, 3, 3, 1, 5, 3, 3, 1, 3, 1, 3, 3, 1, 3, 3, 3, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 5, 5, 5, 5, 5, 5, 7, 5, 5, 1, 3, 1, 5, 5, 5, 1, 1, 3, 1, 3, 3, 5, 3, 3, 3, 3, 4, 2, 4, 2, 4, 4, 4, 2, 2, 4, 2, 2, 4, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 5, 5, 5, 5, 3, 5, 3, 5, 3, 3, 5, 1, 7, 5, 3, 7, 7, 3, 5, 7, 5, 3, 1, 7, 3, 4, 6, 2, 4, 4, 4, 6, 2, 2, 2, 4, 6, 4, 4, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 7, 7, 7, 7, 1, 5, 5, 3, 1, 3, 5, 1, 5, 3, 5, 3, 5, 7, 1, 7, 1, 5, 3, 7, 3, 6, 6, 2, 6, 2, 4, 7, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 8, 7, 7, 7, 5, 7, 7, 5, 3, 5, 7, 3, 7, 1, 3, 3, 5, 1, 1, 7, 3, 3, 3, 5, 3, 4, 6, 2, 4, 2, 4, 6, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 8, 7, 7, 7, 7, 7, 7, 5, 5, 7, 7, 5, 5, 5, 5, 5, 5, 5, 5, 5, 3, 5, 3, 5, 3, 4, 6, 2, 4, 2, 4, 2, 4, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 5, 7, 7, 5, 5, 7, 7, 5, 8, 7, 5, 5, 7, 3, 5, 7, 5, 3, 7, 5, 5, 3, 1, 5, 5, 3, 3, 4, 4, 2, 2, 2, 2, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 7, 7, 7, 7, 3, 7, 7, 5, 5, 7, 7, 3, 3, 5, 5, 3, 5, 3, 1, 3, 1, 3, 3, 1, 1, 4, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 5, 7, 7, 7, 7, 7, 5, 7, 7, 5, 5, 5, 7, 3, 3, 5, 5, 5, 7, 5, 1, 3, 1, 1, 5, 3, 3, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 8, 7, 7, 7, 3, 7, 7, 3, 5, 7, 5, 3, 5, 3, 5, 5, 7, 3, 3, 3, 1, 3, 5, 3, 1, 2, 2, 2, 2, 2, 4, 2, 4, 2, 4, 2, 2, 2, 2, 2, 4, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 7, 7, 7, 5, 7, 7, 3, 7, 7, 7, 3, 1, 5, 3, 3, 5, 3, 1, 5, 3, 1, 5, 3, 1, 2, 2, 2, 2, 2, 2, 2, 2, 4, 4, 4, 4, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 7, 5, 5, 3, 3, 7, 5, 5, 3, 5, 1, 5, 7, 5, 3, 7, 3, 5, 5, 5, 3, 1, 3, 1, 4, 6, 2, 4, 4, 2, 4, 4, 6, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 5, 7, 7, 7, 7, 7, 5, 7, 7, 3, 5, 3, 7, 5, 7, 7, 7, 3, 5, 3, 1, 7, 3, 1, 3, 5, 3, 6, 7, 2, 2, 4, 2, 7, 4, 6, 4, 2, 2, 2, 4, 4, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 5, 7, 7, 7, 5, 7, 5, 7, 7, 7, 5, 5, 7, 3, 7, 7, 7, 1, 7, 5, 3, 5, 3, 3, 3, 3, 3, 6, 7, 2, 2, 2, 2, 6, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 9, 7, 7, 7, 3, 7, 7, 3, 7, 7, 3, 7, 7, 7, 7, 7, 7, 7, 1, 5, 1, 1, 5, 1, 1, 3, 5, 1, 2, 4, 2, 2, 2, 2, 4, 2, 2, 2, 2, 4, 2, 4, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 5, 7, 7, 5, 5, 3, 5, 7, 3, 5, 5, 5, 3, 3, 5, 7, 7, 5, 5, 5, 5, 3, 7, 3, 1, 3, 6, 6, 6, 4, 2, 2, 6, 2, 4, 2, 4, 2, 6, 4, 6, 4, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 5, 5, 7, 7, 5, 7, 7, 7, 7, 3, 7, 5, 5, 1, 3, 5, 7, 7, 5, 7, 5, 7, 1, 7, 1, 3, 1, 4, 7, 6, 4, 2, 2, 2, 2, 4, 0, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 9, 5, 7, 7, 7, 7, 3, 3, 7, 7, 3, 7, 7, 7, 5, 1, 5, 7, 5, 5, 3, 5, 5, 1, 7, 3, 1, 3, 4, 7, 6, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 5, 7, 7, 7, 3, 5, 5, 5, 3, 3, 3, 5, 5, 1, 3, 3, 5, 7, 1, 3, 5, 5, 5, 1, 1, 1, 1, 2, 4, 4, 2, 2, 4, 4, 2, 4, 4, 2, 2, 2, 4, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 5, 5, 5, 7, 7, 7, 3, 7, 5, 5, 3, 3, 5, 1, 3, 3, 5, 5, 3, 1, 1, 3, 3, 1, 1, 1, 3, 4, 6, 4, 4, 2, 2, 4, 4, 2, 4, 4, 4, 4, 4, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 7, 7, 7, 7, 5, 5, 7, 5, 3, 3, 5, 3, 3, 1, 5, 3, 1, 1, 1, 3, 1, 3, 1, 1, 1, 4, 6, 4, 4, 2, 2, 2, 2, 2, 4, 2, 4, 2, 4, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 7, 7, 7, 7, 5, 7, 5, 5, 1, 5, 5, 1, 5, 3, 7, 5, 3, 1, 1, 1, 1, 1, 1, 3, 1, 4, 6, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 5, 7, 7, 7, 7, 7, 5, 7, 7, 5, 3, 5, 5, 3, 3, 3, 3, 3, 3, 3, 1, 5, 1, 1, 1, 1, 3, 2, 4, 4, 4, 2, 4, 2, 2, 4, 4, 2, 4, 4, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 7, 7, 7, 5, 5, 7, 5, 5, 3, 1, 3, 3, 3, 3, 1, 3, 3, 1, 1, 1, 3, 3, 1, 3, 3, 2, 2, 2, 2, 2, 2, 4, 2, 4, 2, 2, 2, 4, 2, 2, 4, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 7, 7, 7, 5, 7, 5, 3, 3, 3, 3, 3, 1, 5, 3, 3, 1, 1, 1, 1, 1, 3, 3, 3, 1, 4, 2, 4, 2, 2, 4, 2, 2, 2, 4, 2, 4, 4, 4, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 7, 5, 5, 5, 7, 7, 5, 1, 3, 5, 5, 1, 3, 3, 1, 3, 1, 1, 1, 3, 1, 3, 3, 1, 4, 6, 4, 4, 4, 4, 2, 2, 2, 4, 4, 4, 2, 4, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 5, 7, 7, 7, 7, 5, 7, 7, 5, 3, 3, 3, 3, 3, 3, 1, 1, 3, 3, 1, 1, 3, 3, 3, 3, 3, 6, 2, 2, 4, 2, 4, 4, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 3, 3, 5, 3, 3, 3, 1, 3, 1, 3, 1, 3, 3, 3, 3, 5, 3, 5, 3, 3, 5, 5, 3, 3, 5, 4, 2, 6, 2, 4, 2, 4, 2, 4, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 7, 7, 7, 5, 3, 5, 7, 5, 3, 3, 3, 3, 7, 5, 7, 3, 5, 7, 1, 7, 1, 7, 3, 5, 1, 6, 7, 6, 6, 2, 2, 4, 4, 4, 2, 2, 4, 4, 4, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 8, 7, 7, 7, 5, 7, 7, 7, 1, 3, 7, 5, 5, 7, 7, 3, 5, 3, 5, 7, 3, 7, 1, 5, 5, 4, 7, 4, 4, 2, 2, 2, 2, 4, 4, 2, 2, 2, 4, 2, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 3, 7, 8, 7, 8, 7, 7, 7, 7, 5, 1, 3, 7, 3, 7, 7, 7, 7, 7, 5, 1, 7, 1, 7, 1, 1, 1, 2, 6, 4, 4, 2, 2, 4, 2, 4, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 3, 3, 7, 3, 7, 7, 7, 3, 3, 3, 3, 7, 1, 7, 3, 5, 3, 4, 6, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 3, 7, 7, 7, 7, 7, 7, 7, 7, 5, 1, 3, 7, 3, 5, 5, 7, 3, 5, 3, 3, 5, 1, 5, 1, 1, 3, 4, 6, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 5, 7, 7, 7, 7, 7, 7, 7, 7, 5, 3, 5, 7, 5, 5, 7, 7, 3, 5, 3, 1, 5, 1, 7, 3, 3, 5, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 3, 7, 7, 7, 7, 7, 3, 7, 7, 5, 3, 5, 5, 1, 3, 7, 5, 1, 5, 3, 3, 5, 1, 3, 1, 1, 5, 4, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 4, 2, 4, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 7, 7, 5, 3, 7, 7, 5, 3, 3, 7, 1, 5, 7, 5, 1, 3, 3, 3, 3, 3, 3, 1, 1, 5, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 4, 4, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 5, 3, 7, 3, 8, 8, 3, 7, 8, 3, 7, 7, 3, 7, 8, 5, 7, 3, 7, 5, 1, 7, 7, 1, 2, 6, 7, 6, 0, 4, 6, 0, 4, 2, 4, 2, 4, 4, 0, 2, 0, 2, 2, 0, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 8, 7, 5, 8, 1, 8, 8, 1, 7, 8, 1, 7, 7, 3, 7, 8, 1, 7, 3, 3, 7, 1, 7, 7, 1, 2, 2, 4, 4, 0, 2, 6, 0, 2, 2, 6, 4, 0, 2, 0, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 5, 8, 8, 3, 7, 9, 1, 8, 7, 1, 7, 8, 1, 8, 7, 1, 7, 8, 3, 7, 1, 7, 7, 1, 7, 7, 3, 2, 2, 6, 6, 0, 2, 6, 0, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 7, 3, 7, 7, 3, 7, 7, 1, 7, 8, 1, 7, 7, 3, 8, 7, 3, 7, 1, 5, 7, 3, 7, 7, 3, 2, 7, 6, 6, 2, 4, 7, 2, 2, 4, 2, 2, 0, 2, 0, 0, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 8, 7, 7, 8, 5, 8, 7, 1, 7, 8, 1, 7, 7, 1, 7, 7, 1, 7, 1, 3, 5, 1, 5, 7, 1, 4, 6, 7, 6, 0, 6, 6, 2, 2, 4, 4, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 8, 5, 7, 8, 3, 7, 7, 1, 7, 7, 1, 7, 5, 1, 7, 7, 7, 7, 3, 5, 5, 1, 7, 5, 1, 4, 6, 7, 6, 2, 4, 6, 2, 4, 4, 4, 2, 2, 4, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 5, 7, 7, 7, 5, 7, 7, 5, 8, 3, 7, 3, 7, 7, 7, 7, 7, 5, 3, 5, 1, 5, 5, 3, 7, 4, 7, 2, 6, 6, 4, 6, 2, 6, 0, 2, 2, 4, 2, 4, 0, 4, 2, 2, 2, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 5, 7, 7, 3, 7, 7, 5, 7, 7, 3, 5, 7, 1, 7, 5, 7, 7, 7, 5, 7, 5, 1, 7, 1, 5, 1, 1, 4, 4, 6, 2, 6, 2, 2, 2, 2, 2, 2, 4, 2, 4, 2, 2, 2, 2, 0, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 5, 7, 7, 5, 8, 5, 7, 3, 7, 5, 7, 7, 3, 7, 1, 7, 7, 5, 7, 1, 7, 3, 7, 7, 7, 5, 0, 7, 2, 7, 2, 6, 0, 2, 2, 0, 2, 2, 2, 2, 6, 2, 6, 0, 6, 0, 6, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 5, 7, 7, 5, 7, 5, 8, 3, 7, 7, 7, 7, 3, 7, 3, 7, 7, 5, 7, 5, 7, 1, 7, 5, 5, 3, 1, 7, 2, 7, 2, 7, 2, 4, 4, 2, 2, 4, 2, 2, 4, 2, 4, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-7, 8, 3, 7, 5, 7, 8, 5, 8, 3, 7, 7, 7, 8, 3, 7, 3, 7, 7, 7, 7, 3, 5, 3, 7, 3, 3, 5, 1, 6, 4, 7, 2, 4, 2, 2, 2, 0, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 7, 5, 8, 7, 8, 5, 7, 8, 3, 7, 3, 7, 5, 7, 5, 7, 7, 5, 5, 3, 7, 5, 3, 5, 1, 6, 4, 7, 2, 6, 2, 4, 4, 2, 2, 6, 0, 0, 4, 0, 4, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 7, 7, 8, 5, 8, 7, 7, 7, 7, 7, 3, 7, 5, 7, 5, 3, 8, 5, 7, 3, 7, 5, 3, 3, 0, 7, 2, 7, 2, 6, 2, 2, 2, 2, 2, 2, 0, 0, 4, 0, 2, 0, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 9, 5, 7, 7, 7, 7, 5, 7, 1, 5, 7, 7, 7, 3, 7, 3, 7, 7, 5, 7, 3, 5, 3, 7, 5, 3, 3, 1, 4, 2, 6, 2, 6, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 0, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 5, 5, 5, 5, 5, 5, 3, 5, 7, 7, 7, 1, 7, 5, 5, 5, 3, 7, 1, 1, 7, 5, 3, 5, 3, 1, 6, 2, 6, 2, 2, 2, 2, 4, 2, 0, 2, 6, 2, 2, 2, 2, 2, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 5, 7, 5, 7, 5, 7, 7, 7, 7, 5, 7, 3, 8, 1, 7, 1, 7, 5, 7, 7, 5, 7, 3, 5, 1, 7, 1, 2, 0, 6, 2, 6, 2, 0, 0, 4, 2, 0, 2, 4, 4, 6, 0, 6, 2, 4, 0, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 5, 3, 7, 7, 3, 7, 5, 3, 7, 3, 7, 3, 5, 5, 5, 3, 5, 5, 3, 3, 3, 3, 3, 3, 1, 4, 4, 4, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 7, 5, 7, 7, 3, 7, 7, 3, 3, 3, 5, 1, 3, 3, 5, 1, 3, 5, 3, 3, 1, 3, 3, 7, 3, 6, 4, 6, 2, 4, 2, 2, 2, 4, 2, 2, 2, 4, 4, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 8, 7, 7, 7, 8, 3, 7, 7, 3, 7, 3, 7, 3, 5, 3, 1, 3, 5, 3, 1, 3, 1, 3, 3, 5, 1, 4, 4, 6, 2, 4, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-7, 8, 5, 7, 7, 7, 7, 8, 5, 7, 5, 3, 3, 3, 7, 3, 5, 3, 5, 3, 5, 3, 1, 3, 1, 3, 3, 5, 1, 4, 2, 6, 2, 2, 2, 2, 2, 2, 2, 4, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 7, 7, 5, 7, 5, 7, 5, 3, 5, 3, 5, 1, 1, 3, 3, 3, 5, 3, 1, 3, 1, 3, 1, 5, 1, 2, 4, 6, 4, 6, 6, 4, 6, 4, 4, 4, 6, 4, 2, 2, 2, 2, 2, 0, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 5, 7, 7, 7, 5, 7, 7, 7, 7, 1, 3, 1, 7, 3, 3, 5, 5, 1, 5, 3, 1, 3, 3, 3, 3, 5, 1, 2, 4, 6, 2, 6, 2, 2, 2, 2, 2, 2, 2, 4, 4, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 7, 7, 8, 3, 7, 7, 1, 7, 3, 7, 1, 3, 3, 5, 3, 3, 1, 1, 1, 1, 3, 1, 7, 3, 4, 2, 6, 2, 6, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 5, 5, 7, 7, 7, 5, 7, 8, 7, 7, 7, 7, 3, 7, 7, 3, 7, 1, 7, 1, 7, 3, 0, 3, 0, 7, 2, 7, 2, 6, 6, 2, 4, 0, 2, 4, 6, 0, 2, 2, 0, 0, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 3, 5, 7, 5, 7, 5, 7, 7, 7, 7, 5, 1, 5, 5, 7, 5, 7, 3, 5, 1, 7, 3, 1, 5, 1, 6, 2, 7, 2, 4, 2, 4, 2, 2, 2, 6, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 3, 7, 5, 5, 5, 7, 7, 7, 7, 7, 5, 5, 7, 1, 5, 3, 3, 1, 5, 5, 3, 3, 5, 3, 1, 3, 1, 6, 4, 2, 2, 2, 4, 2, 2, 2, 2, 2, 4, 4, 4, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 3, 7, 7, 7, 5, 7, 7, 5, 7, 7, 5, 7, 7, 5, 7, 5, 7, 1, 5, 3, 7, 7, 5, 1, 1, 3, 5, 6, 7, 6, 2, 4, 6, 4, 2, 4, 2, 4, 4, 2, 4, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 5, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 5, 7, 1, 7, 7, 7, 1, 7, 3, 5, 7, 7, 5, 1, 3, 1, 4, 6, 6, 2, 4, 4, 2, 2, 2, 2, 4, 2, 4, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-7, 8, 5, 7, 3, 7, 7, 5, 7, 5, 5, 8, 7, 7, 7, 5, 3, 7, 5, 3, 5, 1, 5, 3, 7, 3, 3, 5, 1, 7, 2, 6, 2, 7, 2, 2, 4, 2, 6, 2, 6, 2, 6, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-7, 8, 3, 7, 7, 7, 7, 7, 7, 5, 7, 5, 7, 5, 5, 5, 3, 5, 5, 3, 5, 3, 5, 3, 7, 1, 1, 3, 3, 7, 2, 4, 2, 4, 2, 2, 2, 2, 2, 2, 2, 4, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-7, 8, 7, 7, 5, 7, 7, 7, 7, 3, 3, 7, 5, 7, 3, 3, 3, 7, 7, 5, 5, 3, 1, 7, 5, 5, 3, 5, 3, 6, 7, 4, 6, 4, 2, 6, 4, 2, 2, 2, 4, 4, 2, 2, 2, 2, 4, 2, 2, 0, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 5, 7, 7, 5, 7, 7, 7, 7, 5, 5, 5, 3, 5, 5, 5, 5, 3, 3, 3, 3, 3, 5, 3, 5, 1, 5, 5, 6, 7, 4, 4, 6, 2, 4, 4, 2, 2, 2, 4, 4, 4, 2, 2, 4, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 5, 7, 5, 5, 7, 7, 7, 5, 7, 7, 5, 7, 7, 5, 5, 7, 5, 5, 5, 5, 5, 3, 7, 3, 5, 7, 1, 6, 7, 6, 6, 4, 2, 2, 2, 4, 2, 4, 6, 2, 2, 0, 2, 2, 0, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 7, 5, 7, 7, 7, 3, 7, 7, 5, 7, 7, 5, 7, 5, 7, 7, 5, 5, 5, 5, 7, 5, 5, 5, 1, 7, 6, 6, 7, 2, 4, 4, 2, 6, 2, 2, 4, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 5, 7, 7, 3, 7, 7, 5, 5, 5, 5, 3, 5, 5, 5, 3, 5, 3, 1, 1, 3, 1, 1, 3, 3, 5, 3, 1, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-7, 7, 7, 7, 7, 3, 7, 5, 5, 3, 3, 5, 3, 3, 5, 5, 3, 3, 1, 5, 3, 3, 3, 1, 3, 3, 1, 1, 3, 4, 4, 4, 2, 2, 2, 4, 4, 2, 2, 4, 6, 4, 4, 2, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 5, 7, 7, 7, 7, 7, 3, 5, 5, 7, 3, 5, 3, 5, 1, 7, 1, 5, 3, 3, 1, 5, 5, 5, 3, 5, 3, 6, 7, 4, 2, 4, 4, 2, 2, 4, 2, 2, 2, 6, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-7, 7, 3, 7, 7, 7, 7, 7, 5, 7, 5, 7, 3, 5, 3, 3, 5, 7, 3, 3, 1, 3, 3, 3, 5, 3, 1, 5, 1, 4, 6, 4, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 4, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-7, 7, 7, 7, 7, 7, 7, 8, 5, 7, 7, 5, 3, 7, 3, 5, 1, 7, 3, 3, 1, 3, 5, 3, 5, 3, 1, 3, 1, 4, 4, 4, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 5, 7, 7, 7, 7, 8, 3, 7, 5, 5, 5, 7, 3, 5, 3, 7, 5, 3, 1, 3, 3, 5, 3, 5, 3, 3, 1, 2, 4, 4, 4, 4, 2, 2, 2, 2, 2, 2, 4, 4, 2, 2, 2, 2, 4, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 8, 7, 7, 7, 3, 5, 7, 3, 5, 5, 3, 3, 5, 7, 3, 5, 1, 3, 3, 3, 5, 3, 3, 1, 1, 4, 4, 2, 4, 2, 2, 2, 2, 4, 2, 2, 4, 4, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 5, 7, 8, 7, 7, 7, 7, 5, 7, 5, 3, 5, 3, 5, 1, 7, 3, 3, 1, 3, 3, 5, 3, 3, 1, 3, 3, 6, 4, 2, 4, 2, 4, 2, 2, 2, 2, 2, 4, 2, 2, 4, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 7, 7, 7, 5, 7, 7, 5, 3, 5, 7, 3, 3, 3, 5, 1, 1, 1, 1, 3, 1, 1, 1, 3, 1, 1, 7, 4, 4, 4, 2, 2, 2, 2, 4, 4, 2, 2, 2, 4, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 5, 7, 5, 5, 7, 3, 8, 3, 7, 8, 5, 7, 3, 7, 1, 1, 8, 7, 7, 3, 5, 1, 7, 3, 7, 7, 1, 2, 0, 6, 2, 6, 0, 2, 2, 2, 6, 2, 6, 0, 2, 0, 6, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 9, 3, 7, 5, 3, 8, 5, 8, 1, 7, 7, 5, 8, 1, 7, 1, 3, 8, 3, 7, 3, 5, 3, 5, 5, 5, 7, 3, 2, 2, 2, 2, 6, 2, 2, 2, 2, 4, 4, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 1, 7, 5, 7, 7, 3, 8, 1, 7, 5, 7, 8, 1, 7, 1, 5, 8, 5, 7, 1, 3, 3, 7, 5, 5, 7, 3, 6, 4, 6, 2, 6, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-7, 8, 3, 7, 7, 7, 8, 5, 8, 1, 7, 8, 5, 7, 1, 7, 1, 5, 7, 7, 7, 1, 7, 5, 7, 5, 7, 5, 1, 4, 2, 6, 2, 6, 2, 2, 4, 2, 2, 2, 2, 0, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-7, 8, 7, 7, 5, 7, 8, 5, 8, 1, 7, 7, 7, 7, 3, 7, 1, 5, 8, 3, 7, 1, 5, 1, 7, 5, 7, 5, 1, 4, 2, 6, 2, 6, 2, 2, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 5, 7, 5, 5, 8, 5, 8, 1, 7, 8, 7, 7, 1, 7, 3, 3, 7, 3, 7, 1, 5, 1, 5, 5, 7, 7, 1, 2, 0, 6, 2, 6, 2, 0, 2, 0, 2, 0, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 1, 7, 7, 7, 8, 3, 8, 3, 7, 7, 7, 8, 1, 7, 1, 1, 7, 5, 7, 1, 5, 1, 5, 5, 7, 5, 1, 2, 2, 6, 2, 6, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 3, 7, 7, 5, 8, 5, 7, 3, 7, 7, 5, 7, 3, 7, 1, 3, 7, 5, 7, 3, 5, 1, 3, 7, 5, 5, 1, 2, 2, 7, 2, 6, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-7, 8, 5, 7, 5, 7, 8, 3, 7, 1, 7, 7, 7, 7, 3, 7, 1, 1, 8, 5, 7, 3, 3, 1, 3, 5, 7, 7, 1, 4, 2, 6, 2, 4, 2, 2, 2, 2, 4, 2, 4, 4, 2, 2, 2, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 5, 7, 5, 5, 7, 3, 8, 1, 7, 3, 5, 7, 5, 5, 3, 3, 7, 7, 7, 1, 5, 5, 5, 5, 7, 5, 3, 4, 4, 4, 2, 6, 2, 2, 4, 2, 2, 4, 2, 6, 4, 2, 0, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-7, 8, 1, 7, 5, 5, 7, 5, 7, 3, 7, 7, 3, 7, 1, 7, 3, 5, 7, 3, 7, 1, 3, 3, 5, 5, 5, 3, 1, 4, 2, 2, 2, 6, 2, 2, 4, 2, 4, 4, 4, 4, 4, 2, 2, 2, 2, 0, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 5, 7, 5, 7, 8, 5, 7, 3, 7, 7, 1, 7, 3, 7, 3, 3, 5, 3, 5, 1, 1, 3, 5, 3, 3, 3, 1, 4, 2, 4, 2, 4, 2, 2, 4, 2, 2, 2, 4, 6, 4, 2, 2, 2, 2, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 3, 7, 5, 5, 8, 3, 8, 5, 5, 7, 5, 7, 3, 3, 5, 5, 7, 5, 5, 1, 3, 3, 5, 5, 5, 3, 1, 4, 2, 4, 4, 2, 2, 2, 2, 2, 4, 2, 4, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
-8, 8, 5, 7, 5, 5, 7, 3, 8, 1, 5, 7, 7, 7, 3, 7, 1, 3, 7, 3, 5, 3, 3, 3, 5, 3, 7, 5, 3, 4, 2, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 2, 2, 0, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 5, 7, 7, 7, 7, 3, 7, 1, 7, 5, 5, 7, 3, 3, 1, 1, 7, 5, 7, 3, 3, 7, 7, 3, 3, 1, 1, 4, 4, 4, 2, 4, 2, 4, 4, 2, 4, 4, 4, 4, 2, 2, 2, 0, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-7, 7, 5, 7, 7, 5, 8, 5, 7, 3, 7, 7, 5, 7, 3, 5, 1, 3, 7, 1, 5, 1, 3, 3, 3, 3, 1, 3, 1, 2, 2, 2, 2, 2, 2, 4, 2, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-7, 7, 5, 7, 7, 5, 8, 3, 7, 1, 7, 5, 3, 1, 3, 3, 3, 3, 3, 1, 5, 1, 1, 1, 1, 1, 1, 3, 3, 2, 4, 4, 2, 2, 2, 2, 2, 4, 2, 2, 4, 4, 4, 2, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 5, 7, 7, 5, 7, 3, 7, 1, 7, 5, 3, 5, 3, 5, 1, 3, 3, 5, 3, 1, 1, 1, 1, 1, 3, 1, 1, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 4, 4, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 5, 7, 7, 5, 7, 3, 7, 3, 5, 5, 5, 5, 3, 7, 1, 3, 5, 1, 3, 1, 1, 3, 3, 1, 3, 1, 3, 2, 2, 2, 4, 2, 2, 2, 2, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 8, 7, 5, 7, 7, 1, 7, 7, 7, 3, 7, 7, 3, 5, 7, 5, 7, 3, 7, 7, 7, 3, 7, 7, 7, 1, 3, 4, 2, 6, 0, 2, 7, 2, 2, 2, 2, 6, 2, 2, 2, 2, 2, 2, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 8, 7, 7, 7, 7, 3, 5, 7, 7, 5, 7, 5, 1, 3, 3, 3, 3, 3, 1, 3, 3, 5, 5, 5, 1, 1, 3, 4, 4, 6, 4, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 5, 7, 7, 7, 5, 7, 8, 5, 3, 5, 7, 3, 7, 3, 7, 5, 7, 3, 3, 5, 7, 5, 3, 1, 5, 1, 6, 6, 7, 4, 2, 4, 2, 4, 6, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 8, 8, 7, 3, 7, 7, 5, 3, 5, 7, 5, 5, 3, 7, 5, 7, 3, 5, 5, 7, 7, 5, 5, 5, 1, 4, 6, 7, 6, 2, 2, 0, 4, 4, 2, 2, 2, 2, 2, 0, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 7, 7, 7, 3, 7, 7, 7, 5, 7, 7, 5, 5, 3, 7, 3, 7, 3, 3, 5, 7, 5, 5, 3, 5, 1, 4, 2, 7, 2, 2, 4, 2, 2, 4, 2, 2, 2, 2, 4, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-7, 7, 7, 7, 7, 7, 7, 3, 7, 8, 7, 5, 5, 7, 1, 7, 5, 7, 1, 7, 3, 3, 5, 5, 3, 5, 3, 1, 1, 4, 2, 4, 6, 2, 4, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 8, 7, 7, 3, 7, 7, 7, 3, 3, 7, 1, 3, 5, 7, 5, 7, 1, 5, 3, 3, 3, 3, 3, 1, 1, 4, 2, 4, 2, 2, 6, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 7, 8, 7, 1, 7, 8, 7, 3, 5, 7, 1, 5, 5, 7, 7, 7, 7, 3, 3, 3, 3, 3, 3, 1, 1, 2, 2, 4, 2, 2, 6, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 7, 7, 7, 1, 7, 7, 7, 5, 5, 7, 1, 3, 5, 7, 7, 7, 5, 7, 3, 5, 5, 5, 3, 1, 1, 2, 2, 2, 0, 2, 6, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-7, 7, 7, 7, 7, 7, 7, 3, 7, 7, 7, 5, 7, 7, 3, 5, 5, 7, 5, 7, 3, 3, 5, 1, 1, 5, 3, 1, 1, 4, 2, 4, 2, 2, 4, 2, 4, 2, 2, 2, 2, 4, 4, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 5, 7, 7, 5, 3, 5, 7, 7, 1, 3, 7, 3, 3, 3, 5, 3, 7, 5, 5, 5, 1, 3, 3, 3, 1, 1, 2, 2, 6, 2, 2, 6, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 7, 7, 5, 5, 7, 5, 5, 5, 5, 5, 3, 1, 5, 1, 3, 3, 3, 3, 5, 3, 1, 3, 3, 1, 4, 2, 2, 2, 2, 2, 2, 6, 2, 4, 4, 2, 2, 4, 2, 2, 2, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 7, 7, 7, 3, 7, 7, 5, 3, 7, 7, 3, 3, 5, 5, 3, 3, 7, 7, 5, 5, 1, 1, 3, 3, 1, 6, 4, 4, 2, 2, 4, 2, 6, 2, 2, 4, 4, 0, 4, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 7, 7, 7, 5, 7, 7, 5, 1, 5, 5, 5, 7, 3, 5, 1, 3, 1, 5, 5, 5, 1, 1, 1, 3, 1, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 7, 7, 7, 5, 7, 7, 3, 1, 3, 5, 5, 5, 3, 5, 3, 5, 1, 5, 5, 3, 1, 1, 1, 3, 1, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 5, 7, 7, 3, 7, 7, 3, 1, 5, 3, 5, 5, 3, 3, 1, 3, 3, 3, 1, 3, 1, 1, 3, 1, 3, 4, 2, 2, 4, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-7, 7, 7, 7, 7, 7, 7, 5, 7, 7, 3, 3, 3, 3, 5, 3, 1, 3, 3, 1, 1, 1, 3, 3, 1, 3, 1, 1, 3, 2, 2, 2, 2, 2, 2, 4, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 7, 7, 3, 7, 5, 3, 1, 3, 5, 1, 5, 3, 1, 1, 1, 3, 3, 1, 1, 1, 1, 1, 3, 1, 2, 4, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 5, 3, 3, 3, 5, 3, 3, 5, 3, 3, 1, 3, 1, 3, 3, 3, 1, 3, 1, 5, 1, 3, 3, 1, 1, 2, 2, 2, 0, 2, 2, 4, 2, 4, 2, 2, 2, 4, 4, 4, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 5, 7, 5, 5, 5, 3, 5, 3, 5, 3, 1, 3, 5, 1, 3, 1, 1, 1, 3, 5, 1, 1, 1, 1, 3, 1, 2, 4, 4, 4, 4, 4, 4, 4, 4, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 0, 0, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 3, 1, 3, 7, 5, 5, 1, 7, 7, 7, 5, 7, 5, 3, 5, 5, 1, 2, 2, 4, 4, 6, 4, 2, 2, 2, 0, 4, 2, 2, 4, 0, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 5, 7, 7, 7, 7, 5, 3, 3, 1, 3, 1, 3, 5, 3, 3, 1, 5, 3, 3, 3, 5, 3, 1, 1, 3, 1, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 5, 7, 7, 7, 7, 7, 5, 7, 3, 3, 3, 1, 3, 3, 5, 1, 5, 1, 7, 3, 5, 1, 3, 5, 1, 1, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 5, 7, 5, 7, 5, 7, 5, 5, 3, 3, 3, 3, 3, 3, 1, 3, 3, 3, 1, 3, 1, 1, 1, 1, 1, 4, 2, 2, 2, 4, 2, 4, 2, 2, 2, 2, 2, 6, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 5, 7, 7, 5, 7, 5, 5, 7, 3, 3, 3, 1, 7, 3, 3, 1, 3, 3, 3, 3, 3, 1, 1, 1, 1, 1, 2, 2, 4, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 4, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 7, 5, 5, 7, 7, 7, 7, 3, 3, 3, 3, 3, 3, 1, 3, 5, 1, 1, 1, 1, 1, 1, 1, 3, 1, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 5, 7, 5, 3, 3, 5, 3, 5, 1, 5, 3, 5, 5, 3, 5, 3, 3, 1, 3, 3, 1, 1, 1, 1, 1, 1, 4, 4, 4, 4, 2, 2, 2, 2, 2, 4, 2, 6, 4, 4, 4, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 5, 5, 7, 3, 5, 5, 5, 3, 5, 3, 5, 5, 3, 3, 1, 5, 1, 1, 3, 1, 1, 3, 3, 1, 3, 1, 1, 2, 4, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 4, 4, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-7, 7, 7, 5, 5, 5, 7, 3, 5, 5, 5, 3, 3, 5, 3, 3, 5, 3, 3, 1, 3, 3, 3, 3, 3, 3, 3, 3, 1, 4, 6, 4, 2, 4, 4, 2, 4, 2, 4, 4, 4, 2, 4, 2, 4, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-7, 7, 7, 7, 8, 5, 7, 5, 3, 5, 5, 3, 3, 1, 3, 3, 3, 5, 3, 3, 3, 3, 3, 3, 3, 1, 3, 1, 3, 4, 4, 2, 2, 4, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 5, 5, 7, 5, 5, 5, 5, 3, 7, 3, 3, 3, 5, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1, 3, 3, 5, 3, 4, 4, 2, 4, 4, 2, 2, 4, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 5, 7, 5, 7, 5, 5, 5, 7, 3, 3, 3, 3, 3, 1, 5, 3, 3, 3, 3, 1, 1, 1, 1, 1, 3, 3, 4, 6, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 5, 7, 7, 5, 7, 5, 3, 3, 5, 3, 3, 3, 3, 3, 3, 5, 3, 3, 3, 5, 3, 1, 1, 1, 3, 3, 3, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 3, 7, 7, 5, 7, 3, 7, 7, 5, 3, 3, 3, 5, 3, 1, 5, 3, 3, 3, 1, 1, 3, 1, 1, 3, 3, 3, 2, 6, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 5, 7, 7, 5, 5, 5, 7, 5, 5, 5, 3, 3, 3, 3, 3, 5, 3, 1, 5, 3, 3, 1, 1, 1, 1, 3, 3, 4, 4, 4, 2, 4, 2, 2, 2, 2, 2, 2, 2, 4, 4, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 5, 5, 7, 5, 5, 5, 5, 3, 3, 3, 3, 5, 3, 5, 1, 1, 3, 3, 3, 1, 3, 1, 3, 3, 3, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 4, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 7, 5, 7, 5, 5, 5, 5, 5, 3, 5, 3, 3, 1, 3, 3, 3, 1, 3, 5, 5, 3, 3, 3, 1, 3, 2, 2, 4, 2, 2, 2, 4, 4, 4, 4, 2, 2, 4, 6, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 5, 7, 5, 7, 5, 5, 7, 5, 5, 5, 1, 3, 5, 3, 5, 1, 3, 1, 3, 3, 5, 5, 3, 3, 3, 3, 6, 7, 4, 4, 2, 2, 2, 2, 6, 2, 2, 2, 2, 4, 4, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 5, 5, 7, 7, 7, 7, 5, 7, 7, 5, 5, 5, 3, 5, 3, 7, 1, 1, 3, 3, 3, 5, 7, 1, 1, 7, 1, 7, 6, 4, 2, 0, 4, 2, 4, 4, 2, 0, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 7, 7, 7, 5, 3, 7, 7, 3, 7, 3, 3, 5, 3, 7, 3, 1, 3, 5, 3, 5, 7, 1, 1, 3, 1, 6, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 5, 7, 5, 7, 7, 5, 7, 7, 3, 5, 7, 5, 7, 1, 5, 3, 7, 7, 5, 3, 5, 7, 1, 3, 1, 1, 4, 6, 6, 2, 4, 6, 2, 6, 4, 2, 2, 2, 2, 6, 4, 2, 2, 2, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 5, 7, 5, 7, 7, 7, 7, 7, 5, 5, 7, 7, 7, 1, 7, 1, 7, 7, 5, 3, 7, 7, 3, 7, 3, 1, 6, 4, 6, 4, 2, 2, 2, 6, 4, 4, 2, 2, 2, 4, 6, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 7, 3, 5, 7, 7, 7, 7, 7, 5, 3, 3, 7, 3, 7, 3, 7, 3, 5, 3, 7, 7, 1, 5, 1, 3, 4, 4, 6, 4, 4, 4, 2, 4, 2, 2, 2, 0, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 7, 5, 7, 5, 5, 5, 7, 3, 3, 5, 5, 3, 1, 7, 3, 7, 5, 1, 3, 5, 5, 3, 5, 3, 1, 4, 2, 6, 4, 2, 2, 2, 4, 2, 2, 2, 4, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 5, 5, 3, 5, 5, 5, 5, 3, 5, 3, 3, 1, 7, 3, 5, 1, 3, 1, 3, 3, 5, 5, 3, 3, 1, 3, 2, 4, 4, 4, 2, 2, 4, 4, 2, 4, 2, 4, 4, 6, 2, 2, 2, 2, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 7, 5, 7, 5, 5, 7, 7, 7, 3, 5, 5, 7, 3, 5, 3, 3, 3, 3, 5, 5, 7, 5, 1, 5, 3, 6, 7, 4, 4, 2, 6, 2, 6, 6, 2, 2, 2, 6, 6, 6, 2, 2, 0, 0, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 8, 5, 7, 5, 5, 7, 7, 7, 1, 7, 7, 7, 5, 5, 3, 3, 7, 7, 5, 7, 7, 3, 1, 5, 3, 7, 6, 6, 4, 2, 4, 2, 6, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-7, 7, 7, 7, 8, 7, 7, 7, 7, 7, 7, 7, 3, 7, 5, 7, 5, 7, 3, 1, 3, 7, 5, 7, 7, 1, 1, 5, 7, 6, 4, 2, 4, 2, 4, 2, 4, 2, 4, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-7, 7, 7, 7, 8, 7, 7, 7, 5, 7, 7, 5, 3, 7, 5, 7, 3, 7, 1, 3, 1, 5, 7, 5, 3, 1, 1, 3, 1, 4, 4, 4, 2, 2, 4, 2, 4, 2, 2, 2, 4, 2, 4, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 8, 5, 7, 5, 3, 7, 7, 3, 1, 5, 3, 5, 3, 5, 1, 1, 3, 5, 3, 7, 5, 1, 3, 1, 1, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 4, 4, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 5, 7, 8, 7, 7, 7, 5, 7, 7, 5, 3, 7, 5, 7, 5, 7, 1, 3, 1, 5, 3, 3, 1, 1, 3, 1, 1, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 5, 7, 7, 7, 7, 5, 7, 7, 7, 1, 3, 7, 5, 7, 3, 3, 1, 1, 1, 3, 3, 1, 1, 1, 1, 1, 1, 4, 2, 2, 2, 4, 4, 4, 6, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 8, 5, 7, 5, 7, 7, 7, 3, 1, 7, 5, 3, 1, 5, 3, 3, 1, 3, 3, 3, 1, 1, 1, 1, 1, 6, 4, 2, 2, 6, 6, 2, 4, 2, 4, 4, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 3, 5, 5, 5, 5, 3, 3, 1, 3, 3, 3, 1, 3, 3, 1, 3, 3, 3, 5, 3, 3, 3, 1, 3, 4, 2, 4, 4, 4, 2, 2, 4, 2, 2, 4, 4, 4, 4, 2, 2, 0, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 5, 5, 7, 3, 7, 7, 5, 5, 5, 5, 5, 3, 1, 5, 3, 5, 1, 1, 3, 3, 3, 7, 3, 3, 3, 3, 5, 7, 4, 4, 2, 4, 4, 4, 2, 2, 2, 2, 2, 4, 6, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 5, 7, 7, 7, 7, 7, 7, 7, 7, 5, 5, 5, 5, 7, 5, 7, 3, 3, 3, 3, 3, 7, 3, 3, 3, 1, 3, 6, 4, 4, 2, 6, 2, 2, 0, 2, 0, 2, 2, 2, 4, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 5, 7, 7, 5, 7, 7, 5, 5, 7, 5, 5, 3, 5, 5, 1, 7, 1, 3, 3, 3, 3, 7, 1, 1, 3, 1, 5, 6, 2, 2, 2, 6, 2, 4, 4, 2, 2, 2, 2, 2, 2, 2, 0, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 5, 7, 7, 7, 7, 5, 7, 5, 5, 7, 5, 7, 3, 3, 7, 3, 7, 3, 5, 5, 1, 3, 7, 1, 1, 1, 1, 3, 4, 4, 2, 2, 4, 2, 6, 4, 2, 2, 2, 4, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 5, 7, 5, 7, 3, 7, 3, 5, 1, 3, 3, 1, 3, 3, 7, 3, 5, 1, 1, 1, 5, 1, 3, 5, 3, 3, 4, 2, 2, 2, 4, 2, 6, 2, 2, 2, 4, 4, 4, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 5, 5, 5, 7, 3, 5, 5, 5, 1, 5, 1, 3, 1, 3, 5, 1, 3, 3, 1, 1, 1, 1, 3, 1, 1, 1, 6, 2, 2, 2, 4, 2, 2, 2, 4, 2, 2, 4, 2, 4, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 5, 7, 7, 5, 7, 3, 5, 3, 5, 3, 3, 3, 3, 5, 3, 1, 1, 1, 1, 5, 1, 1, 3, 1, 3, 6, 2, 2, 2, 2, 4, 4, 4, 2, 2, 2, 4, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 5, 7, 5, 3, 7, 5, 5, 5, 5, 3, 5, 1, 3, 1, 1, 7, 3, 3, 1, 1, 1, 5, 1, 1, 3, 1, 3, 2, 2, 4, 4, 4, 2, 2, 2, 2, 4, 2, 4, 4, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 8, 7, 7, 7, 5, 7, 7, 7, 7, 7, 1, 7, 7, 3, 3, 5, 5, 3, 3, 7, 3, 5, 5, 3, 1, 1, 5, 4, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 7, 7, 8, 7, 3, 7, 7, 7, 3, 7, 7, 5, 3, 1, 1, 3, 1, 1, 3, 3, 3, 3, 1, 1, 3, 4, 2, 4, 2, 4, 6, 2, 4, 2, 4, 4, 4, 4, 6, 2, 2, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 8, 7, 7, 7, 5, 7, 7, 7, 3, 5, 7, 5, 5, 3, 3, 3, 3, 5, 5, 5, 3, 3, 1, 3, 3, 4, 2, 4, 4, 2, 4, 2, 4, 2, 2, 2, 2, 0, 4, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 3, 7, 7, 5, 3, 5, 3, 3, 5, 1, 3, 7, 5, 5, 3, 1, 3, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 4, 4, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 8, 7, 7, 7, 5, 7, 7, 7, 1, 7, 7, 5, 7, 5, 5, 5, 3, 7, 3, 5, 5, 3, 1, 1, 3, 2, 2, 4, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 7, 7, 7, 7, 5, 7, 7, 7, 1, 5, 7, 5, 3, 3, 3, 3, 1, 1, 1, 3, 3, 5, 1, 1, 5, 4, 2, 4, 2, 4, 2, 2, 2, 2, 2, 4, 2, 2, 4, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 7, 7, 7, 7, 5, 7, 7, 5, 1, 7, 7, 3, 3, 5, 3, 1, 1, 1, 3, 5, 5, 3, 3, 1, 3, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 8, 5, 7, 7, 5, 5, 5, 7, 1, 5, 7, 3, 3, 1, 1, 1, 1, 5, 3, 5, 5, 3, 3, 1, 1, 2, 2, 2, 4, 4, 4, 2, 2, 2, 2, 2, 2, 4, 2, 2, 4, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 5, 7, 7, 5, 3, 5, 7, 1, 3, 5, 3, 3, 1, 1, 3, 1, 3, 3, 3, 3, 3, 3, 3, 1, 2, 6, 4, 2, 2, 4, 2, 2, 2, 2, 2, 2, 4, 2, 4, 4, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 5, 7, 7, 7, 7, 7, 8, 1, 5, 3, 1, 3, 1, 3, 3, 5, 3, 3, 3, 3, 1, 3, 3, 3, 3, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 5, 5, 7, 7, 7, 7, 7, 5, 7, 5, 1, 3, 3, 5, 3, 3, 5, 1, 1, 5, 5, 5, 7, 7, 5, 3, 3, 4, 2, 4, 2, 2, 4, 2, 2, 2, 2, 4, 4, 4, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 7, 5, 7, 7, 8, 7, 5, 3, 3, 1, 3, 3, 3, 3, 3, 3, 1, 3, 5, 5, 7, 5, 5, 1, 1, 2, 4, 6, 4, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 6, 6, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-7, 8, 7, 5, 7, 7, 7, 7, 8, 7, 7, 3, 5, 5, 3, 5, 1, 5, 3, 3, 1, 1, 5, 5, 5, 5, 3, 1, 3, 2, 2, 4, 4, 2, 2, 4, 4, 2, 2, 2, 2, 2, 2, 2, 0, 2, 4, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 7, 7, 8, 7, 8, 5, 7, 5, 3, 5, 3, 5, 5, 7, 3, 7, 3, 7, 7, 7, 5, 5, 3, 1, 3, 4, 2, 4, 2, 2, 4, 2, 2, 2, 2, 4, 2, 4, 2, 2, 2, 2, 4, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 7, 7, 7, 7, 8, 5, 5, 3, 5, 3, 1, 3, 1, 5, 1, 3, 3, 5, 5, 5, 5, 5, 3, 1, 1, 2, 2, 2, 4, 2, 2, 2, 2, 2, 4, 2, 2, 4, 2, 2, 2, 4, 4, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 8, 7, 7, 8, 8, 5, 5, 5, 1, 5, 3, 3, 3, 5, 3, 5, 3, 3, 7, 5, 5, 5, 3, 1, 1, 2, 2, 2, 2, 2, 2, 2, 4, 2, 4, 2, 2, 2, 2, 0, 2, 4, 4, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 7, 7, 7, 7, 7, 5, 7, 5, 5, 5, 3, 3, 5, 5, 1, 1, 1, 3, 7, 5, 5, 3, 1, 1, 3, 2, 2, 2, 4, 4, 4, 2, 2, 0, 2, 2, 4, 2, 2, 2, 4, 2, 4, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 3, 7, 7, 7, 7, 5, 3, 3, 3, 1, 3, 5, 3, 1, 1, 3, 3, 5, 7, 5, 3, 1, 1, 3, 4, 4, 4, 2, 4, 4, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 8, 7, 7, 7, 8, 5, 7, 5, 1, 3, 5, 7, 5, 3, 3, 1, 1, 3, 5, 3, 1, 3, 3, 1, 3, 2, 4, 4, 4, 2, 2, 4, 4, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 0, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 7, 5, 8, 7, 7, 5, 5, 5, 5, 3, 5, 5, 3, 1, 1, 1, 1, 1, 3, 3, 1, 3, 3, 3, 1, 4, 4, 4, 4, 2, 4, 2, 2, 4, 2, 4, 6, 4, 4, 2, 2, 2, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 8, 5, 7, 7, 8, 5, 5, 7, 3, 5, 3, 3, 5, 3, 1, 3, 3, 3, 3, 3, 3, 1, 7, 1, 1, 2, 4, 4, 4, 6, 4, 4, 2, 4, 2, 4, 2, 2, 4, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 3, 5, 5, 5, 1, 7, 5, 3, 1, 3, 5, 3, 5, 1, 5, 1, 5, 5, 5, 3, 3, 3, 3, 1, 2, 2, 2, 4, 2, 6, 2, 2, 2, 2, 2, 2, 6, 6, 2, 4, 2, 2, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 8, 5, 7, 5, 7, 7, 7, 7, 7, 7, 1, 3, 5, 5, 3, 3, 3, 3, 3, 5, 5, 5, 3, 1, 5, 3, 3, 2, 4, 4, 4, 2, 2, 4, 2, 2, 4, 4, 2, 4, 4, 4, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 7, 7, 7, 7, 8, 7, 5, 7, 3, 1, 3, 5, 3, 3, 3, 1, 3, 5, 5, 1, 1, 1, 3, 1, 3, 4, 6, 4, 4, 4, 4, 2, 2, 2, 2, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 8, 7, 7, 5, 7, 7, 7, 7, 7, 5, 1, 3, 5, 5, 3, 3, 1, 1, 1, 3, 5, 5, 3, 1, 1, 3, 1, 2, 4, 6, 4, 6, 4, 4, 4, 2, 2, 2, 2, 4, 4, 4, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 8, 7, 7, 7, 7, 7, 7, 5, 5, 5, 3, 3, 3, 5, 5, 5, 3, 1, 5, 5, 5, 5, 1, 3, 1, 1, 1, 2, 4, 6, 6, 6, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 7, 5, 7, 7, 7, 3, 7, 5, 1, 3, 5, 7, 3, 5, 3, 3, 5, 5, 3, 5, 5, 1, 3, 1, 1, 4, 2, 4, 2, 4, 4, 4, 4, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 8, 8, 7, 7, 7, 5, 7, 7, 5, 5, 1, 3, 5, 5, 3, 5, 3, 1, 3, 3, 5, 3, 3, 3, 1, 1, 1, 4, 4, 6, 4, 6, 6, 6, 4, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 5, 5, 7, 5, 5, 7, 3, 3, 3, 1, 3, 5, 5, 1, 1, 3, 5, 5, 3, 3, 3, 1, 3, 3, 3, 4, 4, 2, 2, 2, 2, 4, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 7, 7, 7, 5, 7, 7, 5, 5, 3, 3, 5, 5, 3, 3, 3, 3, 5, 5, 1, 5, 1, 3, 3, 1, 3, 6, 2, 2, 2, 4, 6, 2, 4, 4, 4, 4, 6, 2, 4, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 7, 7, 8, 7, 7, 7, 7, 5, 7, 5, 5, 7, 5, 7, 3, 7, 5, 5, 5, 3, 3, 5, 7, 7, 1, 6, 2, 6, 6, 6, 6, 2, 4, 2, 4, 2, 2, 2, 4, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 7, 7, 7, 7, 7, 5, 7, 5, 5, 7, 7, 7, 5, 7, 1, 7, 7, 7, 5, 7, 1, 1, 5, 5, 3, 4, 2, 4, 2, 4, 4, 2, 2, 2, 2, 4, 4, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 8, 7, 7, 7, 5, 7, 5, 5, 7, 3, 5, 3, 3, 7, 3, 7, 1, 5, 3, 5, 1, 5, 1, 1, 5, 3, 3, 4, 2, 2, 2, 4, 2, 2, 2, 4, 4, 2, 2, 4, 4, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 7, 5, 5, 7, 3, 5, 1, 3, 3, 1, 5, 3, 3, 3, 3, 3, 5, 3, 3, 1, 1, 3, 3, 3, 4, 2, 4, 2, 2, 4, 2, 2, 2, 4, 2, 2, 4, 4, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 5, 7, 7, 8, 3, 7, 7, 3, 7, 7, 5, 3, 7, 3, 3, 5, 3, 1, 3, 3, 3, 1, 3, 5, 4, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 6, 4, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 5, 5, 8, 5, 7, 8, 8, 5, 7, 7, 1, 7, 5, 3, 5, 7, 3, 5, 3, 1, 1, 3, 5, 3, 3, 3, 1, 4, 4, 2, 4, 4, 2, 4, 2, 2, 2, 6, 6, 4, 4, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 8, 5, 7, 7, 7, 5, 7, 7, 5, 7, 5, 5, 1, 7, 3, 3, 3, 1, 1, 5, 3, 5, 3, 1, 3, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 4, 4, 4, 4, 0, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 5, 7, 5, 5, 5, 5, 3, 3, 3, 3, 1, 3, 3, 5, 5, 3, 3, 3, 3, 3, 3, 5, 3, 3, 1, 1, 4, 2, 2, 4, 4, 2, 2, 2, 2, 4, 2, 4, 4, 4, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 5, 7, 7, 5, 7, 5, 7, 3, 5, 5, 3, 3, 5, 5, 3, 5, 5, 3, 3, 3, 3, 5, 5, 1, 3, 1, 1, 4, 2, 2, 4, 4, 6, 2, 4, 2, 4, 2, 4, 4, 6, 4, 2, 2, 0, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 3, 5, 7, 5, 7, 7, 7, 7, 5, 3, 3, 3, 3, 5, 5, 3, 3, 1, 3, 1, 1, 5, 5, 3, 3, 7, 1, 7, 4, 2, 2, 4, 6, 2, 4, 2, 2, 0, 2, 2, 2, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-7, 7, 5, 7, 7, 7, 8, 7, 7, 5, 5, 5, 3, 7, 1, 5, 5, 3, 3, 3, 1, 3, 1, 5, 3, 3, 3, 3, 3, 6, 2, 2, 2, 4, 4, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 7, 5, 7, 5, 7, 7, 5, 5, 3, 5, 3, 7, 5, 5, 5, 3, 1, 3, 1, 5, 5, 5, 3, 5, 3, 6, 2, 4, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 5, 7, 7, 3, 5, 5, 7, 7, 3, 3, 1, 3, 3, 5, 3, 3, 3, 3, 1, 3, 1, 1, 5, 3, 3, 1, 1, 4, 2, 2, 2, 4, 6, 2, 2, 0, 2, 2, 2, 4, 6, 4, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 7, 3, 5, 7, 5, 7, 5, 5, 3, 3, 1, 3, 5, 5, 3, 3, 3, 3, 1, 3, 3, 3, 3, 1, 3, 4, 4, 2, 2, 4, 4, 2, 4, 2, 2, 2, 4, 4, 4, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 5, 7, 7, 7, 7, 7, 7, 7, 3, 7, 3, 3, 3, 3, 5, 5, 3, 3, 3, 3, 1, 3, 1, 5, 3, 3, 3, 4, 2, 2, 2, 2, 6, 4, 4, 2, 2, 2, 4, 4, 2, 2, 2, 2, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-7, 8, 5, 7, 7, 7, 5, 5, 7, 5, 5, 7, 1, 3, 3, 5, 5, 5, 3, 3, 3, 1, 3, 1, 3, 3, 3, 3, 3, 4, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 4, 4, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 5, 7, 7, 5, 7, 5, 7, 3, 5, 3, 3, 3, 3, 5, 5, 5, 1, 5, 5, 5, 5, 3, 5, 5, 3, 3, 3, 6, 2, 2, 2, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 7, 7, 7, 5, 7, 3, 5, 5, 1, 1, 5, 7, 1, 5, 3, 5, 3, 3, 1, 5, 3, 3, 3, 1, 3, 6, 2, 4, 2, 4, 2, 2, 2, 2, 2, 2, 4, 4, 4, 2, 2, 2, 2, 0, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 3, 7, 7, 5, 7, 5, 7, 5, 5, 3, 3, 5, 3, 5, 7, 3, 5, 5, 3, 3, 1, 3, 1, 3, 1, 3, 1, 4, 4, 2, 4, 4, 2, 4, 2, 2, 2, 2, 2, 6, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 7, 7, 7, 7, 7, 3, 7, 3, 1, 5, 1, 3, 5, 3, 5, 3, 3, 1, 3, 3, 3, 3, 3, 1, 1, 4, 4, 2, 2, 2, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 5, 5, 5, 7, 3, 7, 3, 3, 3, 3, 5, 3, 3, 1, 3, 3, 3, 1, 3, 3, 1, 3, 1, 1, 4, 4, 2, 2, 2, 4, 4, 2, 2, 2, 4, 2, 2, 2, 2, 2, 0, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 7, 7, 7, 5, 7, 7, 3, 5, 7, 5, 1, 1, 5, 7, 7, 5, 3, 7, 5, 7, 1, 1, 3, 7, 3, 6, 2, 6, 6, 7, 2, 4, 2, 4, 7, 4, 4, 2, 2, 4, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-7, 8, 7, 7, 8, 7, 7, 7, 7, 3, 5, 7, 7, 7, 7, 1, 7, 7, 8, 7, 5, 7, 7, 7, 3, 1, 3, 7, 5, 7, 4, 2, 6, 4, 6, 2, 0, 2, 4, 2, 2, 0, 0, 0, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 7, 7, 5, 7, 7, 7, 7, 7, 7, 3, 1, 5, 7, 7, 5, 5, 7, 1, 7, 1, 1, 3, 7, 5, 6, 2, 2, 4, 2, 2, 2, 0, 2, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 5, 7, 7, 5, 5, 3, 7, 3, 7, 7, 7, 1, 3, 7, 7, 3, 3, 3, 7, 5, 1, 3, 1, 3, 1, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 4, 6, 2, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-7, 7, 8, 7, 5, 5, 7, 5, 5, 5, 3, 5, 5, 5, 5, 3, 1, 1, 5, 3, 1, 3, 1, 3, 3, 3, 1, 1, 1, 4, 4, 2, 2, 4, 4, 4, 2, 2, 4, 2, 4, 4, 4, 4, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-7, 7, 7, 5, 7, 5, 7, 7, 7, 5, 7, 5, 3, 3, 7, 3, 7, 3, 5, 5, 5, 3, 3, 7, 3, 3, 5, 5, 3, 6, 4, 4, 4, 4, 2, 6, 2, 2, 2, 2, 2, 4, 2, 2, 0, 2, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-7, 7, 8, 7, 8, 7, 7, 7, 5, 7, 7, 3, 1, 3, 7, 3, 7, 5, 3, 5, 7, 7, 3, 7, 1, 3, 3, 7, 3, 6, 6, 4, 2, 2, 2, 4, 2, 2, 2, 0, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 8, 5, 1, 5, 7, 5, 7, 7, 3, 3, 7, 5, 3, 7, 5, 3, 5, 7, 3, 6, 6, 2, 2, 4, 2, 4, 4, 2, 2, 2, 2, 4, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-7, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 3, 1, 3, 7, 5, 7, 7, 5, 5, 7, 5, 3, 7, 1, 1, 1, 5, 1, 7, 2, 4, 2, 4, 2, 2, 2, 2, 0, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-7, 8, 7, 7, 7, 7, 7, 7, 5, 7, 7, 5, 3, 5, 7, 5, 7, 5, 5, 5, 5, 3, 5, 7, 1, 1, 5, 5, 3, 2, 2, 2, 2, 2, 2, 2, 4, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-7, 8, 7, 7, 8, 5, 7, 7, 5, 7, 7, 3, 1, 5, 7, 3, 5, 7, 5, 3, 7, 5, 5, 7, 1, 1, 3, 3, 1, 2, 4, 4, 2, 2, 2, 4, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 8, 7, 8, 7, 7, 5, 5, 7, 7, 3, 3, 5, 5, 1, 5, 5, 5, 3, 5, 5, 5, 5, 3, 1, 3, 3, 1, 2, 4, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-7, 8, 7, 7, 7, 7, 7, 5, 5, 7, 7, 3, 1, 5, 7, 3, 7, 7, 3, 3, 7, 3, 5, 5, 1, 1, 1, 1, 3, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-7, 7, 7, 7, 7, 7, 7, 7, 5, 7, 7, 3, 3, 5, 7, 3, 5, 3, 3, 3, 5, 5, 3, 5, 1, 1, 3, 1, 3, 2, 4, 4, 2, 4, 2, 2, 2, 2, 2, 2, 2, 4, 4, 4, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 7, 7, 7, 7, 5, 7, 7, 3, 3, 5, 5, 1, 5, 5, 3, 3, 5, 1, 3, 3, 1, 1, 3, 3, 3, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 4, 2, 4, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-7, 7, 7, 7, 7, 7, 7, 7, 3, 7, 8, 5, 1, 3, 5, 3, 5, 3, 3, 1, 1, 1, 1, 3, 3, 3, 1, 1, 3, 4, 4, 2, 2, 2, 2, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-7, 7, 7, 7, 7, 5, 7, 7, 3, 7, 8, 3, 3, 5, 7, 3, 5, 3, 3, 1, 3, 1, 3, 3, 1, 3, 1, 3, 1, 4, 4, 4, 2, 2, 2, 4, 4, 2, 4, 2, 2, 4, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 7, 7, 7, 7, 3, 7, 7, 3, 1, 7, 7, 3, 5, 5, 3, 3, 1, 1, 5, 3, 1, 1, 3, 1, 5, 4, 4, 2, 2, 4, 4, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 7, 5, 7, 7, 3, 7, 7, 3, 1, 3, 5, 3, 3, 5, 5, 3, 3, 3, 1, 1, 1, 1, 1, 3, 3, 4, 4, 2, 2, 4, 4, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 7, 5, 5, 5, 3, 5, 7, 1, 3, 3, 1, 3, 5, 3, 3, 3, 3, 1, 1, 3, 1, 1, 1, 3, 3, 4, 4, 2, 2, 2, 2, 2, 2, 4, 2, 2, 4, 2, 2, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-7, 7, 7, 7, 7, 5, 7, 7, 3, 5, 7, 3, 3, 3, 5, 1, 3, 3, 3, 3, 3, 1, 1, 3, 1, 3, 3, 3, 3, 2, 2, 4, 2, 2, 2, 2, 4, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-7, 7, 7, 7, 7, 7, 7, 7, 3, 7, 7, 1, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1, 3, 3, 3, 3, 3, 1, 1, 4, 2, 2, 4, 2, 4, 2, 2, 2, 4, 2, 2, 4, 4, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 7, 5, 5, 5, 3, 5, 7, 3, 3, 1, 1, 5, 3, 1, 5, 3, 3, 1, 1, 1, 1, 3, 3, 3, 3, 2, 4, 2, 2, 2, 2, 2, 2, 2, 4, 4, 4, 4, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 7, 5, 5, 7, 5, 7, 5, 7, 5, 5, 5, 1, 3, 7, 5, 5, 3, 3, 5, 3, 3, 5, 5, 1, 1, 2, 6, 4, 4, 4, 4, 6, 2, 4, 4, 2, 4, 6, 4, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 8, 7, 7, 7, 5, 7, 7, 7, 3, 5, 7, 3, 7, 7, 5, 5, 7, 5, 3, 7, 3, 3, 3, 5, 1, 6, 7, 4, 4, 6, 2, 2, 2, 2, 2, 2, 2, 6, 2, 2, 0, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-7, 7, 7, 7, 7, 7, 7, 7, 5, 7, 7, 7, 5, 5, 7, 5, 7, 7, 7, 5, 7, 5, 3, 5, 3, 3, 3, 3, 1, 2, 7, 2, 4, 4, 2, 4, 2, 2, 4, 2, 4, 4, 2, 2, 2, 2, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 5, 7, 5, 7, 7, 7, 5, 3, 5, 5, 3, 3, 5, 1, 3, 5, 3, 3, 3, 1, 1, 3, 1, 1, 1, 3, 3, 4, 4, 2, 4, 6, 2, 2, 2, 2, 4, 4, 4, 4, 4, 2, 4, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 5, 7, 7, 7, 5, 7, 3, 3, 7, 5, 3, 1, 3, 3, 5, 5, 3, 3, 1, 1, 1, 1, 1, 3, 1, 1, 3, 6, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 4, 4, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 5, 7, 7, 7, 7, 7, 3, 7, 7, 5, 3, 3, 5, 5, 1, 5, 3, 5, 3, 1, 1, 1, 3, 1, 1, 3, 3, 2, 4, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 3, 5, 7, 7, 8, 7, 5, 7, 7, 5, 1, 3, 3, 1, 3, 5, 3, 1, 3, 3, 1, 3, 1, 3, 1, 3, 1, 2, 2, 4, 4, 2, 2, 2, 2, 2, 2, 2, 4, 4, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 5, 7, 7, 7, 8, 7, 5, 7, 7, 5, 3, 1, 3, 3, 3, 5, 3, 1, 3, 3, 1, 5, 3, 3, 3, 3, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 4, 4, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 5, 5, 3, 7, 3, 5, 3, 5, 3, 1, 3, 5, 5, 3, 1, 1, 3, 1, 3, 3, 3, 3, 3, 1, 1, 1, 2, 2, 4, 2, 2, 4, 2, 2, 2, 4, 2, 2, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-7, 7, 7, 7, 7, 7, 7, 5, 5, 5, 7, 7, 3, 3, 5, 1, 5, 3, 5, 3, 3, 3, 3, 5, 3, 5, 3, 3, 1, 2, 6, 4, 6, 6, 4, 6, 2, 4, 6, 2, 6, 4, 2, 0, 2, 2, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 3, 3, 3, 5, 1, 3, 5, 3, 3, 1, 3, 3, 7, 3, 7, 3, 3, 1, 2, 4, 6, 6, 4, 4, 2, 2, 2, 6, 2, 2, 2, 4, 4, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 5, 7, 7, 7, 7, 7, 7, 7, 7, 7, 3, 5, 3, 1, 5, 7, 7, 3, 3, 1, 3, 5, 1, 7, 3, 1, 1, 2, 2, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 8, 7, 7, 7, 5, 7, 8, 7, 5, 3, 5, 3, 5, 5, 7, 5, 3, 1, 3, 7, 1, 7, 1, 1, 1, 2, 2, 6, 4, 4, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 3, 7, 8, 5, 7, 7, 7, 7, 7, 5, 5, 5, 5, 5, 5, 7, 5, 1, 3, 1, 3, 5, 1, 5, 3, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 8, 7, 7, 7, 5, 7, 7, 3, 5, 7, 7, 1, 5, 7, 5, 5, 1, 1, 3, 5, 1, 5, 3, 1, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 5, 7, 7, 7, 7, 7, 5, 7, 7, 5, 3, 3, 3, 3, 5, 5, 5, 3, 3, 1, 1, 7, 1, 5, 5, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-7, 7, 7, 7, 7, 7, 7, 7, 5, 7, 7, 7, 7, 5, 5, 3, 3, 7, 5, 1, 3, 1, 3, 5, 1, 1, 3, 3, 1, 2, 4, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 5, 7, 7, 7, 7, 7, 7, 5, 7, 3, 5, 5, 1, 1, 3, 3, 5, 1, 1, 1, 3, 3, 3, 1, 1, 1, 3, 4, 4, 2, 2, 4, 4, 4, 2, 2, 4, 2, 2, 4, 4, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 5, 7, 7, 7, 7, 7, 3, 5, 8, 5, 5, 5, 5, 1, 5, 5, 3, 3, 3, 3, 1, 3, 3, 3, 3, 1, 1, 4, 2, 4, 4, 2, 4, 4, 2, 2, 2, 4, 4, 2, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 5, 7, 8, 7, 7, 5, 5, 7, 7, 3, 3, 3, 5, 3, 3, 3, 3, 1, 3, 3, 1, 1, 1, 1, 5, 3, 1, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 3, 7, 7, 7, 7, 7, 5, 7, 7, 5, 7, 5, 3, 3, 3, 3, 3, 3, 3, 3, 1, 1, 1, 3, 1, 3, 1, 2, 2, 2, 4, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 7, 7, 3, 5, 7, 7, 5, 5, 5, 3, 3, 5, 3, 5, 1, 3, 3, 1, 1, 1, 3, 1, 1, 1, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 7, 3, 3, 7, 5, 5, 3, 1, 3, 3, 5, 5, 5, 3, 5, 3, 3, 1, 3, 1, 1, 3, 1, 5, 6, 4, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 7, 7, 7, 7, 3, 5, 5, 3, 3, 3, 3, 5, 5, 5, 3, 3, 3, 1, 1, 3, 3, 5, 3, 3, 1, 4, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 5, 5, 5, 7, 7, 7, 7, 5, 7, 7, 5, 3, 3, 5, 3, 3, 3, 3, 1, 1, 1, 1, 1, 1, 3, 3, 3, 3, 6, 4, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 7, 7, 7, 5, 5, 7, 3, 3, 3, 3, 5, 3, 3, 3, 3, 1, 3, 1, 1, 1, 1, 3, 1, 3, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 7, 7, 7, 5, 5, 5, 5, 3, 1, 5, 3, 3, 5, 3, 3, 3, 3, 3, 1, 3, 1, 3, 3, 5, 1, 4, 2, 2, 6, 6, 2, 2, 2, 2, 4, 2, 2, 2, 4, 2, 0, 4, 2, 2, 2, 0, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 7, 3, 5, 3, 3, 5, 3, 3, 3, 3, 3, 5, 3, 5, 3, 5, 3, 3, 1, 7, 3, 3, 1, 3, 3, 4, 4, 2, 2, 4, 2, 2, 2, 4, 2, 2, 4, 2, 4, 2, 2, 4, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-7, 7, 5, 7, 7, 7, 5, 5, 7, 5, 7, 3, 3, 5, 5, 1, 3, 5, 3, 3, 3, 1, 3, 5, 1, 3, 1, 1, 1, 4, 4, 2, 4, 2, 2, 2, 2, 2, 4, 2, 2, 2, 4, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 7, 7, 5, 5, 7, 3, 5, 1, 5, 3, 3, 3, 5, 3, 1, 3, 3, 3, 7, 1, 3, 3, 3, 1, 2, 2, 2, 4, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 9, 7, 7, 3, 7, 5, 7, 7, 7, 7, 1, 7, 3, 7, 1, 7, 5, 7, 7, 5, 7, 1, 7, 5, 7, 5, 3, 7, 2, 6, 2, 4, 2, 4, 4, 2, 4, 4, 4, 2, 2, 2, 2, 2, 4, 4, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 9, 7, 7, 3, 7, 3, 7, 3, 7, 7, 1, 7, 3, 7, 3, 7, 3, 7, 8, 3, 5, 1, 7, 0, 3, 3, 3, 3, 7, 4, 6, 4, 6, 4, 2, 2, 2, 2, 2, 0, 2, 0, 2, 4, 6, 4, 6, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 5, 7, 3, 7, 5, 7, 7, 7, 7, 3, 8, 0, 7, 1, 5, 3, 8, 7, 8, 1, 0, 7, 0, 5, 0, 1, 0, 7, 0, 6, 0, 2, 2, 6, 0, 2, 2, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 1, 7, 3, 7, 7, 8, 3, 7, 5, 3, 8, 1, 7, 1, 5, 1, 7, 5, 7, 3, 3, 7, 1, 7, 3, 1, 1, 7, 2, 4, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 4, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 5, 5, 5, 7, 5, 7, 3, 3, 5, 3, 5, 3, 1, 1, 1, 1, 1, 1, 3, 3, 1, 1, 1, 3, 3, 2, 2, 2, 2, 4, 4, 2, 2, 2, 4, 2, 2, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 9, 7, 7, 7, 7, 5, 7, 5, 7, 7, 3, 7, 3, 7, 3, 7, 3, 5, 3, 7, 7, 3, 7, 3, 5, 1, 7, 3, 4, 2, 4, 2, 4, 2, 4, 0, 4, 4, 6, 0, 2, 0, 2, 0, 4, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 3, 7, 3, 8, 7, 7, 7, 3, 7, 3, 7, 3, 7, 3, 7, 1, 7, 5, 1, 5, 1, 5, 1, 7, 1, 6, 4, 7, 2, 6, 4, 2, 2, 4, 6, 6, 0, 2, 0, 0, 0, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-7, 7, 5, 7, 5, 7, 5, 8, 3, 8, 7, 5, 8, 3, 8, 3, 7, 5, 7, 3, 7, 7, 1, 7, 1, 5, 3, 7, 1, 7, 4, 6, 2, 4, 2, 4, 2, 2, 6, 6, 2, 2, 2, 0, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-7, 7, 7, 7, 7, 7, 3, 8, 5, 8, 7, 3, 8, 3, 7, 3, 7, 5, 7, 3, 7, 5, 1, 3, 1, 3, 1, 7, 1, 6, 2, 6, 2, 6, 2, 6, 2, 2, 4, 4, 2, 2, 2, 2, 0, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-7, 8, 3, 7, 7, 7, 3, 8, 3, 8, 7, 3, 7, 3, 8, 3, 7, 3, 5, 5, 7, 7, 1, 5, 1, 3, 1, 7, 3, 4, 2, 6, 2, 6, 4, 4, 2, 4, 2, 4, 2, 2, 2, 2, 0, 4, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 5, 7, 7, 7, 5, 8, 5, 8, 7, 3, 7, 3, 7, 1, 7, 3, 3, 5, 7, 5, 1, 3, 1, 5, 1, 7, 1, 2, 2, 6, 2, 4, 4, 4, 2, 4, 2, 4, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 3, 8, 7, 7, 7, 8, 7, 7, 7, 3, 7, 3, 7, 3, 5, 3, 7, 5, 7, 3, 3, 5, 1, 3, 1, 7, 1, 6, 2, 6, 2, 6, 4, 6, 2, 2, 2, 6, 0, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 5, 7, 7, 7, 7, 8, 7, 8, 7, 1, 7, 3, 5, 3, 7, 3, 7, 7, 7, 5, 3, 7, 3, 1, 1, 7, 1, 4, 2, 6, 2, 6, 4, 4, 2, 4, 2, 4, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-7, 7, 5, 7, 7, 7, 5, 8, 5, 8, 7, 3, 7, 5, 7, 3, 7, 5, 5, 5, 7, 5, 3, 1, 1, 3, 3, 7, 1, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 0, 2, 2, 2, 2, 2, 0, 0, 2, 2, 2, 0, 0, 0, 0, 0, 0,
-8, 7, 5, 7, 7, 7, 5, 8, 7, 7, 7, 5, 7, 3, 8, 3, 7, 3, 7, 5, 7, 7, 3, 3, 3, 5, 3, 7, 3, 4, 2, 4, 2, 6, 4, 2, 2, 4, 2, 2, 2, 4, 4, 2, 0, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 1, 7, 7, 5, 3, 7, 5, 7, 7, 5, 7, 1, 7, 1, 7, 3, 5, 1, 7, 5, 1, 3, 1, 5, 1, 7, 1, 6, 2, 4, 4, 4, 4, 4, 2, 2, 2, 2, 4, 4, 4, 4, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 3, 7, 7, 7, 3, 8, 3, 7, 7, 3, 7, 3, 7, 3, 5, 3, 5, 1, 3, 3, 1, 1, 1, 3, 3, 5, 1, 4, 4, 2, 2, 4, 2, 4, 2, 2, 2, 4, 2, 4, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 3, 7, 5, 7, 5, 7, 3, 7, 7, 1, 7, 1, 7, 3, 7, 3, 5, 1, 5, 5, 1, 1, 1, 3, 1, 5, 1, 4, 4, 6, 2, 4, 2, 4, 2, 2, 4, 4, 2, 4, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 5, 7, 5, 7, 5, 7, 5, 7, 7, 1, 7, 3, 7, 3, 3, 3, 5, 1, 3, 3, 1, 3, 1, 3, 1, 7, 1, 4, 2, 4, 2, 6, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 7, 5, 7, 5, 7, 5, 3, 5, 3, 5, 1, 5, 3, 3, 3, 1, 1, 3, 1, 1, 3, 3, 3, 3, 4, 2, 2, 4, 2, 4, 2, 2, 4, 2, 4, 2, 2, 4, 4, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 5, 7, 5, 7, 5, 8, 3, 7, 5, 3, 5, 3, 3, 3, 3, 3, 3, 3, 1, 1, 1, 1, 1, 3, 3, 3, 3, 2, 2, 4, 4, 4, 2, 2, 4, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 3, 7, 7, 7, 3, 7, 7, 3, 5, 5, 5, 5, 3, 5, 3, 3, 1, 3, 1, 1, 1, 1, 1, 1, 3, 4, 4, 4, 4, 2, 2, 2, 4, 2, 2, 4, 4, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 5, 7, 5, 3, 5, 7, 7, 7, 5, 3, 3, 3, 3, 5, 3, 3, 3, 1, 5, 5, 5, 3, 3, 5, 3, 1, 1, 4, 4, 4, 4, 4, 4, 2, 2, 2, 4, 2, 2, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0,
-7, 7, 7, 7, 7, 5, 7, 7, 7, 7, 3, 5, 1, 3, 5, 3, 5, 5, 5, 3, 3, 1, 3, 5, 3, 7, 3, 3, 1, 4, 4, 6, 7, 6, 2, 2, 2, 4, 4, 2, 4, 4, 2, 4, 2, 4, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-7, 7, 8, 7, 7, 7, 7, 5, 7, 7, 5, 7, 3, 5, 5, 3, 7, 7, 7, 7, 1, 5, 5, 7, 3, 7, 3, 3, 1, 6, 4, 6, 6, 4, 2, 2, 2, 2, 2, 4, 4, 2, 6, 2, 2, 2, 4, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-7, 7, 7, 7, 8, 7, 7, 7, 7, 7, 7, 5, 3, 5, 5, 3, 3, 5, 5, 5, 1, 3, 5, 7, 1, 5, 3, 3, 3, 4, 4, 6, 4, 2, 2, 2, 2, 0, 2, 2, 2, 6, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 8, 7, 7, 7, 5, 7, 7, 7, 3, 3, 7, 3, 3, 7, 5, 5, 3, 1, 1, 5, 1, 7, 5, 3, 3, 6, 4, 6, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-7, 8, 7, 7, 8, 7, 7, 7, 5, 7, 7, 5, 1, 3, 5, 3, 5, 5, 5, 5, 1, 3, 1, 7, 3, 3, 3, 1, 3, 4, 4, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 8, 7, 7, 7, 5, 7, 7, 5, 3, 5, 5, 1, 5, 5, 3, 5, 3, 1, 1, 5, 1, 5, 3, 1, 3, 4, 4, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 4, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 5, 3, 5, 5, 3, 3, 7, 5, 5, 1, 1, 1, 5, 1, 3, 3, 1, 3, 2, 6, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 4, 6, 2, 2, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 5, 1, 3, 3, 3, 5, 3, 5, 3, 1, 3, 1, 3, 1, 1, 3, 1, 3, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 7, 5, 7, 5, 3, 5, 7, 5, 3, 3, 7, 3, 5, 1, 3, 7, 1, 5, 1, 5, 3, 5, 3, 1, 3, 2, 2, 2, 2, 4, 2, 2, 2, 4, 2, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 5, 7, 8, 5, 7, 7, 3, 3, 7, 3, 3, 3, 5, 5, 5, 1, 7, 3, 3, 3, 1, 5, 7, 5, 1, 5, 3, 4, 7, 6, 2, 4, 6, 2, 6, 2, 6, 2, 2, 2, 2, 4, 4, 2, 0, 0, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 5, 7, 7, 7, 7, 7, 5, 5, 7, 3, 3, 3, 5, 3, 1, 3, 7, 3, 5, 1, 1, 5, 7, 3, 1, 5, 3, 6, 6, 6, 2, 6, 4, 4, 6, 2, 2, 2, 2, 2, 4, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 7, 5, 7, 7, 7, 7, 7, 5, 1, 5, 5, 5, 5, 3, 7, 3, 3, 1, 3, 5, 5, 3, 1, 3, 1, 2, 4, 6, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 4, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 7, 7, 5, 3, 5, 5, 3, 3, 5, 5, 1, 1, 7, 7, 7, 3, 5, 5, 7, 1, 7, 1, 7, 5, 4, 6, 2, 4, 6, 2, 4, 2, 2, 6, 4, 4, 6, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 5, 7, 8, 7, 7, 3, 3, 7, 5, 3, 7, 5, 3, 1, 3, 5, 5, 5, 3, 5, 3, 7, 1, 3, 1, 7, 3, 7, 6, 2, 6, 7, 2, 4, 2, 2, 4, 2, 2, 2, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 7, 7, 5, 5, 7, 5, 3, 7, 5, 5, 3, 3, 7, 7, 5, 1, 3, 3, 5, 3, 5, 3, 7, 1, 6, 6, 2, 2, 6, 4, 2, 2, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 5, 8, 3, 8, 3, 7, 8, 5, 7, 3, 5, 1, 7, 8, 1, 7, 1, 5, 3, 7, 5, 0, 3, 1, 7, 2, 7, 0, 0, 6, 2, 2, 0, 2, 2, 0, 2, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 3, 7, 7, 7, 7, 1, 8, 1, 7, 7, 3, 7, 5, 7, 7, 7, 8, 3, 7, 3, 5, 3, 7, 5, 1, 5, 0, 6, 2, 7, 2, 2, 6, 0, 2, 0, 0, 2, 2, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 5, 7, 7, 5, 7, 3, 7, 1, 7, 7, 7, 7, 3, 5, 5, 7, 8, 3, 7, 1, 5, 3, 7, 5, 1, 3, 1, 7, 2, 6, 2, 2, 4, 4, 2, 0, 0, 2, 0, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 3, 7, 7, 7, 7, 3, 8, 5, 7, 8, 7, 7, 3, 7, 5, 7, 7, 1, 7, 1, 7, 3, 7, 3, 1, 5, 1, 7, 2, 7, 2, 2, 4, 2, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 5, 7, 7, 3, 8, 5, 7, 8, 5, 7, 5, 5, 3, 7, 7, 1, 7, 3, 7, 5, 7, 5, 1, 7, 3, 7, 4, 6, 2, 4, 7, 2, 2, 2, 0, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 5, 7, 7, 5, 8, 3, 7, 3, 7, 7, 7, 7, 3, 5, 1, 7, 7, 3, 7, 1, 3, 3, 7, 1, 1, 3, 1, 7, 2, 6, 2, 2, 6, 2, 4, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 9, 7, 7, 5, 5, 7, 3, 8, 5, 7, 8, 7, 7, 3, 5, 5, 5, 7, 3, 7, 1, 5, 5, 7, 3, 1, 3, 1, 7, 2, 6, 0, 2, 6, 2, 2, 0, 0, 2, 0, 0, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 5, 5, 7, 7, 7, 3, 5, 7, 7, 7, 1, 3, 1, 3, 5, 3, 5, 1, 1, 3, 5, 1, 1, 3, 3, 6, 2, 6, 4, 2, 6, 2, 2, 2, 4, 4, 2, 6, 6, 2, 2, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 3, 5, 7, 3, 7, 3, 7, 8, 5, 7, 3, 5, 1, 7, 7, 3, 5, 3, 3, 3, 7, 5, 1, 3, 1, 6, 4, 7, 2, 6, 6, 2, 2, 2, 6, 6, 2, 2, 2, 2, 2, 2, 0, 2, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 9, 5, 7, 3, 7, 5, 8, 7, 7, 7, 3, 7, 5, 8, 3, 3, 1, 7, 5, 7, 5, 1, 5, 1, 7, 1, 3, 1, 6, 4, 7, 4, 6, 2, 4, 2, 6, 4, 2, 2, 4, 4, 4, 2, 2, 0, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 5, 8, 5, 5, 5, 7, 7, 7, 5, 5, 3, 1, 7, 3, 3, 3, 7, 7, 1, 3, 5, 3, 3, 1, 1, 3, 1, 2, 4, 6, 4, 4, 4, 2, 4, 2, 2, 2, 2, 2, 6, 4, 4, 2, 2, 2, 2, 2, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 7, 7, 7, 8, 5, 8, 7, 5, 7, 3, 7, 5, 5, 5, 7, 7, 3, 3, 5, 5, 1, 7, 3, 7, 5, 6, 7, 4, 6, 6, 2, 2, 2, 2, 2, 2, 4, 2, 4, 4, 4, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-7, 8, 7, 7, 7, 7, 7, 8, 7, 7, 7, 5, 7, 3, 7, 3, 5, 7, 7, 7, 3, 5, 3, 7, 3, 7, 3, 7, 3, 6, 7, 7, 7, 6, 4, 6, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-7, 8, 7, 7, 7, 7, 7, 8, 5, 8, 7, 5, 7, 3, 7, 3, 5, 7, 7, 7, 7, 7, 3, 7, 3, 5, 1, 5, 3, 4, 4, 6, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 5, 8, 7, 7, 7, 8, 7, 8, 7, 5, 7, 5, 7, 1, 7, 7, 7, 7, 7, 3, 3, 7, 1, 7, 1, 5, 1, 6, 6, 7, 4, 6, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 5, 7, 3, 8, 1, 5, 3, 7, 7, 7, 1, 3, 5, 3, 7, 1, 3, 1, 6, 4, 7, 2, 6, 2, 4, 2, 4, 2, 0, 2, 2, 2, 2, 2, 0, 0, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 7, 7, 7, 8, 7, 7, 7, 5, 5, 3, 7, 1, 5, 1, 7, 7, 5, 3, 1, 5, 1, 5, 3, 3, 1, 2, 2, 4, 4, 2, 2, 4, 4, 2, 6, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 5, 7, 5, 5, 7, 3, 7, 3, 3, 8, 3, 7, 3, 7, 1, 7, 7, 1, 7, 1, 3, 3, 7, 7, 5, 3, 0, 7, 2, 7, 0, 2, 7, 6, 2, 0, 4, 0, 4, 0, 4, 2, 2, 0, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 5, 7, 7, 7, 8, 7, 8, 7, 7, 7, 7, 5, 5, 7, 5, 3, 7, 5, 7, 3, 3, 3, 7, 5, 1, 5, 1, 7, 2, 6, 2, 2, 6, 4, 2, 0, 2, 2, 4, 2, 2, 4, 0, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 3, 7, 7, 7, 7, 8, 7, 7, 7, 7, 7, 5, 7, 7, 7, 7, 8, 7, 7, 5, 3, 5, 7, 7, 1, 7, 1, 7, 2, 7, 2, 2, 2, 7, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 3, 7, 7, 7, 7, 7, 5, 7, 7, 8, 7, 5, 7, 5, 7, 5, 7, 5, 7, 5, 5, 5, 7, 7, 5, 5, 1, 7, 2, 7, 0, 2, 6, 6, 2, 2, 2, 0, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 3, 7, 7, 7, 7, 7, 7, 5, 7, 5, 7, 7, 5, 3, 3, 7, 7, 1, 7, 1, 3, 1, 7, 7, 1, 3, 1, 7, 4, 6, 2, 4, 6, 6, 4, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 5, 7, 7, 5, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 5, 7, 7, 3, 7, 1, 7, 1, 7, 7, 5, 5, 1, 7, 2, 7, 0, 2, 6, 7, 2, 0, 4, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 1, 7, 7, 7, 8, 7, 7, 5, 7, 7, 7, 7, 3, 7, 5, 5, 7, 3, 7, 1, 3, 3, 7, 5, 1, 3, 1, 6, 2, 6, 2, 0, 4, 6, 2, 0, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-7, 8, 3, 7, 7, 7, 7, 5, 7, 3, 3, 7, 7, 5, 3, 7, 5, 5, 7, 1, 7, 1, 5, 3, 7, 7, 1, 3, 1, 7, 2, 7, 2, 2, 4, 7, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 5, 7, 7, 5, 7, 5, 7, 3, 7, 7, 5, 7, 3, 5, 5, 7, 5, 5, 7, 1, 5, 5, 5, 7, 5, 5, 1, 7, 2, 6, 2, 2, 6, 6, 2, 2, 0, 0, 2, 0, 0, 0, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 5, 7, 7, 5, 7, 7, 7, 7, 3, 7, 7, 7, 3, 7, 7, 7, 7, 7, 7, 1, 3, 5, 7, 5, 7, 5, 1, 7, 2, 7, 2, 2, 6, 6, 2, 2, 2, 0, 0, 2, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-7, 8, 7, 7, 7, 7, 7, 7, 7, 5, 5, 7, 7, 7, 3, 5, 1, 7, 5, 3, 7, 1, 5, 3, 7, 5, 7, 3, 1, 7, 2, 6, 0, 2, 6, 6, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 5, 7, 7, 7, 7, 7, 7, 5, 5, 3, 5, 5, 3, 1, 3, 5, 5, 1, 3, 3, 1, 3, 3, 1, 3, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-7, 7, 7, 7, 8, 5, 7, 7, 7, 5, 7, 7, 5, 3, 5, 3, 3, 3, 7, 1, 3, 1, 3, 3, 3, 5, 1, 3, 3, 4, 2, 4, 4, 2, 2, 2, 4, 4, 2, 2, 4, 4, 4, 4, 2, 2, 2, 0, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 5, 3, 5, 3, 3, 7, 7, 5, 7, 3, 3, 5, 3, 5, 1, 5, 1, 7, 4, 6, 2, 2, 4, 4, 2, 4, 2, 2, 4, 4, 4, 4, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 5, 5, 5, 7, 3, 5, 7, 7, 5, 5, 5, 5, 7, 5, 3, 1, 5, 1, 4, 2, 4, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 4, 4, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-7, 8, 7, 7, 7, 7, 7, 7, 7, 5, 7, 5, 7, 3, 7, 3, 5, 7, 7, 5, 5, 5, 3, 7, 5, 3, 1, 3, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 7, 7, 5, 5, 3, 5, 7, 3, 5, 3, 3, 1, 3, 5, 7, 3, 3, 1, 1, 1, 1, 1, 1, 3, 3, 4, 2, 2, 2, 4, 2, 4, 2, 2, 2, 2, 2, 2, 4, 2, 2, 4, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 7, 5, 3, 7, 5, 5, 7, 3, 5, 3, 5, 1, 3, 3, 7, 3, 1, 1, 3, 3, 1, 3, 1, 3, 3, 6, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 4, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 7, 5, 7, 5, 7, 3, 3, 5, 3, 7, 1, 3, 3, 1, 7, 3, 7, 1, 3, 3, 3, 3, 1, 3, 1, 2, 4, 2, 2, 2, 4, 2, 2, 2, 4, 4, 2, 4, 4, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 5, 8, 5, 5, 7, 7, 7, 5, 7, 3, 3, 5, 3, 1, 3, 3, 5, 5, 5, 1, 5, 1, 3, 3, 1, 3, 3, 2, 4, 4, 2, 2, 2, 4, 2, 2, 4, 2, 4, 6, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 7, 5, 7, 3, 7, 5, 5, 5, 1, 7, 3, 3, 3, 3, 5, 1, 3, 1, 1, 5, 3, 5, 3, 5, 3, 4, 6, 6, 6, 4, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 8, 7, 7, 7, 7, 5, 7, 7, 3, 3, 3, 5, 5, 5, 5, 3, 5, 3, 3, 5, 3, 5, 3, 3, 3, 2, 4, 4, 4, 4, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 7, 7, 7, 7, 7, 5, 7, 3, 1, 7, 1, 3, 5, 5, 7, 3, 1, 1, 1, 5, 3, 5, 3, 3, 1, 4, 2, 2, 2, 6, 2, 2, 4, 4, 2, 2, 2, 4, 4, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 9, 7, 7, 7, 7, 7, 3, 7, 5, 7, 5, 3, 7, 3, 5, 3, 3, 7, 3, 5, 1, 3, 3, 3, 3, 3, 3, 1, 4, 2, 2, 4, 6, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-7, 8, 7, 7, 7, 5, 7, 5, 7, 5, 7, 5, 3, 5, 3, 3, 3, 3, 5, 1, 5, 1, 1, 3, 3, 5, 3, 5, 3, 2, 2, 7, 2, 6, 2, 2, 4, 2, 4, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 7, 7, 8, 7, 7, 5, 7, 3, 5, 7, 3, 1, 3, 3, 5, 3, 5, 3, 3, 1, 1, 5, 3, 3, 3, 4, 2, 4, 2, 6, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-7, 8, 7, 7, 7, 7, 7, 7, 7, 5, 3, 5, 3, 5, 3, 1, 5, 5, 5, 3, 7, 1, 3, 3, 1, 5, 1, 5, 1, 4, 4, 6, 2, 4, 2, 2, 4, 2, 2, 2, 0, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 7, 5, 8, 7, 7, 5, 7, 7, 3, 5, 5, 5, 5, 3, 7, 3, 5, 1, 3, 1, 1, 7, 3, 5, 3, 2, 4, 4, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 7, 7, 7, 3, 5, 5, 3, 3, 3, 3, 1, 3, 1, 3, 5, 3, 3, 1, 3, 3, 5, 5, 1, 1, 1, 2, 2, 2, 2, 2, 2, 4, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-8, 9, 7, 7, 7, 7, 7, 7, 5, 3, 7, 7, 7, 3, 5, 1, 3, 5, 5, 1, 3, 3, 5, 7, 3, 5, 3, 1, 1, 6, 7, 6, 2, 2, 2, 4, 4, 4, 6, 4, 2, 4, 4, 4, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 3, 7, 7, 3, 5, 7, 7, 5, 1, 5, 3, 3, 7, 3, 1, 3, 5, 5, 4, 7, 6, 4, 2, 2, 4, 2, 4, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 5, 7, 3, 7, 5, 7, 5, 7, 5, 5, 3, 7, 7, 7, 3, 1, 3, 3, 3, 3, 5, 1, 5, 1, 4, 6, 6, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 7, 7, 5, 7, 7, 7, 3, 7, 7, 5, 3, 1, 7, 7, 7, 7, 3, 5, 7, 1, 7, 1, 3, 1, 4, 7, 6, 2, 6, 4, 4, 2, 4, 2, 0, 2, 6, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 8, 5, 7, 3, 7, 3, 7, 3, 7, 7, 7, 3, 3, 7, 7, 7, 7, 1, 7, 7, 1, 7, 3, 3, 1, 6, 6, 6, 2, 4, 2, 6, 2, 2, 2, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 9, 7, 7, 7, 7, 7, 7, 7, 7, 7, 3, 7, 7, 3, 3, 3, 7, 7, 7, 7, 3, 3, 7, 3, 7, 1, 1, 1, 6, 6, 4, 2, 2, 6, 4, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-7, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 3, 7, 5, 5, 1, 1, 5, 7, 5, 5, 3, 3, 5, 3, 5, 1, 3, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 4, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 7, 7, 5, 3, 5, 5, 5, 5, 3, 5, 3, 3, 1, 3, 5, 1, 3, 3, 3, 3, 1, 5, 3, 3, 1, 2, 2, 2, 2, 2, 4, 4, 2, 2, 4, 2, 4, 2, 6, 2, 2, 2, 2, 2, 0, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 7, 5, 3, 3, 5, 1, 7, 3, 3, 3, 5, 5, 3, 7, 5, 5, 1, 3, 5, 5, 3, 7, 7, 5, 1, 2, 6, 6, 7, 4, 2, 2, 2, 2, 2, 2, 6, 2, 2, 0, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-7, 7, 7, 7, 7, 7, 7, 5, 5, 3, 7, 5, 7, 3, 7, 3, 3, 7, 7, 7, 1, 5, 1, 7, 5, 7, 7, 1, 1, 2, 4, 4, 6, 4, 2, 2, 2, 2, 4, 2, 4, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-7, 7, 7, 7, 7, 7, 7, 7, 5, 5, 7, 3, 7, 3, 7, 3, 5, 7, 7, 5, 3, 3, 3, 7, 5, 7, 5, 1, 3, 4, 6, 4, 6, 2, 2, 2, 2, 2, 2, 0, 4, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-7, 8, 7, 7, 8, 7, 7, 7, 5, 5, 8, 5, 7, 5, 7, 3, 7, 5, 7, 3, 1, 5, 5, 7, 1, 5, 5, 1, 1, 2, 6, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-7, 8, 7, 7, 7, 7, 7, 7, 7, 7, 8, 7, 7, 5, 7, 5, 5, 5, 7, 5, 1, 5, 1, 7, 1, 5, 3, 3, 1, 4, 4, 2, 4, 2, 2, 2, 2, 2, 2, 2, 6, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-7, 7, 7, 8, 7, 7, 5, 7, 7, 7, 7, 5, 5, 5, 5, 3, 5, 5, 5, 7, 1, 5, 3, 5, 3, 3, 5, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-7, 7, 7, 7, 7, 7, 7, 5, 7, 5, 7, 5, 7, 5, 3, 3, 3, 5, 7, 3, 1, 1, 3, 3, 1, 5, 3, 1, 3, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 7, 7, 7, 5, 5, 5, 7, 1, 7, 5, 5, 1, 3, 5, 7, 5, 3, 1, 3, 5, 1, 1, 3, 1, 1, 4, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 7, 7, 5, 7, 5, 7, 7, 3, 7, 5, 3, 3, 1, 3, 1, 5, 1, 3, 3, 5, 1, 5, 5, 1, 1, 4, 4, 2, 2, 4, 4, 4, 4, 2, 2, 2, 2, 2, 2, 4, 2, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 5, 7, 7, 3, 5, 5, 7, 5, 5, 3, 5, 3, 1, 5, 5, 5, 3, 5, 3, 3, 1, 5, 5, 1, 1, 4, 4, 4, 4, 4, 2, 4, 4, 4, 2, 2, 4, 2, 2, 4, 2, 2, 4, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 7, 7, 5, 5, 5, 3, 5, 5, 7, 5, 7, 3, 5, 5, 5, 3, 5, 3, 1, 5, 5, 7, 5, 1, 1, 4, 6, 2, 6, 2, 0, 2, 2, 4, 2, 2, 2, 4, 2, 4, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-7, 7, 8, 7, 7, 7, 7, 7, 7, 5, 7, 3, 7, 3, 7, 5, 7, 7, 5, 5, 7, 3, 1, 7, 5, 7, 5, 1, 1, 2, 6, 4, 6, 4, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-7, 7, 7, 7, 8, 8, 3, 7, 7, 5, 7, 7, 7, 1, 7, 3, 7, 7, 7, 7, 7, 1, 1, 7, 3, 7, 3, 1, 1, 4, 6, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 8, 7, 5, 8, 7, 5, 7, 3, 7, 1, 7, 3, 7, 7, 5, 7, 5, 3, 1, 7, 3, 5, 5, 1, 1, 4, 4, 2, 4, 2, 2, 4, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 7, 7, 5, 7, 7, 5, 7, 5, 7, 1, 3, 3, 3, 3, 1, 5, 5, 1, 1, 3, 1, 5, 5, 1, 1, 4, 4, 2, 2, 4, 4, 2, 2, 2, 4, 4, 4, 4, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 8, 7, 3, 7, 5, 3, 7, 3, 7, 1, 3, 1, 3, 5, 5, 1, 3, 3, 1, 3, 1, 3, 5, 3, 1, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 8, 7, 7, 7, 3, 7, 7, 5, 7, 3, 7, 3, 3, 1, 1, 3, 3, 1, 3, 3, 3, 1, 1, 3, 3, 1, 1, 2, 4, 2, 4, 2, 2, 2, 2, 2, 4, 4, 4, 2, 4, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 3, 7, 8, 3, 7, 7, 3, 7, 7, 7, 7, 7, 3, 5, 8, 7, 3, 7, 3, 1, 7, 5, 1, 5, 7, 1, 7, 6, 2, 0, 6, 2, 0, 0, 0, 2, 2, 2, 4, 2, 4, 2, 4, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 8, 3, 8, 8, 1, 7, 7, 1, 7, 8, 7, 8, 7, 1, 1, 8, 7, 1, 7, 7, 0, 7, 7, 0, 5, 3, 0, 7, 6, 0, 2, 6, 2, 2, 0, 2, 2, 0, 2, 4, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 1, 8, 8, 1, 8, 8, 3, 7, 8, 5, 8, 7, 5, 1, 7, 7, 1, 7, 3, 1, 7, 5, 1, 5, 5, 0, 7, 6, 2, 0, 4, 2, 2, 0, 2, 2, 0, 0, 4, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 3, 7, 8, 1, 7, 7, 3, 7, 7, 7, 8, 7, 5, 3, 8, 7, 1, 7, 5, 1, 7, 7, 1, 5, 3, 1, 7, 6, 2, 2, 7, 2, 2, 2, 0, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 3, 7, 8, 1, 7, 7, 3, 7, 7, 7, 7, 7, 5, 3, 7, 7, 1, 7, 5, 3, 7, 7, 5, 7, 5, 1, 7, 6, 2, 2, 4, 4, 2, 2, 2, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 3, 8, 8, 1, 8, 7, 3, 7, 7, 8, 8, 7, 3, 3, 7, 7, 1, 5, 1, 1, 7, 7, 1, 5, 5, 1, 7, 7, 2, 0, 6, 4, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 3, 8, 8, 1, 8, 8, 3, 7, 7, 8, 8, 7, 3, 1, 7, 7, 1, 7, 5, 3, 7, 7, 3, 7, 7, 1, 7, 6, 2, 2, 6, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 3, 8, 8, 1, 7, 7, 5, 7, 7, 8, 8, 7, 5, 1, 7, 5, 1, 7, 7, 3, 7, 7, 1, 7, 7, 1, 7, 4, 2, 2, 6, 4, 2, 2, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 8, 7, 7, 7, 5, 7, 7, 5, 7, 7, 7, 8, 7, 3, 3, 7, 7, 1, 7, 3, 3, 7, 5, 1, 5, 5, 1, 7, 6, 2, 2, 6, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 7, 7, 5, 5, 5, 3, 7, 3, 1, 5, 3, 1, 1, 3, 3, 3, 5, 3, 3, 3, 3, 5, 5, 3, 1, 4, 2, 2, 2, 6, 4, 4, 2, 2, 6, 2, 2, 4, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 9, 7, 7, 7, 5, 7, 3, 7, 3, 3, 7, 7, 7, 5, 5, 5, 5, 7, 3, 7, 5, 5, 7, 7, 5, 1, 7, 3, 4, 4, 7, 4, 6, 2, 4, 4, 4, 4, 2, 2, 2, 2, 6, 4, 4, 2, 0, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-7, 8, 7, 7, 7, 7, 8, 5, 8, 5, 7, 7, 7, 7, 5, 5, 7, 7, 8, 7, 7, 7, 5, 7, 7, 5, 3, 5, 5, 6, 2, 7, 2, 6, 4, 2, 4, 2, 2, 2, 4, 6, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-7, 8, 7, 7, 7, 7, 7, 3, 8, 3, 5, 8, 3, 7, 7, 5, 5, 7, 7, 7, 7, 7, 5, 8, 7, 5, 3, 5, 3, 6, 2, 6, 2, 6, 4, 2, 4, 2, 6, 2, 4, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 7, 7, 7, 5, 8, 1, 7, 7, 7, 7, 3, 7, 5, 5, 7, 7, 8, 7, 7, 7, 7, 5, 5, 5, 1, 4, 2, 6, 2, 6, 2, 2, 2, 2, 7, 2, 2, 2, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 9, 7, 7, 7, 7, 7, 3, 7, 1, 3, 7, 5, 7, 3, 5, 3, 5, 7, 3, 7, 5, 3, 5, 7, 7, 3, 7, 1, 2, 2, 6, 2, 6, 2, 2, 6, 2, 6, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 9, 7, 7, 5, 7, 7, 3, 7, 3, 7, 7, 5, 7, 5, 5, 3, 5, 7, 1, 7, 1, 3, 3, 5, 5, 1, 5, 1, 6, 2, 6, 4, 6, 2, 4, 4, 2, 6, 0, 4, 2, 2, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 7, 7, 7, 8, 1, 7, 7, 5, 7, 5, 5, 3, 5, 7, 3, 7, 1, 3, 3, 5, 7, 5, 5, 1, 4, 2, 6, 2, 6, 2, 2, 6, 2, 2, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 5, 7, 5, 5, 7, 3, 8, 1, 7, 7, 5, 7, 3, 7, 3, 7, 7, 1, 7, 1, 5, 3, 7, 5, 5, 3, 0, 7, 2, 7, 2, 2, 2, 6, 2, 2, 6, 2, 6, 2, 2, 2, 4, 0, 4, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-7, 8, 3, 7, 5, 7, 7, 1, 7, 1, 7, 7, 7, 7, 1, 7, 5, 7, 7, 3, 7, 1, 3, 1, 7, 3, 1, 5, 0, 6, 0, 7, 2, 2, 4, 4, 2, 0, 2, 2, 4, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 9, 5, 7, 5, 7, 7, 1, 8, 1, 5, 7, 7, 7, 1, 7, 3, 7, 7, 7, 7, 1, 5, 3, 7, 1, 1, 7, 1, 6, 2, 6, 2, 2, 6, 4, 2, 2, 2, 0, 2, 0, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 5, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 5, 5, 3, 7, 7, 1, 5, 3, 3, 7, 5, 1, 5, 7, 1, 7, 2, 6, 4, 6, 2, 4, 6, 2, 2, 2, 4, 4, 2, 2, 6, 2, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 7, 8, 5, 3, 7, 3, 7, 7, 7, 7, 7, 5, 1, 7, 7, 1, 7, 3, 3, 5, 3, 5, 7, 7, 1, 6, 4, 6, 2, 7, 2, 6, 4, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 7, 8, 5, 3, 7, 5, 7, 7, 7, 5, 3, 5, 1, 7, 7, 3, 7, 1, 3, 7, 7, 5, 5, 5, 1, 7, 2, 6, 2, 2, 4, 4, 2, 2, 2, 0, 2, 2, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 7, 8, 7, 3, 7, 5, 7, 7, 7, 7, 5, 5, 3, 5, 7, 5, 5, 1, 3, 5, 7, 3, 5, 5, 1, 7, 2, 7, 2, 4, 6, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 7, 8, 7, 5, 7, 3, 7, 7, 7, 7, 5, 7, 3, 7, 7, 1, 7, 1, 3, 3, 5, 5, 5, 3, 3, 7, 4, 6, 2, 2, 4, 4, 4, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 7, 8, 7, 5, 8, 1, 7, 7, 7, 7, 5, 5, 1, 7, 7, 3, 3, 1, 1, 3, 7, 1, 1, 3, 1, 7, 2, 6, 2, 4, 2, 6, 4, 2, 0, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 7, 8, 7, 5, 7, 1, 7, 5, 7, 3, 3, 3, 1, 5, 5, 3, 3, 1, 1, 1, 3, 3, 3, 3, 1, 6, 2, 6, 2, 2, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-7, 7, 7, 7, 7, 8, 7, 3, 7, 3, 5, 5, 5, 5, 3, 1, 3, 5, 3, 1, 1, 3, 3, 3, 1, 3, 1, 3, 1, 4, 2, 4, 2, 2, 4, 4, 4, 4, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 8, 7, 5, 7, 3, 5, 5, 7, 5, 5, 5, 5, 5, 5, 3, 3, 1, 3, 3, 3, 3, 1, 5, 1, 6, 4, 2, 6, 4, 2, 4, 2, 2, 2, 2, 6, 2, 6, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 7, 5, 5, 7, 3, 5, 5, 7, 3, 3, 1, 3, 5, 1, 5, 5, 3, 3, 5, 1, 1, 1, 1, 3, 4, 2, 7, 2, 4, 2, 2, 4, 4, 2, 6, 6, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 7, 7, 5, 3, 7, 3, 3, 3, 7, 3, 5, 3, 1, 7, 5, 1, 3, 1, 3, 1, 1, 1, 1, 3, 1, 4, 2, 2, 2, 2, 2, 2, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 7, 7, 5, 3, 5, 5, 5, 3, 5, 5, 3, 3, 3, 3, 1, 1, 3, 1, 1, 3, 3, 1, 3, 3, 1, 2, 2, 4, 4, 2, 2, 2, 4, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 7, 5, 5, 5, 3, 5, 3, 7, 5, 5, 3, 3, 5, 3, 1, 3, 3, 1, 3, 1, 1, 1, 1, 3, 2, 2, 4, 2, 4, 2, 2, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 5, 7, 7, 5, 7, 7, 5, 7, 3, 7, 7, 7, 5, 3, 3, 7, 3, 7, 5, 5, 3, 7, 3, 7, 7, 0, 0, 6, 2, 7, 6, 0, 0, 4, 0, 2, 2, 4, 2, 0, 6, 4, 2, 2, 0, 0, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 5, 8, 3, 3, 5, 7, 5, 5, 5, 5, 3, 3, 3, 3, 3, 3, 3, 3, 1, 3, 1, 1, 1, 3, 1, 3, 4, 2, 2, 4, 2, 2, 2, 2, 2, 4, 2, 4, 2, 2, 4, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 5, 7, 5, 5, 3, 7, 5, 3, 3, 5, 3, 3, 3, 3, 3, 3, 3, 1, 1, 1, 3, 1, 1, 1, 3, 3, 2, 4, 4, 4, 4, 4, 2, 2, 2, 2, 4, 4, 2, 4, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 5, 8, 7, 7, 5, 5, 3, 3, 3, 5, 5, 3, 1, 5, 3, 5, 1, 3, 1, 1, 5, 3, 1, 3, 1, 1, 4, 4, 2, 4, 4, 2, 6, 2, 2, 2, 4, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 8, 5, 5, 7, 5, 3, 3, 5, 3, 5, 3, 1, 5, 1, 5, 3, 3, 3, 1, 1, 1, 1, 1, 3, 3, 4, 4, 4, 6, 4, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-7, 8, 7, 5, 8, 5, 3, 7, 5, 3, 5, 5, 5, 7, 3, 1, 3, 3, 3, 3, 3, 1, 1, 3, 1, 1, 3, 3, 3, 4, 4, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 5, 8, 7, 5, 7, 7, 3, 5, 3, 5, 7, 5, 5, 5, 5, 3, 5, 3, 1, 3, 1, 3, 1, 1, 3, 3, 4, 4, 2, 6, 6, 2, 2, 4, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 8, 7, 5, 7, 7, 5, 7, 1, 7, 3, 5, 1, 3, 3, 5, 3, 3, 3, 1, 1, 3, 1, 1, 5, 5, 4, 4, 4, 2, 4, 2, 2, 2, 2, 4, 2, 4, 2, 2, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-7, 8, 7, 7, 7, 5, 7, 7, 7, 5, 5, 3, 7, 7, 5, 3, 3, 3, 3, 1, 3, 3, 3, 1, 1, 1, 5, 3, 1, 4, 4, 2, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 7, 7, 5, 7, 7, 1, 5, 1, 7, 7, 5, 3, 1, 3, 3, 3, 3, 3, 1, 1, 3, 1, 1, 1, 3, 4, 4, 2, 6, 4, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-7, 8, 7, 7, 7, 7, 5, 7, 7, 5, 7, 7, 5, 5, 3, 3, 3, 5, 1, 3, 3, 3, 5, 5, 5, 1, 5, 3, 7, 4, 4, 4, 2, 2, 2, 2, 2, 2, 4, 2, 4, 4, 4, 6, 0, 2, 2, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 8, 7, 5, 7, 5, 7, 7, 7, 5, 7, 5, 1, 3, 7, 3, 3, 3, 3, 3, 7, 1, 1, 1, 3, 7, 4, 2, 4, 2, 2, 2, 2, 4, 2, 4, 2, 2, 2, 6, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 8, 7, 7, 7, 3, 5, 7, 7, 7, 7, 7, 5, 5, 3, 1, 5, 3, 3, 1, 3, 1, 5, 1, 3, 3, 3, 5, 6, 4, 2, 4, 2, 2, 4, 2, 2, 4, 2, 4, 2, 4, 4, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-7, 8, 8, 7, 8, 7, 7, 5, 5, 7, 7, 7, 5, 7, 3, 3, 3, 5, 3, 1, 1, 3, 1, 3, 1, 1, 1, 1, 3, 6, 6, 2, 2, 6, 2, 2, 2, 4, 2, 4, 4, 4, 4, 2, 2, 4, 2, 0, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 8, 7, 8, 7, 3, 7, 5, 7, 7, 7, 7, 3, 3, 3, 1, 3, 1, 1, 3, 3, 1, 3, 1, 1, 1, 1, 5, 4, 4, 2, 4, 4, 2, 2, 2, 2, 2, 2, 4, 2, 4, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 8, 7, 8, 8, 5, 7, 3, 5, 7, 5, 3, 5, 3, 3, 3, 5, 5, 1, 1, 1, 5, 5, 1, 1, 3, 1, 7, 2, 2, 2, 2, 4, 2, 2, 4, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-7, 8, 8, 7, 8, 8, 5, 7, 7, 7, 7, 7, 3, 5, 3, 3, 3, 3, 1, 1, 1, 3, 3, 3, 1, 3, 3, 3, 5, 4, 2, 2, 2, 4, 2, 2, 2, 4, 2, 4, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 7, 8, 7, 5, 7, 3, 7, 7, 5, 5, 3, 3, 3, 5, 3, 1, 1, 1, 3, 3, 3, 3, 3, 1, 5, 6, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 7, 7, 3, 7, 7, 5, 7, 7, 5, 3, 3, 3, 3, 3, 3, 1, 3, 3, 3, 3, 3, 1, 1, 1, 5, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 4, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 8, 5, 8, 7, 3, 5, 5, 7, 7, 5, 1, 7, 3, 3, 5, 3, 3, 1, 1, 1, 3, 5, 1, 1, 3, 1, 7, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 4, 2, 2, 2, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 8, 5, 7, 7, 5, 3, 5, 3, 3, 5, 3, 1, 5, 1, 3, 5, 1, 3, 1, 1, 5, 3, 3, 1, 1, 1, 1, 2, 2, 2, 2, 6, 6, 2, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 8, 7, 5, 5, 5, 5, 5, 5, 1, 3, 3, 1, 3, 3, 5, 1, 3, 1, 3, 3, 1, 3, 1, 3, 1, 4, 4, 2, 2, 2, 4, 4, 4, 4, 4, 2, 4, 2, 2, 4, 2, 2, 2, 2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 7, 7, 7, 7, 7, 5, 5, 5, 3, 3, 3, 1, 3, 3, 3, 3, 3, 3, 3, 3, 1, 1, 1, 3, 3, 4, 4, 2, 2, 4, 4, 4, 4, 2, 2, 2, 4, 2, 4, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 7, 7, 7, 5, 7, 3, 7, 5, 3, 1, 3, 5, 5, 3, 5, 3, 1, 3, 3, 3, 1, 1, 1, 1, 1, 4, 4, 2, 2, 4, 2, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 5, 7, 7, 7, 7, 7, 3, 7, 5, 5, 5, 3, 1, 1, 5, 3, 1, 5, 3, 1, 1, 1, 1, 3, 3, 3, 2, 2, 2, 4, 2, 2, 2, 2, 4, 4, 4, 4, 2, 2, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 5, 7, 7, 7, 7, 5, 7, 5, 7, 3, 3, 3, 3, 3, 3, 5, 3, 3, 3, 3, 3, 3, 1, 1, 3, 5, 3, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 5, 5, 8, 7, 5, 5, 7, 3, 7, 3, 3, 3, 3, 3, 3, 5, 5, 3, 3, 1, 1, 3, 1, 3, 3, 3, 3, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 5, 7, 7, 7, 5, 7, 7, 3, 5, 5, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1, 3, 3, 1, 3, 1, 1, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 5, 5, 8, 7, 7, 5, 7, 3, 7, 3, 3, 1, 3, 3, 3, 5, 3, 1, 3, 3, 3, 3, 1, 3, 1, 3, 3, 4, 4, 2, 2, 2, 2, 2, 2, 2, 4, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 7, 5, 5, 5, 7, 3, 7, 3, 3, 3, 1, 3, 5, 5, 3, 3, 3, 3, 3, 1, 1, 1, 1, 3, 3, 4, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 4, 4, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 5, 5, 5, 5, 5, 5, 5, 3, 5, 1, 3, 3, 3, 1, 3, 3, 3, 1, 5, 3, 3, 5, 5, 3, 3, 1, 2, 2, 4, 4, 2, 4, 2, 2, 2, 4, 2, 2, 4, 2, 2, 2, 2, 2, 2, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 7, 7, 7, 5, 7, 5, 7, 5, 7, 7, 5, 3, 5, 5, 3, 3, 3, 3, 3, 5, 3, 7, 5, 3, 3, 2, 6, 4, 7, 4, 4, 6, 2, 2, 4, 2, 2, 4, 4, 4, 2, 2, 4, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 7, 7, 7, 7, 7, 5, 7, 7, 5, 7, 5, 5, 5, 7, 5, 3, 1, 5, 1, 5, 3, 7, 3, 5, 3, 4, 6, 4, 6, 2, 4, 2, 2, 2, 2, 2, 4, 6, 6, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 7, 7, 7, 7, 5, 7, 7, 3, 5, 7, 5, 3, 5, 7, 7, 5, 1, 3, 3, 5, 1, 7, 5, 5, 1, 4, 6, 2, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 8, 7, 8, 7, 5, 5, 7, 5, 7, 7, 5, 5, 5, 7, 5, 3, 3, 1, 3, 3, 1, 7, 3, 5, 3, 4, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 8, 7, 7, 7, 7, 7, 7, 7, 5, 7, 7, 1, 5, 7, 7, 5, 1, 3, 1, 5, 3, 5, 5, 3, 3, 4, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 4, 4, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 7, 7, 7, 7, 5, 7, 8, 7, 7, 7, 3, 3, 5, 7, 7, 3, 1, 3, 3, 3, 3, 5, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 7, 7, 7, 7, 3, 7, 8, 5, 7, 7, 5, 3, 3, 7, 7, 3, 1, 3, 3, 5, 3, 5, 3, 3, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 4, 2, 2, 2, 2, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 8, 7, 7, 5, 7, 7, 1, 5, 7, 5, 5, 5, 1, 1, 3, 3, 5, 3, 1, 1, 1, 3, 1, 1, 3, 1, 3, 2, 2, 2, 2, 2, 2, 2, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 8, 7, 7, 7, 7, 5, 5, 3, 7, 5, 3, 5, 3, 3, 3, 1, 3, 3, 3, 1, 1, 5, 3, 3, 3, 3, 3, 4, 2, 2, 6, 4, 4, 4, 2, 2, 2, 4, 2, 6, 6, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 7, 7, 7, 5, 5, 7, 7, 7, 3, 5, 5, 3, 5, 5, 1, 5, 7, 5, 3, 5, 3, 3, 3, 3, 3, 2, 4, 2, 7, 4, 2, 4, 2, 2, 2, 2, 4, 2, 2, 2, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 7, 7, 7, 5, 5, 7, 7, 5, 3, 7, 7, 3, 5, 3, 1, 3, 3, 3, 1, 1, 3, 3, 1, 1, 3, 2, 2, 2, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 5, 5, 7, 5, 5, 5, 5, 5, 3, 5, 5, 3, 5, 3, 5, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 4, 2, 2, 4, 4, 2, 2, 2, 2, 4, 4, 2, 2, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 7, 7, 5, 5, 5, 5, 5, 3, 3, 3, 1, 3, 3, 5, 5, 3, 3, 3, 1, 1, 3, 1, 3, 1, 1, 4, 4, 2, 2, 4, 2, 2, 4, 4, 2, 2, 2, 4, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 7, 7, 7, 7, 3, 7, 3, 3, 3, 3, 5, 3, 5, 3, 1, 3, 1, 3, 3, 1, 1, 1, 1, 3, 3, 2, 2, 2, 4, 4, 4, 4, 2, 2, 2, 2, 4, 2, 4, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-7, 7, 7, 7, 7, 7, 7, 7, 5, 5, 7, 3, 7, 3, 5, 3, 5, 3, 3, 3, 1, 1, 1, 1, 1, 3, 1, 1, 3, 4, 4, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 7, 7, 5, 5, 7, 7, 5, 3, 3, 7, 3, 1, 3, 1, 3, 1, 1, 1, 1, 1, 3, 1, 1, 3, 4, 2, 2, 2, 2, 4, 4, 4, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 3, 5, 3, 5, 5, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1, 1, 3, 3, 1, 1, 1, 3, 1, 3, 2, 2, 4, 2, 2, 2, 2, 2, 4, 4, 2, 2, 4, 4, 4, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 5, 7, 5, 5, 3, 5, 5, 5, 3, 5, 3, 3, 3, 3, 1, 1, 3, 1, 1, 3, 5, 3, 1, 3, 3, 3, 1, 2, 2, 6, 4, 2, 2, 2, 2, 6, 2, 4, 4, 4, 2, 4, 2, 4, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-7, 7, 5, 7, 7, 7, 5, 5, 7, 5, 3, 5, 3, 3, 3, 3, 3, 3, 5, 3, 3, 3, 1, 3, 1, 3, 1, 1, 3, 4, 4, 6, 2, 2, 4, 4, 2, 4, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-7, 7, 7, 7, 5, 7, 5, 5, 5, 5, 7, 3, 3, 3, 3, 3, 3, 3, 7, 3, 3, 1, 1, 3, 1, 3, 1, 1, 1, 4, 2, 4, 2, 4, 2, 4, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-7, 7, 5, 7, 7, 7, 7, 5, 5, 3, 7, 3, 3, 1, 5, 3, 3, 5, 5, 1, 3, 3, 1, 1, 1, 1, 3, 1, 1, 4, 4, 2, 2, 2, 2, 4, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-7, 7, 7, 7, 5, 7, 7, 7, 5, 1, 5, 3, 3, 3, 3, 5, 3, 3, 3, 3, 1, 1, 1, 3, 1, 3, 3, 1, 1, 4, 4, 4, 4, 2, 2, 4, 2, 2, 2, 2, 2, 4, 4, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 7, 7, 5, 5, 5, 3, 7, 3, 3, 3, 5, 1, 3, 3, 5, 3, 3, 3, 3, 1, 3, 3, 1, 3, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 5, 7, 7, 8, 7, 7, 5, 1, 7, 3, 3, 3, 3, 5, 3, 5, 5, 1, 3, 3, 1, 1, 1, 1, 1, 3, 3, 2, 4, 2, 4, 2, 2, 4, 2, 4, 4, 4, 2, 2, 4, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 5, 7, 5, 7, 5, 3, 5, 3, 3, 1, 3, 1, 3, 5, 5, 3, 3, 3, 1, 3, 3, 1, 3, 1, 3, 4, 4, 4, 4, 4, 4, 2, 2, 2, 2, 4, 4, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 3, 7, 3, 5, 3, 3, 5, 3, 3, 1, 3, 1, 3, 5, 3, 3, 3, 1, 1, 1, 1, 3, 1, 3, 3, 4, 4, 2, 4, 2, 2, 2, 2, 4, 4, 4, 2, 2, 2, 2, 2, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 7, 5, 7, 5, 3, 5, 5, 5, 1, 5, 5, 3, 3, 3, 1, 3, 3, 3, 7, 3, 7, 3, 1, 1, 3, 2, 2, 2, 2, 4, 2, 2, 4, 4, 2, 2, 2, 2, 6, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-7, 7, 7, 7, 7, 5, 7, 7, 3, 7, 5, 5, 5, 7, 5, 5, 5, 7, 5, 5, 3, 5, 5, 5, 5, 5, 3, 1, 3, 6, 6, 6, 6, 4, 2, 2, 4, 4, 6, 2, 4, 4, 4, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 7, 5, 7, 7, 5, 7, 7, 7, 3, 7, 5, 5, 5, 7, 5, 3, 3, 3, 5, 5, 3, 5, 5, 1, 5, 6, 6, 2, 6, 2, 2, 2, 2, 4, 4, 4, 2, 2, 4, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-7, 7, 5, 7, 7, 7, 7, 7, 5, 7, 7, 5, 5, 7, 5, 5, 5, 7, 5, 3, 3, 5, 3, 7, 3, 5, 5, 3, 1, 4, 6, 2, 2, 2, 2, 4, 2, 2, 4, 2, 2, 2, 6, 4, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 5, 3, 5, 7, 1, 3, 7, 5, 3, 1, 5, 3, 7, 5, 5, 5, 3, 1, 4, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 4, 4, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 7, 5, 7, 7, 7, 7, 7, 3, 5, 7, 7, 3, 5, 7, 5, 3, 5, 3, 5, 7, 3, 5, 3, 3, 3, 4, 2, 2, 2, 2, 2, 2, 4, 2, 4, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 8, 3, 5, 7, 7, 3, 5, 7, 5, 5, 3, 3, 3, 5, 5, 5, 3, 1, 3, 4, 2, 2, 2, 4, 2, 2, 4, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 7, 7, 7, 7, 3, 7, 8, 3, 5, 7, 5, 5, 3, 5, 7, 1, 5, 3, 3, 5, 3, 3, 3, 1, 1, 4, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 4, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 3, 5, 7, 5, 1, 3, 5, 5, 1, 1, 3, 3, 7, 3, 3, 3, 1, 1, 2, 2, 2, 4, 2, 2, 4, 2, 2, 2, 2, 2, 4, 4, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 5, 7, 7, 3, 3, 5, 3, 3, 3, 3, 3, 3, 5, 3, 5, 3, 1, 3, 3, 1, 1, 3, 3, 1, 4, 2, 4, 4, 4, 2, 4, 4, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 5, 7, 7, 7, 5, 7, 3, 7, 3, 3, 3, 5, 7, 1, 5, 1, 3, 5, 5, 5, 3, 3, 3, 1, 3, 2, 2, 2, 4, 2, 4, 2, 4, 4, 2, 4, 2, 2, 4, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-7, 7, 7, 7, 7, 8, 7, 7, 5, 8, 5, 7, 7, 7, 5, 3, 7, 5, 7, 3, 3, 3, 3, 7, 1, 5, 3, 1, 1, 2, 2, 2, 2, 2, 2, 4, 4, 4, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 7, 7, 7, 7, 5, 7, 5, 7, 3, 7, 3, 5, 7, 1, 7, 1, 1, 3, 3, 3, 1, 3, 3, 1, 1, 2, 2, 4, 2, 2, 2, 2, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 5, 7, 7, 7, 5, 8, 5, 7, 7, 7, 5, 3, 7, 1, 7, 1, 3, 3, 3, 3, 3, 3, 3, 1, 3, 2, 4, 4, 4, 2, 4, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 7, 7, 7, 7, 5, 7, 5, 7, 5, 3, 3, 1, 7, 3, 5, 1, 3, 1, 3, 1, 1, 1, 3, 3, 3, 2, 4, 2, 4, 2, 4, 2, 4, 4, 4, 2, 4, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 5, 7, 7, 7, 3, 7, 7, 7, 7, 5, 5, 5, 5, 3, 7, 1, 3, 1, 5, 3, 1, 3, 3, 3, 1, 4, 4, 4, 2, 2, 4, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-7, 8, 7, 7, 5, 7, 7, 7, 5, 7, 7, 7, 7, 3, 5, 3, 7, 5, 5, 3, 1, 3, 3, 1, 1, 3, 1, 3, 3, 2, 2, 4, 4, 2, 4, 2, 4, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 5, 7, 7, 7, 3, 7, 7, 7, 7, 7, 3, 5, 7, 3, 5, 3, 1, 1, 3, 3, 1, 5, 3, 1, 3, 2, 2, 4, 2, 2, 4, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 1, 3, 3, 5, 7, 3, 3, 3, 1, 3, 1, 3, 3, 5, 3, 1, 1, 3, 3, 3, 3, 1, 1, 1, 1, 3, 4, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 3, 3, 3, 3, 5, 3, 3, 3, 3, 3, 1, 1, 3, 5, 3, 1, 1, 1, 1, 3, 3, 3, 3, 1, 1, 3, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 3, 5, 3, 3, 7, 3, 3, 3, 3, 5, 1, 1, 1, 5, 5, 1, 1, 1, 3, 3, 1, 1, 1, 1, 1, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 3, 3, 5, 3, 3, 3, 3, 3, 1, 1, 1, 5, 3, 1, 1, 1, 5, 1, 1, 3, 1, 3, 3, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 3, 5, 3, 5, 5, 5, 3, 3, 3, 3, 3, 1, 1, 5, 3, 1, 1, 3, 3, 1, 3, 1, 1, 1, 1, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 5, 3, 7, 5, 3, 3, 3, 3, 3, 1, 3, 7, 3, 3, 1, 3, 1, 1, 3, 1, 1, 1, 3, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 7, 3, 3, 7, 3, 5, 3, 1, 3, 1, 1, 3, 5, 3, 1, 1, 3, 3, 1, 1, 1, 1, 3, 3, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 3, 5, 5, 3, 7, 3, 5, 3, 3, 3, 1, 1, 1, 5, 3, 1, 3, 3, 5, 3, 1, 3, 1, 1, 1, 1, 2, 4, 4, 2, 2, 2, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 3, 5, 5, 5, 5, 3, 1, 3, 1, 1, 1, 5, 3, 1, 1, 1, 3, 1, 1, 3, 1, 1, 1, 3, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 5, 5, 5, 3, 3, 3, 3, 3, 1, 3, 3, 5, 5, 1, 1, 3, 3, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 4, 2, 2, 4, 2, 2, 4, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 5, 5, 5, 3, 3, 5, 3, 3, 3, 3, 1, 5, 3, 3, 1, 3, 3, 1, 3, 1, 1, 1, 1, 3, 2, 2, 2, 4, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 3, 3, 7, 3, 3, 3, 1, 3, 1, 1, 1, 5, 3, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 3, 2, 2, 2, 2, 2, 2, 4, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 3, 3, 5, 3, 3, 3, 3, 3, 3, 1, 1, 5, 3, 1, 1, 1, 5, 1, 1, 1, 1, 3, 3, 1, 2, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 3, 3, 5, 3, 3, 3, 3, 1, 1, 1, 1, 7, 5, 1, 1, 3, 5, 1, 3, 3, 1, 3, 1, 3, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 4, 4, 2, 0, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 3, 5, 5, 3, 7, 5, 3, 3, 3, 3, 1, 3, 1, 5, 3, 1, 1, 3, 3, 1, 3, 3, 1, 1, 3, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 4, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 3, 5, 5, 5, 5, 3, 1, 3, 3, 1, 3, 5, 5, 1, 1, 1, 3, 1, 1, 1, 1, 3, 1, 1, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 3, 5, 3, 3, 7, 3, 5, 3, 1, 3, 1, 1, 3, 5, 3, 1, 3, 1, 3, 1, 1, 1, 1, 1, 1, 3, 4, 4, 2, 2, 4, 2, 4, 4, 2, 2, 2, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 3, 5, 3, 7, 5, 3, 5, 3, 1, 1, 1, 3, 1, 5, 1, 1, 3, 1, 3, 1, 1, 3, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 5, 5, 5, 3, 3, 3, 3, 1, 1, 3, 1, 5, 3, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 3, 5, 3, 5, 3, 3, 3, 3, 1, 1, 1, 1, 7, 3, 1, 3, 1, 3, 1, 1, 1, 1, 1, 3, 1, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 4, 2, 4, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 7, 3, 3, 7, 3, 5, 3, 1, 1, 1, 3, 1, 5, 3, 1, 1, 3, 3, 1, 3, 1, 1, 1, 3, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 0, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 5, 3, 5, 3, 3, 3, 1, 3, 1, 3, 1, 7, 5, 1, 1, 3, 3, 1, 1, 1, 3, 3, 3, 1, 2, 2, 2, 2, 2, 2, 4, 4, 4, 2, 2, 4, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 3, 3, 5, 3, 3, 3, 3, 3, 1, 1, 1, 5, 3, 1, 1, 3, 5, 1, 3, 1, 1, 3, 1, 3, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 4, 4, 4, 2, 2, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 3, 5, 3, 3, 5, 5, 3, 3, 1, 1, 1, 1, 3, 7, 3, 1, 1, 3, 3, 1, 3, 1, 1, 3, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 3, 5, 5, 3, 7, 5, 3, 3, 1, 3, 1, 1, 3, 7, 3, 1, 1, 3, 5, 3, 1, 1, 1, 3, 3, 1, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 3, 5, 5, 5, 7, 3, 5, 3, 3, 1, 1, 3, 3, 7, 3, 1, 1, 3, 3, 1, 1, 1, 1, 3, 3, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 0, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 3, 5, 3, 3, 5, 3, 5, 3, 3, 3, 1, 1, 3, 7, 3, 1, 3, 3, 3, 3, 1, 3, 1, 1, 1, 3, 4, 4, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 8, 3, 5, 3, 5, 7, 5, 5, 5, 1, 1, 1, 3, 1, 5, 3, 1, 3, 3, 3, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 3, 5, 7, 3, 3, 5, 5, 3, 1, 3, 1, 5, 3, 1, 1, 3, 1, 3, 1, 1, 1, 1, 1, 1, 4, 2, 2, 2, 4, 4, 2, 2, 2, 2, 2, 2, 2, 4, 4, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 3, 5, 3, 3, 5, 3, 3, 3, 3, 1, 1, 1, 3, 5, 3, 1, 1, 1, 3, 1, 1, 1, 1, 3, 3, 3, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 5, 3, 7, 5, 3, 3, 1, 3, 1, 3, 3, 5, 3, 1, 1, 5, 3, 3, 3, 1, 1, 3, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 3, 7, 3, 5, 3, 3, 3, 1, 3, 1, 1, 1, 5, 3, 1, 1, 1, 5, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 4, 2, 4, 2, 2, 2, 2, 2, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 5, 3, 5, 3, 3, 3, 1, 1, 1, 1, 1, 5, 5, 1, 1, 3, 3, 3, 3, 3, 3, 3, 3, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 5, 5, 5, 5, 3, 3, 3, 1, 1, 1, 3, 5, 5, 1, 1, 3, 3, 1, 3, 3, 1, 3, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 3, 3, 7, 3, 3, 3, 1, 3, 1, 1, 3, 7, 5, 1, 1, 3, 3, 1, 1, 1, 1, 1, 3, 1, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 5, 7, 5, 5, 5, 3, 7, 3, 5, 3, 1, 3, 1, 3, 5, 5, 3, 1, 1, 1, 3, 3, 1, 1, 1, 1, 3, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 3, 3, 5, 3, 5, 5, 3, 1, 1, 3, 1, 5, 3, 1, 1, 3, 3, 3, 1, 1, 3, 1, 1, 1, 2, 4, 4, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 5, 3, 7, 7, 5, 3, 3, 3, 1, 1, 3, 3, 5, 3, 1, 1, 1, 3, 1, 1, 3, 1, 1, 1, 1, 2, 2, 4, 2, 4, 4, 4, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 7, 5, 5, 7, 3, 3, 3, 3, 3, 1, 1, 1, 7, 3, 1, 1, 3, 3, 3, 3, 1, 1, 1, 3, 1, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 3, 5, 5, 3, 3, 5, 3, 1, 1, 3, 1, 5, 3, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 3, 5, 3, 3, 7, 3, 5, 5, 3, 3, 1, 1, 3, 5, 3, 1, 1, 3, 3, 1, 1, 3, 3, 3, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 5, 5, 5, 3, 3, 1, 3, 3, 1, 1, 1, 5, 3, 1, 1, 3, 3, 3, 1, 3, 1, 3, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 0, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 3, 3, 5, 3, 3, 3, 3, 3, 1, 1, 1, 7, 3, 1, 1, 1, 5, 3, 1, 1, 1, 5, 5, 0, 0, 0, 2, 2, 2, 2, 4, 2, 2, 2, 2, 4, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 5, 5, 5, 3, 3, 3, 3, 1, 1, 1, 1, 5, 3, 1, 1, 3, 3, 1, 1, 3, 3, 3, 5, 1, 2, 2, 2, 2, 2, 2, 4, 2, 4, 2, 4, 4, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 3, 3, 7, 5, 3, 3, 1, 1, 1, 1, 1, 5, 3, 1, 1, 3, 3, 1, 3, 3, 1, 3, 1, 3, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 3, 7, 3, 3, 5, 5, 3, 3, 1, 3, 1, 1, 3, 7, 5, 1, 1, 3, 3, 1, 1, 3, 1, 3, 3, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 4, 2, 2, 2, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 3, 3, 7, 3, 5, 3, 3, 3, 1, 3, 1, 7, 3, 1, 1, 1, 3, 3, 1, 3, 1, 3, 3, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 5, 3, 5, 3, 5, 3, 3, 3, 3, 1, 3, 5, 3, 3, 3, 1, 3, 1, 1, 1, 1, 3, 1, 3, 4, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 3, 5, 5, 5, 7, 3, 3, 3, 1, 1, 1, 1, 1, 5, 3, 1, 3, 3, 3, 1, 1, 1, 1, 3, 3, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 5, 5, 3, 3, 7, 3, 3, 3, 3, 1, 1, 1, 3, 5, 3, 1, 5, 3, 1, 1, 1, 1, 1, 3, 1, 3, 2, 2, 4, 2, 2, 2, 4, 2, 2, 4, 2, 4, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 5, 5, 3, 5, 3, 3, 3, 3, 1, 3, 1, 1, 5, 1, 1, 1, 1, 3, 1, 1, 1, 1, 3, 1, 1, 4, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 3, 5, 5, 3, 7, 5, 3, 3, 3, 3, 1, 1, 3, 5, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 2, 2, 2, 4, 4, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 5, 3, 3, 5, 3, 3, 3, 1, 3, 1, 1, 1, 7, 3, 1, 1, 3, 3, 3, 1, 1, 1, 3, 5, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 4, 2, 2, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 5, 3, 5, 3, 3, 3, 3, 3, 1, 1, 1, 5, 5, 1, 1, 1, 5, 1, 1, 1, 1, 3, 3, 3, 2, 2, 2, 2, 2, 2, 4, 2, 4, 2, 2, 4, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 5, 5, 5, 5, 3, 3, 3, 1, 1, 3, 1, 7, 3, 1, 3, 1, 3, 1, 1, 1, 1, 3, 1, 3, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 5, 3, 7, 3, 3, 3, 1, 3, 1, 1, 3, 5, 3, 1, 1, 3, 3, 3, 1, 1, 1, 3, 3, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 3, 5, 5, 3, 7, 3, 5, 3, 3, 3, 1, 3, 3, 7, 3, 1, 1, 1, 5, 1, 1, 1, 1, 5, 3, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 3, 3, 5, 3, 5, 3, 3, 1, 1, 1, 1, 5, 3, 1, 1, 1, 3, 1, 1, 1, 1, 1, 3, 3, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 3, 5, 5, 7, 7, 3, 5, 3, 1, 3, 1, 1, 3, 5, 3, 1, 1, 1, 1, 1, 3, 1, 1, 1, 3, 1, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 4, 2, 2, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 3, 5, 7, 5, 3, 3, 3, 3, 1, 1, 3, 5, 3, 1, 1, 3, 1, 3, 1, 1, 3, 3, 3, 1, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 3, 3, 5, 3, 3, 3, 3, 1, 1, 3, 1, 7, 1, 1, 1, 1, 3, 3, 1, 3, 3, 3, 1, 1, 2, 2, 2, 2, 2, 2, 4, 2, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 5, 3, 5, 5, 3, 3, 3, 3, 1, 1, 1, 5, 3, 1, 1, 3, 3, 1, 1, 1, 1, 3, 3, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 3, 3, 3, 3, 5, 1, 3, 3, 1, 1, 3, 5, 3, 1, 1, 3, 3, 3, 1, 1, 1, 1, 3, 1, 4, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 3, 1, 5, 3, 3, 5, 1, 1, 1, 1, 1, 7, 3, 1, 1, 1, 5, 1, 1, 1, 1, 3, 3, 1, 0, 2, 2, 0, 0, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 5, 3, 5, 3, 3, 3, 3, 3, 1, 1, 1, 5, 5, 1, 1, 3, 3, 1, 1, 3, 1, 3, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 4, 2, 2, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 3, 5, 5, 3, 5, 3, 3, 3, 1, 1, 1, 1, 3, 7, 3, 1, 1, 3, 3, 1, 3, 3, 1, 1, 3, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 3, 3, 7, 5, 3, 3, 3, 3, 3, 1, 3, 5, 3, 1, 1, 3, 3, 3, 3, 1, 1, 3, 3, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 5, 3, 7, 3, 5, 3, 3, 3, 5, 1, 3, 5, 3, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 6, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 3, 5, 5, 7, 5, 3, 3, 5, 1, 3, 1, 3, 1, 5, 3, 1, 3, 3, 1, 3, 1, 1, 1, 3, 3, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 4, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 3, 5, 7, 3, 3, 3, 3, 3, 1, 3, 3, 3, 3, 1, 3, 1, 3, 1, 1, 1, 3, 1, 1, 1, 4, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 4, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 5, 5, 7, 3, 3, 3, 3, 1, 1, 1, 1, 5, 3, 1, 1, 1, 3, 3, 1, 1, 1, 1, 1, 3, 2, 2, 2, 2, 2, 2, 4, 2, 2, 4, 2, 4, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 5, 3, 7, 3, 5, 3, 3, 3, 1, 1, 3, 5, 3, 3, 3, 3, 3, 1, 1, 1, 1, 1, 1, 3, 4, 4, 4, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 8, 5, 5, 5, 3, 5, 3, 3, 5, 1, 1, 1, 3, 3, 5, 3, 1, 1, 3, 3, 1, 1, 1, 1, 3, 1, 3, 2, 2, 2, 2, 2, 2, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 5, 5, 5, 7, 3, 3, 3, 3, 3, 1, 1, 1, 5, 5, 1, 1, 3, 5, 1, 1, 1, 1, 1, 1, 1, 0, 2, 2, 2, 2, 2, 4, 2, 4, 2, 2, 4, 4, 2, 2, 0, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 5, 5, 5, 5, 3, 3, 1, 3, 1, 1, 1, 7, 3, 1, 1, 3, 3, 1, 1, 3, 1, 3, 3, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 5, 3, 7, 3, 3, 3, 1, 1, 1, 1, 3, 5, 5, 1, 1, 3, 3, 1, 3, 3, 3, 3, 1, 1, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 5, 3, 7, 1, 5, 3, 3, 1, 1, 3, 3, 7, 3, 1, 1, 3, 3, 1, 3, 1, 1, 3, 3, 1, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 3, 3, 5, 5, 5, 3, 3, 3, 3, 1, 3, 5, 3, 1, 3, 1, 1, 1, 1, 1, 1, 3, 1, 3, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 3, 5, 5, 7, 5, 3, 5, 3, 1, 1, 1, 1, 1, 7, 3, 1, 3, 1, 3, 1, 1, 3, 1, 3, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 3, 3, 7, 3, 3, 3, 3, 3, 1, 3, 3, 7, 3, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 3, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 3, 5, 5, 5, 3, 3, 3, 3, 1, 1, 1, 1, 5, 3, 1, 1, 3, 3, 3, 3, 1, 1, 1, 1, 3, 2, 2, 2, 2, 4, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 3, 3, 7, 3, 3, 3, 3, 3, 3, 3, 3, 5, 3, 1, 3, 3, 1, 1, 1, 1, 1, 1, 3, 3, 2, 4, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 3, 3, 7, 3, 3, 3, 1, 3, 1, 1, 1, 7, 5, 1, 0, 3, 3, 1, 1, 1, 1, 3, 3, 1, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 5, 5, 5, 3, 3, 3, 3, 3, 1, 1, 1, 5, 3, 1, 1, 3, 3, 1, 3, 3, 1, 3, 1, 3, 2, 2, 2, 2, 2, 4, 4, 2, 2, 2, 4, 4, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 3, 5, 5, 5, 3, 3, 1, 1, 1, 1, 1, 7, 5, 1, 1, 3, 3, 1, 1, 3, 1, 1, 3, 1, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 3, 5, 3, 3, 7, 5, 3, 3, 3, 1, 1, 1, 5, 5, 5, 1, 1, 3, 3, 1, 1, 3, 1, 3, 3, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 5, 3, 7, 3, 5, 3, 3, 1, 1, 1, 3, 7, 3, 1, 1, 3, 3, 1, 1, 3, 1, 3, 3, 3, 2, 2, 2, 2, 2, 2, 4, 2, 4, 2, 2, 4, 2, 4, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 3, 5, 5, 3, 5, 3, 5, 3, 3, 3, 3, 1, 3, 5, 3, 1, 5, 3, 1, 3, 1, 1, 1, 1, 1, 1, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 3, 5, 3, 7, 7, 3, 3, 3, 3, 3, 1, 1, 1, 5, 1, 1, 3, 3, 3, 1, 1, 1, 1, 3, 1, 3, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 3, 3, 7, 3, 3, 3, 3, 1, 3, 3, 1, 5, 3, 1, 3, 1, 3, 3, 1, 1, 1, 1, 1, 3, 4, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 5, 5, 5, 3, 3, 3, 3, 1, 3, 1, 1, 5, 3, 1, 3, 1, 3, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 5, 1, 5, 3, 3, 3, 3, 3, 1, 1, 3, 5, 3, 1, 1, 1, 3, 1, 3, 1, 1, 1, 3, 1, 4, 4, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 3, 3, 5, 3, 7, 3, 3, 3, 3, 3, 1, 1, 0, 7, 5, 1, 1, 3, 5, 1, 1, 1, 1, 1, 3, 1, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 5, 3, 3, 5, 3, 5, 1, 3, 3, 1, 1, 3, 5, 3, 1, 1, 3, 5, 1, 3, 1, 1, 3, 3, 3, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 4, 4, 2, 2, 2, 2, 0, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 3, 5, 5, 3, 5, 5, 5, 3, 1, 1, 1, 1, 1, 7, 3, 1, 3, 3, 3, 1, 1, 1, 1, 1, 1, 3, 2, 2, 2, 2, 2, 2, 4, 2, 4, 2, 2, 4, 4, 2, 2, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 7, 5, 5, 7, 5, 3, 3, 3, 3, 1, 3, 3, 5, 3, 1, 1, 3, 3, 3, 3, 3, 1, 3, 3, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 4, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 5, 3, 7, 3, 5, 3, 3, 3, 1, 3, 3, 5, 3, 1, 1, 3, 3, 1, 1, 1, 1, 3, 3, 1, 2, 0, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 4, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 3, 5, 3, 3, 7, 3, 5, 3, 3, 3, 1, 1, 3, 7, 3, 1, 1, 3, 3, 3, 1, 1, 1, 3, 3, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 5, 5, 5, 3, 5, 3, 3, 3, 1, 3, 1, 5, 3, 1, 1, 1, 3, 1, 1, 1, 1, 3, 3, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 5, 5, 5, 7, 5, 5, 3, 1, 1, 1, 1, 1, 5, 5, 1, 1, 3, 3, 3, 1, 1, 3, 1, 1, 3, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 5, 5, 7, 3, 5, 3, 3, 1, 3, 3, 3, 5, 3, 1, 1, 1, 5, 1, 3, 1, 1, 1, 3, 3, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 5, 5, 7, 5, 3, 3, 3, 3, 1, 1, 3, 5, 3, 1, 1, 3, 3, 3, 3, 1, 1, 1, 3, 1, 4, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 3, 3, 7, 3, 3, 3, 3, 3, 3, 1, 1, 5, 1, 1, 1, 1, 3, 3, 1, 1, 3, 1, 1, 1, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 4, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 5, 5, 5, 3, 7, 1, 3, 5, 3, 3, 3, 1, 1, 5, 3, 1, 1, 3, 3, 3, 1, 1, 1, 3, 3, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 5, 5, 5, 5, 3, 3, 3, 3, 3, 1, 1, 1, 5, 3, 1, 3, 3, 3, 1, 1, 3, 1, 3, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 4, 4, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 3, 5, 5, 5, 5, 3, 3, 3, 1, 1, 1, 3, 1, 5, 3, 1, 3, 3, 3, 1, 3, 1, 1, 1, 3, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 4, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 3, 3, 7, 3, 3, 3, 3, 1, 1, 3, 1, 7, 5, 1, 1, 1, 3, 3, 1, 1, 1, 3, 3, 3, 2, 2, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 3, 3, 5, 3, 5, 3, 3, 1, 1, 1, 3, 7, 3, 1, 3, 1, 3, 1, 1, 1, 1, 3, 3, 3, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 3, 3, 5, 3, 7, 3, 5, 3, 5, 1, 1, 1, 3, 5, 3, 1, 5, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 4, 2, 4, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 3, 5, 5, 3, 7, 5, 5, 3, 1, 1, 1, 1, 3, 5, 3, 1, 5, 3, 3, 1, 1, 1, 1, 1, 3, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 3, 5, 5, 3, 5, 3, 5, 1, 1, 1, 1, 1, 3, 5, 3, 1, 3, 3, 3, 3, 1, 1, 1, 3, 1, 1, 4, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 7, 5, 5, 7, 3, 5, 3, 3, 1, 1, 3, 1, 5, 3, 1, 3, 1, 3, 1, 1, 3, 1, 1, 1, 1, 4, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 5, 5, 3, 7, 3, 3, 3, 3, 3, 1, 3, 1, 5, 3, 1, 3, 1, 3, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 5, 5, 5, 5, 3, 3, 3, 3, 1, 1, 1, 3, 5, 5, 1, 1, 3, 3, 1, 1, 1, 1, 3, 3, 1, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 4, 2, 2, 2, 2, 2, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 3, 5, 3, 3, 5, 3, 3, 3, 3, 1, 1, 3, 1, 5, 3, 1, 3, 3, 3, 1, 3, 3, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 4, 2, 4, 2, 2, 2, 4, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 5, 5, 3, 7, 5, 3, 3, 3, 1, 1, 1, 3, 5, 3, 1, 1, 3, 3, 1, 1, 3, 1, 3, 3, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 4, 4, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 5, 3, 7, 1, 5, 3, 3, 1, 1, 3, 3, 7, 3, 1, 1, 1, 3, 3, 1, 1, 1, 3, 3, 1, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 5, 3, 7, 3, 3, 3, 3, 3, 1, 1, 3, 7, 3, 1, 1, 3, 3, 1, 1, 3, 1, 3, 3, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 4, 4, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 3, 5, 5, 3, 3, 3, 1, 1, 1, 3, 3, 5, 3, 1, 1, 3, 3, 1, 1, 1, 3, 3, 3, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 7, 5, 5, 7, 5, 5, 3, 1, 1, 1, 1, 3, 5, 3, 1, 1, 3, 3, 3, 1, 1, 3, 3, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 3, 5, 5, 3, 5, 3, 3, 1, 1, 3, 3, 5, 3, 1, 1, 3, 3, 3, 3, 1, 1, 3, 3, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 3, 5, 5, 3, 7, 5, 5, 3, 1, 3, 1, 1, 3, 5, 5, 1, 1, 3, 3, 3, 1, 3, 1, 3, 3, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 3, 5, 3, 5, 5, 3, 3, 3, 3, 3, 1, 1, 3, 5, 1, 1, 1, 1, 3, 3, 1, 1, 1, 3, 3, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 8, 5, 5, 3, 3, 7, 3, 3, 3, 3, 3, 3, 1, 1, 7, 5, 1, 1, 3, 3, 3, 1, 3, 1, 3, 3, 3, 2, 2, 0, 2, 2, 2, 4, 4, 4, 2, 2, 4, 4, 2, 2, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 3, 7, 3, 5, 7, 3, 3, 3, 3, 1, 1, 3, 3, 7, 3, 1, 1, 3, 3, 1, 1, 1, 1, 3, 3, 1, 2, 2, 2, 2, 2, 2, 2, 2, 4, 4, 2, 4, 4, 4, 2, 2, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 3, 5, 5, 5, 5, 3, 3, 3, 3, 1, 1, 1, 3, 5, 5, 1, 3, 3, 3, 1, 1, 1, 1, 3, 1, 3, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 5, 5, 7, 5, 3, 3, 3, 3, 3, 1, 1, 7, 5, 1, 1, 3, 3, 3, 1, 3, 3, 3, 3, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 5, 3, 7, 3, 5, 3, 3, 3, 1, 3, 3, 5, 3, 1, 3, 1, 3, 1, 1, 1, 1, 1, 3, 1, 2, 2, 2, 2, 2, 2, 4, 2, 4, 4, 2, 4, 2, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 8, 5, 5, 3, 3, 5, 5, 3, 3, 3, 3, 3, 3, 3, 7, 3, 1, 3, 1, 3, 1, 1, 1, 1, 1, 3, 3, 4, 4, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 8, 5, 5, 3, 7, 7, 3, 5, 3, 3, 3, 1, 1, 3, 5, 3, 1, 1, 3, 5, 1, 1, 1, 1, 1, 3, 3, 2, 2, 4, 2, 2, 2, 2, 4, 2, 4, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 3, 5, 3, 5, 7, 3, 5, 3, 3, 1, 1, 3, 3, 5, 1, 1, 1, 1, 3, 3, 1, 1, 1, 3, 1, 1, 2, 2, 2, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 3, 5, 3, 3, 5, 3, 5, 3, 3, 1, 3, 1, 1, 5, 3, 1, 1, 3, 3, 1, 1, 1, 1, 3, 1, 1, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 3, 3, 7, 5, 3, 5, 3, 3, 1, 1, 3, 5, 3, 3, 3, 5, 3, 3, 1, 1, 1, 1, 3, 3, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 4, 2, 4, 4, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 3, 3, 5, 3, 3, 3, 3, 1, 1, 1, 1, 7, 5, 1, 1, 1, 3, 3, 1, 1, 1, 5, 5, 1, 2, 2, 0, 2, 2, 2, 4, 4, 4, 4, 2, 4, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 5, 5, 3, 5, 3, 5, 3, 3, 1, 1, 1, 1, 5, 5, 1, 1, 3, 3, 3, 3, 1, 1, 3, 3, 1, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 4, 4, 4, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 3, 5, 5, 3, 7, 3, 3, 3, 3, 3, 1, 3, 1, 5, 3, 1, 1, 3, 1, 1, 3, 3, 1, 3, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 4, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 3, 5, 5, 3, 5, 5, 3, 3, 3, 3, 1, 1, 3, 5, 5, 1, 1, 1, 3, 1, 3, 1, 3, 1, 3, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 4, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 3, 5, 5, 3, 7, 3, 3, 3, 3, 1, 3, 1, 1, 5, 1, 5, 5, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 3, 5, 3, 7, 5, 3, 5, 3, 1, 3, 1, 1, 1, 5, 3, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 5, 5, 7, 3, 3, 3, 3, 3, 1, 1, 1, 5, 1, 3, 3, 3, 3, 1, 1, 1, 1, 1, 1, 1, 2, 4, 2, 4, 2, 2, 4, 2, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 8, 5, 5, 5, 3, 5, 3, 3, 3, 3, 3, 1, 1, 1, 5, 3, 1, 3, 1, 1, 3, 3, 1, 1, 1, 1, 1, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 3, 5, 3, 3, 7, 3, 3, 5, 3, 3, 1, 3, 3, 5, 1, 1, 3, 3, 3, 1, 3, 1, 1, 1, 1, 3, 4, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 7, 5, 3, 5, 5, 3, 1, 3, 3, 3, 3, 3, 5, 1, 1, 3, 3, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 4, 2, 2, 2, 2, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 5, 5, 5, 7, 3, 3, 3, 3, 3, 1, 1, 1, 5, 3, 1, 1, 1, 3, 3, 1, 3, 3, 1, 3, 3, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 5, 3, 5, 3, 5, 3, 3, 3, 1, 1, 1, 5, 3, 1, 1, 3, 3, 3, 3, 1, 1, 3, 3, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 4, 2, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 3, 5, 3, 5, 5, 3, 3, 3, 3, 3, 3, 3, 1, 7, 3, 1, 1, 3, 3, 1, 3, 1, 1, 1, 3, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 0, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 3, 5, 5, 3, 7, 5, 5, 3, 1, 3, 1, 1, 3, 5, 5, 1, 1, 3, 3, 1, 3, 3, 1, 3, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 4, 4, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 3, 5, 3, 3, 7, 1, 5, 3, 3, 5, 5, 1, 3, 5, 1, 1, 3, 1, 1, 3, 1, 1, 1, 3, 1, 3, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 1, 5, 3, 3, 5, 3, 5, 3, 3, 3, 1, 1, 3, 7, 3, 1, 3, 3, 3, 3, 1, 1, 1, 3, 3, 1, 2, 2, 2, 4, 2, 2, 2, 2, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 5, 5, 7, 5, 5, 1, 1, 1, 1, 1, 1, 5, 3, 1, 3, 1, 3, 3, 1, 1, 1, 3, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 5, 5, 7, 3, 3, 3, 3, 1, 1, 3, 1, 5, 3, 1, 3, 3, 3, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 4, 2, 2, 4, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 3, 5, 3, 3, 5, 3, 3, 3, 3, 1, 1, 1, 3, 5, 3, 1, 3, 1, 3, 1, 1, 1, 1, 1, 1, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 5, 3, 3, 3, 3, 3, 3, 3, 1, 3, 1, 1, 7, 5, 1, 1, 1, 3, 1, 1, 1, 1, 3, 3, 1, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 3, 3, 7, 3, 5, 3, 3, 3, 1, 1, 3, 5, 5, 1, 1, 3, 5, 3, 3, 3, 1, 3, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 4, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 3, 5, 5, 5, 3, 3, 3, 3, 1, 1, 1, 1, 1, 7, 3, 1, 1, 3, 3, 1, 3, 1, 1, 3, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 4, 2, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 3, 3, 7, 5, 3, 1, 1, 1, 1, 1, 5, 5, 3, 1, 1, 3, 3, 1, 1, 1, 1, 3, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 3, 7, 5, 3, 7, 3, 3, 3, 3, 3, 1, 3, 1, 7, 3, 1, 1, 3, 3, 3, 1, 1, 1, 3, 3, 3, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 3, 5, 3, 7, 5, 5, 3, 3, 1, 1, 1, 1, 7, 3, 1, 1, 3, 3, 1, 1, 1, 3, 3, 1, 1, 2, 2, 2, 2, 4, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 3, 5, 3, 7, 5, 3, 5, 3, 3, 3, 1, 3, 1, 5, 3, 1, 1, 3, 3, 1, 1, 1, 1, 1, 3, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 3, 3, 5, 3, 3, 3, 3, 3, 1, 1, 3, 5, 3, 1, 1, 3, 3, 3, 1, 1, 1, 1, 3, 1, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 3, 5, 3, 3, 5, 3, 3, 3, 3, 1, 1, 1, 3, 5, 3, 1, 1, 3, 3, 3, 1, 1, 1, 1, 1, 1, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 5, 3, 7, 3, 3, 5, 3, 1, 1, 1, 3, 5, 3, 1, 1, 5, 3, 3, 3, 1, 3, 3, 3, 3, 4, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 3, 5, 5, 3, 5, 1, 5, 3, 3, 3, 1, 3, 1, 7, 3, 1, 1, 1, 5, 1, 1, 1, 1, 3, 3, 3, 2, 2, 2, 2, 2, 2, 2, 4, 4, 2, 4, 4, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 7, 5, 5, 3, 5, 3, 3, 3, 1, 1, 1, 7, 5, 1, 1, 3, 3, 1, 3, 1, 1, 3, 1, 1, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 4, 4, 2, 2, 2, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 5, 5, 5, 5, 5, 3, 1, 3, 1, 1, 1, 7, 3, 1, 1, 3, 3, 1, 3, 3, 1, 3, 3, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 3, 5, 7, 5, 3, 3, 3, 1, 1, 1, 1, 5, 5, 1, 1, 1, 3, 1, 3, 1, 1, 3, 1, 3, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 4, 4, 2, 2, 2, 0, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 3, 5, 5, 3, 7, 1, 5, 3, 3, 3, 3, 1, 3, 5, 3, 1, 3, 1, 1, 1, 1, 3, 1, 1, 1, 3, 4, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 3, 5, 5, 3, 7, 5, 5, 3, 3, 3, 1, 1, 3, 5, 1, 1, 1, 1, 5, 1, 1, 1, 1, 3, 1, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 3, 3, 7, 5, 3, 3, 1, 3, 1, 1, 1, 5, 3, 1, 3, 3, 3, 3, 1, 3, 1, 3, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 4, 4, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 3, 5, 5, 3, 5, 3, 3, 3, 1, 1, 3, 7, 3, 1, 3, 3, 3, 3, 1, 1, 1, 1, 1, 3, 2, 4, 2, 2, 2, 4, 2, 4, 2, 2, 2, 4, 2, 2, 2, 2, 2, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 8, 7, 5, 3, 3, 7, 3, 3, 5, 3, 3, 1, 1, 3, 5, 3, 1, 3, 3, 3, 3, 1, 1, 1, 1, 1, 1, 4, 2, 4, 2, 2, 2, 2, 2, 4, 4, 2, 2, 4, 2, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 8, 5, 5, 3, 3, 7, 3, 5, 5, 3, 1, 1, 1, 3, 5, 3, 1, 3, 1, 3, 1, 3, 1, 1, 3, 3, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 5, 5, 5, 3, 3, 3, 3, 3, 1, 3, 1, 7, 3, 1, 1, 3, 3, 1, 3, 1, 1, 1, 1, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 3, 5, 3, 3, 5, 3, 5, 3, 1, 1, 1, 1, 3, 7, 5, 1, 1, 3, 3, 1, 1, 3, 1, 3, 3, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 3, 5, 3, 5, 5, 3, 3, 3, 3, 1, 1, 1, 1, 7, 5, 1, 1, 1, 3, 1, 3, 3, 1, 1, 3, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 3, 3, 7, 3, 5, 1, 1, 1, 1, 1, 3, 7, 3, 1, 1, 3, 3, 1, 1, 3, 1, 3, 3, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 4, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 5, 5, 7, 3, 5, 3, 3, 5, 1, 1, 3, 7, 3, 1, 1, 3, 3, 1, 1, 1, 1, 1, 3, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 3, 3, 5, 5, 3, 3, 3, 3, 1, 1, 3, 7, 3, 1, 1, 1, 3, 1, 1, 3, 1, 3, 3, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 4, 2, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 3, 5, 5, 5, 5, 3, 1, 1, 1, 1, 1, 5, 3, 1, 1, 1, 3, 1, 3, 3, 1, 3, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 3, 5, 7, 5, 5, 3, 3, 1, 1, 3, 1, 5, 3, 1, 1, 3, 1, 3, 1, 1, 1, 1, 3, 3, 2, 4, 2, 2, 2, 2, 4, 4, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 3, 5, 3, 5, 5, 3, 3, 3, 3, 1, 1, 1, 3, 5, 3, 1, 3, 3, 1, 1, 1, 3, 1, 1, 1, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 0, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 5, 3, 7, 3, 5, 3, 1, 3, 1, 1, 3, 5, 3, 1, 1, 3, 3, 3, 1, 1, 1, 3, 3, 1, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 5, 3, 5, 5, 3, 3, 1, 1, 1, 3, 1, 7, 3, 1, 1, 3, 5, 1, 1, 1, 1, 5, 5, 1, 2, 2, 2, 2, 2, 2, 4, 2, 2, 4, 2, 4, 4, 2, 2, 0, 0, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 5, 3, 5, 3, 3, 3, 3, 1, 1, 1, 1, 5, 5, 1, 1, 3, 5, 3, 3, 1, 1, 3, 3, 1, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 4, 4, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 3, 5, 5, 3, 5, 3, 3, 3, 3, 1, 1, 3, 1, 5, 3, 1, 1, 3, 3, 1, 1, 3, 1, 1, 3, 1, 2, 2, 2, 2, 2, 2, 4, 4, 2, 2, 2, 4, 4, 4, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 7, 5, 5, 7, 5, 3, 3, 1, 3, 1, 1, 3, 5, 5, 1, 1, 3, 3, 1, 3, 1, 1, 3, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 3, 3, 5, 3, 5, 3, 1, 3, 1, 3, 1, 7, 5, 1, 1, 3, 3, 1, 3, 1, 1, 3, 1, 3, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 4, 2, 4, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 3, 5, 7, 3, 7, 3, 7, 1, 3, 3, 3, 3, 1, 5, 3, 5, 3, 1, 3, 3, 1, 1, 1, 1, 1, 3, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 8, 5, 5, 3, 7, 7, 3, 5, 3, 3, 1, 1, 1, 1, 5, 1, 1, 3, 1, 3, 1, 1, 1, 1, 1, 3, 1, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 3, 7, 5, 5, 7, 3, 3, 3, 1, 3, 3, 3, 1, 5, 3, 1, 3, 3, 5, 3, 1, 1, 3, 1, 1, 1, 2, 4, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 5, 3, 5, 3, 5, 3, 3, 1, 1, 1, 3, 5, 3, 3, 3, 1, 1, 3, 1, 3, 1, 1, 1, 3, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 7, 5, 3, 7, 3, 3, 3, 5, 3, 1, 1, 3, 5, 1, 1, 3, 3, 3, 1, 1, 1, 1, 3, 1, 1, 2, 2, 4, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 7, 5, 3, 5, 3, 5, 3, 1, 3, 1, 1, 3, 5, 1, 1, 3, 1, 1, 3, 1, 1, 1, 1, 1, 3, 4, 4, 4, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 5, 3, 3, 5, 3, 3, 5, 1, 3, 1, 1, 1, 5, 5, 1, 1, 1, 3, 3, 3, 1, 1, 1, 3, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 3, 3, 3, 5, 5, 5, 3, 3, 3, 1, 1, 3, 1, 5, 3, 1, 1, 3, 3, 1, 3, 1, 1, 1, 3, 1, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 4, 4, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 5, 3, 7, 5, 3, 3, 3, 1, 1, 1, 1, 7, 3, 1, 1, 3, 3, 1, 1, 3, 1, 1, 3, 1, 2, 2, 2, 2, 2, 2, 4, 2, 4, 4, 2, 4, 4, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 3, 3, 5, 3, 5, 5, 3, 3, 3, 3, 1, 3, 3, 7, 5, 1, 1, 1, 5, 1, 3, 1, 1, 3, 3, 1, 4, 2, 2, 2, 2, 2, 2, 2, 2, 4, 4, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 5, 5, 7, 3, 5, 5, 1, 3, 1, 3, 1, 7, 3, 1, 1, 1, 1, 3, 3, 1, 1, 3, 3, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 3, 7, 3, 3, 7, 3, 5, 1, 3, 3, 3, 1, 1, 5, 1, 1, 3, 1, 3, 3, 1, 1, 1, 1, 1, 1, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 8, 3, 5, 3, 5, 7, 3, 5, 3, 1, 1, 1, 1, 1, 5, 3, 1, 1, 1, 3, 3, 1, 1, 1, 1, 1, 3, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 3, 3, 7, 3, 3, 3, 3, 3, 1, 3, 3, 5, 1, 3, 3, 1, 3, 1, 1, 1, 1, 1, 1, 3, 2, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 3, 5, 5, 3, 3, 3, 3, 1, 1, 1, 1, 5, 1, 3, 3, 3, 3, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 3, 5, 5, 3, 7, 3, 3, 3, 3, 1, 1, 1, 3, 5, 3, 1, 5, 1, 1, 1, 1, 1, 1, 3, 1, 1, 2, 2, 2, 2, 4, 2, 2, 2, 4, 2, 2, 2, 4, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 3, 3, 5, 3, 5, 3, 1, 1, 1, 1, 3, 5, 3, 1, 3, 1, 3, 1, 1, 1, 1, 1, 1, 1, 2, 4, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 5, 3, 5, 5, 3, 5, 3, 3, 1, 1, 1, 5, 3, 1, 1, 1, 5, 1, 1, 1, 1, 3, 3, 1, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 3, 3, 5, 5, 3, 3, 1, 3, 1, 1, 1, 5, 7, 1, 1, 3, 5, 1, 3, 1, 1, 1, 3, 1, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 4, 4, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 5, 5, 5, 5, 3, 3, 3, 3, 1, 1, 1, 5, 3, 1, 1, 3, 3, 3, 3, 3, 3, 3, 3, 1, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 3, 5, 3, 3, 7, 5, 3, 3, 1, 1, 1, 1, 3, 7, 3, 1, 1, 3, 5, 3, 3, 1, 1, 3, 3, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 3, 5, 5, 3, 7, 3, 5, 3, 1, 3, 1, 3, 3, 7, 3, 1, 1, 1, 3, 3, 1, 1, 3, 3, 3, 3, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 3, 5, 5, 3, 7, 5, 5, 3, 1, 3, 5, 1, 3, 5, 3, 1, 1, 1, 3, 1, 3, 3, 1, 1, 1, 1, 4, 4, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 3, 5, 3, 5, 7, 3, 3, 3, 1, 3, 1, 1, 3, 5, 3, 1, 1, 3, 3, 1, 1, 3, 1, 1, 3, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 3, 5, 3, 3, 7, 3, 3, 3, 1, 3, 1, 1, 1, 5, 3, 1, 1, 1, 3, 3, 1, 1, 1, 1, 1, 1, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 5, 3, 5, 3, 3, 3, 3, 1, 1, 1, 3, 5, 3, 1, 1, 3, 3, 3, 3, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 3, 5, 7, 3, 7, 5, 3, 3, 1, 1, 1, 1, 3, 5, 1, 1, 3, 1, 3, 3, 1, 3, 1, 1, 1, 3, 4, 4, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 7, 5, 1, 5, 5, 1, 3, 3, 3, 1, 1, 1, 5, 1, 1, 3, 1, 3, 1, 1, 1, 1, 3, 1, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 5, 3, 5, 3, 5, 3, 1, 3, 1, 3, 3, 7, 5, 0, 3, 1, 5, 1, 1, 1, 1, 3, 3, 1, 2, 2, 0, 2, 2, 2, 4, 2, 6, 4, 4, 4, 4, 2, 2, 2, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 5, 3, 5, 3, 3, 3, 3, 3, 1, 3, 1, 5, 5, 1, 1, 3, 3, 1, 3, 3, 1, 3, 3, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 4, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 3, 5, 5, 5, 7, 3, 5, 1, 1, 1, 1, 1, 1, 5, 3, 1, 1, 3, 1, 1, 1, 3, 3, 3, 3, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 7, 3, 5, 5, 5, 5, 3, 1, 1, 1, 3, 1, 7, 3, 1, 3, 1, 3, 1, 1, 1, 1, 1, 3, 1, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 4, 4, 2, 2, 2, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 7, 5, 5, 7, 3, 5, 3, 1, 1, 1, 3, 5, 5, 1, 1, 1, 3, 3, 1, 1, 1, 1, 3, 3, 1, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 4, 4, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 3, 5, 3, 3, 7, 3, 3, 3, 3, 3, 1, 3, 3, 7, 5, 1, 1, 3, 3, 1, 1, 1, 1, 3, 3, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 4, 2, 2, 4, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 7, 5, 3, 5, 3, 5, 3, 1, 3, 1, 1, 5, 5, 1, 1, 1, 1, 3, 3, 1, 3, 3, 1, 3, 1, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 5, 3, 5, 7, 5, 5, 3, 1, 3, 1, 1, 3, 5, 3, 1, 1, 3, 3, 3, 1, 1, 3, 3, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 3, 3, 7, 3, 3, 3, 1, 1, 1, 3, 1, 5, 3, 1, 1, 3, 3, 3, 3, 3, 1, 1, 1, 3, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 5, 7, 3, 5, 3, 3, 7, 5, 3, 3, 3, 3, 1, 1, 1, 5, 3, 1, 3, 1, 3, 1, 1, 1, 1, 1, 1, 3, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 3, 3, 7, 3, 3, 3, 1, 3, 1, 1, 3, 5, 1, 1, 1, 3, 3, 3, 3, 3, 1, 1, 3, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 3, 3, 3, 3, 5, 3, 3, 3, 1, 1, 1, 5, 3, 1, 1, 1, 1, 1, 1, 1, 1, 3, 3, 0, 0, 2, 2, 0, 2, 2, 2, 2, 4, 2, 2, 2, 4, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 3, 5, 3, 3, 5, 5, 1, 3, 3, 1, 1, 1, 1, 5, 3, 1, 3, 3, 3, 1, 1, 1, 1, 1, 3, 1, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 4, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 3, 3, 3, 5, 3, 5, 3, 1, 1, 1, 1, 1, 5, 3, 1, 1, 3, 1, 3, 1, 3, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 4, 4, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 3, 7, 5, 3, 7, 3, 5, 3, 1, 1, 1, 1, 3, 7, 3, 1, 1, 3, 3, 3, 3, 1, 1, 3, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 4, 4, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 3, 3, 3, 7, 5, 5, 3, 1, 1, 1, 1, 1, 7, 5, 1, 1, 3, 3, 3, 1, 3, 1, 3, 3, 1, 2, 2, 2, 2, 2, 2, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 7, 5, 5, 7, 5, 5, 3, 3, 3, 1, 1, 3, 5, 1, 1, 5, 1, 1, 1, 1, 1, 1, 3, 3, 1, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 4, 2, 2, 2, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 8, 3, 5, 5, 3, 5, 5, 3, 3, 1, 3, 1, 1, 1, 5, 1, 1, 3, 3, 3, 1, 3, 1, 1, 3, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 3, 7, 3, 3, 7, 3, 5, 3, 1, 3, 1, 3, 3, 7, 1, 1, 5, 1, 3, 1, 1, 3, 1, 3, 1, 3, 4, 4, 4, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 5, 3, 5, 3, 3, 3, 1, 1, 1, 1, 1, 5, 3, 3, 3, 1, 1, 1, 1, 1, 1, 1, 1, 3, 4, 4, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 8, 5, 5, 5, 3, 5, 5, 3, 3, 1, 3, 1, 1, 3, 5, 1, 1, 3, 1, 3, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 4, 2, 4, 2, 2, 2, 4, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 5, 3, 7, 3, 3, 5, 3, 3, 1, 1, 3, 7, 5, 1, 1, 1, 3, 1, 1, 1, 1, 3, 3, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 3, 5, 5, 3, 5, 3, 5, 3, 1, 1, 1, 1, 1, 5, 3, 1, 3, 3, 3, 1, 3, 1, 1, 1, 3, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 3, 3, 5, 3, 3, 1, 1, 1, 1, 1, 1, 5, 3, 1, 1, 3, 3, 1, 1, 3, 1, 3, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 3, 3, 5, 3, 3, 3, 1, 1, 1, 3, 3, 7, 5, 1, 1, 3, 3, 1, 1, 1, 1, 3, 3, 1, 2, 2, 2, 2, 2, 2, 4, 4, 4, 2, 2, 2, 2, 4, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 7, 5, 3, 5, 5, 1, 3, 3, 5, 1, 3, 3, 5, 5, 5, 3, 1, 3, 1, 1, 1, 1, 3, 3, 3, 2, 2, 2, 4, 2, 2, 2, 2, 4, 4, 4, 2, 2, 2, 2, 2, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 8, 5, 5, 5, 5, 7, 5, 3, 3, 5, 3, 3, 1, 5, 5, 3, 1, 3, 5, 1, 1, 1, 1, 1, 3, 3, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 8, 5, 5, 5, 3, 7, 5, 3, 3, 3, 5, 1, 1, 1, 5, 3, 1, 3, 3, 1, 1, 1, 3, 1, 1, 3, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 5, 3, 7, 5, 3, 3, 3, 5, 1, 1, 3, 5, 5, 1, 3, 3, 3, 1, 1, 3, 1, 1, 1, 3, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 8, 5, 5, 5, 3, 5, 5, 3, 3, 3, 3, 3, 1, 3, 5, 5, 3, 3, 5, 1, 1, 1, 1, 1, 1, 3, 3, 2, 4, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 5, 5, 7, 5, 3, 3, 3, 5, 1, 1, 3, 5, 5, 3, 3, 3, 3, 1, 1, 1, 1, 1, 3, 3, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 4, 2, 2, 4, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 8, 5, 3, 5, 3, 5, 3, 1, 3, 5, 5, 1, 1, 3, 7, 5, 1, 1, 3, 3, 1, 1, 1, 1, 1, 3, 1, 2, 2, 2, 2, 2, 2, 4, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 8, 3, 5, 5, 3, 5, 5, 3, 3, 3, 3, 1, 1, 1, 5, 5, 1, 1, 3, 3, 1, 1, 1, 1, 1, 3, 1, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 4, 4, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 7, 5, 3, 5, 5, 3, 1, 1, 3, 1, 1, 1, 5, 3, 1, 1, 3, 3, 1, 3, 1, 1, 3, 3, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 4, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 5, 3, 7, 3, 3, 3, 1, 3, 1, 1, 1, 7, 5, 1, 3, 3, 3, 3, 1, 1, 1, 3, 1, 1, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 8, 5, 5, 7, 3, 7, 5, 5, 3, 1, 5, 1, 1, 3, 5, 3, 1, 3, 1, 3, 3, 1, 1, 1, 1, 1, 1, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 5, 3, 7, 3, 3, 3, 3, 3, 1, 1, 5, 5, 1, 1, 3, 1, 3, 1, 1, 1, 1, 1, 3, 3, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 5, 5, 7, 5, 5, 3, 1, 3, 1, 1, 1, 5, 1, 3, 3, 1, 1, 1, 1, 1, 1, 1, 1, 3, 2, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 5, 5, 5, 3, 3, 3, 3, 3, 1, 1, 1, 7, 3, 3, 3, 1, 3, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 4, 4, 2, 4, 2, 2, 4, 2, 2, 4, 2, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 3, 7, 5, 3, 7, 3, 3, 3, 3, 3, 1, 1, 1, 5, 1, 1, 5, 1, 3, 1, 1, 1, 1, 3, 1, 3, 4, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 4, 4, 2, 2, 2, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 3, 5, 5, 3, 7, 3, 5, 3, 1, 3, 1, 3, 1, 5, 1, 1, 3, 1, 1, 1, 1, 1, 3, 1, 3, 1, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 5, 3, 7, 3, 3, 3, 3, 3, 1, 1, 1, 7, 3, 1, 1, 1, 3, 3, 1, 1, 1, 3, 5, 1, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 4, 4, 2, 2, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 3, 3, 5, 5, 3, 3, 3, 1, 3, 1, 1, 1, 5, 3, 1, 1, 3, 3, 1, 1, 1, 1, 1, 3, 1, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 3, 3, 7, 3, 3, 3, 3, 1, 1, 3, 1, 7, 3, 1, 1, 3, 3, 3, 3, 1, 1, 1, 3, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 3, 3, 5, 3, 3, 3, 3, 3, 1, 1, 3, 7, 3, 1, 1, 3, 3, 1, 1, 3, 1, 3, 1, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 5, 5, 7, 3, 5, 3, 3, 3, 3, 1, 3, 5, 3, 1, 1, 1, 3, 1, 1, 3, 1, 1, 1, 1, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 3, 3, 7, 5, 3, 3, 1, 1, 1, 1, 5, 7, 3, 1, 1, 1, 3, 1, 3, 1, 1, 3, 3, 1, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 3, 5, 3, 5, 7, 3, 5, 3, 1, 1, 1, 3, 1, 5, 1, 1, 3, 3, 5, 1, 1, 1, 1, 3, 3, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 3, 5, 5, 5, 7, 5, 3, 3, 3, 1, 1, 3, 1, 5, 3, 1, 3, 3, 3, 1, 1, 1, 1, 1, 1, 1, 2, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 4, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 3, 3, 5, 3, 3, 3, 5, 3, 1, 1, 3, 5, 3, 1, 3, 3, 1, 1, 1, 1, 1, 3, 1, 3, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 3, 5, 3, 3, 7, 5, 3, 5, 1, 1, 1, 1, 3, 5, 1, 1, 3, 3, 3, 1, 1, 3, 1, 1, 3, 3, 2, 2, 2, 2, 2, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 5, 3, 3, 5, 3, 5, 3, 3, 3, 1, 1, 3, 7, 3, 0, 0, 1, 3, 1, 1, 1, 0, 1, 1, 1, 2, 2, 0, 2, 2, 2, 2, 2, 4, 2, 2, 4, 4, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 3, 5, 5, 3, 5, 3, 3, 3, 3, 3, 1, 3, 1, 5, 3, 1, 1, 3, 3, 1, 3, 1, 1, 3, 1, 1, 2, 2, 0, 2, 2, 2, 2, 2, 2, 4, 4, 4, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 3, 5, 5, 3, 5, 3, 5, 1, 3, 1, 1, 3, 1, 5, 3, 1, 1, 3, 5, 1, 3, 1, 1, 1, 3, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 4, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 3, 7, 3, 3, 7, 3, 3, 3, 1, 3, 1, 3, 3, 5, 3, 1, 1, 3, 5, 1, 1, 1, 1, 3, 3, 1, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 4, 4, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 8, 5, 5, 3, 5, 7, 3, 5, 3, 3, 3, 3, 3, 1, 5, 3, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 1, 3, 3, 5, 7, 3, 5, 3, 3, 1, 1, 1, 3, 5, 3, 1, 1, 3, 3, 3, 1, 1, 1, 1, 3, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 3, 3, 5, 7, 5, 5, 3, 1, 1, 1, 1, 3, 5, 1, 1, 3, 3, 3, 1, 1, 1, 1, 3, 3, 3, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 3, 5, 5, 3, 7, 5, 3, 3, 3, 3, 1, 3, 1, 5, 3, 3, 3, 3, 1, 3, 1, 1, 1, 1, 1, 1, 4, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 5, 3, 5, 3, 3, 3, 3, 1, 1, 1, 1, 5, 3, 1, 3, 3, 1, 3, 1, 1, 1, 1, 1, 1, 4, 2, 2, 2, 4, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 3, 5, 5, 3, 7, 3, 3, 3, 1, 3, 1, 1, 3, 5, 1, 1, 3, 3, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 4, 4, 2, 4, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 3, 5, 5, 3, 5, 3, 1, 3, 3, 1, 3, 1, 3, 5, 5, 1, 1, 1, 3, 1, 1, 1, 1, 3, 3, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 4, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 3, 5, 5, 5, 3, 3, 1, 1, 1, 3, 1, 5, 5, 1, 1, 5, 3, 1, 1, 1, 1, 1, 3, 1, 0, 2, 2, 2, 2, 2, 4, 4, 4, 2, 4, 4, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 3, 5, 7, 3, 7, 5, 3, 3, 3, 1, 1, 1, 1, 5, 3, 1, 1, 3, 3, 1, 1, 3, 3, 3, 3, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 4, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 3, 5, 5, 5, 5, 3, 1, 1, 1, 1, 3, 7, 3, 1, 1, 3, 3, 3, 1, 1, 1, 1, 3, 1, 2, 2, 2, 2, 2, 2, 4, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 3, 5, 5, 3, 7, 3, 5, 3, 1, 3, 1, 3, 5, 5, 3, 1, 1, 3, 1, 1, 1, 1, 3, 1, 3, 1, 2, 2, 2, 2, 2, 2, 2, 2, 4, 4, 4, 2, 2, 4, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 3, 5, 5, 3, 7, 3, 3, 3, 3, 1, 1, 1, 3, 7, 5, 1, 1, 1, 3, 1, 1, 1, 3, 3, 3, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 5, 5, 7, 3, 3, 3, 1, 3, 1, 1, 5, 5, 1, 1, 1, 3, 3, 1, 1, 3, 3, 3, 5, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 5, 5, 7, 5, 5, 3, 1, 1, 1, 3, 1, 5, 3, 1, 1, 3, 3, 1, 1, 3, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 3, 5, 5, 5, 7, 3, 5, 3, 3, 1, 1, 3, 3, 5, 3, 1, 1, 3, 3, 3, 3, 1, 1, 1, 5, 1, 4, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 3, 5, 3, 3, 7, 3, 5, 3, 3, 3, 1, 1, 3, 5, 3, 1, 1, 3, 3, 1, 1, 1, 1, 3, 3, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 3, 5, 3, 3, 5, 5, 3, 3, 3, 3, 1, 1, 1, 7, 3, 1, 1, 1, 3, 1, 1, 3, 1, 3, 3, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 5, 3, 5, 3, 3, 3, 3, 1, 1, 3, 1, 5, 3, 1, 1, 3, 3, 1, 1, 1, 1, 3, 3, 1, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 4, 4, 4, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 3, 5, 5, 3, 7, 5, 3, 1, 1, 1, 1, 1, 1, 5, 3, 3, 1, 3, 3, 3, 3, 1, 3, 3, 3, 3, 2, 2, 2, 2, 2, 2, 4, 2, 2, 4, 2, 4, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 7, 3, 3, 7, 3, 3, 3, 3, 3, 1, 1, 3, 7, 3, 1, 1, 3, 5, 3, 3, 1, 1, 3, 3, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 5, 5, 5, 5, 5, 3, 5, 3, 3, 3, 1, 3, 1, 5, 3, 1, 3, 3, 3, 1, 1, 1, 1, 3, 3, 1, 2, 0, 2, 2, 2, 2, 4, 2, 2, 2, 2, 4, 4, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 3, 5, 5, 3, 7, 3, 5, 3, 3, 3, 5, 1, 3, 7, 3, 1, 5, 1, 1, 1, 1, 1, 1, 1, 1, 1, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 3, 5, 5, 5, 7, 3, 5, 3, 1, 1, 1, 3, 1, 5, 1, 1, 3, 3, 3, 1, 1, 1, 1, 3, 3, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 7, 3, 3, 7, 3, 5, 5, 1, 1, 1, 3, 1, 5, 1, 3, 3, 1, 1, 1, 1, 1, 1, 3, 3, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 5, 5, 5, 3, 3, 5, 3, 3, 1, 1, 1, 5, 3, 1, 5, 1, 1, 1, 1, 1, 1, 1, 3, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 3, 3, 7, 3, 5, 3, 3, 1, 1, 1, 3, 5, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 3, 5, 7, 3, 5, 3, 3, 3, 3, 1, 1, 3, 1, 7, 5, 3, 5, 1, 3, 1, 3, 1, 1, 1, 1, 3, 2, 2, 2, 0, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 3, 5, 5, 5, 5, 3, 3, 3, 3, 3, 1, 1, 3, 5, 5, 1, 3, 3, 3, 1, 3, 1, 1, 1, 3, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 3, 5, 5, 3, 5, 5, 3, 3, 3, 3, 1, 3, 1, 5, 3, 1, 1, 3, 3, 1, 1, 3, 1, 1, 3, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 5, 3, 5, 5, 3, 3, 3, 1, 1, 1, 3, 5, 3, 1, 1, 3, 3, 1, 3, 1, 1, 1, 3, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 3, 5, 5, 5, 7, 3, 5, 3, 1, 3, 1, 3, 3, 7, 3, 1, 1, 3, 3, 1, 1, 1, 1, 1, 3, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 4, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 7, 7, 3, 5, 5, 1, 3, 3, 5, 1, 3, 3, 1, 3, 1, 1, 1, 3, 3, 3, 3, 1, 5, 1, 1, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 8, 5, 3, 5, 3, 5, 5, 1, 3, 3, 5, 3, 1, 3, 3, 5, 1, 3, 3, 1, 1, 1, 3, 1, 3, 3, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 8, 5, 5, 7, 3, 7, 3, 3, 3, 3, 3, 1, 1, 3, 1, 3, 1, 3, 3, 5, 1, 1, 1, 1, 3, 1, 1, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 8, 3, 5, 7, 5, 7, 5, 3, 5, 3, 3, 1, 3, 3, 3, 5, 1, 3, 3, 3, 1, 1, 1, 1, 1, 3, 1, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 8, 5, 5, 7, 3, 7, 5, 3, 3, 3, 5, 1, 1, 3, 3, 5, 1, 3, 3, 1, 1, 1, 1, 3, 3, 1, 1, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 5, 3, 7, 5, 5, 5, 5, 3, 1, 1, 3, 3, 7, 1, 3, 3, 1, 1, 1, 1, 1, 1, 1, 3, 4, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 4, 2, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 5, 3, 7, 3, 1, 3, 3, 5, 1, 3, 3, 5, 3, 1, 3, 5, 3, 1, 1, 1, 3, 3, 3, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 5, 3, 5, 5, 3, 3, 1, 3, 1, 3, 1, 5, 3, 1, 1, 3, 3, 1, 1, 3, 1, 3, 3, 1, 2, 2, 2, 2, 2, 2, 4, 4, 2, 2, 2, 2, 4, 2, 2, 2, 0, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 5, 3, 7, 5, 3, 3, 3, 3, 1, 1, 1, 5, 5, 1, 1, 5, 3, 1, 1, 1, 1, 1, 3, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 4, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 5, 3, 5, 3, 3, 3, 3, 3, 1, 3, 3, 7, 3, 1, 3, 3, 3, 1, 3, 1, 1, 3, 3, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 3, 5, 5, 5, 7, 5, 5, 3, 3, 1, 1, 3, 5, 7, 3, 1, 1, 3, 3, 3, 1, 1, 3, 1, 3, 3, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 8, 3, 5, 5, 5, 7, 3, 5, 3, 5, 3, 3, 1, 5, 7, 3, 1, 5, 1, 3, 1, 1, 3, 1, 1, 1, 1, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 5, 5, 7, 3, 5, 3, 3, 3, 1, 3, 1, 5, 3, 1, 5, 1, 3, 1, 1, 3, 3, 1, 3, 1, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 4, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 3, 5, 5, 1, 7, 5, 3, 3, 3, 1, 1, 3, 3, 3, 3, 1, 5, 1, 1, 1, 1, 1, 1, 1, 1, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 4, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 3, 5, 5, 3, 5, 3, 3, 3, 3, 3, 3, 1, 1, 5, 3, 3, 3, 1, 1, 1, 1, 1, 1, 1, 3, 1, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 3, 3, 5, 3, 3, 3, 1, 3, 3, 1, 3, 5, 3, 1, 5, 1, 3, 1, 1, 3, 1, 1, 1, 3, 4, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 5, 3, 5, 3, 3, 3, 1, 1, 1, 1, 1, 7, 5, 1, 1, 3, 5, 1, 1, 1, 1, 3, 3, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 5, 5, 3, 5, 5, 5, 3, 1, 1, 1, 1, 1, 5, 5, 1, 1, 3, 3, 1, 3, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 5, 3, 7, 3, 3, 3, 3, 1, 1, 3, 1, 7, 5, 1, 1, 3, 3, 3, 3, 3, 1, 3, 3, 1, 2, 2, 2, 2, 2, 2, 4, 2, 4, 2, 2, 2, 4, 4, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 3, 5, 3, 5, 5, 3, 3, 3, 1, 3, 1, 1, 3, 7, 3, 1, 1, 1, 3, 1, 3, 1, 1, 3, 3, 1, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 3, 3, 7, 5, 3, 5, 3, 3, 1, 3, 3, 5, 3, 1, 1, 1, 3, 3, 1, 1, 1, 3, 3, 1, 2, 2, 2, 2, 2, 2, 2, 4, 4, 4, 2, 4, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 3, 5, 5, 3, 5, 3, 3, 3, 3, 3, 1, 1, 3, 7, 3, 1, 3, 1, 3, 3, 1, 1, 1, 3, 3, 1, 4, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 3, 5, 5, 3, 7, 5, 5, 3, 1, 3, 1, 3, 1, 5, 1, 3, 1, 3, 3, 1, 1, 1, 1, 3, 3, 3, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 7, 5, 3, 7, 3, 5, 3, 3, 1, 1, 3, 3, 5, 1, 1, 1, 1, 3, 1, 1, 1, 1, 3, 3, 3, 4, 4, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 3, 3, 3, 5, 3, 3, 5, 3, 1, 1, 3, 1, 5, 3, 1, 3, 3, 3, 1, 1, 1, 1, 1, 1, 3, 2, 2, 2, 2, 2, 2, 4, 2, 4, 4, 2, 2, 2, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 5, 3, 7, 3, 3, 3, 3, 1, 1, 1, 3, 7, 1, 1, 1, 3, 3, 1, 1, 1, 3, 1, 3, 1, 2, 2, 2, 4, 2, 4, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 0, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 5, 5, 3, 5, 5, 3, 3, 1, 1, 1, 3, 1, 5, 5, 1, 1, 1, 5, 1, 1, 3, 3, 1, 1, 3, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 4, 2, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 3, 5, 5, 3, 5, 5, 3, 3, 1, 1, 1, 3, 1, 5, 3, 1, 1, 3, 3, 1, 3, 1, 1, 1, 1, 3, 2, 2, 2, 2, 2, 2, 4, 2, 4, 2, 4, 4, 2, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 3, 5, 5, 3, 7, 3, 3, 3, 1, 1, 1, 1, 3, 7, 5, 1, 1, 3, 3, 1, 1, 1, 1, 3, 3, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 3, 5, 3, 5, 5, 5, 3, 3, 1, 1, 1, 3, 1, 5, 3, 1, 1, 3, 3, 1, 1, 3, 1, 3, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 4, 4, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 3, 3, 7, 3, 3, 3, 3, 3, 3, 1, 1, 5, 3, 1, 3, 1, 3, 1, 1, 1, 1, 1, 3, 1, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 1, 5, 3, 5, 5, 3, 5, 3, 1, 1, 1, 3, 5, 5, 3, 1, 1, 1, 3, 1, 3, 3, 1, 1, 3, 1, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 5, 5, 7, 3, 5, 1, 1, 1, 1, 1, 3, 5, 1, 1, 1, 3, 3, 3, 1, 1, 1, 1, 1, 3, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 8, 5, 5, 5, 5, 7, 3, 5, 3, 1, 1, 1, 3, 1, 5, 3, 1, 1, 3, 3, 3, 1, 1, 1, 1, 1, 1, 4, 2, 2, 2, 2, 4, 2, 2, 2, 4, 2, 4, 4, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 5, 3, 7, 3, 3, 3, 3, 3, 3, 1, 3, 5, 3, 0, 1, 3, 3, 1, 1, 1, 3, 1, 1, 1, 2, 2, 2, 4, 2, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 7, 3, 5, 3, 3, 5, 1, 3, 1, 1, 1, 5, 3, 1, 3, 3, 3, 1, 1, 1, 1, 3, 3, 3, 2, 2, 2, 2, 2, 2, 4, 2, 4, 2, 2, 2, 4, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 5, 5, 5, 3, 3, 3, 3, 1, 1, 1, 1, 5, 3, 1, 1, 3, 3, 1, 3, 1, 1, 1, 3, 1, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 5, 5, 5, 5, 5, 3, 3, 1, 1, 3, 1, 7, 1, 1, 3, 3, 3, 1, 3, 1, 1, 3, 3, 1, 2, 2, 2, 2, 2, 2, 4, 2, 4, 2, 2, 4, 4, 2, 2, 2, 2, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 5, 5, 7, 3, 5, 3, 1, 1, 1, 3, 1, 5, 3, 1, 3, 3, 3, 1, 1, 1, 1, 3, 3, 1, 2, 2, 2, 2, 2, 2, 4, 2, 4, 2, 4, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 3, 3, 7, 5, 5, 3, 1, 3, 1, 3, 3, 7, 3, 1, 3, 1, 3, 1, 1, 3, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 4, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 3, 5, 5, 5, 7, 3, 5, 5, 3, 1, 1, 5, 1, 7, 3, 1, 1, 3, 3, 1, 3, 3, 3, 3, 1, 1, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 7, 5, 7, 3, 5, 3, 3, 1, 1, 3, 3, 7, 3, 1, 1, 3, 3, 1, 1, 1, 1, 1, 3, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 3, 5, 5, 5, 7, 3, 3, 3, 3, 3, 1, 3, 3, 5, 1, 1, 3, 3, 3, 1, 1, 3, 1, 3, 1, 1, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 3, 3, 7, 3, 5, 3, 3, 1, 1, 3, 3, 5, 1, 1, 1, 1, 3, 1, 1, 1, 3, 1, 1, 1, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 3, 3, 3, 5, 5, 3, 3, 5, 3, 1, 1, 3, 1, 5, 3, 1, 1, 1, 1, 3, 1, 3, 3, 3, 1, 3, 4, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 4, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 3, 5, 5, 3, 7, 3, 3, 3, 3, 1, 1, 1, 3, 5, 3, 1, 1, 1, 3, 1, 3, 1, 1, 3, 1, 3, 2, 4, 2, 2, 2, 2, 2, 4, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 5, 3, 5, 5, 3, 3, 3, 1, 1, 3, 1, 5, 5, 1, 1, 3, 3, 1, 3, 1, 1, 1, 3, 1, 2, 2, 2, 2, 2, 4, 4, 2, 4, 2, 2, 4, 4, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 7, 5, 7, 3, 5, 3, 1, 3, 1, 1, 1, 7, 5, 3, 1, 5, 3, 1, 1, 1, 1, 3, 3, 3, 2, 2, 2, 2, 2, 2, 4, 2, 4, 2, 2, 4, 4, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 7, 3, 3, 7, 3, 5, 3, 1, 3, 1, 3, 3, 5, 3, 1, 1, 3, 3, 3, 1, 1, 1, 3, 1, 1, 4, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 5, 3, 7, 5, 5, 5, 3, 1, 1, 3, 3, 5, 3, 1, 3, 1, 3, 3, 1, 3, 1, 3, 3, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 8, 5, 5, 5, 3, 7, 3, 3, 3, 3, 3, 5, 3, 3, 5, 1, 3, 3, 1, 3, 1, 1, 1, 1, 1, 1, 1, 4, 4, 4, 2, 2, 2, 4, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 3, 5, 5, 5, 7, 3, 3, 3, 1, 3, 1, 3, 3, 7, 1, 1, 3, 1, 3, 1, 1, 1, 1, 3, 3, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 3, 5, 5, 5, 3, 3, 1, 1, 1, 3, 3, 5, 3, 1, 3, 1, 3, 1, 1, 1, 1, 3, 3, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 5, 5, 7, 3, 5, 5, 3, 1, 1, 3, 1, 5, 3, 3, 3, 3, 3, 3, 1, 1, 1, 1, 3, 1, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 3, 5, 5, 3, 7, 3, 3, 3, 3, 3, 1, 1, 3, 5, 3, 1, 3, 3, 3, 1, 1, 1, 1, 3, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 3, 5, 3, 5, 5, 5, 3, 3, 1, 3, 3, 1, 5, 3, 1, 1, 3, 3, 1, 3, 1, 1, 3, 5, 1, 2, 2, 2, 2, 2, 2, 2, 2, 4, 4, 2, 4, 4, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 5, 5, 5, 3, 5, 3, 3, 1, 1, 3, 1, 5, 5, 3, 1, 3, 1, 3, 3, 3, 1, 3, 1, 1, 2, 2, 2, 2, 2, 2, 2, 4, 4, 2, 4, 4, 2, 2, 2, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 3, 5, 5, 5, 5, 3, 5, 1, 1, 1, 1, 3, 1, 5, 3, 1, 1, 3, 3, 1, 3, 1, 1, 3, 1, 1, 0, 2, 2, 2, 2, 2, 4, 2, 4, 4, 2, 4, 2, 4, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 5, 3, 5, 7, 5, 3, 1, 1, 1, 1, 3, 1, 7, 3, 1, 1, 3, 3, 3, 3, 3, 1, 1, 3, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 4, 4, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 8, 5, 7, 5, 3, 5, 5, 3, 1, 3, 5, 1, 3, 3, 3, 3, 3, 1, 3, 1, 1, 3, 1, 3, 3, 1, 3, 2, 2, 2, 4, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 8, 5, 5, 5, 5, 5, 3, 3, 1, 3, 3, 1, 1, 3, 5, 3, 1, 5, 3, 1, 3, 1, 3, 1, 3, 1, 1, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 8, 3, 5, 7, 5, 7, 5, 3, 3, 3, 5, 1, 1, 3, 5, 5, 1, 3, 3, 3, 1, 1, 1, 3, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 5, 3, 7, 3, 3, 1, 3, 5, 1, 3, 3, 3, 5, 1, 3, 3, 3, 1, 1, 1, 1, 3, 3, 1, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 8, 7, 5, 5, 3, 5, 5, 3, 3, 3, 3, 1, 3, 3, 3, 5, 3, 5, 3, 1, 1, 1, 1, 1, 1, 1, 3, 2, 2, 2, 2, 2, 2, 4, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 5, 3, 5, 5, 5, 3, 5, 5, 1, 1, 3, 5, 5, 1, 3, 3, 1, 1, 3, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 5, 3, 5, 5, 3, 3, 3, 3, 1, 1, 1, 5, 5, 1, 3, 3, 3, 1, 1, 1, 1, 3, 3, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 3, 3, 7, 3, 3, 3, 3, 3, 1, 3, 3, 5, 3, 1, 1, 1, 3, 3, 1, 1, 1, 3, 3, 3, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 4, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 8, 3, 5, 7, 3, 5, 5, 3, 3, 3, 3, 1, 3, 3, 5, 5, 1, 3, 1, 3, 1, 1, 1, 1, 3, 3, 1, 2, 2, 2, 2, 2, 4, 4, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 5, 3, 5, 3, 3, 3, 3, 3, 1, 1, 1, 7, 3, 1, 1, 3, 3, 1, 3, 1, 1, 3, 3, 3, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 5, 3, 7, 5, 5, 3, 3, 3, 1, 3, 5, 5, 3, 1, 5, 1, 3, 3, 1, 3, 1, 1, 3, 1, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 4, 4, 2, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 5, 3, 7, 3, 5, 3, 5, 3, 1, 5, 3, 7, 3, 1, 1, 3, 3, 1, 1, 1, 1, 3, 3, 3, 2, 2, 2, 2, 2, 2, 4, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 8, 3, 5, 5, 5, 7, 3, 5, 3, 3, 3, 1, 1, 3, 5, 3, 5, 3, 1, 1, 1, 1, 3, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 3, 3, 5, 5, 7, 3, 3, 3, 3, 3, 1, 1, 1, 5, 1, 1, 3, 1, 3, 3, 1, 1, 1, 1, 3, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 3, 5, 3, 5, 5, 3, 5, 3, 3, 3, 1, 5, 1, 3, 1, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 3, 2, 4, 2, 2, 2, 4, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 3, 5, 5, 3, 5, 3, 3, 3, 3, 3, 1, 3, 1, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 3, 3, 2, 4, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 3, 5, 3, 3, 7, 3, 5, 3, 1, 3, 1, 1, 3, 5, 3, 3, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 7, 5, 3, 5, 5, 3, 3, 3, 1, 1, 1, 1, 5, 3, 1, 1, 3, 3, 3, 1, 1, 1, 3, 3, 1, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 5, 5, 5, 5, 3, 3, 3, 3, 1, 3, 1, 7, 3, 1, 1, 3, 3, 1, 3, 3, 1, 3, 3, 1, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 6, 4, 2, 2, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 3, 5, 3, 3, 7, 3, 5, 3, 1, 3, 1, 3, 3, 5, 3, 1, 1, 3, 3, 1, 1, 3, 1, 3, 3, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 4, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 5, 3, 5, 5, 3, 1, 3, 1, 3, 1, 3, 7, 5, 1, 1, 3, 3, 1, 1, 3, 1, 3, 3, 1, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 3, 5, 7, 3, 5, 3, 3, 1, 1, 3, 3, 5, 3, 1, 1, 1, 3, 3, 3, 1, 1, 1, 3, 3, 2, 2, 2, 2, 2, 2, 4, 4, 2, 2, 2, 2, 4, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 8, 5, 5, 3, 5, 7, 3, 5, 5, 3, 3, 3, 1, 1, 5, 1, 1, 5, 1, 3, 3, 3, 1, 1, 1, 3, 3, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 3, 5, 5, 5, 7, 3, 5, 3, 3, 3, 1, 3, 1, 5, 1, 1, 3, 1, 3, 1, 1, 1, 1, 3, 3, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 3, 5, 3, 3, 5, 3, 3, 3, 3, 3, 1, 5, 1, 3, 1, 1, 1, 1, 3, 3, 1, 1, 1, 3, 1, 1, 2, 4, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 3, 5, 3, 3, 5, 3, 3, 5, 1, 1, 3, 1, 1, 5, 3, 1, 3, 1, 3, 3, 1, 1, 1, 1, 3, 1, 2, 2, 2, 2, 4, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 7, 3, 3, 5, 5, 3, 3, 3, 3, 1, 1, 1, 5, 3, 1, 5, 1, 3, 1, 1, 1, 1, 1, 3, 1, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 8, 3, 5, 3, 3, 5, 3, 3, 5, 3, 1, 3, 3, 1, 7, 1, 1, 1, 1, 5, 5, 1, 1, 1, 3, 3, 1, 0, 2, 0, 2, 0, 2, 4, 2, 4, 2, 2, 4, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 5, 3, 5, 3, 5, 3, 3, 1, 1, 3, 1, 7, 3, 1, 1, 3, 3, 1, 3, 1, 3, 1, 3, 1, 2, 2, 2, 2, 2, 2, 2, 4, 4, 2, 4, 4, 4, 2, 2, 2, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 5, 3, 5, 5, 3, 3, 3, 3, 1, 3, 1, 5, 3, 1, 3, 3, 1, 1, 1, 1, 1, 3, 3, 1, 2, 2, 2, 2, 2, 2, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 3, 5, 3, 3, 5, 3, 3, 3, 3, 1, 1, 3, 1, 5, 3, 1, 1, 3, 1, 1, 1, 1, 1, 1, 3, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 3, 3, 7, 5, 5, 3, 3, 3, 1, 3, 1, 7, 5, 1, 3, 3, 3, 3, 3, 3, 1, 3, 1, 1, 2, 2, 2, 2, 2, 2, 2, 4, 4, 4, 2, 2, 4, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 8, 3, 5, 3, 3, 7, 3, 5, 5, 1, 3, 3, 1, 1, 5, 3, 1, 3, 1, 3, 3, 1, 3, 1, 1, 3, 1, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 3, 5, 3, 5, 5, 3, 3, 3, 3, 1, 1, 3, 1, 5, 3, 1, 3, 1, 3, 3, 1, 1, 1, 3, 3, 1, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 3, 3, 5, 7, 3, 5, 3, 1, 1, 1, 1, 1, 5, 3, 1, 1, 1, 3, 3, 1, 3, 1, 3, 3, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 4, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 3, 5, 3, 5, 3, 5, 3, 3, 1, 1, 3, 1, 5, 3, 1, 1, 3, 3, 1, 3, 3, 1, 3, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 3, 3, 7, 5, 5, 3, 1, 1, 1, 3, 1, 5, 3, 1, 3, 1, 3, 3, 1, 1, 1, 3, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 8, 5, 5, 5, 3, 5, 3, 5, 3, 1, 1, 1, 5, 1, 5, 1, 1, 1, 3, 5, 3, 1, 1, 1, 5, 3, 3, 2, 2, 2, 2, 2, 2, 2, 2, 4, 4, 2, 6, 4, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 3, 5, 5, 3, 3, 3, 3, 3, 1, 1, 1, 5, 1, 1, 1, 3, 3, 1, 3, 1, 1, 1, 3, 1, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 4, 4, 2, 2, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 3, 5, 7, 5, 3, 3, 3, 3, 3, 1, 1, 3, 3, 5, 3, 1, 1, 3, 3, 3, 1, 1, 1, 3, 3, 3, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 3, 5, 3, 5, 7, 5, 3, 3, 3, 3, 1, 1, 1, 5, 5, 1, 1, 1, 5, 3, 1, 1, 1, 3, 3, 1, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 4, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 3, 5, 7, 3, 5, 3, 1, 3, 3, 3, 3, 5, 3, 1, 1, 3, 1, 3, 3, 1, 3, 3, 3, 1, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 4, 2, 4, 2, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 3, 3, 5, 3, 5, 1, 3, 3, 1, 1, 1, 5, 3, 1, 1, 3, 3, 3, 3, 1, 1, 1, 3, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 5, 7, 3, 5, 7, 5, 7, 3, 5, 3, 3, 1, 1, 3, 3, 5, 1, 1, 1, 3, 3, 1, 1, 3, 1, 3, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 3, 5, 7, 5, 7, 3, 3, 3, 3, 3, 1, 3, 1, 5, 3, 1, 1, 3, 3, 3, 1, 1, 1, 3, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 4, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 3, 3, 5, 3, 5, 3, 1, 1, 1, 3, 1, 5, 5, 1, 1, 1, 3, 1, 5, 1, 1, 3, 1, 1, 2, 2, 2, 2, 2, 2, 4, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 3, 5, 5, 3, 5, 3, 5, 3, 3, 1, 1, 3, 3, 5, 3, 1, 1, 3, 3, 1, 3, 1, 3, 3, 3, 1, 2, 2, 2, 2, 2, 4, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 7, 3, 5, 7, 3, 3, 3, 1, 3, 1, 3, 3, 5, 1, 1, 1, 3, 3, 3, 3, 3, 3, 1, 1, 1, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 3, 5, 8, 3, 5, 5, 3, 3, 3, 7, 1, 7, 1, 1, 3, 3, 5, 3, 1, 1, 1, 5, 3, 1, 2, 2, 2, 2, 2, 2, 2, 2, 6, 6, 2, 4, 4, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 5, 5, 5, 5, 3, 3, 3, 3, 3, 1, 1, 1, 5, 5, 1, 1, 3, 3, 1, 1, 1, 1, 3, 3, 1, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 5, 5, 5, 3, 3, 1, 3, 1, 1, 3, 1, 7, 5, 1, 1, 3, 3, 1, 3, 1, 1, 1, 3, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 4, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 3, 3, 7, 5, 5, 3, 3, 1, 3, 1, 3, 7, 3, 1, 3, 3, 3, 3, 1, 3, 1, 1, 3, 1, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 5, 5, 5, 3, 5, 5, 3, 3, 3, 3, 3, 5, 3, 3, 3, 1, 3, 1, 1, 1, 1, 3, 1, 3, 4, 4, 4, 2, 2, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 8, 3, 5, 5, 7, 7, 5, 3, 1, 1, 1, 1, 1, 1, 5, 3, 1, 3, 1, 3, 3, 1, 1, 1, 1, 3, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 8, 5, 5, 3, 3, 5, 5, 5, 3, 3, 3, 1, 3, 1, 5, 3, 3, 1, 1, 3, 3, 1, 1, 1, 1, 1, 3, 4, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 3, 5, 5, 3, 5, 3, 5, 3, 3, 1, 1, 3, 3, 5, 3, 3, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 4, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 3, 5, 5, 3, 5, 3, 5, 5, 1, 3, 1, 3, 3, 5, 3, 1, 5, 1, 1, 1, 1, 1, 3, 1, 1, 3, 4, 2, 4, 4, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 5, 5, 3, 7, 3, 3, 3, 3, 1, 1, 1, 3, 5, 3, 1, 1, 3, 3, 1, 1, 1, 1, 1, 3, 1, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 4, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 5, 3, 5, 3, 3, 3, 3, 3, 1, 3, 1, 5, 3, 1, 1, 3, 3, 3, 1, 1, 3, 3, 3, 1, 2, 0, 0, 2, 2, 2, 2, 4, 4, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 5, 3, 5, 5, 5, 3, 1, 1, 1, 3, 1, 7, 3, 1, 1, 3, 3, 1, 1, 1, 1, 1, 3, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 8, 5, 5, 7, 3, 5, 3, 3, 3, 5, 5, 1, 3, 3, 3, 5, 1, 3, 3, 1, 3, 1, 1, 1, 3, 3, 1, 4, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 0, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 8, 5, 7, 7, 7, 7, 5, 3, 3, 5, 5, 3, 1, 3, 3, 5, 3, 5, 3, 1, 1, 1, 1, 3, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 7, 3, 5, 5, 3, 3, 3, 5, 1, 1, 3, 3, 5, 3, 3, 3, 3, 1, 1, 1, 3, 3, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 3, 5, 5, 3, 5, 3, 3, 3, 3, 5, 1, 1, 3, 3, 3, 1, 3, 3, 3, 1, 1, 3, 1, 1, 3, 1, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 5, 3, 5, 3, 3, 3, 5, 5, 1, 3, 3, 3, 3, 1, 3, 3, 1, 1, 3, 1, 1, 1, 1, 1, 4, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 3, 5, 5, 3, 7, 5, 3, 1, 3, 3, 1, 1, 1, 5, 5, 1, 3, 3, 3, 1, 3, 1, 1, 3, 3, 1, 2, 2, 0, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 4, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 3, 5, 5, 3, 7, 3, 3, 1, 5, 3, 1, 1, 1, 5, 3, 3, 3, 3, 3, 3, 1, 1, 1, 1, 3, 3, 2, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 5, 3, 7, 3, 3, 3, 5, 3, 1, 3, 1, 5, 5, 1, 3, 3, 1, 1, 1, 1, 1, 1, 3, 1, 2, 2, 2, 2, 2, 2, 4, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 8, 5, 5, 5, 5, 7, 3, 3, 3, 3, 1, 1, 1, 3, 5, 3, 1, 1, 1, 3, 3, 1, 1, 1, 3, 3, 1, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 5, 3, 5, 3, 3, 3, 5, 3, 1, 1, 3, 5, 3, 1, 1, 3, 5, 1, 1, 1, 1, 1, 3, 3, 2, 2, 2, 2, 2, 2, 4, 2, 2, 4, 2, 4, 2, 4, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 8, 3, 3, 5, 5, 7, 3, 5, 3, 3, 3, 3, 1, 3, 3, 1, 3, 5, 1, 3, 1, 1, 1, 1, 1, 3, 3, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 5, 5, 7, 5, 5, 3, 3, 3, 3, 3, 1, 5, 3, 1, 3, 1, 3, 1, 1, 1, 1, 3, 1, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 3, 3, 5, 5, 3, 3, 3, 5, 1, 3, 3, 5, 3, 3, 3, 1, 3, 1, 1, 1, 1, 3, 1, 3, 4, 4, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 4, 2, 2, 0, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 5, 3, 5, 3, 5, 3, 3, 3, 1, 3, 1, 5, 3, 3, 5, 1, 1, 1, 1, 1, 1, 1, 1, 3, 2, 2, 2, 2, 2, 2, 4, 2, 4, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 7, 5, 3, 7, 3, 3, 3, 1, 1, 1, 3, 1, 5, 3, 1, 1, 1, 3, 1, 1, 1, 1, 3, 3, 1, 2, 2, 2, 2, 2, 4, 4, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 5, 5, 3, 7, 5, 3, 3, 1, 1, 1, 3, 1, 5, 3, 1, 1, 3, 3, 1, 3, 1, 1, 3, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 4, 2, 2, 2, 2, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 5, 3, 3, 7, 5, 5, 3, 3, 3, 1, 1, 1, 5, 3, 1, 1, 3, 3, 3, 3, 1, 3, 3, 3, 1, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 4, 2, 4, 4, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 3, 3, 5, 3, 3, 3, 3, 3, 1, 3, 3, 5, 3, 1, 1, 3, 3, 3, 1, 3, 1, 3, 3, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 3, 5, 5, 5, 7, 3, 5, 3, 3, 3, 1, 3, 3, 5, 3, 1, 1, 3, 3, 3, 1, 3, 1, 3, 1, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 3, 5, 3, 3, 7, 3, 3, 1, 3, 3, 1, 1, 3, 5, 3, 1, 1, 1, 3, 3, 1, 1, 1, 3, 3, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 3, 5, 7, 3, 3, 3, 1, 3, 3, 1, 1, 5, 1, 1, 3, 1, 1, 3, 1, 1, 1, 1, 3, 1, 4, 2, 4, 2, 2, 2, 2, 2, 0, 2, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 3, 5, 3, 5, 7, 3, 3, 3, 3, 3, 1, 3, 1, 3, 3, 1, 3, 1, 3, 3, 1, 1, 1, 1, 3, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 4, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 5, 3, 5, 3, 3, 3, 3, 3, 1, 3, 1, 5, 3, 1, 1, 3, 3, 1, 1, 1, 1, 1, 3, 1, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 3, 3, 7, 5, 3, 3, 1, 1, 3, 3, 1, 5, 3, 3, 1, 3, 3, 3, 1, 1, 1, 1, 3, 3, 2, 2, 2, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 7, 3, 3, 7, 3, 3, 5, 1, 3, 1, 5, 1, 5, 3, 1, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 2, 2, 2, 2, 2, 4, 4, 2, 4, 2, 2, 2, 4, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 3, 3, 5, 3, 3, 3, 3, 1, 1, 1, 1, 5, 1, 1, 1, 3, 3, 1, 5, 1, 1, 1, 3, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 5, 5, 5, 5, 3, 3, 3, 3, 1, 1, 1, 5, 3, 1, 1, 3, 3, 1, 3, 1, 1, 3, 3, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 4, 4, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 3, 5, 3, 5, 7, 5, 3, 3, 1, 1, 1, 3, 1, 7, 3, 1, 1, 3, 1, 3, 3, 3, 1, 3, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 3, 3, 7, 3, 3, 3, 3, 1, 1, 3, 3, 5, 3, 1, 1, 1, 3, 1, 3, 1, 1, 1, 3, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 3, 5, 7, 3, 5, 3, 3, 3, 1, 3, 3, 5, 3, 1, 1, 3, 3, 3, 3, 3, 1, 3, 3, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 4, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 3, 5, 5, 3, 7, 3, 3, 3, 3, 3, 3, 1, 3, 5, 1, 1, 5, 1, 3, 3, 1, 1, 3, 1, 1, 1, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 5, 5, 7, 3, 3, 3, 3, 3, 1, 3, 1, 5, 1, 1, 3, 1, 3, 3, 1, 1, 1, 1, 3, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 3, 5, 5, 5, 5, 3, 5, 3, 3, 1, 1, 3, 3, 3, 3, 1, 3, 1, 3, 3, 1, 1, 3, 1, 1, 1, 2, 4, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 3, 5, 5, 3, 7, 3, 3, 3, 1, 3, 1, 3, 1, 5, 3, 1, 3, 3, 3, 3, 3, 1, 1, 1, 3, 1, 2, 2, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 5, 3, 7, 5, 3, 3, 1, 3, 3, 3, 3, 5, 3, 1, 3, 1, 3, 1, 1, 1, 1, 1, 3, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 8, 5, 5, 5, 3, 5, 3, 5, 3, 3, 3, 1, 3, 1, 5, 3, 1, 3, 1, 3, 1, 1, 1, 1, 5, 3, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 4, 2, 0, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 3, 3, 5, 5, 3, 3, 1, 1, 1, 1, 1, 5, 3, 1, 1, 3, 3, 1, 1, 1, 1, 3, 3, 3, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 4, 4, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 3, 5, 3, 3, 5, 5, 5, 3, 3, 3, 1, 3, 1, 7, 3, 3, 1, 3, 3, 1, 1, 1, 1, 3, 1, 3, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 3, 5, 5, 3, 7, 5, 3, 3, 3, 1, 1, 3, 3, 5, 3, 1, 1, 3, 5, 1, 1, 1, 1, 3, 3, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 3, 5, 7, 3, 5, 3, 1, 3, 1, 3, 3, 5, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 3, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 4, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 5, 3, 7, 1, 3, 3, 3, 3, 1, 1, 3, 5, 3, 1, 1, 3, 3, 3, 1, 1, 3, 3, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 3, 7, 5, 5, 7, 3, 3, 3, 3, 1, 1, 1, 3, 5, 3, 1, 1, 3, 3, 1, 1, 3, 1, 1, 3, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 3, 5, 3, 5, 7, 3, 5, 1, 3, 1, 1, 3, 3, 5, 1, 1, 1, 3, 3, 3, 1, 1, 3, 3, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 5, 7, 3, 5, 5, 3, 5, 3, 5, 3, 3, 1, 1, 3, 3, 5, 3, 1, 1, 3, 3, 3, 3, 3, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-7, 5, 5, 3, 5, 3, 3, 5, 3, 3, 3, 3, 1, 3, 3, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-7, 5, 5, 3, 3, 5, 5, 3, 3, 3, 3, 3, 3, 3, 3, 1, 3, 3, 1, 1, 1, 1, 3, 1, 1, 1, 3, 1, 3, 2, 2, 2, 2, 4, 2, 2, 2, 4, 2, 2, 2, 4, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 5, 5, 5, 3, 3, 3, 3, 3, 3, 1, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1, 1, 3, 1, 1, 3, 3, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 5, 5, 5, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1, 3, 3, 3, 3, 1, 1, 3, 1, 1, 1, 1, 1, 1, 3, 1, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 5, 3, 3, 5, 3, 3, 5, 3, 5, 3, 3, 3, 3, 3, 3, 1, 3, 1, 3, 1, 3, 1, 1, 1, 3, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 3, 5, 3, 3, 3, 3, 5, 3, 3, 3, 3, 3, 3, 3, 1, 3, 1, 1, 1, 1, 3, 1, 1, 1, 3, 1, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 6, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 5, 5, 5, 3, 5, 3, 3, 5, 3, 3, 3, 3, 3, 3, 1, 3, 3, 3, 1, 3, 3, 3, 1, 3, 3, 3, 1, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 5, 7, 5, 5, 5, 5, 5, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1, 3, 1, 1, 3, 1, 3, 1, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 3, 5, 3, 3, 5, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1, 1, 1, 1, 1, 3, 1, 3, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 6, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 5, 5, 3, 5, 3, 1, 3, 3, 3, 5, 1, 1, 1, 1, 3, 1, 3, 1, 1, 3, 1, 3, 3, 3, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 5, 5, 5, 3, 5, 3, 3, 5, 1, 3, 3, 3, 3, 3, 1, 3, 3, 1, 1, 1, 1, 1, 3, 1, 3, 3, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 6, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 5, 5, 3, 5, 5, 3, 1, 5, 3, 3, 3, 1, 3, 3, 3, 5, 3, 1, 1, 1, 1, 3, 5, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 5, 3, 5, 3, 3, 5, 3, 3, 3, 1, 1, 3, 3, 5, 3, 1, 1, 3, 3, 3, 1, 1, 3, 3, 3, 1, 2, 2, 4, 6, 4, 4, 2, 2, 4, 4, 2, 2, 4, 4, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 5, 3, 5, 5, 3, 5, 5, 3, 3, 1, 3, 3, 3, 3, 3, 3, 3, 1, 3, 1, 1, 3, 3, 3, 3, 1, 4, 2, 2, 2, 2, 4, 2, 2, 2, 7, 4, 0, 2, 0, 2, 2, 2, 0, 2, 4, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 5, 5, 5, 5, 3, 3, 5, 5, 1, 3, 1, 5, 3, 1, 3, 5, 3, 1, 3, 1, 3, 1, 3, 3, 3, 3, 4, 0, 2, 2, 6, 6, 4, 6, 2, 6, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 5, 3, 5, 5, 3, 3, 5, 3, 3, 3, 1, 3, 3, 5, 1, 3, 1, 1, 1, 3, 1, 3, 3, 3, 1, 3, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 4, 4, 6, 2, 2, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 5, 3, 5, 5, 5, 5, 3, 1, 1, 1, 3, 7, 5, 1, 1, 3, 1, 3, 5, 3, 3, 5, 1, 1, 2, 4, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 8, 7, 7, 5, 3, 5, 5, 3, 5, 3, 3, 3, 3, 5, 3, 5, 1, 1, 3, 1, 1, 3, 3, 1, 3, 1, 1, 2, 4, 4, 6, 6, 2, 4, 2, 2, 2, 2, 2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 8, 7, 7, 5, 5, 5, 7, 3, 3, 3, 3, 3, 1, 3, 5, 5, 1, 1, 3, 1, 3, 3, 5, 5, 3, 3, 1, 2, 2, 4, 6, 4, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 8, 7, 7, 5, 7, 5, 5, 3, 3, 1, 3, 3, 1, 5, 5, 3, 1, 1, 3, 1, 1, 3, 5, 3, 3, 3, 1, 2, 4, 4, 4, 4, 4, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 8, 5, 7, 5, 5, 7, 5, 1, 3, 3, 3, 3, 1, 5, 3, 3, 3, 1, 1, 1, 5, 3, 1, 3, 3, 5, 3, 2, 4, 6, 6, 4, 6, 4, 2, 4, 4, 2, 2, 2, 2, 2, 2, 4, 2, 2, 0, 0, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 8, 7, 7, 7, 5, 5, 7, 3, 3, 3, 3, 3, 3, 5, 3, 3, 1, 1, 3, 1, 3, 3, 3, 3, 3, 3, 1, 2, 2, 4, 7, 6, 4, 2, 4, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 8, 7, 7, 5, 5, 3, 7, 3, 3, 3, 3, 1, 1, 3, 5, 3, 1, 3, 3, 3, 1, 3, 3, 3, 5, 3, 3, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 6, 4, 2, 2, 2, 2, 2, 2, 2, 4, 4, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 8, 7, 7, 5, 5, 7, 5, 3, 3, 3, 5, 3, 1, 5, 5, 5, 1, 1, 1, 3, 3, 5, 5, 5, 3, 3, 3, 4, 2, 2, 6, 4, 2, 2, 2, 2, 2, 6, 4, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 8, 7, 7, 3, 5, 7, 5, 5, 3, 1, 5, 3, 3, 3, 5, 3, 1, 1, 1, 5, 3, 5, 5, 3, 3, 3, 3, 2, 2, 4, 4, 4, 4, 2, 2, 2, 2, 4, 2, 2, 4, 6, 4, 2, 4, 2, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 8, 7, 7, 5, 5, 5, 5, 3, 3, 3, 5, 3, 1, 5, 7, 3, 1, 1, 1, 5, 5, 5, 7, 3, 7, 7, 3, 2, 6, 6, 6, 4, 2, 2, 2, 2, 0, 0, 0, 2, 6, 6, 6, 2, 2, 2, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 8, 5, 7, 3, 5, 5, 5, 3, 3, 1, 5, 3, 3, 5, 5, 3, 1, 3, 1, 3, 3, 5, 5, 3, 5, 3, 1, 2, 4, 4, 4, 4, 2, 2, 2, 2, 2, 2, 4, 6, 4, 2, 2, 2, 0, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 8, 7, 7, 3, 5, 5, 3, 3, 3, 1, 5, 1, 1, 5, 7, 5, 1, 1, 1, 3, 1, 3, 3, 1, 3, 3, 3, 2, 2, 4, 4, 4, 2, 0, 2, 2, 4, 2, 2, 6, 7, 2, 4, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 8, 5, 7, 5, 5, 3, 5, 3, 3, 1, 5, 1, 1, 5, 5, 3, 1, 3, 1, 3, 3, 3, 5, 3, 3, 5, 3, 2, 2, 4, 4, 4, 2, 2, 2, 2, 2, 2, 4, 6, 4, 4, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 5, 5, 3, 5, 5, 3, 1, 1, 5, 3, 1, 3, 5, 5, 3, 1, 1, 7, 7, 3, 3, 3, 3, 1, 5, 2, 2, 4, 4, 2, 6, 4, 2, 2, 2, 2, 4, 4, 4, 2, 2, 2, 2, 0, 0, 0, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 5, 3, 5, 3, 5, 5, 1, 3, 7, 3, 3, 5, 3, 7, 5, 3, 1, 3, 7, 1, 3, 3, 3, 1, 3, 2, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 4, 2, 2, 2, 0, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 8, 7, 7, 5, 5, 5, 3, 5, 1, 3, 3, 1, 1, 5, 5, 7, 5, 3, 1, 1, 3, 1, 5, 5, 5, 3, 1, 2, 4, 2, 2, 4, 2, 0, 2, 2, 4, 2, 4, 4, 6, 6, 2, 2, 2, 0, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 8, 7, 7, 7, 5, 7, 5, 5, 1, 3, 5, 1, 3, 5, 3, 5, 5, 3, 1, 1, 1, 1, 3, 5, 7, 5, 3, 2, 4, 4, 4, 4, 2, 2, 0, 4, 2, 2, 2, 4, 6, 6, 2, 0, 2, 0, 0, 2, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 5, 7, 7, 5, 5, 5, 3, 1, 3, 3, 1, 3, 1, 3, 7, 3, 3, 1, 1, 3, 3, 3, 7, 5, 3, 3, 2, 2, 2, 4, 2, 2, 2, 0, 2, 4, 2, 6, 4, 4, 6, 4, 2, 0, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 7, 7, 7, 7, 5, 3, 5, 5, 1, 1, 1, 3, 3, 5, 5, 1, 3, 1, 3, 3, 1, 5, 5, 3, 1, 2, 2, 2, 2, 2, 2, 2, 2, 4, 4, 2, 2, 4, 6, 6, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 7, 7, 5, 7, 5, 5, 5, 1, 3, 5, 3, 3, 3, 1, 1, 3, 3, 3, 3, 1, 3, 5, 1, 1, 2, 4, 4, 2, 4, 2, 4, 4, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 0, 0, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 5, 5, 3, 5, 3, 3, 5, 5, 3, 3, 1, 3, 5, 3, 3, 1, 1, 1, 3, 1, 3, 3, 1, 1, 1, 1, 1, 2, 4, 4, 4, 4, 2, 2, 4, 2, 2, 2, 2, 4, 4, 4, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 5, 7, 7, 5, 5, 5, 3, 3, 5, 3, 5, 3, 3, 3, 3, 3, 3, 1, 3, 3, 1, 3, 1, 1, 3, 3, 1, 3, 2, 4, 4, 4, 2, 4, 4, 4, 4, 2, 2, 4, 4, 4, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 5, 5, 5, 5, 3, 3, 5, 3, 3, 3, 3, 1, 3, 5, 3, 5, 3, 3, 3, 3, 1, 1, 3, 5, 3, 3, 2, 2, 4, 2, 4, 4, 6, 4, 2, 0, 2, 2, 4, 4, 4, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 5, 5, 5, 3, 5, 7, 3, 3, 3, 3, 1, 3, 3, 5, 1, 3, 3, 3, 1, 1, 1, 3, 3, 3, 1, 2, 2, 4, 4, 4, 4, 4, 2, 2, 2, 2, 4, 4, 4, 4, 4, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 5, 5, 3, 3, 5, 5, 1, 3, 3, 1, 3, 5, 5, 3, 5, 3, 1, 3, 1, 3, 1, 1, 3, 1, 4, 2, 4, 4, 6, 4, 2, 2, 0, 2, 2, 6, 6, 4, 4, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 5, 3, 3, 3, 7, 3, 5, 3, 5, 1, 3, 3, 5, 3, 3, 1, 1, 3, 3, 1, 1, 3, 3, 3, 4, 2, 4, 4, 4, 2, 2, 2, 2, 2, 2, 4, 2, 4, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 5, 7, 5, 7, 3, 3, 5, 5, 3, 3, 5, 7, 1, 3, 5, 5, 3, 3, 3, 1, 1, 3, 1, 1, 3, 3, 3, 4, 2, 4, 2, 4, 2, 2, 0, 2, 2, 2, 2, 4, 4, 4, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 3, 7, 7, 7, 7, 7, 5, 1, 5, 3, 1, 3, 3, 3, 1, 3, 3, 1, 1, 3, 3, 5, 7, 3, 1, 2, 2, 2, 4, 2, 4, 2, 2, 2, 2, 2, 2, 2, 4, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 5, 7, 7, 7, 7, 7, 5, 3, 7, 5, 3, 5, 5, 5, 1, 3, 3, 3, 1, 1, 3, 3, 7, 5, 1, 2, 0, 4, 2, 2, 4, 2, 2, 2, 6, 4, 6, 4, 6, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 3, 7, 7, 7, 7, 5, 3, 1, 7, 3, 3, 3, 5, 1, 3, 3, 3, 3, 3, 3, 3, 5, 5, 7, 3, 0, 0, 2, 2, 0, 4, 2, 2, 2, 4, 4, 6, 6, 6, 2, 2, 2, 2, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 3, 7, 7, 7, 7, 7, 3, 1, 5, 5, 3, 3, 5, 3, 1, 3, 3, 1, 1, 3, 3, 5, 5, 7, 5, 2, 0, 0, 2, 2, 2, 2, 2, 2, 6, 6, 6, 6, 6, 4, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 5, 7, 7, 7, 7, 7, 3, 1, 3, 5, 5, 7, 3, 5, 1, 3, 3, 3, 1, 3, 3, 5, 5, 5, 3, 2, 0, 0, 2, 2, 4, 2, 2, 2, 4, 4, 6, 6, 4, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 9, 7, 7, 5, 7, 7, 7, 7, 7, 1, 3, 5, 5, 3, 5, 3, 3, 1, 3, 5, 1, 1, 3, 3, 3, 7, 7, 5, 0, 0, 2, 2, 2, 4, 0, 2, 2, 4, 4, 6, 4, 4, 4, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 9, 7, 7, 5, 7, 7, 7, 7, 7, 1, 3, 3, 5, 1, 5, 5, 3, 1, 3, 3, 1, 1, 3, 5, 3, 3, 5, 3, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 4, 2, 6, 4, 0, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 3, 7, 7, 7, 7, 7, 1, 3, 5, 7, 3, 3, 5, 3, 3, 3, 1, 3, 3, 3, 1, 5, 5, 5, 3, 2, 2, 2, 2, 6, 4, 2, 0, 2, 4, 4, 2, 4, 6, 4, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 9, 7, 7, 5, 7, 7, 7, 7, 7, 1, 1, 3, 5, 1, 3, 3, 7, 1, 1, 3, 1, 1, 5, 5, 3, 7, 5, 3, 4, 2, 2, 2, 4, 2, 2, 0, 2, 2, 4, 2, 2, 4, 2, 2, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 5, 5, 5, 3, 3, 5, 3, 1, 3, 3, 3, 3, 3, 1, 1, 3, 3, 3, 1, 1, 1, 1, 1, 3, 1, 2, 4, 2, 4, 4, 2, 2, 2, 4, 2, 2, 4, 4, 2, 2, 2, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 5, 3, 3, 5, 5, 5, 3, 3, 3, 3, 3, 3, 3, 3, 1, 3, 3, 3, 3, 5, 3, 1, 1, 1, 7, 3, 1, 1, 2, 2, 2, 2, 2, 4, 2, 4, 2, 2, 2, 2, 2, 4, 4, 2, 2, 2, 0, 0, 2, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 5, 3, 5, 7, 7, 7, 5, 7, 1, 3, 5, 5, 5, 3, 1, 5, 3, 3, 3, 3, 1, 1, 3, 7, 7, 3, 3, 2, 2, 2, 2, 2, 2, 2, 2, 4, 4, 6, 2, 2, 2, 2, 0, 2, 2, 0, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 5, 7, 5, 7, 5, 5, 5, 3, 3, 3, 3, 3, 3, 1, 5, 1, 1, 3, 1, 1, 3, 1, 3, 5, 5, 1, 2, 4, 2, 2, 2, 2, 2, 2, 4, 4, 6, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 7, 7, 7, 7, 7, 7, 3, 5, 3, 5, 1, 1, 5, 1, 1, 5, 1, 1, 3, 3, 1, 5, 5, 3, 2, 6, 4, 2, 2, 2, 2, 2, 2, 2, 4, 4, 4, 2, 2, 2, 2, 2, 0, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 5, 1, 3, 3, 7, 5, 7, 7, 5, 3, 7, 3, 5, 1, 3, 3, 1, 3, 5, 1, 3, 5, 1, 3, 5, 5, 3, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 4, 4, 2, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 3, 5, 3, 1, 1, 3, 7, 7, 5, 3, 3, 7, 3, 3, 1, 3, 3, 1, 3, 3, 1, 1, 3, 1, 5, 1, 1, 3, 4, 4, 2, 2, 2, 2, 2, 2, 2, 6, 6, 6, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 1, 3, 3, 1, 5, 5, 7, 7, 7, 3, 3, 7, 3, 5, 3, 3, 3, 1, 1, 3, 3, 1, 5, 1, 3, 1, 3, 1, 2, 4, 6, 2, 2, 2, 2, 2, 2, 6, 4, 6, 2, 2, 2, 0, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 1, 1, 3, 1, 5, 5, 7, 7, 7, 3, 7, 3, 3, 5, 3, 3, 3, 1, 1, 1, 1, 1, 3, 3, 5, 3, 1, 1, 2, 2, 6, 2, 0, 2, 2, 2, 2, 4, 4, 4, 2, 4, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 1, 1, 1, 1, 5, 5, 7, 3, 5, 1, 3, 1, 5, 5, 3, 3, 3, 1, 1, 1, 1, 1, 3, 3, 5, 3, 3, 1, 2, 2, 4, 2, 2, 2, 2, 2, 2, 4, 4, 4, 6, 2, 2, 2, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 1, 1, 1, 3, 3, 5, 5, 5, 5, 3, 3, 3, 5, 5, 1, 3, 5, 1, 3, 3, 1, 3, 3, 3, 5, 1, 1, 1, 2, 4, 4, 2, 2, 2, 2, 2, 2, 4, 2, 4, 6, 4, 2, 2, 0, 0, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 5, 7, 5, 5, 3, 5, 5, 5, 1, 1, 3, 3, 5, 3, 1, 3, 3, 3, 1, 1, 1, 5, 5, 3, 3, 5, 1, 2, 6, 4, 2, 0, 2, 0, 0, 2, 2, 2, 4, 4, 4, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 5, 5, 3, 5, 3, 1, 1, 3, 3, 3, 1, 3, 5, 1, 1, 1, 1, 3, 3, 1, 3, 1, 1, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 5, 3, 7, 3, 3, 3, 1, 1, 5, 3, 1, 5, 5, 1, 5, 1, 3, 3, 1, 3, 3, 3, 5, 5, 3, 2, 2, 2, 4, 2, 0, 0, 2, 4, 2, 4, 4, 2, 4, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 5, 3, 5, 3, 3, 5, 3, 1, 5, 1, 3, 5, 5, 1, 3, 1, 3, 1, 3, 3, 3, 1, 5, 7, 3, 2, 2, 2, 2, 2, 2, 4, 2, 4, 2, 4, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 5, 3, 7, 3, 3, 5, 3, 1, 5, 1, 3, 3, 3, 3, 5, 3, 3, 3, 1, 3, 3, 3, 3, 5, 1, 2, 2, 2, 2, 2, 2, 4, 2, 4, 2, 6, 6, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 5, 5, 5, 3, 3, 7, 3, 1, 5, 1, 3, 3, 5, 3, 3, 3, 3, 3, 3, 3, 3, 5, 3, 5, 5, 4, 2, 2, 2, 2, 2, 2, 2, 4, 4, 6, 2, 4, 2, 2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 3, 5, 3, 5, 1, 7, 1, 1, 5, 3, 3, 3, 3, 5, 3, 3, 1, 1, 3, 3, 3, 3, 3, 3, 3, 2, 2, 2, 2, 4, 2, 2, 2, 2, 4, 4, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 5, 7, 5, 5, 3, 5, 3, 5, 3, 3, 5, 1, 5, 3, 3, 1, 3, 1, 3, 3, 5, 3, 3, 3, 3, 1, 3, 2, 2, 2, 2, 2, 2, 2, 4, 4, 4, 6, 4, 0, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 5, 5, 7, 7, 3, 3, 3, 5, 3, 3, 7, 1, 3, 1, 3, 1, 3, 3, 3, 3, 5, 5, 3, 5, 3, 1, 3, 2, 2, 2, 0, 2, 2, 0, 2, 2, 4, 6, 6, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 3, 7, 7, 7, 3, 5, 3, 5, 3, 3, 5, 1, 3, 3, 3, 1, 1, 1, 3, 3, 3, 1, 3, 5, 3, 1, 3, 2, 2, 2, 0, 4, 4, 2, 2, 2, 4, 6, 4, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 7, 5, 5, 3, 5, 1, 1, 5, 1, 3, 1, 3, 1, 3, 3, 3, 3, 3, 3, 3, 3, 1, 1, 1, 2, 2, 2, 0, 4, 4, 0, 2, 2, 4, 6, 6, 2, 0, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 9, 7, 5, 7, 5, 3, 7, 5, 5, 3, 3, 3, 3, 3, 1, 1, 3, 5, 7, 7, 1, 3, 3, 3, 5, 3, 3, 3, 2, 2, 2, 2, 2, 4, 6, 2, 4, 6, 2, 2, 4, 2, 2, 2, 2, 2, 0, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 9, 7, 7, 7, 7, 3, 7, 5, 3, 5, 5, 1, 1, 5, 3, 1, 3, 3, 3, 3, 1, 3, 1, 3, 5, 3, 5, 3, 2, 2, 7, 6, 2, 6, 4, 2, 2, 6, 2, 2, 2, 6, 2, 2, 4, 2, 0, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 5, 7, 7, 5, 3, 7, 5, 3, 5, 5, 1, 3, 5, 3, 1, 5, 3, 3, 5, 1, 5, 3, 1, 5, 3, 5, 1, 2, 2, 2, 4, 4, 4, 4, 4, 4, 2, 2, 2, 2, 6, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 8, 7, 7, 7, 7, 7, 3, 3, 3, 7, 3, 3, 3, 3, 1, 3, 5, 1, 3, 3, 3, 5, 3, 3, 3, 5, 1, 2, 2, 4, 6, 6, 2, 4, 2, 6, 6, 2, 2, 2, 4, 2, 2, 2, 0, 0, 0, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
-9, 8, 8, 7, 7, 7, 5, 5, 5, 1, 5, 3, 3, 5, 3, 3, 1, 1, 5, 3, 1, 5, 5, 5, 1, 5, 5, 5, 1, 2, 2, 2, 2, 4, 6, 4, 2, 2, 2, 4, 2, 4, 2, 2, 2, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 7, 7, 7, 3, 3, 3, 3, 1, 5, 3, 3, 1, 3, 5, 3, 1, 3, 1, 3, 1, 5, 5, 5, 1, 2, 2, 2, 2, 4, 6, 2, 2, 2, 2, 4, 6, 4, 6, 2, 2, 2, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 5, 5, 7, 7, 5, 3, 5, 3, 5, 3, 3, 1, 3, 5, 3, 1, 1, 1, 3, 3, 5, 7, 5, 3, 2, 2, 2, 2, 4, 4, 4, 2, 2, 2, 2, 4, 4, 4, 4, 2, 2, 0, 0, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 5, 5, 5, 5, 3, 1, 5, 3, 5, 3, 3, 1, 1, 5, 3, 7, 1, 5, 3, 5, 3, 3, 3, 3, 2, 2, 2, 4, 4, 2, 4, 2, 2, 2, 2, 4, 4, 4, 4, 2, 2, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 5, 7, 5, 5, 7, 5, 5, 5, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 7, 1, 1, 1, 3, 7, 7, 3, 1, 2, 2, 2, 2, 6, 6, 4, 2, 2, 2, 4, 6, 2, 4, 4, 2, 2, 0, 0, 0, 0, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 5, 5, 5, 5, 3, 3, 5, 3, 3, 5, 3, 1, 3, 3, 3, 3, 3, 1, 1, 1, 7, 7, 5, 3, 2, 2, 2, 2, 2, 4, 4, 2, 2, 4, 6, 4, 2, 4, 4, 2, 0, 0, 0, 0, 2, 4, 4, 2, 2, 0, 0, 0, 0, 0, 0,
-9, 8, 5, 7, 7, 5, 5, 5, 5, 3, 3, 5, 1, 5, 7, 3, 1, 1, 5, 5, 7, 5, 3, 1, 3, 7, 7, 5, 3, 2, 2, 2, 2, 4, 4, 6, 0, 2, 2, 4, 6, 2, 4, 2, 2, 0, 0, 0, 0, 2, 2, 4, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 5, 7, 7, 5, 7, 7, 7, 5, 1, 5, 3, 3, 7, 1, 1, 3, 5, 3, 7, 3, 1, 1, 1, 7, 7, 7, 1, 2, 2, 2, 0, 4, 4, 2, 0, 2, 6, 4, 4, 4, 6, 2, 2, 0, 0, 0, 0, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 5, 7, 7, 5, 7, 5, 5, 3, 3, 5, 5, 5, 5, 3, 1, 3, 3, 1, 5, 1, 1, 3, 1, 5, 5, 5, 3, 2, 2, 2, 2, 6, 4, 2, 2, 2, 6, 2, 2, 4, 6, 2, 2, 2, 2, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 5, 7, 8, 5, 7, 5, 3, 5, 5, 7, 5, 1, 3, 3, 1, 3, 3, 1, 5, 3, 3, 1, 3, 5, 3, 5, 3, 4, 2, 2, 2, 4, 4, 2, 2, 2, 6, 2, 2, 4, 4, 2, 4, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 5, 7, 7, 3, 7, 7, 5, 5, 3, 5, 5, 1, 3, 7, 1, 3, 3, 1, 7, 3, 1, 1, 7, 5, 5, 5, 3, 2, 2, 2, 2, 6, 6, 2, 2, 2, 2, 2, 4, 6, 4, 4, 4, 2, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 3, 5, 8, 5, 7, 5, 5, 5, 5, 5, 7, 1, 5, 7, 3, 3, 3, 1, 1, 7, 1, 1, 5, 7, 5, 5, 3, 2, 2, 2, 4, 4, 6, 2, 2, 2, 4, 6, 4, 6, 4, 6, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 3, 5, 8, 7, 7, 7, 5, 5, 3, 3, 3, 3, 3, 5, 1, 5, 3, 1, 1, 7, 5, 1, 3, 7, 5, 3, 5, 4, 2, 2, 2, 4, 4, 0, 2, 0, 4, 4, 4, 6, 4, 2, 2, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 3, 5, 8, 7, 7, 7, 5, 5, 3, 5, 5, 1, 5, 5, 1, 5, 3, 1, 1, 5, 3, 1, 5, 5, 5, 3, 1, 4, 4, 2, 2, 4, 4, 0, 2, 2, 4, 4, 6, 6, 4, 2, 0, 0, 0, 2, 2, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 5, 5, 7, 7, 5, 7, 5, 3, 3, 7, 3, 3, 5, 1, 1, 5, 1, 3, 5, 3, 1, 5, 5, 7, 5, 3, 5, 4, 2, 2, 2, 4, 2, 2, 2, 2, 4, 4, 4, 4, 2, 2, 2, 0, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 5, 5, 7, 8, 5, 7, 5, 3, 3, 3, 3, 3, 3, 1, 5, 3, 3, 3, 5, 1, 1, 1, 5, 5, 3, 5, 3, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 4, 4, 2, 2, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 5, 5, 5, 5, 3, 5, 5, 3, 3, 1, 5, 3, 1, 3, 3, 3, 1, 3, 5, 1, 1, 1, 3, 5, 3, 3, 3, 2, 2, 2, 2, 6, 2, 2, 2, 6, 4, 2, 6, 6, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 5, 1, 3, 7, 5, 5, 7, 5, 1, 1, 5, 3, 3, 3, 3, 3, 1, 1, 3, 3, 1, 3, 3, 7, 5, 5, 1, 2, 2, 2, 2, 4, 2, 4, 2, 6, 6, 6, 6, 2, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 5, 7, 7, 7, 3, 3, 5, 1, 5, 3, 1, 3, 1, 1, 5, 1, 3, 3, 3, 1, 1, 3, 7, 7, 3, 5, 2, 2, 2, 2, 2, 2, 4, 2, 4, 6, 4, 4, 2, 4, 2, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 3, 7, 7, 7, 3, 5, 5, 1, 3, 5, 1, 5, 3, 1, 5, 3, 3, 1, 3, 1, 3, 3, 3, 5, 5, 5, 2, 4, 2, 4, 2, 2, 6, 2, 2, 2, 2, 4, 2, 4, 2, 2, 2, 2, 2, 2, 2, 0, 0, 2, 2, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 1, 7, 7, 7, 5, 5, 7, 5, 7, 7, 1, 7, 7, 1, 7, 1, 3, 3, 1, 3, 3, 3, 3, 3, 3, 1, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 4, 4, 6, 2, 2, 2, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 1, 5, 7, 7, 7, 7, 7, 7, 5, 7, 3, 7, 5, 3, 7, 1, 3, 1, 5, 3, 5, 3, 3, 5, 5, 1, 2, 4, 4, 2, 4, 2, 2, 2, 2, 2, 4, 4, 6, 2, 2, 2, 0, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 3, 3, 7, 5, 5, 7, 7, 7, 5, 7, 3, 7, 3, 1, 5, 3, 5, 3, 1, 1, 3, 3, 5, 5, 3, 3, 2, 4, 4, 2, 0, 2, 2, 4, 2, 4, 4, 4, 4, 2, 2, 2, 2, 0, 0, 0, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 5, 7, 3, 1, 5, 3, 5, 5, 7, 5, 5, 7, 3, 3, 3, 1, 3, 1, 3, 5, 3, 3, 3, 1, 5, 5, 3, 5, 4, 2, 2, 4, 2, 2, 2, 4, 4, 2, 4, 6, 4, 0, 2, 2, 2, 2, 2, 2, 0, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-9, 1, 3, 3, 1, 1, 5, 7, 5, 5, 3, 1, 5, 3, 3, 1, 1, 1, 5, 3, 3, 1, 3, 3, 1, 3, 3, 3, 1, 4, 4, 4, 2, 0, 2, 2, 4, 4, 2, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 0, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-8, 1, 1, 3, 1, 1, 5, 5, 7, 5, 1, 3, 3, 5, 5, 1, 1, 1, 3, 3, 3, 1, 3, 3, 1, 5, 7, 3, 3, 2, 2, 2, 2, 2, 2, 4, 4, 6, 4, 4, 4, 4, 4, 2, 2, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 5, 7, 3, 5, 3, 5, 3, 5, 1, 1, 3, 5, 5, 3, 1, 5, 1, 3, 3, 3, 3, 1, 3, 5, 5, 5, 3, 2, 2, 2, 2, 2, 2, 2, 4, 2, 4, 4, 6, 2, 2, 2, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 3, 5, 3, 5, 5, 3, 3, 3, 5, 5, 3, 1, 1, 3, 1, 1, 5, 3, 3, 3, 3, 1, 1, 1, 2, 4, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 5, 5, 5, 3, 5, 5, 3, 3, 3, 3, 3, 3, 1, 1, 3, 1, 3, 3, 1, 1, 3, 3, 1, 1, 1, 4, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 4, 2, 2, 2, 2, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 5, 5, 5, 3, 3, 3, 5, 5, 3, 1, 1, 3, 3, 3, 1, 3, 3, 3, 1, 1, 3, 1, 1, 3, 4, 4, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 5, 5, 5, 7, 3, 5, 3, 3, 3, 3, 3, 1, 5, 3, 3, 3, 3, 3, 1, 0, 1, 5, 7, 7, 5, 1, 0, 0, 2, 4, 6, 4, 4, 2, 2, 2, 2, 2, 4, 4, 2, 2, 2, 0, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 5, 5, 5, 5, 3, 5, 3, 3, 3, 3, 3, 1, 3, 5, 5, 3, 3, 3, 1, 1, 1, 5, 5, 5, 5, 3, 2, 0, 2, 2, 2, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 5, 5, 3, 5, 3, 3, 3, 3, 3, 5, 3, 5, 5, 3, 3, 3, 1, 1, 0, 1, 3, 5, 5, 5, 1, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 8, 5, 5, 7, 5, 3, 5, 3, 3, 1, 5, 3, 1, 5, 5, 1, 3, 3, 3, 1, 1, 3, 5, 5, 5, 3, 1, 2, 2, 2, 2, 2, 4, 4, 2, 2, 2, 0, 2, 4, 4, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 5, 7, 3, 5, 5, 3, 3, 3, 3, 3, 1, 5, 5, 5, 3, 3, 3, 1, 1, 1, 5, 5, 5, 5, 1, 2, 2, 2, 2, 4, 2, 2, 4, 2, 0, 2, 0, 4, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 5, 5, 5, 3, 5, 7, 3, 1, 3, 3, 1, 3, 3, 5, 3, 1, 3, 1, 1, 1, 7, 5, 5, 5, 1, 2, 2, 2, 2, 4, 2, 4, 4, 4, 2, 0, 0, 4, 2, 2, 2, 0, 0, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 5, 5, 5, 3, 3, 5, 3, 1, 5, 5, 1, 3, 5, 5, 5, 1, 3, 1, 1, 3, 5, 5, 5, 3, 1, 2, 2, 2, 2, 2, 2, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 5, 7, 5, 3, 5, 5, 5, 3, 3, 3, 3, 3, 3, 1, 3, 1, 3, 3, 1, 3, 1, 1, 1, 3, 5, 3, 5, 1, 0, 2, 4, 2, 2, 2, 2, 2, 2, 4, 2, 4, 4, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 5, 5, 7, 3, 5, 5, 5, 3, 3, 3, 3, 3, 5, 3, 1, 5, 1, 1, 3, 3, 3, 3, 3, 1, 3, 1, 5, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 4, 2, 4, 4, 4, 4, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 3, 3, 7, 3, 5, 3, 3, 3, 3, 3, 1, 3, 1, 3, 3, 3, 3, 3, 1, 1, 3, 3, 3, 5, 3, 1, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 3, 5, 5, 5, 5, 3, 3, 3, 5, 3, 3, 1, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1, 1, 2, 2, 2, 2, 2, 2, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 4, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 9, 8, 7, 7, 7, 5, 5, 5, 5, 1, 3, 5, 5, 3, 5, 1, 1, 5, 7, 3, 1, 3, 7, 5, 1, 5, 3, 1, 4, 2, 2, 0, 2, 2, 4, 4, 2, 2, 4, 4, 6, 4, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 7, 8, 7, 7, 7, 7, 3, 3, 5, 5, 1, 5, 1, 1, 5, 5, 5, 1, 0, 3, 5, 3, 7, 5, 3, 2, 2, 2, 0, 2, 2, 2, 4, 2, 2, 4, 4, 6, 4, 6, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 7, 7, 7, 5, 7, 3, 3, 5, 5, 3, 5, 1, 1, 7, 7, 5, 1, 0, 3, 5, 5, 3, 5, 1, 2, 2, 2, 2, 4, 2, 2, 4, 2, 2, 4, 4, 6, 4, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 9, 7, 7, 7, 7, 7, 7, 7, 7, 5, 5, 7, 5, 7, 7, 3, 1, 7, 7, 7, 3, 1, 3, 5, 3, 5, 7, 5, 2, 2, 2, 2, 4, 4, 2, 2, 2, 2, 2, 6, 6, 4, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 3, 5, 7, 5, 3, 7, 5, 1, 3, 7, 5, 1, 1, 1, 5, 3, 5, 5, 3, 2, 2, 2, 2, 2, 4, 2, 2, 2, 4, 2, 6, 4, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 7, 7, 7, 7, 7, 5, 3, 5, 7, 7, 7, 7, 3, 1, 7, 7, 1, 1, 3, 7, 5, 7, 5, 3, 0, 2, 2, 4, 4, 2, 2, 2, 2, 2, 2, 4, 4, 4, 2, 2, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 7, 3, 5, 3, 5, 3, 3, 3, 3, 1, 3, 3, 3, 1, 3, 3, 1, 1, 1, 3, 3, 5, 3, 5, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 5, 7, 3, 5, 3, 5, 5, 5, 1, 1, 3, 5, 3, 3, 3, 1, 3, 3, 3, 1, 1, 1, 3, 1, 3, 3, 1, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 5, 5, 5, 7, 5, 3, 3, 5, 3, 3, 3, 3, 1, 3, 3, 1, 3, 3, 1, 3, 3, 1, 1, 1, 3, 1, 3, 2, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 0, 2, 0, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 3, 5, 7, 3, 3, 5, 3, 3, 1, 5, 3, 1, 5, 1, 3, 3, 1, 1, 1, 3, 3, 3, 3, 5, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 0, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 1, 5, 5, 3, 7, 5, 3, 1, 5, 5, 3, 3, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 3, 3, 1, 4, 2, 2, 4, 4, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 5, 3, 7, 5, 3, 5, 5, 3, 3, 3, 5, 3, 3, 3, 3, 1, 1, 3, 1, 1, 1, 1, 3, 3, 3, 1, 4, 2, 2, 2, 4, 4, 2, 4, 2, 2, 2, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 8, 5, 7, 8, 7, 7, 7, 5, 3, 3, 5, 5, 5, 7, 3, 5, 1, 3, 1, 1, 1, 1, 7, 7, 5, 1, 3, 4, 2, 0, 2, 4, 6, 4, 2, 0, 0, 0, 2, 2, 4, 4, 6, 6, 4, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 8, 7, 5, 7, 7, 7, 7, 1, 7, 5, 5, 5, 3, 5, 3, 5, 5, 3, 3, 0, 0, 1, 5, 7, 5, 3, 1, 4, 2, 2, 0, 2, 4, 2, 2, 0, 0, 0, 0, 2, 0, 2, 2, 2, 4, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 8, 7, 7, 7, 7, 7, 7, 3, 5, 5, 5, 3, 3, 5, 3, 5, 5, 3, 3, 1, 1, 1, 1, 7, 7, 7, 1, 2, 2, 2, 2, 4, 4, 2, 2, 0, 0, 0, 0, 2, 2, 2, 2, 6, 6, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 8, 7, 7, 7, 7, 7, 7, 5, 7, 7, 7, 3, 3, 3, 1, 1, 5, 3, 3, 1, 1, 3, 1, 5, 7, 1, 1, 2, 2, 4, 2, 6, 4, 2, 2, 0, 0, 0, 2, 2, 2, 2, 2, 2, 4, 4, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 8, 7, 7, 8, 7, 7, 7, 5, 5, 7, 7, 3, 5, 7, 5, 1, 3, 3, 3, 1, 1, 1, 3, 7, 7, 5, 1, 0, 0, 2, 2, 4, 4, 2, 2, 2, 0, 0, 2, 2, 2, 4, 2, 2, 4, 2, 2, 4, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 8, 7, 7, 8, 7, 5, 7, 3, 7, 7, 5, 3, 5, 5, 3, 1, 3, 3, 3, 1, 1, 3, 1, 5, 7, 5, 3, 2, 2, 2, 4, 6, 6, 6, 4, 2, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 8, 7, 7, 8, 7, 3, 7, 3, 7, 7, 7, 5, 3, 5, 5, 1, 3, 3, 3, 3, 1, 3, 1, 5, 7, 5, 3, 2, 2, 2, 2, 4, 2, 4, 2, 2, 0, 0, 2, 2, 4, 4, 2, 2, 2, 4, 4, 4, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 8, 7, 7, 7, 7, 5, 5, 5, 5, 5, 7, 5, 5, 7, 5, 1, 3, 3, 5, 3, 1, 3, 1, 3, 5, 3, 1, 2, 4, 2, 2, 2, 6, 4, 2, 2, 0, 0, 2, 2, 4, 4, 2, 2, 4, 2, 6, 4, 4, 2, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 8, 7, 5, 7, 3, 3, 3, 3, 3, 3, 3, 1, 3, 7, 3, 1, 3, 3, 5, 1, 1, 1, 3, 7, 5, 7, 1, 2, 4, 2, 2, 4, 6, 6, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 4, 4, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 8, 7, 5, 7, 3, 3, 5, 5, 3, 3, 3, 1, 3, 3, 5, 1, 3, 3, 3, 1, 1, 1, 1, 5, 5, 3, 1, 2, 2, 2, 4, 2, 6, 2, 2, 2, 0, 2, 2, 2, 4, 0, 0, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 5, 5, 5, 3, 5, 3, 3, 3, 1, 5, 1, 3, 3, 1, 3, 1, 3, 3, 3, 1, 3, 5, 5, 5, 1, 1, 2, 2, 4, 2, 2, 4, 2, 2, 2, 4, 4, 4, 2, 6, 2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 5, 3, 7, 3, 5, 7, 3, 3, 5, 1, 3, 3, 1, 1, 5, 3, 3, 1, 3, 3, 1, 5, 7, 5, 5, 3, 2, 2, 2, 2, 2, 4, 2, 2, 4, 0, 0, 2, 2, 4, 6, 0, 0, 0, 0, 0, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 8, 5, 3, 5, 3, 5, 5, 3, 3, 5, 3, 5, 5, 3, 3, 5, 3, 3, 3, 1, 1, 1, 3, 7, 7, 3, 1, 2, 6, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 4, 6, 6, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 5, 7, 5, 5, 7, 1, 5, 7, 3, 1, 3, 1, 1, 5, 5, 3, 1, 1, 1, 1, 5, 7, 7, 5, 1, 2, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 6, 4, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 5, 7, 5, 7, 7, 5, 3, 3, 5, 1, 1, 3, 1, 3, 5, 3, 3, 3, 1, 1, 1, 5, 7, 5, 5, 1, 2, 6, 2, 2, 2, 6, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 5, 7, 7, 7, 5, 3, 3, 5, 1, 3, 7, 1, 3, 5, 3, 3, 5, 1, 1, 1, 5, 7, 5, 5, 3, 2, 4, 2, 2, 2, 4, 2, 2, 0, 2, 2, 2, 2, 2, 4, 7, 2, 2, 4, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 5, 7, 7, 5, 3, 3, 5, 1, 3, 7, 1, 5, 3, 1, 5, 5, 1, 1, 3, 1, 7, 5, 5, 1, 2, 2, 4, 2, 2, 2, 4, 2, 2, 0, 2, 2, 2, 2, 4, 6, 4, 2, 2, 4, 2, 2, 4, 2, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 7, 7, 7, 5, 5, 5, 5, 3, 3, 7, 1, 3, 5, 3, 3, 5, 1, 1, 1, 3, 5, 7, 3, 1, 2, 4, 2, 2, 2, 4, 4, 4, 2, 2, 0, 2, 2, 2, 2, 4, 4, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 5, 7, 5, 3, 5, 3, 3, 3, 5, 1, 1, 5, 3, 3, 5, 1, 5, 5, 0, 3, 1, 3, 3, 5, 3, 1, 2, 4, 2, 2, 2, 6, 6, 4, 2, 2, 0, 2, 2, 2, 0, 4, 4, 2, 2, 2, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 8, 3, 5, 5, 3, 7, 5, 3, 3, 5, 5, 1, 5, 3, 1, 3, 5, 5, 3, 1, 1, 1, 3, 3, 5, 5, 1, 0, 2, 2, 2, 2, 4, 6, 4, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 3, 5, 5, 5, 3, 1, 3, 1, 1, 5, 3, 1, 1, 5, 5, 3, 1, 1, 3, 3, 1, 5, 5, 1, 2, 2, 2, 2, 2, 2, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 3, 5, 5, 5, 5, 1, 3, 3, 3, 3, 1, 3, 1, 3, 1, 3, 3, 3, 3, 1, 3, 3, 3, 3, 3, 4, 2, 4, 4, 2, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 0, 4, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 8, 7, 5, 5, 5, 3, 5, 5, 3, 3, 3, 3, 3, 3, 3, 3, 1, 3, 3, 1, 1, 1, 3, 1, 3, 3, 3, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 8, 7, 7, 5, 5, 3, 5, 3, 3, 3, 3, 1, 5, 3, 3, 1, 5, 7, 1, 1, 1, 1, 1, 5, 5, 5, 1, 2, 0, 2, 2, 2, 4, 6, 2, 2, 2, 0, 2, 2, 2, 4, 2, 2, 2, 4, 4, 4, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 8, 7, 7, 7, 5, 3, 5, 5, 1, 3, 3, 3, 3, 5, 3, 1, 3, 5, 1, 1, 1, 1, 1, 5, 5, 5, 5, 0, 0, 2, 4, 2, 4, 6, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 4, 4, 4, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 8, 7, 7, 7, 7, 3, 7, 3, 3, 3, 3, 3, 3, 5, 5, 1, 3, 5, 1, 1, 1, 1, 1, 5, 5, 5, 7, 2, 2, 2, 2, 4, 6, 6, 2, 6, 4, 2, 2, 2, 2, 2, 2, 2, 4, 4, 4, 4, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 8, 7, 8, 7, 7, 5, 7, 7, 5, 3, 5, 1, 3, 5, 3, 3, 3, 3, 3, 1, 1, 1, 1, 5, 7, 5, 3, 2, 2, 2, 2, 2, 6, 4, 4, 6, 6, 2, 2, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0,
-9, 7, 8, 7, 7, 7, 5, 3, 5, 7, 5, 5, 5, 1, 3, 3, 3, 1, 5, 3, 5, 1, 0, 1, 1, 7, 5, 5, 5, 2, 2, 2, 0, 2, 4, 4, 4, 6, 6, 2, 0, 0, 2, 0, 2, 2, 4, 2, 4, 2, 2, 4, 2, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 8, 7, 8, 7, 7, 5, 5, 7, 5, 5, 7, 1, 5, 7, 5, 3, 5, 1, 3, 3, 0, 1, 1, 3, 5, 7, 5, 2, 2, 2, 2, 2, 4, 6, 4, 4, 6, 4, 2, 2, 2, 0, 0, 2, 2, 0, 2, 4, 2, 4, 2, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 8, 7, 8, 5, 5, 3, 5, 7, 5, 3, 5, 3, 3, 5, 3, 1, 3, 1, 5, 3, 0, 1, 1, 3, 3, 5, 3, 2, 2, 2, 2, 2, 4, 4, 4, 4, 4, 2, 2, 2, 2, 0, 0, 0, 2, 2, 0, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 8, 5, 7, 3, 3, 5, 3, 5, 3, 3, 5, 3, 3, 1, 3, 3, 1, 3, 3, 5, 3, 3, 1, 3, 3, 3, 1, 4, 4, 2, 2, 2, 2, 4, 2, 4, 6, 2, 2, 2, 2, 2, 4, 4, 2, 2, 6, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 5, 1, 7, 3, 7, 5, 3, 5, 1, 3, 5, 1, 3, 3, 1, 1, 1, 3, 3, 1, 1, 3, 1, 3, 3, 5, 3, 2, 2, 2, 2, 2, 4, 2, 4, 6, 6, 2, 2, 2, 2, 2, 0, 2, 0, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 7, 3, 5, 3, 3, 5, 3, 3, 5, 1, 3, 3, 3, 1, 3, 3, 3, 1, 1, 5, 3, 1, 3, 5, 1, 2, 2, 2, 2, 4, 4, 2, 2, 6, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 8, 7, 7, 3, 5, 3, 3, 5, 1, 3, 5, 3, 3, 3, 1, 5, 3, 3, 1, 1, 1, 3, 1, 5, 3, 5, 1, 2, 2, 2, 2, 2, 6, 4, 4, 4, 2, 2, 2, 2, 2, 2, 4, 4, 0, 2, 2, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 5, 3, 5, 7, 5, 5, 1, 5, 3, 3, 5, 1, 1, 3, 3, 3, 3, 3, 1, 3, 3, 5, 5, 5, 1, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 4, 6, 4, 4, 2, 2, 2, 0, 0, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 3, 5, 3, 5, 3, 3, 3, 3, 1, 5, 5, 1, 3, 3, 1, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1, 2, 4, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 5, 3, 3, 3, 3, 7, 1, 5, 5, 3, 3, 3, 1, 1, 3, 3, 3, 5, 1, 1, 1, 1, 3, 3, 3, 4, 2, 0, 2, 4, 6, 4, 4, 2, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
-8, 8, 8, 7, 7, 5, 5, 7, 5, 5, 1, 5, 3, 1, 5, 3, 1, 1, 3, 3, 5, 1, 1, 1, 1, 1, 7, 5, 3, 6, 2, 0, 2, 6, 6, 6, 6, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 4, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 8, 7, 7, 7, 5, 8, 5, 7, 5, 5, 3, 5, 7, 5, 1, 3, 5, 3, 3, 1, 3, 3, 1, 3, 5, 3, 3, 4, 2, 2, 2, 2, 6, 4, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 8, 7, 7, 7, 7, 7, 7, 7, 5, 5, 5, 5, 7, 7, 1, 1, 3, 3, 7, 1, 3, 1, 1, 5, 7, 7, 3, 4, 2, 2, 2, 4, 6, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 8, 7, 7, 7, 7, 7, 7, 5, 5, 5, 7, 5, 7, 7, 3, 3, 1, 3, 5, 1, 0, 1, 1, 7, 7, 7, 5, 4, 2, 0, 2, 2, 6, 6, 2, 2, 2, 2, 0, 2, 4, 2, 0, 0, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 8, 8, 7, 7, 7, 7, 7, 5, 7, 7, 7, 5, 7, 7, 1, 5, 3, 3, 1, 1, 5, 1, 1, 3, 7, 3, 3, 4, 2, 2, 4, 2, 6, 4, 2, 2, 2, 2, 2, 2, 4, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 8, 7, 7, 7, 7, 7, 3, 5, 3, 7, 3, 5, 7, 7, 1, 7, 5, 1, 1, 1, 7, 1, 1, 1, 5, 5, 3, 2, 2, 2, 4, 2, 6, 4, 2, 2, 2, 2, 2, 2, 4, 6, 2, 4, 2, 2, 0, 0, 2, 2, 6, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 8, 7, 8, 7, 7, 5, 5, 3, 5, 3, 3, 3, 5, 5, 1, 1, 3, 1, 3, 5, 3, 3, 1, 5, 5, 5, 3, 2, 2, 0, 2, 4, 2, 2, 2, 2, 2, 6, 6, 2, 2, 2, 2, 2, 2, 2, 4, 6, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 8, 7, 8, 8, 7, 7, 5, 3, 3, 5, 3, 3, 5, 5, 3, 1, 1, 3, 3, 1, 3, 1, 1, 3, 5, 7, 1, 2, 2, 2, 2, 4, 4, 2, 2, 2, 4, 4, 2, 2, 0, 2, 2, 2, 4, 2, 2, 2, 2, 2, 4, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 8, 5, 7, 7, 3, 5, 3, 3, 3, 3, 3, 3, 3, 3, 1, 3, 1, 1, 3, 7, 7, 1, 3, 7, 7, 7, 3, 4, 2, 2, 2, 2, 6, 2, 2, 2, 6, 2, 2, 0, 2, 4, 4, 4, 2, 4, 4, 2, 2, 2, 4, 0, 0, 0, 0, 0, 0, 0,
-9, 5, 7, 5, 3, 5, 3, 5, 3, 3, 1, 3, 7, 3, 5, 1, 3, 5, 1, 3, 1, 5, 7, 3, 3, 7, 5, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 4, 4, 2, 4, 2, 2, 2, 4, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 5, 5, 3, 5, 3, 3, 1, 5, 3, 3, 1, 1, 3, 1, 1, 5, 1, 1, 1, 5, 5, 5, 5, 1, 2, 2, 2, 2, 4, 4, 4, 2, 4, 4, 2, 4, 2, 2, 2, 2, 2, 2, 0, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 7, 7, 5, 5, 1, 5, 3, 3, 3, 3, 1, 3, 3, 1, 1, 5, 1, 1, 3, 3, 5, 5, 3, 1, 2, 2, 2, 2, 4, 4, 4, 2, 2, 2, 2, 4, 2, 4, 2, 2, 4, 2, 2, 2, 2, 4, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 7, 3, 7, 5, 5, 3, 5, 3, 3, 5, 3, 3, 3, 1, 1, 1, 7, 5, 3, 1, 5, 5, 3, 1, 2, 2, 4, 4, 2, 6, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 8, 5, 5, 7, 5, 7, 1, 7, 3, 3, 3, 1, 3, 5, 3, 7, 5, 1, 1, 7, 7, 1, 1, 5, 5, 3, 1, 2, 2, 6, 4, 2, 7, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 8, 7, 7, 5, 5, 5, 3, 5, 3, 5, 1, 3, 3, 5, 3, 7, 5, 1, 3, 3, 5, 3, 1, 5, 7, 3, 3, 2, 2, 2, 2, 2, 6, 4, 4, 2, 2, 2, 2, 4, 4, 2, 0, 2, 4, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 5, 7, 5, 3, 3, 7, 1, 3, 1, 3, 1, 5, 1, 5, 3, 1, 3, 1, 5, 1, 1, 5, 5, 5, 3, 2, 2, 2, 2, 2, 4, 6, 4, 2, 2, 2, 2, 2, 2, 4, 2, 2, 4, 2, 2, 4, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 5, 5, 5, 7, 3, 7, 1, 5, 3, 3, 3, 7, 1, 5, 1, 3, 1, 1, 1, 1, 1, 3, 3, 1, 3, 2, 4, 4, 2, 2, 6, 4, 4, 4, 4, 2, 2, 2, 2, 2, 0, 2, 2, 0, 0, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 3, 7, 5, 3, 5, 3, 3, 5, 1, 1, 3, 1, 5, 3, 1, 3, 3, 3, 1, 1, 3, 1, 3, 1, 1, 2, 4, 4, 6, 4, 4, 6, 2, 2, 2, 4, 4, 2, 2, 2, 2, 2, 2, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 5, 3, 5, 5, 3, 5, 5, 1, 3, 1, 1, 3, 3, 3, 1, 3, 1, 3, 3, 5, 1, 1, 1, 3, 5, 1, 2, 2, 2, 6, 4, 6, 6, 2, 4, 2, 2, 2, 2, 4, 2, 2, 2, 2, 0, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 5, 3, 5, 3, 3, 5, 3, 3, 3, 3, 3, 3, 1, 1, 1, 1, 5, 3, 5, 1, 1, 3, 3, 1, 3, 2, 2, 4, 4, 4, 2, 2, 2, 2, 2, 2, 4, 2, 6, 2, 2, 2, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 3, 5, 5, 3, 5, 5, 5, 3, 1, 3, 5, 5, 5, 3, 1, 1, 3, 3, 1, 3, 1, 3, 1, 3, 3, 2, 2, 4, 4, 4, 4, 4, 4, 2, 4, 4, 2, 2, 2, 2, 2, 2, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 3, 5, 3, 5, 3, 3, 1, 3, 1, 1, 3, 3, 3, 3, 1, 1, 3, 1, 1, 3, 3, 3, 1, 5, 3, 4, 4, 2, 2, 2, 2, 4, 4, 6, 4, 4, 2, 2, 2, 4, 2, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 7, 5, 5, 3, 5, 5, 3, 5, 3, 3, 3, 3, 5, 3, 3, 1, 3, 3, 3, 1, 1, 3, 3, 5, 3, 4, 4, 2, 2, 2, 4, 4, 4, 2, 2, 2, 2, 4, 4, 4, 4, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 5, 3, 5, 5, 5, 5, 3, 3, 1, 3, 3, 5, 3, 1, 5, 1, 1, 3, 1, 3, 3, 3, 5, 1, 2, 2, 4, 2, 2, 2, 2, 6, 4, 2, 2, 2, 4, 6, 2, 2, 2, 0, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 5, 5, 5, 5, 3, 5, 5, 5, 3, 1, 3, 1, 1, 5, 5, 3, 5, 1, 1, 3, 3, 1, 1, 1, 3, 1, 2, 2, 4, 4, 4, 4, 2, 4, 4, 2, 2, 2, 2, 4, 4, 4, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 5, 5, 3, 5, 5, 3, 3, 1, 1, 3, 1, 3, 5, 5, 1, 1, 3, 3, 1, 1, 5, 5, 3, 3, 2, 2, 2, 2, 2, 2, 2, 2, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 8, 7, 5, 5, 5, 3, 5, 3, 1, 3, 5, 3, 3, 5, 3, 3, 1, 1, 1, 1, 5, 5, 3, 3, 1, 3, 3, 2, 2, 6, 4, 4, 2, 2, 2, 2, 4, 4, 4, 4, 2, 2, 0, 0, 0, 2, 4, 4, 4, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 8, 5, 7, 7, 5, 3, 5, 3, 3, 3, 3, 1, 3, 5, 3, 3, 3, 1, 1, 1, 5, 3, 5, 3, 1, 3, 1, 2, 4, 4, 4, 6, 2, 2, 4, 2, 6, 6, 4, 4, 2, 0, 0, 0, 0, 2, 4, 4, 4, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 8, 5, 7, 7, 5, 3, 5, 3, 3, 3, 3, 1, 1, 5, 3, 1, 1, 3, 1, 1, 5, 5, 5, 5, 3, 1, 1, 4, 2, 4, 4, 4, 4, 2, 2, 4, 4, 4, 4, 4, 2, 2, 0, 0, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 8, 7, 7, 7, 5, 3, 5, 5, 3, 3, 5, 3, 3, 3, 3, 3, 1, 1, 3, 0, 3, 7, 5, 3, 3, 5, 1, 2, 2, 2, 2, 4, 6, 4, 2, 2, 4, 4, 2, 2, 0, 0, 0, 0, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 8, 7, 7, 7, 5, 5, 5, 1, 5, 3, 5, 1, 1, 3, 3, 3, 3, 1, 5, 1, 1, 3, 5, 3, 3, 3, 1, 2, 2, 4, 4, 2, 2, 2, 2, 4, 4, 4, 2, 2, 0, 2, 2, 0, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 8, 7, 7, 7, 5, 5, 7, 5, 5, 3, 5, 1, 3, 3, 3, 3, 3, 1, 3, 1, 3, 3, 5, 3, 3, 5, 1, 2, 2, 2, 2, 4, 4, 2, 2, 2, 2, 2, 2, 0, 0, 2, 2, 0, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 8, 7, 7, 5, 7, 7, 7, 3, 3, 3, 5, 1, 1, 3, 5, 1, 3, 1, 1, 1, 5, 5, 3, 3, 3, 1, 1, 4, 4, 2, 2, 4, 4, 2, 2, 2, 0, 4, 2, 0, 0, 2, 2, 4, 4, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 8, 7, 8, 7, 5, 5, 7, 3, 1, 3, 3, 3, 1, 5, 5, 5, 1, 1, 1, 3, 3, 5, 3, 1, 3, 1, 1, 2, 6, 2, 2, 2, 2, 2, 2, 4, 4, 2, 2, 2, 0, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 8, 7, 7, 7, 5, 5, 5, 3, 3, 3, 5, 1, 1, 5, 5, 3, 3, 1, 1, 3, 5, 5, 3, 3, 3, 3, 3, 6, 4, 2, 2, 4, 2, 2, 2, 2, 6, 4, 2, 0, 0, 4, 4, 4, 4, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 8, 7, 7, 7, 5, 3, 5, 3, 3, 3, 5, 3, 1, 5, 3, 5, 3, 1, 1, 5, 5, 5, 5, 3, 3, 5, 1, 4, 4, 2, 2, 4, 2, 2, 2, 0, 2, 2, 2, 2, 0, 2, 4, 6, 4, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 8, 7, 7, 5, 5, 5, 5, 5, 3, 1, 5, 1, 1, 3, 5, 5, 3, 0, 1, 5, 1, 3, 3, 3, 5, 3, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 4, 4, 4, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 8, 5, 7, 5, 5, 5, 5, 3, 3, 3, 5, 1, 1, 5, 5, 7, 5, 1, 1, 3, 1, 3, 5, 3, 5, 3, 1, 4, 4, 4, 2, 2, 4, 2, 2, 2, 2, 4, 2, 4, 4, 2, 2, 2, 0, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 5, 7, 7, 7, 5, 5, 5, 3, 3, 7, 3, 1, 5, 3, 5, 5, 1, 1, 3, 1, 1, 3, 5, 5, 5, 1, 2, 4, 4, 2, 2, 2, 2, 2, 4, 2, 4, 4, 2, 4, 2, 2, 2, 2, 2, 4, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 7, 7, 7, 7, 5, 3, 3, 3, 3, 5, 3, 7, 3, 7, 7, 1, 1, 3, 0, 1, 5, 5, 5, 3, 3, 2, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 0, 0, 6, 6, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 8, 7, 7, 7, 7, 7, 7, 7, 3, 3, 5, 3, 1, 5, 3, 5, 5, 3, 1, 1, 1, 1, 5, 5, 3, 3, 1, 0, 4, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 4, 4, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 8, 7, 7, 7, 8, 7, 7, 7, 3, 3, 5, 1, 3, 7, 3, 5, 3, 3, 1, 1, 1, 5, 5, 7, 5, 5, 3, 2, 4, 4, 4, 2, 2, 2, 2, 2, 2, 0, 2, 2, 2, 2, 4, 2, 6, 6, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 1, 3, 5, 1, 5, 7, 3, 7, 7, 1, 1, 1, 1, 3, 3, 5, 5, 5, 1, 0, 4, 4, 2, 2, 6, 4, 4, 2, 2, 2, 2, 2, 0, 2, 2, 4, 4, 4, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 5, 7, 7, 7, 3, 3, 3, 3, 1, 3, 5, 3, 7, 5, 3, 1, 1, 1, 3, 3, 5, 5, 3, 1, 2, 4, 2, 2, 4, 4, 4, 4, 2, 2, 2, 2, 2, 0, 2, 2, 4, 6, 4, 2, 0, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 3, 7, 7, 5, 5, 5, 7, 1, 3, 3, 5, 1, 7, 5, 1, 1, 1, 3, 3, 1, 5, 3, 3, 1, 2, 4, 2, 2, 2, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 7, 3, 5, 7, 7, 5, 3, 5, 1, 3, 1, 3, 5, 3, 3, 1, 1, 3, 3, 3, 1, 3, 5, 5, 3, 2, 4, 2, 2, 2, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 4, 4, 4, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 7, 7, 7, 7, 5, 7, 3, 3, 5, 3, 1, 5, 5, 3, 3, 1, 3, 3, 3, 5, 1, 1, 5, 3, 1, 2, 4, 2, 2, 4, 2, 4, 2, 2, 4, 2, 2, 0, 2, 4, 0, 2, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 7, 7, 7, 7, 3, 7, 1, 3, 5, 3, 3, 3, 3, 5, 1, 1, 3, 3, 5, 5, 3, 5, 7, 3, 1, 2, 2, 2, 2, 2, 2, 2, 2, 4, 6, 4, 2, 2, 4, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 7, 7, 7, 7, 3, 5, 3, 1, 3, 3, 3, 3, 3, 3, 3, 1, 3, 3, 3, 3, 3, 3, 5, 3, 1, 2, 2, 2, 2, 2, 4, 2, 2, 6, 7, 4, 2, 6, 4, 2, 0, 2, 0, 0, 0, 2, 2, 0, 2, 2, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 7, 7, 7, 7, 5, 3, 1, 3, 1, 5, 3, 3, 3, 5, 5, 1, 3, 3, 3, 3, 1, 5, 3, 3, 1, 2, 2, 2, 2, 2, 4, 2, 2, 7, 6, 2, 2, 6, 6, 2, 0, 0, 0, 0, 0, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 3, 7, 7, 7, 3, 3, 3, 1, 7, 3, 1, 3, 3, 1, 1, 3, 1, 3, 5, 1, 3, 3, 1, 1, 2, 2, 4, 2, 4, 4, 4, 4, 4, 2, 2, 2, 4, 4, 6, 4, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 5, 3, 3, 3, 5, 3, 1, 3, 3, 5, 5, 5, 1, 3, 1, 3, 3, 1, 1, 1, 1, 7, 5, 3, 1, 2, 4, 2, 2, 2, 4, 4, 2, 2, 2, 2, 0, 2, 4, 6, 6, 2, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 5, 7, 7, 5, 7, 7, 5, 5, 3, 7, 3, 5, 7, 5, 3, 3, 3, 3, 3, 1, 1, 3, 7, 7, 3, 3, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 2, 6, 4, 4, 2, 2, 0, 2, 2, 4, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 5, 7, 7, 7, 7, 5, 3, 3, 7, 7, 3, 5, 3, 3, 3, 3, 3, 3, 1, 1, 3, 5, 3, 5, 3, 4, 2, 2, 4, 2, 6, 2, 2, 0, 0, 2, 2, 6, 4, 2, 2, 2, 0, 2, 2, 4, 2, 4, 2, 0, 0, 0, 0, 0, 0, 0,
-9, 9, 7, 5, 5, 7, 7, 5, 7, 5, 7, 3, 3, 3, 3, 5, 3, 3, 3, 1, 3, 3, 1, 1, 3, 5, 5, 3, 1, 2, 2, 4, 2, 4, 2, 2, 2, 2, 2, 2, 2, 4, 4, 2, 4, 2, 0, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 3, 5, 7, 8, 7, 7, 5, 3, 3, 5, 5, 1, 5, 3, 3, 3, 5, 1, 1, 1, 3, 3, 5, 7, 7, 5, 2, 2, 2, 2, 2, 2, 4, 6, 2, 2, 2, 4, 4, 4, 2, 2, 2, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 9, 7, 3, 5, 7, 8, 7, 7, 5, 5, 1, 3, 5, 3, 3, 3, 3, 5, 3, 1, 3, 1, 1, 5, 5, 7, 5, 5, 2, 0, 2, 4, 4, 2, 2, 2, 2, 2, 2, 4, 6, 6, 4, 2, 2, 2, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 9, 7, 5, 5, 7, 7, 7, 7, 5, 3, 1, 5, 3, 1, 5, 3, 3, 3, 3, 3, 1, 1, 1, 3, 7, 5, 5, 5, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 4, 4, 4, 4, 4, 2, 2, 2, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 8, 7, 7, 7, 7, 8, 7, 7, 5, 3, 5, 7, 3, 3, 3, 1, 1, 7, 7, 1, 1, 1, 1, 3, 3, 3, 3, 4, 2, 2, 2, 4, 4, 6, 4, 2, 6, 2, 2, 6, 4, 4, 2, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 8, 5, 7, 7, 7, 5, 7, 3, 3, 3, 3, 5, 3, 3, 1, 1, 3, 7, 5, 1, 3, 1, 3, 5, 5, 5, 3, 4, 2, 2, 2, 2, 2, 4, 2, 2, 4, 2, 2, 6, 4, 4, 2, 4, 2, 0, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 5, 5, 7, 3, 3, 5, 3, 3, 1, 3, 3, 1, 3, 3, 3, 5, 3, 1, 1, 1, 3, 7, 5, 3, 1, 2, 2, 2, 2, 2, 2, 2, 2, 4, 6, 2, 4, 2, 2, 2, 2, 2, 0, 2, 0, 2, 2, 4, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 5, 7, 7, 8, 5, 7, 5, 3, 5, 5, 5, 3, 5, 3, 1, 5, 3, 3, 3, 1, 1, 3, 5, 5, 3, 1, 2, 2, 4, 4, 2, 4, 2, 2, 2, 4, 2, 6, 4, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 5, 7, 7, 8, 7, 7, 7, 3, 3, 7, 5, 3, 5, 5, 1, 3, 5, 7, 3, 3, 3, 3, 7, 3, 3, 1, 2, 4, 6, 6, 4, 2, 4, 4, 4, 2, 0, 2, 6, 4, 2, 2, 2, 2, 2, 2, 0, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 8, 7, 7, 7, 7, 7, 5, 5, 3, 5, 7, 3, 3, 5, 5, 5, 3, 1, 3, 1, 1, 5, 3, 5, 1, 5, 1, 2, 4, 4, 4, 4, 2, 4, 4, 4, 4, 2, 2, 4, 6, 4, 2, 2, 2, 2, 0, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 5, 5, 7, 7, 5, 5, 3, 3, 7, 1, 5, 5, 7, 5, 3, 1, 1, 5, 3, 3, 1, 1, 3, 3, 3, 4, 6, 6, 6, 4, 4, 4, 2, 4, 2, 2, 4, 2, 4, 4, 4, 4, 0, 2, 0, 2, 2, 0, 2, 2, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 1, 3, 7, 7, 7, 3, 3, 1, 5, 1, 7, 5, 5, 5, 1, 3, 1, 5, 5, 3, 3, 1, 3, 5, 3, 2, 4, 4, 4, 6, 4, 6, 2, 2, 2, 2, 2, 2, 4, 4, 2, 4, 2, 2, 0, 2, 0, 0, 2, 2, 0, 0, 0, 0, 0, 0,
-9, 1, 5, 5, 3, 5, 7, 7, 5, 3, 3, 1, 3, 5, 3, 7, 3, 5, 3, 1, 3, 3, 3, 5, 1, 3, 1, 1, 3, 2, 2, 4, 4, 4, 4, 4, 4, 2, 2, 2, 4, 2, 4, 2, 2, 2, 2, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0,
-9, 5, 7, 7, 3, 7, 7, 5, 3, 5, 3, 3, 5, 7, 7, 5, 3, 5, 3, 1, 3, 1, 3, 5, 1, 1, 3, 1, 1, 2, 2, 4, 4, 2, 4, 2, 4, 2, 4, 4, 6, 4, 4, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 5, 3, 3, 5, 3, 3, 3, 3, 3, 3, 5, 1, 1, 3, 3, 1, 7, 1, 5, 5, 5, 1, 0, 1, 1, 4, 2, 6, 6, 2, 4, 6, 2, 4, 2, 4, 2, 4, 2, 2, 2, 4, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 5, 3, 3, 3, 5, 3, 1, 3, 5, 1, 1, 5, 3, 1, 3, 5, 3, 1, 1, 1, 3, 3, 5, 3, 3, 2, 4, 6, 4, 2, 4, 4, 2, 2, 2, 2, 2, 2, 2, 0, 0, 2, 2, 4, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 8, 7, 5, 5, 3, 5, 5, 3, 3, 3, 3, 3, 3, 3, 3, 1, 5, 3, 5, 3, 1, 3, 5, 3, 5, 5, 1, 2, 2, 2, 2, 2, 4, 2, 2, 4, 6, 2, 2, 2, 2, 0, 4, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 8, 5, 5, 7, 3, 5, 5, 5, 3, 3, 3, 3, 3, 3, 1, 3, 3, 1, 3, 3, 1, 3, 1, 3, 5, 3, 1, 4, 2, 2, 2, 4, 2, 4, 2, 2, 4, 2, 2, 2, 2, 4, 2, 4, 2, 2, 2, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 8, 7, 3, 7, 5, 5, 7, 3, 1, 1, 5, 5, 3, 3, 1, 3, 5, 1, 1, 7, 7, 3, 3, 3, 5, 5, 1, 2, 2, 2, 2, 6, 6, 4, 2, 2, 0, 7, 4, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 2, 2, 0, 0, 0, 0, 0, 0,
-8, 7, 8, 7, 7, 7, 5, 5, 7, 7, 3, 1, 3, 5, 3, 1, 3, 3, 3, 3, 1, 7, 7, 3, 3, 5, 5, 3, 1, 2, 4, 2, 2, 4, 6, 4, 4, 2, 2, 4, 2, 4, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 5, 5, 7, 3, 5, 5, 3, 3, 1, 5, 5, 1, 3, 3, 3, 5, 5, 1, 5, 1, 1, 3, 5, 5, 5, 1, 2, 2, 0, 2, 4, 6, 4, 4, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 3, 5, 5, 3, 5, 5, 3, 3, 1, 5, 3, 1, 3, 3, 3, 1, 5, 3, 3, 3, 1, 1, 1, 1, 3, 4, 4, 4, 4, 4, 4, 2, 2, 2, 2, 2, 2, 4, 4, 2, 4, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 5, 3, 5, 5, 3, 5, 1, 5, 1, 3, 5, 1, 3, 1, 3, 3, 1, 1, 1, 3, 3, 1, 1, 3, 3, 3, 2, 2, 2, 4, 4, 4, 2, 2, 2, 2, 4, 6, 2, 4, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 3, 3, 5, 3, 5, 3, 3, 1, 3, 3, 1, 3, 1, 3, 3, 3, 3, 5, 3, 3, 1, 1, 1, 3, 3, 4, 2, 2, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 6, 4, 2, 2, 2, 0, 0, 0, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 3, 3, 7, 3, 5, 5, 3, 1, 3, 3, 3, 1, 3, 3, 3, 1, 3, 5, 7, 3, 3, 1, 1, 3, 1, 1, 2, 2, 2, 6, 4, 4, 4, 4, 2, 4, 2, 2, 2, 2, 2, 2, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 3, 5, 3, 5, 5, 5, 3, 3, 3, 3, 1, 1, 3, 1, 3, 5, 3, 1, 1, 1, 1, 1, 5, 7, 5, 3, 2, 2, 2, 2, 4, 7, 6, 2, 2, 2, 0, 2, 2, 4, 2, 2, 2, 4, 4, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 5, 5, 5, 3, 5, 3, 3, 5, 3, 3, 3, 3, 1, 3, 5, 5, 1, 1, 1, 1, 3, 5, 7, 5, 1, 2, 2, 2, 2, 4, 4, 4, 4, 2, 2, 0, 0, 0, 2, 4, 2, 4, 4, 2, 4, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 7, 7, 5, 7, 5, 3, 5, 3, 3, 3, 3, 1, 1, 5, 5, 1, 1, 1, 1, 3, 7, 5, 3, 1, 2, 2, 2, 2, 4, 4, 6, 6, 4, 2, 0, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 7, 7, 7, 5, 7, 5, 3, 3, 3, 1, 5, 3, 1, 5, 7, 3, 1, 3, 3, 1, 5, 7, 7, 1, 3, 2, 0, 2, 2, 4, 4, 6, 4, 4, 2, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 8, 5, 7, 3, 7, 5, 3, 5, 1, 1, 3, 3, 1, 3, 5, 1, 1, 3, 3, 1, 1, 7, 7, 3, 3, 2, 2, 2, 2, 4, 4, 4, 4, 2, 2, 2, 2, 4, 2, 2, 4, 4, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 7, 3, 5, 5, 5, 3, 5, 1, 3, 3, 3, 1, 3, 7, 1, 1, 1, 1, 1, 5, 7, 7, 5, 3, 2, 0, 2, 2, 2, 4, 6, 2, 2, 2, 2, 2, 2, 2, 2, 2, 6, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 5, 7, 7, 5, 5, 7, 3, 5, 5, 1, 1, 3, 5, 3, 3, 5, 3, 1, 1, 1, 3, 3, 5, 7, 5, 3, 2, 2, 0, 2, 2, 6, 4, 2, 4, 2, 2, 4, 2, 2, 2, 2, 4, 2, 2, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 7, 3, 7, 5, 3, 3, 3, 3, 1, 3, 1, 1, 5, 5, 3, 1, 1, 3, 1, 3, 7, 7, 5, 3, 0, 2, 2, 0, 4, 2, 4, 2, 4, 2, 4, 4, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 5, 3, 5, 7, 7, 5, 3, 5, 3, 3, 1, 5, 3, 3, 3, 1, 3, 3, 1, 1, 1, 3, 5, 5, 5, 7, 1, 3, 4, 2, 0, 0, 2, 2, 2, 2, 4, 4, 4, 4, 4, 2, 4, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 5, 3, 5, 7, 3, 5, 5, 5, 1, 3, 3, 7, 3, 3, 1, 3, 1, 3, 3, 3, 1, 1, 3, 3, 3, 5, 1, 3, 2, 4, 2, 2, 2, 2, 2, 2, 4, 4, 2, 4, 4, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0,
-9, 7, 5, 7, 5, 5, 5, 3, 5, 3, 3, 3, 3, 5, 3, 1, 3, 1, 3, 3, 3, 1, 1, 3, 1, 3, 1, 3, 3, 2, 4, 2, 2, 2, 2, 4, 2, 4, 4, 6, 2, 2, 4, 4, 6, 4, 2, 2, 2, 0, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 5, 5, 5, 5, 1, 5, 1, 3, 3, 3, 5, 3, 1, 1, 3, 3, 1, 3, 3, 1, 3, 3, 3, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 1, 5, 5, 3, 5, 3, 3, 5, 5, 5, 5, 1, 1, 3, 1, 1, 3, 3, 3, 1, 1, 1, 3, 3, 1, 2, 2, 2, 2, 2, 2, 4, 2, 4, 6, 4, 4, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 7, 7, 7, 7, 1, 3, 3, 3, 3, 3, 3, 1, 3, 1, 3, 3, 1, 1, 1, 1, 7, 5, 5, 5, 2, 2, 2, 2, 6, 6, 4, 4, 2, 2, 2, 4, 4, 4, 2, 4, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 7, 7, 7, 7, 7, 5, 3, 5, 1, 5, 3, 5, 3, 3, 1, 3, 3, 3, 1, 1, 5, 7, 7, 3, 3, 2, 0, 2, 2, 4, 2, 4, 4, 4, 0, 2, 4, 4, 4, 4, 4, 2, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 8, 7, 7, 7, 7, 7, 8, 7, 7, 7, 7, 7, 7, 7, 5, 3, 1, 3, 5, 3, 1, 1, 3, 7, 7, 7, 5, 4, 2, 2, 2, 2, 2, 4, 4, 2, 2, 2, 6, 4, 2, 2, 4, 0, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 8, 7, 8, 8, 7, 8, 8, 7, 7, 7, 7, 7, 5, 7, 1, 3, 1, 3, 1, 1, 1, 0, 1, 7, 7, 3, 3, 4, 4, 0, 2, 2, 2, 4, 4, 2, 0, 2, 4, 4, 2, 2, 4, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 9, 7, 7, 8, 7, 7, 7, 8, 7, 5, 5, 7, 5, 7, 7, 3, 5, 3, 3, 3, 0, 1, 0, 3, 7, 7, 5, 1, 4, 4, 2, 2, 2, 4, 6, 4, 2, 2, 2, 4, 6, 2, 2, 6, 2, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 8, 7, 7, 7, 7, 7, 8, 7, 7, 5, 7, 7, 3, 7, 5, 3, 1, 3, 3, 1, 1, 1, 3, 7, 7, 3, 5, 6, 6, 2, 0, 2, 2, 4, 4, 2, 2, 0, 4, 4, 2, 2, 4, 2, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 8, 7, 7, 7, 7, 7, 7, 7, 5, 7, 7, 3, 7, 7, 7, 1, 1, 1, 3, 1, 0, 1, 5, 7, 7, 3, 3, 4, 2, 0, 2, 2, 4, 4, 4, 2, 0, 0, 2, 6, 4, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 8, 7, 8, 7, 7, 7, 7, 7, 7, 7, 7, 5, 7, 7, 7, 1, 1, 1, 3, 1, 0, 1, 5, 7, 7, 3, 3, 2, 2, 2, 2, 2, 2, 4, 4, 2, 2, 0, 4, 6, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 9, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 5, 7, 7, 7, 1, 1, 5, 5, 1, 0, 1, 5, 7, 7, 3, 5, 6, 4, 2, 2, 2, 4, 4, 2, 2, 2, 2, 2, 4, 4, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 8, 7, 7, 7, 7, 7, 7, 7, 7, 3, 7, 7, 7, 1, 1, 5, 7, 3, 1, 1, 3, 7, 7, 7, 3, 4, 4, 2, 0, 2, 2, 4, 2, 2, 0, 0, 2, 6, 6, 2, 2, 2, 2, 2, 2, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 8, 7, 7, 5, 7, 7, 5, 5, 1, 3, 3, 1, 3, 5, 3, 3, 1, 1, 3, 1, 1, 1, 1, 5, 5, 3, 3, 4, 2, 2, 2, 2, 4, 6, 2, 4, 2, 2, 0, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-8, 5, 7, 5, 5, 3, 3, 5, 5, 3, 3, 3, 3, 3, 1, 5, 5, 1, 3, 1, 1, 1, 1, 3, 3, 3, 3, 3, 3, 4, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 4, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 5, 3, 5, 5, 3, 3, 1, 3, 5, 3, 3, 3, 1, 1, 3, 3, 3, 3, 5, 3, 3, 3, 3, 3, 4, 2, 2, 2, 2, 2, 2, 4, 2, 2, 4, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 2, 0, 0, 0, 0,
-9, 7, 7, 5, 3, 5, 5, 3, 5, 5, 3, 1, 3, 3, 3, 3, 5, 3, 3, 1, 1, 3, 5, 3, 5, 3, 3, 3, 1, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 0, 0, 2, 2, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 5, 3, 5, 3, 5, 3, 3, 1, 3, 3, 1, 3, 1, 3, 1, 1, 5, 5, 3, 3, 3, 3, 3, 1, 4, 2, 2, 2, 2, 2, 2, 2, 2, 4, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 5, 3, 5, 5, 3, 5, 3, 1, 3, 3, 5, 3, 1, 3, 3, 5, 3, 1, 3, 1, 1, 3, 3, 3, 2, 2, 2, 2, 4, 4, 4, 2, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 3, 5, 3, 3, 3, 5, 3, 5, 3, 1, 3, 5, 3, 1, 3, 5, 3, 3, 3, 1, 1, 1, 1, 3, 3, 2, 4, 2, 4, 2, 2, 4, 4, 2, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 5, 5, 5, 5, 3, 5, 3, 3, 5, 3, 5, 3, 3, 1, 1, 3, 1, 3, 3, 1, 3, 5, 1, 3, 5, 3, 2, 2, 2, 2, 2, 4, 4, 4, 2, 4, 4, 6, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 8, 7, 5, 7, 3, 3, 5, 5, 5, 7, 3, 1, 5, 3, 3, 1, 1, 3, 3, 5, 3, 1, 3, 1, 3, 5, 1, 2, 2, 0, 2, 2, 2, 6, 2, 4, 2, 6, 4, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 8, 7, 5, 7, 7, 7, 7, 5, 3, 5, 5, 3, 3, 3, 3, 3, 1, 1, 5, 5, 1, 1, 3, 1, 5, 7, 5, 4, 2, 0, 2, 2, 4, 6, 4, 2, 4, 6, 4, 2, 2, 0, 2, 0, 0, 0, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 7, 7, 3, 5, 7, 3, 3, 5, 3, 1, 3, 3, 5, 3, 1, 1, 5, 5, 3, 1, 3, 3, 3, 7, 3, 4, 2, 0, 2, 2, 2, 4, 2, 2, 2, 6, 6, 2, 2, 0, 2, 2, 0, 0, 0, 2, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 5, 3, 5, 5, 5, 3, 3, 3, 1, 3, 3, 5, 3, 1, 1, 5, 3, 5, 1, 3, 1, 3, 5, 3, 4, 2, 0, 2, 2, 4, 2, 2, 2, 4, 4, 6, 2, 2, 0, 2, 2, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 7, 7, 3, 7, 5, 3, 3, 5, 3, 1, 3, 5, 5, 3, 1, 1, 1, 5, 1, 1, 5, 5, 3, 3, 3, 4, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 4, 4, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 7, 5, 5, 7, 5, 3, 3, 3, 5, 1, 1, 5, 5, 3, 1, 3, 3, 3, 0, 1, 5, 7, 5, 3, 3, 2, 2, 0, 2, 4, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 4, 4, 2, 0, 2, 0, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 5, 5, 7, 7, 5, 3, 7, 5, 1, 3, 3, 3, 3, 1, 3, 5, 5, 0, 3, 3, 1, 5, 5, 3, 2, 2, 0, 2, 4, 2, 2, 2, 2, 2, 2, 2, 4, 2, 4, 2, 2, 2, 0, 0, 0, 4, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-8, 8, 7, 7, 7, 7, 7, 5, 7, 5, 3, 3, 5, 3, 3, 5, 3, 1, 1, 3, 3, 1, 3, 5, 1, 3, 3, 3, 3, 2, 0, 2, 4, 4, 2, 4, 2, 2, 2, 4, 4, 2, 2, 2, 2, 2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 5, 5, 3, 5, 5, 3, 1, 3, 5, 3, 3, 3, 3, 3, 1, 3, 3, 1, 3, 5, 3, 1, 3, 3, 3, 2, 0, 2, 4, 2, 2, 2, 4, 2, 2, 6, 4, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 9, 7, 5, 7, 3, 3, 3, 5, 3, 3, 3, 5, 3, 3, 3, 3, 3, 1, 3, 1, 1, 5, 3, 3, 3, 3, 3, 3, 2, 2, 2, 2, 2, 4, 4, 2, 2, 4, 4, 2, 2, 4, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 5, 3, 5, 5, 3, 1, 1, 5, 3, 3, 5, 3, 1, 3, 3, 1, 1, 3, 1, 3, 3, 5, 3, 3, 2, 2, 0, 2, 2, 2, 4, 2, 2, 2, 2, 4, 4, 4, 2, 0, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 8, 5, 7, 3, 3, 3, 3, 3, 3, 3, 5, 3, 1, 5, 3, 1, 1, 5, 3, 3, 1, 3, 5, 5, 5, 5, 5, 2, 2, 2, 2, 4, 4, 4, 4, 2, 2, 6, 6, 4, 2, 2, 2, 2, 2, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 8, 7, 8, 7, 7, 3, 5, 3, 3, 5, 3, 1, 1, 3, 5, 1, 3, 3, 3, 1, 1, 3, 5, 3, 3, 5, 5, 2, 2, 0, 2, 4, 2, 2, 2, 0, 2, 2, 4, 2, 4, 6, 4, 4, 4, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 8, 8, 7, 7, 7, 7, 7, 5, 7, 5, 5, 3, 3, 5, 3, 1, 5, 3, 3, 3, 1, 1, 3, 5, 3, 5, 5, 2, 0, 2, 2, 4, 6, 4, 2, 0, 0, 2, 0, 2, 4, 6, 6, 6, 4, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 8, 7, 7, 7, 7, 7, 8, 3, 7, 7, 5, 7, 7, 7, 7, 3, 5, 5, 3, 5, 5, 5, 5, 5, 5, 7, 5, 4, 0, 0, 2, 4, 4, 4, 2, 0, 0, 2, 2, 0, 4, 6, 6, 6, 4, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 8, 7, 7, 7, 7, 7, 7, 3, 7, 7, 5, 5, 7, 7, 3, 1, 5, 3, 1, 1, 3, 3, 1, 3, 7, 5, 5, 2, 0, 0, 2, 4, 4, 4, 2, 2, 2, 2, 2, 0, 2, 6, 4, 2, 4, 4, 4, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 8, 7, 7, 7, 7, 7, 7, 5, 7, 5, 3, 7, 7, 5, 3, 3, 3, 3, 1, 3, 5, 3, 7, 5, 3, 3, 2, 0, 2, 2, 4, 4, 4, 4, 2, 2, 4, 4, 2, 0, 4, 4, 2, 2, 2, 4, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 7, 7, 5, 7, 7, 5, 3, 5, 3, 3, 1, 5, 3, 5, 3, 3, 1, 1, 3, 3, 1, 5, 3, 3, 3, 2, 2, 2, 2, 2, 2, 2, 6, 4, 2, 6, 6, 2, 0, 2, 4, 2, 2, 2, 4, 0, 0, 2, 0, 2, 0, 0, 0, 0, 0, 0,
-9, 1, 1, 7, 5, 5, 3, 5, 5, 1, 3, 3, 1, 3, 1, 5, 1, 3, 3, 1, 1, 1, 1, 3, 1, 5, 5, 1, 1, 4, 2, 4, 2, 2, 2, 2, 4, 4, 2, 4, 4, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 1, 1, 1, 5, 3, 5, 5, 5, 1, 5, 3, 3, 3, 3, 5, 3, 3, 3, 3, 3, 1, 3, 3, 3, 3, 7, 1, 1, 2, 2, 4, 2, 2, 2, 4, 6, 6, 4, 2, 4, 2, 4, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 1, 1, 1, 5, 3, 5, 3, 7, 1, 3, 5, 1, 1, 5, 5, 3, 3, 1, 3, 3, 3, 3, 5, 5, 7, 5, 1, 1, 4, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 4, 6, 4, 2, 2, 0, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 5, 3, 7, 3, 7, 5, 7, 1, 5, 3, 1, 3, 5, 7, 3, 3, 1, 3, 5, 1, 3, 3, 3, 5, 7, 1, 1, 6, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 6, 6, 4, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 8, 5, 5, 7, 7, 7, 7, 1, 7, 5, 5, 3, 5, 7, 3, 3, 3, 1, 3, 5, 3, 1, 3, 3, 3, 3, 1, 4, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 6, 4, 4, 2, 4, 2, 0, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 8, 7, 7, 7, 7, 7, 8, 7, 7, 7, 7, 3, 5, 7, 5, 5, 5, 0, 7, 7, 3, 3, 5, 7, 3, 5, 1, 4, 2, 2, 2, 4, 4, 2, 2, 2, 4, 2, 0, 2, 6, 2, 2, 2, 2, 0, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 8, 7, 7, 7, 7, 7, 7, 3, 5, 3, 7, 5, 1, 7, 5, 5, 5, 1, 5, 5, 1, 1, 3, 5, 3, 1, 1, 2, 2, 2, 4, 4, 4, 2, 2, 2, 2, 4, 2, 2, 6, 4, 0, 2, 2, 0, 0, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 8, 7, 7, 7, 8, 7, 7, 7, 7, 5, 7, 3, 1, 7, 7, 5, 5, 1, 3, 1, 1, 1, 3, 5, 5, 1, 1, 4, 4, 4, 4, 4, 6, 6, 6, 2, 2, 4, 0, 2, 6, 2, 2, 0, 0, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 9, 7, 7, 7, 7, 7, 7, 7, 7, 5, 5, 1, 3, 7, 7, 5, 5, 1, 3, 3, 1, 1, 3, 5, 3, 1, 1, 2, 2, 4, 2, 2, 6, 4, 4, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 8, 7, 7, 7, 8, 7, 7, 7, 7, 7, 7, 3, 5, 7, 3, 5, 5, 3, 1, 5, 1, 3, 5, 7, 7, 5, 1, 0, 4, 4, 2, 2, 2, 4, 4, 2, 2, 2, 2, 2, 2, 4, 4, 2, 2, 2, 0, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 8, 7, 7, 7, 7, 5, 3, 7, 5, 3, 5, 1, 3, 5, 3, 5, 3, 1, 1, 1, 1, 3, 1, 5, 5, 3, 1, 2, 2, 2, 4, 2, 2, 2, 4, 4, 2, 2, 2, 2, 2, 4, 4, 4, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 8, 7, 7, 7, 7, 7, 5, 7, 7, 5, 5, 1, 3, 5, 3, 3, 3, 3, 0, 3, 3, 3, 5, 5, 7, 5, 1, 2, 2, 2, 2, 4, 4, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 8, 7, 7, 7, 5, 7, 7, 7, 7, 5, 7, 5, 3, 5, 1, 5, 5, 3, 1, 1, 1, 1, 5, 3, 7, 7, 5, 2, 2, 2, 4, 4, 2, 2, 2, 2, 2, 2, 2, 4, 4, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 3, 5, 3, 5, 3, 5, 3, 1, 5, 3, 1, 3, 3, 3, 3, 5, 1, 1, 1, 1, 1, 5, 5, 5, 1, 0, 2, 0, 2, 2, 2, 2, 2, 6, 4, 2, 4, 6, 4, 2, 2, 2, 0, 2, 0, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 5, 3, 3, 5, 1, 5, 5, 5, 3, 3, 3, 3, 1, 1, 3, 1, 1, 1, 3, 1, 1, 3, 3, 3, 2, 2, 4, 4, 4, 4, 2, 4, 2, 2, 4, 2, 4, 4, 4, 4, 4, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 3, 5, 5, 3, 5, 3, 1, 3, 3, 3, 5, 3, 3, 3, 3, 1, 1, 1, 1, 3, 3, 1, 3, 3, 1, 2, 2, 2, 4, 4, 4, 4, 4, 4, 2, 2, 2, 2, 4, 2, 4, 4, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 5, 5, 5, 3, 3, 3, 3, 3, 3, 5, 3, 3, 3, 3, 3, 3, 1, 3, 3, 1, 1, 1, 3, 3, 3, 3, 2, 2, 2, 2, 6, 6, 2, 4, 4, 2, 2, 4, 2, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 8, 5, 3, 5, 1, 7, 5, 3, 5, 5, 7, 5, 1, 7, 7, 5, 1, 5, 7, 3, 1, 7, 7, 7, 3, 4, 2, 2, 2, 2, 6, 4, 4, 4, 4, 2, 2, 2, 2, 4, 2, 4, 2, 2, 0, 0, 0, 2, 4, 2, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 7, 7, 3, 7, 7, 7, 5, 3, 5, 5, 7, 5, 1, 3, 1, 1, 3, 3, 5, 3, 1, 3, 5, 7, 3, 2, 2, 2, 2, 2, 4, 4, 6, 6, 4, 2, 2, 4, 2, 2, 2, 0, 0, 2, 2, 0, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 5, 3, 5, 3, 5, 5, 3, 1, 3, 7, 5, 3, 3, 3, 1, 1, 3, 1, 3, 1, 1, 3, 5, 7, 1, 4, 2, 2, 2, 2, 2, 4, 6, 6, 4, 2, 2, 2, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 3, 3, 5, 3, 3, 5, 5, 3, 1, 1, 3, 3, 1, 3, 3, 1, 1, 5, 3, 3, 1, 3, 1, 5, 5, 2, 2, 4, 4, 6, 4, 2, 4, 2, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 3, 5, 5, 5, 3, 7, 5, 1, 3, 3, 3, 5, 1, 3, 5, 3, 3, 3, 1, 1, 1, 3, 3, 3, 3, 2, 2, 2, 4, 6, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 9, 8, 7, 5, 5, 5, 7, 5, 5, 5, 3, 5, 3, 5, 7, 1, 3, 3, 1, 1, 5, 3, 3, 1, 5, 5, 5, 5, 2, 2, 0, 6, 6, 2, 2, 2, 2, 2, 6, 6, 0, 0, 2, 2, 2, 4, 2, 2, 4, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 8, 7, 7, 7, 7, 7, 5, 5, 5, 5, 7, 5, 7, 7, 5, 1, 1, 3, 3, 5, 7, 1, 1, 7, 7, 5, 7, 4, 2, 2, 4, 2, 6, 2, 2, 2, 2, 4, 2, 0, 0, 4, 4, 2, 4, 2, 2, 2, 2, 2, 4, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 8, 7, 7, 7, 7, 7, 5, 5, 7, 5, 7, 5, 5, 7, 7, 3, 3, 1, 1, 7, 7, 1, 1, 7, 5, 5, 5, 4, 2, 2, 2, 2, 6, 6, 2, 2, 2, 2, 2, 0, 2, 4, 7, 4, 2, 4, 2, 0, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 5, 7, 7, 5, 3, 1, 1, 3, 1, 5, 1, 3, 7, 7, 5, 5, 4, 2, 0, 2, 2, 6, 4, 2, 2, 0, 0, 0, 2, 0, 2, 4, 4, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 8, 7, 7, 7, 7, 7, 7, 5, 7, 7, 7, 3, 5, 7, 5, 1, 1, 1, 3, 1, 3, 1, 5, 5, 7, 5, 3, 2, 2, 2, 2, 4, 6, 4, 2, 2, 2, 2, 2, 2, 2, 2, 4, 6, 4, 6, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 9, 8, 7, 7, 5, 5, 5, 7, 3, 3, 3, 5, 1, 3, 7, 3, 3, 1, 1, 3, 3, 3, 1, 3, 5, 3, 3, 5, 4, 2, 0, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 6, 2, 2, 2, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 5, 5, 5, 3, 5, 5, 3, 3, 3, 1, 1, 3, 3, 7, 3, 1, 1, 1, 3, 5, 3, 1, 3, 1, 3, 2, 2, 4, 4, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 5, 7, 5, 5, 5, 3, 5, 5, 1, 3, 5, 7, 1, 5, 3, 1, 3, 1, 1, 1, 3, 3, 5, 3, 3, 1, 3, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 9, 7, 7, 7, 7, 5, 5, 5, 5, 1, 3, 7, 3, 3, 5, 3, 1, 3, 5, 1, 1, 1, 5, 5, 5, 3, 5, 5, 2, 2, 2, 2, 2, 6, 4, 4, 4, 4, 4, 6, 2, 2, 6, 0, 0, 2, 0, 2, 4, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 7, 5, 3, 5, 3, 3, 7, 3, 3, 1, 5, 3, 3, 1, 1, 3, 1, 1, 1, 7, 3, 1, 5, 1, 1, 3, 6, 6, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 7, 5, 3, 3, 5, 7, 1, 3, 5, 1, 3, 5, 5, 1, 5, 3, 1, 3, 7, 1, 1, 3, 3, 1, 3, 2, 2, 2, 2, 2, 4, 6, 4, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 4, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 8, 5, 7, 3, 5, 7, 5, 3, 3, 3, 5, 1, 3, 3, 3, 1, 1, 3, 5, 1, 3, 1, 3, 5, 5, 5, 3, 2, 2, 0, 2, 4, 4, 6, 4, 2, 2, 0, 2, 2, 2, 4, 2, 4, 2, 0, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 8, 7, 7, 7, 7, 7, 7, 3, 5, 7, 7, 5, 5, 5, 5, 1, 1, 1, 3, 3, 3, 1, 1, 5, 5, 3, 3, 2, 2, 2, 2, 4, 4, 6, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 0, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 8, 7, 7, 7, 7, 7, 7, 5, 5, 7, 7, 3, 5, 7, 5, 3, 3, 1, 3, 1, 5, 1, 1, 7, 7, 3, 3, 2, 2, 2, 2, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 8, 7, 7, 7, 7, 7, 5, 7, 7, 3, 7, 3, 5, 5, 5, 3, 1, 3, 3, 1, 1, 1, 1, 5, 7, 7, 3, 2, 2, 2, 2, 2, 6, 6, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 8, 7, 7, 7, 7, 7, 5, 5, 7, 3, 5, 3, 3, 5, 5, 1, 1, 5, 3, 1, 5, 1, 0, 3, 5, 3, 1, 2, 2, 4, 4, 4, 6, 6, 4, 2, 0, 2, 2, 0, 2, 4, 4, 4, 7, 2, 2, 2, 0, 2, 4, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 9, 7, 7, 7, 7, 8, 7, 7, 5, 7, 5, 3, 7, 5, 5, 1, 3, 1, 3, 3, 5, 1, 1, 5, 7, 5, 1, 2, 2, 4, 6, 4, 6, 7, 6, 2, 0, 2, 0, 2, 2, 2, 4, 6, 4, 2, 4, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 9, 7, 8, 7, 7, 8, 7, 7, 5, 7, 5, 3, 3, 7, 5, 3, 1, 3, 5, 1, 1, 1, 1, 5, 5, 5, 3, 2, 2, 2, 2, 4, 6, 6, 4, 2, 2, 2, 2, 2, 2, 2, 2, 6, 4, 2, 2, 4, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 8, 7, 7, 7, 7, 7, 5, 5, 3, 3, 3, 1, 3, 3, 3, 5, 1, 1, 3, 1, 5, 3, 1, 1, 7, 5, 3, 2, 2, 2, 2, 2, 6, 4, 4, 2, 0, 2, 2, 0, 2, 4, 4, 2, 2, 2, 2, 2, 2, 4, 2, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 8, 7, 5, 3, 3, 5, 5, 3, 1, 5, 3, 1, 3, 3, 3, 3, 1, 3, 1, 1, 3, 3, 3, 1, 1, 1, 1, 4, 4, 2, 4, 4, 4, 4, 4, 4, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 5, 3, 3, 3, 5, 3, 3, 3, 3, 3, 3, 3, 1, 3, 1, 1, 1, 3, 3, 3, 3, 1, 3, 5, 4, 2, 2, 4, 4, 2, 2, 4, 2, 2, 6, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 8, 7, 3, 5, 3, 3, 3, 3, 3, 3, 3, 3, 1, 3, 5, 3, 3, 3, 1, 1, 1, 5, 3, 3, 1, 3, 1, 2, 2, 2, 4, 2, 2, 4, 4, 4, 4, 4, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 8, 7, 3, 5, 3, 5, 5, 3, 3, 3, 1, 3, 1, 3, 5, 3, 3, 3, 3, 3, 3, 3, 5, 3, 1, 1, 3, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 3, 5, 3, 5, 3, 3, 5, 1, 3, 3, 1, 3, 3, 1, 3, 3, 3, 3, 3, 3, 5, 3, 3, 5, 3, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 3, 5, 5, 7, 7, 7, 5, 5, 7, 3, 7, 3, 3, 7, 5, 1, 3, 5, 7, 1, 1, 3, 3, 5, 5, 7, 5, 2, 2, 0, 2, 2, 4, 2, 2, 2, 2, 4, 4, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 3, 7, 7, 5, 5, 5, 5, 5, 3, 3, 7, 5, 5, 7, 5, 1, 3, 5, 3, 1, 1, 5, 3, 5, 7, 7, 5, 2, 4, 2, 2, 2, 2, 0, 2, 2, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 3, 5, 7, 7, 7, 7, 7, 7, 7, 3, 7, 7, 5, 7, 3, 1, 5, 5, 5, 3, 1, 3, 3, 5, 5, 7, 5, 0, 2, 2, 2, 4, 2, 2, 2, 2, 4, 4, 4, 4, 2, 2, 2, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 5, 7, 5, 7, 7, 7, 7, 7, 1, 3, 7, 7, 5, 7, 3, 1, 3, 5, 3, 3, 1, 3, 3, 3, 5, 5, 5, 2, 2, 0, 2, 2, 0, 2, 6, 6, 6, 4, 6, 4, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 3, 7, 7, 7, 7, 7, 7, 7, 5, 5, 7, 7, 5, 7, 3, 1, 5, 3, 3, 3, 3, 3, 3, 3, 5, 5, 3, 2, 2, 0, 2, 2, 2, 2, 4, 6, 6, 4, 4, 4, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 5, 5, 7, 5, 7, 7, 7, 3, 3, 7, 3, 3, 5, 5, 3, 1, 1, 3, 3, 3, 1, 5, 3, 5, 5, 5, 4, 2, 0, 2, 2, 0, 4, 4, 4, 4, 2, 2, 4, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 5, 1, 3, 5, 1, 7, 3, 3, 3, 3, 3, 1, 1, 5, 3, 1, 3, 5, 3, 1, 3, 1, 1, 1, 3, 2, 2, 4, 4, 4, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 3, 3, 5, 3, 7, 3, 3, 1, 3, 3, 3, 3, 5, 3, 3, 3, 3, 5, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0,
-7, 7, 5, 3, 5, 3, 5, 3, 3, 7, 3, 3, 3, 3, 3, 3, 3, 5, 1, 3, 5, 5, 1, 1, 3, 1, 3, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-7, 7, 5, 5, 3, 3, 3, 3, 3, 7, 1, 3, 3, 3, 3, 3, 3, 1, 3, 3, 1, 5, 3, 3, 3, 1, 3, 1, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 0, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 5, 5, 3, 5, 3, 5, 3, 3, 3, 3, 3, 3, 1, 1, 3, 3, 1, 1, 1, 3, 1, 3, 1, 1, 1, 1, 2, 2, 4, 2, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 8, 7, 5, 5, 3, 3, 5, 5, 3, 3, 3, 3, 3, 1, 3, 3, 3, 3, 5, 3, 3, 3, 1, 1, 1, 3, 3, 1, 2, 2, 6, 2, 2, 4, 2, 4, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0,
-7, 7, 5, 5, 5, 3, 3, 3, 5, 3, 5, 3, 3, 3, 3, 3, 1, 5, 1, 1, 3, 1, 3, 3, 1, 1, 1, 1, 1, 2, 2, 4, 2, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-7, 5, 7, 5, 5, 5, 3, 5, 5, 5, 5, 5, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-8, 5, 7, 5, 5, 5, 3, 3, 5, 5, 3, 3, 3, 1, 3, 3, 3, 3, 3, 3, 1, 3, 1, 3, 1, 1, 3, 3, 1, 2, 2, 4, 4, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 5, 3, 3, 3, 5, 5, 5, 3, 7, 5, 3, 3, 3, 5, 3, 3, 3, 3, 3, 3, 3, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
-9, 7, 1, 1, 1, 3, 5, 5, 1, 3, 5, 5, 5, 5, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1, 3, 3, 3, 3, 1, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 0, 0, 0, 0, 0, 0,
-7, 5, 1, 1, 5, 5, 3, 7, 5, 3, 5, 5, 5, 3, 3, 5, 3, 3, 3, 1, 3, 3, 3, 3, 3, 3, 1, 1, 3, 2, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-7, 7, 7, 5, 5, 3, 3, 5, 5, 3, 5, 5, 5, 5, 3, 3, 1, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1, 3, 2, 2, 4, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 5, 5, 5, 5, 5, 5, 1, 3, 3, 3, 3, 3, 3, 1, 1, 3, 3, 3, 5, 3, 1, 3, 3, 1, 3, 1, 4, 4, 4, 2, 2, 4, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 5, 0, 1, 3, 5, 5, 5, 5, 3, 3, 3, 5, 3, 1, 3, 3, 3, 1, 1, 3, 3, 5, 3, 5, 1, 3, 1, 2, 4, 2, 2, 4, 2, 4, 2, 2, 2, 2, 2, 4, 4, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 5, 0, 1, 1, 5, 5, 3, 5, 3, 3, 5, 3, 5, 3, 3, 3, 3, 3, 3, 1, 3, 5, 3, 3, 3, 1, 3, 3, 4, 2, 2, 4, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0,
-7, 1, 5, 3, 3, 5, 7, 5, 3, 5, 5, 5, 7, 5, 3, 5, 3, 3, 3, 1, 5, 3, 3, 3, 3, 3, 3, 3, 3, 4, 2, 4, 4, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
-7, 5, 7, 5, 5, 5, 5, 5, 3, 5, 3, 5, 3, 3, 3, 3, 3, 3, 3, 1, 1, 1, 1, 3, 1, 3, 3, 3, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 3, 5, 5, 5, 5, 5, 5, 5, 3, 3, 3, 3, 3, 3, 3, 3, 1, 3, 1, 1, 3, 1, 1, 3, 1, 1, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
-8, 5, 5, 5, 3, 5, 7, 5, 3, 3, 3, 3, 5, 5, 3, 3, 3, 3, 3, 3, 1, 3, 3, 1, 1, 1, 1, 1, 1, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-8, 5, 5, 5, 3, 5, 5, 5, 5, 5, 3, 3, 5, 5, 3, 5, 3, 3, 3, 1, 3, 3, 3, 3, 1, 5, 3, 1, 3, 2, 2, 2, 2, 2, 4, 2, 4, 2, 4, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 3, 5, 5, 5, 5, 3, 5, 3, 3, 5, 1, 3, 3, 3, 1, 3, 1, 3, 3, 3, 1, 1, 1, 1, 2, 4, 2, 2, 2, 2, 2, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 3, 3, 5, 5, 3, 5, 5, 5, 3, 5, 3, 3, 3, 3, 5, 3, 3, 3, 1, 3, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 5, 5, 5, 5, 5, 5, 5, 1, 3, 3, 3, 3, 3, 1, 3, 5, 1, 3, 3, 1, 3, 3, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-7, 5, 7, 5, 5, 3, 5, 5, 5, 5, 3, 7, 3, 1, 3, 5, 3, 3, 3, 1, 3, 1, 3, 5, 1, 1, 3, 3, 3, 4, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 0, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 5, 7, 5, 5, 5, 3, 3, 3, 3, 5, 3, 3, 3, 5, 3, 5, 3, 3, 3, 1, 3, 1, 1, 1, 3, 1, 1, 4, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
-7, 7, 7, 5, 5, 3, 7, 3, 5, 3, 1, 3, 1, 1, 3, 3, 3, 3, 1, 3, 3, 1, 3, 3, 1, 3, 1, 1, 1, 4, 4, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 3, 3, 3, 5, 5, 3, 3, 3, 3, 3, 1, 3, 3, 3, 3, 3, 3, 3, 3, 1, 3, 1, 1, 1, 1, 1, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 5, 1, 3, 3, 3, 5, 5, 3, 5, 3, 3, 3, 3, 3, 3, 3, 3, 1, 1, 1, 3, 1, 1, 1, 1, 3, 1, 2, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-8, 3, 1, 1, 1, 5, 5, 5, 5, 3, 3, 5, 5, 3, 3, 3, 3, 1, 1, 3, 1, 3, 3, 3, 3, 3, 3, 3, 3, 2, 4, 4, 2, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0,
-7, 3, 7, 5, 5, 5, 5, 5, 3, 5, 5, 5, 3, 5, 3, 3, 3, 3, 3, 1, 3, 1, 3, 3, 3, 3, 3, 1, 1, 2, 2, 4, 2, 2, 4, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-8, 7, 7, 5, 5, 5, 5, 5, 5, 3, 3, 3, 3, 5, 3, 1, 1, 1, 5, 3, 1, 3, 5, 3, 5, 5, 1, 3, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0,
diff --git a/lib/books/coupled/_44c4_long.vqh b/lib/books/coupled/_44c4_long.vqh
deleted file mode 100644
index ddd88a45..00000000
--- a/lib/books/coupled/_44c4_long.vqh
+++ /dev/null
@@ -1,43 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by huff/huffbuld
-
- ********************************************************************/
-
-#ifndef _V__44c4_long_VQH_
-#define _V__44c4_long_VQH_
-#include "codebook.h"
-
-static long _huff_lengthlist__44c4_long[] = {
- 2, 9, 7,12,10,13,11,10,12,15, 9, 4, 6, 5, 8, 7,
- 10, 8,11,17, 5,19, 3,19, 5,19, 8,11,18,19,12, 5,
- 8, 4, 8, 5,10, 7,11,18,10,19, 5,19, 6,19, 8,12,
- 19,19,12, 7,11, 5,10, 6,11, 6,11,15,11,19, 8,19,
- 8,19, 9,13,19,19,10, 7,10, 6,11, 5,11, 5, 8,13,
- 11,10,17,10,19, 9,18, 6, 7,11,11,13,19,13,19,11,
- 19, 7, 7,10,
-};
-
-static static_codebook _huff_book__44c4_long = {
- 2, 100,
- _huff_lengthlist__44c4_long,
- 0, 0, 0, 0, 0,
- NULL,
- NULL,
- NULL,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c4_s0_p0_r0.vqh b/lib/books/coupled/_44c4_s0_p0_r0.vqh
deleted file mode 100644
index 1ed5f9dd..00000000
--- a/lib/books/coupled/_44c4_s0_p0_r0.vqh
+++ /dev/null
@@ -1,61 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c4_s0_p0_r0_VQH_
-#define _V__44c4_s0_p0_r0_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c4_s0_p0_r0[] = {
- 2,
- 1,
- 3,
- 0,
- 4,
-};
-
-static long _vq_lengthlist__44c4_s0_p0_r0[] = {
- 1, 5, 4,11,11,11, 4, 4,11,11,11, 3, 3,11,11,11,
- 7, 6,11,11,11,11,11,11,11,
-};
-
-static float _vq_quantthresh__44c4_s0_p0_r0[] = {
- -0.5, -0.16667, 0.16667, 0.5,
-};
-
-static long _vq_quantmap__44c4_s0_p0_r0[] = {
- 3, 1, 0, 2, 4,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c4_s0_p0_r0 = {
- _vq_quantthresh__44c4_s0_p0_r0,
- _vq_quantmap__44c4_s0_p0_r0,
- 5,
- 5
-};
-
-static static_codebook _44c4_s0_p0_r0 = {
- 2, 25,
- _vq_lengthlist__44c4_s0_p0_r0,
- 1, -537569963, 1607816533, 3, 0,
- _vq_quantlist__44c4_s0_p0_r0,
- NULL,
- &_vq_auxt__44c4_s0_p0_r0,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c4_s0_p0_r1.vqh b/lib/books/coupled/_44c4_s0_p0_r1.vqh
deleted file mode 100644
index 0dc81e20..00000000
--- a/lib/books/coupled/_44c4_s0_p0_r1.vqh
+++ /dev/null
@@ -1,61 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c4_s0_p0_r1_VQH_
-#define _V__44c4_s0_p0_r1_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c4_s0_p0_r1[] = {
- 2,
- 1,
- 3,
- 0,
- 4,
-};
-
-static long _vq_lengthlist__44c4_s0_p0_r1[] = {
- 1, 4, 4,11,11, 5, 4, 4,11,11, 5, 4, 4,11,11,11,
- 7, 6,11,10,10, 6, 6,10,10,
-};
-
-static float _vq_quantthresh__44c4_s0_p0_r1[] = {
- -0.16667, -0.055556, 0.055556, 0.16667,
-};
-
-static long _vq_quantmap__44c4_s0_p0_r1[] = {
- 3, 1, 0, 2, 4,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c4_s0_p0_r1 = {
- _vq_quantthresh__44c4_s0_p0_r1,
- _vq_quantmap__44c4_s0_p0_r1,
- 5,
- 5
-};
-
-static static_codebook _44c4_s0_p0_r1 = {
- 2, 25,
- _vq_lengthlist__44c4_s0_p0_r1,
- 1, -541298233, 1604088263, 3, 0,
- _vq_quantlist__44c4_s0_p0_r1,
- NULL,
- &_vq_auxt__44c4_s0_p0_r1,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c4_s0_p1_0.vqh b/lib/books/coupled/_44c4_s0_p1_0.vqh
deleted file mode 100644
index ef6a55d1..00000000
--- a/lib/books/coupled/_44c4_s0_p1_0.vqh
+++ /dev/null
@@ -1,99 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c4_s0_p1_0_VQH_
-#define _V__44c4_s0_p1_0_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c4_s0_p1_0[] = {
- 2,
- 1,
- 3,
- 0,
- 4,
-};
-
-static long _vq_lengthlist__44c4_s0_p1_0[] = {
- 2, 5, 5, 0, 0, 0, 5, 5, 0, 0, 0, 5, 5, 0, 0, 0,
- 7, 7, 0, 0, 0, 0, 0, 0, 0, 5, 6, 6, 0, 0, 0, 8,
- 7, 0, 0, 0, 7, 7, 0, 0, 0,10,10, 0, 0, 0, 0, 0,
- 0, 0, 5, 6, 6, 0, 0, 0, 7, 8, 0, 0, 0, 7, 7, 0,
- 0, 0,10,10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 5, 7, 7, 0, 0, 0, 7, 7, 0, 0,
- 0, 7, 7, 0, 0, 0, 9, 8, 0, 0, 0, 0, 0, 0, 0, 5,
- 7, 7, 0, 0, 0, 7, 7, 0, 0, 0, 7, 7, 0, 0, 0, 9,
- 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 5, 8, 7, 0, 0, 0, 7, 7, 0, 0, 0, 7, 7,
- 0, 0, 0, 9, 9, 0, 0, 0, 0, 0, 0, 0, 5, 7, 8, 0,
- 0, 0, 7, 7, 0, 0, 0, 7, 7, 0, 0, 0, 9, 9, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 7,10,10, 0, 0, 0, 9, 9, 0, 0, 0, 8, 9, 0, 0, 0,
- 10,10, 0, 0, 0, 0, 0, 0, 0, 7,10,10, 0, 0, 0, 9,
- 9, 0, 0, 0, 9, 9, 0, 0, 0,10,10, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,
-};
-
-static float _vq_quantthresh__44c4_s0_p1_0[] = {
- -1.5, -0.5, 0.5, 1.5,
-};
-
-static long _vq_quantmap__44c4_s0_p1_0[] = {
- 3, 1, 0, 2, 4,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c4_s0_p1_0 = {
- _vq_quantthresh__44c4_s0_p1_0,
- _vq_quantmap__44c4_s0_p1_0,
- 5,
- 5
-};
-
-static static_codebook _44c4_s0_p1_0 = {
- 4, 625,
- _vq_lengthlist__44c4_s0_p1_0,
- 1, -533725184, 1611661312, 3, 0,
- _vq_quantlist__44c4_s0_p1_0,
- NULL,
- &_vq_auxt__44c4_s0_p1_0,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c4_s0_p2_0.vqh b/lib/books/coupled/_44c4_s0_p2_0.vqh
deleted file mode 100644
index aa1bfbb4..00000000
--- a/lib/books/coupled/_44c4_s0_p2_0.vqh
+++ /dev/null
@@ -1,99 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c4_s0_p2_0_VQH_
-#define _V__44c4_s0_p2_0_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c4_s0_p2_0[] = {
- 2,
- 1,
- 3,
- 0,
- 4,
-};
-
-static long _vq_lengthlist__44c4_s0_p2_0[] = {
- 1, 6, 6, 0, 0, 0, 5, 5, 0, 0, 0, 5, 5, 0, 0, 0,
- 8, 8, 0, 0, 0, 0, 0, 0, 0, 6, 8, 7, 0, 0, 0, 9,
- 8, 0, 0, 0, 8, 8, 0, 0, 0,12,12, 0, 0, 0, 0, 0,
- 0, 0, 6, 8, 8, 0, 0, 0, 8, 9, 0, 0, 0, 8, 8, 0,
- 0, 0,12,12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 5, 8, 8, 0, 0, 0, 8, 7, 0, 0,
- 0, 8, 8, 0, 0, 0,10,10, 0, 0, 0, 0, 0, 0, 0, 5,
- 8, 8, 0, 0, 0, 7, 8, 0, 0, 0, 8, 8, 0, 0, 0,10,
- 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 5, 9, 8, 0, 0, 0, 8, 8, 0, 0, 0, 8, 7,
- 0, 0, 0,10,10, 0, 0, 0, 0, 0, 0, 0, 5, 8, 9, 0,
- 0, 0, 8, 8, 0, 0, 0, 7, 8, 0, 0, 0,10,10, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 8,12,12, 0, 0, 0,10,10, 0, 0, 0,10,10, 0, 0, 0,
- 11,11, 0, 0, 0, 0, 0, 0, 0, 8,12,12, 0, 0, 0,10,
- 10, 0, 0, 0,10,10, 0, 0, 0,11,11, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,
-};
-
-static float _vq_quantthresh__44c4_s0_p2_0[] = {
- -1.5, -0.5, 0.5, 1.5,
-};
-
-static long _vq_quantmap__44c4_s0_p2_0[] = {
- 3, 1, 0, 2, 4,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c4_s0_p2_0 = {
- _vq_quantthresh__44c4_s0_p2_0,
- _vq_quantmap__44c4_s0_p2_0,
- 5,
- 5
-};
-
-static static_codebook _44c4_s0_p2_0 = {
- 4, 625,
- _vq_lengthlist__44c4_s0_p2_0,
- 1, -533725184, 1611661312, 3, 0,
- _vq_quantlist__44c4_s0_p2_0,
- NULL,
- &_vq_auxt__44c4_s0_p2_0,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c4_s0_p3_0.vqh b/lib/books/coupled/_44c4_s0_p3_0.vqh
deleted file mode 100644
index 17df725e..00000000
--- a/lib/books/coupled/_44c4_s0_p3_0.vqh
+++ /dev/null
@@ -1,70 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c4_s0_p3_0_VQH_
-#define _V__44c4_s0_p3_0_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c4_s0_p3_0[] = {
- 4,
- 3,
- 5,
- 2,
- 6,
- 1,
- 7,
- 0,
- 8,
-};
-
-static long _vq_lengthlist__44c4_s0_p3_0[] = {
- 2, 3, 3, 6, 6, 0, 0, 0, 0, 0, 4, 4, 6, 6, 0, 0,
- 0, 0, 0, 4, 4, 6, 6, 0, 0, 0, 0, 0, 5, 5, 6, 6,
- 0, 0, 0, 0, 0, 0, 0, 6, 6, 0, 0, 0, 0, 0, 0, 0,
- 7, 7, 0, 0, 0, 0, 0, 0, 0, 7, 8, 0, 0, 0, 0, 0,
- 0, 0, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,
-};
-
-static float _vq_quantthresh__44c4_s0_p3_0[] = {
- -3.5, -2.5, -1.5, -0.5, 0.5, 1.5, 2.5, 3.5,
-};
-
-static long _vq_quantmap__44c4_s0_p3_0[] = {
- 7, 5, 3, 1, 0, 2, 4, 6,
- 8,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c4_s0_p3_0 = {
- _vq_quantthresh__44c4_s0_p3_0,
- _vq_quantmap__44c4_s0_p3_0,
- 9,
- 9
-};
-
-static static_codebook _44c4_s0_p3_0 = {
- 2, 81,
- _vq_lengthlist__44c4_s0_p3_0,
- 1, -531628032, 1611661312, 4, 0,
- _vq_quantlist__44c4_s0_p3_0,
- NULL,
- &_vq_auxt__44c4_s0_p3_0,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c4_s0_p4_0.vqh b/lib/books/coupled/_44c4_s0_p4_0.vqh
deleted file mode 100644
index f929b20c..00000000
--- a/lib/books/coupled/_44c4_s0_p4_0.vqh
+++ /dev/null
@@ -1,70 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c4_s0_p4_0_VQH_
-#define _V__44c4_s0_p4_0_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c4_s0_p4_0[] = {
- 4,
- 3,
- 5,
- 2,
- 6,
- 1,
- 7,
- 0,
- 8,
-};
-
-static long _vq_lengthlist__44c4_s0_p4_0[] = {
- 1, 4, 4, 7, 7, 0, 0, 0, 0, 0, 4, 4, 7, 7, 0, 0,
- 0, 0, 0, 4, 4, 7, 7, 0, 0, 0, 0, 0, 6, 6, 7, 7,
- 0, 0, 0, 0, 0, 0, 0, 7, 7, 0, 0, 0, 0, 0, 0, 0,
- 9, 8, 0, 0, 0, 0, 0, 0, 0, 8, 8, 0, 0, 0, 0, 0,
- 0, 0,10,10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,
-};
-
-static float _vq_quantthresh__44c4_s0_p4_0[] = {
- -3.5, -2.5, -1.5, -0.5, 0.5, 1.5, 2.5, 3.5,
-};
-
-static long _vq_quantmap__44c4_s0_p4_0[] = {
- 7, 5, 3, 1, 0, 2, 4, 6,
- 8,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c4_s0_p4_0 = {
- _vq_quantthresh__44c4_s0_p4_0,
- _vq_quantmap__44c4_s0_p4_0,
- 9,
- 9
-};
-
-static static_codebook _44c4_s0_p4_0 = {
- 2, 81,
- _vq_lengthlist__44c4_s0_p4_0,
- 1, -531628032, 1611661312, 4, 0,
- _vq_quantlist__44c4_s0_p4_0,
- NULL,
- &_vq_auxt__44c4_s0_p4_0,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c4_s0_p5_0.vqh b/lib/books/coupled/_44c4_s0_p5_0.vqh
deleted file mode 100644
index 380f3f03..00000000
--- a/lib/books/coupled/_44c4_s0_p5_0.vqh
+++ /dev/null
@@ -1,93 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c4_s0_p5_0_VQH_
-#define _V__44c4_s0_p5_0_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c4_s0_p5_0[] = {
- 8,
- 7,
- 9,
- 6,
- 10,
- 5,
- 11,
- 4,
- 12,
- 3,
- 13,
- 2,
- 14,
- 1,
- 15,
- 0,
- 16,
-};
-
-static long _vq_lengthlist__44c4_s0_p5_0[] = {
- 2, 4, 4, 5, 6, 7, 7, 9, 9, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 4, 4, 6, 6, 7, 7, 9, 9, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 4, 4, 6, 6, 7, 7, 9, 9, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 5, 5, 7, 7, 8, 8, 9, 9, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 7, 6, 8, 8, 9, 9, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 8, 8,10,10, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 8, 8,10,10, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9,10,10,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9,10,
- 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9,
- 11,11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9,
- 9,10,10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 11,10,11,11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,11,11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,12,12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,12,12, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,12,12, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,
-};
-
-static float _vq_quantthresh__44c4_s0_p5_0[] = {
- -7.5, -6.5, -5.5, -4.5, -3.5, -2.5, -1.5, -0.5,
- 0.5, 1.5, 2.5, 3.5, 4.5, 5.5, 6.5, 7.5,
-};
-
-static long _vq_quantmap__44c4_s0_p5_0[] = {
- 15, 13, 11, 9, 7, 5, 3, 1,
- 0, 2, 4, 6, 8, 10, 12, 14,
- 16,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c4_s0_p5_0 = {
- _vq_quantthresh__44c4_s0_p5_0,
- _vq_quantmap__44c4_s0_p5_0,
- 17,
- 17
-};
-
-static static_codebook _44c4_s0_p5_0 = {
- 2, 289,
- _vq_lengthlist__44c4_s0_p5_0,
- 1, -529530880, 1611661312, 5, 0,
- _vq_quantlist__44c4_s0_p5_0,
- NULL,
- &_vq_auxt__44c4_s0_p5_0,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c4_s0_p6_0.vqh b/lib/books/coupled/_44c4_s0_p6_0.vqh
deleted file mode 100644
index 7c91228a..00000000
--- a/lib/books/coupled/_44c4_s0_p6_0.vqh
+++ /dev/null
@@ -1,93 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c4_s0_p6_0_VQH_
-#define _V__44c4_s0_p6_0_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c4_s0_p6_0[] = {
- 8,
- 7,
- 9,
- 6,
- 10,
- 5,
- 11,
- 4,
- 12,
- 3,
- 13,
- 2,
- 14,
- 1,
- 15,
- 0,
- 16,
-};
-
-static long _vq_lengthlist__44c4_s0_p6_0[] = {
- 2, 4, 4, 6, 6, 7, 7, 9, 9, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 4, 4, 6, 6, 7, 7, 9, 9, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 4, 4, 6, 6, 7, 7, 9, 9, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 5, 5, 7, 7, 7, 7,10,10, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 7, 6, 7, 7, 9,10, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 8, 8,10,10, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 8, 8,10,10, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 8, 9, 9,11,11,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 9,10,
- 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9,
- 11,11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9,
- 9,11,11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 10,10,12,12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,12,12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,12,12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,13,13, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,13,13, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,
-};
-
-static float _vq_quantthresh__44c4_s0_p6_0[] = {
- -7.5, -6.5, -5.5, -4.5, -3.5, -2.5, -1.5, -0.5,
- 0.5, 1.5, 2.5, 3.5, 4.5, 5.5, 6.5, 7.5,
-};
-
-static long _vq_quantmap__44c4_s0_p6_0[] = {
- 15, 13, 11, 9, 7, 5, 3, 1,
- 0, 2, 4, 6, 8, 10, 12, 14,
- 16,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c4_s0_p6_0 = {
- _vq_quantthresh__44c4_s0_p6_0,
- _vq_quantmap__44c4_s0_p6_0,
- 17,
- 17
-};
-
-static static_codebook _44c4_s0_p6_0 = {
- 2, 289,
- _vq_lengthlist__44c4_s0_p6_0,
- 1, -529530880, 1611661312, 5, 0,
- _vq_quantlist__44c4_s0_p6_0,
- NULL,
- &_vq_auxt__44c4_s0_p6_0,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c4_s0_p7_0.vqh b/lib/books/coupled/_44c4_s0_p7_0.vqh
deleted file mode 100644
index eb0fdcef..00000000
--- a/lib/books/coupled/_44c4_s0_p7_0.vqh
+++ /dev/null
@@ -1,80 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c4_s0_p7_0_VQH_
-#define _V__44c4_s0_p7_0_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c4_s0_p7_0[] = {
- 6,
- 5,
- 7,
- 4,
- 8,
- 3,
- 9,
- 2,
- 10,
- 1,
- 11,
- 0,
- 12,
-};
-
-static long _vq_lengthlist__44c4_s0_p7_0[] = {
- 1, 3, 4, 6, 6, 8, 9, 0, 0, 0, 0, 0, 0, 5, 5, 5,
- 7, 7, 9, 9, 0, 0, 0, 0, 0, 0, 6, 5, 5, 7, 7, 9,
- 9, 0, 0, 0, 0, 0, 0, 0, 7, 7, 8, 8,10,10, 0, 0,
- 0, 0, 0, 0, 0, 8, 7, 8, 8,10,10, 0, 0, 0, 0, 0,
- 0, 0,11,12, 9, 9,11,10, 0, 0, 0, 0, 0, 0, 0,13,
- 12, 9, 9,10,10, 0, 0, 0, 0, 0, 0, 0, 0, 0,11,11,
- 11,11, 0, 0, 0, 0, 0, 0, 0, 0, 0,11,11,11,11, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,14,15,12,12, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,15,15,12,12, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,14,14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,14,15, 0, 0, 0, 0, 0, 0,
-};
-
-static float _vq_quantthresh__44c4_s0_p7_0[] = {
- -27.5, -22.5, -17.5, -12.5, -7.5, -2.5, 2.5, 7.5,
- 12.5, 17.5, 22.5, 27.5,
-};
-
-static long _vq_quantmap__44c4_s0_p7_0[] = {
- 11, 9, 7, 5, 3, 1, 0, 2,
- 4, 6, 8, 10, 12,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c4_s0_p7_0 = {
- _vq_quantthresh__44c4_s0_p7_0,
- _vq_quantmap__44c4_s0_p7_0,
- 13,
- 13
-};
-
-static static_codebook _44c4_s0_p7_0 = {
- 2, 169,
- _vq_lengthlist__44c4_s0_p7_0,
- 1, -526516224, 1616117760, 4, 0,
- _vq_quantlist__44c4_s0_p7_0,
- NULL,
- &_vq_auxt__44c4_s0_p7_0,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c4_s0_p7_1.vqh b/lib/books/coupled/_44c4_s0_p7_1.vqh
deleted file mode 100644
index 295f5e91..00000000
--- a/lib/books/coupled/_44c4_s0_p7_1.vqh
+++ /dev/null
@@ -1,61 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c4_s0_p7_1_VQH_
-#define _V__44c4_s0_p7_1_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c4_s0_p7_1[] = {
- 2,
- 1,
- 3,
- 0,
- 4,
-};
-
-static long _vq_lengthlist__44c4_s0_p7_1[] = {
- 2, 4, 4, 5, 5, 7, 4, 4, 6, 6, 7, 4, 4, 5, 5, 7,
- 5, 5, 5, 6, 7, 7, 7, 5, 5,
-};
-
-static float _vq_quantthresh__44c4_s0_p7_1[] = {
- -1.5, -0.5, 0.5, 1.5,
-};
-
-static long _vq_quantmap__44c4_s0_p7_1[] = {
- 3, 1, 0, 2, 4,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c4_s0_p7_1 = {
- _vq_quantthresh__44c4_s0_p7_1,
- _vq_quantmap__44c4_s0_p7_1,
- 5,
- 5
-};
-
-static static_codebook _44c4_s0_p7_1 = {
- 2, 25,
- _vq_lengthlist__44c4_s0_p7_1,
- 1, -533725184, 1611661312, 3, 0,
- _vq_quantlist__44c4_s0_p7_1,
- NULL,
- &_vq_auxt__44c4_s0_p7_1,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c4_s0_p8_0.vqh b/lib/books/coupled/_44c4_s0_p8_0.vqh
deleted file mode 100644
index 330aa2d3..00000000
--- a/lib/books/coupled/_44c4_s0_p8_0.vqh
+++ /dev/null
@@ -1,80 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c4_s0_p8_0_VQH_
-#define _V__44c4_s0_p8_0_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c4_s0_p8_0[] = {
- 6,
- 5,
- 7,
- 4,
- 8,
- 3,
- 9,
- 2,
- 10,
- 1,
- 11,
- 0,
- 12,
-};
-
-static long _vq_lengthlist__44c4_s0_p8_0[] = {
- 1, 4, 3, 6, 5, 7, 7, 0, 0, 0, 0, 0, 0, 6, 5, 5,
- 7, 7, 9, 9, 0, 0, 0, 0, 0, 0, 6, 5, 5, 7, 7, 9,
- 9, 0, 0, 0, 0, 0, 0, 0, 8, 8, 8, 8, 9, 9, 0, 0,
- 0, 0, 0, 0, 0, 8, 8, 8, 8, 9,10, 0, 0, 0, 0, 0,
- 0, 0,12,12, 9, 9,10,11, 0, 0, 0, 0, 0, 0, 0,12,
- 12, 9, 9,11,11, 0, 0, 0, 0, 0, 0, 0, 0, 0,11,11,
- 11,11, 0, 0, 0, 0, 0, 0, 0, 0, 0,11,11,11,11, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,14,15,12,12, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,15,14,12,12, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,14,14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,14,13, 0, 0, 0, 0, 0, 0,
-};
-
-static float _vq_quantthresh__44c4_s0_p8_0[] = {
- -71.5, -58.5, -45.5, -32.5, -19.5, -6.5, 6.5, 19.5,
- 32.5, 45.5, 58.5, 71.5,
-};
-
-static long _vq_quantmap__44c4_s0_p8_0[] = {
- 11, 9, 7, 5, 3, 1, 0, 2,
- 4, 6, 8, 10, 12,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c4_s0_p8_0 = {
- _vq_quantthresh__44c4_s0_p8_0,
- _vq_quantmap__44c4_s0_p8_0,
- 13,
- 13
-};
-
-static static_codebook _44c4_s0_p8_0 = {
- 2, 169,
- _vq_lengthlist__44c4_s0_p8_0,
- 1, -523010048, 1618608128, 4, 0,
- _vq_quantlist__44c4_s0_p8_0,
- NULL,
- &_vq_auxt__44c4_s0_p8_0,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c4_s0_p8_1.vqh b/lib/books/coupled/_44c4_s0_p8_1.vqh
deleted file mode 100644
index 1ce8746f..00000000
--- a/lib/books/coupled/_44c4_s0_p8_1.vqh
+++ /dev/null
@@ -1,80 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c4_s0_p8_1_VQH_
-#define _V__44c4_s0_p8_1_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c4_s0_p8_1[] = {
- 6,
- 5,
- 7,
- 4,
- 8,
- 3,
- 9,
- 2,
- 10,
- 1,
- 11,
- 0,
- 12,
-};
-
-static long _vq_lengthlist__44c4_s0_p8_1[] = {
- 3, 5, 5, 6, 6, 7, 7, 7, 7, 7, 7, 8, 8, 9, 5, 5,
- 6, 6, 7, 7, 8, 8, 8, 8, 8, 8, 9, 5, 5, 6, 6, 7,
- 7, 8, 7, 8, 8, 8, 8, 9, 7, 7, 7, 7, 7, 7, 8, 8,
- 8, 8, 8, 8, 9, 9, 9, 7, 7, 7, 7, 8, 8, 8, 8, 8,
- 8, 9, 9,10, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,10, 9,
- 9, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,10, 9,10, 8, 8,
- 8, 8, 8, 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, 8, 8, 8,
- 8, 8, 8, 8, 8, 9, 9,10, 9, 9, 8, 8, 8, 8, 8, 8,
- 8, 8, 9, 9, 9, 9, 9, 8, 8, 8, 8, 8, 8, 8, 8,10,
- 9,10, 9,10, 9, 9, 8, 8, 8, 8, 8, 8,10,10, 9,10,
- 10, 9, 9, 8, 8, 8, 8, 8, 8,
-};
-
-static float _vq_quantthresh__44c4_s0_p8_1[] = {
- -5.5, -4.5, -3.5, -2.5, -1.5, -0.5, 0.5, 1.5,
- 2.5, 3.5, 4.5, 5.5,
-};
-
-static long _vq_quantmap__44c4_s0_p8_1[] = {
- 11, 9, 7, 5, 3, 1, 0, 2,
- 4, 6, 8, 10, 12,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c4_s0_p8_1 = {
- _vq_quantthresh__44c4_s0_p8_1,
- _vq_quantmap__44c4_s0_p8_1,
- 13,
- 13
-};
-
-static static_codebook _44c4_s0_p8_1 = {
- 2, 169,
- _vq_lengthlist__44c4_s0_p8_1,
- 1, -531103744, 1611661312, 4, 0,
- _vq_quantlist__44c4_s0_p8_1,
- NULL,
- &_vq_auxt__44c4_s0_p8_1,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c4_s0_p9_0.vqh b/lib/books/coupled/_44c4_s0_p9_0.vqh
deleted file mode 100644
index 255357fe..00000000
--- a/lib/books/coupled/_44c4_s0_p9_0.vqh
+++ /dev/null
@@ -1,80 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c4_s0_p9_0_VQH_
-#define _V__44c4_s0_p9_0_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c4_s0_p9_0[] = {
- 6,
- 5,
- 7,
- 4,
- 8,
- 3,
- 9,
- 2,
- 10,
- 1,
- 11,
- 0,
- 12,
-};
-
-static long _vq_lengthlist__44c4_s0_p9_0[] = {
- 1, 3, 3, 9, 8,13,14,14,14,14,14,14,14, 5, 5, 6,
- 9,10,14,14,14,14,14,14,14,14, 5, 6, 4,11,10,13,
- 13,14,14,14,14,14,14,14, 6,10,13,13,14,14,14,14,
- 14,14,14,14,14,11, 6,13,12,14,14,14,14,14,14,14,
- 14,14,12,13, 9,14,13,14,14,14,14,14,14,14,14,14,
- 12,14,12,14,14,14,14,14,14,14,14,14,14,14,13,13,
- 14,14,14,14,14,14,14,14,14,14,14,14, 9,14,13,14,
- 14,14,14,14,14,14,14,14,10,14,12,14,14,14,14,14,
- 14,14,14,14,14,14, 9,14, 9,14,14,14,14,14,14,14,
- 14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,
- 14,14,14,14,13,13,13,13,13,
-};
-
-static float _vq_quantthresh__44c4_s0_p9_0[] = {
- -929.5, -760.5, -591.5, -422.5, -253.5, -84.5, 84.5, 253.5,
- 422.5, 591.5, 760.5, 929.5,
-};
-
-static long _vq_quantmap__44c4_s0_p9_0[] = {
- 11, 9, 7, 5, 3, 1, 0, 2,
- 4, 6, 8, 10, 12,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c4_s0_p9_0 = {
- _vq_quantthresh__44c4_s0_p9_0,
- _vq_quantmap__44c4_s0_p9_0,
- 13,
- 13
-};
-
-static static_codebook _44c4_s0_p9_0 = {
- 2, 169,
- _vq_lengthlist__44c4_s0_p9_0,
- 1, -515919872, 1626677248, 4, 0,
- _vq_quantlist__44c4_s0_p9_0,
- NULL,
- &_vq_auxt__44c4_s0_p9_0,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c4_s0_p9_1.vqh b/lib/books/coupled/_44c4_s0_p9_1.vqh
deleted file mode 100644
index f881611d..00000000
--- a/lib/books/coupled/_44c4_s0_p9_1.vqh
+++ /dev/null
@@ -1,80 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c4_s0_p9_1_VQH_
-#define _V__44c4_s0_p9_1_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c4_s0_p9_1[] = {
- 6,
- 5,
- 7,
- 4,
- 8,
- 3,
- 9,
- 2,
- 10,
- 1,
- 11,
- 0,
- 12,
-};
-
-static long _vq_lengthlist__44c4_s0_p9_1[] = {
- 1, 4, 4, 6, 6, 7, 7, 7, 7, 8, 8, 9, 9, 6, 5, 6,
- 7, 7, 8, 8, 8, 9, 9,10,10,10, 7, 6, 5, 7, 7, 8,
- 8, 9, 9, 9, 9,10,10,12, 8, 8, 8, 8, 9, 9, 9, 9,
- 10,10,10,10,13, 8, 7, 8, 8, 9, 9, 9, 9,10,10,10,
- 10,13,11,12, 9, 9,10,10,10,10,10,11,10,11,13,11,
- 11, 9, 9,10,10,10,10,10,10,11,11,13,13,13,11,11,
- 10,11,10,10,11,11,11,11,13,12,12,11,10,10,11,11,
- 11,11,11,11,11,13,13,13,12,12,11,11,11,11,11,11,
- 12,11,13,13,13,13,12,11,11,10,10,11,11,11,12,14,
- 13,13,12,13,11,11,10,10,11,11,11,12,14,14,14,12,
- 13,10,11,10,10,11,11,12,12,
-};
-
-static float _vq_quantthresh__44c4_s0_p9_1[] = {
- -71.5, -58.5, -45.5, -32.5, -19.5, -6.5, 6.5, 19.5,
- 32.5, 45.5, 58.5, 71.5,
-};
-
-static long _vq_quantmap__44c4_s0_p9_1[] = {
- 11, 9, 7, 5, 3, 1, 0, 2,
- 4, 6, 8, 10, 12,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c4_s0_p9_1 = {
- _vq_quantthresh__44c4_s0_p9_1,
- _vq_quantmap__44c4_s0_p9_1,
- 13,
- 13
-};
-
-static static_codebook _44c4_s0_p9_1 = {
- 2, 169,
- _vq_lengthlist__44c4_s0_p9_1,
- 1, -523010048, 1618608128, 4, 0,
- _vq_quantlist__44c4_s0_p9_1,
- NULL,
- &_vq_auxt__44c4_s0_p9_1,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c4_s0_p9_2.vqh b/lib/books/coupled/_44c4_s0_p9_2.vqh
deleted file mode 100644
index 78ca076a..00000000
--- a/lib/books/coupled/_44c4_s0_p9_2.vqh
+++ /dev/null
@@ -1,80 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c4_s0_p9_2_VQH_
-#define _V__44c4_s0_p9_2_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c4_s0_p9_2[] = {
- 6,
- 5,
- 7,
- 4,
- 8,
- 3,
- 9,
- 2,
- 10,
- 1,
- 11,
- 0,
- 12,
-};
-
-static long _vq_lengthlist__44c4_s0_p9_2[] = {
- 4, 5, 5, 6, 6, 6, 6, 7, 7, 7, 7, 7, 7, 8, 6, 6,
- 6, 6, 7, 7, 7, 7, 7, 7, 7, 7, 8, 6, 6, 6, 6, 7,
- 7, 7, 7, 7, 7, 7, 7, 9, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 8, 7, 8, 9, 9, 9, 7, 7, 7, 7, 7, 7, 8, 8, 8,
- 8, 9, 9, 9, 7, 7, 8, 8, 8, 8, 8, 8, 8, 8, 9, 9,
- 9, 7, 7, 8, 8, 8, 8, 8, 8, 8, 8, 9, 9, 9, 8, 8,
- 8, 8, 8, 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, 8, 8, 8,
- 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, 8, 8, 8, 8, 8, 8,
- 8, 8, 9, 9, 9, 9, 9, 8, 8, 8, 8, 8, 8, 8, 8, 9,
- 9, 9, 9, 9, 8, 8, 8, 8, 8, 8, 8, 8, 9, 9, 9, 9,
- 9, 9, 9, 8, 8, 8, 8, 8, 8,
-};
-
-static float _vq_quantthresh__44c4_s0_p9_2[] = {
- -5.5, -4.5, -3.5, -2.5, -1.5, -0.5, 0.5, 1.5,
- 2.5, 3.5, 4.5, 5.5,
-};
-
-static long _vq_quantmap__44c4_s0_p9_2[] = {
- 11, 9, 7, 5, 3, 1, 0, 2,
- 4, 6, 8, 10, 12,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c4_s0_p9_2 = {
- _vq_quantthresh__44c4_s0_p9_2,
- _vq_quantmap__44c4_s0_p9_2,
- 13,
- 13
-};
-
-static static_codebook _44c4_s0_p9_2 = {
- 2, 169,
- _vq_lengthlist__44c4_s0_p9_2,
- 1, -531103744, 1611661312, 4, 0,
- _vq_quantlist__44c4_s0_p9_2,
- NULL,
- &_vq_auxt__44c4_s0_p9_2,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c4_s0_pN_r0.vqh b/lib/books/coupled/_44c4_s0_pN_r0.vqh
deleted file mode 100644
index 97108e4e..00000000
--- a/lib/books/coupled/_44c4_s0_pN_r0.vqh
+++ /dev/null
@@ -1,61 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c4_s0_pN_r0_VQH_
-#define _V__44c4_s0_pN_r0_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c4_s0_pN_r0[] = {
- 2,
- 1,
- 3,
- 0,
- 4,
-};
-
-static long _vq_lengthlist__44c4_s0_pN_r0[] = {
- 3, 3, 3, 9, 9, 4, 4, 4, 9, 9, 4, 4, 4, 9, 7, 9,
- 4, 4, 8, 9, 9, 5, 4, 9, 9,
-};
-
-static float _vq_quantthresh__44c4_s0_pN_r0[] = {
- -0.5, -0.16667, 0.16667, 0.5,
-};
-
-static long _vq_quantmap__44c4_s0_pN_r0[] = {
- 3, 1, 0, 2, 4,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c4_s0_pN_r0 = {
- _vq_quantthresh__44c4_s0_pN_r0,
- _vq_quantmap__44c4_s0_pN_r0,
- 5,
- 5
-};
-
-static static_codebook _44c4_s0_pN_r0 = {
- 2, 25,
- _vq_lengthlist__44c4_s0_pN_r0,
- 1, -537569963, 1607816533, 3, 0,
- _vq_quantlist__44c4_s0_pN_r0,
- NULL,
- &_vq_auxt__44c4_s0_pN_r0,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c4_s0_pN_r1.vqh b/lib/books/coupled/_44c4_s0_pN_r1.vqh
deleted file mode 100644
index 0a25bf23..00000000
--- a/lib/books/coupled/_44c4_s0_pN_r1.vqh
+++ /dev/null
@@ -1,61 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c4_s0_pN_r1_VQH_
-#define _V__44c4_s0_pN_r1_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c4_s0_pN_r1[] = {
- 2,
- 1,
- 3,
- 0,
- 4,
-};
-
-static long _vq_lengthlist__44c4_s0_pN_r1[] = {
- 2, 3, 3,11,10, 4, 4, 4,11,11, 4, 4, 4,11, 8,11,
- 5, 6, 9,11,10, 5, 5,10, 8,
-};
-
-static float _vq_quantthresh__44c4_s0_pN_r1[] = {
- -0.16667, -0.055556, 0.055556, 0.16667,
-};
-
-static long _vq_quantmap__44c4_s0_pN_r1[] = {
- 3, 1, 0, 2, 4,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c4_s0_pN_r1 = {
- _vq_quantthresh__44c4_s0_pN_r1,
- _vq_quantmap__44c4_s0_pN_r1,
- 5,
- 5
-};
-
-static static_codebook _44c4_s0_pN_r1 = {
- 2, 25,
- _vq_lengthlist__44c4_s0_pN_r1,
- 1, -541298233, 1604088263, 3, 0,
- _vq_quantlist__44c4_s0_pN_r1,
- NULL,
- &_vq_auxt__44c4_s0_pN_r1,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c4_s1_p2_0.vqh b/lib/books/coupled/_44c4_s1_p2_0.vqh
deleted file mode 100644
index d3e15eaf..00000000
--- a/lib/books/coupled/_44c4_s1_p2_0.vqh
+++ /dev/null
@@ -1,63 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c4_s1_p2_0_VQH_
-#define _V__44c4_s1_p2_0_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c4_s1_p2_0[] = {
- 1,
- 0,
- 2,
-};
-
-static long _vq_lengthlist__44c4_s1_p2_0[] = {
- 1, 3, 3, 0, 0, 0, 0, 0, 0, 4, 5, 5, 0, 0, 0, 0,
- 0, 0, 4, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,
-};
-
-static float _vq_quantthresh__44c4_s1_p2_0[] = {
- -0.5, 0.5,
-};
-
-static long _vq_quantmap__44c4_s1_p2_0[] = {
- 1, 0, 2,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c4_s1_p2_0 = {
- _vq_quantthresh__44c4_s1_p2_0,
- _vq_quantmap__44c4_s1_p2_0,
- 3,
- 3
-};
-
-static static_codebook _44c4_s1_p2_0 = {
- 4, 81,
- _vq_lengthlist__44c4_s1_p2_0,
- 1, -535822336, 1611661312, 2, 0,
- _vq_quantlist__44c4_s1_p2_0,
- NULL,
- &_vq_auxt__44c4_s1_p2_0,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c4_s1_p2_s0.vqh b/lib/books/coupled/_44c4_s1_p2_s0.vqh
deleted file mode 100644
index d4070e15..00000000
--- a/lib/books/coupled/_44c4_s1_p2_s0.vqh
+++ /dev/null
@@ -1,61 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c4_s1_p2_s0_VQH_
-#define _V__44c4_s1_p2_s0_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c4_s1_p2_s0[] = {
- 2,
- 1,
- 3,
- 0,
- 4,
-};
-
-static long _vq_lengthlist__44c4_s1_p2_s0[] = {
- 1,12,12,12,12, 3, 5, 4,12,12, 3, 4, 4,12,12, 6,
- 12,12, 7, 8,12,12,12,12,11,
-};
-
-static float _vq_quantthresh__44c4_s1_p2_s0[] = {
- -1.5, -0.5, 0.5, 1.5,
-};
-
-static long _vq_quantmap__44c4_s1_p2_s0[] = {
- 3, 1, 0, 2, 4,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c4_s1_p2_s0 = {
- _vq_quantthresh__44c4_s1_p2_s0,
- _vq_quantmap__44c4_s1_p2_s0,
- 5,
- 5
-};
-
-static static_codebook _44c4_s1_p2_s0 = {
- 2, 25,
- _vq_lengthlist__44c4_s1_p2_s0,
- 1, -533725184, 1611661312, 3, 0,
- _vq_quantlist__44c4_s1_p2_s0,
- NULL,
- &_vq_auxt__44c4_s1_p2_s0,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c4_s1_p4_0.vqh b/lib/books/coupled/_44c4_s1_p4_0.vqh
deleted file mode 100644
index 2d1174c9..00000000
--- a/lib/books/coupled/_44c4_s1_p4_0.vqh
+++ /dev/null
@@ -1,99 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c4_s1_p4_0_VQH_
-#define _V__44c4_s1_p4_0_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c4_s1_p4_0[] = {
- 2,
- 1,
- 3,
- 0,
- 4,
-};
-
-static long _vq_lengthlist__44c4_s1_p4_0[] = {
- 2, 3, 3, 6, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 4, 4, 7, 7, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 4, 4, 4, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 7, 8, 8,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 7, 7, 7, 8, 8, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,
-};
-
-static float _vq_quantthresh__44c4_s1_p4_0[] = {
- -1.5, -0.5, 0.5, 1.5,
-};
-
-static long _vq_quantmap__44c4_s1_p4_0[] = {
- 3, 1, 0, 2, 4,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c4_s1_p4_0 = {
- _vq_quantthresh__44c4_s1_p4_0,
- _vq_quantmap__44c4_s1_p4_0,
- 5,
- 5
-};
-
-static static_codebook _44c4_s1_p4_0 = {
- 4, 625,
- _vq_lengthlist__44c4_s1_p4_0,
- 1, -533725184, 1611661312, 3, 0,
- _vq_quantlist__44c4_s1_p4_0,
- NULL,
- &_vq_auxt__44c4_s1_p4_0,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c4_s1_p4_s0.vqh b/lib/books/coupled/_44c4_s1_p4_s0.vqh
deleted file mode 100644
index c4a47534..00000000
--- a/lib/books/coupled/_44c4_s1_p4_s0.vqh
+++ /dev/null
@@ -1,70 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c4_s1_p4_s0_VQH_
-#define _V__44c4_s1_p4_s0_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c4_s1_p4_s0[] = {
- 4,
- 3,
- 5,
- 2,
- 6,
- 1,
- 7,
- 0,
- 8,
-};
-
-static long _vq_lengthlist__44c4_s1_p4_s0[] = {
- 1,19,19,19,19,19,19,19,19, 3, 5, 5,19,19,19,19,
- 19,19, 3, 5, 5,19,19,19,19,19,19, 5, 7, 7, 6, 6,
- 19,19,19,19, 8, 7, 7,13,12,19,19,19,19, 8, 8, 8,
- 19,19,19,19,19,19, 8, 8, 8,19,19,19,19,19,19, 9,
- 19,19,19,19,19,19,10,11,18,18,18,18,18,18,18,18,
- 18,
-};
-
-static float _vq_quantthresh__44c4_s1_p4_s0[] = {
- -3.5, -2.5, -1.5, -0.5, 0.5, 1.5, 2.5, 3.5,
-};
-
-static long _vq_quantmap__44c4_s1_p4_s0[] = {
- 7, 5, 3, 1, 0, 2, 4, 6,
- 8,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c4_s1_p4_s0 = {
- _vq_quantthresh__44c4_s1_p4_s0,
- _vq_quantmap__44c4_s1_p4_s0,
- 9,
- 9
-};
-
-static static_codebook _44c4_s1_p4_s0 = {
- 2, 81,
- _vq_lengthlist__44c4_s1_p4_s0,
- 1, -531628032, 1611661312, 4, 0,
- _vq_quantlist__44c4_s1_p4_s0,
- NULL,
- &_vq_auxt__44c4_s1_p4_s0,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c4_s1_p6_0.vqh b/lib/books/coupled/_44c4_s1_p6_0.vqh
deleted file mode 100644
index fc16e3af..00000000
--- a/lib/books/coupled/_44c4_s1_p6_0.vqh
+++ /dev/null
@@ -1,93 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c4_s1_p6_0_VQH_
-#define _V__44c4_s1_p6_0_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c4_s1_p6_0[] = {
- 8,
- 7,
- 9,
- 6,
- 10,
- 5,
- 11,
- 4,
- 12,
- 3,
- 13,
- 2,
- 14,
- 1,
- 15,
- 0,
- 16,
-};
-
-static long _vq_lengthlist__44c4_s1_p6_0[] = {
- 1, 2, 3, 5, 5, 8, 8,10,10, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 8, 8,10,10, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 8, 8,11,10, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 8, 9,11,11, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 8,11,11, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9,11,11, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9,11,11, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,10,10,12,12,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,10,10,11,
- 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,11,11,
- 12,12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,10,
- 10,13,12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 12,12,13,13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,13,13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,14,14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,14,14, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,14,14, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,
-};
-
-static float _vq_quantthresh__44c4_s1_p6_0[] = {
- -7.5, -6.5, -5.5, -4.5, -3.5, -2.5, -1.5, -0.5,
- 0.5, 1.5, 2.5, 3.5, 4.5, 5.5, 6.5, 7.5,
-};
-
-static long _vq_quantmap__44c4_s1_p6_0[] = {
- 15, 13, 11, 9, 7, 5, 3, 1,
- 0, 2, 4, 6, 8, 10, 12, 14,
- 16,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c4_s1_p6_0 = {
- _vq_quantthresh__44c4_s1_p6_0,
- _vq_quantmap__44c4_s1_p6_0,
- 17,
- 17
-};
-
-static static_codebook _44c4_s1_p6_0 = {
- 2, 289,
- _vq_lengthlist__44c4_s1_p6_0,
- 1, -529530880, 1611661312, 5, 0,
- _vq_quantlist__44c4_s1_p6_0,
- NULL,
- &_vq_auxt__44c4_s1_p6_0,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c4_s1_p6_s0.vqh b/lib/books/coupled/_44c4_s1_p6_s0.vqh
deleted file mode 100644
index 9bceb15c..00000000
--- a/lib/books/coupled/_44c4_s1_p6_s0.vqh
+++ /dev/null
@@ -1,70 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c4_s1_p6_s0_VQH_
-#define _V__44c4_s1_p6_s0_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c4_s1_p6_s0[] = {
- 4,
- 3,
- 5,
- 2,
- 6,
- 1,
- 7,
- 0,
- 8,
-};
-
-static long _vq_lengthlist__44c4_s1_p6_s0[] = {
- 1,18,18,18,18,18,18,18,18, 3, 5, 5,18,18,18,18,
- 18,18, 3, 5, 5,18,18,18,18,18,18, 5, 7, 7, 7, 6,
- 18,18,18,18, 8, 7, 7,11,12,18,18,18,18, 7, 8, 8,
- 18,18,18,18,18,18, 8, 8, 8,18,18,18,18,18,18, 8,
- 18,18,18,18,18,18, 9,10,17,17,17,17,17,17,17,17,
- 17,
-};
-
-static float _vq_quantthresh__44c4_s1_p6_s0[] = {
- -3.5, -2.5, -1.5, -0.5, 0.5, 1.5, 2.5, 3.5,
-};
-
-static long _vq_quantmap__44c4_s1_p6_s0[] = {
- 7, 5, 3, 1, 0, 2, 4, 6,
- 8,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c4_s1_p6_s0 = {
- _vq_quantthresh__44c4_s1_p6_s0,
- _vq_quantmap__44c4_s1_p6_s0,
- 9,
- 9
-};
-
-static static_codebook _44c4_s1_p6_s0 = {
- 2, 81,
- _vq_lengthlist__44c4_s1_p6_s0,
- 1, -531628032, 1611661312, 4, 0,
- _vq_quantlist__44c4_s1_p6_s0,
- NULL,
- &_vq_auxt__44c4_s1_p6_s0,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c4_s1_p7_0.vqh b/lib/books/coupled/_44c4_s1_p7_0.vqh
deleted file mode 100644
index 95a31c3f..00000000
--- a/lib/books/coupled/_44c4_s1_p7_0.vqh
+++ /dev/null
@@ -1,80 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c4_s1_p7_0_VQH_
-#define _V__44c4_s1_p7_0_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c4_s1_p7_0[] = {
- 6,
- 5,
- 7,
- 4,
- 8,
- 3,
- 9,
- 2,
- 10,
- 1,
- 11,
- 0,
- 12,
-};
-
-static long _vq_lengthlist__44c4_s1_p7_0[] = {
- 1, 3, 4, 6, 6, 8, 9, 0, 0, 0, 0, 0, 0, 5, 5, 5,
- 7, 7, 9, 9, 0, 0, 0, 0, 0, 0, 6, 5, 5, 7, 7, 9,
- 9, 0, 0, 0, 0, 0, 0, 0, 7, 7, 8, 8,10,10, 0, 0,
- 0, 0, 0, 0, 0, 8, 7, 8, 8,10,10, 0, 0, 0, 0, 0,
- 0, 0,11,12, 9, 9,11,10, 0, 0, 0, 0, 0, 0, 0,13,
- 12, 9, 9,10,10, 0, 0, 0, 0, 0, 0, 0, 0, 0,11,11,
- 11,11, 0, 0, 0, 0, 0, 0, 0, 0, 0,11,11,11,11, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,14,15,12,12, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,15,15,12,12, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,14,14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,14,15, 0, 0, 0, 0, 0, 0,
-};
-
-static float _vq_quantthresh__44c4_s1_p7_0[] = {
- -27.5, -22.5, -17.5, -12.5, -7.5, -2.5, 2.5, 7.5,
- 12.5, 17.5, 22.5, 27.5,
-};
-
-static long _vq_quantmap__44c4_s1_p7_0[] = {
- 11, 9, 7, 5, 3, 1, 0, 2,
- 4, 6, 8, 10, 12,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c4_s1_p7_0 = {
- _vq_quantthresh__44c4_s1_p7_0,
- _vq_quantmap__44c4_s1_p7_0,
- 13,
- 13
-};
-
-static static_codebook _44c4_s1_p7_0 = {
- 2, 169,
- _vq_lengthlist__44c4_s1_p7_0,
- 1, -526516224, 1616117760, 4, 0,
- _vq_quantlist__44c4_s1_p7_0,
- NULL,
- &_vq_auxt__44c4_s1_p7_0,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c4_s1_p7_1.vqh b/lib/books/coupled/_44c4_s1_p7_1.vqh
deleted file mode 100644
index 83489bfc..00000000
--- a/lib/books/coupled/_44c4_s1_p7_1.vqh
+++ /dev/null
@@ -1,61 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c4_s1_p7_1_VQH_
-#define _V__44c4_s1_p7_1_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c4_s1_p7_1[] = {
- 2,
- 1,
- 3,
- 0,
- 4,
-};
-
-static long _vq_lengthlist__44c4_s1_p7_1[] = {
- 2, 4, 4, 5, 5, 7, 4, 4, 6, 6, 7, 4, 4, 5, 5, 7,
- 5, 5, 5, 6, 7, 7, 7, 5, 5,
-};
-
-static float _vq_quantthresh__44c4_s1_p7_1[] = {
- -1.5, -0.5, 0.5, 1.5,
-};
-
-static long _vq_quantmap__44c4_s1_p7_1[] = {
- 3, 1, 0, 2, 4,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c4_s1_p7_1 = {
- _vq_quantthresh__44c4_s1_p7_1,
- _vq_quantmap__44c4_s1_p7_1,
- 5,
- 5
-};
-
-static static_codebook _44c4_s1_p7_1 = {
- 2, 25,
- _vq_lengthlist__44c4_s1_p7_1,
- 1, -533725184, 1611661312, 3, 0,
- _vq_quantlist__44c4_s1_p7_1,
- NULL,
- &_vq_auxt__44c4_s1_p7_1,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c4_s1_p7_s0.vqh b/lib/books/coupled/_44c4_s1_p7_s0.vqh
deleted file mode 100644
index b1a232d0..00000000
--- a/lib/books/coupled/_44c4_s1_p7_s0.vqh
+++ /dev/null
@@ -1,70 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c4_s1_p7_s0_VQH_
-#define _V__44c4_s1_p7_s0_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c4_s1_p7_s0[] = {
- 4,
- 3,
- 5,
- 2,
- 6,
- 1,
- 7,
- 0,
- 8,
-};
-
-static long _vq_lengthlist__44c4_s1_p7_s0[] = {
- 1,18,18,18,18,18,18,18,18, 3, 5, 5,18,18,18,18,
- 18,18, 3, 5, 5,18,18,18,18,18,18, 5, 7, 7, 7, 7,
- 18,18,18,18, 7, 7, 7,11,12,18,18,18,18, 7, 8, 8,
- 18,18,18,18,18,18, 7, 8, 8,18,18,18,18,18,18, 8,
- 18,18,18,18,18,18,10, 9,17,17,17,17,17,17,17,17,
- 17,
-};
-
-static float _vq_quantthresh__44c4_s1_p7_s0[] = {
- -3.5, -2.5, -1.5, -0.5, 0.5, 1.5, 2.5, 3.5,
-};
-
-static long _vq_quantmap__44c4_s1_p7_s0[] = {
- 7, 5, 3, 1, 0, 2, 4, 6,
- 8,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c4_s1_p7_s0 = {
- _vq_quantthresh__44c4_s1_p7_s0,
- _vq_quantmap__44c4_s1_p7_s0,
- 9,
- 9
-};
-
-static static_codebook _44c4_s1_p7_s0 = {
- 2, 81,
- _vq_lengthlist__44c4_s1_p7_s0,
- 1, -531628032, 1611661312, 4, 0,
- _vq_quantlist__44c4_s1_p7_s0,
- NULL,
- &_vq_auxt__44c4_s1_p7_s0,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c4_s1_p8_0.vqh b/lib/books/coupled/_44c4_s1_p8_0.vqh
deleted file mode 100644
index 8897b4ed..00000000
--- a/lib/books/coupled/_44c4_s1_p8_0.vqh
+++ /dev/null
@@ -1,80 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c4_s1_p8_0_VQH_
-#define _V__44c4_s1_p8_0_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c4_s1_p8_0[] = {
- 6,
- 5,
- 7,
- 4,
- 8,
- 3,
- 9,
- 2,
- 10,
- 1,
- 11,
- 0,
- 12,
-};
-
-static long _vq_lengthlist__44c4_s1_p8_0[] = {
- 1, 4, 3, 6, 5, 7, 7, 0, 0, 0, 0, 0, 0, 6, 5, 5,
- 7, 7, 9, 9, 0, 0, 0, 0, 0, 0, 6, 5, 5, 7, 7, 9,
- 9, 0, 0, 0, 0, 0, 0, 0, 8, 8, 8, 8, 9, 9, 0, 0,
- 0, 0, 0, 0, 0, 8, 8, 8, 8, 9,10, 0, 0, 0, 0, 0,
- 0, 0,12,12, 9, 9,10,11, 0, 0, 0, 0, 0, 0, 0,12,
- 12, 9, 9,11,11, 0, 0, 0, 0, 0, 0, 0, 0, 0,11,11,
- 11,11, 0, 0, 0, 0, 0, 0, 0, 0, 0,11,11,11,11, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,14,15,12,12, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,15,14,12,12, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,14,14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,14,13, 0, 0, 0, 0, 0, 0,
-};
-
-static float _vq_quantthresh__44c4_s1_p8_0[] = {
- -71.5, -58.5, -45.5, -32.5, -19.5, -6.5, 6.5, 19.5,
- 32.5, 45.5, 58.5, 71.5,
-};
-
-static long _vq_quantmap__44c4_s1_p8_0[] = {
- 11, 9, 7, 5, 3, 1, 0, 2,
- 4, 6, 8, 10, 12,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c4_s1_p8_0 = {
- _vq_quantthresh__44c4_s1_p8_0,
- _vq_quantmap__44c4_s1_p8_0,
- 13,
- 13
-};
-
-static static_codebook _44c4_s1_p8_0 = {
- 2, 169,
- _vq_lengthlist__44c4_s1_p8_0,
- 1, -523010048, 1618608128, 4, 0,
- _vq_quantlist__44c4_s1_p8_0,
- NULL,
- &_vq_auxt__44c4_s1_p8_0,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c4_s1_p8_1.vqh b/lib/books/coupled/_44c4_s1_p8_1.vqh
deleted file mode 100644
index d3364a86..00000000
--- a/lib/books/coupled/_44c4_s1_p8_1.vqh
+++ /dev/null
@@ -1,80 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c4_s1_p8_1_VQH_
-#define _V__44c4_s1_p8_1_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c4_s1_p8_1[] = {
- 6,
- 5,
- 7,
- 4,
- 8,
- 3,
- 9,
- 2,
- 10,
- 1,
- 11,
- 0,
- 12,
-};
-
-static long _vq_lengthlist__44c4_s1_p8_1[] = {
- 3, 5, 5, 6, 6, 7, 7, 7, 7, 7, 7, 8, 8, 9, 5, 5,
- 6, 6, 7, 7, 8, 8, 8, 8, 8, 8, 9, 5, 5, 6, 6, 7,
- 7, 8, 7, 8, 8, 8, 8, 9, 7, 7, 7, 7, 7, 7, 8, 8,
- 8, 8, 8, 8, 9, 9, 9, 7, 7, 7, 7, 8, 8, 8, 8, 8,
- 8, 9, 9,10, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,10, 9,
- 9, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,10, 9,10, 8, 8,
- 8, 8, 8, 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, 8, 8, 8,
- 8, 8, 8, 8, 8, 9, 9,10, 9, 9, 8, 8, 8, 8, 8, 8,
- 8, 8, 9, 9, 9, 9, 9, 8, 8, 8, 8, 8, 8, 8, 8,10,
- 9,10, 9,10, 9, 9, 8, 8, 8, 8, 8, 8,10,10, 9,10,
- 10, 9, 9, 8, 8, 8, 8, 8, 8,
-};
-
-static float _vq_quantthresh__44c4_s1_p8_1[] = {
- -5.5, -4.5, -3.5, -2.5, -1.5, -0.5, 0.5, 1.5,
- 2.5, 3.5, 4.5, 5.5,
-};
-
-static long _vq_quantmap__44c4_s1_p8_1[] = {
- 11, 9, 7, 5, 3, 1, 0, 2,
- 4, 6, 8, 10, 12,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c4_s1_p8_1 = {
- _vq_quantthresh__44c4_s1_p8_1,
- _vq_quantmap__44c4_s1_p8_1,
- 13,
- 13
-};
-
-static static_codebook _44c4_s1_p8_1 = {
- 2, 169,
- _vq_lengthlist__44c4_s1_p8_1,
- 1, -531103744, 1611661312, 4, 0,
- _vq_quantlist__44c4_s1_p8_1,
- NULL,
- &_vq_auxt__44c4_s1_p8_1,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c4_s1_p8_s0.vqh b/lib/books/coupled/_44c4_s1_p8_s0.vqh
deleted file mode 100644
index 542f7aeb..00000000
--- a/lib/books/coupled/_44c4_s1_p8_s0.vqh
+++ /dev/null
@@ -1,70 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c4_s1_p8_s0_VQH_
-#define _V__44c4_s1_p8_s0_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c4_s1_p8_s0[] = {
- 4,
- 3,
- 5,
- 2,
- 6,
- 1,
- 7,
- 0,
- 8,
-};
-
-static long _vq_lengthlist__44c4_s1_p8_s0[] = {
- 1,14,14,14,14,14,14,14,14, 3, 5, 5,14,14,14,14,
- 14,14, 3, 5, 5,14,14,14,14,14,14, 5, 7, 7, 7, 7,
- 14,14,14,14, 8, 7, 7,12,14,14,14,14,14, 7, 8, 8,
- 14,14,14,14,14,14, 7, 8, 8,14,14,14,14,14,14, 8,
- 14,14,14,14,14,14, 9, 9,14,14,14,14,14,13,13,13,
- 13,
-};
-
-static float _vq_quantthresh__44c4_s1_p8_s0[] = {
- -3.5, -2.5, -1.5, -0.5, 0.5, 1.5, 2.5, 3.5,
-};
-
-static long _vq_quantmap__44c4_s1_p8_s0[] = {
- 7, 5, 3, 1, 0, 2, 4, 6,
- 8,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c4_s1_p8_s0 = {
- _vq_quantthresh__44c4_s1_p8_s0,
- _vq_quantmap__44c4_s1_p8_s0,
- 9,
- 9
-};
-
-static static_codebook _44c4_s1_p8_s0 = {
- 2, 81,
- _vq_lengthlist__44c4_s1_p8_s0,
- 1, -531628032, 1611661312, 4, 0,
- _vq_quantlist__44c4_s1_p8_s0,
- NULL,
- &_vq_auxt__44c4_s1_p8_s0,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c4_s1_p9_0.vqh b/lib/books/coupled/_44c4_s1_p9_0.vqh
deleted file mode 100644
index 01c8b969..00000000
--- a/lib/books/coupled/_44c4_s1_p9_0.vqh
+++ /dev/null
@@ -1,80 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c4_s1_p9_0_VQH_
-#define _V__44c4_s1_p9_0_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c4_s1_p9_0[] = {
- 6,
- 5,
- 7,
- 4,
- 8,
- 3,
- 9,
- 2,
- 10,
- 1,
- 11,
- 0,
- 12,
-};
-
-static long _vq_lengthlist__44c4_s1_p9_0[] = {
- 1, 3, 3, 9, 8,13,14,14,14,14,14,14,14, 5, 5, 6,
- 9,10,14,14,14,14,14,14,14,14, 5, 6, 4,11,10,13,
- 13,14,14,14,14,14,14,14, 6,10,13,13,14,14,14,14,
- 14,14,14,14,14,11, 6,13,12,14,14,14,14,14,14,14,
- 14,14,12,13, 9,14,13,14,14,14,14,14,14,14,14,14,
- 12,14,12,14,14,14,14,14,14,14,14,14,14,14,13,13,
- 14,14,14,14,14,14,14,14,14,14,14,14, 9,14,13,14,
- 14,14,14,14,14,14,14,14,10,14,12,14,14,14,14,14,
- 14,14,14,14,14,14, 9,14, 9,14,14,14,14,14,14,14,
- 14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,
- 14,14,14,14,13,13,13,13,13,
-};
-
-static float _vq_quantthresh__44c4_s1_p9_0[] = {
- -929.5, -760.5, -591.5, -422.5, -253.5, -84.5, 84.5, 253.5,
- 422.5, 591.5, 760.5, 929.5,
-};
-
-static long _vq_quantmap__44c4_s1_p9_0[] = {
- 11, 9, 7, 5, 3, 1, 0, 2,
- 4, 6, 8, 10, 12,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c4_s1_p9_0 = {
- _vq_quantthresh__44c4_s1_p9_0,
- _vq_quantmap__44c4_s1_p9_0,
- 13,
- 13
-};
-
-static static_codebook _44c4_s1_p9_0 = {
- 2, 169,
- _vq_lengthlist__44c4_s1_p9_0,
- 1, -515919872, 1626677248, 4, 0,
- _vq_quantlist__44c4_s1_p9_0,
- NULL,
- &_vq_auxt__44c4_s1_p9_0,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c4_s1_p9_1.vqh b/lib/books/coupled/_44c4_s1_p9_1.vqh
deleted file mode 100644
index 28f6868a..00000000
--- a/lib/books/coupled/_44c4_s1_p9_1.vqh
+++ /dev/null
@@ -1,80 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c4_s1_p9_1_VQH_
-#define _V__44c4_s1_p9_1_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c4_s1_p9_1[] = {
- 6,
- 5,
- 7,
- 4,
- 8,
- 3,
- 9,
- 2,
- 10,
- 1,
- 11,
- 0,
- 12,
-};
-
-static long _vq_lengthlist__44c4_s1_p9_1[] = {
- 1, 4, 4, 6, 6, 7, 7, 7, 7, 8, 8, 9, 9, 6, 5, 6,
- 7, 7, 8, 8, 8, 9, 9,10,10,10, 7, 6, 5, 7, 7, 8,
- 8, 9, 9, 9, 9,10,10,12, 8, 8, 8, 8, 9, 9, 9, 9,
- 10,10,10,10,13, 8, 7, 8, 8, 9, 9, 9, 9,10,10,10,
- 10,13,11,12, 9, 9,10,10,10,10,10,11,10,11,13,11,
- 11, 9, 9,10,10,10,10,10,10,11,11,13,13,13,11,11,
- 10,11,10,10,11,11,11,11,13,12,12,11,10,10,11,11,
- 11,11,11,11,11,13,13,13,12,12,11,11,11,11,11,11,
- 12,11,13,13,13,13,12,11,11,10,10,11,11,11,12,14,
- 13,13,12,13,11,11,10,10,11,11,11,12,14,14,14,12,
- 13,10,11,10,10,11,11,12,12,
-};
-
-static float _vq_quantthresh__44c4_s1_p9_1[] = {
- -71.5, -58.5, -45.5, -32.5, -19.5, -6.5, 6.5, 19.5,
- 32.5, 45.5, 58.5, 71.5,
-};
-
-static long _vq_quantmap__44c4_s1_p9_1[] = {
- 11, 9, 7, 5, 3, 1, 0, 2,
- 4, 6, 8, 10, 12,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c4_s1_p9_1 = {
- _vq_quantthresh__44c4_s1_p9_1,
- _vq_quantmap__44c4_s1_p9_1,
- 13,
- 13
-};
-
-static static_codebook _44c4_s1_p9_1 = {
- 2, 169,
- _vq_lengthlist__44c4_s1_p9_1,
- 1, -523010048, 1618608128, 4, 0,
- _vq_quantlist__44c4_s1_p9_1,
- NULL,
- &_vq_auxt__44c4_s1_p9_1,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c4_s1_p9_2.vqh b/lib/books/coupled/_44c4_s1_p9_2.vqh
deleted file mode 100644
index f0bc98b4..00000000
--- a/lib/books/coupled/_44c4_s1_p9_2.vqh
+++ /dev/null
@@ -1,80 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c4_s1_p9_2_VQH_
-#define _V__44c4_s1_p9_2_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c4_s1_p9_2[] = {
- 6,
- 5,
- 7,
- 4,
- 8,
- 3,
- 9,
- 2,
- 10,
- 1,
- 11,
- 0,
- 12,
-};
-
-static long _vq_lengthlist__44c4_s1_p9_2[] = {
- 4, 5, 5, 6, 6, 6, 6, 7, 7, 7, 7, 7, 7, 8, 6, 6,
- 6, 6, 7, 7, 7, 7, 7, 7, 7, 7, 8, 6, 6, 6, 6, 7,
- 7, 7, 7, 7, 7, 7, 7, 9, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 8, 7, 8, 9, 9, 9, 7, 7, 7, 7, 7, 7, 8, 8, 8,
- 8, 9, 9, 9, 7, 7, 8, 8, 8, 8, 8, 8, 8, 8, 9, 9,
- 9, 7, 7, 8, 8, 8, 8, 8, 8, 8, 8, 9, 9, 9, 8, 8,
- 8, 8, 8, 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, 8, 8, 8,
- 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, 8, 8, 8, 8, 8, 8,
- 8, 8, 9, 9, 9, 9, 9, 8, 8, 8, 8, 8, 8, 8, 8, 9,
- 9, 9, 9, 9, 8, 8, 8, 8, 8, 8, 8, 8, 9, 9, 9, 9,
- 9, 9, 9, 8, 8, 8, 8, 8, 8,
-};
-
-static float _vq_quantthresh__44c4_s1_p9_2[] = {
- -5.5, -4.5, -3.5, -2.5, -1.5, -0.5, 0.5, 1.5,
- 2.5, 3.5, 4.5, 5.5,
-};
-
-static long _vq_quantmap__44c4_s1_p9_2[] = {
- 11, 9, 7, 5, 3, 1, 0, 2,
- 4, 6, 8, 10, 12,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c4_s1_p9_2 = {
- _vq_quantthresh__44c4_s1_p9_2,
- _vq_quantmap__44c4_s1_p9_2,
- 13,
- 13
-};
-
-static static_codebook _44c4_s1_p9_2 = {
- 2, 169,
- _vq_lengthlist__44c4_s1_p9_2,
- 1, -531103744, 1611661312, 4, 0,
- _vq_quantlist__44c4_s1_p9_2,
- NULL,
- &_vq_auxt__44c4_s1_p9_2,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c4_s1_p9_s0.vqh b/lib/books/coupled/_44c4_s1_p9_s0.vqh
deleted file mode 100644
index 99227e03..00000000
--- a/lib/books/coupled/_44c4_s1_p9_s0.vqh
+++ /dev/null
@@ -1,70 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c4_s1_p9_s0_VQH_
-#define _V__44c4_s1_p9_s0_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c4_s1_p9_s0[] = {
- 4,
- 3,
- 5,
- 2,
- 6,
- 1,
- 7,
- 0,
- 8,
-};
-
-static long _vq_lengthlist__44c4_s1_p9_s0[] = {
- 1, 9, 9, 9, 9, 9, 9, 9, 9, 4, 5, 5, 9, 9, 9, 9,
- 9, 9, 4, 5, 6, 9, 9, 9, 9, 9, 9, 6, 8, 6, 7, 6,
- 9, 9, 9, 9, 7, 6, 6, 9, 9, 9, 9, 9, 9, 9, 8, 9,
- 9, 9, 9, 9, 9, 9, 7, 9, 9, 9, 9, 9, 9, 9, 9, 8,
- 9, 9, 9, 9, 8, 8, 7, 8, 8, 8, 8, 8, 8, 8, 8, 8,
- 8,
-};
-
-static float _vq_quantthresh__44c4_s1_p9_s0[] = {
- -3.5, -2.5, -1.5, -0.5, 0.5, 1.5, 2.5, 3.5,
-};
-
-static long _vq_quantmap__44c4_s1_p9_s0[] = {
- 7, 5, 3, 1, 0, 2, 4, 6,
- 8,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c4_s1_p9_s0 = {
- _vq_quantthresh__44c4_s1_p9_s0,
- _vq_quantmap__44c4_s1_p9_s0,
- 9,
- 9
-};
-
-static static_codebook _44c4_s1_p9_s0 = {
- 2, 81,
- _vq_lengthlist__44c4_s1_p9_s0,
- 1, -531628032, 1611661312, 4, 0,
- _vq_quantlist__44c4_s1_p9_s0,
- NULL,
- &_vq_auxt__44c4_s1_p9_s0,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c4_s1_pS_r0.vqh b/lib/books/coupled/_44c4_s1_pS_r0.vqh
deleted file mode 100644
index 5e9c7688..00000000
--- a/lib/books/coupled/_44c4_s1_pS_r0.vqh
+++ /dev/null
@@ -1,58 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c4_s1_pS_r0_VQH_
-#define _V__44c4_s1_pS_r0_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c4_s1_pS_r0[] = {
- 1,
- 0,
- 2,
-};
-
-static long _vq_lengthlist__44c4_s1_pS_r0[] = {
- 3, 2, 1, 6, 6, 6, 6, 5, 5,
-};
-
-static float _vq_quantthresh__44c4_s1_pS_r0[] = {
- -0.16667, 0.16667,
-};
-
-static long _vq_quantmap__44c4_s1_pS_r0[] = {
- 1, 0, 2,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c4_s1_pS_r0 = {
- _vq_quantthresh__44c4_s1_pS_r0,
- _vq_quantmap__44c4_s1_pS_r0,
- 3,
- 3
-};
-
-static static_codebook _44c4_s1_pS_r0 = {
- 2, 9,
- _vq_lengthlist__44c4_s1_pS_r0,
- 1, -539667115, 1607816533, 2, 0,
- _vq_quantlist__44c4_s1_pS_r0,
- NULL,
- &_vq_auxt__44c4_s1_pS_r0,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c4_s1_pS_r1.vqh b/lib/books/coupled/_44c4_s1_pS_r1.vqh
deleted file mode 100644
index 00c53138..00000000
--- a/lib/books/coupled/_44c4_s1_pS_r1.vqh
+++ /dev/null
@@ -1,58 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c4_s1_pS_r1_VQH_
-#define _V__44c4_s1_pS_r1_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c4_s1_pS_r1[] = {
- 1,
- 0,
- 2,
-};
-
-static long _vq_lengthlist__44c4_s1_pS_r1[] = {
- 1, 3, 2, 6, 6, 6, 6, 5, 5,
-};
-
-static float _vq_quantthresh__44c4_s1_pS_r1[] = {
- -0.055556, 0.055556,
-};
-
-static long _vq_quantmap__44c4_s1_pS_r1[] = {
- 1, 0, 2,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c4_s1_pS_r1 = {
- _vq_quantthresh__44c4_s1_pS_r1,
- _vq_quantmap__44c4_s1_pS_r1,
- 3,
- 3
-};
-
-static static_codebook _44c4_s1_pS_r1 = {
- 2, 9,
- _vq_lengthlist__44c4_s1_pS_r1,
- 1, -543395385, 1604088263, 2, 0,
- _vq_quantlist__44c4_s1_pS_r1,
- NULL,
- &_vq_auxt__44c4_s1_pS_r1,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c4_s2_p6_0.vqh b/lib/books/coupled/_44c4_s2_p6_0.vqh
deleted file mode 100644
index 0ca56442..00000000
--- a/lib/books/coupled/_44c4_s2_p6_0.vqh
+++ /dev/null
@@ -1,70 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c4_s2_p6_0_VQH_
-#define _V__44c4_s2_p6_0_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c4_s2_p6_0[] = {
- 4,
- 3,
- 5,
- 2,
- 6,
- 1,
- 7,
- 0,
- 8,
-};
-
-static long _vq_lengthlist__44c4_s2_p6_0[] = {
- 1, 2, 3, 4, 5, 6, 7, 8, 8, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,
-};
-
-static float _vq_quantthresh__44c4_s2_p6_0[] = {
- -3.5, -2.5, -1.5, -0.5, 0.5, 1.5, 2.5, 3.5,
-};
-
-static long _vq_quantmap__44c4_s2_p6_0[] = {
- 7, 5, 3, 1, 0, 2, 4, 6,
- 8,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c4_s2_p6_0 = {
- _vq_quantthresh__44c4_s2_p6_0,
- _vq_quantmap__44c4_s2_p6_0,
- 9,
- 9
-};
-
-static static_codebook _44c4_s2_p6_0 = {
- 2, 81,
- _vq_lengthlist__44c4_s2_p6_0,
- 1, -531628032, 1611661312, 4, 0,
- _vq_quantlist__44c4_s2_p6_0,
- NULL,
- &_vq_auxt__44c4_s2_p6_0,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c4_s2_p6_s0.vqh b/lib/books/coupled/_44c4_s2_p6_s0.vqh
deleted file mode 100644
index ec84e61f..00000000
--- a/lib/books/coupled/_44c4_s2_p6_s0.vqh
+++ /dev/null
@@ -1,93 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c4_s2_p6_s0_VQH_
-#define _V__44c4_s2_p6_s0_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c4_s2_p6_s0[] = {
- 8,
- 7,
- 9,
- 6,
- 10,
- 5,
- 11,
- 4,
- 12,
- 3,
- 13,
- 2,
- 14,
- 1,
- 15,
- 0,
- 16,
-};
-
-static long _vq_lengthlist__44c4_s2_p6_s0[] = {
- 1,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,
- 19, 5, 6, 6,19,19,19,19,19,19,19,19,19,19,19,19,
- 19,19, 5, 6, 5,19,19,19,19,19,19,19,19,19,19,19,
- 19,19,19, 7, 5, 5,10,10,19,19,19,19,19,19,19,19,
- 19,19,19,19, 7, 5, 5, 9, 9,19,19,19,19,19,19,19,
- 19,19,19,19,19, 8, 6, 6, 9, 9,13,14,19,19,19,19,
- 19,19,19,19,19,19, 8, 6, 6, 8, 8,12,12,19,19,19,
- 19,19,19,19,19,19,19, 8, 7, 7,10,10,14,13,17,18,
- 19,19,19,19,19,19,19,19, 8, 6, 6, 9, 9,13,13,16,
- 17,19,19,19,19,19,19,19,19, 7, 7, 7,11,11,15,15,
- 19,19,19,19,19,19,19,19,19,19, 7, 7, 7,11,11,14,
- 14,19,19,19,19,19,19,19,19,19,19, 8,10,10,13,13,
- 19,19,19,19,19,19, 9, 9,19,19,19,19,11,10,10,13,
- 13,19,19,19,19,19,19,19,19,19,19,19,19,10,10,10,
- 19,19,19,19,19,19,19,19,19,19,19,19,19,19,10,10,
- 11,19,19,19,19,19,19,19,19,19,19,19,19,19,19,10,
- 19,19,19,19,19,19,19,19,19,19,19,19,19,19,12,11,
- 19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,
- 18,
-};
-
-static float _vq_quantthresh__44c4_s2_p6_s0[] = {
- -7.5, -6.5, -5.5, -4.5, -3.5, -2.5, -1.5, -0.5,
- 0.5, 1.5, 2.5, 3.5, 4.5, 5.5, 6.5, 7.5,
-};
-
-static long _vq_quantmap__44c4_s2_p6_s0[] = {
- 15, 13, 11, 9, 7, 5, 3, 1,
- 0, 2, 4, 6, 8, 10, 12, 14,
- 16,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c4_s2_p6_s0 = {
- _vq_quantthresh__44c4_s2_p6_s0,
- _vq_quantmap__44c4_s2_p6_s0,
- 17,
- 17
-};
-
-static static_codebook _44c4_s2_p6_s0 = {
- 2, 289,
- _vq_lengthlist__44c4_s2_p6_s0,
- 1, -529530880, 1611661312, 5, 0,
- _vq_quantlist__44c4_s2_p6_s0,
- NULL,
- &_vq_auxt__44c4_s2_p6_s0,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c4_s2_p7_0.vqh b/lib/books/coupled/_44c4_s2_p7_0.vqh
deleted file mode 100644
index 09783e08..00000000
--- a/lib/books/coupled/_44c4_s2_p7_0.vqh
+++ /dev/null
@@ -1,80 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c4_s2_p7_0_VQH_
-#define _V__44c4_s2_p7_0_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c4_s2_p7_0[] = {
- 6,
- 5,
- 7,
- 4,
- 8,
- 3,
- 9,
- 2,
- 10,
- 1,
- 11,
- 0,
- 12,
-};
-
-static long _vq_lengthlist__44c4_s2_p7_0[] = {
- 1, 3, 4, 6, 6, 8, 9, 0, 0, 0, 0, 0, 0, 5, 5, 5,
- 7, 7, 9, 9, 0, 0, 0, 0, 0, 0, 6, 5, 5, 7, 7, 9,
- 9, 0, 0, 0, 0, 0, 0, 0, 7, 7, 8, 8,10,10, 0, 0,
- 0, 0, 0, 0, 0, 8, 7, 8, 8,10,10, 0, 0, 0, 0, 0,
- 0, 0,11,12, 9, 9,11,10, 0, 0, 0, 0, 0, 0, 0,13,
- 12, 9, 9,10,10, 0, 0, 0, 0, 0, 0, 0, 0, 0,11,11,
- 11,11, 0, 0, 0, 0, 0, 0, 0, 0, 0,11,11,11,11, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,14,15,12,12, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,15,15,12,12, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,14,14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,14,15, 0, 0, 0, 0, 0, 0,
-};
-
-static float _vq_quantthresh__44c4_s2_p7_0[] = {
- -27.5, -22.5, -17.5, -12.5, -7.5, -2.5, 2.5, 7.5,
- 12.5, 17.5, 22.5, 27.5,
-};
-
-static long _vq_quantmap__44c4_s2_p7_0[] = {
- 11, 9, 7, 5, 3, 1, 0, 2,
- 4, 6, 8, 10, 12,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c4_s2_p7_0 = {
- _vq_quantthresh__44c4_s2_p7_0,
- _vq_quantmap__44c4_s2_p7_0,
- 13,
- 13
-};
-
-static static_codebook _44c4_s2_p7_0 = {
- 2, 169,
- _vq_lengthlist__44c4_s2_p7_0,
- 1, -526516224, 1616117760, 4, 0,
- _vq_quantlist__44c4_s2_p7_0,
- NULL,
- &_vq_auxt__44c4_s2_p7_0,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c4_s2_p7_1.vqh b/lib/books/coupled/_44c4_s2_p7_1.vqh
deleted file mode 100644
index 2834dc81..00000000
--- a/lib/books/coupled/_44c4_s2_p7_1.vqh
+++ /dev/null
@@ -1,61 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c4_s2_p7_1_VQH_
-#define _V__44c4_s2_p7_1_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c4_s2_p7_1[] = {
- 2,
- 1,
- 3,
- 0,
- 4,
-};
-
-static long _vq_lengthlist__44c4_s2_p7_1[] = {
- 2, 4, 4, 5, 5, 7, 4, 4, 6, 6, 7, 4, 4, 5, 5, 7,
- 5, 5, 5, 6, 7, 7, 7, 5, 5,
-};
-
-static float _vq_quantthresh__44c4_s2_p7_1[] = {
- -1.5, -0.5, 0.5, 1.5,
-};
-
-static long _vq_quantmap__44c4_s2_p7_1[] = {
- 3, 1, 0, 2, 4,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c4_s2_p7_1 = {
- _vq_quantthresh__44c4_s2_p7_1,
- _vq_quantmap__44c4_s2_p7_1,
- 5,
- 5
-};
-
-static static_codebook _44c4_s2_p7_1 = {
- 2, 25,
- _vq_lengthlist__44c4_s2_p7_1,
- 1, -533725184, 1611661312, 3, 0,
- _vq_quantlist__44c4_s2_p7_1,
- NULL,
- &_vq_auxt__44c4_s2_p7_1,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c4_s2_p7_s0.vqh b/lib/books/coupled/_44c4_s2_p7_s0.vqh
deleted file mode 100644
index 083c71e3..00000000
--- a/lib/books/coupled/_44c4_s2_p7_s0.vqh
+++ /dev/null
@@ -1,93 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c4_s2_p7_s0_VQH_
-#define _V__44c4_s2_p7_s0_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c4_s2_p7_s0[] = {
- 8,
- 7,
- 9,
- 6,
- 10,
- 5,
- 11,
- 4,
- 12,
- 3,
- 13,
- 2,
- 14,
- 1,
- 15,
- 0,
- 16,
-};
-
-static long _vq_lengthlist__44c4_s2_p7_s0[] = {
- 1,18,18,18,18,18,18,18,18,18,18,17,17,17,17,17,
- 17, 5, 6, 6,17,17,17,17,17,17,17,17,17,17,17,17,
- 17,17, 5, 6, 6,17,17,17,17,17,17,17,17,17,17,17,
- 17,17,17, 7, 6, 6, 9,10,17,17,17,17,17,17,17,17,
- 17,17,17,17, 7, 5, 6, 9,10,17,17,17,17,17,17,17,
- 17,17,17,17,17, 7, 6, 6, 8, 9,12,13,17,17,17,17,
- 17,17,17,17,17,17, 8, 6, 6, 8, 8,12,12,17,17,17,
- 17,17,17,17,17,17,17, 7, 6, 6, 9, 9,12,13,17,17,
- 17,17,17,17,17,17,17,17, 8, 6, 6, 9, 9,12,12,16,
- 15,17,17,17,17,17,17,17,17, 7, 7, 7,10,10,14,14,
- 17,17,17,17,17,17,17,17,17,17, 7, 7, 7,10,10,13,
- 13,17,17,17,17,17,17,17,17,17,17, 7, 8, 8,12,12,
- 17,17,17,17,17,17, 8, 8,17,17,17,17,10, 8, 8,12,
- 11,17,17,17,17,17,17,17,17,17,17,17,17, 9, 9, 9,
- 17,17,17,17,17,17,17,17,17,17,17,17,17,17, 8, 9,
- 9,17,17,17,17,17,17,17,17,17,17,17,17,17,17, 9,
- 17,17,17,17,17,17,17,17,17,17,17,17,17,17,10,10,
- 17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,
- 17,
-};
-
-static float _vq_quantthresh__44c4_s2_p7_s0[] = {
- -7.5, -6.5, -5.5, -4.5, -3.5, -2.5, -1.5, -0.5,
- 0.5, 1.5, 2.5, 3.5, 4.5, 5.5, 6.5, 7.5,
-};
-
-static long _vq_quantmap__44c4_s2_p7_s0[] = {
- 15, 13, 11, 9, 7, 5, 3, 1,
- 0, 2, 4, 6, 8, 10, 12, 14,
- 16,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c4_s2_p7_s0 = {
- _vq_quantthresh__44c4_s2_p7_s0,
- _vq_quantmap__44c4_s2_p7_s0,
- 17,
- 17
-};
-
-static static_codebook _44c4_s2_p7_s0 = {
- 2, 289,
- _vq_lengthlist__44c4_s2_p7_s0,
- 1, -529530880, 1611661312, 5, 0,
- _vq_quantlist__44c4_s2_p7_s0,
- NULL,
- &_vq_auxt__44c4_s2_p7_s0,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c4_s2_p8_0.vqh b/lib/books/coupled/_44c4_s2_p8_0.vqh
deleted file mode 100644
index 80d0597a..00000000
--- a/lib/books/coupled/_44c4_s2_p8_0.vqh
+++ /dev/null
@@ -1,80 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c4_s2_p8_0_VQH_
-#define _V__44c4_s2_p8_0_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c4_s2_p8_0[] = {
- 6,
- 5,
- 7,
- 4,
- 8,
- 3,
- 9,
- 2,
- 10,
- 1,
- 11,
- 0,
- 12,
-};
-
-static long _vq_lengthlist__44c4_s2_p8_0[] = {
- 1, 4, 3, 6, 5, 7, 7, 0, 0, 0, 0, 0, 0, 6, 5, 5,
- 7, 7, 9, 9, 0, 0, 0, 0, 0, 0, 6, 5, 5, 7, 7, 9,
- 9, 0, 0, 0, 0, 0, 0, 0, 8, 8, 8, 8, 9, 9, 0, 0,
- 0, 0, 0, 0, 0, 8, 8, 8, 8, 9,10, 0, 0, 0, 0, 0,
- 0, 0,12,12, 9, 9,10,11, 0, 0, 0, 0, 0, 0, 0,12,
- 12, 9, 9,11,11, 0, 0, 0, 0, 0, 0, 0, 0, 0,11,11,
- 11,11, 0, 0, 0, 0, 0, 0, 0, 0, 0,11,11,11,11, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,14,15,12,12, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,15,14,12,12, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,14,14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,14,13, 0, 0, 0, 0, 0, 0,
-};
-
-static float _vq_quantthresh__44c4_s2_p8_0[] = {
- -71.5, -58.5, -45.5, -32.5, -19.5, -6.5, 6.5, 19.5,
- 32.5, 45.5, 58.5, 71.5,
-};
-
-static long _vq_quantmap__44c4_s2_p8_0[] = {
- 11, 9, 7, 5, 3, 1, 0, 2,
- 4, 6, 8, 10, 12,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c4_s2_p8_0 = {
- _vq_quantthresh__44c4_s2_p8_0,
- _vq_quantmap__44c4_s2_p8_0,
- 13,
- 13
-};
-
-static static_codebook _44c4_s2_p8_0 = {
- 2, 169,
- _vq_lengthlist__44c4_s2_p8_0,
- 1, -523010048, 1618608128, 4, 0,
- _vq_quantlist__44c4_s2_p8_0,
- NULL,
- &_vq_auxt__44c4_s2_p8_0,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c4_s2_p8_1.vqh b/lib/books/coupled/_44c4_s2_p8_1.vqh
deleted file mode 100644
index db0ebfed..00000000
--- a/lib/books/coupled/_44c4_s2_p8_1.vqh
+++ /dev/null
@@ -1,80 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c4_s2_p8_1_VQH_
-#define _V__44c4_s2_p8_1_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c4_s2_p8_1[] = {
- 6,
- 5,
- 7,
- 4,
- 8,
- 3,
- 9,
- 2,
- 10,
- 1,
- 11,
- 0,
- 12,
-};
-
-static long _vq_lengthlist__44c4_s2_p8_1[] = {
- 3, 5, 5, 6, 6, 7, 7, 7, 7, 7, 7, 8, 8, 9, 5, 5,
- 6, 6, 7, 7, 8, 8, 8, 8, 8, 8, 9, 5, 5, 6, 6, 7,
- 7, 8, 7, 8, 8, 8, 8, 9, 7, 7, 7, 7, 7, 7, 8, 8,
- 8, 8, 8, 8, 9, 9, 9, 7, 7, 7, 7, 8, 8, 8, 8, 8,
- 8, 9, 9,10, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,10, 9,
- 9, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,10, 9,10, 8, 8,
- 8, 8, 8, 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, 8, 8, 8,
- 8, 8, 8, 8, 8, 9, 9,10, 9, 9, 8, 8, 8, 8, 8, 8,
- 8, 8, 9, 9, 9, 9, 9, 8, 8, 8, 8, 8, 8, 8, 8,10,
- 9,10, 9,10, 9, 9, 8, 8, 8, 8, 8, 8,10,10, 9,10,
- 10, 9, 9, 8, 8, 8, 8, 8, 8,
-};
-
-static float _vq_quantthresh__44c4_s2_p8_1[] = {
- -5.5, -4.5, -3.5, -2.5, -1.5, -0.5, 0.5, 1.5,
- 2.5, 3.5, 4.5, 5.5,
-};
-
-static long _vq_quantmap__44c4_s2_p8_1[] = {
- 11, 9, 7, 5, 3, 1, 0, 2,
- 4, 6, 8, 10, 12,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c4_s2_p8_1 = {
- _vq_quantthresh__44c4_s2_p8_1,
- _vq_quantmap__44c4_s2_p8_1,
- 13,
- 13
-};
-
-static static_codebook _44c4_s2_p8_1 = {
- 2, 169,
- _vq_lengthlist__44c4_s2_p8_1,
- 1, -531103744, 1611661312, 4, 0,
- _vq_quantlist__44c4_s2_p8_1,
- NULL,
- &_vq_auxt__44c4_s2_p8_1,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c4_s2_p8_s0.vqh b/lib/books/coupled/_44c4_s2_p8_s0.vqh
deleted file mode 100644
index 8e4ae338..00000000
--- a/lib/books/coupled/_44c4_s2_p8_s0.vqh
+++ /dev/null
@@ -1,93 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c4_s2_p8_s0_VQH_
-#define _V__44c4_s2_p8_s0_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c4_s2_p8_s0[] = {
- 8,
- 7,
- 9,
- 6,
- 10,
- 5,
- 11,
- 4,
- 12,
- 3,
- 13,
- 2,
- 14,
- 1,
- 15,
- 0,
- 16,
-};
-
-static long _vq_lengthlist__44c4_s2_p8_s0[] = {
- 1,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,
- 12, 5, 6, 6,12,12,12,12,12,12,12,12,12,12,12,12,
- 12,12, 5, 6, 5,12,12,12,12,12,12,12,12,12,12,12,
- 12,12,12, 7, 6, 6,10,11,12,12,12,12,12,12,12,12,
- 12,12,12,12, 8, 6, 6,10,10,12,12,12,12,12,12,12,
- 12,12,12,12,12, 8, 6, 6, 9, 9,12,12,12,12,12,12,
- 12,12,12,12,12,12, 8, 6, 6, 9, 9,12,12,12,12,12,
- 12,12,12,12,12,12,12, 9, 7, 7, 9, 9,12,12,12,12,
- 12,12,12,12,12,12,12,12, 9, 6, 6, 8, 9,11,11,12,
- 12,12,12,12,12,12,12,12,12, 7, 7, 7,10,12,11,11,
- 12,12,12,12,12,12,12,12,12,12, 7, 7, 7,12,10,12,
- 11,12,12,12,12,12,12,12,12,12,12, 8, 8, 8,12,12,
- 12,12,12,12,12,12,10, 9,12,12,12,12,10, 9, 8,11,
- 11,12,12,12,12,12,12,12,12,12,12,12,12, 8, 9,10,
- 12,12,12,12,12,12,12,12,12,12,12,12,12,12, 9, 9,
- 10,12,12,12,12,12,12,12,12,12,12,12,12,12,12, 9,
- 12,12,12,12,12,12,12,12,12,12,12,12,12,12,10,10,
- 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,
- 12,
-};
-
-static float _vq_quantthresh__44c4_s2_p8_s0[] = {
- -7.5, -6.5, -5.5, -4.5, -3.5, -2.5, -1.5, -0.5,
- 0.5, 1.5, 2.5, 3.5, 4.5, 5.5, 6.5, 7.5,
-};
-
-static long _vq_quantmap__44c4_s2_p8_s0[] = {
- 15, 13, 11, 9, 7, 5, 3, 1,
- 0, 2, 4, 6, 8, 10, 12, 14,
- 16,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c4_s2_p8_s0 = {
- _vq_quantthresh__44c4_s2_p8_s0,
- _vq_quantmap__44c4_s2_p8_s0,
- 17,
- 17
-};
-
-static static_codebook _44c4_s2_p8_s0 = {
- 2, 289,
- _vq_lengthlist__44c4_s2_p8_s0,
- 1, -529530880, 1611661312, 5, 0,
- _vq_quantlist__44c4_s2_p8_s0,
- NULL,
- &_vq_auxt__44c4_s2_p8_s0,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c4_s2_p9_0.vqh b/lib/books/coupled/_44c4_s2_p9_0.vqh
deleted file mode 100644
index 0ebab41f..00000000
--- a/lib/books/coupled/_44c4_s2_p9_0.vqh
+++ /dev/null
@@ -1,80 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c4_s2_p9_0_VQH_
-#define _V__44c4_s2_p9_0_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c4_s2_p9_0[] = {
- 6,
- 5,
- 7,
- 4,
- 8,
- 3,
- 9,
- 2,
- 10,
- 1,
- 11,
- 0,
- 12,
-};
-
-static long _vq_lengthlist__44c4_s2_p9_0[] = {
- 1, 3, 3, 9, 8,13,14,14,14,14,14,14,14, 5, 5, 6,
- 9,10,14,14,14,14,14,14,14,14, 5, 6, 4,11,10,13,
- 13,14,14,14,14,14,14,14, 6,10,13,13,14,14,14,14,
- 14,14,14,14,14,11, 6,13,12,14,14,14,14,14,14,14,
- 14,14,12,13, 9,14,13,14,14,14,14,14,14,14,14,14,
- 12,14,12,14,14,14,14,14,14,14,14,14,14,14,13,13,
- 14,14,14,14,14,14,14,14,14,14,14,14, 9,14,13,14,
- 14,14,14,14,14,14,14,14,10,14,12,14,14,14,14,14,
- 14,14,14,14,14,14, 9,14, 9,14,14,14,14,14,14,14,
- 14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,
- 14,14,14,14,13,13,13,13,13,
-};
-
-static float _vq_quantthresh__44c4_s2_p9_0[] = {
- -929.5, -760.5, -591.5, -422.5, -253.5, -84.5, 84.5, 253.5,
- 422.5, 591.5, 760.5, 929.5,
-};
-
-static long _vq_quantmap__44c4_s2_p9_0[] = {
- 11, 9, 7, 5, 3, 1, 0, 2,
- 4, 6, 8, 10, 12,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c4_s2_p9_0 = {
- _vq_quantthresh__44c4_s2_p9_0,
- _vq_quantmap__44c4_s2_p9_0,
- 13,
- 13
-};
-
-static static_codebook _44c4_s2_p9_0 = {
- 2, 169,
- _vq_lengthlist__44c4_s2_p9_0,
- 1, -515919872, 1626677248, 4, 0,
- _vq_quantlist__44c4_s2_p9_0,
- NULL,
- &_vq_auxt__44c4_s2_p9_0,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c4_s2_p9_1.vqh b/lib/books/coupled/_44c4_s2_p9_1.vqh
deleted file mode 100644
index dfbc620a..00000000
--- a/lib/books/coupled/_44c4_s2_p9_1.vqh
+++ /dev/null
@@ -1,80 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c4_s2_p9_1_VQH_
-#define _V__44c4_s2_p9_1_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c4_s2_p9_1[] = {
- 6,
- 5,
- 7,
- 4,
- 8,
- 3,
- 9,
- 2,
- 10,
- 1,
- 11,
- 0,
- 12,
-};
-
-static long _vq_lengthlist__44c4_s2_p9_1[] = {
- 1, 4, 4, 6, 6, 7, 7, 7, 7, 8, 8, 9, 9, 6, 5, 6,
- 7, 7, 8, 8, 8, 9, 9,10,10,10, 7, 6, 5, 7, 7, 8,
- 8, 9, 9, 9, 9,10,10,12, 8, 8, 8, 8, 9, 9, 9, 9,
- 10,10,10,10,13, 8, 7, 8, 8, 9, 9, 9, 9,10,10,10,
- 10,13,11,12, 9, 9,10,10,10,10,10,11,10,11,13,11,
- 11, 9, 9,10,10,10,10,10,10,11,11,13,13,13,11,11,
- 10,11,10,10,11,11,11,11,13,12,12,11,10,10,11,11,
- 11,11,11,11,11,13,13,13,12,12,11,11,11,11,11,11,
- 12,11,13,13,13,13,12,11,11,10,10,11,11,11,12,14,
- 13,13,12,13,11,11,10,10,11,11,11,12,14,14,14,12,
- 13,10,11,10,10,11,11,12,12,
-};
-
-static float _vq_quantthresh__44c4_s2_p9_1[] = {
- -71.5, -58.5, -45.5, -32.5, -19.5, -6.5, 6.5, 19.5,
- 32.5, 45.5, 58.5, 71.5,
-};
-
-static long _vq_quantmap__44c4_s2_p9_1[] = {
- 11, 9, 7, 5, 3, 1, 0, 2,
- 4, 6, 8, 10, 12,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c4_s2_p9_1 = {
- _vq_quantthresh__44c4_s2_p9_1,
- _vq_quantmap__44c4_s2_p9_1,
- 13,
- 13
-};
-
-static static_codebook _44c4_s2_p9_1 = {
- 2, 169,
- _vq_lengthlist__44c4_s2_p9_1,
- 1, -523010048, 1618608128, 4, 0,
- _vq_quantlist__44c4_s2_p9_1,
- NULL,
- &_vq_auxt__44c4_s2_p9_1,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c4_s2_p9_2.vqh b/lib/books/coupled/_44c4_s2_p9_2.vqh
deleted file mode 100644
index 2d5a30cb..00000000
--- a/lib/books/coupled/_44c4_s2_p9_2.vqh
+++ /dev/null
@@ -1,80 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c4_s2_p9_2_VQH_
-#define _V__44c4_s2_p9_2_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c4_s2_p9_2[] = {
- 6,
- 5,
- 7,
- 4,
- 8,
- 3,
- 9,
- 2,
- 10,
- 1,
- 11,
- 0,
- 12,
-};
-
-static long _vq_lengthlist__44c4_s2_p9_2[] = {
- 4, 5, 5, 6, 6, 6, 6, 7, 7, 7, 7, 7, 7, 8, 6, 6,
- 6, 6, 7, 7, 7, 7, 7, 7, 7, 7, 8, 6, 6, 6, 6, 7,
- 7, 7, 7, 7, 7, 7, 7, 9, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 8, 7, 8, 9, 9, 9, 7, 7, 7, 7, 7, 7, 8, 8, 8,
- 8, 9, 9, 9, 7, 7, 8, 8, 8, 8, 8, 8, 8, 8, 9, 9,
- 9, 7, 7, 8, 8, 8, 8, 8, 8, 8, 8, 9, 9, 9, 8, 8,
- 8, 8, 8, 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, 8, 8, 8,
- 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, 8, 8, 8, 8, 8, 8,
- 8, 8, 9, 9, 9, 9, 9, 8, 8, 8, 8, 8, 8, 8, 8, 9,
- 9, 9, 9, 9, 8, 8, 8, 8, 8, 8, 8, 8, 9, 9, 9, 9,
- 9, 9, 9, 8, 8, 8, 8, 8, 8,
-};
-
-static float _vq_quantthresh__44c4_s2_p9_2[] = {
- -5.5, -4.5, -3.5, -2.5, -1.5, -0.5, 0.5, 1.5,
- 2.5, 3.5, 4.5, 5.5,
-};
-
-static long _vq_quantmap__44c4_s2_p9_2[] = {
- 11, 9, 7, 5, 3, 1, 0, 2,
- 4, 6, 8, 10, 12,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c4_s2_p9_2 = {
- _vq_quantthresh__44c4_s2_p9_2,
- _vq_quantmap__44c4_s2_p9_2,
- 13,
- 13
-};
-
-static static_codebook _44c4_s2_p9_2 = {
- 2, 169,
- _vq_lengthlist__44c4_s2_p9_2,
- 1, -531103744, 1611661312, 4, 0,
- _vq_quantlist__44c4_s2_p9_2,
- NULL,
- &_vq_auxt__44c4_s2_p9_2,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c4_s2_p9_s0.vqh b/lib/books/coupled/_44c4_s2_p9_s0.vqh
deleted file mode 100644
index 35c1c324..00000000
--- a/lib/books/coupled/_44c4_s2_p9_s0.vqh
+++ /dev/null
@@ -1,93 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c4_s2_p9_s0_VQH_
-#define _V__44c4_s2_p9_s0_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c4_s2_p9_s0[] = {
- 8,
- 7,
- 9,
- 6,
- 10,
- 5,
- 11,
- 4,
- 12,
- 3,
- 13,
- 2,
- 14,
- 1,
- 15,
- 0,
- 16,
-};
-
-static long _vq_lengthlist__44c4_s2_p9_s0[] = {
- 1,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,
- 10, 7, 7,10,10,10,10,10,10,10,10,10,10,10,10,10,
- 10,10, 7, 8, 7,10,10,10,10,10,10,10,10,10,10,10,
- 10,10,10, 9, 8, 8,10,10,10,10,10,10,10,10,10,10,
- 10,10,10,10,10,10, 8,10,10,10,10,10,10,10,10,10,
- 10,10,10,10,10,10, 7,10,10,10,10,10,10,10,10,10,
- 10,10,10,10,10,10,10, 9, 8,10,10,10,10,10,10,10,
- 10,10,10,10,10,10,10,10, 8,10,10,10,10,10,10,10,
- 10,10,10,10,10,10,10,10,10, 8,10, 8, 8, 9, 9, 9,
- 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 7, 9, 8, 9, 9, 9,
- 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 8, 9, 9, 9, 9,
- 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 8, 9,
- 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9,
-};
-
-static float _vq_quantthresh__44c4_s2_p9_s0[] = {
- -7.5, -6.5, -5.5, -4.5, -3.5, -2.5, -1.5, -0.5,
- 0.5, 1.5, 2.5, 3.5, 4.5, 5.5, 6.5, 7.5,
-};
-
-static long _vq_quantmap__44c4_s2_p9_s0[] = {
- 15, 13, 11, 9, 7, 5, 3, 1,
- 0, 2, 4, 6, 8, 10, 12, 14,
- 16,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c4_s2_p9_s0 = {
- _vq_quantthresh__44c4_s2_p9_s0,
- _vq_quantmap__44c4_s2_p9_s0,
- 17,
- 17
-};
-
-static static_codebook _44c4_s2_p9_s0 = {
- 2, 289,
- _vq_lengthlist__44c4_s2_p9_s0,
- 1, -529530880, 1611661312, 5, 0,
- _vq_quantlist__44c4_s2_p9_s0,
- NULL,
- &_vq_auxt__44c4_s2_p9_s0,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c4_s3_p7_0.vqh b/lib/books/coupled/_44c4_s3_p7_0.vqh
deleted file mode 100644
index 5319fec3..00000000
--- a/lib/books/coupled/_44c4_s3_p7_0.vqh
+++ /dev/null
@@ -1,80 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c4_s3_p7_0_VQH_
-#define _V__44c4_s3_p7_0_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c4_s3_p7_0[] = {
- 6,
- 5,
- 7,
- 4,
- 8,
- 3,
- 9,
- 2,
- 10,
- 1,
- 11,
- 0,
- 12,
-};
-
-static long _vq_lengthlist__44c4_s3_p7_0[] = {
- 1, 3, 4, 6, 6, 8, 9, 0, 0, 0, 0, 0, 0, 5, 5, 5,
- 7, 7, 9, 9, 0, 0, 0, 0, 0, 0, 6, 5, 5, 7, 7, 9,
- 9, 0, 0, 0, 0, 0, 0, 0, 7, 7, 8, 8,10,10, 0, 0,
- 0, 0, 0, 0, 0, 8, 7, 8, 8,10,10, 0, 0, 0, 0, 0,
- 0, 0,11,12, 9, 9,11,10, 0, 0, 0, 0, 0, 0, 0,13,
- 12, 9, 9,10,10, 0, 0, 0, 0, 0, 0, 0, 0, 0,11,11,
- 11,11, 0, 0, 0, 0, 0, 0, 0, 0, 0,11,11,11,11, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,14,15,12,12, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,15,15,12,12, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,14,14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,14,15, 0, 0, 0, 0, 0, 0,
-};
-
-static float _vq_quantthresh__44c4_s3_p7_0[] = {
- -27.5, -22.5, -17.5, -12.5, -7.5, -2.5, 2.5, 7.5,
- 12.5, 17.5, 22.5, 27.5,
-};
-
-static long _vq_quantmap__44c4_s3_p7_0[] = {
- 11, 9, 7, 5, 3, 1, 0, 2,
- 4, 6, 8, 10, 12,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c4_s3_p7_0 = {
- _vq_quantthresh__44c4_s3_p7_0,
- _vq_quantmap__44c4_s3_p7_0,
- 13,
- 13
-};
-
-static static_codebook _44c4_s3_p7_0 = {
- 2, 169,
- _vq_lengthlist__44c4_s3_p7_0,
- 1, -526516224, 1616117760, 4, 0,
- _vq_quantlist__44c4_s3_p7_0,
- NULL,
- &_vq_auxt__44c4_s3_p7_0,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c4_s3_p7_1.vqh b/lib/books/coupled/_44c4_s3_p7_1.vqh
deleted file mode 100644
index e9e0d869..00000000
--- a/lib/books/coupled/_44c4_s3_p7_1.vqh
+++ /dev/null
@@ -1,61 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c4_s3_p7_1_VQH_
-#define _V__44c4_s3_p7_1_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c4_s3_p7_1[] = {
- 2,
- 1,
- 3,
- 0,
- 4,
-};
-
-static long _vq_lengthlist__44c4_s3_p7_1[] = {
- 2, 4, 4, 5, 5, 7, 4, 4, 6, 6, 7, 4, 4, 5, 5, 7,
- 5, 5, 5, 6, 7, 7, 7, 5, 5,
-};
-
-static float _vq_quantthresh__44c4_s3_p7_1[] = {
- -1.5, -0.5, 0.5, 1.5,
-};
-
-static long _vq_quantmap__44c4_s3_p7_1[] = {
- 3, 1, 0, 2, 4,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c4_s3_p7_1 = {
- _vq_quantthresh__44c4_s3_p7_1,
- _vq_quantmap__44c4_s3_p7_1,
- 5,
- 5
-};
-
-static static_codebook _44c4_s3_p7_1 = {
- 2, 25,
- _vq_lengthlist__44c4_s3_p7_1,
- 1, -533725184, 1611661312, 3, 0,
- _vq_quantlist__44c4_s3_p7_1,
- NULL,
- &_vq_auxt__44c4_s3_p7_1,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c4_s3_p8_0.vqh b/lib/books/coupled/_44c4_s3_p8_0.vqh
deleted file mode 100644
index b321a62f..00000000
--- a/lib/books/coupled/_44c4_s3_p8_0.vqh
+++ /dev/null
@@ -1,80 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c4_s3_p8_0_VQH_
-#define _V__44c4_s3_p8_0_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c4_s3_p8_0[] = {
- 6,
- 5,
- 7,
- 4,
- 8,
- 3,
- 9,
- 2,
- 10,
- 1,
- 11,
- 0,
- 12,
-};
-
-static long _vq_lengthlist__44c4_s3_p8_0[] = {
- 1, 4, 3, 6, 5, 7, 7, 0, 0, 0, 0, 0, 0, 6, 5, 5,
- 7, 7, 9, 9, 0, 0, 0, 0, 0, 0, 6, 5, 5, 7, 7, 9,
- 9, 0, 0, 0, 0, 0, 0, 0, 8, 8, 8, 8, 9, 9, 0, 0,
- 0, 0, 0, 0, 0, 8, 8, 8, 8, 9,10, 0, 0, 0, 0, 0,
- 0, 0,12,12, 9, 9,10,11, 0, 0, 0, 0, 0, 0, 0,12,
- 12, 9, 9,11,11, 0, 0, 0, 0, 0, 0, 0, 0, 0,11,11,
- 11,11, 0, 0, 0, 0, 0, 0, 0, 0, 0,11,11,11,11, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,14,15,12,12, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,15,14,12,12, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,14,14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,14,13, 0, 0, 0, 0, 0, 0,
-};
-
-static float _vq_quantthresh__44c4_s3_p8_0[] = {
- -71.5, -58.5, -45.5, -32.5, -19.5, -6.5, 6.5, 19.5,
- 32.5, 45.5, 58.5, 71.5,
-};
-
-static long _vq_quantmap__44c4_s3_p8_0[] = {
- 11, 9, 7, 5, 3, 1, 0, 2,
- 4, 6, 8, 10, 12,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c4_s3_p8_0 = {
- _vq_quantthresh__44c4_s3_p8_0,
- _vq_quantmap__44c4_s3_p8_0,
- 13,
- 13
-};
-
-static static_codebook _44c4_s3_p8_0 = {
- 2, 169,
- _vq_lengthlist__44c4_s3_p8_0,
- 1, -523010048, 1618608128, 4, 0,
- _vq_quantlist__44c4_s3_p8_0,
- NULL,
- &_vq_auxt__44c4_s3_p8_0,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c4_s3_p8_1.vqh b/lib/books/coupled/_44c4_s3_p8_1.vqh
deleted file mode 100644
index 75b3a7ce..00000000
--- a/lib/books/coupled/_44c4_s3_p8_1.vqh
+++ /dev/null
@@ -1,80 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c4_s3_p8_1_VQH_
-#define _V__44c4_s3_p8_1_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c4_s3_p8_1[] = {
- 6,
- 5,
- 7,
- 4,
- 8,
- 3,
- 9,
- 2,
- 10,
- 1,
- 11,
- 0,
- 12,
-};
-
-static long _vq_lengthlist__44c4_s3_p8_1[] = {
- 3, 5, 5, 6, 6, 7, 7, 7, 7, 7, 7, 8, 8, 9, 5, 5,
- 6, 6, 7, 7, 8, 8, 8, 8, 8, 8, 9, 5, 5, 6, 6, 7,
- 7, 8, 7, 8, 8, 8, 8, 9, 7, 7, 7, 7, 7, 7, 8, 8,
- 8, 8, 8, 8, 9, 9, 9, 7, 7, 7, 7, 8, 8, 8, 8, 8,
- 8, 9, 9,10, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,10, 9,
- 9, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,10, 9,10, 8, 8,
- 8, 8, 8, 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, 8, 8, 8,
- 8, 8, 8, 8, 8, 9, 9,10, 9, 9, 8, 8, 8, 8, 8, 8,
- 8, 8, 9, 9, 9, 9, 9, 8, 8, 8, 8, 8, 8, 8, 8,10,
- 9,10, 9,10, 9, 9, 8, 8, 8, 8, 8, 8,10,10, 9,10,
- 10, 9, 9, 8, 8, 8, 8, 8, 8,
-};
-
-static float _vq_quantthresh__44c4_s3_p8_1[] = {
- -5.5, -4.5, -3.5, -2.5, -1.5, -0.5, 0.5, 1.5,
- 2.5, 3.5, 4.5, 5.5,
-};
-
-static long _vq_quantmap__44c4_s3_p8_1[] = {
- 11, 9, 7, 5, 3, 1, 0, 2,
- 4, 6, 8, 10, 12,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c4_s3_p8_1 = {
- _vq_quantthresh__44c4_s3_p8_1,
- _vq_quantmap__44c4_s3_p8_1,
- 13,
- 13
-};
-
-static static_codebook _44c4_s3_p8_1 = {
- 2, 169,
- _vq_lengthlist__44c4_s3_p8_1,
- 1, -531103744, 1611661312, 4, 0,
- _vq_quantlist__44c4_s3_p8_1,
- NULL,
- &_vq_auxt__44c4_s3_p8_1,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c4_s3_p9_0.vqh b/lib/books/coupled/_44c4_s3_p9_0.vqh
deleted file mode 100644
index cb15c379..00000000
--- a/lib/books/coupled/_44c4_s3_p9_0.vqh
+++ /dev/null
@@ -1,80 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c4_s3_p9_0_VQH_
-#define _V__44c4_s3_p9_0_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c4_s3_p9_0[] = {
- 6,
- 5,
- 7,
- 4,
- 8,
- 3,
- 9,
- 2,
- 10,
- 1,
- 11,
- 0,
- 12,
-};
-
-static long _vq_lengthlist__44c4_s3_p9_0[] = {
- 1, 3, 3, 9, 8,13,14,14,14,14,14,14,14, 5, 5, 6,
- 9,10,14,14,14,14,14,14,14,14, 5, 6, 4,11,10,13,
- 13,14,14,14,14,14,14,14, 6,10,13,13,14,14,14,14,
- 14,14,14,14,14,11, 6,13,12,14,14,14,14,14,14,14,
- 14,14,12,13, 9,14,13,14,14,14,14,14,14,14,14,14,
- 12,14,12,14,14,14,14,14,14,14,14,14,14,14,13,13,
- 14,14,14,14,14,14,14,14,14,14,14,14, 9,14,13,14,
- 14,14,14,14,14,14,14,14,10,14,12,14,14,14,14,14,
- 14,14,14,14,14,14, 9,14, 9,14,14,14,14,14,14,14,
- 14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,
- 14,14,14,14,13,13,13,13,13,
-};
-
-static float _vq_quantthresh__44c4_s3_p9_0[] = {
- -929.5, -760.5, -591.5, -422.5, -253.5, -84.5, 84.5, 253.5,
- 422.5, 591.5, 760.5, 929.5,
-};
-
-static long _vq_quantmap__44c4_s3_p9_0[] = {
- 11, 9, 7, 5, 3, 1, 0, 2,
- 4, 6, 8, 10, 12,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c4_s3_p9_0 = {
- _vq_quantthresh__44c4_s3_p9_0,
- _vq_quantmap__44c4_s3_p9_0,
- 13,
- 13
-};
-
-static static_codebook _44c4_s3_p9_0 = {
- 2, 169,
- _vq_lengthlist__44c4_s3_p9_0,
- 1, -515919872, 1626677248, 4, 0,
- _vq_quantlist__44c4_s3_p9_0,
- NULL,
- &_vq_auxt__44c4_s3_p9_0,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c4_s3_p9_1.vqh b/lib/books/coupled/_44c4_s3_p9_1.vqh
deleted file mode 100644
index 17223e62..00000000
--- a/lib/books/coupled/_44c4_s3_p9_1.vqh
+++ /dev/null
@@ -1,80 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c4_s3_p9_1_VQH_
-#define _V__44c4_s3_p9_1_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c4_s3_p9_1[] = {
- 6,
- 5,
- 7,
- 4,
- 8,
- 3,
- 9,
- 2,
- 10,
- 1,
- 11,
- 0,
- 12,
-};
-
-static long _vq_lengthlist__44c4_s3_p9_1[] = {
- 1, 4, 4, 6, 6, 7, 7, 7, 7, 8, 8, 9, 9, 6, 5, 6,
- 7, 7, 8, 8, 8, 9, 9,10,10,10, 7, 6, 5, 7, 7, 8,
- 8, 9, 9, 9, 9,10,10,12, 8, 8, 8, 8, 9, 9, 9, 9,
- 10,10,10,10,13, 8, 7, 8, 8, 9, 9, 9, 9,10,10,10,
- 10,13,11,12, 9, 9,10,10,10,10,10,11,10,11,13,11,
- 11, 9, 9,10,10,10,10,10,10,11,11,13,13,13,11,11,
- 10,11,10,10,11,11,11,11,13,12,12,11,10,10,11,11,
- 11,11,11,11,11,13,13,13,12,12,11,11,11,11,11,11,
- 12,11,13,13,13,13,12,11,11,10,10,11,11,11,12,14,
- 13,13,12,13,11,11,10,10,11,11,11,12,14,14,14,12,
- 13,10,11,10,10,11,11,12,12,
-};
-
-static float _vq_quantthresh__44c4_s3_p9_1[] = {
- -71.5, -58.5, -45.5, -32.5, -19.5, -6.5, 6.5, 19.5,
- 32.5, 45.5, 58.5, 71.5,
-};
-
-static long _vq_quantmap__44c4_s3_p9_1[] = {
- 11, 9, 7, 5, 3, 1, 0, 2,
- 4, 6, 8, 10, 12,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c4_s3_p9_1 = {
- _vq_quantthresh__44c4_s3_p9_1,
- _vq_quantmap__44c4_s3_p9_1,
- 13,
- 13
-};
-
-static static_codebook _44c4_s3_p9_1 = {
- 2, 169,
- _vq_lengthlist__44c4_s3_p9_1,
- 1, -523010048, 1618608128, 4, 0,
- _vq_quantlist__44c4_s3_p9_1,
- NULL,
- &_vq_auxt__44c4_s3_p9_1,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c4_s3_p9_2.vqh b/lib/books/coupled/_44c4_s3_p9_2.vqh
deleted file mode 100644
index 40f191f6..00000000
--- a/lib/books/coupled/_44c4_s3_p9_2.vqh
+++ /dev/null
@@ -1,80 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c4_s3_p9_2_VQH_
-#define _V__44c4_s3_p9_2_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c4_s3_p9_2[] = {
- 6,
- 5,
- 7,
- 4,
- 8,
- 3,
- 9,
- 2,
- 10,
- 1,
- 11,
- 0,
- 12,
-};
-
-static long _vq_lengthlist__44c4_s3_p9_2[] = {
- 4, 5, 5, 6, 6, 6, 6, 7, 7, 7, 7, 7, 7, 8, 6, 6,
- 6, 6, 7, 7, 7, 7, 7, 7, 7, 7, 8, 6, 6, 6, 6, 7,
- 7, 7, 7, 7, 7, 7, 7, 9, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 8, 7, 8, 9, 9, 9, 7, 7, 7, 7, 7, 7, 8, 8, 8,
- 8, 9, 9, 9, 7, 7, 8, 8, 8, 8, 8, 8, 8, 8, 9, 9,
- 9, 7, 7, 8, 8, 8, 8, 8, 8, 8, 8, 9, 9, 9, 8, 8,
- 8, 8, 8, 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, 8, 8, 8,
- 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, 8, 8, 8, 8, 8, 8,
- 8, 8, 9, 9, 9, 9, 9, 8, 8, 8, 8, 8, 8, 8, 8, 9,
- 9, 9, 9, 9, 8, 8, 8, 8, 8, 8, 8, 8, 9, 9, 9, 9,
- 9, 9, 9, 8, 8, 8, 8, 8, 8,
-};
-
-static float _vq_quantthresh__44c4_s3_p9_2[] = {
- -5.5, -4.5, -3.5, -2.5, -1.5, -0.5, 0.5, 1.5,
- 2.5, 3.5, 4.5, 5.5,
-};
-
-static long _vq_quantmap__44c4_s3_p9_2[] = {
- 11, 9, 7, 5, 3, 1, 0, 2,
- 4, 6, 8, 10, 12,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c4_s3_p9_2 = {
- _vq_quantthresh__44c4_s3_p9_2,
- _vq_quantmap__44c4_s3_p9_2,
- 13,
- 13
-};
-
-static static_codebook _44c4_s3_p9_2 = {
- 2, 169,
- _vq_lengthlist__44c4_s3_p9_2,
- 1, -531103744, 1611661312, 4, 0,
- _vq_quantlist__44c4_s3_p9_2,
- NULL,
- &_vq_auxt__44c4_s3_p9_2,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c4_s3_p9_s0.vqh b/lib/books/coupled/_44c4_s3_p9_s0.vqh
deleted file mode 100644
index 2d349e09..00000000
--- a/lib/books/coupled/_44c4_s3_p9_s0.vqh
+++ /dev/null
@@ -1,163 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c4_s3_p9_s0_VQH_
-#define _V__44c4_s3_p9_s0_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c4_s3_p9_s0[] = {
- 16,
- 15,
- 17,
- 14,
- 18,
- 13,
- 19,
- 12,
- 20,
- 11,
- 21,
- 10,
- 22,
- 9,
- 23,
- 8,
- 24,
- 7,
- 25,
- 6,
- 26,
- 5,
- 27,
- 4,
- 28,
- 3,
- 29,
- 2,
- 30,
- 1,
- 31,
- 0,
- 32,
-};
-
-static long _vq_lengthlist__44c4_s3_p9_s0[] = {
- 1,17,17,16,16,16,16,16,16,16,16,16,16,16,16,16,
- 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,
- 16, 6, 6, 6,16,16,16,16,16,16,16,16,16,16,16,16,
- 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,
- 16,16, 6, 6, 6,16,16,16,16,16,16,16,16,16,16,16,
- 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,
- 16,16,16, 8, 6, 6, 9,10,16,16,16,16,16,16,16,16,
- 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,
- 16,16,16,16, 8, 6, 6, 9, 9,16,16,16,16,16,16,16,
- 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,
- 16,16,16,16,16, 9, 7, 7, 7, 7,12,11,16,16,16,16,
- 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,
- 16,16,16,16,16,16, 9, 7, 7, 7, 7,11,11,16,16,16,
- 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,
- 16,16,16,16,16,16,16, 9, 8, 8, 7, 7, 9,10,13,13,
- 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,
- 16,16,16,16,16,16,16,16,10, 8, 8, 7, 7,10, 9,12,
- 12,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,
- 16,16,16,16,16,16,16,16,16, 9, 8, 8, 8, 8, 9,10,
- 11,12,15,15,16,16,16,16,16,16,16,16,16,16,16,16,
- 16,16,16,16,16,16,16,16,16,16,10, 8, 8, 8, 7, 9,
- 9,11,11,15,13,16,16,16,16,16,16,16,16,16,16,16,
- 16,16,16,16,16,16,16,16,16,16,16,10, 8, 8, 8, 8,
- 10,10,12,12,13,14,16,16,16,16,16,16,16,16,16,16,
- 16,16,16,16,16,16,16,16,16,16,16,16,10, 8, 8, 8,
- 8, 9,10,11,11,13,14,15,16,16,16,16,16,16,16,16,
- 16,16,16,16,16,16,16,16,16,16,16,16,16,10, 8, 8,
- 9, 9,10,10,12,11,14,14,15,15,16,16,16,16,16,16,
- 16,16,16,16,16,16,16,16,16,16,16,16,16,16,10, 8,
- 8, 9, 9,10,10,12,12,13,13,15,15,16,16,16,16,16,
- 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,10,
- 8, 8, 9, 9,11,11,13,13,14,15,15,16,16,16,16,16,
- 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,
- 10, 8, 8, 9, 9,11,10,13,13,15,15,14,15,16,15,16,
- 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,
- 16, 9, 9, 9,10,10,12,11,13,15,16,14,15,15,16,16,
- 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,
- 16,16, 9, 9, 9,10,10,11,12,14,13,14,14,16,16,16,
- 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,
- 16,16,16, 9,10,10,11,11,12,12,14,14,16,16,16,15,
- 16,16,16,16,16,16,10,10,16,16,16,16,16,16,16,16,
- 16,16,16,16,12,10,10,11,11,12,13,14,15,16,15,15,
- 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,
- 16,16,16,16,16,10,10,10,11,12,14,13,15,14,16,15,
- 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,
- 16,16,16,16,16,16,10,10,10,11,12,13,13,15,14,16,
- 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,
- 16,16,16,16,16,16,16,11,11,11,13,12,14,14,16,16,
- 16,16,16,16,16,16,16,16,16,16,16,16,16,16,12,12,
- 16,16,16,16,16,16,16,16,13,11,11,12,12,14,14,16,
- 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,
- 16,16,16,16,16,16,16,16,16,11,12,12,14,14,16,16,
- 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,
- 16,16,16,16,16,16,16,16,16,16,12,11,11,13,13,16,
- 15,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,
- 16,16,16,16,16,16,16,16,16,16,16,12,13,12,15,16,
- 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,
- 16,16,16,16,16,16,13,14,16,16,16,16,14,13,13,15,
- 15,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,
- 16,16,16,16,16,16,16,16,16,16,16,16,16,13,15,14,
- 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,
- 16,16,16,16,16,16,16,16,16,16,16,16,16,16,13,13,
- 14,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,
- 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,13,
- 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,
- 16,16,16,16,16,16,16,16,16,16,16,16,16,16,14,14,
- 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,
- 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,
- 16,
-};
-
-static float _vq_quantthresh__44c4_s3_p9_s0[] = {
- -15.5, -14.5, -13.5, -12.5, -11.5, -10.5, -9.5, -8.5,
- -7.5, -6.5, -5.5, -4.5, -3.5, -2.5, -1.5, -0.5,
- 0.5, 1.5, 2.5, 3.5, 4.5, 5.5, 6.5, 7.5,
- 8.5, 9.5, 10.5, 11.5, 12.5, 13.5, 14.5, 15.5,
-};
-
-static long _vq_quantmap__44c4_s3_p9_s0[] = {
- 31, 29, 27, 25, 23, 21, 19, 17,
- 15, 13, 11, 9, 7, 5, 3, 1,
- 0, 2, 4, 6, 8, 10, 12, 14,
- 16, 18, 20, 22, 24, 26, 28, 30,
- 32,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c4_s3_p9_s0 = {
- _vq_quantthresh__44c4_s3_p9_s0,
- _vq_quantmap__44c4_s3_p9_s0,
- 33,
- 33
-};
-
-static static_codebook _44c4_s3_p9_s0 = {
- 2, 1089,
- _vq_lengthlist__44c4_s3_p9_s0,
- 1, -527433728, 1611661312, 6, 0,
- _vq_quantlist__44c4_s3_p9_s0,
- NULL,
- &_vq_auxt__44c4_s3_p9_s0,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c4_short.vqd b/lib/books/coupled/_44c4_short.vqd
deleted file mode 100644
index 0bc4ed10..00000000
--- a/lib/books/coupled/_44c4_short.vqd
+++ /dev/null
@@ -1,5340 +0,0 @@
-8, 5, 5, 5, 3, 3, 3, 4, 4, 2, 2, 2, 2, 2, 0, 0,
-9, 5, 5, 3, 7, 5, 3, 6, 6, 4, 4, 2, 2, 2, 0, 0,
-8, 5, 5, 5, 5, 5, 5, 4, 4, 4, 6, 2, 2, 0, 0, 0,
-9, 7, 5, 5, 5, 3, 3, 6, 6, 4, 4, 2, 0, 0, 0, 0,
-9, 5, 7, 5, 1, 3, 3, 2, 2, 4, 2, 0, 0, 0, 0, 0,
-9, 5, 7, 3, 3, 1, 3, 4, 4, 2, 2, 0, 0, 0, 0, 0,
-9, 3, 7, 3, 3, 3, 3, 2, 2, 2, 2, 2, 0, 0, 0, 0,
-8, 3, 3, 3, 5, 1, 3, 2, 4, 2, 2, 2, 0, 0, 0, 0,
-9, 5, 7, 3, 3, 3, 3, 2, 2, 2, 2, 2, 0, 0, 0, 0,
-9, 5, 7, 5, 3, 5, 5, 6, 4, 2, 4, 2, 0, 0, 0, 0,
-9, 5, 7, 5, 7, 3, 3, 4, 6, 6, 4, 2, 0, 0, 0, 0,
-9, 5, 3, 3, 3, 3, 3, 2, 4, 6, 2, 2, 0, 0, 0, 0,
-8, 3, 5, 3, 5, 1, 3, 2, 2, 6, 2, 2, 2, 0, 0, 0,
-9, 5, 7, 3, 5, 3, 3, 4, 2, 4, 2, 2, 2, 0, 0, 0,
-8, 5, 7, 3, 5, 3, 5, 4, 2, 2, 6, 2, 2, 0, 0, 0,
-9, 5, 5, 5, 3, 3, 3, 4, 2, 2, 2, 0, 0, 0, 0, 0,
-9, 5, 3, 3, 3, 3, 1, 4, 2, 2, 0, 0, 0, 0, 0, 0,
-9, 3, 5, 3, 3, 3, 1, 2, 2, 2, 2, 0, 0, 0, 0, 0,
-9, 5, 3, 3, 3, 1, 3, 2, 2, 2, 2, 0, 0, 0, 0, 0,
-8, 3, 3, 5, 3, 3, 1, 4, 4, 2, 0, 2, 0, 0, 0, 0,
-8, 5, 3, 3, 1, 1, 1, 2, 2, 2, 2, 2, 0, 0, 0, 0,
-8, 7, 5, 7, 5, 5, 5, 4, 4, 2, 2, 0, 0, 0, 0, 0,
-8, 7, 5, 5, 5, 5, 3, 4, 4, 4, 2, 2, 0, 0, 0, 0,
-9, 7, 3, 1, 3, 3, 1, 4, 4, 2, 2, 0, 0, 0, 0, 0,
-9, 5, 5, 5, 5, 3, 5, 4, 4, 2, 4, 0, 0, 0, 0, 0,
-9, 5, 5, 7, 5, 5, 5, 6, 4, 4, 4, 2, 2, 0, 0, 0,
-9, 5, 5, 3, 1, 3, 1, 2, 2, 0, 2, 0, 0, 0, 0, 0,
-9, 5, 5, 3, 1, 5, 3, 4, 2, 2, 2, 0, 0, 0, 0, 0,
-8, 7, 3, 3, 3, 5, 1, 2, 4, 2, 2, 2, 0, 0, 0, 0,
-8, 7, 5, 3, 3, 5, 1, 4, 2, 2, 2, 0, 0, 0, 0, 0,
-9, 5, 5, 5, 3, 5, 5, 4, 4, 4, 2, 2, 0, 0, 0, 0,
-8, 5, 7, 7, 5, 5, 3, 4, 2, 4, 4, 4, 2, 0, 0, 0,
-9, 7, 5, 3, 3, 3, 1, 6, 2, 2, 2, 0, 0, 0, 0, 0,
-9, 7, 3, 5, 5, 3, 3, 2, 2, 2, 4, 2, 0, 0, 0, 0,
-9, 7, 5, 5, 5, 5, 3, 6, 2, 2, 4, 2, 0, 0, 0, 0,
-9, 5, 5, 5, 5, 5, 3, 4, 4, 2, 6, 2, 0, 0, 0, 0,
-9, 5, 5, 5, 5, 5, 5, 4, 4, 4, 4, 2, 2, 0, 0, 0,
-8, 3, 3, 5, 3, 1, 3, 2, 2, 2, 2, 2, 0, 0, 0, 0,
-8, 5, 5, 3, 3, 3, 3, 4, 2, 2, 2, 0, 0, 0, 0, 0,
-9, 5, 3, 3, 3, 3, 3, 4, 2, 2, 2, 0, 0, 0, 0, 0,
-8, 5, 5, 3, 1, 3, 1, 4, 2, 2, 2, 2, 0, 0, 0, 0,
-8, 5, 5, 3, 3, 3, 3, 2, 4, 2, 4, 2, 0, 0, 0, 0,
-8, 5, 5, 3, 3, 3, 3, 2, 2, 2, 2, 2, 0, 0, 0, 0,
-8, 7, 3, 3, 3, 1, 1, 4, 2, 2, 2, 2, 0, 0, 0, 0,
-9, 5, 5, 3, 3, 3, 3, 2, 2, 2, 2, 0, 0, 0, 0, 0,
-8, 7, 7, 3, 7, 5, 5, 4, 2, 4, 2, 2, 0, 0, 0, 0,
-8, 7, 5, 3, 5, 3, 3, 2, 2, 2, 2, 2, 0, 0, 0, 0,
-8, 5, 5, 3, 3, 3, 5, 2, 2, 4, 4, 0, 0, 0, 0, 0,
-9, 7, 5, 3, 5, 5, 5, 6, 4, 4, 4, 2, 4, 0, 0, 0,
-9, 5, 5, 3, 1, 3, 3, 4, 2, 2, 2, 2, 0, 0, 0, 0,
-8, 5, 5, 3, 1, 1, 3, 2, 2, 2, 2, 2, 0, 0, 0, 0,
-9, 5, 7, 1, 3, 1, 1, 4, 4, 2, 2, 0, 0, 0, 0, 0,
-8, 5, 3, 3, 3, 3, 1, 4, 2, 2, 2, 2, 0, 0, 0, 0,
-8, 5, 3, 1, 3, 3, 1, 2, 2, 4, 2, 0, 0, 0, 0, 0,
-8, 3, 5, 3, 3, 1, 3, 4, 2, 2, 2, 0, 0, 0, 0, 0,
-8, 5, 5, 3, 5, 5, 3, 6, 2, 4, 2, 2, 2, 2, 0, 0,
-9, 7, 7, 5, 5, 5, 3, 6, 4, 2, 4, 2, 2, 0, 0, 0,
-9, 5, 3, 1, 3, 5, 3, 4, 4, 2, 4, 2, 0, 0, 0, 0,
-8, 5, 3, 3, 3, 5, 3, 4, 2, 2, 2, 4, 0, 0, 0, 0,
-8, 5, 5, 5, 5, 3, 3, 4, 4, 6, 4, 2, 0, 0, 0, 0,
-9, 7, 5, 5, 3, 3, 3, 4, 6, 4, 6, 4, 0, 0, 0, 0,
-8, 5, 5, 5, 3, 5, 1, 4, 2, 2, 0, 0, 0, 0, 0, 0,
-9, 5, 3, 3, 1, 3, 1, 4, 2, 2, 2, 0, 0, 0, 0, 0,
-8, 7, 5, 3, 3, 3, 3, 4, 2, 0, 2, 0, 0, 0, 0, 0,
-9, 5, 5, 3, 1, 1, 1, 2, 2, 2, 2, 0, 0, 0, 0, 0,
-9, 7, 5, 3, 7, 5, 3, 4, 4, 6, 2, 2, 2, 0, 0, 0,
-9, 7, 5, 3, 7, 5, 3, 4, 6, 4, 4, 2, 0, 0, 0, 0,
-8, 5, 5, 3, 5, 3, 3, 2, 2, 4, 4, 2, 0, 0, 0, 0,
-9, 5, 5, 3, 3, 1, 3, 4, 4, 4, 4, 2, 0, 0, 0, 0,
-8, 7, 5, 3, 3, 1, 1, 2, 2, 2, 2, 2, 0, 0, 0, 0,
-9, 5, 5, 3, 1, 3, 3, 2, 4, 4, 2, 0, 0, 0, 0, 0,
-8, 5, 5, 1, 3, 3, 1, 4, 0, 4, 2, 2, 0, 0, 0, 0,
-8, 7, 5, 3, 7, 3, 1, 4, 4, 4, 4, 2, 0, 0, 0, 0,
-9, 7, 5, 3, 7, 5, 1, 2, 2, 4, 2, 2, 0, 0, 0, 0,
-8, 5, 5, 3, 5, 5, 3, 4, 6, 2, 4, 2, 2, 0, 0, 0,
-8, 7, 7, 5, 5, 5, 5, 4, 6, 4, 4, 2, 2, 0, 0, 0,
-9, 3, 5, 3, 5, 1, 3, 2, 2, 2, 2, 0, 0, 0, 0, 0,
-9, 3, 3, 1, 5, 3, 1, 2, 2, 2, 2, 0, 0, 0, 0, 0,
-9, 5, 5, 3, 3, 1, 1, 2, 2, 2, 0, 0, 0, 0, 0, 0,
-9, 5, 5, 3, 3, 3, 1, 2, 2, 2, 2, 0, 0, 0, 0, 0,
-9, 3, 5, 5, 3, 5, 5, 4, 4, 4, 4, 2, 0, 0, 0, 0,
-9, 7, 5, 5, 5, 5, 5, 4, 2, 4, 4, 2, 0, 0, 0, 0,
-9, 7, 7, 3, 7, 5, 3, 4, 4, 6, 4, 2, 0, 0, 0, 0,
-9, 5, 3, 3, 1, 3, 3, 2, 2, 2, 2, 2, 0, 0, 0, 0,
-9, 7, 5, 3, 3, 1, 1, 2, 4, 2, 0, 2, 0, 0, 0, 0,
-9, 5, 5, 3, 3, 5, 1, 4, 2, 2, 2, 2, 0, 0, 0, 0,
-9, 7, 7, 3, 5, 5, 5, 4, 2, 2, 4, 2, 0, 0, 0, 0,
-9, 7, 5, 5, 5, 5, 5, 4, 4, 4, 2, 2, 0, 0, 0, 0,
-9, 5, 3, 3, 1, 3, 1, 2, 2, 2, 2, 0, 0, 0, 0, 0,
-8, 3, 5, 1, 3, 3, 1, 2, 2, 2, 2, 2, 0, 0, 0, 0,
-9, 5, 5, 1, 3, 3, 1, 2, 2, 2, 0, 0, 0, 0, 0, 0,
-8, 5, 3, 1, 1, 3, 3, 2, 2, 2, 2, 0, 0, 0, 0, 0,
-8, 3, 5, 5, 1, 3, 1, 2, 2, 2, 2, 0, 0, 0, 0, 0,
-9, 5, 5, 3, 5, 3, 5, 4, 2, 2, 2, 2, 0, 0, 0, 0,
-9, 5, 5, 5, 5, 5, 3, 6, 4, 4, 4, 2, 2, 0, 0, 0,
-8, 5, 3, 3, 3, 3, 1, 4, 2, 2, 2, 2, 0, 0, 0, 0,
-9, 5, 5, 3, 3, 1, 1, 4, 4, 4, 2, 2, 0, 0, 0, 0,
-8, 3, 3, 5, 1, 3, 1, 2, 6, 2, 2, 2, 2, 0, 0, 0,
-8, 5, 5, 5, 5, 5, 5, 6, 2, 4, 2, 2, 0, 0, 0, 0,
-9, 7, 5, 5, 5, 5, 5, 4, 2, 4, 4, 4, 0, 0, 0, 0,
-9, 5, 3, 3, 3, 3, 1, 4, 2, 4, 2, 2, 2, 0, 0, 0,
-8, 7, 3, 3, 3, 5, 5, 4, 2, 2, 2, 2, 0, 0, 0, 0,
-8, 5, 5, 5, 3, 1, 1, 6, 2, 2, 2, 2, 0, 0, 0, 0,
-9, 7, 5, 3, 5, 5, 3, 2, 4, 4, 2, 2, 0, 0, 0, 0,
-9, 5, 5, 3, 5, 5, 3, 6, 4, 6, 6, 2, 0, 0, 0, 0,
-8, 5, 5, 3, 1, 1, 3, 2, 2, 2, 2, 2, 0, 0, 0, 0,
-9, 5, 3, 3, 3, 3, 1, 4, 4, 2, 4, 0, 0, 0, 0, 0,
-8, 5, 3, 3, 1, 3, 1, 2, 4, 4, 2, 2, 0, 0, 0, 0,
-8, 3, 7, 3, 3, 3, 3, 4, 2, 2, 2, 0, 0, 0, 0, 0,
-9, 5, 3, 3, 3, 3, 1, 2, 4, 2, 2, 2, 0, 0, 0, 0,
-8, 5, 5, 3, 1, 3, 1, 2, 2, 2, 2, 0, 0, 0, 0, 0,
-8, 5, 3, 3, 3, 1, 1, 2, 2, 2, 2, 2, 0, 0, 0, 0,
-8, 7, 7, 3, 5, 3, 3, 4, 4, 4, 2, 0, 0, 0, 0, 0,
-9, 5, 5, 3, 7, 5, 5, 4, 2, 4, 2, 2, 0, 0, 0, 0,
-8, 7, 5, 5, 5, 7, 5, 2, 4, 4, 2, 0, 0, 0, 0, 0,
-9, 5, 5, 1, 1, 3, 3, 4, 2, 2, 2, 0, 2, 0, 0, 0,
-8, 5, 5, 5, 5, 5, 3, 4, 4, 2, 6, 2, 0, 0, 0, 0,
-9, 5, 5, 5, 5, 5, 5, 6, 2, 4, 2, 0, 0, 0, 0, 0,
-8, 5, 3, 3, 3, 3, 3, 2, 2, 2, 2, 2, 2, 0, 0, 0,
-9, 3, 3, 3, 3, 1, 3, 4, 0, 2, 2, 0, 0, 0, 0, 0,
-9, 5, 5, 1, 3, 3, 1, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-9, 3, 5, 5, 5, 5, 3, 4, 6, 4, 2, 2, 0, 2, 0, 0,
-8, 5, 5, 7, 3, 7, 3, 6, 4, 6, 4, 2, 2, 0, 0, 0,
-8, 7, 5, 3, 5, 5, 5, 2, 2, 2, 2, 2, 0, 0, 0, 0,
-9, 5, 5, 3, 5, 5, 3, 4, 4, 6, 2, 2, 0, 0, 0, 0,
-9, 7, 5, 3, 5, 3, 3, 4, 6, 4, 2, 0, 0, 0, 0, 0,
-9, 3, 3, 1, 1, 3, 1, 4, 2, 2, 2, 0, 0, 0, 0, 0,
-8, 5, 5, 1, 1, 3, 1, 4, 2, 2, 2, 0, 0, 0, 0, 0,
-8, 5, 3, 1, 3, 3, 3, 2, 4, 2, 4, 2, 0, 0, 0, 0,
-9, 3, 3, 1, 3, 3, 1, 2, 4, 2, 2, 2, 0, 0, 0, 0,
-9, 5, 5, 3, 3, 3, 3, 2, 2, 2, 2, 0, 0, 0, 0, 0,
-9, 5, 3, 1, 5, 3, 1, 2, 2, 2, 2, 0, 0, 0, 0, 0,
-8, 3, 3, 3, 5, 3, 3, 2, 2, 2, 2, 2, 0, 0, 0, 0,
-8, 5, 5, 5, 5, 5, 3, 4, 4, 2, 2, 2, 2, 2, 0, 0,
-8, 7, 5, 3, 5, 5, 3, 4, 4, 2, 6, 2, 2, 2, 0, 0,
-9, 5, 5, 3, 5, 5, 5, 4, 4, 2, 2, 2, 0, 0, 0, 0,
-9, 3, 7, 3, 3, 3, 3, 4, 2, 4, 2, 2, 0, 0, 0, 0,
-8, 5, 5, 5, 5, 3, 3, 4, 4, 2, 2, 2, 0, 0, 0, 0,
-9, 5, 5, 3, 1, 1, 1, 2, 2, 4, 2, 2, 0, 0, 0, 0,
-9, 3, 5, 3, 3, 5, 1, 4, 2, 4, 2, 2, 0, 0, 0, 0,
-9, 5, 5, 5, 5, 3, 5, 6, 2, 2, 2, 2, 0, 0, 0, 0,
-8, 5, 5, 5, 5, 3, 5, 6, 4, 2, 4, 2, 2, 0, 0, 0,
-9, 5, 3, 5, 3, 3, 1, 2, 2, 2, 2, 2, 0, 0, 0, 0,
-9, 3, 3, 3, 3, 1, 3, 2, 2, 2, 2, 2, 0, 0, 0, 0,
-9, 5, 1, 3, 1, 3, 3, 2, 2, 2, 2, 0, 0, 0, 0, 0,
-9, 5, 3, 5, 3, 1, 3, 2, 2, 2, 2, 0, 0, 0, 0, 0,
-9, 5, 5, 5, 5, 3, 1, 4, 2, 2, 2, 0, 0, 0, 0, 0,
-9, 5, 5, 5, 3, 5, 3, 4, 2, 2, 2, 2, 0, 0, 0, 0,
-9, 3, 5, 5, 5, 1, 1, 2, 4, 2, 2, 2, 0, 0, 0, 0,
-9, 5, 3, 1, 7, 1, 3, 4, 4, 2, 4, 2, 0, 0, 0, 0,
-9, 5, 5, 3, 3, 1, 3, 4, 2, 2, 2, 2, 0, 0, 0, 0,
-8, 3, 5, 3, 5, 1, 1, 2, 4, 2, 2, 0, 0, 0, 0, 0,
-9, 5, 3, 1, 3, 3, 1, 4, 2, 2, 4, 0, 0, 0, 0, 0,
-9, 5, 5, 3, 5, 1, 5, 2, 4, 2, 4, 0, 0, 0, 0, 0,
-8, 5, 5, 3, 3, 5, 5, 7, 6, 2, 6, 2, 0, 0, 0, 0,
-9, 3, 7, 5, 3, 1, 3, 2, 2, 2, 2, 2, 0, 0, 0, 0,
-9, 7, 7, 1, 3, 1, 1, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-9, 3, 5, 3, 1, 5, 1, 2, 2, 2, 0, 0, 0, 0, 0, 0,
-8, 3, 7, 3, 3, 3, 1, 2, 2, 2, 2, 0, 0, 0, 0, 0,
-9, 5, 7, 5, 5, 3, 3, 4, 4, 2, 6, 4, 0, 0, 0, 0,
-9, 7, 5, 5, 5, 7, 7, 2, 4, 4, 4, 4, 2, 2, 0, 0,
-9, 5, 5, 3, 5, 5, 1, 2, 4, 4, 2, 2, 0, 0, 0, 0,
-9, 3, 3, 3, 3, 3, 3, 4, 2, 2, 2, 2, 0, 0, 0, 0,
-9, 5, 5, 3, 3, 1, 5, 4, 6, 2, 2, 2, 0, 0, 0, 0,
-9, 3, 3, 1, 3, 5, 3, 2, 2, 2, 2, 0, 0, 0, 0, 0,
-9, 5, 3, 3, 3, 3, 1, 4, 4, 2, 2, 0, 0, 0, 0, 0,
-9, 7, 5, 3, 3, 3, 3, 2, 2, 2, 2, 2, 0, 0, 0, 0,
-9, 5, 3, 5, 3, 5, 1, 2, 4, 2, 2, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 3, 5, 5, 4, 2, 2, 2, 0, 0, 0, 0, 0,
-9, 5, 5, 3, 5, 5, 3, 4, 4, 4, 2, 2, 2, 0, 0, 0,
-8, 5, 5, 5, 5, 5, 5, 4, 2, 4, 4, 4, 0, 0, 0, 0,
-9, 5, 3, 1, 5, 3, 1, 2, 2, 2, 2, 2, 0, 0, 0, 0,
-8, 5, 3, 3, 1, 1, 1, 4, 2, 2, 2, 2, 0, 0, 0, 0,
-9, 5, 3, 1, 3, 3, 3, 4, 2, 2, 2, 0, 0, 0, 0, 0,
-8, 5, 3, 1, 3, 1, 1, 4, 4, 2, 2, 2, 0, 0, 0, 0,
-8, 7, 3, 3, 5, 5, 5, 4, 2, 2, 4, 2, 0, 0, 0, 0,
-9, 5, 7, 5, 7, 5, 5, 4, 4, 2, 2, 2, 0, 0, 0, 0,
-8, 3, 3, 3, 5, 5, 1, 4, 2, 2, 2, 2, 0, 0, 0, 0,
-8, 3, 5, 3, 3, 5, 1, 2, 4, 2, 2, 2, 0, 0, 0, 0,
-8, 3, 5, 5, 3, 3, 1, 4, 6, 4, 2, 2, 0, 0, 0, 0,
-8, 3, 5, 3, 7, 3, 1, 6, 4, 2, 2, 2, 2, 0, 0, 0,
-8, 5, 5, 1, 5, 5, 3, 4, 2, 4, 2, 2, 0, 0, 0, 0,
-9, 3, 3, 1, 5, 3, 3, 4, 4, 4, 2, 4, 2, 0, 0, 0,
-9, 5, 5, 3, 3, 3, 3, 4, 2, 4, 2, 2, 2, 0, 0, 0,
-8, 5, 7, 5, 5, 5, 5, 4, 2, 2, 4, 2, 2, 0, 0, 0,
-8, 5, 3, 1, 3, 3, 3, 2, 2, 2, 0, 0, 0, 0, 0, 0,
-8, 5, 3, 1, 3, 1, 1, 2, 2, 2, 2, 0, 0, 0, 0, 0,
-9, 3, 3, 3, 3, 5, 1, 6, 4, 2, 0, 0, 0, 0, 0, 0,
-8, 5, 3, 3, 3, 5, 1, 2, 4, 2, 0, 0, 0, 0, 0, 0,
-9, 5, 3, 1, 3, 1, 3, 2, 2, 2, 0, 0, 0, 0, 0, 0,
-9, 5, 3, 5, 5, 3, 5, 2, 2, 4, 4, 2, 0, 0, 0, 0,
-8, 5, 5, 5, 5, 5, 3, 6, 4, 6, 4, 2, 0, 0, 0, 0,
-9, 5, 5, 3, 3, 3, 5, 4, 6, 2, 2, 2, 0, 0, 0, 0,
-9, 5, 7, 5, 5, 5, 5, 4, 6, 4, 4, 2, 2, 0, 0, 0,
-9, 5, 3, 1, 1, 3, 1, 2, 2, 2, 2, 2, 0, 0, 0, 0,
-8, 3, 5, 3, 3, 3, 1, 4, 2, 2, 2, 0, 0, 0, 0, 0,
-8, 5, 3, 3, 1, 5, 5, 2, 2, 2, 0, 2, 0, 0, 0, 0,
-9, 5, 5, 1, 3, 3, 3, 2, 2, 2, 2, 2, 0, 0, 0, 0,
-9, 5, 3, 3, 3, 3, 1, 2, 2, 2, 2, 0, 0, 0, 0, 0,
-9, 5, 5, 5, 3, 3, 3, 4, 2, 2, 2, 0, 0, 0, 0, 0,
-9, 3, 5, 3, 3, 3, 3, 2, 4, 4, 2, 0, 0, 0, 0, 0,
-9, 7, 5, 3, 5, 3, 3, 4, 2, 2, 2, 2, 0, 0, 0, 0,
-8, 3, 5, 3, 5, 3, 3, 4, 6, 6, 4, 2, 0, 0, 0, 0,
-8, 7, 5, 3, 5, 3, 3, 4, 4, 4, 4, 4, 2, 0, 0, 0,
-9, 5, 7, 1, 7, 3, 5, 4, 4, 4, 2, 2, 2, 0, 0, 0,
-8, 5, 7, 5, 5, 5, 5, 2, 4, 4, 4, 2, 0, 0, 0, 0,
-9, 7, 5, 5, 7, 5, 5, 2, 4, 4, 6, 2, 2, 0, 0, 0,
-8, 5, 3, 3, 3, 1, 1, 6, 4, 2, 2, 2, 0, 0, 0, 0,
-8, 5, 3, 3, 3, 1, 1, 2, 4, 2, 2, 0, 0, 0, 0, 0,
-8, 3, 3, 3, 3, 1, 1, 4, 2, 2, 2, 0, 0, 0, 0, 0,
-8, 3, 3, 5, 1, 3, 1, 4, 2, 2, 0, 2, 0, 0, 0, 0,
-9, 3, 3, 5, 3, 1, 3, 2, 2, 2, 2, 0, 0, 0, 0, 0,
-8, 5, 5, 5, 5, 3, 3, 4, 2, 4, 2, 0, 0, 0, 0, 0,
-9, 5, 3, 5, 5, 5, 5, 4, 4, 6, 2, 2, 0, 0, 0, 0,
-9, 5, 1, 3, 1, 3, 3, 2, 2, 2, 2, 0, 0, 0, 0, 0,
-9, 5, 5, 3, 1, 3, 1, 2, 4, 2, 2, 0, 0, 0, 0, 0,
-8, 5, 3, 3, 1, 3, 1, 4, 2, 2, 2, 0, 0, 0, 0, 0,
-9, 5, 5, 5, 3, 3, 3, 2, 6, 2, 4, 2, 0, 0, 0, 0,
-8, 5, 5, 5, 3, 5, 3, 4, 2, 4, 4, 2, 2, 0, 0, 0,
-8, 7, 5, 5, 1, 5, 1, 4, 2, 2, 2, 2, 0, 0, 0, 0,
-9, 7, 5, 3, 1, 3, 1, 2, 4, 2, 2, 0, 0, 0, 0, 0,
-8, 5, 3, 3, 3, 3, 3, 2, 2, 4, 2, 2, 0, 0, 0, 0,
-9, 7, 7, 1, 3, 5, 1, 6, 4, 2, 4, 0, 0, 0, 0, 0,
-9, 5, 7, 3, 5, 3, 5, 4, 2, 4, 4, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 3, 5, 5, 4, 4, 4, 4, 4, 0, 0, 0, 0,
-9, 5, 7, 5, 3, 3, 3, 2, 4, 4, 4, 2, 0, 0, 0, 0,
-8, 5, 5, 5, 5, 5, 3, 4, 4, 2, 6, 2, 0, 0, 0, 0,
-8, 5, 5, 5, 1, 1, 3, 4, 2, 2, 2, 2, 0, 0, 0, 0,
-8, 5, 3, 3, 1, 1, 1, 4, 2, 4, 2, 0, 0, 0, 0, 0,
-9, 5, 3, 1, 3, 1, 1, 4, 2, 2, 0, 2, 0, 0, 0, 0,
-9, 7, 5, 3, 3, 3, 1, 2, 4, 2, 2, 0, 0, 0, 0, 0,
-8, 5, 5, 3, 3, 5, 3, 4, 2, 2, 4, 2, 0, 0, 0, 0,
-9, 5, 5, 3, 7, 5, 5, 6, 4, 6, 4, 2, 0, 0, 0, 0,
-9, 5, 5, 1, 5, 3, 1, 2, 4, 2, 2, 2, 0, 0, 0, 0,
-8, 5, 3, 3, 5, 3, 3, 2, 2, 4, 2, 2, 0, 0, 0, 0,
-8, 7, 5, 3, 5, 5, 3, 4, 2, 2, 2, 2, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 5, 5, 4, 4, 4, 4, 4, 4, 0, 0, 0,
-9, 5, 3, 3, 3, 1, 1, 4, 2, 2, 2, 2, 2, 0, 0, 0,
-8, 5, 5, 3, 1, 3, 1, 4, 2, 4, 2, 2, 0, 0, 0, 0,
-9, 7, 3, 3, 3, 3, 1, 2, 2, 2, 2, 0, 0, 0, 0, 0,
-8, 5, 3, 3, 3, 1, 1, 4, 2, 2, 2, 2, 0, 0, 0, 0,
-8, 3, 5, 5, 3, 3, 3, 2, 2, 2, 4, 2, 0, 0, 0, 0,
-9, 7, 5, 3, 5, 3, 5, 4, 2, 2, 2, 2, 0, 0, 0, 0,
-8, 7, 5, 5, 5, 5, 5, 4, 4, 4, 2, 2, 0, 0, 0, 0,
-9, 3, 5, 3, 1, 5, 1, 4, 2, 2, 0, 0, 0, 0, 0, 0,
-9, 5, 3, 3, 3, 3, 1, 4, 2, 2, 2, 0, 0, 0, 0, 0,
-8, 5, 3, 3, 1, 5, 1, 2, 2, 2, 2, 0, 0, 0, 0, 0,
-9, 5, 3, 3, 1, 5, 1, 4, 2, 4, 2, 0, 0, 0, 0, 0,
-9, 7, 3, 3, 5, 5, 3, 2, 2, 2, 2, 2, 0, 0, 0, 0,
-9, 5, 3, 3, 5, 5, 3, 4, 4, 4, 4, 2, 0, 0, 0, 0,
-9, 5, 5, 5, 3, 5, 3, 4, 6, 4, 4, 4, 0, 0, 0, 0,
-9, 5, 7, 3, 3, 5, 1, 4, 4, 0, 2, 0, 0, 0, 0, 0,
-9, 7, 7, 3, 5, 3, 3, 4, 2, 2, 0, 0, 0, 0, 0, 0,
-9, 7, 5, 5, 3, 5, 1, 4, 2, 2, 0, 0, 0, 0, 0, 0,
-8, 5, 7, 5, 5, 5, 3, 4, 4, 2, 2, 2, 0, 0, 0, 0,
-9, 5, 5, 5, 5, 3, 1, 4, 6, 4, 4, 2, 0, 0, 0, 0,
-8, 7, 7, 3, 5, 1, 3, 4, 2, 4, 2, 2, 0, 0, 0, 0,
-8, 5, 5, 3, 3, 1, 1, 4, 4, 2, 4, 0, 0, 0, 0, 0,
-9, 7, 5, 3, 5, 5, 5, 2, 6, 2, 4, 2, 0, 0, 0, 0,
-8, 5, 5, 5, 7, 5, 5, 7, 6, 4, 6, 2, 0, 0, 0, 0,
-9, 5, 5, 3, 3, 3, 5, 2, 2, 2, 2, 0, 0, 0, 0, 0,
-9, 5, 5, 1, 5, 3, 1, 2, 2, 2, 2, 0, 0, 0, 0, 0,
-9, 5, 5, 1, 5, 3, 3, 2, 2, 2, 0, 0, 0, 0, 0, 0,
-9, 3, 3, 1, 3, 3, 1, 4, 2, 2, 2, 0, 0, 0, 0, 0,
-8, 5, 3, 1, 3, 1, 3, 2, 2, 2, 0, 0, 0, 0, 0, 0,
-9, 5, 5, 3, 1, 3, 3, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-9, 5, 7, 5, 5, 5, 5, 4, 4, 4, 4, 2, 2, 0, 0, 0,
-8, 5, 7, 5, 5, 5, 5, 2, 2, 2, 4, 4, 0, 0, 0, 0,
-9, 5, 3, 5, 1, 1, 3, 2, 2, 2, 4, 2, 0, 0, 0, 0,
-8, 5, 5, 3, 3, 3, 3, 4, 2, 2, 2, 2, 2, 0, 0, 0,
-8, 7, 5, 3, 3, 1, 5, 2, 4, 2, 2, 2, 0, 0, 0, 0,
-9, 7, 5, 3, 3, 3, 1, 4, 2, 2, 2, 2, 0, 0, 0, 0,
-9, 5, 5, 1, 3, 3, 3, 4, 2, 2, 2, 0, 0, 0, 0, 0,
-9, 5, 5, 1, 3, 3, 3, 4, 4, 4, 2, 0, 0, 0, 0, 0,
-9, 7, 5, 3, 3, 1, 1, 2, 4, 2, 4, 2, 0, 0, 0, 0,
-8, 5, 5, 3, 5, 5, 3, 4, 2, 4, 2, 2, 2, 0, 0, 0,
-9, 5, 7, 5, 5, 5, 5, 4, 4, 4, 4, 2, 0, 0, 0, 0,
-8, 5, 5, 3, 3, 1, 3, 4, 2, 2, 2, 0, 0, 0, 0, 0,
-8, 3, 5, 3, 1, 1, 1, 2, 4, 2, 2, 2, 0, 0, 0, 0,
-8, 5, 3, 1, 1, 3, 1, 2, 2, 2, 2, 0, 0, 0, 0, 0,
-9, 7, 5, 5, 5, 5, 5, 4, 2, 4, 4, 2, 2, 0, 0, 0,
-8, 7, 5, 5, 5, 5, 5, 2, 4, 2, 4, 2, 2, 2, 0, 0,
-9, 3, 3, 3, 3, 3, 3, 4, 2, 2, 4, 2, 0, 0, 0, 0,
-8, 3, 3, 5, 3, 3, 3, 4, 4, 4, 2, 2, 0, 0, 0, 0,
-8, 5, 3, 3, 3, 3, 1, 4, 4, 2, 0, 2, 2, 0, 0, 0,
-8, 7, 5, 7, 5, 5, 3, 6, 6, 4, 2, 2, 0, 0, 0, 0,
-8, 7, 5, 5, 3, 5, 5, 6, 2, 4, 4, 4, 2, 0, 0, 0,
-9, 5, 5, 3, 3, 3, 1, 4, 2, 4, 2, 2, 0, 0, 0, 0,
-9, 3, 5, 3, 5, 3, 3, 6, 2, 4, 4, 2, 0, 0, 0, 0,
-9, 5, 3, 5, 3, 5, 3, 4, 4, 4, 4, 0, 2, 0, 0, 0,
-9, 5, 3, 1, 3, 3, 3, 4, 2, 2, 2, 2, 0, 0, 0, 0,
-9, 7, 5, 3, 3, 3, 3, 4, 4, 2, 2, 2, 0, 0, 0, 0,
-9, 5, 7, 5, 7, 3, 5, 6, 2, 4, 4, 4, 0, 0, 0, 0,
-8, 5, 5, 3, 3, 3, 1, 4, 2, 2, 0, 0, 0, 0, 0, 0,
-9, 5, 3, 1, 1, 3, 1, 4, 2, 2, 2, 2, 0, 0, 0, 0,
-9, 5, 3, 3, 3, 1, 3, 2, 2, 2, 2, 2, 0, 0, 0, 0,
-8, 7, 5, 3, 3, 3, 3, 2, 2, 2, 2, 2, 2, 0, 0, 0,
-8, 3, 5, 3, 3, 3, 3, 4, 2, 2, 4, 2, 0, 0, 0, 0,
-8, 3, 3, 1, 3, 3, 3, 2, 2, 2, 2, 2, 0, 0, 0, 0,
-8, 5, 5, 5, 5, 3, 3, 2, 2, 2, 2, 0, 0, 0, 0, 0,
-8, 7, 5, 3, 3, 5, 5, 6, 2, 4, 6, 2, 2, 0, 0, 0,
-9, 5, 5, 3, 5, 3, 5, 2, 6, 6, 2, 2, 0, 0, 0, 0,
-9, 5, 3, 3, 3, 3, 1, 4, 2, 2, 4, 2, 2, 0, 0, 0,
-8, 5, 5, 5, 5, 1, 1, 2, 2, 2, 2, 2, 0, 0, 0, 0,
-8, 5, 5, 3, 1, 3, 1, 4, 2, 2, 2, 2, 0, 0, 0, 0,
-8, 5, 5, 3, 5, 3, 3, 4, 4, 4, 2, 2, 2, 0, 0, 0,
-8, 5, 5, 5, 5, 5, 5, 6, 6, 4, 4, 2, 2, 0, 0, 0,
-9, 7, 5, 3, 5, 5, 3, 4, 4, 4, 2, 2, 0, 0, 0, 0,
-9, 7, 5, 7, 3, 3, 3, 4, 2, 4, 4, 2, 2, 0, 0, 0,
-8, 5, 3, 1, 3, 3, 1, 4, 2, 2, 2, 0, 0, 0, 0, 0,
-8, 7, 3, 3, 1, 5, 3, 2, 2, 2, 2, 0, 0, 0, 0, 0,
-8, 5, 1, 5, 1, 5, 3, 2, 4, 4, 2, 2, 0, 0, 0, 0,
-9, 5, 3, 1, 3, 3, 1, 4, 2, 2, 2, 2, 0, 0, 0, 0,
-9, 5, 3, 1, 3, 3, 3, 2, 2, 2, 2, 0, 0, 0, 0, 0,
-8, 3, 3, 1, 5, 3, 3, 2, 2, 4, 2, 2, 2, 0, 0, 0,
-9, 5, 5, 5, 5, 3, 3, 4, 2, 2, 2, 2, 0, 0, 0, 0,
-9, 5, 7, 5, 5, 5, 3, 4, 4, 6, 2, 2, 0, 0, 0, 0,
-9, 5, 5, 3, 5, 5, 3, 4, 2, 4, 4, 2, 4, 2, 0, 0,
-9, 5, 5, 5, 5, 5, 5, 2, 6, 4, 4, 2, 2, 2, 0, 0,
-9, 5, 3, 3, 1, 3, 1, 4, 6, 2, 2, 2, 0, 0, 0, 0,
-9, 5, 5, 3, 3, 3, 3, 2, 4, 2, 2, 2, 0, 0, 0, 0,
-9, 5, 3, 5, 3, 3, 3, 2, 4, 2, 2, 4, 0, 0, 0, 0,
-9, 5, 3, 3, 3, 1, 1, 4, 2, 2, 2, 2, 0, 0, 0, 0,
-8, 5, 3, 3, 3, 3, 1, 2, 2, 4, 2, 0, 0, 0, 0, 0,
-8, 5, 3, 3, 1, 5, 3, 4, 4, 2, 2, 2, 2, 0, 0, 0,
-9, 5, 5, 5, 5, 3, 5, 4, 4, 4, 4, 2, 0, 0, 0, 0,
-9, 5, 5, 5, 5, 5, 3, 4, 4, 4, 4, 2, 2, 0, 0, 0,
-8, 5, 3, 1, 3, 3, 3, 2, 2, 2, 2, 2, 0, 0, 0, 0,
-8, 3, 3, 5, 1, 1, 3, 2, 2, 2, 2, 2, 0, 0, 0, 0,
-8, 5, 3, 3, 3, 3, 3, 4, 4, 2, 2, 2, 0, 0, 0, 0,
-9, 5, 3, 3, 3, 1, 1, 2, 2, 2, 2, 2, 0, 0, 0, 0,
-8, 5, 3, 3, 3, 3, 1, 4, 4, 2, 2, 2, 0, 0, 0, 0,
-8, 3, 3, 3, 3, 3, 3, 2, 6, 2, 2, 0, 0, 0, 0, 0,
-8, 3, 3, 3, 3, 3, 1, 2, 2, 2, 2, 2, 0, 0, 0, 0,
-9, 5, 5, 5, 3, 3, 3, 2, 4, 2, 2, 2, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 5, 5, 6, 4, 6, 4, 2, 0, 0, 0, 0,
-9, 5, 5, 5, 3, 5, 3, 6, 2, 4, 2, 4, 2, 0, 0, 0,
-8, 3, 5, 5, 3, 3, 3, 4, 4, 2, 2, 0, 0, 0, 0, 0,
-9, 5, 5, 5, 3, 5, 3, 6, 6, 2, 4, 2, 0, 0, 0, 0,
-9, 5, 5, 7, 5, 5, 5, 7, 7, 4, 4, 2, 2, 0, 0, 0,
-9, 5, 5, 5, 3, 1, 1, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-9, 5, 3, 3, 5, 1, 3, 2, 2, 2, 0, 0, 0, 0, 0, 0,
-8, 5, 5, 5, 1, 1, 3, 2, 2, 4, 2, 0, 0, 0, 0, 0,
-9, 5, 5, 3, 3, 1, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0,
-8, 3, 7, 3, 1, 3, 1, 2, 2, 0, 0, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 3, 5, 3, 2, 4, 2, 2, 0, 0, 0, 0, 0,
-9, 5, 5, 5, 5, 5, 7, 2, 4, 4, 4, 2, 0, 0, 0, 0,
-9, 5, 3, 3, 5, 3, 5, 4, 4, 4, 2, 2, 0, 0, 0, 0,
-9, 5, 7, 3, 3, 5, 5, 4, 4, 4, 4, 2, 0, 0, 0, 0,
-9, 5, 3, 3, 3, 3, 3, 4, 2, 2, 2, 0, 0, 0, 0, 0,
-8, 5, 3, 3, 3, 3, 1, 4, 2, 2, 2, 2, 0, 0, 0, 0,
-8, 5, 3, 3, 3, 3, 3, 2, 2, 2, 2, 2, 0, 0, 0, 0,
-8, 5, 3, 5, 5, 1, 3, 2, 2, 2, 2, 0, 0, 0, 0, 0,
-8, 5, 3, 3, 5, 3, 1, 2, 2, 2, 2, 2, 0, 0, 0, 0,
-9, 3, 1, 3, 3, 1, 5, 2, 2, 2, 0, 0, 0, 0, 0, 0,
-8, 5, 5, 5, 3, 1, 3, 2, 4, 2, 2, 0, 0, 0, 0, 0,
-8, 5, 3, 3, 3, 5, 5, 2, 2, 4, 4, 2, 0, 0, 0, 0,
-9, 7, 5, 7, 3, 5, 5, 4, 4, 4, 4, 4, 0, 0, 0, 0,
-9, 7, 5, 1, 5, 5, 1, 4, 4, 4, 2, 0, 0, 0, 0, 0,
-8, 5, 5, 3, 7, 3, 3, 4, 4, 2, 4, 2, 0, 0, 0, 0,
-9, 5, 5, 5, 5, 5, 5, 4, 4, 2, 6, 2, 2, 0, 0, 0,
-9, 7, 5, 5, 5, 5, 5, 4, 4, 4, 4, 2, 0, 0, 0, 0,
-9, 3, 3, 3, 3, 1, 1, 2, 4, 2, 2, 2, 0, 0, 0, 0,
-9, 3, 3, 3, 3, 3, 1, 2, 4, 2, 2, 2, 0, 0, 0, 0,
-9, 3, 5, 3, 3, 3, 1, 4, 4, 2, 2, 2, 2, 0, 0, 0,
-9, 3, 5, 5, 5, 3, 3, 4, 6, 2, 2, 2, 0, 0, 0, 0,
-8, 5, 3, 3, 3, 5, 1, 4, 2, 6, 2, 2, 0, 0, 0, 0,
-9, 7, 5, 5, 5, 3, 3, 4, 4, 4, 2, 2, 2, 0, 0, 0,
-8, 5, 5, 5, 5, 5, 5, 4, 4, 4, 4, 2, 0, 0, 0, 0,
-8, 5, 5, 5, 5, 3, 5, 4, 6, 4, 4, 2, 2, 0, 0, 0,
-9, 3, 3, 3, 3, 3, 3, 6, 2, 2, 2, 2, 0, 0, 0, 0,
-8, 3, 5, 3, 5, 3, 1, 2, 4, 2, 2, 2, 2, 0, 0, 0,
-9, 5, 5, 5, 5, 5, 3, 4, 4, 4, 2, 2, 2, 0, 0, 0,
-9, 5, 5, 3, 7, 5, 5, 6, 4, 4, 4, 2, 0, 0, 0, 0,
-9, 5, 5, 5, 5, 5, 5, 6, 6, 4, 4, 2, 0, 0, 0, 0,
-9, 7, 5, 3, 3, 3, 5, 2, 2, 2, 2, 2, 0, 0, 0, 0,
-9, 5, 5, 5, 5, 3, 1, 4, 2, 2, 2, 2, 0, 0, 0, 0,
-9, 7, 5, 3, 3, 5, 3, 4, 2, 2, 2, 2, 2, 0, 0, 0,
-9, 7, 3, 3, 5, 5, 3, 4, 6, 4, 2, 2, 2, 0, 0, 0,
-8, 7, 3, 3, 5, 3, 3, 6, 2, 4, 2, 0, 0, 0, 0, 0,
-9, 5, 5, 5, 5, 7, 3, 4, 4, 2, 4, 4, 2, 0, 0, 0,
-9, 5, 5, 5, 3, 5, 5, 4, 6, 6, 4, 2, 2, 0, 0, 0,
-8, 7, 5, 5, 3, 3, 3, 2, 2, 2, 2, 2, 2, 0, 0, 0,
-8, 3, 5, 3, 3, 3, 5, 4, 2, 4, 2, 2, 0, 0, 0, 0,
-8, 5, 3, 3, 5, 3, 3, 4, 2, 2, 2, 2, 2, 0, 0, 0,
-8, 5, 3, 5, 3, 3, 3, 4, 2, 4, 2, 2, 2, 0, 0, 0,
-9, 5, 5, 5, 3, 3, 3, 2, 2, 2, 2, 2, 0, 0, 0, 0,
-8, 7, 3, 3, 1, 3, 3, 4, 2, 2, 2, 2, 0, 0, 0, 0,
-9, 5, 3, 5, 5, 5, 3, 4, 6, 4, 4, 2, 0, 0, 0, 0,
-9, 5, 7, 5, 5, 5, 3, 6, 4, 4, 4, 4, 0, 0, 0, 0,
-9, 5, 5, 5, 5, 5, 5, 6, 4, 4, 2, 2, 2, 0, 0, 0,
-8, 5, 5, 5, 3, 5, 3, 6, 4, 2, 4, 2, 2, 0, 0, 0,
-9, 3, 3, 3, 5, 3, 3, 6, 2, 2, 2, 2, 0, 0, 0, 0,
-9, 5, 5, 3, 5, 5, 1, 4, 4, 2, 2, 2, 2, 0, 0, 0,
-8, 5, 3, 5, 5, 5, 3, 4, 4, 2, 2, 2, 2, 0, 0, 0,
-9, 3, 3, 3, 3, 3, 3, 4, 4, 2, 2, 2, 2, 0, 0, 0,
-8, 3, 5, 5, 3, 3, 3, 4, 4, 2, 4, 2, 0, 0, 0, 0,
-9, 5, 5, 5, 5, 5, 3, 2, 4, 4, 2, 2, 2, 0, 0, 0,
-9, 5, 5, 5, 7, 5, 5, 4, 4, 4, 2, 2, 0, 0, 0, 0,
-9, 5, 5, 3, 5, 5, 7, 2, 4, 6, 2, 2, 0, 0, 0, 0,
-9, 7, 5, 5, 5, 5, 3, 6, 4, 4, 2, 2, 0, 0, 0, 0,
-9, 5, 5, 5, 5, 5, 5, 6, 6, 4, 4, 2, 0, 0, 0, 0,
-9, 5, 5, 3, 5, 5, 3, 7, 2, 2, 4, 2, 0, 0, 0, 0,
-9, 3, 3, 3, 5, 5, 3, 4, 4, 4, 2, 2, 2, 0, 0, 0,
-9, 3, 5, 3, 5, 3, 3, 4, 6, 2, 2, 2, 0, 0, 0, 0,
-9, 5, 5, 3, 3, 7, 1, 4, 4, 2, 2, 2, 0, 0, 0, 0,
-9, 3, 3, 5, 3, 3, 1, 4, 4, 2, 2, 2, 2, 0, 0, 0,
-8, 5, 3, 5, 3, 5, 5, 4, 2, 2, 2, 2, 0, 0, 0, 0,
-9, 5, 5, 5, 5, 3, 5, 4, 2, 4, 2, 2, 2, 0, 0, 0,
-9, 3, 5, 5, 3, 5, 3, 4, 4, 2, 4, 2, 2, 0, 0, 0,
-9, 7, 5, 5, 5, 5, 3, 6, 2, 6, 4, 2, 2, 0, 0, 0,
-9, 7, 5, 5, 5, 5, 5, 4, 4, 6, 4, 2, 2, 0, 0, 0,
-8, 5, 5, 3, 3, 3, 1, 6, 4, 4, 2, 2, 2, 0, 0, 0,
-8, 5, 3, 3, 3, 1, 3, 2, 4, 4, 4, 4, 0, 0, 0, 0,
-8, 5, 3, 3, 3, 3, 3, 4, 2, 2, 2, 4, 2, 0, 0, 0,
-9, 5, 5, 3, 3, 3, 3, 2, 2, 2, 2, 2, 2, 0, 0, 0,
-8, 5, 5, 3, 1, 3, 1, 4, 2, 4, 2, 2, 0, 0, 0, 0,
-8, 5, 3, 7, 1, 3, 1, 4, 2, 2, 4, 2, 0, 0, 0, 0,
-9, 7, 3, 5, 1, 5, 3, 2, 4, 2, 2, 2, 0, 0, 0, 0,
-9, 7, 7, 5, 7, 5, 3, 4, 4, 6, 4, 4, 0, 0, 0, 0,
-8, 7, 7, 5, 5, 5, 5, 4, 4, 4, 4, 2, 2, 0, 0, 0,
-9, 5, 5, 5, 7, 5, 5, 6, 6, 6, 4, 2, 0, 0, 0, 0,
-9, 7, 5, 5, 5, 3, 3, 6, 4, 2, 4, 2, 2, 0, 0, 0,
-8, 5, 5, 3, 3, 3, 5, 4, 2, 2, 2, 2, 0, 0, 0, 0,
-9, 7, 5, 5, 5, 3, 5, 4, 4, 4, 2, 2, 0, 0, 0, 0,
-9, 5, 5, 7, 5, 5, 5, 4, 4, 6, 4, 2, 2, 0, 0, 0,
-9, 5, 5, 5, 5, 3, 3, 6, 4, 4, 4, 2, 0, 0, 0, 0,
-9, 5, 3, 3, 5, 5, 3, 2, 6, 4, 2, 2, 0, 0, 0, 0,
-8, 3, 3, 7, 3, 3, 3, 4, 6, 2, 2, 2, 0, 0, 0, 0,
-8, 5, 5, 5, 5, 3, 3, 4, 4, 2, 2, 2, 2, 0, 0, 0,
-9, 7, 5, 5, 5, 5, 3, 4, 6, 4, 2, 2, 2, 0, 0, 0,
-9, 5, 5, 5, 5, 5, 5, 2, 4, 4, 4, 2, 2, 0, 0, 0,
-9, 5, 7, 5, 5, 5, 3, 6, 6, 2, 4, 0, 0, 0, 0, 0,
-9, 3, 3, 5, 5, 5, 3, 2, 4, 6, 2, 0, 0, 0, 0, 0,
-8, 5, 3, 5, 3, 5, 3, 2, 4, 2, 2, 2, 0, 0, 0, 0,
-9, 3, 5, 5, 5, 5, 3, 4, 4, 4, 2, 2, 0, 0, 0, 0,
-8, 7, 7, 7, 5, 5, 5, 4, 6, 4, 2, 2, 0, 0, 0, 0,
-9, 5, 5, 5, 5, 5, 3, 4, 6, 6, 4, 2, 0, 0, 0, 0,
-9, 5, 5, 5, 5, 5, 3, 4, 4, 4, 6, 2, 0, 0, 0, 0,
-9, 3, 3, 3, 3, 5, 5, 4, 2, 2, 4, 2, 0, 0, 0, 0,
-9, 3, 5, 3, 3, 3, 3, 2, 4, 6, 2, 4, 0, 0, 0, 0,
-9, 3, 5, 5, 3, 3, 3, 2, 6, 4, 2, 2, 0, 0, 0, 0,
-8, 5, 5, 7, 5, 5, 3, 4, 2, 4, 6, 2, 2, 0, 0, 0,
-9, 5, 5, 5, 5, 5, 5, 4, 6, 4, 4, 2, 2, 0, 0, 0,
-9, 3, 3, 3, 5, 5, 3, 4, 6, 4, 2, 2, 0, 0, 0, 0,
-8, 5, 5, 3, 5, 5, 5, 4, 4, 2, 4, 2, 0, 0, 0, 0,
-8, 5, 7, 7, 7, 3, 1, 6, 2, 4, 4, 2, 0, 0, 0, 0,
-9, 5, 5, 5, 5, 5, 5, 6, 4, 4, 2, 2, 0, 0, 0, 0,
-8, 3, 5, 5, 3, 1, 1, 4, 4, 2, 4, 2, 2, 0, 0, 0,
-9, 5, 5, 3, 5, 5, 3, 4, 4, 2, 2, 2, 0, 0, 0, 0,
-8, 5, 3, 3, 5, 5, 1, 6, 2, 4, 2, 2, 0, 0, 0, 0,
-9, 3, 3, 3, 3, 5, 1, 4, 2, 2, 2, 2, 0, 0, 0, 0,
-9, 5, 5, 5, 5, 3, 5, 4, 2, 2, 2, 2, 0, 0, 0, 0,
-9, 3, 5, 5, 5, 5, 5, 6, 4, 4, 4, 2, 2, 0, 0, 0,
-8, 7, 5, 3, 5, 3, 3, 6, 4, 4, 4, 2, 0, 0, 0, 0,
-8, 5, 5, 3, 5, 3, 5, 6, 4, 4, 4, 0, 0, 0, 0, 0,
-8, 5, 3, 3, 3, 1, 3, 2, 4, 2, 2, 2, 0, 2, 0, 0,
-9, 5, 3, 3, 3, 3, 3, 4, 2, 2, 2, 4, 2, 0, 0, 0,
-8, 5, 3, 3, 3, 3, 3, 2, 2, 2, 2, 2, 0, 0, 0, 0,
-8, 7, 3, 3, 1, 3, 3, 4, 2, 2, 2, 2, 0, 0, 0, 0,
-9, 7, 5, 5, 5, 5, 3, 4, 2, 2, 4, 2, 0, 0, 0, 0,
-9, 5, 5, 5, 5, 5, 3, 6, 6, 6, 4, 2, 0, 0, 0, 0,
-8, 5, 5, 5, 3, 3, 5, 4, 4, 4, 6, 2, 0, 0, 0, 0,
-8, 5, 3, 3, 3, 1, 1, 4, 6, 2, 4, 2, 2, 0, 0, 0,
-9, 5, 5, 3, 1, 3, 3, 4, 2, 2, 2, 2, 2, 0, 0, 0,
-9, 5, 5, 3, 5, 7, 5, 4, 4, 4, 2, 2, 2, 0, 0, 0,
-9, 5, 5, 5, 5, 3, 3, 4, 6, 4, 6, 2, 0, 0, 0, 0,
-8, 5, 5, 7, 7, 7, 3, 4, 4, 6, 4, 2, 0, 0, 0, 0,
-9, 5, 5, 7, 5, 7, 5, 4, 6, 4, 4, 0, 0, 0, 0, 0,
-9, 5, 5, 5, 3, 3, 3, 4, 4, 2, 2, 2, 2, 0, 0, 0,
-9, 3, 5, 1, 3, 1, 3, 4, 2, 4, 2, 0, 0, 0, 0, 0,
-9, 5, 5, 5, 7, 5, 5, 4, 2, 4, 4, 2, 0, 0, 0, 0,
-9, 5, 5, 5, 5, 5, 3, 6, 4, 4, 2, 0, 0, 0, 0, 0,
-9, 5, 5, 7, 5, 7, 5, 4, 4, 4, 4, 2, 2, 0, 0, 0,
-9, 5, 5, 5, 5, 3, 3, 4, 6, 2, 4, 2, 2, 0, 0, 0,
-9, 5, 7, 5, 5, 3, 7, 4, 6, 4, 4, 2, 0, 0, 0, 0,
-8, 5, 5, 3, 3, 1, 3, 4, 6, 4, 2, 4, 0, 0, 0, 0,
-9, 7, 3, 3, 3, 1, 7, 4, 4, 4, 2, 2, 2, 0, 0, 0,
-9, 5, 5, 5, 5, 5, 5, 6, 4, 6, 4, 2, 0, 0, 0, 0,
-9, 5, 5, 5, 3, 5, 5, 2, 4, 4, 4, 2, 0, 0, 0, 0,
-9, 5, 3, 5, 5, 7, 3, 6, 4, 2, 4, 0, 0, 0, 0, 0,
-8, 7, 3, 5, 1, 3, 3, 2, 4, 2, 4, 2, 0, 0, 0, 0,
-8, 3, 3, 3, 1, 3, 3, 2, 4, 2, 2, 2, 0, 0, 0, 0,
-8, 5, 5, 3, 3, 3, 1, 4, 4, 4, 2, 2, 0, 0, 0, 0,
-9, 5, 5, 3, 5, 3, 3, 4, 2, 2, 4, 2, 2, 0, 0, 0,
-8, 5, 5, 5, 5, 5, 3, 4, 6, 4, 2, 4, 0, 0, 0, 0,
-8, 5, 5, 3, 5, 1, 3, 4, 2, 4, 2, 4, 0, 0, 0, 0,
-8, 5, 5, 3, 3, 3, 3, 2, 2, 2, 2, 4, 2, 0, 0, 0,
-9, 3, 5, 3, 3, 3, 3, 2, 4, 4, 2, 4, 0, 0, 0, 0,
-8, 7, 5, 7, 5, 5, 3, 4, 4, 4, 2, 6, 0, 0, 0, 0,
-8, 5, 5, 5, 3, 5, 3, 4, 6, 4, 2, 0, 0, 0, 0, 0,
-8, 7, 5, 7, 5, 5, 5, 4, 6, 2, 2, 0, 0, 0, 0, 0,
-8, 5, 7, 3, 3, 3, 3, 6, 4, 2, 2, 0, 0, 0, 0, 0,
-8, 3, 5, 3, 3, 5, 3, 4, 4, 2, 2, 2, 2, 0, 0, 0,
-8, 5, 5, 5, 3, 5, 3, 4, 2, 2, 2, 2, 2, 0, 0, 0,
-8, 5, 5, 5, 3, 5, 5, 2, 4, 4, 4, 2, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 5, 3, 4, 4, 4, 4, 2, 2, 0, 0, 0,
-9, 5, 5, 5, 5, 5, 7, 4, 4, 2, 4, 2, 0, 0, 0, 0,
-9, 5, 7, 5, 5, 5, 5, 6, 6, 4, 4, 2, 0, 0, 0, 0,
-8, 5, 3, 5, 3, 3, 3, 4, 4, 2, 4, 2, 2, 0, 0, 0,
-9, 7, 5, 5, 5, 5, 3, 4, 6, 4, 2, 2, 2, 0, 0, 0,
-9, 5, 5, 7, 5, 5, 5, 6, 2, 4, 4, 2, 0, 0, 0, 0,
-9, 5, 5, 7, 5, 5, 3, 4, 6, 6, 2, 2, 2, 0, 0, 0,
-9, 5, 3, 5, 5, 5, 3, 2, 4, 2, 4, 4, 2, 0, 0, 0,
-8, 3, 5, 3, 3, 3, 3, 4, 6, 6, 2, 2, 0, 0, 0, 0,
-9, 5, 5, 5, 5, 5, 3, 6, 4, 4, 4, 4, 0, 0, 0, 0,
-9, 5, 5, 5, 7, 3, 5, 6, 4, 4, 2, 2, 0, 0, 0, 0,
-9, 3, 5, 5, 5, 5, 3, 4, 4, 2, 2, 0, 0, 0, 0, 0,
-9, 5, 5, 3, 5, 3, 3, 7, 2, 4, 2, 0, 0, 0, 0, 0,
-8, 3, 3, 3, 3, 5, 3, 4, 4, 2, 2, 2, 2, 0, 0, 0,
-9, 3, 5, 3, 5, 3, 1, 4, 2, 4, 2, 2, 2, 0, 0, 0,
-9, 3, 5, 3, 7, 5, 3, 4, 4, 4, 2, 2, 0, 0, 0, 0,
-8, 5, 5, 5, 5, 3, 5, 6, 4, 2, 2, 2, 0, 0, 0, 0,
-9, 5, 3, 5, 5, 3, 3, 4, 2, 2, 2, 0, 0, 0, 0, 0,
-8, 5, 5, 5, 7, 5, 5, 4, 4, 4, 4, 2, 0, 0, 0, 0,
-8, 5, 5, 5, 5, 3, 3, 4, 4, 6, 4, 2, 2, 0, 0, 0,
-9, 5, 7, 7, 5, 7, 3, 4, 4, 4, 4, 2, 2, 0, 0, 0,
-9, 3, 5, 3, 3, 3, 1, 4, 6, 4, 4, 2, 0, 0, 0, 0,
-8, 5, 3, 5, 3, 3, 3, 4, 4, 2, 4, 2, 2, 0, 0, 0,
-9, 3, 5, 3, 3, 3, 3, 4, 2, 2, 2, 2, 2, 0, 0, 0,
-8, 3, 3, 3, 3, 3, 3, 4, 4, 4, 2, 2, 2, 0, 0, 0,
-9, 3, 5, 3, 5, 3, 1, 4, 4, 2, 2, 2, 0, 0, 0, 0,
-8, 5, 5, 3, 5, 5, 3, 4, 4, 2, 4, 2, 2, 0, 0, 0,
-8, 5, 5, 5, 5, 5, 5, 6, 4, 6, 4, 2, 0, 0, 0, 0,
-8, 7, 5, 7, 7, 5, 5, 6, 4, 4, 4, 2, 2, 0, 0, 0,
-8, 5, 3, 3, 3, 3, 3, 4, 4, 4, 2, 2, 0, 0, 0, 0,
-8, 3, 3, 3, 3, 3, 3, 4, 2, 2, 2, 2, 0, 0, 0, 0,
-8, 5, 5, 3, 5, 3, 3, 4, 4, 6, 6, 4, 2, 0, 0, 0,
-9, 5, 3, 7, 5, 3, 1, 2, 4, 4, 4, 2, 0, 0, 0, 0,
-8, 3, 5, 3, 3, 5, 1, 4, 4, 4, 4, 2, 0, 0, 0, 0,
-8, 5, 5, 3, 5, 5, 3, 6, 4, 4, 4, 2, 0, 0, 0, 0,
-9, 7, 5, 5, 5, 5, 3, 6, 4, 2, 2, 2, 0, 0, 0, 0,
-9, 7, 5, 5, 5, 5, 3, 6, 4, 4, 4, 2, 2, 0, 0, 0,
-9, 5, 3, 3, 3, 5, 3, 6, 2, 4, 4, 2, 0, 0, 0, 0,
-8, 5, 3, 3, 5, 5, 3, 4, 6, 2, 2, 2, 0, 0, 0, 0,
-9, 5, 5, 7, 7, 7, 5, 6, 4, 4, 2, 2, 0, 0, 0, 0,
-9, 7, 5, 5, 5, 7, 3, 4, 6, 4, 6, 0, 0, 0, 0, 0,
-9, 7, 5, 5, 5, 5, 5, 6, 4, 4, 4, 2, 2, 0, 0, 0,
-9, 5, 5, 5, 5, 3, 3, 4, 4, 4, 2, 2, 0, 0, 0, 0,
-8, 3, 5, 3, 3, 3, 3, 4, 4, 4, 2, 2, 0, 0, 0, 0,
-8, 5, 5, 7, 5, 7, 5, 6, 4, 4, 2, 2, 0, 0, 0, 0,
-9, 5, 5, 3, 5, 5, 3, 4, 6, 4, 4, 2, 0, 0, 0, 0,
-8, 5, 5, 5, 5, 3, 5, 4, 4, 6, 2, 2, 0, 0, 0, 0,
-8, 5, 3, 5, 5, 5, 3, 4, 2, 4, 2, 2, 0, 0, 0, 0,
-9, 5, 5, 3, 5, 5, 3, 4, 4, 2, 2, 2, 0, 0, 0, 0,
-8, 5, 5, 5, 7, 3, 5, 4, 2, 2, 2, 2, 0, 0, 0, 0,
-9, 5, 3, 5, 3, 5, 3, 4, 4, 2, 2, 2, 0, 0, 0, 0,
-9, 5, 5, 5, 1, 3, 3, 4, 2, 2, 2, 2, 0, 0, 0, 0,
-8, 3, 5, 5, 3, 5, 3, 4, 4, 2, 4, 2, 0, 0, 0, 0,
-9, 5, 5, 3, 5, 3, 3, 4, 2, 2, 2, 2, 0, 0, 0, 0,
-9, 5, 5, 3, 5, 3, 5, 6, 4, 2, 4, 2, 0, 0, 0, 0,
-9, 5, 3, 5, 7, 5, 5, 6, 4, 4, 4, 0, 0, 0, 0, 0,
-9, 5, 5, 7, 7, 5, 3, 6, 6, 4, 4, 2, 0, 0, 0, 0,
-9, 5, 3, 3, 3, 3, 1, 4, 4, 4, 2, 2, 2, 0, 0, 0,
-8, 5, 3, 3, 3, 3, 1, 4, 2, 4, 2, 4, 2, 0, 0, 0,
-9, 7, 3, 3, 3, 3, 3, 4, 4, 4, 2, 4, 2, 0, 0, 0,
-8, 5, 3, 3, 3, 1, 3, 2, 2, 4, 2, 2, 0, 0, 0, 0,
-8, 5, 3, 3, 3, 3, 1, 4, 4, 2, 2, 2, 0, 0, 0, 0,
-8, 5, 5, 3, 5, 5, 7, 4, 4, 2, 4, 2, 2, 0, 0, 0,
-9, 5, 5, 5, 5, 3, 3, 4, 4, 2, 2, 4, 0, 0, 0, 0,
-8, 5, 3, 3, 3, 3, 1, 4, 4, 2, 4, 4, 0, 0, 0, 0,
-8, 3, 5, 3, 3, 3, 1, 4, 2, 4, 2, 2, 2, 0, 0, 0,
-8, 5, 3, 3, 3, 3, 3, 4, 2, 2, 4, 2, 0, 0, 0, 0,
-8, 3, 3, 3, 5, 3, 3, 4, 2, 2, 2, 2, 2, 0, 0, 0,
-8, 7, 3, 3, 3, 1, 1, 4, 2, 2, 2, 4, 0, 0, 0, 0,
-8, 7, 5, 5, 5, 5, 3, 4, 4, 4, 4, 2, 0, 0, 0, 0,
-8, 7, 5, 5, 3, 5, 3, 4, 6, 4, 4, 4, 0, 0, 0, 0,
-8, 5, 5, 3, 3, 3, 1, 4, 4, 6, 2, 2, 2, 0, 0, 0,
-8, 5, 3, 5, 3, 1, 3, 4, 2, 4, 4, 2, 2, 0, 0, 0,
-8, 5, 3, 5, 3, 3, 1, 4, 4, 2, 2, 4, 2, 0, 0, 0,
-9, 5, 3, 3, 3, 3, 3, 4, 4, 4, 2, 4, 2, 0, 0, 0,
-8, 7, 5, 5, 5, 5, 3, 4, 4, 2, 4, 4, 0, 0, 0, 0,
-9, 7, 5, 5, 5, 5, 3, 4, 4, 4, 4, 4, 2, 0, 0, 0,
-8, 7, 3, 3, 3, 5, 1, 4, 2, 2, 2, 2, 0, 0, 0, 0,
-8, 5, 5, 5, 5, 3, 5, 4, 4, 2, 2, 4, 0, 0, 0, 0,
-8, 7, 7, 5, 5, 5, 3, 4, 4, 4, 4, 2, 0, 0, 0, 0,
-8, 7, 3, 5, 5, 5, 3, 4, 4, 4, 4, 4, 0, 0, 0, 0,
-9, 7, 5, 5, 5, 3, 3, 4, 4, 4, 2, 2, 2, 0, 0, 0,
-8, 7, 3, 3, 5, 3, 3, 4, 2, 2, 4, 2, 0, 0, 0, 0,
-8, 5, 3, 3, 3, 3, 3, 2, 4, 2, 2, 2, 2, 0, 0, 0,
-8, 5, 3, 3, 1, 3, 3, 4, 4, 2, 2, 2, 2, 0, 0, 0,
-9, 7, 5, 5, 5, 3, 3, 4, 4, 4, 4, 2, 2, 0, 0, 0,
-8, 5, 5, 3, 5, 3, 3, 6, 4, 4, 2, 2, 2, 0, 0, 0,
-9, 5, 3, 3, 3, 3, 3, 2, 2, 4, 4, 2, 0, 0, 0, 0,
-9, 7, 5, 5, 5, 3, 3, 4, 6, 4, 2, 2, 2, 0, 0, 0,
-8, 7, 5, 5, 3, 5, 1, 4, 4, 4, 4, 4, 0, 0, 0, 0,
-8, 5, 3, 3, 3, 3, 1, 4, 2, 4, 4, 2, 2, 0, 0, 0,
-8, 5, 3, 5, 3, 3, 1, 4, 4, 4, 2, 2, 2, 0, 0, 0,
-8, 7, 5, 5, 5, 5, 3, 4, 4, 2, 2, 2, 0, 0, 0, 0,
-8, 5, 5, 5, 5, 3, 1, 6, 4, 4, 4, 2, 0, 0, 0, 0,
-8, 5, 3, 3, 3, 3, 3, 4, 4, 4, 2, 2, 2, 0, 0, 0,
-8, 5, 3, 3, 3, 1, 1, 4, 4, 2, 2, 2, 0, 0, 0, 0,
-9, 5, 3, 3, 3, 1, 3, 4, 4, 4, 2, 2, 0, 0, 0, 0,
-8, 5, 3, 3, 3, 3, 1, 2, 2, 4, 2, 2, 0, 0, 0, 0,
-8, 7, 5, 5, 5, 3, 3, 4, 4, 4, 4, 2, 0, 0, 0, 0,
-8, 5, 5, 5, 5, 5, 5, 4, 4, 2, 2, 2, 2, 0, 0, 0,
-8, 5, 5, 5, 5, 5, 3, 4, 4, 6, 2, 4, 0, 0, 0, 0,
-8, 5, 3, 3, 1, 3, 1, 2, 2, 6, 4, 2, 0, 0, 0, 0,
-8, 3, 5, 3, 3, 3, 3, 4, 2, 2, 2, 4, 2, 0, 0, 0,
-8, 7, 5, 5, 5, 5, 3, 4, 4, 4, 4, 4, 0, 0, 0, 0,
-9, 5, 5, 5, 5, 5, 3, 6, 4, 4, 4, 2, 2, 0, 0, 0,
-8, 7, 3, 3, 3, 5, 3, 2, 4, 4, 2, 2, 0, 0, 0, 0,
-8, 7, 5, 5, 3, 3, 3, 4, 2, 4, 4, 2, 0, 0, 0, 0,
-8, 7, 5, 5, 5, 3, 1, 4, 4, 4, 2, 2, 2, 0, 0, 0,
-8, 5, 5, 5, 5, 5, 3, 4, 4, 4, 2, 2, 2, 0, 0, 0,
-8, 5, 3, 3, 3, 3, 3, 4, 4, 2, 4, 4, 2, 0, 0, 0,
-9, 7, 5, 5, 3, 3, 5, 4, 6, 4, 4, 2, 0, 0, 0, 0,
-9, 7, 5, 5, 3, 5, 3, 6, 2, 2, 4, 4, 2, 0, 0, 0,
-9, 7, 5, 5, 5, 5, 3, 4, 4, 2, 4, 4, 0, 0, 0, 0,
-8, 7, 3, 3, 3, 5, 1, 4, 4, 4, 2, 2, 0, 0, 0, 0,
-8, 5, 3, 1, 1, 3, 3, 4, 6, 2, 2, 2, 2, 0, 0, 0,
-8, 7, 5, 3, 3, 5, 3, 4, 2, 4, 4, 2, 2, 0, 0, 0,
-9, 5, 5, 5, 5, 5, 5, 6, 4, 2, 4, 4, 2, 0, 0, 0,
-9, 5, 3, 3, 3, 3, 3, 4, 2, 2, 2, 2, 2, 0, 0, 0,
-8, 5, 3, 5, 3, 3, 1, 4, 4, 2, 2, 4, 0, 0, 0, 0,
-8, 5, 5, 5, 1, 3, 3, 4, 2, 2, 2, 2, 2, 0, 0, 0,
-9, 7, 3, 3, 5, 3, 3, 4, 2, 4, 2, 4, 0, 0, 0, 0,
-8, 7, 5, 5, 5, 5, 5, 4, 2, 4, 4, 4, 0, 0, 0, 0,
-9, 7, 5, 5, 3, 5, 3, 4, 4, 6, 4, 2, 0, 0, 0, 0,
-9, 5, 5, 5, 5, 5, 5, 4, 6, 4, 4, 2, 0, 0, 0, 0,
-9, 7, 7, 3, 5, 5, 3, 4, 4, 2, 4, 2, 2, 0, 0, 0,
-9, 7, 5, 5, 5, 5, 3, 4, 4, 2, 4, 2, 0, 0, 0, 0,
-8, 5, 5, 5, 5, 5, 5, 4, 6, 4, 4, 4, 0, 0, 0, 0,
-9, 7, 5, 5, 5, 1, 1, 6, 4, 4, 2, 2, 0, 0, 0, 0,
-8, 5, 3, 5, 5, 5, 3, 2, 4, 4, 2, 2, 0, 0, 0, 0,
-9, 5, 3, 5, 3, 3, 3, 6, 4, 4, 4, 2, 2, 0, 0, 0,
-8, 7, 7, 5, 5, 5, 5, 6, 4, 4, 2, 2, 0, 0, 0, 0,
-9, 5, 7, 5, 7, 3, 5, 6, 4, 6, 4, 2, 2, 0, 0, 0,
-9, 5, 3, 3, 3, 3, 1, 4, 4, 4, 2, 2, 2, 0, 0, 0,
-9, 5, 7, 3, 3, 3, 1, 4, 4, 2, 2, 2, 2, 0, 0, 0,
-9, 5, 5, 5, 5, 5, 3, 4, 4, 4, 4, 2, 2, 0, 0, 0,
-9, 5, 5, 5, 3, 5, 5, 6, 4, 4, 6, 2, 2, 0, 0, 0,
-9, 5, 7, 3, 3, 3, 5, 7, 4, 6, 2, 2, 0, 0, 0, 0,
-8, 5, 5, 5, 3, 3, 5, 2, 4, 4, 2, 2, 2, 0, 0, 0,
-9, 5, 5, 5, 5, 5, 3, 6, 4, 4, 2, 0, 2, 0, 0, 0,
-9, 5, 7, 5, 5, 5, 3, 4, 4, 4, 4, 2, 0, 0, 0, 0,
-9, 5, 5, 5, 5, 5, 3, 6, 4, 4, 2, 2, 0, 0, 0, 0,
-8, 5, 5, 5, 5, 5, 5, 4, 4, 4, 2, 0, 0, 0, 0, 0,
-9, 5, 5, 3, 3, 5, 1, 4, 6, 2, 2, 2, 0, 0, 0, 0,
-9, 3, 3, 5, 5, 7, 3, 4, 4, 4, 2, 2, 0, 0, 0, 0,
-9, 5, 5, 3, 5, 3, 3, 4, 4, 2, 2, 2, 0, 0, 0, 0,
-9, 3, 5, 3, 3, 3, 1, 4, 4, 4, 2, 2, 2, 0, 0, 0,
-9, 5, 3, 3, 5, 3, 5, 2, 4, 4, 2, 2, 2, 0, 0, 0,
-8, 7, 5, 5, 5, 7, 3, 6, 4, 4, 2, 2, 0, 0, 0, 0,
-9, 5, 5, 5, 7, 5, 5, 6, 4, 4, 4, 2, 2, 0, 0, 0,
-8, 5, 3, 3, 3, 5, 3, 4, 4, 2, 2, 2, 0, 0, 0, 0,
-9, 5, 3, 3, 5, 5, 3, 4, 4, 2, 4, 2, 2, 0, 0, 0,
-8, 5, 3, 3, 3, 3, 3, 2, 4, 4, 2, 0, 0, 0, 0, 0,
-9, 7, 5, 3, 5, 3, 3, 6, 2, 4, 2, 0, 0, 0, 0, 0,
-9, 5, 3, 3, 5, 5, 3, 4, 4, 2, 2, 2, 2, 0, 0, 0,
-9, 5, 7, 7, 5, 7, 5, 4, 4, 4, 4, 4, 2, 0, 0, 0,
-9, 5, 5, 5, 3, 5, 5, 4, 4, 4, 4, 2, 2, 0, 0, 0,
-9, 5, 7, 5, 7, 5, 3, 4, 4, 4, 2, 0, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 5, 5, 4, 4, 4, 2, 0, 0, 0, 0, 0,
-8, 5, 5, 7, 5, 5, 3, 4, 6, 6, 4, 2, 2, 0, 0, 0,
-8, 7, 5, 5, 5, 5, 5, 6, 6, 6, 4, 2, 0, 0, 0, 0,
-9, 5, 7, 3, 3, 3, 3, 4, 4, 4, 2, 0, 2, 0, 0, 0,
-8, 5, 5, 5, 5, 3, 3, 4, 2, 6, 4, 2, 0, 0, 0, 0,
-9, 5, 3, 3, 5, 5, 1, 4, 4, 6, 2, 2, 0, 0, 0, 0,
-9, 5, 5, 5, 5, 3, 5, 4, 4, 6, 4, 2, 0, 0, 0, 0,
-9, 5, 5, 5, 5, 3, 5, 4, 4, 2, 4, 2, 2, 0, 0, 0,
-9, 5, 5, 5, 5, 7, 5, 6, 6, 4, 4, 2, 2, 0, 0, 0,
-8, 5, 5, 3, 3, 5, 3, 4, 4, 4, 2, 2, 0, 0, 0, 0,
-9, 5, 5, 5, 5, 5, 3, 4, 4, 4, 2, 2, 0, 0, 0, 0,
-9, 5, 5, 5, 3, 5, 5, 4, 4, 4, 4, 0, 0, 0, 0, 0,
-9, 5, 5, 5, 5, 5, 5, 4, 4, 6, 4, 2, 0, 0, 0, 0,
-9, 7, 7, 5, 3, 5, 5, 4, 4, 6, 4, 2, 2, 0, 0, 0,
-9, 5, 5, 3, 5, 3, 3, 4, 4, 4, 4, 4, 2, 0, 0, 0,
-9, 3, 3, 3, 5, 5, 3, 4, 4, 2, 2, 4, 2, 0, 0, 0,
-9, 5, 5, 3, 1, 3, 3, 2, 4, 4, 2, 2, 2, 0, 0, 0,
-8, 3, 5, 3, 3, 3, 3, 4, 4, 6, 4, 2, 2, 0, 0, 0,
-9, 5, 5, 5, 5, 5, 3, 7, 6, 6, 2, 2, 0, 0, 0, 0,
-9, 5, 5, 3, 7, 5, 5, 4, 2, 4, 2, 2, 2, 0, 0, 0,
-8, 3, 3, 5, 5, 3, 3, 4, 2, 4, 4, 4, 0, 0, 0, 0,
-9, 5, 5, 7, 5, 3, 3, 6, 4, 4, 2, 2, 2, 0, 0, 0,
-9, 7, 5, 5, 5, 5, 3, 4, 6, 6, 2, 4, 2, 0, 0, 0,
-9, 5, 5, 7, 7, 5, 5, 6, 6, 6, 4, 2, 2, 0, 0, 0,
-9, 3, 7, 7, 7, 7, 5, 6, 4, 4, 4, 2, 2, 0, 0, 0,
-9, 7, 5, 7, 3, 5, 5, 4, 6, 4, 4, 2, 0, 0, 0, 0,
-9, 5, 5, 5, 5, 5, 7, 4, 4, 6, 2, 4, 2, 0, 0, 0,
-8, 7, 5, 7, 5, 3, 5, 4, 4, 4, 4, 2, 0, 0, 0, 0,
-8, 5, 5, 7, 3, 3, 5, 4, 6, 2, 2, 2, 0, 0, 0, 0,
-9, 7, 5, 5, 5, 5, 5, 4, 4, 6, 2, 2, 2, 0, 0, 0,
-8, 3, 3, 5, 5, 5, 3, 4, 2, 2, 2, 2, 2, 0, 0, 0,
-8, 3, 3, 3, 3, 5, 3, 4, 2, 2, 2, 2, 0, 0, 0, 0,
-9, 7, 5, 7, 5, 5, 3, 4, 4, 2, 2, 2, 0, 0, 0, 0,
-8, 5, 5, 5, 5, 3, 5, 4, 4, 6, 4, 2, 2, 0, 0, 0,
-9, 5, 5, 5, 5, 7, 5, 6, 4, 6, 2, 0, 0, 0, 0, 0,
-8, 3, 5, 3, 3, 3, 3, 4, 6, 4, 2, 2, 0, 0, 0, 0,
-9, 3, 3, 5, 5, 3, 3, 2, 4, 6, 2, 2, 2, 0, 0, 0,
-8, 5, 3, 5, 3, 3, 3, 4, 4, 4, 4, 2, 0, 0, 0, 0,
-9, 5, 3, 3, 3, 3, 3, 4, 6, 4, 2, 4, 0, 0, 0, 0,
-8, 5, 7, 3, 5, 5, 5, 6, 4, 2, 4, 2, 0, 0, 0, 0,
-9, 5, 5, 3, 5, 5, 5, 6, 4, 4, 2, 0, 0, 0, 0, 0,
-8, 5, 5, 3, 3, 3, 3, 4, 4, 2, 4, 2, 2, 0, 0, 0,
-8, 3, 5, 3, 3, 3, 3, 4, 4, 4, 2, 2, 0, 0, 0, 0,
-9, 5, 3, 5, 3, 3, 3, 6, 4, 2, 4, 2, 0, 0, 0, 0,
-8, 5, 5, 3, 3, 3, 3, 4, 4, 4, 4, 2, 2, 0, 0, 0,
-9, 5, 5, 7, 7, 5, 5, 4, 6, 2, 4, 2, 2, 0, 0, 0,
-9, 7, 5, 5, 5, 5, 5, 4, 6, 4, 4, 4, 0, 0, 0, 0,
-9, 3, 5, 3, 3, 5, 3, 4, 2, 4, 2, 2, 0, 0, 0, 0,
-8, 5, 3, 3, 3, 5, 1, 4, 2, 4, 4, 2, 0, 0, 0, 0,
-9, 3, 3, 3, 5, 3, 3, 4, 2, 2, 2, 2, 2, 0, 0, 0,
-9, 5, 5, 5, 5, 5, 5, 2, 2, 4, 4, 0, 2, 0, 0, 0,
-9, 5, 5, 5, 3, 5, 3, 4, 4, 4, 2, 2, 0, 0, 0, 0,
-9, 3, 3, 3, 3, 3, 1, 4, 4, 4, 2, 2, 2, 0, 0, 0,
-8, 5, 3, 3, 1, 1, 3, 4, 4, 2, 2, 6, 2, 2, 0, 0,
-9, 5, 3, 3, 3, 5, 3, 2, 4, 2, 2, 6, 2, 2, 0, 0,
-9, 3, 5, 5, 3, 3, 3, 2, 2, 2, 2, 6, 2, 2, 0, 0,
-9, 5, 3, 1, 3, 3, 3, 4, 2, 2, 2, 7, 4, 2, 0, 0,
-9, 5, 3, 3, 3, 3, 1, 4, 4, 2, 2, 6, 2, 2, 0, 0,
-9, 3, 5, 5, 3, 3, 3, 4, 2, 2, 2, 6, 2, 2, 0, 0,
-9, 5, 5, 5, 3, 5, 3, 6, 4, 2, 2, 7, 2, 2, 2, 0,
-8, 5, 5, 5, 5, 3, 3, 6, 6, 4, 4, 4, 2, 0, 0, 0,
-9, 7, 7, 5, 3, 5, 5, 6, 4, 4, 6, 4, 2, 0, 0, 0,
-9, 5, 5, 3, 3, 3, 3, 4, 4, 2, 2, 2, 2, 0, 0, 0,
-9, 5, 3, 3, 3, 3, 3, 4, 4, 4, 2, 2, 2, 2, 0, 0,
-8, 3, 5, 5, 3, 3, 3, 4, 2, 2, 4, 4, 2, 2, 0, 0,
-9, 5, 5, 5, 3, 3, 3, 4, 4, 2, 2, 4, 2, 2, 0, 0,
-9, 5, 5, 3, 3, 3, 3, 4, 4, 2, 4, 2, 4, 4, 0, 0,
-9, 3, 3, 3, 5, 5, 5, 4, 4, 4, 2, 2, 2, 2, 0, 0,
-9, 5, 3, 3, 5, 1, 3, 2, 4, 2, 2, 4, 2, 0, 0, 0,
-9, 7, 5, 5, 3, 3, 3, 4, 4, 4, 4, 2, 2, 2, 0, 0,
-9, 5, 5, 5, 5, 5, 5, 4, 6, 6, 4, 4, 2, 2, 0, 0,
-9, 3, 5, 5, 5, 1, 3, 6, 4, 4, 4, 2, 2, 2, 0, 0,
-9, 3, 3, 3, 3, 3, 3, 4, 4, 4, 2, 2, 2, 2, 0, 0,
-9, 5, 5, 5, 7, 5, 5, 4, 4, 4, 4, 4, 2, 2, 0, 0,
-9, 7, 7, 5, 5, 5, 5, 4, 6, 6, 4, 4, 2, 0, 0, 0,
-9, 3, 5, 3, 3, 3, 3, 4, 4, 4, 2, 4, 2, 0, 0, 0,
-9, 5, 3, 3, 3, 3, 3, 2, 4, 2, 2, 4, 2, 2, 0, 0,
-9, 5, 3, 5, 5, 3, 3, 2, 4, 2, 2, 4, 2, 0, 0, 0,
-9, 7, 5, 5, 5, 5, 3, 6, 2, 4, 2, 6, 2, 0, 0, 0,
-8, 7, 5, 5, 7, 5, 5, 4, 6, 4, 4, 2, 2, 0, 0, 0,
-9, 5, 5, 5, 5, 3, 3, 4, 4, 4, 4, 2, 2, 2, 0, 0,
-9, 3, 5, 3, 3, 3, 3, 4, 4, 4, 2, 4, 2, 0, 0, 0,
-9, 5, 5, 3, 5, 3, 3, 6, 6, 4, 4, 2, 4, 0, 0, 0,
-9, 5, 5, 3, 3, 3, 3, 4, 6, 4, 2, 2, 2, 2, 0, 0,
-9, 5, 3, 3, 5, 3, 5, 4, 6, 4, 2, 4, 4, 2, 0, 0,
-9, 5, 3, 5, 5, 5, 5, 4, 4, 2, 6, 2, 2, 2, 0, 0,
-9, 5, 5, 7, 5, 5, 3, 4, 6, 4, 4, 2, 2, 2, 0, 0,
-9, 5, 5, 5, 5, 3, 3, 6, 2, 6, 4, 4, 2, 2, 2, 0,
-9, 5, 5, 5, 5, 3, 5, 6, 4, 2, 6, 4, 4, 2, 0, 0,
-9, 5, 5, 5, 3, 3, 3, 6, 4, 6, 6, 2, 6, 2, 0, 0,
-9, 3, 3, 5, 5, 1, 3, 6, 2, 2, 2, 7, 2, 2, 0, 0,
-9, 5, 3, 5, 1, 3, 5, 2, 2, 2, 2, 7, 2, 0, 0, 0,
-9, 3, 3, 3, 5, 3, 3, 4, 2, 2, 2, 6, 2, 0, 0, 0,
-9, 5, 1, 3, 5, 3, 3, 4, 2, 2, 2, 6, 2, 2, 0, 0,
-9, 3, 5, 3, 3, 3, 3, 4, 2, 2, 4, 6, 2, 2, 0, 0,
-9, 7, 7, 5, 5, 5, 3, 6, 2, 2, 2, 7, 4, 2, 0, 0,
-9, 5, 5, 5, 7, 5, 5, 6, 4, 4, 4, 6, 2, 2, 0, 0,
-9, 7, 3, 7, 3, 5, 3, 4, 6, 4, 4, 2, 2, 2, 0, 0,
-9, 3, 5, 3, 3, 3, 3, 6, 4, 2, 2, 7, 2, 2, 0, 0,
-9, 5, 5, 5, 5, 3, 3, 6, 2, 4, 4, 6, 0, 2, 0, 0,
-9, 5, 5, 5, 5, 5, 7, 4, 4, 4, 4, 2, 2, 0, 0, 0,
-9, 5, 7, 5, 7, 5, 5, 4, 4, 4, 4, 2, 2, 2, 0, 0,
-9, 5, 3, 3, 5, 3, 3, 4, 4, 2, 2, 6, 2, 0, 0, 0,
-9, 5, 5, 3, 3, 5, 3, 6, 2, 2, 2, 4, 2, 2, 0, 0,
-9, 5, 5, 5, 5, 1, 5, 4, 4, 2, 2, 6, 2, 2, 0, 0,
-9, 5, 5, 3, 5, 3, 3, 2, 2, 2, 2, 7, 2, 4, 0, 0,
-9, 5, 5, 5, 5, 5, 5, 6, 4, 4, 2, 6, 2, 0, 0, 0,
-9, 5, 5, 3, 5, 5, 3, 4, 4, 2, 4, 4, 2, 0, 0, 0,
-9, 5, 5, 5, 5, 5, 5, 4, 4, 4, 2, 2, 2, 0, 0, 0,
-8, 5, 5, 3, 3, 5, 3, 4, 4, 2, 2, 6, 2, 2, 0, 0,
-9, 3, 3, 3, 3, 5, 3, 4, 2, 2, 4, 6, 2, 2, 0, 0,
-9, 5, 3, 3, 3, 3, 3, 4, 4, 2, 2, 6, 2, 2, 0, 0,
-9, 5, 3, 3, 1, 3, 3, 4, 4, 2, 2, 6, 2, 2, 0, 0,
-9, 3, 3, 3, 5, 5, 3, 2, 4, 2, 2, 6, 2, 2, 0, 0,
-9, 5, 5, 3, 3, 3, 3, 4, 4, 2, 2, 6, 2, 2, 0, 0,
-9, 3, 3, 5, 3, 1, 5, 2, 2, 2, 2, 6, 4, 0, 0, 0,
-9, 5, 5, 5, 5, 5, 5, 4, 4, 4, 4, 2, 0, 2, 0, 0,
-9, 5, 7, 5, 5, 3, 5, 4, 6, 6, 2, 4, 4, 2, 0, 0,
-9, 7, 7, 7, 5, 3, 5, 4, 4, 4, 4, 4, 4, 2, 0, 0,
-9, 5, 5, 5, 5, 3, 5, 4, 6, 6, 4, 4, 2, 0, 0, 0,
-9, 7, 3, 5, 5, 5, 3, 4, 4, 6, 4, 2, 2, 2, 0, 0,
-9, 7, 5, 3, 5, 7, 7, 4, 4, 4, 6, 4, 4, 2, 0, 0,
-8, 5, 3, 3, 3, 3, 3, 4, 4, 2, 2, 6, 2, 0, 0, 0,
-9, 3, 3, 3, 5, 3, 3, 4, 2, 2, 2, 7, 2, 2, 0, 0,
-9, 5, 3, 3, 3, 1, 1, 4, 2, 2, 4, 6, 2, 2, 0, 0,
-9, 5, 5, 3, 3, 3, 3, 4, 2, 2, 2, 6, 2, 2, 0, 0,
-8, 7, 3, 3, 3, 5, 3, 4, 2, 2, 2, 6, 2, 0, 0, 0,
-9, 3, 3, 3, 3, 3, 3, 4, 2, 2, 2, 6, 2, 2, 0, 0,
-9, 5, 3, 1, 5, 3, 3, 4, 2, 2, 2, 7, 2, 2, 0, 0,
-9, 5, 5, 5, 3, 5, 5, 4, 6, 4, 2, 4, 0, 0, 0, 0,
-9, 5, 5, 5, 7, 5, 5, 4, 4, 4, 6, 4, 2, 0, 0, 0,
-9, 5, 5, 3, 5, 3, 3, 2, 2, 2, 2, 7, 2, 2, 0, 0,
-9, 7, 3, 5, 3, 3, 5, 4, 4, 2, 2, 6, 2, 2, 0, 0,
-8, 3, 3, 3, 3, 3, 1, 4, 2, 4, 2, 6, 2, 2, 0, 0,
-8, 5, 5, 5, 3, 7, 3, 4, 2, 2, 4, 4, 2, 0, 0, 0,
-9, 5, 5, 5, 5, 3, 5, 4, 4, 2, 2, 2, 0, 0, 0, 0,
-9, 5, 5, 5, 5, 5, 5, 4, 2, 4, 6, 2, 2, 0, 0, 0,
-9, 7, 5, 5, 7, 3, 3, 4, 6, 4, 4, 2, 2, 0, 0, 0,
-9, 5, 5, 3, 5, 5, 5, 4, 6, 6, 4, 2, 4, 0, 0, 0,
-8, 5, 5, 3, 3, 3, 3, 4, 4, 2, 2, 6, 2, 0, 0, 0,
-9, 3, 3, 3, 1, 3, 3, 4, 2, 2, 2, 6, 2, 0, 0, 0,
-8, 5, 3, 3, 3, 3, 3, 6, 4, 2, 2, 6, 2, 2, 0, 0,
-8, 5, 5, 5, 7, 5, 5, 4, 4, 2, 2, 6, 2, 2, 0, 0,
-9, 5, 5, 5, 7, 7, 5, 6, 4, 4, 4, 4, 0, 0, 0, 0,
-9, 7, 7, 7, 7, 5, 3, 4, 4, 4, 6, 2, 2, 0, 0, 0,
-9, 5, 3, 3, 3, 3, 5, 2, 2, 2, 2, 6, 2, 0, 0, 0,
-9, 5, 3, 3, 3, 1, 5, 4, 2, 2, 2, 6, 2, 0, 0, 0,
-8, 7, 3, 5, 1, 3, 3, 4, 2, 2, 2, 6, 2, 2, 0, 0,
-9, 5, 3, 3, 5, 3, 3, 4, 2, 2, 2, 7, 2, 2, 0, 0,
-8, 7, 5, 5, 3, 5, 5, 4, 4, 2, 2, 7, 2, 0, 0, 0,
-9, 5, 7, 7, 5, 3, 3, 4, 2, 2, 2, 6, 2, 2, 0, 0,
-9, 5, 3, 1, 3, 5, 3, 4, 2, 2, 2, 6, 2, 0, 0, 0,
-9, 5, 5, 3, 3, 3, 3, 4, 4, 4, 2, 4, 0, 2, 0, 0,
-9, 5, 7, 5, 5, 5, 3, 6, 4, 4, 4, 4, 2, 2, 0, 0,
-9, 5, 5, 5, 5, 3, 5, 6, 4, 6, 4, 2, 2, 2, 0, 0,
-9, 5, 3, 3, 3, 3, 3, 2, 4, 4, 2, 6, 2, 0, 0, 0,
-8, 3, 3, 3, 5, 3, 3, 4, 4, 2, 2, 6, 2, 0, 0, 0,
-9, 5, 3, 3, 3, 3, 3, 4, 4, 2, 2, 7, 2, 2, 0, 0,
-9, 5, 5, 3, 3, 1, 3, 4, 4, 2, 2, 7, 2, 0, 0, 0,
-9, 3, 3, 3, 5, 3, 3, 4, 2, 2, 2, 6, 2, 0, 0, 0,
-9, 5, 5, 3, 3, 3, 3, 4, 2, 2, 2, 6, 2, 0, 0, 0,
-8, 5, 5, 5, 3, 5, 3, 6, 4, 4, 2, 6, 2, 2, 0, 0,
-9, 5, 5, 5, 5, 5, 5, 4, 4, 4, 4, 2, 2, 2, 0, 0,
-9, 5, 5, 5, 7, 5, 5, 4, 6, 4, 2, 4, 4, 2, 2, 0,
-9, 5, 5, 3, 3, 3, 3, 4, 4, 4, 2, 4, 2, 0, 0, 0,
-9, 5, 3, 3, 3, 3, 3, 4, 4, 4, 2, 2, 2, 2, 0, 0,
-9, 5, 5, 3, 3, 3, 3, 4, 2, 4, 2, 4, 2, 2, 0, 0,
-9, 5, 5, 5, 3, 3, 5, 6, 4, 2, 2, 2, 2, 2, 0, 0,
-9, 5, 3, 5, 1, 3, 3, 2, 2, 2, 4, 4, 2, 2, 0, 0,
-9, 5, 5, 5, 3, 3, 3, 2, 4, 2, 4, 4, 2, 0, 0, 0,
-9, 5, 5, 5, 3, 3, 3, 4, 2, 4, 2, 4, 2, 2, 0, 0,
-9, 5, 7, 5, 5, 5, 5, 6, 6, 4, 4, 4, 0, 0, 0, 0,
-9, 7, 5, 5, 5, 5, 3, 4, 6, 4, 6, 4, 2, 0, 0, 0,
-9, 5, 3, 3, 5, 3, 3, 6, 2, 4, 2, 6, 2, 0, 0, 0,
-9, 5, 5, 5, 5, 3, 5, 4, 2, 4, 4, 6, 2, 0, 0, 0,
-9, 5, 5, 5, 5, 5, 3, 4, 4, 4, 4, 4, 0, 2, 0, 0,
-9, 7, 7, 5, 5, 3, 5, 4, 4, 6, 4, 2, 2, 2, 0, 0,
-9, 5, 3, 3, 5, 1, 3, 4, 2, 2, 2, 6, 2, 2, 0, 0,
-9, 5, 3, 3, 1, 3, 3, 4, 2, 2, 4, 7, 2, 2, 0, 0,
-9, 5, 3, 3, 3, 1, 3, 4, 4, 2, 2, 6, 2, 2, 0, 0,
-9, 5, 3, 3, 3, 5, 3, 4, 2, 2, 2, 6, 2, 2, 0, 0,
-9, 5, 5, 5, 3, 5, 3, 4, 4, 2, 2, 7, 2, 2, 0, 0,
-9, 5, 7, 5, 5, 5, 3, 6, 4, 4, 4, 4, 2, 0, 0, 0,
-9, 7, 5, 5, 5, 5, 7, 6, 4, 6, 4, 4, 2, 0, 0, 0,
-9, 5, 3, 5, 3, 3, 5, 4, 2, 2, 2, 6, 2, 2, 0, 0,
-9, 5, 5, 3, 3, 3, 5, 2, 6, 2, 4, 6, 2, 0, 0, 0,
-9, 5, 3, 3, 3, 3, 5, 2, 2, 2, 2, 6, 2, 0, 0, 0,
-9, 5, 3, 3, 3, 3, 3, 2, 2, 2, 2, 7, 4, 2, 0, 0,
-8, 5, 5, 3, 5, 5, 5, 4, 6, 2, 4, 6, 0, 2, 0, 0,
-8, 5, 5, 5, 5, 3, 5, 6, 2, 4, 4, 2, 0, 0, 0, 0,
-9, 5, 5, 5, 7, 5, 5, 4, 6, 6, 4, 4, 2, 2, 0, 0,
-9, 3, 5, 3, 3, 3, 5, 2, 2, 2, 2, 6, 2, 2, 0, 0,
-9, 5, 3, 3, 3, 3, 5, 4, 2, 2, 2, 6, 2, 2, 0, 0,
-9, 5, 5, 5, 5, 5, 3, 4, 4, 6, 4, 4, 2, 0, 0, 0,
-9, 5, 5, 5, 5, 5, 5, 6, 4, 4, 6, 2, 2, 0, 0, 0,
-9, 5, 5, 7, 7, 5, 3, 4, 6, 6, 2, 4, 4, 2, 0, 0,
-9, 5, 5, 3, 3, 3, 3, 4, 4, 2, 2, 6, 2, 2, 0, 0,
-9, 5, 5, 3, 5, 3, 3, 4, 4, 2, 2, 6, 2, 2, 0, 0,
-9, 3, 5, 3, 3, 3, 5, 4, 4, 2, 2, 6, 2, 2, 0, 0,
-9, 5, 3, 5, 5, 3, 3, 4, 2, 2, 2, 6, 2, 2, 0, 0,
-9, 5, 7, 5, 5, 5, 3, 4, 6, 2, 2, 6, 2, 0, 0, 0,
-9, 5, 7, 5, 5, 5, 5, 4, 4, 6, 2, 2, 0, 0, 0, 0,
-9, 7, 5, 5, 5, 5, 5, 4, 6, 2, 4, 4, 2, 0, 0, 0,
-9, 5, 3, 3, 5, 5, 7, 6, 4, 4, 2, 6, 2, 2, 0, 0,
-9, 5, 5, 3, 5, 3, 1, 6, 2, 4, 2, 6, 0, 0, 0, 0,
-8, 5, 3, 5, 3, 1, 5, 6, 4, 4, 2, 4, 2, 0, 0, 0,
-8, 5, 5, 5, 5, 1, 5, 4, 2, 2, 2, 6, 2, 2, 0, 0,
-9, 5, 3, 5, 1, 3, 3, 2, 4, 2, 2, 6, 2, 0, 0, 0,
-9, 3, 5, 3, 5, 3, 5, 4, 2, 2, 2, 6, 2, 2, 0, 0,
-9, 5, 5, 5, 3, 5, 3, 6, 6, 4, 4, 6, 0, 0, 0, 0,
-9, 5, 7, 7, 5, 5, 5, 4, 4, 4, 2, 2, 4, 0, 0, 0,
-9, 5, 5, 5, 5, 5, 3, 4, 4, 4, 6, 6, 2, 2, 0, 0,
-9, 5, 5, 3, 5, 3, 3, 4, 2, 4, 2, 7, 2, 0, 0, 0,
-9, 5, 3, 3, 5, 3, 3, 4, 4, 2, 2, 6, 2, 0, 0, 0,
-9, 3, 5, 1, 5, 3, 5, 2, 2, 4, 2, 6, 2, 0, 0, 0,
-9, 5, 5, 3, 3, 5, 5, 4, 4, 4, 6, 4, 2, 2, 0, 0,
-9, 7, 5, 5, 5, 5, 3, 6, 4, 6, 4, 2, 2, 2, 0, 0,
-9, 7, 5, 7, 5, 5, 5, 6, 4, 4, 6, 2, 2, 2, 0, 0,
-9, 5, 3, 5, 1, 3, 3, 4, 2, 2, 4, 4, 2, 0, 0, 0,
-9, 3, 3, 5, 5, 3, 3, 4, 2, 2, 2, 4, 2, 0, 0, 0,
-9, 7, 5, 5, 5, 7, 3, 4, 4, 4, 6, 2, 2, 0, 0, 0,
-8, 7, 5, 5, 7, 3, 5, 4, 4, 2, 4, 4, 2, 2, 0, 0,
-9, 7, 7, 5, 5, 5, 5, 6, 6, 6, 4, 4, 2, 2, 0, 0,
-9, 5, 5, 3, 5, 5, 3, 4, 6, 6, 4, 6, 2, 0, 0, 0,
-9, 7, 5, 3, 7, 5, 5, 4, 6, 4, 6, 4, 0, 0, 0, 0,
-9, 5, 5, 3, 3, 3, 3, 4, 4, 2, 2, 6, 2, 2, 0, 0,
-9, 5, 5, 5, 5, 5, 5, 4, 4, 2, 2, 2, 0, 0, 0, 0,
-9, 5, 5, 7, 7, 3, 5, 6, 2, 6, 4, 2, 0, 0, 0, 0,
-9, 5, 3, 5, 3, 3, 3, 6, 2, 2, 6, 2, 2, 0, 0, 0,
-9, 3, 3, 3, 3, 3, 3, 4, 2, 2, 2, 4, 0, 0, 0, 0,
-9, 3, 3, 3, 3, 5, 3, 2, 4, 2, 4, 4, 2, 0, 0, 0,
-9, 5, 5, 5, 5, 5, 3, 6, 4, 4, 4, 2, 0, 0, 0, 0,
-9, 7, 5, 5, 5, 5, 5, 4, 6, 6, 4, 4, 2, 2, 0, 0,
-8, 5, 3, 5, 1, 5, 1, 4, 4, 2, 2, 6, 2, 2, 0, 0,
-9, 5, 5, 5, 3, 3, 3, 4, 4, 2, 2, 6, 2, 2, 0, 0,
-9, 7, 5, 5, 5, 3, 3, 4, 4, 4, 4, 6, 2, 0, 0, 0,
-9, 7, 5, 5, 5, 5, 5, 6, 6, 4, 4, 2, 2, 0, 0, 0,
-8, 5, 5, 5, 5, 5, 5, 6, 2, 6, 4, 2, 2, 0, 0, 0,
-8, 7, 7, 3, 5, 5, 7, 4, 4, 4, 4, 4, 2, 2, 0, 0,
-8, 5, 3, 5, 3, 3, 5, 4, 2, 2, 4, 6, 2, 2, 0, 0,
-9, 5, 5, 1, 3, 1, 5, 4, 2, 4, 2, 6, 2, 2, 0, 0,
-8, 5, 3, 3, 5, 3, 5, 4, 2, 2, 2, 7, 2, 0, 0, 0,
-8, 3, 5, 3, 3, 3, 3, 4, 2, 2, 2, 6, 2, 2, 0, 0,
-8, 7, 5, 3, 3, 5, 3, 4, 4, 2, 2, 6, 2, 0, 0, 0,
-8, 5, 5, 3, 3, 5, 3, 2, 4, 2, 2, 6, 2, 0, 0, 0,
-8, 5, 5, 3, 5, 3, 3, 4, 4, 2, 4, 2, 2, 0, 0, 0,
-9, 5, 7, 5, 5, 5, 5, 4, 4, 2, 4, 4, 4, 2, 2, 0,
-9, 5, 5, 5, 5, 3, 5, 2, 4, 4, 4, 4, 4, 2, 0, 0,
-9, 5, 5, 7, 5, 3, 3, 4, 2, 2, 4, 6, 2, 2, 0, 0,
-9, 3, 5, 3, 5, 1, 3, 4, 4, 2, 2, 6, 2, 2, 0, 0,
-9, 3, 3, 5, 3, 1, 1, 4, 4, 2, 2, 7, 2, 0, 0, 0,
-9, 7, 5, 3, 5, 3, 3, 2, 2, 2, 2, 7, 2, 2, 0, 0,
-9, 7, 5, 5, 5, 5, 5, 4, 4, 4, 2, 6, 2, 2, 0, 0,
-9, 7, 5, 7, 5, 3, 5, 4, 4, 4, 4, 6, 2, 0, 0, 0,
-9, 7, 7, 3, 3, 1, 3, 2, 2, 2, 2, 6, 2, 2, 0, 0,
-9, 5, 5, 3, 3, 5, 1, 2, 2, 2, 2, 7, 2, 2, 0, 0,
-9, 5, 5, 3, 5, 3, 1, 4, 2, 2, 4, 7, 2, 0, 0, 0,
-9, 7, 5, 3, 3, 1, 1, 4, 4, 2, 2, 6, 2, 2, 0, 0,
-9, 5, 3, 3, 3, 3, 3, 2, 2, 2, 2, 6, 2, 2, 0, 0,
-9, 7, 5, 5, 5, 3, 3, 4, 4, 4, 2, 2, 2, 0, 0, 0,
-9, 5, 7, 5, 5, 5, 5, 2, 4, 4, 6, 4, 2, 2, 0, 0,
-9, 5, 5, 5, 5, 3, 5, 6, 6, 6, 2, 2, 4, 2, 0, 0,
-8, 5, 3, 5, 3, 5, 5, 4, 4, 2, 2, 6, 2, 0, 0, 0,
-9, 5, 3, 5, 3, 3, 3, 4, 4, 2, 2, 6, 2, 0, 0, 0,
-9, 5, 3, 5, 5, 3, 3, 6, 4, 2, 2, 6, 2, 2, 0, 0,
-9, 5, 3, 5, 3, 3, 3, 4, 2, 4, 2, 6, 2, 2, 0, 0,
-9, 5, 3, 3, 5, 5, 5, 4, 4, 4, 2, 4, 2, 2, 0, 0,
-9, 5, 3, 5, 3, 3, 3, 2, 4, 2, 2, 6, 2, 2, 0, 0,
-9, 3, 3, 5, 3, 3, 5, 2, 4, 2, 4, 6, 2, 2, 0, 0,
-9, 7, 5, 5, 5, 5, 5, 4, 4, 4, 4, 6, 2, 2, 0, 0,
-9, 5, 5, 5, 3, 5, 5, 4, 4, 4, 4, 4, 0, 0, 0, 0,
-9, 5, 5, 5, 3, 5, 5, 6, 2, 2, 2, 2, 0, 0, 0, 0,
-9, 3, 5, 3, 5, 5, 3, 4, 2, 4, 2, 2, 0, 0, 0, 0,
-9, 5, 3, 5, 5, 3, 3, 6, 4, 4, 4, 2, 0, 0, 0, 0,
-9, 5, 5, 3, 5, 5, 5, 4, 4, 4, 4, 2, 0, 0, 0, 0,
-9, 5, 5, 5, 5, 5, 5, 4, 4, 4, 4, 2, 2, 2, 2, 0,
-9, 3, 3, 3, 3, 3, 5, 6, 4, 2, 4, 2, 0, 0, 0, 0,
-9, 3, 5, 3, 5, 3, 3, 4, 4, 4, 4, 2, 0, 0, 0, 0,
-9, 5, 3, 3, 5, 3, 1, 4, 4, 2, 4, 2, 2, 0, 0, 0,
-8, 5, 5, 5, 5, 3, 3, 4, 4, 4, 4, 2, 0, 0, 0, 0,
-9, 3, 3, 3, 3, 1, 5, 4, 4, 4, 2, 4, 2, 0, 0, 0,
-9, 5, 5, 5, 5, 3, 3, 6, 4, 4, 2, 2, 2, 0, 0, 0,
-9, 5, 5, 3, 3, 3, 3, 7, 4, 4, 2, 2, 0, 0, 0, 0,
-9, 5, 7, 5, 7, 5, 5, 4, 4, 6, 4, 4, 2, 0, 0, 0,
-9, 5, 5, 5, 7, 5, 7, 6, 6, 6, 4, 4, 4, 2, 0, 0,
-9, 7, 5, 5, 3, 5, 3, 4, 2, 4, 4, 6, 2, 0, 0, 0,
-9, 5, 5, 5, 5, 5, 5, 6, 4, 4, 4, 2, 2, 0, 0, 0,
-9, 7, 7, 5, 5, 7, 5, 6, 4, 4, 4, 4, 2, 2, 0, 0,
-9, 5, 5, 3, 3, 5, 3, 2, 2, 2, 2, 6, 2, 0, 0, 0,
-9, 5, 3, 3, 3, 3, 1, 4, 2, 2, 2, 6, 2, 0, 0, 0,
-9, 7, 5, 5, 3, 3, 1, 6, 4, 2, 2, 6, 2, 2, 0, 0,
-9, 7, 5, 3, 3, 3, 3, 4, 2, 2, 2, 6, 2, 2, 0, 0,
-9, 3, 3, 3, 3, 3, 1, 2, 4, 2, 2, 6, 2, 0, 0, 0,
-9, 5, 5, 5, 5, 5, 3, 4, 4, 4, 4, 2, 2, 0, 0, 0,
-9, 5, 7, 5, 5, 5, 3, 4, 4, 6, 4, 4, 2, 2, 0, 0,
-9, 3, 3, 5, 5, 1, 3, 4, 4, 2, 2, 4, 2, 2, 0, 0,
-9, 5, 3, 1, 5, 3, 3, 4, 4, 2, 4, 4, 2, 2, 0, 0,
-9, 5, 5, 5, 5, 3, 3, 4, 4, 4, 2, 4, 2, 2, 0, 0,
-9, 3, 5, 3, 3, 3, 3, 4, 4, 4, 2, 6, 2, 2, 0, 0,
-9, 5, 3, 3, 3, 3, 3, 4, 4, 4, 2, 4, 2, 2, 0, 0,
-9, 5, 5, 3, 5, 5, 3, 4, 4, 2, 2, 4, 2, 2, 0, 0,
-8, 5, 5, 5, 5, 1, 3, 4, 4, 2, 2, 6, 2, 2, 0, 0,
-9, 5, 7, 5, 5, 5, 5, 4, 4, 2, 2, 6, 2, 0, 0, 0,
-9, 5, 5, 5, 5, 5, 5, 4, 4, 4, 2, 2, 2, 0, 0, 0,
-9, 5, 5, 5, 5, 5, 5, 4, 4, 4, 4, 4, 2, 0, 0, 0,
-9, 5, 5, 3, 5, 5, 3, 6, 2, 4, 4, 2, 2, 0, 0, 0,
-9, 7, 5, 3, 5, 5, 5, 4, 6, 6, 4, 4, 2, 0, 0, 0,
-9, 5, 5, 5, 5, 3, 3, 4, 4, 4, 4, 6, 2, 2, 2, 0,
-9, 3, 5, 3, 5, 3, 3, 2, 4, 4, 2, 2, 2, 0, 0, 0,
-9, 5, 5, 3, 5, 3, 5, 4, 2, 4, 2, 4, 2, 0, 0, 0,
-9, 3, 3, 5, 3, 1, 5, 4, 4, 4, 2, 4, 0, 0, 0, 0,
-9, 5, 5, 5, 5, 3, 5, 6, 4, 6, 2, 4, 2, 0, 0, 0,
-9, 5, 5, 5, 5, 5, 3, 6, 2, 6, 4, 2, 2, 2, 0, 0,
-9, 7, 3, 3, 3, 3, 3, 4, 2, 4, 2, 4, 2, 2, 0, 0,
-9, 7, 5, 5, 5, 7, 5, 6, 4, 4, 2, 4, 2, 0, 0, 0,
-9, 7, 5, 7, 7, 3, 5, 4, 6, 4, 4, 2, 2, 2, 0, 0,
-8, 3, 3, 5, 3, 5, 3, 4, 2, 2, 2, 6, 2, 2, 0, 0,
-9, 5, 5, 5, 3, 3, 5, 4, 4, 2, 2, 6, 2, 2, 0, 0,
-9, 5, 5, 7, 3, 5, 3, 6, 4, 4, 4, 2, 2, 0, 0, 0,
-9, 5, 5, 5, 7, 3, 5, 6, 6, 4, 4, 4, 2, 0, 0, 0,
-8, 5, 5, 5, 5, 5, 5, 4, 4, 2, 2, 4, 0, 0, 0, 0,
-8, 7, 5, 5, 3, 7, 5, 4, 2, 2, 2, 2, 0, 0, 0, 0,
-9, 3, 3, 3, 3, 3, 3, 4, 2, 4, 2, 2, 0, 0, 0, 0,
-9, 3, 5, 5, 3, 1, 3, 6, 4, 4, 4, 2, 2, 0, 0, 0,
-9, 3, 3, 5, 3, 3, 5, 4, 4, 4, 2, 2, 2, 0, 0, 0,
-9, 3, 3, 3, 3, 3, 3, 4, 4, 4, 2, 2, 0, 0, 0, 0,
-9, 3, 3, 3, 3, 3, 3, 6, 4, 4, 2, 2, 2, 0, 0, 0,
-9, 7, 7, 5, 5, 5, 5, 6, 6, 6, 6, 2, 2, 0, 0, 0,
-9, 5, 5, 5, 5, 5, 5, 4, 4, 4, 6, 4, 2, 0, 0, 0,
-8, 5, 3, 3, 5, 1, 5, 4, 2, 4, 2, 2, 2, 2, 0, 0,
-8, 3, 3, 5, 3, 5, 3, 4, 4, 4, 2, 2, 2, 2, 0, 0,
-8, 7, 3, 5, 5, 3, 5, 2, 4, 4, 4, 2, 0, 0, 0, 0,
-9, 3, 5, 5, 1, 3, 5, 4, 4, 4, 2, 2, 2, 0, 0, 0,
-8, 5, 5, 5, 5, 3, 5, 6, 7, 6, 4, 2, 2, 0, 0, 0,
-9, 5, 7, 5, 7, 3, 5, 4, 6, 4, 4, 2, 2, 0, 0, 0,
-8, 7, 5, 3, 5, 5, 5, 4, 2, 4, 4, 4, 2, 0, 0, 0,
-8, 5, 5, 5, 7, 5, 5, 6, 4, 4, 4, 2, 2, 2, 0, 0,
-8, 5, 3, 3, 5, 3, 3, 6, 4, 2, 2, 6, 2, 0, 0, 0,
-8, 7, 5, 5, 3, 5, 5, 4, 4, 2, 2, 6, 2, 0, 0, 0,
-8, 5, 5, 3, 3, 3, 3, 4, 2, 2, 2, 6, 2, 2, 0, 0,
-9, 7, 5, 5, 5, 3, 3, 6, 2, 2, 2, 7, 2, 0, 0, 0,
-8, 5, 5, 5, 3, 5, 3, 4, 4, 4, 4, 2, 0, 0, 0, 0,
-8, 5, 7, 5, 7, 5, 5, 4, 4, 4, 6, 2, 2, 0, 0, 0,
-8, 5, 3, 3, 3, 3, 1, 4, 4, 2, 2, 6, 2, 0, 0, 0,
-8, 7, 3, 3, 3, 3, 3, 4, 2, 2, 4, 6, 2, 0, 0, 0,
-8, 5, 3, 3, 5, 1, 5, 4, 2, 2, 2, 6, 2, 2, 0, 0,
-8, 5, 3, 3, 3, 3, 5, 4, 4, 2, 2, 7, 2, 2, 0, 0,
-8, 5, 5, 3, 3, 3, 5, 2, 2, 2, 2, 6, 2, 0, 0, 0,
-9, 5, 5, 5, 5, 5, 3, 4, 4, 4, 2, 6, 2, 2, 0, 0,
-9, 5, 5, 5, 5, 5, 5, 4, 4, 4, 4, 4, 2, 0, 0, 0,
-8, 5, 5, 5, 5, 3, 5, 6, 6, 4, 4, 4, 2, 2, 2, 0,
-9, 5, 3, 3, 3, 3, 3, 4, 2, 4, 2, 6, 2, 2, 0, 0,
-9, 7, 3, 5, 5, 5, 5, 4, 2, 2, 2, 6, 2, 0, 0, 0,
-8, 5, 5, 5, 3, 5, 5, 4, 4, 4, 2, 7, 2, 0, 0, 0,
-8, 3, 5, 5, 3, 1, 3, 4, 2, 2, 2, 6, 2, 2, 0, 0,
-9, 5, 5, 5, 3, 5, 3, 6, 4, 6, 2, 4, 2, 0, 0, 0,
-9, 7, 5, 5, 5, 5, 5, 6, 4, 4, 4, 2, 2, 0, 0, 0,
-9, 3, 3, 3, 3, 3, 3, 2, 2, 2, 2, 6, 2, 2, 0, 0,
-9, 5, 3, 5, 3, 3, 3, 4, 4, 2, 2, 6, 2, 2, 0, 0,
-9, 5, 3, 3, 3, 1, 3, 2, 2, 2, 2, 6, 2, 2, 0, 0,
-9, 5, 3, 7, 3, 3, 3, 2, 4, 2, 2, 7, 2, 2, 0, 0,
-9, 7, 5, 3, 3, 3, 5, 4, 4, 6, 2, 4, 2, 0, 0, 0,
-9, 5, 5, 5, 3, 7, 5, 4, 4, 4, 4, 4, 2, 2, 0, 0,
-8, 5, 3, 3, 3, 5, 3, 2, 2, 4, 2, 4, 2, 2, 0, 0,
-9, 7, 5, 5, 3, 3, 3, 4, 2, 2, 2, 4, 2, 2, 0, 0,
-9, 5, 5, 5, 3, 5, 5, 6, 6, 6, 2, 6, 2, 0, 0, 0,
-9, 5, 5, 3, 3, 5, 5, 4, 4, 4, 2, 4, 0, 0, 0, 0,
-8, 5, 5, 5, 3, 5, 5, 4, 4, 2, 2, 2, 0, 0, 0, 0,
-9, 5, 5, 3, 5, 5, 3, 4, 4, 2, 2, 4, 2, 0, 0, 0,
-9, 3, 5, 3, 3, 3, 5, 4, 2, 2, 4, 2, 2, 0, 0, 0,
-9, 5, 5, 5, 5, 3, 3, 4, 2, 4, 4, 2, 2, 2, 0, 0,
-9, 7, 7, 7, 5, 5, 5, 4, 6, 6, 4, 2, 2, 2, 0, 0,
-9, 5, 7, 5, 5, 5, 5, 4, 6, 4, 2, 2, 2, 0, 0, 0,
-9, 5, 7, 5, 5, 5, 7, 6, 6, 6, 4, 4, 2, 0, 0, 0,
-8, 5, 3, 3, 5, 3, 3, 2, 2, 2, 2, 6, 2, 0, 0, 0,
-9, 3, 5, 3, 3, 3, 3, 4, 2, 2, 2, 7, 2, 2, 0, 0,
-9, 5, 3, 3, 3, 3, 3, 6, 4, 2, 2, 6, 2, 0, 0, 0,
-8, 5, 3, 3, 1, 3, 3, 2, 4, 2, 2, 6, 0, 2, 0, 0,
-9, 5, 3, 3, 3, 1, 3, 4, 4, 2, 2, 6, 2, 0, 0, 0,
-8, 7, 3, 3, 3, 1, 3, 2, 4, 2, 2, 6, 2, 0, 0, 0,
-8, 7, 5, 5, 5, 3, 3, 4, 4, 2, 4, 6, 2, 0, 0, 0,
-9, 5, 5, 5, 5, 3, 5, 4, 4, 2, 4, 2, 2, 2, 0, 0,
-9, 7, 5, 5, 7, 5, 3, 6, 6, 4, 6, 4, 2, 0, 0, 0,
-9, 3, 3, 3, 3, 3, 3, 4, 2, 2, 2, 7, 2, 2, 0, 0,
-8, 3, 5, 3, 3, 3, 3, 4, 2, 4, 2, 6, 2, 0, 0, 0,
-9, 3, 3, 3, 5, 3, 5, 4, 2, 2, 2, 6, 2, 2, 0, 0,
-9, 3, 3, 3, 3, 1, 3, 4, 2, 2, 2, 6, 2, 0, 0, 0,
-9, 5, 5, 3, 5, 3, 3, 4, 2, 2, 2, 6, 2, 2, 0, 0,
-9, 5, 5, 5, 5, 5, 3, 4, 4, 6, 4, 2, 2, 0, 0, 0,
-9, 5, 5, 5, 5, 5, 5, 4, 4, 6, 4, 2, 2, 2, 0, 0,
-8, 5, 7, 7, 5, 5, 5, 6, 4, 6, 6, 2, 2, 2, 0, 0,
-8, 5, 5, 5, 3, 3, 3, 6, 4, 2, 2, 2, 2, 2, 0, 0,
-9, 5, 5, 1, 3, 3, 3, 4, 4, 4, 2, 6, 2, 0, 0, 0,
-8, 5, 3, 3, 3, 3, 3, 4, 4, 2, 2, 4, 2, 0, 0, 0,
-9, 5, 5, 3, 5, 3, 5, 4, 4, 4, 2, 6, 2, 2, 0, 0,
-9, 5, 3, 3, 3, 3, 3, 4, 2, 2, 2, 6, 2, 2, 0, 0,
-8, 5, 3, 1, 3, 3, 3, 6, 6, 4, 2, 4, 2, 2, 0, 0,
-9, 5, 5, 5, 5, 5, 3, 4, 4, 4, 2, 6, 2, 0, 0, 0,
-9, 5, 5, 5, 3, 5, 5, 4, 4, 4, 4, 2, 2, 0, 0, 0,
-9, 5, 5, 5, 5, 5, 5, 4, 4, 4, 4, 2, 2, 2, 0, 0,
-9, 3, 5, 5, 5, 3, 5, 4, 4, 2, 2, 6, 2, 2, 0, 0,
-9, 5, 5, 5, 5, 5, 3, 4, 4, 4, 2, 6, 2, 2, 0, 0,
-9, 5, 5, 5, 7, 5, 3, 4, 4, 6, 4, 2, 2, 0, 0, 0,
-9, 5, 5, 5, 7, 5, 5, 4, 4, 4, 4, 6, 2, 2, 0, 0,
-9, 5, 3, 5, 5, 3, 3, 4, 4, 2, 4, 2, 2, 0, 0, 0,
-8, 5, 3, 5, 5, 3, 3, 4, 2, 4, 2, 2, 2, 0, 0, 0,
-9, 5, 5, 5, 3, 1, 5, 4, 2, 2, 4, 2, 2, 2, 0, 0,
-9, 3, 3, 5, 3, 5, 3, 4, 4, 4, 2, 2, 2, 2, 0, 0,
-9, 5, 3, 5, 5, 5, 5, 4, 4, 4, 2, 2, 2, 2, 0, 0,
-9, 7, 7, 5, 5, 5, 3, 4, 4, 6, 4, 4, 2, 2, 0, 0,
-9, 3, 5, 3, 3, 1, 5, 4, 2, 2, 2, 4, 2, 2, 0, 0,
-9, 3, 5, 3, 3, 3, 5, 4, 4, 2, 4, 6, 2, 0, 0, 0,
-9, 5, 3, 3, 3, 3, 5, 4, 2, 2, 2, 4, 2, 2, 0, 0,
-9, 3, 3, 3, 5, 3, 5, 4, 2, 4, 2, 4, 2, 0, 0, 0,
-9, 5, 5, 5, 5, 5, 5, 4, 4, 4, 4, 4, 2, 2, 0, 0,
-9, 5, 7, 5, 5, 5, 3, 6, 6, 4, 4, 6, 2, 0, 0, 0,
-8, 3, 5, 5, 3, 3, 5, 4, 4, 2, 2, 6, 2, 2, 0, 0,
-9, 5, 5, 5, 5, 5, 3, 6, 4, 6, 4, 2, 0, 0, 0, 0,
-9, 5, 7, 3, 5, 5, 5, 4, 4, 4, 4, 4, 2, 0, 0, 0,
-8, 5, 5, 1, 3, 1, 3, 6, 4, 2, 2, 6, 2, 2, 0, 0,
-9, 7, 5, 3, 5, 1, 3, 4, 2, 4, 2, 7, 2, 2, 0, 0,
-8, 5, 5, 5, 3, 3, 3, 4, 4, 4, 2, 6, 2, 2, 0, 0,
-9, 5, 5, 5, 3, 3, 3, 4, 4, 2, 2, 6, 2, 0, 0, 0,
-9, 5, 5, 5, 3, 3, 1, 4, 2, 2, 2, 6, 2, 2, 0, 0,
-9, 5, 3, 5, 5, 3, 3, 2, 4, 2, 4, 6, 2, 0, 0, 0,
-9, 5, 5, 5, 3, 3, 5, 4, 2, 2, 2, 7, 2, 2, 0, 0,
-8, 5, 5, 5, 5, 5, 5, 4, 4, 2, 2, 6, 2, 0, 0, 0,
-9, 5, 5, 5, 5, 5, 5, 4, 4, 2, 2, 2, 0, 0, 0, 0,
-9, 5, 5, 5, 5, 5, 5, 4, 2, 4, 4, 2, 0, 0, 0, 0,
-9, 5, 7, 5, 5, 5, 5, 6, 6, 4, 4, 2, 2, 0, 0, 0,
-9, 5, 3, 3, 5, 3, 5, 4, 4, 4, 2, 4, 2, 0, 0, 0,
-9, 3, 5, 5, 3, 3, 5, 4, 2, 4, 2, 4, 2, 0, 0, 0,
-9, 5, 7, 3, 3, 3, 3, 4, 2, 4, 2, 2, 0, 0, 0, 0,
-9, 5, 5, 5, 5, 5, 3, 6, 4, 6, 6, 2, 4, 0, 0, 0,
-9, 7, 7, 7, 5, 5, 5, 4, 6, 4, 4, 2, 2, 2, 0, 0,
-9, 5, 3, 3, 3, 5, 3, 4, 4, 4, 2, 2, 2, 2, 0, 0,
-9, 5, 3, 5, 3, 5, 5, 4, 4, 6, 2, 4, 2, 0, 0, 0,
-8, 5, 5, 7, 3, 5, 3, 4, 4, 4, 4, 2, 2, 0, 0, 0,
-9, 5, 5, 5, 1, 7, 1, 4, 4, 4, 2, 4, 2, 0, 0, 0,
-9, 5, 5, 5, 5, 5, 5, 4, 4, 4, 4, 4, 2, 0, 0, 0,
-9, 5, 5, 3, 5, 5, 3, 6, 4, 4, 4, 2, 4, 2, 0, 0,
-9, 3, 5, 5, 3, 3, 3, 2, 2, 2, 2, 6, 2, 2, 0, 0,
-9, 3, 5, 3, 3, 1, 3, 4, 2, 2, 2, 6, 2, 2, 0, 0,
-9, 5, 3, 3, 5, 3, 5, 6, 2, 2, 2, 6, 2, 2, 0, 0,
-9, 3, 5, 5, 3, 1, 3, 6, 2, 2, 2, 6, 2, 2, 0, 0,
-9, 3, 5, 5, 3, 3, 3, 4, 4, 2, 2, 6, 2, 0, 0, 0,
-9, 3, 3, 5, 3, 3, 3, 4, 2, 2, 2, 6, 2, 2, 0, 0,
-9, 5, 5, 5, 5, 5, 3, 4, 4, 4, 4, 2, 2, 2, 0, 0,
-9, 5, 5, 5, 5, 5, 5, 4, 4, 4, 4, 4, 2, 0, 0, 0,
-9, 5, 5, 3, 3, 3, 3, 2, 4, 2, 2, 4, 2, 0, 0, 0,
-9, 3, 3, 3, 3, 3, 3, 4, 4, 4, 2, 4, 2, 2, 0, 0,
-9, 5, 5, 3, 5, 5, 3, 6, 4, 2, 2, 4, 2, 0, 0, 0,
-9, 7, 5, 5, 5, 5, 3, 4, 6, 4, 4, 2, 2, 0, 0, 0,
-9, 7, 5, 5, 5, 5, 3, 4, 4, 4, 4, 2, 2, 0, 0, 0,
-9, 5, 3, 5, 3, 3, 1, 6, 6, 4, 4, 4, 2, 0, 0, 0,
-9, 5, 5, 5, 3, 7, 5, 4, 7, 4, 6, 4, 2, 0, 0, 0,
-9, 7, 5, 5, 5, 5, 3, 6, 4, 6, 4, 2, 2, 2, 0, 0,
-9, 5, 3, 3, 5, 3, 3, 2, 6, 4, 4, 2, 2, 0, 0, 0,
-9, 3, 5, 1, 3, 3, 5, 4, 6, 2, 2, 4, 2, 2, 0, 0,
-9, 3, 5, 3, 3, 3, 5, 2, 6, 4, 4, 4, 2, 0, 0, 0,
-9, 5, 7, 5, 5, 5, 5, 4, 4, 6, 4, 4, 2, 0, 0, 0,
-9, 7, 5, 5, 5, 5, 5, 6, 4, 4, 4, 2, 2, 2, 0, 0,
-9, 5, 5, 5, 5, 5, 7, 4, 4, 4, 4, 4, 2, 0, 0, 0,
-8, 3, 5, 3, 5, 3, 5, 4, 4, 4, 2, 2, 2, 2, 0, 0,
-9, 5, 3, 3, 3, 5, 5, 4, 6, 4, 2, 4, 2, 0, 0, 0,
-9, 7, 5, 5, 5, 3, 3, 4, 6, 2, 4, 2, 2, 2, 0, 0,
-9, 5, 5, 5, 5, 5, 3, 4, 4, 4, 4, 4, 2, 0, 0, 0,
-9, 5, 7, 7, 5, 7, 7, 6, 4, 6, 4, 4, 2, 2, 2, 0,
-9, 5, 3, 3, 5, 3, 3, 4, 4, 4, 2, 2, 2, 2, 0, 0,
-9, 3, 5, 5, 5, 3, 3, 4, 4, 6, 4, 2, 4, 0, 0, 0,
-9, 5, 5, 5, 3, 3, 1, 4, 2, 2, 2, 2, 2, 2, 2, 0,
-8, 5, 5, 5, 7, 5, 5, 6, 4, 6, 4, 2, 2, 2, 0, 0,
-9, 7, 5, 3, 5, 7, 5, 4, 4, 6, 4, 4, 2, 2, 0, 0,
-8, 7, 5, 5, 5, 5, 5, 6, 6, 6, 4, 4, 0, 0, 0, 0,
-9, 7, 5, 5, 5, 3, 5, 4, 4, 4, 6, 4, 2, 0, 0, 0,
-9, 5, 5, 5, 5, 5, 3, 6, 2, 2, 4, 6, 2, 0, 0, 0,
-9, 5, 7, 5, 5, 5, 7, 4, 4, 4, 4, 2, 2, 0, 0, 0,
-9, 5, 5, 5, 5, 5, 5, 6, 4, 4, 4, 2, 4, 0, 0, 0,
-9, 3, 3, 3, 1, 3, 5, 6, 4, 2, 2, 4, 2, 2, 0, 0,
-9, 5, 5, 3, 3, 3, 3, 2, 2, 2, 4, 6, 2, 2, 0, 0,
-8, 5, 3, 3, 3, 3, 3, 4, 2, 4, 2, 6, 2, 2, 0, 0,
-9, 3, 3, 3, 5, 1, 5, 4, 4, 2, 2, 6, 2, 2, 0, 0,
-9, 3, 3, 5, 3, 3, 5, 2, 4, 2, 4, 6, 2, 2, 0, 0,
-9, 5, 3, 3, 3, 3, 3, 4, 2, 2, 2, 6, 2, 0, 0, 0,
-9, 5, 5, 5, 5, 3, 5, 6, 4, 6, 2, 4, 2, 0, 0, 0,
-9, 5, 5, 5, 5, 5, 3, 4, 4, 4, 4, 6, 2, 0, 0, 0,
-9, 5, 5, 5, 5, 5, 3, 6, 6, 4, 4, 4, 2, 2, 0, 0,
-9, 7, 5, 3, 3, 3, 5, 4, 2, 2, 2, 6, 2, 0, 0, 0,
-9, 5, 5, 5, 3, 3, 3, 4, 4, 2, 2, 6, 2, 2, 0, 0,
-9, 5, 3, 3, 5, 1, 5, 2, 4, 2, 2, 7, 2, 2, 0, 0,
-9, 5, 3, 3, 3, 5, 3, 4, 2, 2, 4, 7, 2, 2, 0, 0,
-9, 5, 5, 3, 3, 1, 3, 4, 2, 2, 2, 6, 2, 0, 0, 0,
-9, 5, 7, 5, 5, 5, 5, 4, 4, 4, 2, 4, 2, 0, 0, 0,
-8, 5, 5, 5, 7, 5, 5, 4, 4, 4, 4, 2, 0, 0, 0, 0,
-9, 7, 5, 7, 7, 3, 3, 4, 4, 6, 4, 4, 2, 0, 0, 0,
-9, 5, 5, 5, 3, 3, 1, 4, 4, 4, 2, 6, 2, 2, 0, 0,
-9, 5, 3, 5, 3, 3, 5, 6, 4, 2, 2, 4, 2, 2, 0, 0,
-9, 3, 3, 3, 5, 3, 3, 4, 4, 6, 2, 4, 2, 2, 0, 0,
-9, 3, 3, 5, 3, 3, 3, 2, 2, 4, 2, 6, 2, 2, 0, 0,
-9, 5, 5, 5, 5, 3, 5, 4, 4, 6, 2, 4, 0, 0, 0, 0,
-9, 5, 5, 5, 7, 5, 3, 4, 4, 4, 4, 2, 2, 0, 0, 0,
-9, 7, 7, 5, 5, 3, 5, 6, 4, 4, 4, 6, 2, 2, 0, 0,
-9, 5, 3, 5, 3, 1, 5, 4, 2, 2, 2, 6, 2, 0, 0, 0,
-9, 7, 3, 1, 3, 3, 3, 4, 4, 2, 2, 6, 2, 0, 0, 0,
-9, 5, 5, 5, 3, 3, 3, 4, 2, 4, 2, 6, 2, 2, 0, 0,
-9, 5, 5, 7, 3, 5, 5, 4, 4, 2, 4, 2, 2, 0, 0, 0,
-9, 5, 5, 5, 5, 5, 5, 4, 6, 4, 4, 4, 2, 2, 0, 0,
-9, 5, 5, 3, 3, 3, 5, 2, 4, 2, 2, 4, 2, 2, 0, 0,
-9, 5, 5, 5, 3, 5, 5, 6, 4, 2, 6, 4, 0, 0, 0, 0,
-9, 5, 5, 5, 5, 7, 5, 6, 4, 4, 4, 4, 2, 0, 0, 0,
-9, 5, 5, 5, 5, 5, 3, 6, 6, 4, 4, 6, 2, 2, 0, 0,
-9, 3, 3, 3, 5, 1, 5, 2, 4, 4, 2, 2, 2, 2, 0, 0,
-9, 5, 5, 5, 5, 5, 5, 4, 4, 2, 4, 4, 2, 2, 0, 0,
-9, 7, 5, 5, 5, 5, 3, 4, 4, 6, 4, 2, 2, 0, 0, 0,
-9, 3, 7, 3, 5, 3, 3, 4, 4, 2, 2, 6, 2, 0, 0, 0,
-9, 5, 5, 5, 3, 5, 5, 4, 4, 2, 2, 6, 4, 0, 0, 0,
-9, 5, 5, 5, 3, 5, 5, 4, 4, 4, 2, 2, 2, 2, 0, 0,
-9, 7, 7, 7, 5, 5, 5, 6, 4, 6, 4, 4, 2, 0, 0, 0,
-9, 5, 7, 1, 5, 3, 3, 6, 2, 2, 2, 7, 2, 2, 0, 0,
-9, 3, 5, 1, 5, 3, 3, 6, 6, 2, 2, 7, 2, 0, 0, 0,
-9, 5, 5, 3, 5, 1, 3, 4, 2, 2, 2, 6, 2, 2, 0, 0,
-9, 5, 3, 3, 5, 3, 3, 4, 2, 2, 2, 6, 2, 2, 0, 0,
-9, 5, 5, 3, 3, 1, 3, 4, 4, 2, 2, 7, 2, 0, 0, 0,
-9, 5, 3, 3, 3, 3, 1, 4, 4, 2, 2, 7, 2, 2, 0, 0,
-9, 5, 5, 3, 5, 5, 3, 4, 2, 2, 2, 6, 2, 2, 0, 0,
-9, 5, 5, 5, 5, 5, 5, 4, 6, 4, 2, 2, 0, 0, 0, 0,
-9, 5, 5, 5, 5, 5, 5, 6, 6, 6, 2, 4, 2, 2, 0, 0,
-8, 5, 3, 5, 5, 3, 5, 4, 4, 2, 2, 4, 2, 0, 0, 0,
-8, 3, 5, 5, 3, 3, 1, 4, 4, 2, 4, 2, 2, 2, 0, 0,
-9, 3, 3, 5, 5, 3, 5, 4, 4, 2, 2, 4, 2, 0, 0, 0,
-9, 3, 3, 5, 3, 1, 3, 6, 4, 4, 2, 2, 2, 0, 0, 0,
-9, 5, 3, 5, 3, 3, 3, 4, 2, 4, 2, 2, 2, 0, 0, 0,
-9, 5, 5, 7, 5, 3, 7, 6, 6, 6, 2, 4, 2, 0, 0, 0,
-9, 5, 5, 5, 7, 5, 3, 4, 4, 4, 4, 2, 2, 0, 0, 0,
-9, 5, 3, 3, 3, 5, 3, 4, 2, 2, 2, 6, 2, 0, 0, 0,
-9, 5, 3, 3, 3, 5, 3, 4, 2, 2, 2, 7, 2, 0, 0, 0,
-9, 3, 5, 3, 3, 3, 3, 4, 2, 2, 2, 6, 2, 2, 0, 0,
-9, 5, 3, 3, 3, 3, 1, 4, 4, 2, 2, 6, 2, 2, 0, 0,
-9, 5, 3, 3, 1, 3, 3, 4, 2, 2, 2, 6, 2, 0, 0, 0,
-9, 5, 3, 5, 3, 1, 3, 4, 2, 2, 2, 6, 2, 0, 0, 0,
-9, 5, 5, 3, 3, 3, 3, 4, 4, 2, 2, 6, 2, 2, 0, 0,
-9, 5, 5, 5, 7, 5, 5, 4, 4, 2, 6, 6, 2, 2, 0, 0,
-9, 5, 5, 5, 5, 3, 5, 4, 4, 6, 4, 2, 2, 0, 0, 0,
-9, 5, 5, 7, 7, 5, 5, 6, 4, 4, 6, 4, 2, 0, 0, 0,
-9, 3, 3, 3, 3, 3, 5, 4, 2, 4, 2, 6, 2, 2, 0, 0,
-9, 5, 5, 3, 3, 3, 3, 4, 2, 4, 2, 6, 2, 0, 0, 0,
-9, 5, 5, 5, 5, 5, 5, 4, 4, 4, 2, 6, 2, 0, 0, 0,
-9, 5, 3, 5, 3, 1, 3, 6, 4, 2, 2, 7, 2, 2, 0, 0,
-9, 5, 7, 3, 5, 5, 5, 4, 2, 4, 2, 7, 2, 0, 0, 0,
-9, 3, 3, 3, 3, 1, 3, 2, 2, 2, 2, 6, 2, 2, 0, 0,
-9, 5, 5, 5, 5, 7, 3, 4, 4, 2, 2, 6, 2, 2, 0, 0,
-9, 3, 5, 3, 3, 5, 1, 4, 4, 2, 2, 6, 2, 0, 0, 0,
-9, 5, 5, 3, 3, 1, 1, 6, 4, 2, 2, 7, 2, 0, 0, 0,
-9, 5, 5, 5, 5, 5, 3, 4, 4, 4, 4, 2, 2, 0, 0, 0,
-9, 5, 7, 5, 5, 5, 5, 4, 6, 4, 4, 4, 2, 2, 0, 0,
-8, 5, 5, 5, 7, 5, 5, 6, 4, 6, 2, 4, 2, 2, 0, 0,
-9, 5, 5, 3, 1, 3, 3, 4, 2, 2, 2, 4, 2, 2, 0, 0,
-9, 3, 5, 5, 3, 3, 5, 4, 4, 2, 4, 4, 2, 2, 0, 0,
-9, 3, 5, 3, 5, 5, 5, 4, 2, 2, 4, 6, 2, 2, 0, 0,
-8, 5, 5, 3, 5, 1, 3, 4, 6, 2, 4, 6, 2, 2, 0, 0,
-8, 5, 3, 3, 3, 1, 3, 2, 4, 2, 2, 6, 2, 2, 0, 0,
-9, 5, 7, 5, 5, 5, 5, 6, 4, 4, 4, 6, 2, 2, 0, 0,
-9, 5, 5, 5, 5, 3, 5, 6, 4, 2, 6, 4, 2, 0, 0, 0,
-9, 5, 3, 3, 5, 3, 5, 4, 4, 2, 2, 7, 2, 2, 0, 0,
-9, 7, 5, 3, 5, 3, 3, 4, 2, 2, 2, 6, 2, 0, 0, 0,
-9, 5, 3, 3, 3, 5, 3, 4, 2, 4, 2, 6, 2, 0, 0, 0,
-8, 7, 3, 1, 3, 3, 5, 4, 4, 2, 2, 7, 2, 2, 0, 0,
-9, 5, 5, 5, 5, 3, 3, 4, 4, 4, 2, 6, 0, 0, 0, 0,
-9, 5, 5, 5, 5, 5, 5, 4, 2, 4, 2, 6, 0, 0, 0, 0,
-9, 5, 5, 3, 5, 3, 3, 2, 4, 2, 2, 7, 2, 0, 0, 0,
-9, 5, 5, 3, 3, 1, 5, 2, 4, 2, 2, 7, 2, 0, 0, 0,
-9, 5, 5, 5, 5, 3, 3, 6, 4, 4, 2, 4, 2, 0, 0, 0,
-9, 7, 7, 5, 7, 5, 5, 6, 4, 6, 4, 4, 4, 2, 0, 0,
-9, 7, 5, 5, 7, 3, 3, 4, 2, 2, 2, 6, 2, 2, 0, 0,
-9, 3, 5, 3, 3, 3, 3, 4, 2, 2, 4, 4, 2, 2, 0, 0,
-9, 3, 3, 5, 3, 3, 3, 4, 4, 4, 2, 2, 2, 2, 0, 0,
-9, 5, 3, 5, 5, 3, 5, 4, 4, 4, 2, 2, 2, 2, 0, 0,
-9, 5, 3, 3, 3, 5, 3, 6, 4, 4, 4, 2, 0, 0, 0, 0,
-9, 5, 3, 5, 5, 3, 5, 4, 4, 6, 2, 2, 2, 0, 0, 0,
-9, 5, 3, 5, 1, 3, 5, 4, 4, 6, 4, 4, 2, 0, 0, 0,
-9, 5, 5, 5, 5, 5, 5, 6, 4, 4, 4, 4, 2, 0, 0, 0,
-9, 5, 5, 5, 5, 5, 5, 4, 4, 4, 4, 4, 2, 2, 0, 0,
-9, 7, 5, 5, 3, 1, 3, 4, 2, 2, 2, 6, 2, 0, 0, 0,
-9, 5, 5, 3, 5, 5, 5, 4, 4, 4, 2, 6, 4, 2, 0, 0,
-9, 5, 5, 5, 7, 5, 5, 4, 4, 4, 4, 2, 2, 0, 0, 0,
-9, 5, 5, 5, 5, 5, 5, 4, 4, 4, 4, 4, 2, 0, 0, 0,
-9, 5, 5, 5, 5, 5, 3, 4, 4, 4, 4, 4, 0, 2, 0, 0,
-9, 7, 7, 5, 3, 5, 3, 4, 4, 4, 4, 2, 2, 2, 0, 0,
-9, 7, 7, 5, 5, 5, 5, 4, 6, 6, 4, 4, 4, 2, 0, 0,
-9, 3, 5, 5, 3, 3, 3, 2, 4, 2, 2, 6, 2, 2, 0, 0,
-9, 3, 5, 3, 3, 3, 5, 2, 2, 2, 2, 6, 2, 2, 0, 0,
-9, 3, 5, 1, 3, 1, 3, 2, 2, 2, 2, 4, 2, 0, 0, 0,
-9, 5, 3, 5, 3, 1, 1, 4, 2, 2, 2, 6, 4, 2, 0, 0,
-9, 5, 5, 3, 5, 3, 5, 6, 2, 4, 2, 7, 2, 0, 0, 0,
-8, 5, 5, 3, 5, 3, 3, 4, 4, 2, 4, 4, 2, 0, 0, 0,
-8, 5, 5, 3, 3, 5, 3, 4, 4, 2, 2, 2, 2, 0, 0, 0,
-9, 3, 3, 3, 5, 3, 3, 4, 4, 4, 2, 2, 0, 0, 0, 0,
-9, 5, 7, 5, 7, 5, 5, 4, 4, 4, 6, 2, 2, 0, 0, 0,
-9, 5, 5, 7, 7, 3, 5, 6, 4, 4, 4, 2, 2, 4, 2, 0,
-9, 5, 3, 5, 3, 3, 5, 4, 2, 4, 2, 2, 2, 0, 0, 0,
-9, 5, 3, 5, 1, 3, 5, 4, 2, 2, 2, 2, 2, 2, 0, 0,
-9, 3, 5, 3, 5, 7, 5, 6, 4, 2, 4, 4, 2, 0, 0, 0,
-9, 5, 3, 3, 5, 3, 5, 4, 4, 2, 2, 2, 2, 0, 0, 0,
-9, 5, 3, 5, 3, 3, 3, 2, 6, 2, 2, 2, 2, 0, 0, 0,
-9, 3, 5, 5, 3, 5, 1, 4, 6, 2, 2, 4, 0, 0, 0, 0,
-9, 5, 5, 5, 5, 3, 5, 4, 4, 6, 4, 4, 2, 0, 0, 0,
-9, 5, 5, 5, 5, 5, 5, 6, 4, 2, 2, 4, 2, 0, 0, 0,
-9, 5, 7, 5, 5, 5, 5, 4, 4, 6, 4, 4, 2, 2, 0, 0,
-8, 3, 3, 3, 5, 3, 3, 2, 2, 2, 2, 7, 2, 2, 0, 0,
-9, 3, 3, 3, 3, 3, 3, 2, 2, 2, 2, 7, 2, 0, 0, 0,
-9, 3, 5, 3, 5, 5, 1, 6, 2, 2, 2, 6, 2, 2, 0, 0,
-9, 3, 3, 3, 5, 3, 3, 2, 2, 2, 2, 6, 2, 2, 0, 0,
-9, 5, 3, 5, 5, 5, 1, 6, 2, 2, 2, 6, 2, 0, 0, 0,
-9, 5, 3, 3, 3, 3, 3, 2, 4, 2, 2, 6, 2, 0, 0, 0,
-9, 5, 5, 5, 5, 3, 1, 6, 4, 4, 2, 6, 2, 0, 0, 0,
-9, 7, 3, 5, 5, 3, 3, 4, 4, 2, 4, 7, 2, 0, 0, 0,
-9, 5, 7, 5, 5, 5, 5, 4, 4, 4, 2, 2, 2, 0, 0, 0,
-9, 5, 5, 5, 5, 7, 5, 4, 4, 4, 6, 4, 2, 0, 0, 0,
-9, 5, 5, 3, 7, 3, 5, 4, 4, 2, 2, 6, 2, 2, 0, 0,
-9, 5, 5, 3, 3, 3, 5, 4, 4, 2, 2, 6, 2, 2, 0, 0,
-9, 3, 3, 3, 5, 1, 5, 4, 2, 2, 2, 6, 0, 2, 0, 0,
-9, 7, 3, 3, 3, 3, 3, 6, 4, 2, 2, 6, 2, 0, 0, 0,
-9, 3, 5, 3, 5, 3, 3, 4, 4, 4, 2, 4, 2, 0, 0, 0,
-9, 5, 3, 5, 3, 5, 3, 4, 6, 4, 2, 4, 2, 2, 0, 0,
-9, 7, 7, 5, 5, 5, 5, 4, 4, 4, 4, 4, 2, 0, 0, 0,
-9, 7, 5, 5, 5, 5, 5, 6, 6, 6, 4, 2, 4, 2, 0, 0,
-9, 3, 5, 5, 5, 3, 3, 4, 4, 2, 4, 4, 2, 0, 0, 0,
-9, 3, 5, 3, 3, 3, 3, 4, 4, 4, 2, 6, 2, 2, 0, 0,
-9, 3, 5, 5, 3, 3, 5, 6, 4, 2, 2, 4, 2, 0, 0, 0,
-8, 5, 5, 5, 3, 1, 3, 6, 4, 4, 2, 2, 2, 2, 0, 0,
-9, 5, 5, 3, 5, 3, 3, 2, 4, 6, 2, 2, 2, 2, 0, 0,
-9, 3, 3, 3, 5, 3, 3, 4, 4, 2, 2, 4, 2, 2, 0, 0,
-9, 5, 5, 3, 3, 3, 5, 2, 4, 2, 2, 6, 2, 0, 0, 0,
-9, 7, 5, 5, 5, 5, 3, 4, 6, 4, 4, 2, 2, 0, 0, 0,
-9, 7, 7, 5, 5, 5, 5, 4, 4, 4, 4, 2, 4, 2, 0, 0,
-8, 5, 3, 3, 5, 3, 5, 6, 4, 4, 2, 4, 2, 0, 0, 0,
-8, 5, 3, 3, 5, 3, 5, 2, 4, 6, 2, 4, 2, 0, 0, 0,
-9, 5, 3, 5, 5, 3, 5, 4, 2, 4, 2, 4, 2, 0, 0, 0,
-9, 3, 5, 3, 3, 3, 5, 4, 2, 2, 2, 6, 2, 2, 0, 0,
-8, 5, 3, 3, 3, 3, 3, 6, 4, 2, 2, 4, 0, 0, 0, 0,
-9, 5, 5, 3, 5, 3, 5, 4, 2, 2, 2, 4, 2, 0, 0, 0,
-9, 5, 5, 5, 5, 3, 3, 2, 4, 4, 4, 2, 2, 0, 0, 0,
-9, 5, 5, 5, 7, 5, 5, 4, 4, 4, 4, 2, 2, 2, 0, 0,
-9, 5, 5, 5, 5, 1, 3, 6, 4, 2, 4, 2, 2, 0, 0, 0,
-9, 5, 3, 3, 3, 3, 3, 4, 2, 4, 2, 2, 2, 2, 0, 0,
-8, 5, 5, 7, 5, 5, 5, 6, 2, 2, 4, 2, 2, 0, 0, 0,
-8, 5, 5, 5, 3, 5, 3, 4, 4, 6, 4, 2, 2, 2, 0, 0,
-9, 3, 3, 7, 3, 3, 3, 4, 4, 2, 2, 4, 2, 0, 0, 0,
-9, 5, 5, 7, 5, 3, 5, 4, 4, 4, 4, 6, 2, 2, 0, 0,
-9, 5, 5, 5, 5, 5, 3, 4, 4, 4, 4, 2, 0, 0, 0, 0,
-9, 3, 5, 5, 3, 3, 3, 4, 2, 2, 2, 7, 2, 0, 0, 0,
-9, 3, 3, 3, 5, 3, 3, 2, 2, 4, 2, 6, 2, 2, 0, 0,
-9, 5, 5, 5, 5, 1, 3, 4, 4, 2, 2, 6, 2, 4, 0, 0,
-9, 3, 3, 3, 3, 3, 3, 2, 2, 4, 2, 6, 2, 0, 0, 0,
-8, 3, 5, 5, 3, 3, 5, 2, 2, 2, 2, 6, 2, 2, 0, 0,
-9, 5, 5, 5, 3, 5, 5, 4, 2, 4, 2, 6, 2, 0, 0, 0,
-9, 5, 5, 5, 5, 5, 3, 6, 6, 4, 4, 2, 0, 0, 0, 0,
-9, 5, 5, 5, 5, 5, 3, 4, 2, 6, 4, 4, 2, 2, 0, 0,
-9, 5, 5, 3, 5, 3, 3, 4, 2, 4, 2, 6, 2, 0, 0, 0,
-9, 3, 3, 5, 3, 3, 3, 4, 2, 2, 4, 6, 2, 0, 0, 0,
-9, 3, 5, 3, 5, 3, 3, 4, 2, 2, 2, 6, 2, 0, 0, 0,
-8, 5, 5, 3, 5, 3, 3, 2, 2, 4, 2, 7, 2, 2, 0, 0,
-9, 5, 7, 5, 3, 1, 3, 4, 2, 4, 2, 6, 2, 2, 0, 0,
-9, 5, 5, 5, 5, 3, 3, 6, 4, 2, 2, 6, 2, 2, 0, 0,
-9, 3, 5, 5, 7, 5, 5, 4, 4, 4, 4, 6, 2, 0, 0, 0,
-9, 7, 7, 5, 5, 5, 5, 4, 4, 2, 4, 6, 2, 2, 0, 0,
-8, 5, 5, 5, 5, 5, 5, 6, 6, 2, 2, 4, 2, 0, 0, 0,
-8, 5, 5, 5, 5, 5, 5, 4, 2, 4, 4, 4, 2, 0, 0, 0,
-9, 5, 5, 5, 7, 5, 5, 4, 4, 6, 4, 4, 6, 2, 0, 0,
-9, 3, 7, 3, 3, 3, 3, 6, 4, 4, 4, 4, 2, 0, 0, 0,
-9, 5, 5, 3, 3, 5, 5, 4, 6, 6, 4, 2, 2, 0, 0, 0,
-9, 5, 3, 3, 5, 3, 3, 7, 2, 2, 2, 4, 2, 2, 0, 0,
-9, 5, 5, 5, 5, 5, 5, 6, 6, 6, 4, 4, 2, 2, 0, 0,
-9, 5, 5, 5, 5, 5, 5, 4, 4, 4, 4, 4, 2, 0, 0, 0,
-9, 3, 3, 3, 3, 3, 3, 4, 2, 2, 2, 6, 2, 2, 0, 0,
-9, 3, 5, 3, 3, 3, 3, 4, 2, 2, 2, 7, 2, 2, 0, 0,
-9, 5, 5, 3, 3, 1, 3, 6, 4, 2, 2, 7, 0, 0, 0, 0,
-9, 5, 5, 3, 3, 3, 3, 4, 6, 4, 4, 6, 2, 0, 0, 0,
-9, 5, 5, 7, 5, 5, 3, 4, 4, 4, 4, 4, 2, 0, 0, 0,
-9, 5, 5, 7, 5, 3, 5, 4, 2, 4, 4, 2, 2, 0, 0, 0,
-8, 5, 5, 5, 7, 5, 3, 4, 4, 4, 6, 4, 2, 0, 0, 0,
-9, 5, 5, 5, 5, 5, 5, 4, 6, 6, 6, 2, 2, 2, 0, 0,
-9, 7, 5, 3, 3, 1, 3, 4, 2, 4, 4, 4, 2, 2, 0, 0,
-9, 3, 5, 5, 5, 3, 3, 4, 4, 4, 2, 4, 2, 2, 0, 0,
-9, 3, 5, 5, 3, 3, 5, 6, 4, 2, 4, 2, 2, 2, 0, 0,
-9, 5, 7, 5, 5, 3, 7, 4, 4, 4, 4, 4, 4, 2, 0, 0,
-9, 5, 5, 3, 5, 5, 5, 4, 4, 6, 4, 4, 2, 0, 0, 0,
-9, 3, 3, 3, 5, 5, 3, 4, 2, 2, 2, 7, 2, 2, 0, 0,
-9, 7, 3, 3, 3, 3, 3, 4, 2, 4, 2, 6, 2, 0, 0, 0,
-9, 5, 5, 3, 3, 3, 3, 2, 2, 4, 2, 6, 2, 2, 0, 0,
-8, 5, 5, 5, 5, 7, 3, 4, 4, 2, 4, 4, 2, 2, 0, 0,
-9, 5, 5, 5, 5, 7, 5, 6, 4, 4, 6, 4, 2, 0, 2, 0,
-9, 5, 5, 7, 7, 3, 3, 6, 4, 4, 4, 4, 2, 2, 2, 0,
-9, 5, 3, 3, 3, 3, 5, 4, 2, 2, 2, 6, 2, 2, 0, 0,
-8, 5, 3, 3, 3, 3, 5, 2, 2, 2, 2, 7, 2, 2, 0, 0,
-9, 3, 5, 3, 3, 3, 3, 4, 2, 2, 2, 7, 2, 2, 0, 0,
-9, 5, 3, 3, 3, 3, 3, 4, 2, 2, 2, 6, 2, 0, 0, 0,
-9, 5, 5, 5, 3, 5, 5, 4, 6, 4, 2, 4, 0, 0, 0, 0,
-9, 5, 5, 5, 5, 7, 5, 6, 4, 6, 4, 4, 2, 0, 0, 0,
-9, 5, 5, 3, 3, 1, 3, 4, 4, 2, 2, 6, 2, 2, 0, 0,
-8, 7, 3, 3, 3, 1, 3, 4, 2, 6, 2, 6, 2, 0, 0, 0,
-9, 5, 5, 3, 3, 1, 3, 4, 4, 2, 4, 6, 2, 2, 0, 0,
-8, 5, 3, 3, 3, 3, 3, 2, 2, 4, 4, 7, 2, 2, 0, 0,
-9, 7, 5, 3, 5, 3, 3, 4, 2, 2, 2, 7, 2, 2, 0, 0,
-8, 5, 3, 3, 3, 1, 5, 4, 2, 2, 2, 7, 2, 0, 0, 0,
-9, 7, 5, 3, 5, 5, 3, 4, 4, 4, 4, 6, 2, 2, 0, 0,
-9, 5, 5, 5, 5, 5, 3, 6, 4, 6, 4, 2, 2, 0, 0, 0,
-9, 5, 5, 3, 5, 5, 5, 6, 4, 6, 4, 4, 2, 0, 0, 0,
-9, 3, 5, 3, 5, 3, 7, 4, 6, 2, 2, 6, 2, 2, 0, 0,
-9, 5, 3, 3, 7, 3, 3, 6, 2, 2, 2, 6, 2, 2, 0, 0,
-9, 5, 3, 3, 5, 5, 5, 4, 2, 2, 2, 7, 2, 2, 0, 0,
-9, 5, 5, 5, 3, 3, 3, 6, 4, 2, 2, 6, 2, 0, 0, 0,
-9, 3, 3, 3, 5, 3, 3, 4, 4, 2, 2, 6, 2, 2, 0, 0,
-9, 3, 3, 3, 3, 3, 3, 4, 4, 2, 2, 6, 2, 2, 0, 0,
-9, 5, 3, 3, 3, 3, 5, 4, 2, 2, 2, 6, 2, 2, 0, 0,
-9, 5, 5, 5, 3, 5, 3, 4, 2, 4, 4, 4, 0, 0, 0, 0,
-9, 5, 5, 3, 5, 5, 5, 4, 2, 4, 4, 2, 0, 0, 0, 0,
-9, 5, 5, 5, 5, 5, 5, 6, 4, 4, 4, 2, 0, 0, 0, 0,
-9, 5, 5, 5, 5, 5, 5, 6, 6, 6, 4, 2, 2, 0, 0, 0,
-9, 7, 5, 5, 7, 5, 5, 6, 4, 4, 4, 4, 4, 2, 2, 0,
-9, 3, 3, 5, 5, 3, 1, 6, 4, 2, 4, 2, 2, 0, 0, 0,
-9, 5, 5, 3, 3, 3, 3, 4, 4, 4, 4, 4, 2, 2, 0, 0,
-9, 3, 3, 3, 5, 1, 5, 4, 6, 4, 6, 4, 2, 0, 0, 0,
-9, 5, 5, 3, 3, 3, 3, 6, 4, 2, 4, 2, 2, 2, 0, 0,
-8, 7, 5, 5, 7, 5, 5, 6, 4, 6, 4, 2, 2, 0, 0, 0,
-9, 5, 3, 3, 5, 5, 5, 6, 4, 4, 4, 4, 2, 2, 0, 0,
-9, 3, 5, 5, 1, 3, 3, 4, 2, 2, 2, 6, 2, 0, 0, 0,
-9, 7, 5, 5, 5, 5, 3, 4, 4, 2, 4, 4, 0, 0, 0, 0,
-9, 7, 5, 7, 5, 5, 5, 4, 4, 4, 4, 2, 2, 2, 0, 0,
-9, 7, 5, 7, 7, 5, 5, 6, 4, 4, 6, 4, 2, 0, 0, 0,
-9, 3, 5, 5, 5, 3, 3, 4, 4, 4, 2, 6, 2, 0, 0, 0,
-9, 3, 3, 3, 3, 3, 5, 4, 4, 4, 2, 4, 0, 0, 0, 0,
-9, 3, 5, 5, 3, 3, 3, 4, 4, 4, 2, 4, 2, 0, 0, 0,
-9, 3, 3, 5, 5, 3, 1, 2, 2, 2, 2, 4, 2, 0, 0, 0,
-9, 5, 7, 3, 5, 3, 3, 4, 2, 2, 2, 6, 2, 2, 0, 0,
-8, 3, 5, 3, 3, 1, 1, 4, 4, 4, 2, 4, 2, 0, 0, 0,
-8, 5, 3, 3, 5, 3, 3, 4, 2, 2, 2, 4, 0, 0, 0, 0,
-9, 5, 5, 5, 5, 3, 3, 6, 4, 4, 4, 2, 0, 0, 0, 0,
-9, 5, 5, 5, 3, 5, 5, 4, 4, 4, 2, 2, 2, 0, 0, 0,
-9, 5, 5, 3, 3, 3, 3, 6, 4, 2, 2, 2, 2, 0, 0, 0,
-8, 3, 3, 5, 3, 3, 1, 4, 4, 2, 2, 2, 0, 0, 0, 0,
-9, 3, 5, 3, 3, 3, 1, 6, 4, 4, 2, 4, 2, 2, 0, 0,
-9, 5, 5, 5, 5, 3, 3, 4, 2, 2, 2, 4, 0, 2, 0, 0,
-9, 3, 5, 3, 5, 5, 1, 4, 4, 2, 4, 4, 0, 0, 0, 0,
-9, 3, 5, 3, 3, 3, 3, 4, 2, 2, 2, 4, 2, 0, 0, 0,
-9, 3, 5, 3, 3, 3, 3, 2, 2, 2, 2, 4, 0, 0, 0, 0,
-9, 5, 5, 5, 5, 3, 3, 4, 4, 4, 4, 4, 0, 0, 0, 0,
-9, 5, 5, 5, 3, 5, 3, 4, 4, 4, 4, 2, 0, 0, 0, 0,
-9, 5, 5, 5, 3, 5, 5, 4, 4, 4, 6, 2, 2, 4, 0, 0,
-9, 3, 3, 3, 3, 3, 3, 4, 2, 2, 2, 2, 2, 2, 0, 0,
-8, 5, 5, 5, 3, 1, 3, 4, 2, 2, 2, 2, 2, 2, 0, 0,
-9, 5, 3, 3, 3, 3, 1, 2, 4, 2, 2, 2, 2, 0, 0, 0,
-9, 3, 3, 3, 5, 3, 3, 4, 2, 2, 2, 2, 2, 2, 0, 0,
-9, 7, 7, 5, 5, 5, 5, 6, 4, 4, 4, 2, 2, 0, 0, 0,
-9, 5, 5, 5, 5, 3, 3, 4, 6, 4, 2, 2, 2, 2, 0, 0,
-9, 7, 7, 5, 5, 5, 5, 4, 2, 4, 4, 2, 2, 0, 0, 0,
-9, 5, 7, 5, 5, 3, 5, 4, 4, 6, 2, 4, 2, 2, 0, 0,
-9, 5, 5, 7, 5, 5, 5, 4, 4, 4, 4, 2, 4, 2, 0, 0,
-9, 7, 3, 5, 3, 5, 3, 2, 4, 4, 4, 4, 2, 0, 0, 0,
-8, 5, 3, 5, 3, 3, 7, 2, 2, 4, 4, 2, 2, 2, 0, 0,
-9, 5, 7, 3, 7, 7, 5, 6, 6, 6, 2, 4, 2, 0, 0, 0,
-8, 5, 5, 7, 5, 5, 3, 4, 4, 4, 4, 4, 2, 0, 0, 0,
-9, 5, 5, 7, 7, 5, 5, 4, 4, 6, 4, 4, 2, 2, 0, 0,
-9, 5, 5, 3, 5, 3, 5, 4, 2, 2, 4, 2, 2, 0, 0, 0,
-9, 5, 5, 3, 3, 3, 3, 2, 4, 2, 2, 2, 2, 0, 0, 0,
-8, 7, 7, 5, 5, 5, 3, 6, 4, 4, 6, 2, 2, 0, 0, 0,
-9, 5, 5, 5, 5, 3, 5, 4, 4, 4, 4, 4, 2, 0, 0, 0,
-9, 3, 7, 5, 5, 3, 5, 6, 4, 4, 6, 2, 2, 0, 0, 0,
-9, 3, 3, 1, 5, 5, 1, 4, 4, 4, 4, 2, 2, 0, 0, 0,
-8, 5, 5, 3, 3, 5, 3, 2, 4, 2, 2, 2, 4, 0, 0, 0,
-9, 5, 5, 3, 5, 5, 3, 6, 6, 6, 4, 2, 2, 2, 0, 0,
-9, 5, 5, 5, 5, 5, 3, 4, 6, 4, 4, 2, 2, 2, 0, 0,
-9, 5, 5, 5, 5, 5, 3, 6, 6, 6, 6, 2, 2, 0, 0, 0,
-9, 3, 3, 3, 3, 3, 3, 2, 4, 4, 4, 2, 2, 0, 0, 0,
-9, 3, 5, 3, 5, 3, 3, 2, 4, 4, 2, 2, 2, 0, 0, 0,
-9, 3, 5, 3, 3, 3, 5, 4, 2, 4, 4, 2, 0, 0, 0, 0,
-9, 5, 3, 3, 3, 3, 5, 6, 4, 6, 2, 2, 2, 0, 0, 0,
-9, 5, 5, 3, 3, 3, 3, 2, 4, 2, 4, 2, 2, 0, 0, 0,
-9, 7, 5, 5, 3, 5, 5, 6, 6, 4, 2, 2, 2, 0, 0, 0,
-9, 7, 7, 5, 7, 3, 3, 6, 4, 4, 6, 2, 2, 2, 0, 0,
-9, 5, 5, 5, 5, 5, 7, 6, 6, 4, 4, 2, 2, 0, 0, 0,
-9, 5, 5, 7, 7, 3, 5, 2, 4, 2, 4, 4, 4, 2, 0, 0,
-9, 3, 5, 3, 3, 3, 1, 6, 4, 4, 4, 2, 2, 0, 0, 0,
-9, 5, 3, 3, 5, 3, 3, 4, 4, 4, 4, 2, 2, 0, 0, 0,
-9, 5, 3, 3, 5, 3, 5, 4, 4, 4, 4, 2, 2, 0, 0, 0,
-9, 5, 3, 3, 3, 3, 3, 2, 4, 4, 2, 2, 0, 0, 0, 0,
-9, 5, 5, 3, 3, 5, 3, 2, 4, 4, 4, 2, 2, 0, 0, 0,
-9, 5, 3, 5, 5, 3, 3, 4, 6, 2, 2, 2, 2, 0, 0, 0,
-9, 7, 3, 5, 3, 3, 5, 2, 2, 2, 2, 2, 2, 0, 0, 0,
-9, 5, 5, 5, 5, 5, 7, 4, 4, 4, 4, 2, 2, 0, 0, 0,
-9, 7, 5, 5, 5, 5, 3, 4, 2, 6, 4, 2, 0, 0, 0, 0,
-9, 5, 5, 5, 5, 5, 5, 4, 4, 4, 4, 2, 2, 2, 0, 0,
-9, 7, 5, 5, 5, 5, 5, 4, 4, 4, 4, 4, 4, 2, 0, 0,
-9, 5, 3, 3, 3, 5, 5, 2, 2, 6, 2, 2, 2, 0, 0, 0,
-9, 5, 5, 3, 3, 5, 5, 6, 2, 6, 4, 2, 0, 0, 0, 0,
-8, 5, 3, 3, 3, 5, 5, 4, 4, 2, 2, 2, 2, 0, 0, 0,
-8, 5, 3, 3, 5, 7, 5, 4, 2, 4, 2, 2, 2, 0, 0, 0,
-8, 5, 3, 1, 3, 3, 5, 2, 2, 2, 2, 2, 2, 0, 0, 0,
-8, 5, 5, 5, 5, 5, 5, 6, 6, 4, 4, 2, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 5, 3, 4, 4, 4, 4, 4, 2, 2, 0, 0,
-9, 7, 5, 7, 7, 7, 7, 6, 6, 6, 4, 4, 2, 0, 0, 0,
-8, 5, 5, 5, 5, 5, 5, 6, 6, 2, 6, 2, 2, 0, 0, 0,
-9, 3, 5, 3, 1, 5, 3, 2, 2, 2, 2, 2, 2, 2, 0, 0,
-9, 5, 5, 3, 3, 3, 5, 4, 2, 4, 2, 4, 2, 0, 0, 0,
-9, 3, 5, 3, 3, 3, 3, 2, 4, 2, 4, 2, 2, 0, 0, 0,
-9, 3, 5, 3, 5, 3, 5, 6, 4, 4, 2, 2, 2, 2, 0, 0,
-9, 5, 7, 3, 3, 3, 1, 4, 2, 2, 2, 2, 2, 2, 0, 0,
-9, 5, 5, 5, 3, 5, 3, 4, 2, 4, 4, 2, 2, 0, 0, 0,
-8, 7, 5, 5, 7, 5, 5, 4, 6, 4, 4, 4, 2, 0, 0, 0,
-9, 5, 5, 5, 1, 3, 1, 2, 4, 6, 2, 2, 2, 0, 0, 0,
-9, 5, 5, 5, 1, 3, 3, 2, 4, 4, 2, 2, 2, 0, 0, 0,
-9, 5, 3, 3, 3, 3, 3, 2, 4, 4, 2, 2, 2, 0, 0, 0,
-8, 5, 5, 3, 5, 3, 3, 4, 2, 4, 4, 2, 2, 2, 0, 0,
-9, 7, 5, 3, 5, 5, 3, 6, 6, 4, 4, 2, 2, 0, 0, 0,
-9, 7, 5, 5, 5, 7, 5, 4, 4, 4, 4, 2, 0, 2, 0, 0,
-9, 7, 3, 1, 5, 5, 3, 4, 4, 2, 2, 2, 2, 0, 0, 0,
-8, 7, 7, 1, 3, 3, 1, 4, 2, 4, 2, 2, 2, 0, 0, 0,
-9, 5, 3, 3, 3, 3, 3, 4, 2, 2, 2, 2, 2, 2, 0, 0,
-9, 5, 3, 3, 3, 3, 1, 4, 4, 4, 2, 2, 2, 2, 0, 0,
-8, 5, 3, 3, 1, 3, 1, 2, 6, 4, 4, 2, 2, 0, 0, 0,
-9, 5, 5, 3, 1, 3, 3, 2, 2, 2, 4, 2, 2, 2, 0, 0,
-9, 5, 5, 5, 5, 5, 5, 4, 4, 4, 2, 4, 2, 2, 0, 0,
-9, 7, 7, 5, 5, 5, 3, 6, 4, 6, 6, 2, 2, 0, 0, 0,
-9, 7, 3, 3, 5, 5, 5, 2, 4, 6, 2, 2, 0, 0, 0, 0,
-9, 5, 7, 5, 7, 7, 5, 4, 2, 4, 4, 2, 2, 2, 0, 0,
-8, 5, 7, 5, 3, 5, 5, 4, 6, 6, 4, 2, 2, 2, 0, 0,
-8, 7, 5, 5, 5, 7, 1, 4, 2, 4, 2, 2, 0, 0, 0, 0,
-9, 5, 7, 3, 5, 3, 3, 4, 4, 4, 4, 2, 2, 0, 0, 0,
-9, 5, 5, 3, 3, 5, 3, 4, 2, 4, 2, 2, 2, 0, 0, 0,
-9, 7, 7, 5, 5, 5, 3, 4, 4, 4, 4, 4, 4, 2, 0, 0,
-8, 5, 5, 5, 5, 7, 3, 4, 4, 4, 6, 2, 2, 2, 0, 0,
-8, 5, 5, 3, 1, 5, 3, 4, 4, 4, 2, 2, 2, 0, 0, 0,
-8, 5, 5, 1, 5, 5, 3, 4, 2, 4, 2, 2, 0, 0, 0, 0,
-8, 5, 3, 3, 5, 5, 1, 4, 4, 4, 2, 2, 0, 0, 0, 0,
-8, 5, 5, 3, 5, 5, 1, 6, 4, 4, 2, 2, 0, 0, 0, 0,
-9, 7, 7, 3, 5, 5, 3, 4, 2, 4, 4, 2, 2, 2, 0, 0,
-8, 7, 5, 7, 7, 5, 3, 6, 2, 4, 6, 2, 2, 0, 0, 0,
-8, 5, 5, 3, 3, 5, 1, 4, 4, 4, 2, 2, 0, 0, 0, 0,
-8, 5, 5, 7, 5, 5, 5, 6, 4, 2, 4, 2, 2, 0, 0, 0,
-9, 5, 7, 5, 3, 5, 5, 4, 4, 4, 4, 2, 2, 0, 0, 0,
-8, 5, 5, 5, 5, 5, 5, 4, 4, 2, 4, 2, 2, 0, 0, 0,
-8, 5, 5, 5, 5, 7, 7, 4, 6, 6, 6, 2, 2, 0, 0, 0,
-8, 5, 7, 3, 5, 5, 3, 4, 2, 4, 2, 0, 0, 0, 0, 0,
-8, 3, 7, 3, 5, 7, 1, 4, 2, 4, 2, 0, 0, 0, 0, 0,
-8, 5, 5, 3, 7, 7, 3, 4, 2, 4, 2, 2, 0, 0, 0, 0,
-8, 5, 5, 3, 3, 7, 1, 4, 4, 2, 2, 2, 0, 0, 0, 0,
-8, 5, 5, 5, 5, 7, 3, 6, 4, 2, 2, 0, 0, 0, 0, 0,
-8, 5, 7, 5, 5, 5, 5, 6, 4, 4, 4, 4, 2, 2, 0, 0,
-8, 5, 5, 5, 5, 5, 3, 2, 2, 2, 2, 2, 2, 0, 0, 0,
-8, 5, 5, 5, 7, 5, 5, 4, 2, 4, 6, 2, 0, 0, 0, 0,
-8, 5, 5, 5, 5, 5, 5, 2, 6, 6, 4, 4, 2, 2, 0, 0,
-8, 5, 7, 7, 5, 3, 5, 4, 6, 4, 4, 4, 2, 2, 0, 0,
-9, 5, 5, 3, 5, 3, 3, 4, 4, 4, 4, 2, 0, 0, 0, 0,
-8, 5, 5, 3, 5, 5, 1, 4, 6, 2, 2, 2, 2, 0, 0, 0,
-8, 5, 7, 3, 5, 3, 3, 2, 6, 4, 4, 2, 0, 0, 0, 0,
-9, 7, 5, 3, 5, 5, 3, 6, 6, 6, 4, 4, 4, 2, 0, 0,
-9, 7, 7, 7, 5, 5, 5, 4, 4, 4, 4, 2, 2, 2, 0, 0,
-8, 5, 5, 3, 3, 3, 3, 4, 6, 4, 2, 2, 2, 2, 0, 0,
-8, 5, 7, 5, 5, 3, 3, 4, 4, 4, 4, 2, 2, 0, 0, 0,
-8, 5, 7, 3, 3, 3, 3, 4, 2, 4, 4, 2, 0, 0, 0, 0,
-8, 3, 5, 3, 3, 3, 3, 4, 4, 2, 4, 2, 2, 0, 0, 0,
-8, 5, 7, 3, 3, 5, 5, 4, 2, 4, 4, 4, 0, 0, 0, 0,
-8, 5, 5, 5, 5, 5, 5, 4, 4, 2, 4, 4, 2, 2, 0, 0,
-8, 7, 5, 3, 5, 5, 5, 4, 4, 2, 4, 4, 2, 2, 0, 0,
-9, 5, 5, 5, 3, 3, 3, 4, 4, 4, 2, 2, 2, 0, 0, 0,
-8, 5, 5, 5, 3, 5, 3, 4, 4, 6, 4, 2, 0, 0, 0, 0,
-9, 5, 5, 3, 1, 5, 3, 4, 4, 6, 2, 2, 2, 0, 0, 0,
-8, 3, 3, 5, 3, 3, 3, 4, 4, 4, 4, 2, 0, 0, 0, 0,
-9, 3, 5, 3, 3, 5, 3, 4, 2, 4, 4, 2, 2, 0, 0, 0,
-8, 3, 3, 5, 3, 5, 3, 4, 6, 4, 4, 2, 0, 0, 0, 0,
-9, 3, 3, 5, 3, 3, 1, 4, 4, 4, 2, 2, 2, 0, 0, 0,
-9, 7, 7, 5, 5, 7, 5, 6, 4, 4, 4, 2, 0, 0, 0, 0,
-8, 5, 5, 7, 5, 5, 3, 6, 4, 2, 4, 4, 4, 2, 0, 0,
-9, 7, 3, 3, 3, 3, 3, 4, 2, 6, 4, 2, 2, 0, 0, 0,
-8, 5, 5, 5, 5, 3, 5, 2, 2, 4, 4, 2, 2, 2, 0, 0,
-9, 5, 5, 3, 5, 3, 5, 4, 2, 4, 2, 2, 2, 0, 0, 0,
-8, 5, 3, 3, 3, 5, 3, 2, 4, 6, 2, 2, 2, 0, 0, 0,
-9, 5, 3, 3, 3, 3, 3, 4, 4, 2, 2, 2, 2, 0, 0, 0,
-8, 5, 3, 3, 3, 3, 3, 2, 2, 4, 4, 2, 2, 0, 0, 0,
-8, 7, 5, 3, 5, 5, 5, 4, 4, 4, 4, 2, 4, 2, 0, 0,
-9, 5, 5, 3, 5, 5, 3, 4, 4, 6, 4, 2, 2, 0, 0, 0,
-8, 5, 5, 5, 3, 3, 5, 4, 6, 4, 4, 2, 2, 0, 0, 0,
-9, 5, 7, 7, 7, 5, 5, 4, 4, 6, 2, 4, 2, 0, 0, 0,
-8, 5, 5, 5, 5, 1, 5, 2, 4, 2, 2, 2, 2, 0, 0, 0,
-9, 3, 5, 5, 5, 1, 5, 2, 6, 4, 2, 2, 0, 0, 0, 0,
-8, 5, 5, 3, 3, 3, 5, 2, 6, 4, 2, 2, 2, 0, 0, 0,
-8, 3, 5, 7, 5, 1, 3, 2, 6, 2, 4, 2, 2, 0, 0, 0,
-9, 5, 5, 3, 3, 1, 3, 2, 4, 6, 2, 2, 0, 0, 0, 0,
-8, 3, 5, 7, 5, 3, 5, 2, 4, 2, 2, 2, 0, 0, 0, 0,
-8, 3, 5, 3, 5, 1, 3, 2, 2, 2, 2, 2, 2, 0, 0, 0,
-8, 5, 7, 7, 5, 5, 5, 4, 4, 2, 2, 6, 2, 0, 0, 0,
-9, 5, 5, 7, 7, 5, 5, 4, 6, 4, 2, 4, 2, 0, 0, 0,
-8, 3, 7, 3, 5, 1, 5, 4, 2, 2, 4, 2, 2, 0, 0, 0,
-8, 3, 3, 7, 5, 1, 3, 4, 4, 4, 4, 2, 0, 0, 0, 0,
-8, 5, 7, 3, 3, 3, 1, 4, 4, 2, 6, 2, 2, 0, 0, 0,
-8, 3, 3, 7, 3, 3, 3, 4, 4, 4, 2, 2, 0, 0, 0, 0,
-8, 5, 7, 5, 5, 3, 3, 6, 2, 2, 4, 2, 2, 0, 0, 0,
-8, 3, 3, 5, 3, 1, 7, 2, 4, 6, 2, 4, 0, 0, 0, 0,
-9, 7, 7, 7, 5, 5, 5, 4, 6, 4, 6, 2, 2, 0, 0, 0,
-9, 7, 7, 5, 5, 5, 5, 6, 6, 4, 6, 4, 2, 2, 0, 0,
-8, 5, 7, 7, 5, 5, 7, 6, 2, 4, 2, 4, 2, 0, 0, 0,
-8, 5, 5, 3, 3, 1, 3, 4, 4, 2, 4, 2, 0, 0, 0, 0,
-8, 3, 5, 3, 3, 3, 3, 2, 4, 2, 4, 2, 0, 0, 0, 0,
-9, 3, 3, 3, 5, 5, 5, 4, 4, 4, 2, 4, 2, 0, 0, 0,
-8, 5, 7, 5, 5, 3, 5, 4, 4, 4, 4, 4, 2, 0, 0, 0,
-9, 5, 5, 7, 5, 5, 3, 4, 6, 4, 6, 6, 2, 2, 0, 0,
-8, 3, 5, 3, 3, 5, 3, 4, 4, 4, 2, 2, 0, 0, 0, 0,
-8, 3, 5, 7, 3, 3, 3, 6, 4, 4, 4, 2, 0, 0, 0, 0,
-9, 5, 3, 5, 3, 5, 5, 4, 2, 2, 4, 2, 0, 0, 0, 0,
-8, 7, 7, 5, 5, 5, 3, 4, 4, 4, 6, 2, 2, 0, 0, 0,
-8, 7, 5, 7, 3, 5, 3, 4, 6, 6, 6, 4, 2, 2, 0, 0,
-8, 7, 5, 3, 3, 5, 3, 4, 4, 4, 2, 4, 0, 0, 0, 0,
-9, 5, 5, 7, 3, 5, 5, 4, 4, 2, 4, 2, 2, 0, 0, 0,
-9, 7, 5, 3, 5, 3, 3, 4, 2, 4, 4, 4, 2, 0, 0, 0,
-9, 5, 5, 7, 7, 5, 5, 6, 2, 4, 4, 4, 2, 0, 0, 0,
-9, 5, 7, 7, 5, 5, 5, 4, 6, 6, 4, 2, 4, 0, 0, 0,
-9, 3, 3, 3, 5, 1, 3, 6, 4, 4, 2, 2, 2, 2, 0, 0,
-9, 5, 3, 3, 3, 3, 3, 4, 2, 2, 2, 2, 2, 2, 0, 0,
-9, 5, 3, 3, 3, 3, 1, 4, 4, 4, 2, 2, 2, 2, 0, 0,
-9, 5, 5, 3, 3, 3, 3, 2, 4, 2, 4, 2, 0, 2, 0, 0,
-9, 5, 3, 5, 3, 3, 5, 6, 4, 2, 2, 4, 4, 2, 0, 0,
-9, 7, 5, 5, 5, 5, 5, 6, 4, 2, 4, 2, 4, 2, 2, 0,
-8, 5, 7, 5, 7, 5, 3, 4, 4, 4, 2, 2, 2, 0, 0, 0,
-9, 3, 7, 3, 5, 5, 3, 4, 2, 4, 4, 2, 0, 0, 0, 0,
-8, 5, 5, 3, 3, 5, 1, 4, 4, 4, 2, 2, 2, 0, 0, 0,
-9, 3, 7, 5, 3, 5, 3, 4, 2, 2, 2, 2, 2, 0, 0, 0,
-8, 5, 7, 7, 7, 7, 5, 6, 2, 6, 4, 4, 2, 0, 0, 0,
-8, 5, 5, 5, 5, 3, 5, 4, 4, 4, 4, 4, 4, 2, 0, 0,
-8, 5, 5, 5, 3, 3, 3, 2, 6, 2, 4, 4, 2, 0, 0, 0,
-8, 3, 5, 5, 1, 3, 3, 4, 6, 4, 4, 2, 0, 0, 0, 0,
-8, 7, 3, 3, 1, 3, 3, 4, 4, 4, 4, 2, 2, 0, 0, 0,
-9, 5, 5, 3, 5, 3, 3, 4, 6, 4, 4, 2, 0, 0, 0, 0,
-9, 3, 5, 7, 5, 7, 5, 4, 4, 2, 4, 2, 2, 0, 0, 0,
-8, 5, 5, 5, 3, 5, 3, 4, 4, 4, 2, 2, 2, 0, 0, 0,
-8, 7, 3, 5, 3, 3, 3, 2, 4, 2, 4, 2, 2, 0, 0, 0,
-9, 5, 5, 5, 5, 5, 5, 4, 4, 2, 2, 2, 2, 2, 0, 0,
-8, 5, 7, 5, 3, 5, 5, 4, 6, 4, 6, 6, 6, 4, 0, 0,
-8, 5, 5, 5, 3, 3, 3, 4, 6, 2, 2, 2, 0, 0, 0, 0,
-8, 3, 7, 5, 1, 5, 5, 2, 6, 2, 2, 2, 0, 0, 0, 0,
-8, 5, 3, 3, 3, 5, 5, 2, 4, 2, 2, 2, 2, 0, 0, 0,
-9, 7, 5, 5, 5, 5, 5, 2, 7, 2, 0, 2, 0, 0, 0, 0,
-8, 7, 5, 5, 5, 5, 5, 2, 6, 4, 2, 2, 0, 0, 0, 0,
-9, 7, 5, 3, 3, 5, 5, 2, 7, 2, 2, 2, 0, 0, 0, 0,
-9, 7, 5, 5, 5, 5, 5, 4, 4, 2, 4, 4, 2, 0, 0, 0,
-8, 7, 5, 7, 5, 5, 5, 4, 4, 2, 6, 4, 2, 2, 0, 0,
-9, 7, 5, 5, 3, 5, 3, 4, 6, 2, 4, 4, 2, 2, 0, 0,
-8, 5, 5, 5, 3, 3, 5, 2, 2, 2, 4, 2, 2, 0, 0, 0,
-8, 7, 5, 5, 1, 3, 3, 4, 2, 2, 6, 2, 0, 0, 0, 0,
-8, 5, 5, 3, 3, 5, 5, 4, 4, 2, 4, 4, 2, 2, 0, 0,
-9, 7, 5, 5, 3, 3, 5, 2, 4, 2, 2, 6, 0, 0, 0, 0,
-9, 7, 5, 5, 5, 5, 5, 4, 4, 2, 4, 2, 0, 0, 0, 0,
-9, 7, 3, 3, 5, 5, 5, 2, 4, 2, 2, 2, 2, 2, 0, 0,
-8, 7, 5, 5, 5, 5, 5, 2, 4, 4, 4, 4, 0, 2, 0, 0,
-8, 5, 5, 5, 5, 5, 7, 4, 6, 7, 4, 2, 2, 2, 0, 0,
-8, 7, 3, 3, 3, 3, 7, 6, 4, 4, 2, 2, 0, 0, 0, 0,
-8, 5, 7, 3, 7, 3, 5, 6, 4, 2, 2, 2, 0, 0, 0, 0,
-8, 7, 5, 7, 3, 5, 5, 2, 4, 6, 4, 2, 2, 0, 0, 0,
-8, 7, 5, 3, 3, 5, 3, 6, 4, 4, 4, 4, 2, 2, 0, 0,
-8, 5, 3, 3, 3, 3, 3, 4, 2, 2, 4, 4, 0, 0, 0, 0,
-8, 5, 5, 5, 3, 3, 5, 4, 4, 2, 4, 2, 2, 0, 0, 0,
-9, 5, 7, 5, 1, 3, 5, 2, 6, 2, 4, 2, 2, 0, 0, 0,
-8, 5, 3, 5, 3, 5, 5, 6, 2, 4, 4, 2, 0, 0, 0, 0,
-8, 5, 5, 5, 5, 5, 3, 2, 4, 2, 4, 2, 0, 0, 0, 0,
-9, 7, 5, 7, 3, 5, 5, 4, 4, 4, 2, 4, 2, 2, 0, 0,
-8, 5, 5, 3, 5, 5, 5, 6, 4, 4, 4, 4, 2, 2, 0, 0,
-8, 7, 5, 3, 7, 7, 3, 4, 2, 4, 2, 2, 2, 2, 0, 0,
-8, 5, 3, 5, 3, 5, 3, 2, 4, 6, 2, 2, 2, 0, 0, 0,
-8, 7, 5, 3, 3, 5, 3, 4, 2, 4, 2, 2, 2, 0, 0, 0,
-9, 5, 7, 5, 5, 3, 5, 4, 4, 4, 4, 2, 2, 2, 0, 0,
-8, 7, 5, 5, 5, 5, 5, 4, 4, 4, 4, 4, 2, 2, 0, 0,
-8, 5, 5, 3, 3, 3, 3, 4, 6, 4, 2, 2, 0, 0, 0, 0,
-8, 3, 3, 3, 3, 5, 3, 2, 4, 2, 4, 2, 0, 0, 0, 0,
-8, 5, 5, 3, 3, 5, 3, 4, 4, 2, 2, 2, 0, 0, 0, 0,
-8, 3, 5, 7, 3, 7, 3, 4, 6, 4, 2, 2, 0, 0, 0, 0,
-8, 5, 3, 5, 5, 5, 1, 4, 6, 2, 2, 0, 2, 0, 0, 0,
-8, 3, 7, 3, 3, 3, 3, 2, 4, 2, 2, 2, 2, 0, 0, 0,
-8, 5, 5, 5, 5, 3, 5, 2, 4, 4, 2, 2, 2, 2, 0, 0,
-8, 5, 7, 5, 7, 5, 5, 4, 2, 4, 4, 2, 2, 0, 0, 0,
-8, 5, 5, 5, 5, 5, 1, 2, 4, 2, 2, 2, 2, 0, 0, 0,
-9, 5, 7, 7, 5, 5, 5, 4, 4, 4, 4, 2, 2, 2, 0, 0,
-8, 7, 5, 5, 3, 5, 3, 6, 4, 6, 6, 2, 2, 0, 0, 0,
-9, 7, 7, 3, 5, 7, 3, 4, 6, 6, 4, 2, 2, 0, 0, 0,
-8, 3, 5, 3, 3, 3, 3, 4, 4, 4, 2, 2, 0, 0, 0, 0,
-8, 7, 7, 5, 5, 3, 3, 4, 2, 4, 2, 2, 0, 0, 0, 0,
-8, 5, 5, 5, 5, 1, 3, 2, 2, 2, 2, 2, 0, 0, 0, 0,
-8, 3, 7, 5, 3, 3, 3, 4, 2, 2, 2, 2, 2, 0, 0, 0,
-8, 5, 3, 5, 5, 3, 3, 2, 4, 2, 2, 2, 0, 0, 0, 0,
-9, 5, 7, 7, 5, 5, 3, 4, 6, 4, 4, 2, 0, 0, 0, 0,
-8, 5, 5, 7, 7, 5, 7, 4, 4, 6, 4, 4, 2, 0, 0, 0,
-8, 7, 5, 5, 5, 5, 5, 4, 4, 4, 4, 4, 2, 0, 0, 0,
-8, 7, 7, 3, 5, 7, 3, 4, 4, 6, 4, 2, 2, 0, 0, 0,
-8, 3, 5, 5, 5, 5, 3, 4, 4, 4, 4, 4, 0, 0, 0, 0,
-7, 5, 3, 3, 3, 3, 3, 2, 4, 4, 4, 2, 0, 0, 0, 0,
-9, 7, 5, 5, 7, 5, 3, 4, 4, 4, 2, 4, 2, 2, 0, 0,
-8, 7, 7, 5, 5, 5, 5, 4, 4, 4, 4, 2, 0, 0, 0, 0,
-8, 5, 7, 3, 3, 5, 3, 2, 4, 4, 2, 2, 2, 0, 0, 0,
-8, 7, 5, 5, 1, 3, 3, 2, 6, 4, 4, 2, 2, 0, 0, 0,
-8, 7, 7, 3, 3, 5, 3, 4, 4, 6, 2, 2, 2, 0, 0, 0,
-8, 5, 7, 5, 3, 5, 3, 2, 4, 4, 4, 2, 2, 0, 0, 0,
-9, 7, 7, 5, 3, 7, 3, 4, 4, 2, 4, 2, 2, 0, 0, 0,
-8, 7, 7, 7, 5, 5, 5, 6, 6, 4, 2, 4, 2, 2, 0, 0,
-8, 5, 7, 7, 3, 5, 5, 4, 4, 4, 4, 2, 2, 0, 0, 0,
-8, 7, 7, 7, 5, 5, 5, 6, 4, 6, 2, 2, 2, 2, 0, 0,
-8, 7, 7, 5, 5, 5, 5, 4, 6, 4, 4, 2, 2, 0, 0, 0,
-8, 5, 5, 3, 3, 3, 5, 4, 4, 6, 2, 2, 2, 2, 0, 0,
-9, 5, 7, 5, 5, 3, 7, 4, 2, 4, 4, 2, 2, 2, 0, 0,
-9, 7, 5, 3, 5, 7, 5, 4, 6, 4, 6, 4, 2, 2, 0, 0,
-9, 7, 7, 3, 5, 5, 5, 4, 6, 4, 6, 4, 2, 2, 0, 0,
-9, 5, 7, 5, 7, 5, 5, 4, 4, 4, 4, 4, 2, 2, 0, 0,
-9, 5, 5, 7, 5, 5, 5, 4, 6, 4, 6, 6, 2, 2, 0, 0,
-9, 5, 3, 3, 3, 3, 3, 4, 4, 4, 4, 2, 2, 2, 0, 0,
-9, 5, 5, 3, 3, 3, 5, 4, 4, 2, 2, 2, 2, 0, 0, 0,
-9, 5, 5, 5, 5, 5, 5, 4, 6, 2, 6, 2, 2, 2, 0, 0,
-9, 5, 5, 7, 5, 5, 5, 6, 4, 6, 4, 4, 4, 0, 0, 0,
-9, 5, 3, 5, 3, 3, 3, 4, 4, 2, 6, 4, 2, 0, 0, 0,
-9, 5, 3, 5, 3, 3, 3, 4, 4, 2, 4, 2, 2, 0, 0, 0,
-8, 5, 5, 3, 3, 3, 3, 2, 2, 4, 4, 2, 2, 0, 0, 0,
-9, 5, 7, 5, 5, 3, 5, 6, 6, 2, 4, 2, 0, 0, 0, 0,
-9, 5, 7, 3, 5, 5, 3, 4, 4, 4, 4, 2, 2, 0, 0, 0,
-9, 5, 5, 5, 7, 7, 3, 6, 4, 4, 2, 4, 4, 0, 0, 0,
-9, 5, 5, 5, 5, 5, 5, 4, 4, 4, 2, 6, 2, 0, 0, 0,
-9, 7, 5, 5, 5, 7, 5, 6, 2, 6, 4, 2, 2, 0, 0, 0,
-8, 5, 3, 3, 3, 7, 3, 4, 2, 4, 4, 2, 0, 0, 0, 0,
-9, 7, 5, 7, 5, 5, 5, 4, 4, 6, 4, 2, 0, 0, 0, 0,
-9, 7, 5, 3, 5, 7, 3, 6, 4, 4, 6, 2, 2, 0, 0, 0,
-9, 5, 3, 3, 3, 5, 1, 4, 4, 4, 4, 2, 2, 0, 0, 0,
-9, 5, 3, 1, 5, 3, 3, 4, 4, 4, 4, 2, 4, 0, 0, 0,
-9, 7, 3, 3, 3, 5, 3, 2, 2, 4, 2, 2, 2, 0, 0, 0,
-9, 5, 3, 3, 5, 7, 3, 4, 4, 4, 2, 2, 0, 0, 0, 0,
-8, 3, 3, 3, 1, 3, 3, 2, 2, 2, 4, 2, 0, 0, 0, 0,
-9, 7, 3, 3, 5, 5, 3, 6, 6, 4, 2, 2, 2, 0, 0, 0,
-9, 7, 5, 5, 5, 5, 3, 4, 4, 4, 4, 2, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 5, 3, 4, 6, 4, 6, 2, 4, 2, 0, 0,
-9, 7, 7, 5, 7, 7, 7, 4, 4, 4, 4, 6, 4, 2, 0, 0,
-9, 5, 5, 5, 5, 5, 5, 6, 6, 4, 4, 2, 4, 2, 0, 0,
-9, 5, 3, 3, 3, 5, 5, 2, 4, 2, 4, 2, 0, 0, 0, 0,
-9, 5, 5, 5, 1, 5, 3, 4, 6, 4, 4, 2, 2, 0, 0, 0,
-8, 5, 5, 3, 3, 5, 3, 2, 6, 2, 2, 2, 2, 0, 0, 0,
-9, 5, 3, 3, 3, 5, 3, 6, 6, 4, 2, 2, 2, 0, 0, 0,
-8, 5, 5, 5, 3, 5, 1, 4, 4, 2, 2, 4, 2, 0, 0, 0,
-9, 5, 3, 5, 3, 5, 3, 6, 6, 4, 2, 4, 2, 0, 0, 0,
-9, 5, 5, 3, 5, 7, 5, 7, 4, 4, 4, 2, 2, 2, 0, 0,
-8, 7, 5, 5, 5, 7, 5, 6, 6, 4, 6, 2, 2, 0, 0, 0,
-9, 7, 3, 5, 5, 5, 5, 4, 4, 4, 4, 2, 2, 2, 0, 0,
-8, 7, 5, 5, 5, 3, 3, 6, 4, 2, 2, 2, 2, 2, 0, 0,
-9, 5, 3, 3, 5, 5, 3, 4, 2, 2, 2, 2, 0, 0, 0, 0,
-8, 5, 5, 3, 5, 3, 1, 4, 2, 6, 2, 2, 0, 0, 0, 0,
-8, 5, 5, 1, 5, 3, 1, 6, 2, 4, 2, 2, 2, 0, 0, 0,
-9, 5, 5, 5, 3, 5, 1, 6, 4, 2, 2, 2, 2, 0, 0, 0,
-9, 7, 3, 5, 7, 7, 3, 4, 6, 4, 2, 4, 2, 2, 0, 0,
-9, 7, 5, 5, 5, 5, 5, 6, 4, 6, 4, 2, 2, 0, 0, 0,
-9, 3, 5, 5, 1, 3, 3, 4, 6, 2, 2, 2, 2, 2, 0, 0,
-9, 5, 5, 5, 3, 1, 3, 4, 4, 2, 2, 2, 2, 0, 0, 0,
-8, 5, 3, 3, 3, 3, 3, 2, 4, 2, 2, 2, 2, 2, 0, 0,
-9, 3, 3, 3, 3, 3, 5, 4, 4, 2, 2, 2, 0, 2, 0, 0,
-9, 7, 5, 5, 5, 3, 3, 4, 4, 4, 2, 2, 2, 0, 0, 0,
-9, 3, 5, 3, 3, 3, 5, 4, 4, 2, 4, 6, 2, 2, 0, 0,
-9, 5, 5, 3, 3, 1, 3, 4, 4, 4, 2, 2, 2, 0, 0, 0,
-8, 5, 3, 3, 3, 3, 5, 2, 4, 2, 4, 4, 0, 0, 0, 0,
-8, 5, 5, 3, 3, 5, 3, 4, 4, 2, 2, 2, 0, 0, 0, 0,
-9, 3, 3, 3, 3, 3, 3, 4, 4, 4, 2, 2, 0, 0, 0, 0,
-9, 3, 3, 3, 3, 5, 3, 2, 4, 2, 4, 2, 2, 2, 0, 0,
-9, 5, 5, 3, 5, 3, 3, 2, 4, 2, 4, 2, 2, 0, 0, 0,
-9, 5, 5, 3, 5, 5, 5, 4, 2, 2, 4, 4, 2, 0, 0, 0,
-9, 5, 3, 5, 5, 5, 5, 4, 4, 2, 6, 6, 2, 0, 0, 0,
-9, 5, 3, 3, 3, 3, 3, 4, 4, 2, 2, 4, 2, 2, 0, 0,
-9, 5, 5, 3, 5, 3, 3, 4, 4, 4, 2, 2, 2, 0, 0, 0,
-9, 5, 3, 3, 5, 3, 5, 2, 2, 6, 2, 2, 0, 2, 0, 0,
-9, 3, 5, 3, 3, 3, 3, 4, 4, 4, 2, 2, 0, 0, 0, 0,
-9, 7, 5, 5, 5, 3, 5, 4, 4, 4, 4, 2, 2, 0, 0, 0,
-9, 7, 5, 3, 5, 7, 7, 7, 4, 2, 4, 4, 0, 0, 0, 0,
-9, 5, 3, 5, 3, 5, 3, 4, 2, 6, 4, 0, 2, 0, 0, 0,
-9, 5, 3, 3, 5, 5, 3, 6, 2, 4, 6, 0, 2, 0, 0, 0,
-8, 5, 3, 1, 3, 5, 5, 6, 2, 4, 4, 2, 2, 0, 0, 0,
-9, 7, 5, 3, 3, 5, 5, 6, 2, 4, 4, 2, 2, 0, 0, 0,
-8, 5, 1, 5, 3, 3, 5, 6, 4, 6, 4, 2, 2, 0, 0, 0,
-9, 5, 5, 3, 3, 5, 5, 4, 6, 4, 4, 2, 4, 2, 0, 0,
-9, 5, 7, 7, 5, 5, 5, 4, 4, 2, 6, 4, 2, 0, 0, 0,
-9, 5, 7, 7, 5, 5, 3, 4, 6, 2, 2, 2, 2, 0, 0, 0,
-9, 7, 7, 5, 7, 5, 5, 4, 4, 4, 4, 2, 2, 0, 0, 0,
-9, 5, 5, 5, 3, 5, 5, 6, 4, 6, 4, 2, 4, 0, 2, 0,
-8, 5, 5, 5, 3, 5, 3, 6, 2, 4, 2, 0, 0, 0, 0, 0,
-8, 3, 5, 3, 3, 5, 3, 6, 4, 2, 2, 0, 0, 0, 0, 0,
-8, 5, 5, 3, 3, 1, 5, 4, 4, 4, 2, 2, 0, 0, 0, 0,
-8, 5, 7, 3, 5, 5, 3, 4, 4, 4, 2, 0, 0, 0, 0, 0,
-8, 5, 5, 3, 5, 3, 5, 6, 4, 2, 2, 2, 0, 0, 0, 0,
-8, 5, 5, 3, 7, 5, 5, 6, 4, 4, 2, 2, 0, 0, 0, 0,
-8, 5, 5, 1, 5, 1, 3, 4, 2, 4, 2, 2, 0, 0, 0, 0,
-8, 5, 7, 5, 7, 5, 5, 4, 6, 2, 6, 4, 2, 2, 0, 0,
-9, 5, 7, 5, 3, 7, 3, 6, 6, 6, 4, 4, 2, 2, 0, 0,
-9, 7, 3, 3, 5, 3, 3, 6, 2, 4, 2, 2, 0, 0, 0, 0,
-9, 7, 3, 1, 5, 5, 5, 4, 4, 4, 2, 2, 0, 0, 0, 0,
-8, 5, 5, 5, 5, 3, 3, 4, 4, 2, 2, 2, 2, 0, 0, 0,
-9, 5, 5, 3, 5, 3, 5, 4, 4, 4, 2, 2, 0, 0, 0, 0,
-9, 5, 5, 5, 3, 3, 5, 4, 2, 6, 4, 2, 2, 0, 0, 0,
-9, 7, 3, 3, 3, 3, 3, 4, 4, 4, 2, 2, 2, 0, 0, 0,
-8, 5, 5, 3, 5, 3, 3, 2, 2, 2, 2, 2, 2, 0, 0, 0,
-7, 5, 5, 5, 5, 5, 3, 4, 4, 2, 6, 4, 4, 2, 0, 0,
-8, 7, 5, 5, 5, 5, 3, 6, 6, 4, 4, 4, 2, 2, 0, 0,
-9, 7, 5, 7, 5, 5, 3, 4, 6, 4, 4, 2, 0, 0, 0, 0,
-8, 5, 5, 5, 3, 5, 5, 6, 4, 6, 2, 2, 2, 2, 0, 0,
-8, 7, 7, 5, 5, 3, 5, 2, 6, 4, 2, 4, 2, 2, 0, 0,
-8, 3, 7, 5, 5, 5, 3, 4, 4, 6, 2, 0, 0, 0, 0, 0,
-8, 5, 5, 3, 3, 5, 3, 4, 6, 4, 2, 2, 2, 0, 0, 0,
-8, 3, 3, 5, 5, 3, 3, 4, 4, 4, 4, 4, 0, 0, 0, 0,
-8, 5, 5, 5, 5, 3, 1, 4, 4, 6, 2, 2, 0, 0, 0, 0,
-8, 7, 7, 7, 5, 5, 5, 4, 6, 4, 4, 2, 2, 0, 0, 0,
-9, 5, 5, 5, 5, 5, 5, 2, 7, 6, 4, 6, 4, 2, 0, 0,
-8, 3, 7, 5, 3, 5, 3, 4, 4, 4, 2, 2, 0, 0, 0, 0,
-9, 3, 5, 3, 5, 3, 3, 4, 2, 4, 2, 2, 2, 0, 0, 0,
-9, 3, 5, 3, 3, 3, 3, 6, 6, 4, 4, 2, 0, 0, 0, 0,
-8, 7, 7, 5, 5, 3, 3, 4, 6, 4, 4, 2, 2, 2, 0, 0,
-8, 5, 5, 7, 5, 5, 7, 4, 6, 4, 4, 4, 4, 2, 0, 0,
-8, 5, 5, 5, 7, 1, 3, 2, 2, 4, 2, 4, 0, 0, 0, 0,
-8, 5, 3, 3, 5, 1, 3, 4, 2, 4, 2, 2, 0, 0, 0, 0,
-8, 7, 5, 5, 5, 5, 5, 4, 4, 2, 4, 2, 2, 2, 0, 0,
-9, 5, 3, 5, 7, 5, 5, 2, 4, 2, 4, 4, 2, 0, 0, 0,
-8, 3, 3, 3, 3, 3, 3, 2, 4, 4, 4, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 5, 5, 5, 4, 6, 6, 4, 4, 2, 0, 0, 0,
-8, 5, 5, 5, 5, 5, 5, 4, 4, 6, 2, 6, 2, 0, 0, 0,
-8, 5, 3, 7, 3, 1, 3, 4, 4, 4, 4, 2, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 5, 5, 4, 6, 4, 4, 4, 2, 0, 0, 0,
-8, 7, 7, 7, 7, 5, 3, 6, 4, 6, 6, 2, 2, 0, 0, 0,
-8, 5, 3, 5, 3, 5, 1, 6, 4, 6, 4, 2, 2, 0, 0, 0,
-9, 5, 5, 3, 3, 3, 5, 2, 4, 2, 2, 4, 2, 0, 0, 0,
-9, 5, 5, 3, 5, 5, 3, 4, 4, 4, 2, 2, 2, 0, 0, 0,
-9, 5, 5, 5, 5, 5, 5, 2, 4, 4, 4, 2, 4, 2, 0, 0,
-8, 5, 5, 5, 5, 3, 5, 4, 6, 4, 4, 4, 2, 0, 0, 0,
-9, 5, 3, 5, 3, 5, 3, 4, 4, 4, 2, 2, 2, 0, 0, 0,
-8, 3, 5, 3, 3, 3, 3, 2, 4, 4, 2, 2, 2, 0, 0, 0,
-8, 7, 3, 3, 3, 3, 3, 2, 2, 2, 4, 2, 2, 2, 0, 0,
-8, 3, 5, 7, 3, 3, 3, 4, 4, 4, 2, 4, 2, 0, 0, 0,
-8, 5, 3, 5, 3, 7, 1, 4, 6, 4, 4, 2, 2, 2, 0, 0,
-8, 3, 3, 5, 3, 3, 5, 2, 4, 2, 4, 2, 2, 0, 0, 0,
-8, 5, 3, 3, 3, 1, 1, 6, 2, 2, 4, 2, 2, 0, 0, 0,
-8, 5, 3, 5, 5, 3, 5, 4, 6, 2, 4, 2, 2, 0, 0, 0,
-9, 5, 5, 5, 3, 5, 5, 6, 4, 6, 4, 2, 2, 4, 2, 0,
-8, 5, 5, 5, 5, 5, 5, 4, 4, 6, 6, 2, 2, 0, 0, 0,
-9, 5, 7, 5, 5, 7, 5, 6, 4, 6, 6, 2, 2, 0, 0, 0,
-8, 7, 5, 5, 3, 5, 3, 4, 4, 4, 4, 4, 2, 0, 0, 0,
-9, 3, 3, 3, 3, 3, 5, 4, 4, 4, 2, 2, 2, 0, 0, 0,
-9, 7, 7, 5, 5, 7, 5, 6, 4, 4, 6, 2, 0, 0, 0, 0,
-9, 5, 7, 3, 5, 5, 3, 4, 6, 4, 4, 2, 2, 0, 0, 0,
-9, 5, 5, 5, 5, 3, 5, 4, 4, 4, 6, 4, 2, 2, 0, 0,
-9, 5, 5, 5, 5, 3, 5, 6, 4, 6, 2, 2, 4, 0, 0, 0,
-9, 5, 5, 7, 5, 3, 3, 4, 4, 4, 4, 2, 2, 0, 0, 0,
-9, 3, 3, 3, 1, 5, 5, 4, 2, 4, 2, 2, 2, 0, 0, 0,
-9, 7, 3, 5, 3, 5, 3, 6, 4, 4, 4, 2, 0, 0, 0, 0,
-9, 5, 7, 5, 5, 5, 5, 4, 4, 2, 6, 4, 0, 0, 0, 0,
-9, 7, 5, 5, 5, 5, 5, 4, 6, 6, 4, 4, 2, 0, 0, 0,
-8, 5, 5, 5, 5, 5, 5, 6, 6, 6, 4, 4, 0, 0, 0, 0,
-8, 7, 5, 3, 5, 5, 3, 6, 6, 4, 4, 4, 2, 0, 0, 0,
-9, 3, 5, 3, 3, 5, 3, 2, 2, 4, 4, 2, 2, 0, 0, 0,
-9, 5, 3, 3, 3, 3, 3, 2, 4, 4, 4, 2, 0, 0, 0, 0,
-8, 5, 3, 5, 3, 1, 3, 2, 4, 2, 2, 2, 0, 0, 0, 0,
-9, 7, 7, 7, 7, 5, 3, 6, 6, 2, 6, 2, 0, 0, 0, 0,
-9, 5, 5, 7, 5, 5, 5, 4, 4, 4, 4, 2, 2, 0, 0, 0,
-9, 7, 5, 5, 5, 5, 3, 6, 6, 4, 6, 4, 2, 0, 0, 0,
-9, 5, 5, 5, 5, 3, 5, 6, 2, 4, 4, 4, 2, 2, 0, 0,
-9, 5, 3, 1, 3, 3, 3, 4, 4, 4, 6, 2, 2, 0, 0, 0,
-9, 5, 3, 3, 5, 1, 5, 2, 4, 4, 2, 2, 2, 2, 0, 0,
-8, 7, 5, 3, 3, 1, 5, 2, 4, 2, 4, 2, 0, 0, 0, 0,
-9, 5, 3, 5, 3, 3, 3, 4, 2, 2, 2, 2, 2, 0, 0, 0,
-9, 7, 7, 5, 5, 5, 5, 4, 4, 4, 4, 2, 4, 2, 0, 0,
-9, 5, 5, 5, 5, 5, 3, 4, 4, 6, 4, 2, 2, 2, 0, 0,
-9, 5, 7, 3, 5, 5, 5, 4, 4, 4, 4, 4, 0, 2, 0, 0,
-9, 3, 3, 3, 3, 3, 3, 4, 4, 2, 2, 2, 2, 2, 0, 0,
-9, 3, 3, 3, 3, 1, 5, 2, 6, 4, 2, 2, 2, 2, 0, 0,
-9, 5, 3, 3, 5, 5, 3, 2, 4, 4, 2, 2, 2, 2, 0, 0,
-9, 5, 7, 3, 3, 5, 3, 4, 4, 4, 4, 2, 2, 0, 0, 0,
-9, 5, 5, 5, 3, 5, 5, 2, 2, 2, 4, 2, 2, 2, 0, 0,
-9, 5, 5, 3, 5, 5, 3, 4, 6, 2, 4, 4, 2, 2, 0, 0,
-9, 7, 5, 5, 5, 5, 3, 6, 4, 2, 4, 2, 2, 2, 0, 0,
-9, 7, 7, 5, 5, 7, 3, 4, 6, 6, 4, 2, 2, 0, 0, 0,
-9, 5, 7, 1, 3, 3, 3, 6, 2, 4, 4, 2, 2, 0, 0, 0,
-9, 7, 5, 1, 3, 3, 3, 4, 4, 4, 4, 2, 2, 0, 0, 0,
-9, 5, 5, 3, 5, 3, 3, 2, 4, 2, 2, 2, 2, 2, 0, 0,
-9, 7, 5, 3, 3, 1, 5, 2, 4, 2, 4, 2, 2, 0, 0, 0,
-9, 5, 5, 3, 5, 1, 3, 4, 4, 2, 4, 2, 2, 0, 0, 0,
-9, 7, 3, 3, 5, 3, 5, 2, 6, 2, 2, 2, 2, 2, 0, 0,
-9, 5, 5, 5, 3, 3, 5, 4, 4, 4, 4, 2, 0, 0, 0, 0,
-9, 7, 5, 5, 5, 7, 5, 4, 4, 6, 6, 2, 2, 0, 0, 0,
-8, 3, 5, 5, 3, 5, 5, 2, 6, 4, 4, 2, 0, 0, 0, 0,
-9, 7, 5, 5, 5, 5, 7, 6, 4, 4, 4, 2, 0, 0, 0, 0,
-8, 5, 5, 7, 5, 7, 7, 4, 4, 6, 4, 2, 2, 0, 0, 0,
-9, 5, 3, 5, 5, 5, 5, 4, 2, 2, 4, 2, 2, 0, 0, 0,
-9, 5, 5, 5, 7, 5, 3, 6, 6, 6, 4, 2, 2, 2, 0, 0,
-8, 5, 3, 3, 5, 5, 3, 4, 4, 2, 2, 2, 0, 0, 0, 0,
-8, 7, 3, 5, 3, 5, 3, 4, 4, 2, 2, 0, 0, 0, 0, 0,
-8, 5, 5, 5, 5, 5, 3, 4, 4, 4, 2, 2, 0, 0, 0, 0,
-8, 7, 5, 7, 7, 5, 7, 4, 4, 4, 4, 4, 2, 0, 0, 0,
-8, 7, 5, 5, 5, 5, 3, 6, 4, 4, 4, 4, 2, 0, 0, 0,
-8, 5, 3, 3, 3, 3, 5, 2, 4, 6, 2, 2, 2, 0, 0, 0,
-8, 7, 5, 3, 5, 5, 5, 4, 4, 6, 2, 2, 0, 0, 0, 0,
-8, 5, 5, 3, 3, 5, 3, 2, 6, 2, 2, 2, 0, 0, 0, 0,
-8, 5, 3, 3, 3, 3, 3, 6, 4, 2, 4, 2, 2, 0, 0, 0,
-8, 7, 3, 3, 3, 5, 3, 2, 4, 6, 2, 2, 0, 0, 0, 0,
-8, 5, 5, 3, 3, 5, 3, 4, 6, 4, 2, 2, 0, 0, 0, 0,
-9, 5, 5, 7, 5, 5, 1, 6, 2, 2, 2, 2, 0, 0, 0, 0,
-9, 5, 3, 5, 3, 3, 3, 4, 2, 4, 4, 4, 2, 0, 0, 0,
-9, 7, 7, 5, 3, 5, 3, 4, 4, 2, 4, 4, 2, 0, 0, 0,
-9, 7, 3, 7, 3, 5, 3, 4, 4, 2, 2, 2, 2, 0, 0, 0,
-8, 5, 3, 3, 3, 5, 3, 4, 4, 2, 2, 2, 2, 0, 0, 0,
-8, 5, 5, 7, 3, 3, 3, 2, 2, 2, 2, 2, 0, 0, 0, 0,
-8, 5, 3, 3, 3, 3, 3, 4, 2, 4, 2, 2, 2, 0, 0, 0,
-9, 5, 5, 5, 3, 3, 3, 4, 2, 4, 4, 2, 2, 0, 0, 0,
-9, 7, 5, 5, 3, 5, 3, 6, 4, 6, 6, 2, 2, 2, 0, 0,
-9, 7, 5, 5, 5, 5, 3, 6, 4, 6, 6, 4, 2, 0, 0, 0,
-8, 7, 3, 5, 5, 3, 1, 6, 4, 2, 2, 2, 2, 0, 0, 0,
-8, 7, 3, 3, 3, 3, 1, 4, 4, 2, 2, 2, 2, 0, 0, 0,
-8, 5, 3, 3, 1, 5, 3, 4, 4, 2, 4, 4, 2, 0, 0, 0,
-8, 5, 3, 5, 3, 3, 1, 4, 4, 2, 4, 2, 2, 2, 0, 0,
-8, 7, 5, 5, 5, 5, 5, 4, 4, 4, 4, 4, 2, 2, 0, 0,
-9, 7, 5, 7, 5, 7, 7, 7, 4, 4, 4, 4, 2, 2, 0, 0,
-8, 5, 3, 3, 5, 5, 5, 2, 4, 2, 2, 2, 2, 2, 0, 0,
-9, 5, 3, 5, 3, 3, 3, 2, 4, 2, 2, 2, 2, 0, 0, 0,
-8, 5, 3, 3, 3, 5, 1, 2, 2, 2, 4, 4, 2, 2, 0, 0,
-9, 5, 5, 3, 3, 3, 1, 6, 6, 2, 2, 2, 4, 2, 0, 0,
-8, 5, 5, 3, 5, 5, 5, 6, 6, 4, 4, 4, 4, 0, 0, 0,
-9, 7, 5, 3, 5, 3, 5, 6, 4, 4, 6, 2, 2, 2, 0, 0,
-9, 5, 5, 5, 5, 7, 3, 6, 4, 6, 2, 2, 2, 2, 0, 0,
-9, 5, 5, 7, 3, 3, 3, 4, 4, 4, 6, 4, 2, 0, 0, 0,
-9, 5, 3, 3, 3, 3, 3, 2, 2, 4, 2, 2, 2, 0, 0, 0,
-8, 7, 3, 5, 3, 3, 3, 2, 4, 6, 2, 2, 2, 0, 0, 0,
-8, 5, 5, 5, 1, 5, 3, 2, 4, 4, 4, 0, 2, 2, 0, 0,
-8, 7, 7, 3, 5, 5, 3, 2, 4, 2, 4, 2, 2, 2, 0, 0,
-8, 7, 5, 3, 3, 3, 3, 2, 2, 2, 2, 4, 2, 2, 0, 0,
-8, 5, 3, 3, 3, 3, 3, 2, 4, 2, 2, 2, 2, 0, 0, 0,
-9, 5, 3, 3, 1, 3, 5, 2, 4, 2, 2, 2, 2, 0, 0, 0,
-9, 5, 7, 5, 3, 5, 5, 4, 6, 6, 4, 4, 2, 2, 0, 0,
-9, 7, 5, 5, 5, 5, 5, 4, 2, 4, 4, 4, 2, 0, 0, 0,
-9, 5, 5, 3, 3, 3, 3, 4, 2, 2, 4, 2, 0, 0, 0, 0,
-9, 7, 3, 5, 3, 3, 3, 4, 4, 2, 4, 2, 0, 0, 0, 0,
-8, 5, 5, 5, 5, 3, 3, 2, 2, 4, 4, 2, 2, 0, 0, 0,
-8, 5, 5, 3, 3, 3, 3, 4, 4, 2, 4, 4, 0, 0, 0, 0,
-8, 5, 5, 3, 3, 1, 3, 4, 4, 4, 2, 2, 0, 0, 0, 0,
-9, 7, 5, 3, 5, 5, 3, 4, 6, 2, 2, 4, 4, 2, 0, 0,
-8, 5, 5, 5, 7, 5, 5, 7, 4, 4, 6, 4, 2, 2, 0, 0,
-8, 5, 3, 3, 3, 3, 3, 4, 4, 4, 4, 2, 0, 0, 0, 0,
-9, 5, 5, 3, 3, 3, 3, 2, 4, 4, 2, 2, 0, 0, 0, 0,
-9, 7, 5, 3, 5, 5, 7, 2, 4, 2, 4, 4, 4, 0, 0, 0,
-8, 5, 5, 5, 5, 5, 5, 4, 4, 4, 4, 2, 0, 0, 0, 0,
-8, 5, 5, 5, 3, 1, 3, 6, 2, 2, 4, 2, 2, 0, 0, 0,
-8, 5, 5, 3, 3, 1, 3, 2, 4, 4, 4, 2, 0, 0, 0, 0,
-8, 5, 5, 5, 5, 3, 5, 4, 6, 4, 2, 2, 2, 0, 0, 0,
-9, 5, 5, 5, 5, 3, 5, 4, 6, 6, 4, 2, 2, 2, 0, 0,
-8, 3, 7, 3, 3, 5, 3, 4, 4, 4, 2, 2, 2, 0, 0, 0,
-9, 5, 7, 3, 3, 3, 5, 2, 6, 2, 2, 2, 2, 0, 0, 0,
-9, 5, 5, 5, 3, 5, 3, 4, 2, 4, 4, 2, 2, 0, 0, 0,
-9, 5, 5, 5, 7, 3, 3, 6, 6, 4, 2, 2, 0, 0, 0, 0,
-9, 5, 7, 7, 5, 5, 3, 4, 4, 2, 4, 4, 2, 2, 0, 0,
-8, 5, 5, 5, 5, 5, 3, 4, 6, 4, 4, 2, 2, 0, 0, 0,
-9, 5, 3, 3, 3, 1, 3, 4, 2, 2, 2, 2, 2, 2, 0, 0,
-9, 5, 5, 3, 5, 3, 3, 4, 2, 4, 2, 2, 2, 0, 0, 0,
-9, 5, 5, 5, 5, 5, 3, 4, 4, 4, 4, 4, 2, 0, 0, 0,
-9, 5, 5, 5, 5, 5, 3, 4, 6, 6, 4, 2, 0, 0, 0, 0,
-9, 5, 3, 3, 5, 5, 5, 4, 4, 6, 4, 2, 2, 0, 0, 0,
-9, 5, 5, 5, 5, 5, 5, 4, 6, 4, 6, 2, 0, 0, 0, 0,
-9, 5, 5, 7, 5, 3, 5, 4, 2, 2, 2, 4, 2, 2, 0, 0,
-9, 5, 5, 7, 5, 5, 3, 6, 6, 4, 4, 2, 2, 2, 0, 0,
-9, 5, 7, 3, 5, 1, 1, 6, 4, 4, 2, 2, 2, 2, 0, 0,
-9, 5, 7, 3, 3, 1, 1, 6, 2, 4, 2, 2, 0, 0, 0, 0,
-8, 7, 5, 5, 5, 5, 3, 6, 4, 2, 2, 4, 4, 2, 0, 0,
-9, 5, 7, 5, 5, 5, 3, 6, 6, 4, 4, 2, 4, 2, 0, 0,
-9, 3, 3, 5, 5, 5, 3, 4, 2, 4, 2, 2, 2, 0, 0, 0,
-8, 5, 5, 3, 3, 5, 1, 4, 2, 4, 4, 2, 4, 0, 0, 0,
-9, 3, 3, 3, 3, 3, 5, 4, 2, 4, 2, 2, 2, 0, 0, 0,
-8, 5, 5, 5, 5, 7, 5, 4, 2, 2, 6, 4, 2, 0, 0, 0,
-9, 5, 7, 7, 5, 5, 7, 6, 4, 2, 4, 6, 2, 2, 0, 0,
-9, 5, 3, 3, 3, 3, 3, 2, 4, 2, 2, 2, 0, 2, 0, 0,
-9, 5, 5, 5, 3, 1, 3, 6, 4, 2, 2, 2, 2, 0, 0, 0,
-9, 3, 5, 3, 3, 1, 5, 2, 2, 2, 2, 2, 2, 0, 0, 0,
-9, 7, 3, 3, 5, 3, 5, 2, 2, 2, 4, 2, 0, 0, 0, 0,
-9, 5, 1, 5, 5, 3, 3, 4, 4, 2, 2, 2, 2, 2, 0, 0,
-9, 5, 5, 3, 3, 3, 3, 4, 4, 4, 2, 2, 2, 2, 0, 0,
-9, 5, 5, 3, 5, 1, 5, 2, 4, 4, 2, 2, 2, 0, 0, 0,
-9, 5, 5, 5, 3, 5, 1, 6, 4, 2, 4, 2, 0, 0, 0, 0,
-8, 5, 5, 5, 7, 5, 7, 4, 4, 2, 6, 4, 0, 0, 0, 0,
-9, 5, 5, 5, 5, 5, 3, 4, 2, 2, 4, 4, 2, 0, 0, 0,
-9, 5, 5, 5, 7, 5, 5, 6, 2, 2, 4, 4, 4, 0, 0, 0,
-9, 5, 5, 3, 3, 3, 5, 2, 4, 2, 2, 2, 2, 2, 0, 0,
-9, 5, 3, 3, 5, 5, 5, 6, 6, 4, 4, 2, 2, 0, 0, 0,
-8, 5, 5, 5, 5, 7, 3, 6, 4, 4, 4, 2, 2, 0, 0, 0,
-8, 5, 5, 3, 7, 7, 3, 4, 4, 2, 4, 2, 2, 0, 0, 0,
-8, 5, 7, 5, 5, 5, 1, 4, 4, 4, 4, 2, 2, 0, 0, 0,
-8, 5, 5, 3, 7, 7, 3, 4, 4, 2, 2, 2, 2, 0, 0, 0,
-8, 5, 5, 5, 5, 5, 1, 4, 4, 2, 2, 2, 0, 0, 0, 0,
-8, 5, 5, 5, 7, 5, 5, 4, 2, 2, 2, 2, 2, 0, 0, 0,
-8, 7, 5, 3, 5, 5, 3, 6, 2, 4, 2, 2, 2, 0, 0, 0,
-8, 7, 5, 3, 3, 5, 1, 6, 2, 4, 2, 2, 0, 0, 0, 0,
-9, 7, 5, 5, 3, 5, 3, 4, 4, 4, 4, 2, 2, 0, 0, 0,
-8, 7, 7, 5, 3, 5, 5, 4, 6, 4, 4, 2, 2, 0, 0, 0,
-9, 5, 5, 5, 5, 5, 3, 4, 2, 4, 4, 4, 2, 0, 0, 0,
-9, 7, 5, 3, 5, 5, 5, 6, 4, 4, 6, 2, 0, 0, 0, 0,
-9, 5, 5, 3, 3, 3, 3, 4, 2, 4, 2, 2, 2, 0, 0, 0,
-8, 3, 5, 5, 5, 3, 3, 4, 4, 2, 4, 2, 0, 0, 0, 0,
-8, 7, 3, 5, 5, 3, 3, 4, 2, 4, 2, 2, 0, 0, 0, 0,
-9, 5, 5, 3, 3, 1, 3, 2, 4, 2, 2, 2, 2, 0, 0, 0,
-8, 5, 5, 5, 7, 5, 5, 4, 4, 4, 2, 2, 2, 0, 0, 0,
-8, 5, 7, 5, 5, 5, 5, 7, 4, 2, 2, 6, 2, 2, 0, 0,
-9, 5, 3, 3, 3, 3, 3, 4, 4, 2, 4, 2, 2, 0, 0, 0,
-9, 5, 5, 3, 5, 3, 5, 2, 2, 4, 4, 2, 0, 0, 0, 0,
-9, 5, 5, 3, 5, 3, 5, 4, 2, 2, 4, 4, 2, 0, 0, 0,
-9, 5, 3, 3, 5, 3, 3, 4, 2, 2, 4, 2, 2, 0, 0, 0,
-8, 3, 5, 3, 7, 3, 3, 6, 2, 2, 4, 2, 2, 0, 0, 0,
-8, 7, 3, 3, 3, 3, 3, 4, 4, 4, 2, 2, 0, 0, 0, 0,
-9, 7, 5, 5, 5, 5, 3, 4, 2, 2, 4, 4, 2, 0, 0, 0,
-8, 5, 5, 7, 5, 5, 5, 6, 6, 4, 7, 2, 2, 0, 0, 0,
-9, 7, 7, 5, 3, 7, 3, 4, 2, 2, 4, 4, 2, 0, 0, 0,
-9, 7, 5, 7, 5, 5, 3, 6, 4, 6, 4, 4, 4, 2, 0, 0,
-8, 5, 5, 5, 5, 3, 5, 4, 4, 4, 2, 2, 2, 2, 0, 0,
-9, 5, 7, 5, 5, 5, 5, 4, 6, 4, 4, 2, 2, 2, 0, 0,
-9, 7, 5, 5, 5, 7, 5, 4, 2, 4, 4, 2, 2, 0, 0, 0,
-9, 5, 7, 3, 5, 5, 3, 4, 2, 4, 4, 2, 0, 0, 0, 0,
-8, 5, 5, 1, 3, 3, 1, 4, 4, 2, 2, 2, 2, 2, 0, 0,
-9, 5, 7, 3, 5, 3, 3, 4, 2, 4, 4, 4, 4, 2, 0, 0,
-8, 5, 7, 5, 5, 1, 3, 2, 2, 2, 2, 4, 2, 2, 0, 0,
-8, 5, 5, 1, 3, 5, 1, 4, 4, 4, 2, 2, 2, 2, 0, 0,
-9, 5, 7, 3, 3, 5, 3, 4, 4, 2, 2, 2, 2, 2, 0, 0,
-9, 7, 5, 5, 5, 5, 5, 4, 4, 4, 6, 2, 2, 0, 0, 0,
-8, 7, 5, 5, 5, 5, 5, 4, 4, 4, 6, 2, 2, 0, 0, 0,
-8, 3, 5, 5, 3, 5, 3, 6, 2, 4, 2, 2, 0, 0, 0, 0,
-8, 5, 5, 5, 5, 3, 3, 4, 2, 4, 4, 2, 2, 0, 0, 0,
-8, 5, 5, 3, 1, 3, 3, 4, 2, 4, 4, 2, 2, 0, 0, 0,
-8, 5, 5, 5, 5, 3, 3, 4, 2, 2, 4, 2, 2, 0, 0, 0,
-8, 5, 7, 5, 5, 5, 3, 4, 2, 2, 2, 2, 2, 0, 0, 0,
-9, 5, 7, 7, 5, 5, 3, 2, 6, 2, 4, 4, 2, 0, 0, 0,
-8, 5, 5, 5, 5, 5, 3, 4, 6, 2, 4, 2, 0, 0, 0, 0,
-8, 7, 7, 3, 3, 3, 3, 4, 2, 2, 2, 4, 2, 0, 0, 0,
-8, 7, 5, 3, 3, 5, 1, 6, 2, 2, 4, 2, 0, 0, 0, 0,
-8, 5, 5, 3, 3, 5, 3, 2, 2, 4, 4, 2, 2, 0, 0, 0,
-9, 7, 5, 5, 5, 5, 3, 4, 6, 4, 4, 2, 0, 0, 0, 0,
-8, 7, 5, 3, 7, 7, 3, 6, 6, 6, 4, 2, 2, 2, 0, 0,
-9, 5, 3, 3, 1, 3, 3, 4, 2, 2, 2, 2, 2, 0, 0, 0,
-8, 3, 3, 3, 1, 3, 3, 2, 2, 2, 4, 2, 2, 0, 0, 0,
-8, 5, 5, 3, 5, 1, 5, 2, 4, 2, 4, 2, 2, 2, 0, 0,
-8, 3, 5, 3, 3, 1, 3, 4, 4, 4, 2, 2, 2, 0, 0, 0,
-8, 5, 5, 3, 3, 3, 3, 4, 4, 4, 2, 2, 2, 0, 0, 0,
-9, 3, 5, 3, 3, 3, 3, 4, 4, 2, 2, 2, 2, 0, 0, 0,
-8, 5, 3, 1, 3, 3, 3, 2, 4, 2, 4, 2, 2, 2, 0, 0,
-9, 5, 5, 3, 7, 3, 5, 4, 4, 4, 2, 4, 2, 0, 0, 0,
-9, 5, 5, 5, 5, 5, 5, 6, 4, 4, 4, 4, 2, 2, 0, 0,
-8, 7, 5, 1, 3, 3, 3, 4, 4, 2, 6, 2, 0, 0, 0, 0,
-8, 3, 3, 5, 3, 3, 3, 6, 2, 4, 4, 4, 0, 0, 0, 0,
-8, 3, 5, 7, 5, 3, 3, 4, 2, 6, 2, 2, 0, 0, 0, 0,
-9, 5, 5, 3, 3, 5, 5, 4, 2, 4, 4, 0, 0, 0, 0, 0,
-8, 7, 5, 3, 3, 3, 1, 4, 2, 2, 4, 2, 0, 0, 0, 0,
-8, 5, 5, 3, 3, 3, 1, 4, 2, 2, 2, 2, 2, 0, 0, 0,
-8, 5, 5, 5, 5, 3, 3, 6, 2, 4, 4, 4, 2, 2, 0, 0,
-9, 7, 5, 5, 3, 5, 5, 4, 6, 6, 2, 4, 2, 2, 0, 0,
-8, 7, 7, 7, 5, 3, 3, 4, 4, 4, 2, 2, 2, 0, 0, 0,
-9, 7, 3, 5, 5, 3, 5, 6, 4, 4, 2, 2, 0, 0, 0, 0,
-9, 7, 3, 5, 3, 3, 3, 4, 4, 6, 2, 2, 0, 0, 0, 0,
-8, 7, 5, 3, 3, 5, 3, 4, 4, 4, 4, 2, 0, 0, 0, 0,
-9, 7, 5, 7, 7, 5, 5, 6, 4, 4, 4, 2, 4, 2, 0, 0,
-8, 7, 3, 7, 3, 5, 3, 6, 6, 4, 2, 4, 2, 0, 0, 0,
-9, 5, 5, 5, 3, 5, 5, 4, 4, 4, 2, 2, 2, 2, 0, 0,
-8, 7, 7, 7, 5, 5, 7, 6, 4, 4, 6, 6, 2, 0, 0, 0,
-8, 7, 7, 3, 5, 3, 3, 6, 4, 2, 2, 4, 2, 0, 0, 0,
-8, 5, 7, 5, 5, 3, 1, 6, 2, 4, 4, 2, 2, 0, 0, 0,
-9, 5, 7, 5, 5, 3, 3, 6, 6, 2, 2, 2, 2, 0, 0, 0,
-9, 7, 7, 5, 3, 3, 3, 4, 6, 4, 4, 2, 2, 0, 0, 0,
-8, 5, 7, 3, 7, 5, 5, 4, 6, 2, 2, 2, 0, 0, 0, 0,
-9, 5, 7, 5, 3, 1, 3, 6, 4, 2, 2, 2, 2, 0, 0, 0,
-8, 7, 7, 7, 3, 1, 3, 4, 6, 4, 2, 2, 0, 0, 0, 0,
-9, 5, 7, 7, 5, 5, 3, 4, 4, 4, 4, 4, 0, 2, 0, 0,
-8, 5, 5, 5, 5, 5, 3, 4, 6, 2, 6, 2, 2, 2, 0, 0,
-9, 5, 5, 7, 3, 5, 3, 4, 6, 2, 4, 2, 0, 0, 0, 0,
-9, 5, 5, 7, 5, 3, 3, 4, 4, 2, 2, 2, 0, 0, 0, 0,
-9, 7, 5, 5, 3, 3, 5, 4, 4, 4, 2, 2, 2, 0, 0, 0,
-9, 5, 7, 7, 5, 5, 5, 4, 6, 4, 2, 2, 0, 0, 0, 0,
-9, 5, 5, 5, 3, 5, 3, 6, 4, 2, 4, 2, 2, 0, 0, 0,
-9, 5, 7, 3, 3, 3, 5, 6, 6, 2, 2, 4, 2, 0, 0, 0,
-8, 3, 7, 5, 3, 5, 3, 4, 4, 2, 2, 4, 0, 0, 0, 0,
-8, 5, 7, 7, 5, 5, 5, 2, 4, 4, 2, 2, 2, 0, 0, 0,
-9, 5, 5, 5, 3, 5, 5, 4, 4, 2, 4, 6, 4, 2, 0, 0,
-8, 5, 7, 5, 3, 5, 5, 4, 4, 4, 6, 2, 2, 0, 0, 0,
-8, 7, 5, 5, 5, 5, 3, 4, 6, 4, 4, 4, 2, 2, 0, 0,
-8, 7, 3, 5, 3, 3, 5, 4, 4, 4, 4, 2, 0, 0, 0, 0,
-9, 5, 5, 5, 5, 5, 3, 4, 4, 4, 4, 2, 2, 0, 0, 0,
-9, 7, 5, 5, 5, 7, 5, 6, 4, 4, 4, 2, 2, 2, 0, 0,
-8, 7, 3, 3, 3, 3, 3, 4, 6, 4, 2, 2, 2, 0, 0, 0,
-9, 5, 3, 5, 5, 3, 3, 6, 4, 2, 2, 2, 2, 0, 0, 0,
-9, 7, 5, 5, 5, 5, 5, 4, 4, 4, 4, 2, 2, 2, 0, 0,
-9, 5, 5, 7, 5, 5, 5, 4, 6, 4, 4, 6, 0, 2, 0, 0,
-9, 5, 3, 3, 3, 3, 3, 4, 4, 4, 2, 2, 0, 0, 0, 0,
-9, 7, 5, 3, 1, 3, 3, 4, 4, 2, 4, 2, 0, 0, 0, 0,
-9, 7, 3, 3, 5, 3, 3, 4, 4, 2, 4, 4, 2, 2, 0, 0,
-9, 5, 5, 5, 3, 5, 5, 4, 2, 4, 4, 2, 2, 0, 0, 0,
-9, 7, 5, 5, 5, 7, 5, 4, 6, 6, 4, 4, 0, 0, 0, 0,
-9, 5, 3, 5, 3, 7, 3, 4, 4, 4, 4, 2, 0, 0, 0, 0,
-9, 5, 3, 1, 5, 5, 5, 2, 2, 4, 4, 2, 0, 0, 0, 0,
-9, 5, 3, 7, 3, 3, 3, 6, 2, 2, 4, 2, 2, 0, 0, 0,
-9, 5, 5, 1, 3, 5, 3, 2, 6, 4, 4, 2, 0, 0, 0, 0,
-8, 7, 7, 7, 5, 5, 5, 4, 2, 4, 6, 4, 2, 0, 0, 0,
-9, 5, 5, 5, 5, 5, 7, 4, 2, 4, 6, 2, 2, 0, 0, 0,
-8, 5, 5, 3, 3, 1, 3, 4, 4, 4, 2, 2, 2, 0, 0, 0,
-9, 5, 5, 5, 5, 3, 3, 4, 2, 4, 4, 2, 2, 0, 0, 0,
-8, 5, 7, 3, 5, 5, 5, 4, 6, 6, 2, 2, 2, 0, 0, 0,
-9, 5, 3, 5, 3, 3, 1, 4, 4, 2, 2, 2, 2, 0, 0, 0,
-9, 7, 5, 3, 3, 3, 3, 4, 4, 2, 4, 2, 2, 0, 0, 0,
-9, 5, 3, 3, 3, 3, 1, 6, 2, 2, 2, 2, 2, 2, 0, 0,
-9, 3, 5, 3, 5, 3, 3, 4, 2, 2, 4, 2, 2, 0, 0, 0,
-9, 5, 3, 7, 5, 3, 3, 4, 2, 4, 4, 2, 2, 0, 0, 0,
-8, 5, 3, 5, 3, 5, 5, 4, 4, 2, 4, 2, 2, 0, 0, 0,
-8, 5, 3, 3, 5, 3, 1, 4, 2, 2, 2, 2, 2, 0, 0, 0,
-9, 5, 7, 3, 5, 3, 1, 6, 4, 2, 4, 2, 2, 0, 0, 0,
-9, 5, 3, 3, 5, 5, 5, 4, 2, 2, 4, 2, 0, 0, 0, 0,
-8, 5, 5, 3, 3, 1, 3, 6, 2, 2, 4, 2, 0, 0, 0, 0,
-9, 5, 5, 5, 5, 5, 3, 4, 4, 2, 4, 2, 2, 0, 0, 0,
-8, 7, 5, 3, 5, 5, 5, 6, 4, 4, 4, 4, 2, 0, 0, 0,
-9, 3, 5, 3, 5, 1, 5, 2, 4, 4, 6, 2, 2, 0, 0, 0,
-9, 5, 3, 5, 3, 5, 3, 2, 4, 4, 6, 2, 2, 0, 0, 0,
-9, 5, 3, 5, 5, 3, 5, 4, 4, 6, 4, 2, 2, 0, 0, 0,
-9, 5, 5, 3, 5, 7, 5, 2, 4, 4, 4, 4, 2, 0, 0, 0,
-9, 5, 3, 3, 3, 5, 5, 4, 4, 4, 6, 2, 2, 2, 0, 0,
-9, 5, 5, 5, 5, 7, 5, 6, 4, 4, 4, 2, 0, 0, 0, 0,
-9, 5, 5, 5, 5, 5, 3, 4, 6, 6, 4, 6, 2, 0, 0, 0,
-8, 5, 3, 3, 3, 3, 1, 2, 4, 2, 2, 2, 2, 0, 0, 0,
-9, 3, 5, 3, 5, 3, 3, 4, 2, 2, 6, 2, 2, 2, 0, 0,
-8, 5, 5, 3, 5, 3, 3, 2, 2, 2, 2, 2, 0, 0, 0, 0,
-9, 5, 5, 3, 1, 3, 3, 4, 2, 2, 2, 2, 0, 0, 0, 0,
-8, 3, 3, 3, 3, 3, 3, 4, 4, 4, 2, 2, 2, 0, 0, 0,
-9, 5, 3, 5, 3, 5, 5, 2, 2, 2, 4, 4, 0, 0, 0, 0,
-8, 3, 5, 5, 7, 7, 3, 4, 4, 2, 6, 2, 2, 0, 2, 0,
-8, 5, 5, 5, 5, 5, 5, 4, 2, 6, 6, 2, 2, 0, 0, 0,
-8, 5, 5, 5, 5, 3, 5, 4, 4, 4, 6, 2, 2, 0, 0, 0,
-9, 5, 3, 3, 3, 5, 5, 4, 2, 2, 2, 2, 0, 0, 0, 0,
-9, 7, 5, 3, 5, 3, 3, 4, 4, 2, 2, 2, 2, 0, 0, 0,
-9, 5, 5, 5, 3, 5, 3, 2, 2, 2, 2, 4, 0, 0, 0, 0,
-9, 5, 5, 5, 5, 3, 7, 6, 4, 4, 4, 2, 2, 0, 0, 0,
-8, 5, 5, 3, 5, 3, 3, 4, 4, 2, 2, 2, 2, 0, 0, 0,
-9, 3, 5, 3, 5, 3, 3, 4, 2, 4, 2, 2, 2, 0, 0, 0,
-9, 7, 5, 5, 5, 3, 3, 4, 2, 2, 4, 4, 2, 0, 0, 0,
-9, 5, 5, 7, 5, 7, 7, 6, 4, 6, 4, 2, 2, 0, 0, 0,
-9, 5, 5, 1, 3, 5, 3, 4, 2, 2, 2, 2, 0, 0, 0, 0,
-9, 5, 3, 3, 3, 3, 5, 4, 2, 2, 4, 2, 2, 0, 0, 0,
-9, 5, 7, 3, 3, 3, 1, 4, 4, 2, 2, 2, 2, 0, 0, 0,
-9, 5, 3, 3, 3, 3, 1, 4, 2, 4, 2, 2, 0, 0, 0, 0,
-9, 5, 3, 5, 3, 3, 5, 4, 2, 2, 4, 2, 2, 0, 0, 0,
-9, 3, 5, 3, 5, 3, 5, 6, 2, 4, 4, 2, 2, 0, 0, 0,
-9, 5, 7, 5, 5, 5, 5, 6, 4, 4, 4, 2, 2, 0, 0, 0,
-8, 5, 5, 5, 5, 3, 5, 6, 4, 6, 4, 2, 4, 2, 0, 0,
-9, 5, 7, 3, 3, 3, 5, 6, 2, 4, 4, 2, 2, 0, 0, 0,
-9, 7, 5, 5, 5, 1, 7, 4, 4, 2, 4, 2, 2, 0, 0, 0,
-9, 5, 3, 3, 7, 5, 3, 4, 4, 4, 2, 2, 0, 0, 0, 0,
-9, 5, 7, 5, 7, 3, 5, 4, 2, 2, 4, 2, 2, 2, 0, 0,
-8, 5, 5, 5, 5, 3, 5, 6, 2, 2, 6, 4, 2, 0, 0, 0,
-9, 5, 5, 7, 3, 3, 5, 4, 4, 7, 2, 2, 2, 2, 0, 0,
-9, 5, 5, 3, 3, 1, 3, 4, 4, 4, 2, 2, 0, 0, 0, 0,
-9, 5, 5, 7, 5, 3, 5, 4, 4, 6, 4, 2, 2, 0, 0, 0,
-9, 5, 7, 5, 7, 5, 5, 6, 2, 6, 6, 2, 2, 0, 0, 0,
-9, 7, 5, 3, 3, 5, 3, 4, 2, 2, 4, 2, 0, 0, 0, 0,
-9, 5, 5, 5, 7, 5, 3, 6, 4, 4, 4, 2, 2, 0, 0, 0,
-9, 7, 5, 5, 5, 5, 3, 6, 6, 6, 4, 4, 2, 2, 0, 0,
-9, 7, 1, 3, 3, 3, 3, 2, 4, 2, 6, 2, 2, 0, 0, 0,
-9, 5, 3, 5, 3, 3, 3, 2, 4, 4, 4, 2, 2, 0, 0, 0,
-8, 3, 5, 3, 3, 3, 3, 4, 2, 2, 2, 2, 2, 2, 0, 0,
-9, 7, 3, 5, 5, 3, 3, 2, 4, 4, 2, 2, 2, 0, 0, 0,
-9, 3, 3, 3, 5, 5, 5, 2, 4, 2, 2, 2, 2, 0, 0, 0,
-9, 5, 5, 5, 5, 3, 3, 6, 4, 4, 4, 2, 2, 2, 0, 0,
-9, 5, 5, 5, 3, 5, 5, 4, 4, 4, 6, 4, 2, 0, 0, 0,
-9, 7, 3, 5, 3, 5, 5, 4, 6, 2, 4, 2, 0, 0, 0, 0,
-8, 5, 5, 3, 3, 5, 3, 2, 4, 2, 2, 2, 0, 2, 0, 0,
-9, 5, 3, 3, 1, 5, 1, 4, 4, 2, 4, 2, 2, 0, 0, 0,
-9, 7, 5, 3, 5, 5, 5, 4, 4, 4, 4, 2, 2, 2, 0, 0,
-9, 5, 5, 5, 5, 5, 5, 4, 4, 4, 4, 2, 2, 0, 0, 0,
-8, 5, 5, 3, 5, 3, 3, 2, 2, 4, 6, 2, 2, 0, 0, 0,
-9, 5, 5, 3, 5, 5, 3, 2, 2, 4, 2, 2, 2, 0, 0, 0,
-9, 5, 7, 3, 5, 5, 5, 4, 2, 6, 4, 2, 2, 0, 0, 0,
-9, 7, 3, 5, 3, 5, 3, 4, 2, 2, 6, 2, 0, 0, 0, 0,
-8, 3, 5, 3, 3, 3, 5, 4, 2, 6, 4, 2, 2, 0, 0, 0,
-9, 5, 5, 3, 3, 3, 3, 4, 2, 2, 4, 2, 0, 2, 0, 0,
-9, 5, 5, 5, 5, 5, 5, 6, 4, 2, 4, 2, 2, 0, 0, 0,
-8, 7, 5, 5, 3, 7, 3, 6, 6, 4, 6, 4, 0, 0, 0, 0,
-8, 7, 7, 5, 5, 3, 5, 6, 6, 4, 2, 2, 2, 2, 0, 0,
-8, 7, 5, 5, 3, 5, 5, 6, 6, 4, 6, 4, 0, 2, 0, 0,
-8, 5, 5, 5, 5, 5, 5, 4, 4, 2, 6, 2, 2, 0, 0, 0,
-9, 7, 7, 5, 5, 5, 5, 4, 6, 4, 6, 2, 2, 0, 0, 0,
-9, 5, 5, 3, 5, 3, 3, 2, 4, 4, 6, 2, 2, 0, 0, 0,
-9, 5, 3, 3, 5, 3, 3, 4, 2, 2, 4, 2, 2, 0, 0, 0,
-8, 5, 5, 5, 5, 5, 5, 4, 2, 4, 4, 4, 0, 0, 0, 0,
-9, 7, 5, 3, 5, 7, 3, 6, 4, 2, 6, 4, 0, 0, 0, 0,
-9, 7, 5, 3, 5, 3, 3, 4, 6, 4, 2, 2, 2, 0, 0, 0,
-9, 7, 5, 3, 7, 3, 3, 4, 4, 4, 4, 2, 2, 2, 0, 0,
-9, 5, 5, 5, 5, 5, 5, 6, 4, 4, 2, 6, 2, 2, 0, 0,
-8, 7, 7, 5, 7, 5, 3, 4, 4, 6, 4, 2, 2, 0, 0, 0,
-9, 5, 5, 5, 3, 3, 3, 4, 2, 4, 2, 2, 2, 0, 0, 0,
-9, 7, 5, 3, 5, 5, 3, 2, 4, 2, 4, 2, 2, 0, 0, 0,
-9, 3, 5, 5, 5, 7, 3, 4, 2, 6, 2, 2, 0, 0, 0, 0,
-9, 5, 3, 3, 5, 5, 3, 6, 2, 4, 2, 2, 2, 0, 0, 0,
-8, 5, 5, 5, 5, 5, 7, 4, 4, 4, 4, 4, 0, 0, 0, 0,
-9, 7, 5, 5, 5, 5, 5, 6, 6, 2, 4, 6, 2, 2, 0, 0,
-8, 7, 3, 3, 5, 3, 1, 4, 4, 4, 4, 2, 0, 0, 0, 0,
-9, 5, 5, 3, 3, 3, 3, 2, 2, 4, 2, 2, 2, 0, 0, 0,
-9, 5, 7, 3, 3, 3, 3, 4, 4, 4, 4, 2, 0, 0, 0, 0,
-9, 5, 5, 3, 3, 5, 3, 4, 4, 4, 4, 2, 0, 0, 0, 0,
-9, 7, 5, 3, 3, 5, 5, 4, 6, 2, 2, 2, 2, 0, 0, 0,
-9, 5, 5, 5, 5, 5, 5, 4, 4, 4, 4, 4, 2, 0, 0, 0,
-9, 5, 7, 5, 5, 5, 7, 2, 6, 6, 6, 2, 0, 0, 0, 0,
-9, 5, 5, 3, 5, 5, 1, 4, 2, 2, 2, 2, 2, 0, 0, 0,
-9, 5, 5, 5, 5, 5, 5, 4, 2, 4, 4, 2, 2, 0, 0, 0,
-9, 5, 7, 7, 7, 5, 5, 6, 4, 4, 6, 2, 2, 0, 0, 0,
-9, 5, 5, 3, 3, 3, 3, 4, 4, 4, 4, 2, 2, 0, 0, 0,
-9, 5, 3, 3, 3, 3, 5, 4, 2, 2, 2, 2, 2, 2, 0, 0,
-9, 5, 5, 3, 3, 3, 3, 2, 2, 2, 6, 2, 2, 2, 0, 0,
-9, 5, 3, 3, 5, 7, 3, 4, 4, 4, 2, 2, 2, 0, 0, 0,
-8, 3, 3, 3, 3, 3, 5, 4, 4, 2, 2, 2, 2, 2, 0, 0,
-9, 5, 5, 5, 1, 3, 5, 2, 4, 2, 4, 2, 2, 0, 0, 0,
-9, 5, 5, 5, 5, 5, 5, 2, 4, 4, 2, 4, 2, 0, 0, 0,
-9, 7, 5, 5, 7, 5, 5, 6, 4, 4, 6, 2, 0, 0, 0, 0,
-9, 5, 7, 5, 5, 5, 5, 4, 6, 2, 6, 2, 2, 2, 0, 0,
-8, 5, 3, 3, 1, 1, 3, 2, 4, 4, 2, 2, 2, 0, 0, 0,
-9, 3, 7, 3, 3, 3, 3, 4, 2, 4, 2, 2, 2, 2, 0, 0,
-9, 5, 3, 5, 3, 3, 3, 2, 2, 4, 2, 2, 2, 0, 0, 0,
-9, 5, 5, 3, 3, 3, 1, 4, 2, 2, 4, 2, 2, 0, 0, 0,
-9, 5, 7, 3, 3, 1, 3, 2, 2, 2, 2, 2, 0, 0, 0, 0,
-9, 5, 5, 3, 5, 3, 3, 4, 4, 2, 4, 2, 0, 0, 0, 0,
-9, 5, 5, 3, 7, 3, 5, 4, 2, 4, 4, 2, 2, 0, 0, 0,
-9, 5, 5, 5, 5, 5, 5, 4, 4, 4, 4, 2, 2, 0, 0, 0,
-9, 5, 5, 5, 7, 5, 5, 4, 2, 4, 4, 2, 0, 0, 0, 0,
-8, 5, 5, 3, 3, 3, 1, 4, 4, 2, 2, 2, 2, 0, 0, 0,
-9, 7, 3, 3, 3, 3, 3, 4, 2, 2, 4, 2, 0, 0, 0, 0,
-9, 5, 5, 5, 5, 3, 3, 4, 4, 4, 4, 2, 0, 0, 0, 0,
-9, 7, 5, 3, 7, 5, 5, 2, 2, 6, 4, 2, 0, 0, 0, 0,
-9, 7, 7, 3, 5, 3, 5, 6, 4, 2, 6, 4, 2, 0, 0, 0,
-9, 7, 7, 3, 5, 3, 3, 2, 2, 2, 2, 2, 2, 0, 0, 0,
-9, 5, 5, 3, 3, 3, 3, 2, 2, 2, 4, 2, 2, 0, 0, 0,
-9, 5, 7, 5, 7, 5, 5, 4, 2, 4, 6, 2, 2, 0, 0, 0,
-9, 7, 5, 5, 7, 5, 5, 4, 6, 4, 4, 2, 2, 0, 0, 0,
-9, 3, 5, 1, 3, 5, 1, 4, 2, 2, 4, 2, 2, 0, 0, 0,
-8, 3, 3, 5, 3, 5, 1, 4, 4, 2, 4, 2, 0, 0, 0, 0,
-9, 5, 5, 5, 5, 3, 5, 2, 4, 4, 4, 2, 2, 2, 0, 0,
-8, 5, 7, 7, 5, 5, 5, 4, 6, 4, 4, 4, 2, 0, 0, 0,
-9, 7, 5, 3, 5, 5, 1, 4, 4, 2, 2, 2, 2, 0, 0, 0,
-9, 7, 5, 5, 7, 7, 3, 4, 4, 2, 2, 2, 0, 0, 0, 0,
-8, 7, 7, 5, 7, 3, 3, 6, 4, 4, 4, 2, 2, 4, 0, 0,
-9, 7, 5, 5, 7, 5, 3, 4, 4, 4, 6, 2, 2, 2, 0, 0,
-8, 5, 5, 3, 5, 3, 3, 4, 2, 2, 6, 2, 0, 0, 0, 0,
-9, 7, 5, 5, 3, 5, 3, 4, 2, 2, 4, 4, 2, 0, 0, 0,
-9, 7, 5, 1, 5, 3, 3, 4, 2, 2, 4, 2, 2, 0, 0, 0,
-8, 5, 7, 3, 5, 3, 3, 4, 2, 2, 2, 2, 2, 0, 0, 0,
-9, 5, 7, 5, 7, 7, 3, 7, 4, 4, 4, 4, 0, 0, 0, 0,
-8, 5, 7, 3, 3, 3, 5, 4, 2, 4, 2, 2, 0, 0, 0, 0,
-9, 3, 5, 5, 3, 5, 5, 4, 2, 4, 4, 2, 2, 0, 0, 0,
-8, 5, 5, 7, 5, 5, 5, 6, 4, 2, 6, 2, 2, 0, 0, 0,
-9, 5, 5, 3, 3, 3, 3, 7, 4, 6, 6, 2, 2, 0, 0, 0,
-8, 5, 3, 3, 5, 3, 3, 6, 4, 2, 2, 2, 0, 0, 0, 0,
-9, 7, 5, 5, 5, 5, 5, 6, 4, 4, 4, 2, 0, 0, 0, 0,
-9, 5, 5, 7, 7, 5, 7, 4, 6, 6, 2, 4, 4, 4, 0, 0,
-9, 5, 5, 3, 3, 3, 3, 2, 4, 2, 4, 2, 0, 0, 0, 0,
-8, 5, 5, 3, 3, 3, 5, 2, 2, 2, 4, 2, 2, 0, 0, 0,
-9, 7, 5, 5, 5, 3, 7, 2, 4, 2, 4, 2, 0, 0, 0, 0,
-8, 5, 5, 5, 3, 3, 5, 4, 4, 4, 2, 4, 0, 0, 0, 0,
-8, 7, 5, 3, 3, 3, 3, 2, 4, 4, 2, 2, 2, 0, 0, 0,
-9, 5, 5, 5, 5, 5, 3, 4, 2, 2, 2, 2, 0, 0, 0, 0,
-9, 7, 5, 5, 5, 5, 3, 4, 4, 4, 6, 2, 2, 0, 0, 0,
-8, 7, 3, 3, 3, 1, 3, 4, 2, 2, 4, 2, 0, 0, 0, 0,
-9, 7, 3, 3, 3, 3, 3, 6, 2, 2, 4, 2, 2, 0, 0, 0,
-9, 7, 3, 5, 5, 5, 3, 2, 2, 2, 4, 2, 0, 0, 0, 0,
-8, 7, 3, 3, 7, 1, 3, 2, 4, 2, 4, 2, 0, 0, 0, 0,
-8, 7, 5, 3, 3, 3, 3, 4, 4, 4, 4, 2, 0, 0, 0, 0,
-8, 7, 3, 3, 5, 1, 3, 4, 4, 2, 4, 2, 2, 0, 0, 0,
-9, 7, 7, 5, 5, 5, 3, 4, 4, 4, 4, 2, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 5, 7, 4, 2, 6, 4, 2, 2, 0, 0, 0,
-8, 7, 5, 5, 3, 5, 5, 4, 2, 2, 4, 2, 4, 0, 0, 0,
-9, 5, 7, 5, 5, 5, 5, 6, 2, 2, 4, 4, 2, 2, 0, 0,
-9, 7, 7, 3, 1, 3, 3, 4, 2, 2, 4, 2, 0, 0, 0, 0,
-9, 5, 7, 5, 3, 5, 5, 4, 4, 4, 4, 2, 2, 0, 0, 0,
-8, 5, 7, 5, 3, 5, 7, 4, 4, 4, 4, 4, 2, 2, 0, 0,
-8, 5, 5, 5, 5, 3, 3, 4, 4, 2, 2, 2, 0, 0, 0, 0,
-8, 5, 3, 3, 5, 5, 3, 4, 2, 2, 2, 2, 0, 0, 0, 0,
-9, 3, 5, 3, 7, 3, 5, 4, 4, 2, 2, 2, 0, 0, 0, 0,
-8, 5, 5, 3, 5, 1, 3, 4, 4, 4, 4, 2, 2, 0, 0, 0,
-8, 3, 5, 3, 5, 1, 1, 4, 2, 2, 4, 2, 2, 0, 0, 0,
-9, 7, 7, 5, 7, 5, 5, 4, 4, 4, 2, 4, 4, 2, 0, 0,
-8, 5, 5, 5, 7, 5, 5, 4, 4, 4, 4, 2, 2, 2, 0, 0,
-8, 5, 5, 3, 3, 5, 3, 2, 4, 4, 4, 2, 2, 0, 0, 0,
-9, 5, 5, 3, 5, 3, 3, 4, 4, 2, 4, 2, 2, 0, 0, 0,
-9, 5, 3, 1, 3, 3, 3, 2, 4, 6, 4, 2, 0, 0, 0, 0,
-9, 5, 7, 3, 5, 1, 5, 4, 2, 4, 2, 2, 2, 0, 0, 0,
-9, 5, 5, 5, 7, 5, 5, 4, 4, 4, 4, 2, 4, 0, 0, 0,
-9, 5, 5, 5, 5, 5, 3, 4, 4, 4, 4, 4, 0, 0, 0, 0,
-8, 5, 5, 5, 5, 5, 5, 6, 6, 4, 6, 4, 4, 2, 0, 0,
-9, 5, 3, 3, 5, 3, 3, 2, 2, 2, 2, 2, 0, 0, 0, 0,
-9, 5, 3, 5, 3, 3, 3, 2, 2, 2, 2, 4, 0, 0, 0, 0,
-8, 5, 3, 5, 5, 5, 5, 4, 4, 2, 4, 2, 0, 0, 0, 0,
-9, 5, 3, 5, 3, 5, 3, 4, 4, 2, 2, 0, 0, 0, 0, 0,
-9, 5, 5, 7, 7, 5, 3, 6, 4, 2, 4, 2, 2, 0, 0, 0,
-9, 7, 5, 5, 5, 5, 3, 6, 4, 4, 6, 4, 0, 0, 0, 0,
-9, 5, 5, 3, 3, 5, 5, 4, 2, 2, 2, 4, 2, 0, 0, 0,
-9, 7, 3, 5, 3, 3, 3, 4, 2, 4, 2, 2, 2, 0, 0, 0,
-8, 5, 3, 5, 3, 5, 1, 6, 6, 4, 2, 2, 2, 2, 0, 0,
-8, 5, 3, 3, 3, 1, 3, 2, 2, 2, 2, 2, 2, 2, 0, 0,
-9, 5, 3, 3, 1, 3, 3, 2, 2, 4, 4, 2, 0, 0, 0, 0,
-9, 5, 5, 3, 5, 5, 1, 4, 6, 2, 2, 2, 2, 0, 0, 0,
-8, 5, 3, 3, 3, 5, 1, 2, 6, 2, 2, 4, 0, 0, 0, 0,
-9, 5, 7, 5, 5, 5, 3, 4, 6, 4, 6, 2, 2, 0, 0, 0,
-9, 5, 7, 5, 5, 5, 3, 6, 4, 4, 6, 2, 2, 0, 0, 0,
-9, 5, 7, 5, 5, 3, 5, 4, 6, 2, 2, 2, 0, 0, 0, 0,
-8, 7, 7, 7, 7, 7, 5, 4, 4, 4, 2, 2, 2, 2, 0, 0,
-9, 5, 7, 5, 5, 7, 3, 4, 4, 6, 6, 2, 2, 0, 0, 0,
-9, 7, 5, 5, 3, 1, 5, 4, 6, 4, 2, 2, 0, 0, 0, 0,
-8, 5, 5, 5, 5, 5, 5, 4, 4, 4, 4, 4, 2, 0, 0, 0,
-9, 7, 7, 5, 5, 5, 7, 6, 4, 4, 4, 4, 2, 2, 0, 0,
-8, 7, 5, 7, 5, 5, 3, 4, 4, 2, 2, 2, 2, 0, 0, 0,
-8, 7, 5, 5, 5, 3, 7, 6, 4, 4, 4, 2, 0, 0, 0, 0,
-8, 5, 3, 7, 5, 5, 5, 4, 2, 2, 4, 2, 0, 0, 0, 0,
-9, 5, 3, 7, 5, 3, 5, 6, 2, 4, 2, 2, 0, 0, 0, 0,
-9, 3, 3, 5, 5, 3, 5, 7, 4, 4, 2, 2, 0, 0, 0, 0,
-8, 5, 5, 5, 5, 3, 5, 7, 4, 4, 2, 2, 0, 0, 0, 0,
-9, 5, 5, 5, 5, 3, 3, 4, 4, 2, 2, 4, 2, 0, 0, 0,
-9, 7, 7, 7, 5, 5, 3, 4, 4, 4, 2, 2, 2, 0, 0, 0,
-9, 5, 7, 7, 5, 7, 7, 7, 7, 4, 2, 4, 2, 2, 2, 0,
-9, 5, 3, 5, 5, 3, 3, 6, 2, 2, 4, 2, 0, 0, 0, 0,
-9, 7, 5, 3, 5, 3, 3, 4, 4, 2, 2, 2, 2, 0, 0, 0,
-9, 7, 5, 3, 3, 3, 1, 4, 4, 2, 4, 2, 2, 0, 0, 0,
-9, 7, 5, 3, 3, 3, 1, 4, 2, 2, 4, 2, 0, 0, 0, 0,
-8, 5, 5, 3, 3, 3, 3, 6, 2, 4, 4, 2, 0, 0, 0, 0,
-9, 5, 3, 5, 3, 3, 3, 4, 4, 4, 4, 2, 0, 0, 0, 0,
-8, 7, 7, 5, 7, 5, 3, 4, 2, 2, 4, 2, 2, 2, 0, 0,
-8, 7, 7, 5, 5, 7, 3, 4, 6, 4, 4, 4, 2, 0, 0, 0,
-9, 7, 5, 3, 5, 3, 5, 6, 4, 2, 4, 2, 0, 0, 0, 0,
-8, 7, 3, 3, 5, 3, 3, 4, 2, 4, 2, 2, 0, 0, 0, 0,
-9, 5, 3, 1, 5, 3, 5, 4, 4, 2, 4, 2, 2, 0, 0, 0,
-8, 5, 5, 3, 5, 3, 3, 2, 6, 4, 2, 0, 2, 0, 0, 0,
-8, 5, 3, 7, 5, 5, 5, 4, 4, 4, 2, 4, 2, 2, 0, 0,
-8, 5, 7, 5, 7, 5, 5, 4, 6, 4, 4, 2, 2, 0, 0, 0,
-8, 5, 5, 5, 5, 5, 7, 7, 6, 6, 4, 4, 2, 2, 0, 0,
-8, 3, 5, 5, 5, 3, 5, 4, 2, 6, 4, 4, 2, 2, 0, 0,
-8, 7, 5, 3, 7, 5, 5, 6, 6, 6, 4, 6, 2, 0, 0, 0,
-9, 3, 5, 5, 7, 5, 5, 4, 4, 2, 2, 2, 0, 0, 0, 0,
-8, 5, 5, 5, 5, 5, 5, 4, 2, 4, 4, 4, 2, 0, 0, 0,
-8, 5, 5, 5, 5, 5, 3, 6, 4, 4, 4, 2, 2, 0, 0, 0,
-8, 5, 7, 5, 5, 5, 5, 4, 6, 6, 6, 2, 2, 0, 0, 0,
-8, 5, 5, 3, 5, 3, 3, 6, 4, 4, 2, 2, 2, 0, 0, 0,
-9, 5, 5, 3, 5, 3, 3, 4, 4, 2, 4, 2, 2, 0, 0, 0,
-8, 5, 5, 5, 5, 5, 5, 4, 4, 2, 4, 2, 0, 0, 0, 0,
-8, 7, 5, 5, 7, 5, 5, 4, 4, 4, 4, 4, 4, 2, 0, 0,
-8, 5, 5, 3, 3, 3, 3, 4, 4, 4, 2, 2, 4, 2, 0, 0,
-8, 5, 3, 1, 5, 5, 3, 7, 4, 2, 6, 4, 2, 2, 0, 0,
-9, 5, 5, 3, 5, 1, 3, 2, 4, 4, 2, 2, 2, 2, 0, 0,
-8, 3, 3, 3, 5, 3, 1, 4, 4, 6, 4, 2, 0, 0, 0, 0,
-9, 3, 7, 3, 3, 3, 3, 4, 4, 4, 4, 2, 0, 0, 0, 0,
-9, 5, 5, 5, 5, 5, 3, 4, 6, 4, 4, 2, 2, 0, 0, 0,
-8, 5, 5, 5, 5, 3, 5, 4, 6, 4, 6, 2, 0, 0, 0, 0,
-9, 3, 7, 5, 5, 3, 3, 4, 2, 4, 2, 2, 0, 0, 0, 0,
-9, 5, 7, 7, 7, 3, 5, 4, 2, 2, 4, 2, 2, 0, 0, 0,
-9, 5, 5, 5, 5, 5, 7, 6, 2, 6, 2, 4, 0, 0, 0, 0,
-9, 3, 3, 5, 3, 3, 3, 4, 4, 4, 2, 2, 2, 0, 0, 0,
-8, 5, 5, 3, 3, 1, 3, 4, 4, 4, 4, 2, 0, 0, 0, 0,
-8, 5, 5, 3, 3, 3, 3, 4, 4, 2, 4, 2, 0, 0, 0, 0,
-9, 3, 5, 3, 3, 3, 3, 6, 2, 2, 2, 2, 0, 0, 0, 0,
-9, 3, 7, 3, 1, 3, 3, 6, 2, 2, 4, 2, 2, 0, 0, 0,
-9, 5, 5, 3, 3, 3, 3, 4, 2, 2, 2, 2, 0, 0, 0, 0,
-9, 5, 7, 3, 3, 3, 3, 2, 4, 4, 2, 2, 2, 0, 0, 0,
-9, 7, 5, 7, 5, 5, 5, 4, 4, 4, 4, 2, 2, 0, 0, 0,
-8, 5, 7, 5, 5, 7, 5, 6, 2, 4, 2, 4, 2, 0, 0, 0,
-8, 5, 3, 5, 3, 5, 3, 2, 4, 4, 2, 2, 0, 0, 0, 0,
-9, 7, 5, 5, 3, 3, 3, 2, 4, 4, 2, 2, 0, 0, 0, 0,
-8, 7, 5, 3, 5, 3, 3, 4, 4, 4, 4, 2, 2, 0, 0, 0,
-9, 5, 3, 5, 3, 3, 1, 4, 6, 2, 2, 2, 2, 0, 0, 0,
-9, 7, 3, 7, 5, 3, 1, 2, 6, 4, 2, 2, 0, 0, 0, 0,
-9, 5, 5, 5, 5, 5, 3, 4, 6, 4, 2, 4, 2, 0, 0, 0,
-8, 7, 5, 5, 7, 3, 5, 4, 4, 4, 6, 2, 2, 0, 0, 0,
-9, 5, 3, 1, 3, 3, 3, 4, 2, 2, 6, 2, 0, 0, 0, 0,
-9, 7, 5, 3, 5, 7, 5, 4, 4, 4, 4, 2, 2, 0, 0, 0,
-9, 5, 5, 5, 5, 5, 3, 4, 4, 4, 4, 4, 4, 0, 0, 0,
-8, 5, 5, 7, 3, 5, 7, 6, 6, 6, 6, 4, 2, 2, 0, 0,
-8, 5, 3, 7, 7, 5, 3, 7, 6, 2, 4, 2, 0, 0, 0, 0,
-9, 5, 3, 5, 3, 3, 3, 4, 4, 2, 4, 2, 0, 0, 0, 0,
-8, 5, 3, 3, 3, 5, 3, 4, 2, 2, 4, 4, 2, 0, 0, 0,
-9, 5, 3, 1, 5, 3, 1, 2, 4, 2, 4, 4, 0, 0, 0, 0,
-9, 5, 5, 7, 5, 5, 5, 4, 6, 4, 4, 4, 0, 0, 0, 0,
-9, 5, 5, 5, 5, 5, 5, 2, 4, 2, 4, 4, 2, 0, 0, 0,
-9, 5, 5, 3, 5, 5, 1, 4, 4, 4, 2, 2, 0, 0, 0, 0,
-9, 5, 5, 3, 3, 3, 5, 4, 4, 4, 2, 2, 0, 0, 0, 0,
-9, 5, 5, 5, 7, 7, 3, 4, 6, 4, 4, 2, 2, 0, 0, 0,
-9, 5, 5, 5, 7, 3, 3, 6, 4, 4, 6, 4, 2, 0, 0, 0,
-8, 7, 7, 7, 5, 7, 5, 4, 4, 2, 6, 2, 2, 2, 0, 0,
-8, 5, 5, 5, 3, 5, 7, 4, 6, 4, 2, 2, 0, 0, 0, 0,
-8, 5, 5, 3, 3, 5, 3, 6, 4, 2, 2, 2, 2, 0, 0, 0,
-9, 7, 3, 3, 5, 5, 5, 6, 6, 2, 2, 2, 0, 0, 0, 0,
-9, 5, 5, 3, 1, 3, 3, 4, 4, 2, 2, 2, 0, 0, 0, 0,
-9, 5, 3, 5, 5, 3, 5, 6, 6, 2, 4, 4, 0, 0, 0, 0,
-9, 7, 5, 5, 7, 5, 3, 4, 4, 4, 2, 2, 2, 2, 0, 0,
-9, 5, 5, 5, 5, 5, 5, 6, 6, 4, 4, 4, 2, 2, 2, 0,
-9, 5, 7, 3, 5, 7, 3, 4, 4, 4, 2, 4, 0, 0, 0, 0,
-9, 7, 5, 3, 3, 3, 5, 6, 4, 2, 2, 2, 0, 0, 0, 0,
-8, 7, 7, 5, 3, 3, 3, 6, 6, 2, 2, 2, 0, 0, 0, 0,
-9, 7, 5, 5, 7, 7, 7, 4, 4, 4, 2, 2, 0, 0, 0, 0,
-8, 7, 5, 5, 5, 5, 5, 6, 6, 6, 6, 4, 2, 0, 0, 0,
-9, 5, 5, 5, 3, 3, 3, 4, 4, 2, 2, 2, 0, 0, 0, 0,
-8, 7, 3, 3, 1, 3, 1, 4, 6, 2, 2, 0, 2, 0, 0, 0,
-9, 7, 5, 7, 3, 3, 5, 6, 6, 2, 2, 2, 0, 0, 0, 0,
-9, 5, 3, 7, 5, 3, 5, 6, 4, 2, 2, 2, 0, 0, 0, 0,
-8, 7, 5, 7, 7, 7, 5, 4, 6, 4, 2, 2, 2, 2, 0, 0,
-9, 7, 5, 5, 5, 5, 5, 6, 4, 6, 6, 2, 2, 2, 0, 0,
-9, 5, 3, 7, 5, 3, 3, 2, 4, 4, 2, 2, 2, 0, 0, 0,
-8, 7, 5, 3, 3, 3, 3, 2, 2, 4, 2, 2, 2, 0, 0, 0,
-8, 5, 3, 5, 3, 5, 3, 4, 4, 4, 4, 2, 0, 0, 0, 0,
-8, 7, 5, 3, 3, 3, 3, 2, 4, 2, 4, 2, 2, 0, 0, 0,
-9, 7, 3, 3, 3, 3, 1, 4, 4, 2, 2, 2, 2, 0, 0, 0,
-9, 7, 5, 5, 5, 3, 5, 4, 2, 2, 2, 4, 0, 0, 0, 0,
-9, 7, 5, 5, 5, 7, 7, 4, 6, 2, 4, 2, 2, 0, 0, 0,
-9, 5, 5, 7, 5, 3, 5, 6, 4, 2, 2, 4, 2, 0, 0, 0,
-9, 5, 5, 5, 5, 5, 5, 4, 6, 4, 4, 4, 2, 0, 0, 0,
-9, 8, 5, 7, 3, 7, 5, 2, 6, 2, 2, 2, 0, 0, 0, 0,
-9, 5, 5, 5, 3, 5, 3, 6, 2, 4, 4, 2, 2, 0, 0, 0,
-8, 7, 5, 5, 5, 5, 3, 4, 4, 4, 6, 2, 2, 0, 0, 0,
-9, 7, 7, 5, 7, 5, 5, 4, 6, 4, 6, 4, 2, 2, 0, 0,
-8, 7, 7, 3, 3, 1, 5, 6, 2, 2, 2, 2, 0, 0, 0, 0,
-8, 5, 5, 3, 3, 1, 3, 6, 2, 4, 4, 2, 0, 0, 0, 0,
-8, 5, 7, 3, 5, 3, 3, 6, 2, 4, 4, 2, 2, 0, 0, 0,
-8, 7, 5, 3, 5, 3, 1, 4, 2, 2, 2, 2, 2, 0, 0, 0,
-8, 7, 7, 3, 3, 3, 3, 4, 2, 4, 2, 2, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 3, 5, 4, 2, 4, 4, 2, 0, 0, 0, 0,
-9, 5, 5, 5, 5, 5, 5, 4, 4, 4, 4, 2, 0, 0, 0, 0,
-9, 5, 5, 3, 3, 5, 3, 4, 6, 2, 6, 4, 0, 0, 0, 0,
-9, 7, 5, 5, 3, 7, 3, 4, 6, 4, 4, 4, 2, 0, 0, 0,
-9, 7, 7, 5, 5, 5, 3, 4, 2, 2, 4, 4, 2, 0, 0, 0,
-9, 7, 7, 5, 5, 3, 5, 4, 4, 4, 6, 4, 2, 0, 0, 0,
-9, 5, 3, 5, 7, 5, 7, 4, 2, 4, 4, 2, 2, 0, 0, 0,
-9, 7, 5, 7, 3, 5, 3, 2, 4, 2, 6, 4, 2, 2, 0, 0,
-9, 7, 3, 3, 3, 3, 5, 4, 4, 2, 2, 2, 2, 0, 0, 0,
-9, 3, 3, 3, 5, 3, 3, 4, 4, 4, 2, 2, 0, 0, 0, 0,
-9, 7, 5, 3, 3, 1, 5, 2, 2, 4, 4, 2, 0, 0, 0, 0,
-9, 5, 7, 3, 5, 3, 5, 2, 6, 2, 2, 2, 2, 0, 0, 0,
-8, 7, 5, 5, 5, 5, 3, 6, 2, 4, 4, 2, 0, 0, 0, 0,
-9, 5, 5, 7, 5, 3, 7, 4, 6, 4, 4, 2, 0, 0, 0, 0,
-8, 5, 3, 3, 3, 3, 3, 4, 4, 2, 2, 2, 2, 0, 0, 0,
-9, 5, 3, 5, 3, 3, 7, 6, 4, 6, 2, 2, 4, 0, 0, 0,
-9, 3, 5, 5, 3, 3, 5, 4, 4, 2, 4, 2, 2, 0, 0, 0,
-9, 5, 7, 5, 5, 5, 7, 6, 4, 4, 4, 4, 2, 2, 0, 0,
-9, 5, 5, 5, 3, 7, 3, 4, 6, 4, 4, 2, 2, 2, 0, 0,
-9, 5, 3, 3, 3, 3, 1, 6, 4, 2, 2, 2, 2, 0, 0, 0,
-9, 5, 5, 5, 5, 5, 3, 4, 2, 4, 4, 4, 0, 0, 0, 0,
-9, 5, 5, 3, 7, 5, 5, 6, 4, 4, 4, 4, 0, 0, 0, 0,
-9, 5, 7, 5, 5, 5, 3, 6, 2, 4, 4, 2, 0, 0, 0, 0,
-9, 7, 5, 7, 3, 5, 5, 4, 4, 4, 4, 2, 2, 0, 0, 0,
-9, 5, 7, 5, 3, 5, 1, 4, 4, 4, 2, 2, 0, 0, 0, 0,
-9, 5, 5, 5, 5, 5, 5, 4, 2, 6, 2, 2, 2, 2, 0, 0,
-9, 5, 5, 3, 5, 5, 5, 4, 6, 4, 4, 2, 2, 0, 0, 0,
-9, 7, 3, 5, 7, 3, 5, 4, 4, 6, 6, 2, 2, 2, 0, 0,
-8, 5, 5, 5, 5, 3, 5, 6, 4, 6, 2, 6, 2, 0, 0, 0,
-9, 5, 5, 3, 3, 1, 5, 2, 4, 2, 4, 2, 0, 0, 0, 0,
-8, 3, 3, 3, 5, 3, 5, 2, 6, 4, 2, 2, 0, 0, 0, 0,
-9, 3, 5, 3, 3, 3, 3, 4, 4, 2, 2, 2, 0, 0, 0, 0,
-8, 5, 5, 5, 5, 5, 5, 4, 4, 4, 2, 2, 2, 0, 0, 0,
-8, 5, 5, 3, 7, 5, 5, 6, 2, 6, 4, 2, 2, 0, 0, 0,
-8, 5, 5, 3, 3, 3, 3, 4, 4, 2, 4, 2, 2, 0, 0, 0,
-8, 5, 3, 5, 5, 1, 3, 4, 2, 4, 2, 2, 2, 0, 0, 0,
-9, 5, 3, 3, 5, 5, 3, 4, 2, 2, 4, 2, 0, 0, 0, 0,
-9, 3, 3, 5, 3, 5, 3, 4, 4, 4, 2, 2, 2, 2, 0, 0,
-8, 5, 5, 5, 5, 5, 5, 4, 4, 2, 4, 4, 2, 0, 0, 0,
-9, 5, 5, 3, 5, 3, 3, 2, 4, 4, 4, 2, 0, 0, 0, 0,
-9, 7, 5, 3, 5, 5, 3, 2, 4, 2, 2, 2, 2, 0, 0, 0,
-9, 7, 3, 1, 5, 3, 3, 4, 4, 2, 2, 2, 2, 2, 0, 0,
-9, 7, 5, 5, 5, 3, 1, 4, 4, 4, 2, 2, 2, 0, 0, 0,
-9, 7, 3, 3, 7, 5, 5, 4, 4, 6, 6, 4, 2, 2, 0, 0,
-9, 8, 7, 5, 7, 5, 5, 6, 4, 2, 6, 2, 2, 0, 0, 0,
-8, 8, 5, 5, 7, 5, 5, 4, 2, 2, 6, 2, 2, 0, 0, 0,
-8, 7, 3, 5, 7, 5, 3, 4, 2, 2, 2, 2, 2, 0, 0, 0,
-9, 7, 3, 1, 5, 3, 3, 4, 4, 2, 2, 2, 2, 2, 0, 0,
-9, 7, 5, 5, 5, 3, 3, 4, 4, 2, 4, 2, 0, 0, 0, 0,
-9, 7, 5, 5, 7, 5, 3, 2, 4, 4, 4, 2, 0, 0, 0, 0,
-9, 7, 5, 5, 7, 5, 5, 2, 2, 2, 2, 2, 2, 0, 0, 0,
-9, 8, 3, 3, 5, 3, 1, 2, 2, 2, 2, 2, 2, 0, 0, 0,
-9, 7, 5, 5, 5, 3, 3, 2, 2, 4, 2, 2, 2, 2, 0, 0,
-8, 7, 5, 5, 5, 5, 1, 4, 4, 4, 2, 2, 2, 2, 0, 0,
-9, 7, 3, 3, 5, 3, 1, 2, 4, 2, 4, 2, 2, 0, 0, 0,
-9, 7, 3, 1, 5, 1, 3, 4, 2, 4, 2, 2, 2, 0, 0, 0,
-9, 7, 3, 3, 5, 3, 5, 2, 2, 4, 2, 2, 2, 0, 0, 0,
-9, 7, 5, 1, 5, 5, 1, 4, 2, 2, 2, 2, 2, 0, 0, 0,
-9, 7, 5, 3, 5, 3, 3, 2, 2, 2, 4, 2, 2, 0, 0, 0,
-9, 7, 5, 3, 7, 5, 5, 4, 4, 4, 6, 2, 4, 2, 0, 0,
-9, 8, 5, 3, 7, 5, 5, 6, 2, 4, 6, 2, 2, 0, 0, 0,
-9, 8, 3, 3, 7, 5, 1, 4, 4, 2, 4, 0, 0, 0, 0, 0,
-9, 8, 5, 3, 7, 5, 3, 4, 4, 2, 2, 2, 0, 0, 0, 0,
-9, 7, 3, 1, 5, 3, 3, 2, 4, 2, 2, 2, 2, 0, 0, 0,
-9, 7, 5, 5, 5, 5, 1, 2, 2, 4, 2, 0, 0, 0, 0, 0,
-9, 7, 5, 5, 5, 5, 3, 2, 4, 4, 4, 2, 0, 0, 0, 0,
-9, 7, 3, 5, 5, 5, 3, 2, 2, 2, 2, 2, 0, 0, 0, 0,
-9, 7, 3, 3, 5, 1, 3, 2, 2, 2, 2, 2, 2, 0, 0, 0,
-9, 7, 1, 1, 5, 5, 3, 2, 2, 2, 2, 2, 0, 0, 0, 0,
-9, 7, 3, 1, 5, 5, 3, 2, 2, 4, 2, 2, 2, 0, 0, 0,
-9, 7, 3, 3, 7, 3, 3, 2, 2, 4, 2, 2, 2, 0, 0, 0,
-9, 7, 5, 3, 5, 3, 1, 4, 2, 4, 2, 2, 0, 0, 0, 0,
-9, 8, 3, 3, 3, 3, 1, 4, 4, 2, 2, 2, 0, 0, 0, 0,
-9, 7, 5, 3, 5, 3, 3, 2, 4, 4, 2, 2, 0, 0, 0, 0,
-9, 8, 5, 3, 7, 5, 3, 2, 4, 2, 2, 2, 2, 0, 0, 0,
-8, 7, 5, 5, 5, 3, 3, 4, 4, 4, 4, 2, 2, 0, 0, 0,
-9, 7, 3, 3, 3, 3, 3, 2, 4, 2, 2, 2, 2, 2, 0, 0,
-9, 5, 3, 3, 5, 5, 3, 2, 2, 2, 2, 2, 2, 0, 0, 0,
-9, 5, 3, 1, 5, 3, 3, 2, 4, 4, 2, 2, 2, 0, 0, 0,
-9, 7, 5, 3, 5, 3, 1, 4, 4, 2, 2, 2, 2, 2, 0, 0,
-9, 7, 3, 3, 3, 1, 1, 4, 4, 2, 2, 2, 2, 2, 0, 0,
-9, 7, 3, 3, 3, 3, 1, 4, 2, 2, 2, 2, 0, 0, 0, 0,
-9, 7, 3, 1, 5, 1, 1, 4, 2, 2, 2, 2, 2, 0, 0, 0,
-9, 7, 5, 5, 5, 5, 5, 4, 2, 4, 4, 2, 2, 2, 0, 0,
-9, 8, 5, 5, 7, 5, 5, 7, 2, 4, 6, 2, 2, 0, 0, 0,
-9, 8, 3, 5, 7, 5, 5, 4, 2, 2, 6, 2, 2, 0, 0, 0,
-9, 8, 3, 5, 7, 5, 3, 2, 4, 4, 2, 2, 0, 0, 0, 0,
-9, 7, 3, 1, 5, 1, 1, 2, 2, 2, 2, 2, 2, 0, 0, 0,
-9, 7, 5, 5, 7, 1, 3, 2, 2, 4, 2, 2, 2, 0, 0, 0,
-9, 7, 5, 5, 5, 5, 3, 2, 2, 4, 2, 0, 0, 0, 0, 0,
-9, 7, 5, 3, 7, 5, 3, 4, 2, 4, 4, 2, 2, 0, 0, 0,
-9, 8, 5, 3, 7, 5, 3, 2, 4, 2, 4, 2, 2, 0, 0, 0,
-9, 8, 3, 5, 7, 3, 3, 4, 2, 4, 2, 2, 2, 0, 0, 0,
-9, 7, 3, 5, 5, 3, 3, 4, 4, 4, 4, 2, 2, 2, 0, 0,
-9, 7, 5, 1, 5, 3, 3, 2, 2, 2, 2, 2, 2, 2, 0, 0,
-9, 5, 3, 3, 5, 3, 3, 2, 4, 2, 2, 2, 2, 0, 0, 0,
-9, 7, 3, 3, 3, 3, 3, 4, 4, 4, 2, 2, 2, 0, 0, 0,
-9, 5, 1, 3, 5, 1, 3, 2, 2, 2, 2, 2, 2, 0, 0, 0,
-9, 5, 1, 3, 3, 3, 3, 4, 2, 2, 2, 2, 2, 0, 0, 0,
-9, 7, 3, 3, 5, 5, 3, 2, 4, 2, 2, 2, 0, 0, 0, 0,
-9, 7, 3, 3, 5, 3, 3, 2, 2, 2, 2, 2, 2, 0, 0, 0,
-9, 7, 5, 5, 7, 5, 5, 4, 4, 6, 4, 2, 2, 2, 0, 0,
-8, 7, 5, 5, 7, 7, 5, 6, 2, 2, 4, 2, 2, 2, 0, 0,
-8, 7, 3, 5, 7, 5, 3, 2, 2, 4, 6, 2, 2, 0, 0, 0,
-8, 8, 5, 5, 7, 5, 3, 2, 4, 4, 2, 2, 0, 0, 0, 0,
-9, 7, 3, 1, 5, 3, 1, 4, 2, 4, 4, 2, 0, 0, 0, 0,
-9, 7, 5, 3, 7, 5, 1, 2, 4, 4, 4, 2, 2, 0, 0, 0,
-9, 7, 5, 5, 5, 5, 3, 2, 2, 4, 2, 2, 0, 0, 0, 0,
-9, 7, 5, 5, 5, 3, 3, 4, 4, 4, 2, 2, 2, 0, 0, 0,
-9, 8, 5, 3, 7, 7, 3, 4, 4, 2, 4, 2, 2, 0, 0, 0,
-9, 7, 3, 5, 5, 3, 3, 2, 4, 4, 2, 2, 2, 0, 0, 0,
-9, 7, 5, 5, 7, 5, 5, 4, 4, 6, 6, 2, 2, 2, 0, 0,
-9, 8, 5, 5, 7, 5, 5, 4, 2, 4, 6, 2, 2, 0, 0, 0,
-9, 7, 5, 5, 3, 1, 3, 2, 2, 2, 2, 2, 0, 0, 0, 0,
-9, 7, 5, 1, 3, 3, 1, 2, 4, 2, 2, 2, 2, 0, 0, 0,
-9, 7, 5, 1, 5, 3, 3, 4, 2, 2, 2, 2, 2, 0, 0, 0,
-9, 7, 5, 3, 5, 5, 3, 2, 2, 4, 2, 2, 0, 0, 0, 0,
-9, 7, 5, 3, 5, 5, 3, 2, 2, 2, 4, 2, 0, 0, 0, 0,
-9, 8, 5, 3, 7, 7, 3, 2, 4, 2, 4, 2, 0, 0, 0, 0,
-9, 7, 3, 1, 5, 3, 3, 4, 2, 2, 2, 2, 0, 0, 0, 0,
-9, 7, 5, 3, 7, 3, 3, 4, 2, 4, 2, 2, 2, 2, 0, 0,
-9, 7, 5, 3, 5, 3, 3, 4, 6, 4, 4, 2, 2, 2, 0, 0,
-9, 5, 3, 3, 5, 3, 3, 4, 2, 2, 2, 2, 2, 0, 0, 0,
-9, 7, 1, 3, 5, 5, 3, 4, 4, 2, 2, 2, 2, 2, 0, 0,
-9, 7, 5, 3, 5, 5, 5, 4, 4, 4, 4, 2, 4, 4, 0, 0,
-9, 7, 5, 5, 7, 5, 5, 6, 2, 4, 6, 2, 2, 2, 0, 0,
-9, 7, 5, 3, 5, 3, 3, 2, 2, 2, 4, 2, 0, 0, 0, 0,
-9, 7, 3, 1, 3, 3, 3, 2, 2, 2, 2, 2, 0, 0, 0, 0,
-9, 7, 1, 3, 7, 3, 3, 4, 4, 2, 2, 2, 0, 2, 0, 0,
-9, 7, 3, 5, 5, 5, 5, 2, 4, 4, 2, 0, 0, 0, 0, 0,
-9, 5, 3, 5, 5, 5, 5, 4, 2, 4, 4, 2, 0, 0, 0, 0,
-9, 7, 5, 3, 5, 3, 3, 2, 2, 4, 2, 2, 0, 0, 0, 0,
-9, 8, 5, 3, 5, 5, 3, 2, 4, 4, 2, 2, 0, 0, 0, 0,
-9, 8, 3, 3, 3, 3, 1, 2, 4, 2, 2, 2, 2, 0, 0, 0,
-9, 7, 3, 3, 5, 5, 1, 2, 2, 2, 2, 2, 2, 2, 0, 0,
-9, 5, 5, 3, 5, 3, 3, 2, 4, 2, 4, 2, 2, 2, 0, 0,
-9, 7, 5, 5, 7, 5, 5, 4, 2, 4, 6, 2, 6, 0, 0, 0,
-9, 7, 3, 5, 5, 5, 5, 6, 4, 4, 4, 2, 2, 0, 0, 0,
-9, 7, 5, 1, 5, 3, 1, 2, 4, 4, 4, 2, 2, 0, 0, 0,
-9, 7, 3, 1, 5, 1, 1, 4, 4, 2, 2, 2, 0, 0, 0, 0,
-9, 7, 5, 3, 7, 5, 3, 4, 4, 2, 4, 2, 0, 0, 0, 0,
-9, 7, 5, 5, 5, 5, 3, 2, 2, 4, 2, 2, 0, 0, 0, 0,
-9, 7, 5, 5, 5, 3, 3, 2, 2, 4, 2, 2, 0, 0, 0, 0,
-9, 7, 5, 5, 7, 5, 3, 4, 2, 4, 2, 2, 2, 0, 0, 0,
-9, 7, 3, 5, 5, 3, 3, 2, 2, 4, 2, 2, 2, 0, 0, 0,
-9, 7, 3, 3, 5, 3, 1, 2, 2, 2, 4, 2, 0, 0, 0, 0,
-9, 7, 5, 3, 5, 1, 3, 2, 2, 2, 2, 2, 2, 0, 0, 0,
-9, 7, 5, 3, 5, 1, 5, 2, 4, 4, 2, 2, 2, 0, 0, 0,
-9, 8, 3, 3, 5, 3, 3, 2, 2, 2, 2, 2, 0, 0, 0, 0,
-9, 7, 3, 3, 5, 3, 1, 2, 2, 2, 2, 2, 2, 0, 0, 0,
-9, 7, 3, 3, 5, 3, 1, 4, 2, 2, 2, 2, 2, 2, 0, 0,
-9, 7, 3, 5, 5, 3, 3, 4, 2, 2, 4, 2, 2, 0, 0, 0,
-8, 7, 7, 5, 7, 3, 1, 6, 4, 4, 4, 2, 0, 0, 0, 0,
-9, 5, 3, 3, 5, 1, 3, 4, 4, 2, 2, 2, 2, 0, 0, 0,
-9, 5, 5, 3, 3, 3, 3, 2, 2, 2, 4, 2, 2, 2, 0, 0,
-9, 7, 3, 1, 5, 3, 1, 2, 2, 2, 4, 2, 2, 0, 0, 0,
-9, 7, 5, 3, 3, 3, 1, 4, 2, 2, 2, 2, 2, 2, 0, 0,
-9, 5, 5, 1, 3, 3, 3, 2, 4, 2, 2, 2, 2, 0, 0, 0,
-9, 7, 3, 5, 5, 5, 3, 2, 4, 4, 2, 2, 4, 2, 0, 0,
-9, 8, 7, 5, 7, 7, 5, 6, 4, 4, 6, 2, 4, 0, 0, 0,
-9, 8, 5, 3, 7, 5, 5, 6, 2, 4, 6, 2, 0, 0, 0, 0,
-9, 8, 7, 3, 7, 3, 3, 6, 4, 2, 4, 2, 2, 0, 0, 0,
-9, 5, 3, 3, 7, 3, 3, 2, 4, 2, 2, 2, 2, 2, 0, 0,
-9, 7, 3, 5, 5, 3, 1, 4, 4, 4, 2, 2, 2, 0, 0, 0,
-9, 7, 3, 5, 5, 5, 3, 2, 2, 4, 4, 2, 0, 0, 0, 0,
-9, 7, 5, 3, 7, 5, 3, 4, 2, 4, 2, 2, 2, 0, 0, 0,
-9, 8, 3, 5, 5, 5, 3, 4, 4, 4, 4, 2, 0, 0, 0, 0,
-9, 7, 5, 3, 7, 3, 1, 4, 2, 2, 2, 2, 2, 0, 0, 0,
-9, 7, 5, 5, 5, 3, 1, 4, 4, 4, 4, 2, 2, 0, 0, 0,
-9, 7, 3, 3, 7, 1, 3, 2, 2, 4, 2, 2, 0, 0, 0, 0,
-9, 7, 3, 3, 5, 3, 3, 2, 2, 2, 2, 2, 2, 0, 0, 0,
-9, 7, 5, 3, 7, 1, 1, 4, 2, 2, 2, 2, 2, 0, 0, 0,
-9, 5, 5, 1, 3, 3, 3, 4, 2, 2, 2, 2, 2, 0, 0, 0,
-9, 7, 3, 1, 5, 1, 1, 2, 4, 4, 4, 2, 2, 0, 0, 0,
-9, 7, 3, 1, 5, 1, 1, 2, 4, 4, 2, 2, 2, 2, 0, 0,
-9, 7, 5, 5, 5, 5, 3, 2, 2, 4, 4, 4, 4, 2, 0, 0,
-9, 8, 5, 5, 7, 7, 5, 6, 4, 6, 6, 2, 2, 0, 0, 0,
-9, 5, 5, 1, 5, 5, 3, 2, 2, 2, 4, 2, 2, 0, 0, 0,
-9, 7, 3, 3, 5, 3, 1, 4, 2, 2, 2, 2, 2, 2, 0, 0,
-9, 7, 3, 3, 7, 3, 3, 2, 4, 4, 2, 2, 0, 0, 0, 0,
-9, 7, 5, 3, 5, 3, 3, 2, 4, 2, 2, 2, 2, 0, 0, 0,
-9, 7, 7, 5, 7, 5, 3, 2, 2, 4, 4, 2, 0, 0, 0, 0,
-9, 7, 5, 5, 7, 5, 3, 2, 4, 4, 2, 2, 0, 0, 0, 0,
-9, 7, 3, 3, 5, 5, 3, 4, 2, 4, 2, 2, 2, 0, 0, 0,
-9, 8, 5, 3, 5, 5, 3, 2, 2, 2, 4, 2, 2, 0, 0, 0,
-9, 7, 3, 3, 5, 5, 3, 6, 4, 4, 4, 2, 2, 2, 0, 0,
-9, 5, 3, 3, 5, 1, 1, 4, 2, 2, 2, 2, 2, 0, 0, 0,
-9, 7, 3, 3, 5, 3, 1, 4, 4, 4, 2, 2, 2, 2, 0, 0,
-9, 7, 3, 3, 5, 3, 1, 2, 2, 2, 2, 2, 0, 0, 0, 0,
-9, 7, 3, 3, 5, 3, 3, 2, 2, 4, 4, 2, 2, 0, 0, 0,
-9, 5, 3, 3, 5, 3, 1, 4, 6, 2, 2, 2, 2, 0, 0, 0,
-9, 5, 5, 3, 5, 3, 3, 2, 2, 4, 2, 2, 2, 0, 0, 0,
-9, 7, 3, 3, 5, 5, 5, 4, 2, 2, 4, 4, 4, 0, 0, 0,
-9, 8, 5, 3, 5, 5, 7, 6, 6, 4, 6, 2, 2, 0, 0, 0,
-9, 7, 3, 3, 3, 3, 3, 4, 2, 2, 2, 2, 2, 0, 0, 0,
-9, 7, 3, 1, 3, 5, 1, 2, 4, 2, 2, 2, 2, 2, 0, 0,
-9, 7, 3, 1, 7, 3, 1, 2, 2, 4, 2, 2, 2, 0, 0, 0,
-9, 7, 3, 3, 5, 3, 1, 4, 2, 2, 2, 2, 2, 0, 0, 0,
-9, 7, 3, 5, 5, 5, 3, 4, 2, 4, 4, 2, 0, 0, 0, 0,
-9, 7, 3, 1, 5, 3, 3, 2, 4, 2, 2, 2, 2, 0, 0, 0,
-9, 7, 3, 3, 5, 3, 3, 2, 2, 2, 4, 2, 2, 0, 0, 0,
-9, 7, 3, 5, 7, 7, 5, 6, 2, 4, 6, 4, 4, 0, 0, 0,
-9, 8, 5, 5, 7, 5, 5, 4, 4, 4, 6, 2, 2, 0, 0, 0,
-9, 7, 3, 1, 5, 3, 1, 2, 4, 4, 2, 2, 2, 0, 0, 0,
-9, 7, 3, 1, 5, 3, 3, 2, 2, 2, 2, 2, 0, 0, 0, 0,
-9, 7, 3, 1, 3, 3, 3, 4, 2, 2, 2, 2, 0, 0, 0, 0,
-9, 5, 1, 3, 5, 3, 1, 2, 2, 4, 2, 2, 2, 0, 0, 0,
-9, 7, 3, 5, 5, 5, 3, 4, 2, 4, 4, 2, 0, 0, 0, 0,
-9, 7, 3, 5, 5, 5, 3, 4, 2, 4, 2, 2, 2, 0, 0, 0,
-9, 7, 3, 3, 3, 1, 3, 4, 2, 2, 2, 2, 2, 2, 0, 0,
-9, 5, 3, 3, 3, 3, 1, 2, 4, 4, 2, 2, 2, 2, 0, 0,
-9, 7, 5, 3, 5, 3, 1, 4, 4, 2, 2, 2, 2, 2, 0, 0,
-9, 7, 3, 3, 5, 1, 3, 2, 4, 2, 2, 2, 2, 0, 0, 0,
-9, 7, 3, 3, 5, 5, 1, 4, 2, 4, 2, 2, 2, 0, 0, 0,
-9, 5, 3, 3, 3, 3, 1, 4, 2, 2, 2, 2, 2, 0, 0, 0,
-9, 7, 5, 1, 5, 1, 3, 2, 4, 2, 2, 2, 2, 0, 0, 0,
-9, 5, 5, 5, 5, 5, 3, 4, 4, 6, 4, 2, 2, 0, 0, 0,
-9, 7, 5, 5, 7, 7, 5, 4, 4, 6, 6, 2, 2, 0, 0, 0,
-9, 8, 5, 5, 5, 5, 5, 4, 2, 4, 6, 2, 2, 0, 0, 0,
-9, 8, 5, 3, 7, 7, 5, 2, 4, 4, 6, 2, 0, 0, 0, 0,
-9, 7, 3, 3, 5, 5, 3, 2, 2, 2, 4, 0, 0, 0, 0, 0,
-9, 8, 5, 3, 5, 1, 1, 4, 4, 6, 2, 2, 2, 0, 0, 0,
-9, 8, 5, 3, 5, 5, 1, 4, 4, 4, 4, 2, 2, 2, 0, 0,
-9, 5, 3, 3, 3, 5, 3, 2, 4, 4, 2, 2, 2, 0, 0, 0,
-8, 7, 3, 3, 5, 5, 3, 2, 2, 2, 4, 0, 0, 0, 0, 0,
-8, 7, 3, 3, 5, 1, 3, 2, 4, 2, 2, 0, 0, 0, 0, 0,
-9, 7, 3, 1, 5, 3, 1, 4, 2, 2, 2, 0, 0, 0, 0, 0,
-9, 5, 3, 3, 3, 5, 1, 2, 4, 4, 2, 2, 0, 0, 0, 0,
-8, 7, 3, 3, 5, 1, 3, 2, 4, 4, 4, 2, 0, 0, 0, 0,
-9, 7, 3, 3, 7, 5, 3, 2, 2, 4, 2, 2, 0, 0, 0, 0,
-9, 7, 5, 3, 5, 5, 3, 2, 2, 4, 2, 2, 0, 0, 0, 0,
-9, 8, 5, 3, 5, 3, 1, 4, 4, 4, 4, 2, 0, 0, 0, 0,
-9, 7, 3, 5, 7, 5, 1, 2, 2, 2, 2, 2, 0, 0, 0, 0,
-9, 7, 3, 1, 5, 5, 1, 4, 4, 4, 4, 2, 2, 2, 0, 0,
-9, 7, 3, 1, 5, 5, 3, 2, 4, 4, 2, 2, 2, 0, 0, 0,
-9, 7, 3, 3, 5, 5, 5, 4, 4, 4, 2, 2, 2, 0, 0, 0,
-9, 7, 3, 5, 7, 7, 5, 6, 2, 6, 6, 2, 4, 0, 0, 0,
-9, 7, 3, 3, 5, 3, 1, 2, 2, 2, 2, 2, 0, 0, 0, 0,
-9, 7, 3, 3, 5, 1, 3, 2, 2, 2, 2, 2, 2, 0, 0, 0,
-9, 7, 3, 3, 3, 3, 3, 4, 2, 2, 2, 2, 0, 0, 0, 0,
-9, 7, 5, 3, 5, 5, 3, 4, 2, 4, 4, 0, 2, 0, 0, 0,
-9, 7, 5, 3, 5, 5, 3, 2, 4, 4, 4, 2, 0, 0, 0, 0,
-9, 7, 3, 1, 7, 3, 1, 4, 2, 2, 2, 2, 0, 0, 0, 0,
-9, 7, 3, 3, 7, 1, 3, 2, 2, 2, 4, 2, 2, 2, 0, 0,
-9, 7, 5, 5, 7, 3, 3, 4, 4, 4, 4, 2, 2, 0, 0, 0,
-9, 7, 5, 3, 7, 3, 1, 4, 4, 4, 2, 4, 2, 2, 0, 0,
-9, 5, 3, 3, 3, 3, 1, 4, 2, 2, 2, 2, 2, 0, 0, 0,
-9, 7, 3, 1, 5, 1, 1, 4, 4, 2, 2, 2, 0, 0, 0, 0,
-9, 7, 3, 1, 5, 3, 1, 4, 2, 2, 2, 2, 2, 0, 0, 0,
-9, 7, 3, 1, 3, 1, 3, 4, 2, 2, 2, 2, 2, 0, 0, 0,
-9, 7, 5, 1, 5, 3, 1, 4, 4, 4, 2, 2, 2, 0, 0, 0,
-9, 5, 5, 3, 5, 5, 3, 4, 2, 2, 4, 2, 2, 2, 0, 0,
-9, 7, 5, 5, 7, 7, 5, 6, 2, 4, 6, 2, 2, 2, 0, 0,
-9, 7, 5, 1, 5, 3, 1, 4, 2, 2, 2, 2, 2, 2, 0, 0,
-9, 7, 5, 3, 5, 3, 3, 2, 2, 2, 2, 2, 2, 0, 0, 0,
-9, 7, 1, 3, 5, 5, 3, 4, 4, 2, 2, 2, 2, 0, 0, 0,
-9, 7, 3, 3, 7, 5, 3, 4, 4, 2, 4, 2, 2, 2, 0, 0,
-9, 7, 5, 3, 5, 5, 3, 4, 2, 4, 2, 2, 2, 0, 0, 0,
-9, 7, 5, 3, 5, 5, 3, 2, 4, 4, 4, 2, 0, 0, 0, 0,
-9, 8, 3, 5, 7, 5, 3, 4, 4, 4, 2, 2, 2, 0, 0, 0,
-9, 7, 3, 3, 7, 3, 3, 2, 2, 4, 2, 2, 0, 0, 0, 0,
-9, 8, 3, 1, 5, 3, 3, 2, 2, 2, 4, 2, 0, 0, 0, 0,
-9, 7, 3, 5, 3, 3, 3, 2, 2, 2, 2, 2, 2, 0, 0, 0,
-9, 7, 3, 3, 5, 3, 3, 2, 2, 2, 2, 2, 0, 0, 0, 0,
-9, 8, 5, 3, 7, 3, 3, 2, 2, 2, 2, 2, 0, 0, 0, 0,
-9, 8, 3, 3, 5, 3, 3, 2, 2, 2, 2, 2, 2, 0, 0, 0,
-9, 7, 3, 3, 5, 5, 3, 4, 2, 4, 2, 2, 2, 0, 0, 0,
-9, 8, 3, 5, 7, 5, 3, 4, 4, 2, 2, 4, 2, 0, 0, 0,
-9, 5, 5, 3, 5, 5, 5, 4, 4, 4, 4, 2, 2, 2, 0, 0,
-9, 5, 5, 3, 5, 3, 3, 4, 4, 2, 2, 2, 2, 2, 0, 0,
-9, 8, 5, 3, 5, 5, 3, 6, 2, 4, 6, 2, 2, 2, 0, 0,
-9, 8, 5, 1, 7, 5, 3, 2, 2, 4, 2, 2, 2, 2, 0, 0,
-9, 8, 5, 3, 7, 3, 3, 4, 4, 6, 6, 2, 0, 0, 0, 0,
-9, 7, 3, 5, 7, 3, 3, 4, 4, 2, 2, 2, 0, 0, 0, 0,
-9, 7, 1, 1, 5, 3, 3, 2, 2, 2, 2, 2, 2, 0, 0, 0,
-9, 5, 5, 1, 3, 3, 3, 2, 2, 2, 4, 2, 0, 0, 0, 0,
-9, 7, 7, 3, 7, 5, 3, 2, 2, 4, 4, 2, 0, 0, 0, 0,
-9, 7, 5, 5, 7, 5, 3, 4, 4, 2, 2, 2, 0, 0, 0, 0,
-9, 7, 3, 3, 5, 3, 3, 2, 2, 2, 2, 2, 0, 0, 0, 0,
-9, 7, 3, 1, 5, 3, 3, 4, 2, 4, 2, 2, 2, 0, 0, 0,
-9, 7, 1, 1, 5, 3, 3, 2, 2, 2, 2, 2, 2, 0, 0, 0,
-9, 7, 5, 5, 7, 3, 5, 2, 4, 4, 2, 2, 2, 2, 0, 0,
-9, 7, 5, 5, 5, 3, 3, 4, 2, 2, 4, 2, 2, 0, 0, 0,
-9, 7, 1, 1, 3, 3, 1, 4, 2, 4, 2, 2, 2, 0, 0, 0,
-9, 7, 3, 3, 3, 3, 1, 4, 4, 2, 2, 2, 2, 2, 0, 0,
-9, 7, 3, 1, 5, 3, 3, 4, 2, 2, 2, 2, 2, 2, 0, 0,
-9, 7, 3, 1, 5, 3, 1, 2, 2, 2, 2, 4, 2, 0, 0, 0,
-9, 7, 3, 5, 7, 3, 3, 2, 2, 2, 4, 2, 2, 0, 0, 0,
-9, 5, 5, 5, 5, 5, 3, 6, 4, 4, 2, 2, 4, 2, 0, 0,
-9, 5, 5, 5, 7, 3, 3, 4, 4, 2, 2, 4, 2, 0, 0, 0,
-9, 5, 5, 5, 5, 3, 5, 4, 2, 4, 2, 2, 0, 0, 0, 0,
-9, 5, 3, 3, 5, 3, 3, 6, 2, 2, 2, 2, 0, 0, 0, 0,
-8, 5, 3, 1, 5, 3, 3, 4, 2, 2, 2, 2, 0, 0, 0, 0,
-9, 7, 3, 3, 3, 3, 3, 2, 2, 2, 2, 0, 0, 0, 0, 0,
-9, 7, 5, 5, 7, 5, 5, 2, 4, 6, 6, 4, 4, 0, 0, 0,
-9, 8, 3, 5, 7, 7, 5, 6, 4, 6, 4, 4, 2, 0, 0, 0,
-9, 8, 3, 5, 7, 5, 5, 2, 4, 4, 6, 2, 0, 0, 0, 0,
-9, 8, 3, 5, 5, 3, 5, 2, 4, 2, 4, 2, 0, 0, 0, 0,
-9, 5, 3, 1, 5, 3, 3, 2, 2, 2, 2, 2, 2, 0, 0, 0,
-9, 7, 5, 5, 5, 5, 1, 4, 2, 2, 4, 2, 2, 0, 0, 0,
-9, 7, 3, 5, 7, 5, 3, 2, 2, 6, 4, 2, 2, 0, 0, 0,
-9, 7, 5, 5, 7, 3, 1, 4, 4, 2, 2, 2, 2, 0, 0, 0,
-9, 7, 5, 5, 5, 3, 3, 4, 4, 2, 2, 2, 0, 0, 0, 0,
-9, 7, 3, 3, 5, 3, 3, 2, 2, 2, 2, 2, 0, 0, 0, 0,
-9, 7, 3, 5, 7, 3, 1, 4, 4, 2, 2, 2, 0, 0, 0, 0,
-9, 5, 5, 5, 5, 3, 5, 4, 6, 4, 4, 2, 2, 2, 0, 0,
-8, 5, 5, 5, 7, 3, 3, 4, 2, 2, 4, 2, 2, 0, 0, 0,
-9, 3, 5, 5, 3, 3, 3, 2, 4, 2, 2, 2, 0, 0, 0, 0,
-9, 7, 3, 1, 5, 3, 3, 2, 2, 2, 2, 2, 0, 0, 0, 0,
-8, 3, 5, 3, 3, 3, 1, 2, 4, 2, 2, 0, 0, 0, 0, 0,
-9, 5, 3, 3, 5, 3, 1, 2, 2, 2, 2, 2, 0, 0, 0, 0,
-9, 7, 5, 3, 7, 5, 5, 4, 4, 6, 4, 2, 4, 2, 0, 0,
-9, 8, 7, 3, 7, 7, 5, 4, 4, 4, 4, 2, 2, 0, 0, 0,
-9, 8, 3, 5, 7, 7, 5, 4, 4, 6, 6, 2, 0, 0, 0, 0,
-9, 7, 3, 1, 5, 5, 3, 2, 2, 2, 2, 2, 2, 0, 0, 0,
-9, 7, 3, 3, 5, 1, 1, 2, 4, 2, 2, 2, 2, 0, 0, 0,
-9, 7, 3, 3, 3, 3, 3, 4, 2, 4, 4, 2, 0, 0, 0, 0,
-9, 7, 5, 5, 5, 5, 3, 2, 4, 4, 4, 2, 0, 0, 0, 0,
-9, 7, 5, 5, 7, 5, 3, 2, 2, 2, 4, 2, 0, 0, 0, 0,
-9, 7, 5, 5, 7, 5, 3, 4, 2, 2, 4, 2, 0, 2, 0, 0,
-9, 7, 3, 3, 5, 3, 3, 4, 2, 4, 2, 2, 2, 0, 0, 0,
-9, 8, 3, 3, 5, 3, 1, 2, 2, 2, 2, 2, 0, 0, 0, 0,
-9, 7, 3, 1, 5, 3, 3, 0, 4, 4, 4, 2, 0, 0, 0, 0,
-9, 7, 5, 5, 7, 5, 1, 4, 4, 4, 2, 2, 2, 0, 0, 0,
-9, 7, 3, 5, 5, 5, 3, 4, 4, 4, 4, 2, 0, 0, 0, 0,
-9, 7, 3, 3, 3, 3, 1, 4, 4, 2, 2, 2, 2, 0, 0, 0,
-9, 7, 1, 3, 5, 3, 1, 4, 4, 4, 2, 2, 2, 0, 0, 0,
-9, 7, 3, 3, 3, 3, 3, 2, 4, 2, 2, 2, 2, 2, 0, 0,
-9, 7, 3, 3, 5, 3, 1, 4, 4, 2, 2, 2, 2, 0, 0, 0,
-9, 7, 3, 3, 5, 3, 1, 4, 2, 2, 2, 2, 2, 0, 0, 0,
-9, 7, 3, 3, 5, 5, 3, 4, 4, 2, 2, 2, 0, 0, 0, 0,
-9, 7, 3, 1, 3, 3, 3, 2, 2, 2, 2, 2, 2, 2, 0, 0,
-8, 5, 5, 5, 5, 5, 3, 4, 2, 2, 2, 2, 2, 2, 0, 0,
-8, 5, 5, 5, 5, 5, 1, 6, 2, 4, 4, 2, 2, 0, 0, 0,
-8, 5, 7, 7, 5, 1, 3, 4, 4, 4, 2, 2, 0, 0, 0, 0,
-8, 5, 5, 3, 5, 5, 5, 4, 4, 4, 4, 4, 2, 2, 0, 0,
-9, 7, 5, 3, 7, 7, 5, 6, 2, 4, 6, 4, 2, 2, 0, 0,
-9, 8, 5, 3, 5, 5, 5, 4, 4, 6, 4, 2, 2, 0, 0, 0,
-9, 8, 5, 5, 5, 5, 5, 2, 2, 2, 4, 2, 0, 0, 0, 0,
-9, 8, 3, 3, 5, 3, 3, 2, 4, 2, 4, 0, 0, 0, 0, 0,
-9, 7, 3, 3, 5, 3, 1, 4, 2, 2, 2, 2, 2, 0, 0, 0,
-9, 7, 5, 3, 3, 3, 1, 4, 2, 2, 2, 2, 2, 2, 0, 0,
-9, 7, 1, 3, 5, 1, 3, 2, 2, 2, 2, 2, 0, 2, 0, 0,
-9, 5, 5, 3, 5, 5, 5, 4, 4, 4, 4, 2, 2, 0, 0, 0,
-9, 8, 5, 3, 7, 7, 5, 6, 4, 4, 6, 2, 2, 2, 0, 0,
-9, 7, 3, 1, 7, 5, 3, 2, 2, 2, 4, 2, 0, 0, 0, 0,
-9, 7, 3, 3, 5, 3, 3, 2, 2, 4, 2, 2, 2, 0, 0, 0,
-9, 7, 3, 3, 5, 3, 3, 2, 4, 2, 4, 2, 0, 0, 0, 0,
-9, 7, 5, 5, 7, 5, 3, 4, 4, 2, 4, 2, 2, 0, 0, 0,
-9, 5, 5, 3, 5, 5, 3, 2, 4, 2, 4, 2, 0, 0, 0, 0,
-9, 7, 3, 3, 5, 3, 3, 4, 2, 2, 4, 2, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 3, 3, 4, 2, 4, 4, 2, 2, 2, 0, 0,
-9, 7, 3, 5, 5, 5, 3, 6, 2, 4, 2, 4, 2, 2, 0, 0,
-9, 8, 5, 5, 3, 3, 3, 2, 2, 4, 2, 2, 2, 0, 0, 0,
-9, 7, 5, 5, 7, 5, 5, 4, 4, 4, 6, 4, 4, 2, 0, 0,
-9, 8, 5, 7, 7, 7, 5, 4, 2, 6, 4, 2, 2, 0, 0, 0,
-9, 8, 5, 5, 7, 5, 5, 4, 4, 4, 4, 2, 2, 0, 0, 0,
-9, 7, 3, 5, 5, 1, 3, 4, 2, 2, 4, 0, 0, 0, 0, 0,
-9, 7, 3, 1, 3, 3, 3, 2, 2, 2, 2, 2, 2, 2, 0, 0,
-9, 7, 5, 3, 5, 5, 3, 2, 2, 4, 2, 2, 0, 0, 0, 0,
-9, 7, 5, 3, 7, 3, 1, 2, 2, 4, 4, 2, 0, 0, 0, 0,
-9, 7, 3, 5, 7, 5, 3, 4, 4, 4, 4, 2, 2, 2, 0, 0,
-9, 7, 3, 5, 5, 7, 1, 4, 4, 2, 2, 2, 2, 0, 0, 0,
-9, 7, 3, 5, 5, 3, 5, 2, 4, 4, 2, 4, 4, 2, 0, 0,
-9, 7, 3, 3, 7, 5, 5, 2, 4, 6, 4, 4, 4, 2, 0, 0,
-9, 7, 3, 1, 7, 5, 5, 2, 2, 4, 4, 2, 2, 2, 0, 0,
-9, 8, 5, 5, 7, 3, 5, 2, 6, 6, 4, 0, 0, 0, 0, 0,
-9, 8, 5, 3, 7, 1, 1, 2, 2, 2, 2, 0, 0, 0, 0, 0,
-9, 7, 3, 3, 5, 3, 3, 4, 4, 2, 2, 2, 2, 2, 0, 0,
-9, 7, 3, 3, 5, 5, 1, 2, 4, 4, 2, 2, 0, 0, 0, 0,
-9, 7, 5, 3, 7, 3, 3, 4, 2, 2, 2, 2, 2, 2, 0, 0,
-9, 7, 3, 3, 5, 5, 1, 4, 6, 4, 4, 2, 0, 0, 0, 0,
-9, 7, 5, 5, 5, 3, 3, 2, 2, 6, 2, 2, 2, 0, 0, 0,
-9, 7, 5, 7, 7, 5, 5, 4, 4, 4, 4, 2, 2, 0, 0, 0,
-9, 8, 5, 3, 7, 7, 7, 4, 2, 6, 4, 2, 0, 0, 0, 0,
-9, 7, 3, 3, 3, 1, 3, 4, 2, 2, 2, 2, 0, 0, 0, 0,
-9, 5, 5, 1, 3, 3, 3, 2, 2, 6, 2, 2, 2, 0, 0, 0,
-9, 7, 3, 1, 5, 3, 3, 4, 2, 2, 2, 2, 2, 0, 0, 0,
-9, 7, 5, 3, 5, 3, 3, 2, 2, 4, 2, 2, 0, 0, 0, 0,
-9, 8, 5, 3, 7, 5, 3, 2, 4, 4, 4, 2, 0, 0, 0, 0,
-9, 7, 3, 1, 5, 3, 3, 4, 4, 4, 2, 2, 2, 0, 0, 0,
-9, 7, 3, 5, 5, 3, 3, 4, 4, 2, 2, 2, 0, 0, 0, 0,
-8, 7, 3, 5, 7, 5, 7, 2, 4, 6, 4, 2, 4, 0, 0, 0,
-8, 7, 3, 5, 7, 5, 5, 4, 2, 6, 4, 2, 0, 0, 0, 0,
-9, 7, 3, 3, 5, 3, 3, 4, 4, 2, 2, 2, 2, 0, 0, 0,
-9, 5, 5, 3, 5, 3, 3, 2, 2, 2, 2, 0, 2, 2, 0, 0,
-9, 5, 3, 1, 5, 3, 1, 2, 4, 2, 4, 2, 0, 0, 0, 0,
-9, 7, 3, 3, 3, 5, 1, 4, 2, 2, 4, 2, 2, 0, 0, 0,
-9, 8, 3, 5, 7, 5, 3, 2, 2, 4, 4, 2, 0, 0, 0, 0,
-9, 7, 3, 3, 7, 3, 3, 2, 2, 2, 4, 2, 0, 0, 0, 0,
-9, 7, 3, 1, 5, 3, 1, 2, 4, 2, 2, 2, 2, 0, 0, 0,
-9, 7, 3, 3, 5, 3, 3, 2, 2, 2, 2, 2, 2, 0, 0, 0,
-9, 8, 7, 3, 7, 3, 3, 2, 2, 2, 2, 2, 2, 0, 0, 0,
-9, 7, 5, 5, 7, 5, 3, 6, 4, 4, 2, 2, 2, 0, 0, 0,
-9, 7, 3, 3, 5, 1, 3, 2, 4, 2, 4, 2, 0, 0, 0, 0,
-9, 5, 3, 3, 3, 1, 1, 4, 4, 2, 4, 2, 2, 2, 0, 0,
-9, 5, 3, 1, 5, 1, 3, 2, 4, 4, 2, 2, 2, 0, 0, 0,
-9, 7, 3, 3, 5, 1, 1, 4, 4, 2, 2, 2, 2, 0, 0, 0,
-9, 7, 3, 3, 3, 3, 1, 4, 2, 2, 2, 2, 2, 2, 0, 0,
-9, 8, 1, 3, 7, 1, 1, 4, 4, 2, 4, 2, 2, 0, 0, 0,
-9, 7, 7, 3, 3, 5, 3, 4, 2, 2, 2, 2, 2, 2, 0, 0,
-9, 7, 5, 5, 7, 5, 5, 4, 4, 4, 4, 2, 2, 0, 0, 0,
-9, 7, 3, 5, 7, 5, 5, 4, 4, 6, 6, 2, 2, 0, 0, 0,
-9, 7, 3, 5, 7, 5, 5, 4, 4, 6, 6, 0, 0, 0, 0, 0,
-8, 8, 5, 3, 7, 3, 5, 2, 4, 4, 4, 0, 0, 0, 0, 0,
-9, 5, 3, 3, 3, 3, 1, 4, 4, 4, 4, 2, 2, 0, 0, 0,
-9, 7, 5, 5, 7, 5, 3, 2, 2, 2, 2, 2, 0, 0, 0, 0,
-9, 7, 3, 5, 7, 3, 3, 4, 4, 4, 2, 2, 0, 0, 0, 0,
-9, 7, 3, 3, 7, 1, 3, 4, 2, 4, 2, 2, 0, 0, 0, 0,
-9, 7, 3, 3, 3, 1, 3, 2, 2, 2, 2, 2, 0, 0, 0, 0,
-9, 8, 3, 3, 5, 3, 3, 2, 2, 2, 4, 2, 0, 0, 0, 0,
-9, 7, 3, 3, 5, 3, 1, 4, 2, 2, 2, 2, 2, 0, 0, 0,
-9, 7, 5, 5, 7, 3, 3, 2, 2, 4, 4, 2, 0, 0, 0, 0,
-8, 5, 7, 5, 5, 5, 5, 4, 4, 4, 4, 4, 2, 0, 0, 0,
-8, 5, 3, 5, 3, 3, 3, 4, 2, 4, 4, 2, 0, 2, 0, 0,
-9, 5, 3, 5, 5, 3, 3, 2, 4, 2, 2, 2, 2, 0, 0, 0,
-8, 7, 5, 3, 3, 3, 3, 2, 2, 2, 2, 2, 0, 0, 0, 0,
-8, 5, 3, 5, 3, 3, 1, 4, 2, 2, 4, 2, 0, 0, 0, 0,
-9, 7, 3, 5, 3, 3, 1, 4, 4, 2, 2, 2, 0, 0, 0, 0,
-8, 7, 5, 3, 5, 3, 3, 2, 4, 4, 2, 2, 2, 0, 0, 0,
-8, 7, 3, 5, 7, 5, 5, 4, 4, 6, 6, 4, 2, 0, 0, 0,
-9, 8, 5, 5, 7, 5, 5, 4, 4, 4, 4, 2, 2, 0, 0, 0,
-9, 8, 5, 5, 7, 3, 5, 0, 4, 4, 6, 0, 0, 0, 0, 0,
-9, 7, 3, 3, 3, 3, 3, 2, 2, 2, 2, 2, 0, 2, 0, 0,
-9, 7, 5, 3, 3, 5, 1, 2, 2, 4, 4, 2, 0, 0, 0, 0,
-9, 5, 5, 3, 5, 5, 3, 2, 4, 4, 2, 2, 0, 0, 0, 0,
-9, 8, 5, 5, 7, 5, 3, 4, 4, 2, 4, 2, 0, 0, 0, 0,
-9, 7, 5, 3, 5, 3, 3, 2, 4, 4, 2, 0, 2, 0, 0, 0,
-9, 7, 5, 3, 3, 3, 3, 2, 2, 4, 2, 2, 2, 0, 0, 0,
-9, 7, 3, 3, 5, 3, 3, 2, 2, 2, 4, 2, 2, 0, 0, 0,
-9, 7, 3, 3, 7, 3, 3, 2, 2, 4, 4, 2, 0, 0, 0, 0,
-9, 8, 3, 5, 5, 3, 3, 4, 2, 2, 4, 2, 0, 0, 0, 0,
-9, 8, 5, 3, 5, 3, 3, 2, 4, 2, 2, 2, 0, 0, 0, 0,
-9, 7, 3, 3, 7, 3, 3, 4, 2, 2, 2, 2, 2, 2, 0, 0,
-9, 7, 5, 5, 7, 7, 1, 4, 4, 4, 4, 2, 2, 2, 0, 0,
-9, 5, 5, 3, 5, 5, 5, 2, 4, 2, 4, 2, 2, 2, 0, 0,
-9, 7, 3, 5, 7, 7, 5, 4, 2, 4, 4, 4, 4, 0, 0, 0,
-9, 7, 3, 3, 5, 3, 3, 2, 2, 2, 2, 2, 2, 2, 0, 0,
-9, 7, 3, 1, 7, 1, 3, 2, 2, 2, 2, 2, 0, 0, 0, 0,
-9, 7, 3, 3, 5, 3, 3, 2, 2, 2, 2, 2, 2, 0, 0, 0,
-9, 7, 5, 3, 7, 5, 1, 2, 2, 2, 4, 2, 2, 0, 0, 0,
-9, 7, 5, 5, 5, 5, 3, 2, 4, 4, 4, 2, 0, 0, 0, 0,
-9, 7, 3, 3, 5, 3, 3, 2, 2, 2, 2, 2, 0, 0, 0, 0,
-9, 8, 3, 3, 5, 1, 3, 2, 2, 4, 4, 0, 0, 0, 0, 0,
-9, 7, 1, 3, 3, 3, 5, 4, 2, 4, 2, 2, 0, 0, 0, 0,
-9, 7, 5, 5, 7, 5, 3, 4, 4, 4, 4, 2, 2, 2, 0, 0,
-9, 7, 5, 5, 5, 3, 3, 6, 4, 2, 4, 2, 2, 2, 0, 0,
-9, 7, 3, 1, 5, 3, 1, 2, 4, 2, 2, 2, 2, 0, 0, 0,
-9, 7, 3, 3, 5, 3, 3, 4, 2, 2, 2, 2, 2, 2, 0, 0,
-9, 7, 3, 3, 5, 5, 3, 2, 4, 4, 2, 2, 2, 0, 0, 0,
-9, 7, 5, 3, 5, 3, 3, 2, 2, 2, 2, 2, 2, 0, 0, 0,
-9, 7, 3, 3, 3, 3, 3, 4, 2, 4, 2, 2, 0, 0, 0, 0,
-9, 7, 3, 1, 5, 3, 3, 4, 2, 2, 2, 2, 2, 0, 0, 0,
-9, 7, 5, 5, 7, 7, 5, 4, 4, 6, 4, 4, 2, 2, 0, 0,
-9, 8, 5, 7, 7, 7, 5, 6, 6, 4, 4, 2, 2, 2, 0, 0,
-9, 7, 3, 3, 7, 3, 3, 2, 2, 2, 4, 2, 2, 0, 0, 0,
-9, 7, 1, 3, 3, 3, 3, 4, 4, 2, 2, 2, 0, 0, 0, 0,
-9, 7, 3, 3, 5, 5, 3, 2, 2, 2, 2, 2, 2, 2, 0, 0,
-9, 7, 5, 3, 5, 5, 3, 2, 2, 4, 4, 2, 0, 0, 0, 0,
-9, 7, 5, 5, 5, 7, 1, 4, 4, 4, 4, 2, 0, 0, 0, 0,
-9, 7, 5, 5, 7, 5, 1, 2, 4, 4, 2, 2, 0, 0, 0, 0,
-9, 7, 3, 3, 3, 3, 5, 2, 2, 2, 2, 2, 0, 0, 0, 0,
-9, 8, 3, 5, 7, 3, 3, 4, 4, 4, 2, 2, 2, 0, 0, 0,
-9, 7, 5, 5, 5, 3, 1, 6, 4, 4, 2, 2, 2, 2, 0, 0,
-9, 7, 5, 5, 5, 5, 1, 4, 2, 4, 2, 2, 2, 0, 0, 0,
-9, 7, 5, 5, 5, 7, 1, 4, 2, 4, 4, 2, 2, 2, 0, 0,
-9, 5, 3, 3, 3, 3, 3, 4, 2, 4, 4, 2, 0, 2, 0, 0,
-9, 3, 3, 3, 3, 3, 1, 4, 4, 2, 2, 2, 2, 0, 0, 0,
-9, 5, 5, 3, 3, 5, 3, 4, 2, 2, 2, 2, 2, 0, 0, 0,
-9, 7, 5, 5, 7, 7, 7, 2, 2, 6, 4, 2, 4, 0, 0, 0,
-9, 8, 7, 7, 7, 5, 5, 2, 4, 6, 4, 2, 2, 0, 0, 0,
-9, 8, 5, 5, 7, 5, 5, 2, 2, 7, 6, 2, 2, 0, 0, 0,
-9, 8, 3, 3, 7, 1, 1, 2, 4, 2, 4, 0, 0, 0, 0, 0,
-9, 7, 3, 3, 5, 5, 1, 4, 2, 2, 2, 2, 2, 0, 0, 0,
-9, 7, 5, 3, 5, 3, 3, 2, 4, 2, 2, 2, 0, 0, 0, 0,
-9, 7, 5, 3, 5, 5, 1, 4, 2, 4, 4, 2, 0, 0, 0, 0,
-9, 8, 3, 1, 7, 5, 3, 4, 4, 4, 2, 2, 2, 0, 0, 0,
-9, 7, 3, 3, 3, 3, 3, 4, 2, 4, 2, 2, 2, 2, 0, 0,
-9, 7, 3, 3, 5, 3, 3, 2, 2, 2, 2, 2, 2, 0, 0, 0,
-9, 7, 1, 1, 5, 3, 3, 4, 2, 2, 2, 2, 2, 0, 0, 0,
-9, 7, 3, 3, 5, 3, 3, 2, 2, 2, 4, 2, 2, 0, 0, 0,
-9, 7, 3, 3, 3, 3, 3, 4, 2, 2, 2, 2, 2, 0, 0, 0,
-9, 7, 3, 1, 5, 3, 1, 2, 2, 2, 2, 2, 0, 0, 0, 0,
-9, 7, 5, 3, 5, 5, 3, 4, 2, 2, 4, 2, 2, 0, 0, 0,
-9, 5, 5, 5, 5, 5, 5, 2, 4, 2, 4, 2, 2, 0, 0, 0,
-9, 7, 3, 5, 7, 5, 5, 4, 2, 4, 4, 2, 4, 2, 0, 0,
-9, 7, 3, 3, 5, 3, 5, 2, 2, 4, 4, 2, 2, 0, 0, 0,
-9, 8, 5, 3, 7, 5, 5, 4, 4, 4, 6, 2, 0, 0, 0, 0,
-9, 8, 5, 3, 7, 3, 3, 4, 2, 2, 4, 0, 0, 0, 0, 0,
-9, 7, 3, 3, 5, 3, 3, 2, 4, 2, 2, 2, 2, 2, 0, 0,
-9, 7, 5, 3, 5, 5, 3, 2, 2, 2, 4, 2, 0, 0, 0, 0,
-9, 7, 5, 3, 7, 5, 3, 2, 4, 2, 2, 2, 2, 0, 0, 0,
-9, 7, 5, 5, 7, 3, 3, 4, 2, 4, 2, 2, 0, 0, 0, 0,
-9, 5, 5, 5, 5, 3, 1, 4, 2, 4, 4, 2, 2, 0, 0, 0,
-9, 7, 3, 1, 5, 1, 3, 4, 4, 4, 2, 2, 2, 2, 0, 0,
-9, 5, 1, 1, 5, 1, 1, 4, 2, 2, 2, 2, 2, 2, 0, 0,
-9, 7, 5, 1, 5, 3, 3, 2, 2, 2, 2, 2, 0, 0, 0, 0,
-9, 7, 3, 3, 5, 3, 3, 2, 4, 2, 2, 2, 2, 2, 0, 0,
-9, 7, 3, 3, 5, 1, 3, 2, 2, 2, 2, 2, 2, 0, 0, 0,
-9, 7, 3, 3, 5, 1, 3, 4, 2, 2, 2, 2, 2, 0, 0, 0,
-8, 7, 3, 5, 7, 5, 5, 6, 2, 4, 4, 2, 4, 2, 0, 0,
-9, 8, 3, 5, 7, 7, 7, 6, 4, 4, 6, 2, 4, 0, 0, 0,
-8, 9, 5, 5, 7, 5, 5, 4, 4, 4, 6, 2, 2, 0, 0, 0,
-8, 8, 5, 3, 7, 1, 1, 4, 4, 2, 4, 0, 0, 0, 0, 0,
-9, 7, 3, 5, 5, 3, 5, 2, 4, 4, 4, 4, 2, 2, 0, 0,
-8, 5, 7, 5, 5, 3, 5, 6, 4, 2, 6, 4, 2, 2, 0, 0,
-9, 5, 5, 5, 3, 3, 3, 2, 2, 4, 2, 2, 2, 0, 0, 0,
-9, 5, 3, 1, 5, 3, 1, 2, 2, 4, 2, 2, 0, 0, 0, 0,
-8, 5, 3, 5, 5, 5, 5, 2, 2, 4, 2, 2, 2, 0, 0, 0,
-8, 7, 5, 5, 7, 7, 5, 6, 2, 6, 6, 2, 2, 0, 0, 0,
-9, 8, 3, 3, 7, 3, 5, 4, 2, 4, 6, 2, 2, 0, 0, 0,
-9, 8, 5, 5, 7, 3, 3, 4, 2, 4, 4, 0, 0, 0, 0, 0,
-9, 5, 3, 1, 3, 3, 3, 2, 2, 4, 2, 2, 0, 0, 0, 0,
-9, 7, 5, 5, 5, 3, 3, 4, 4, 4, 2, 2, 2, 0, 0, 0,
-9, 7, 5, 5, 5, 5, 3, 2, 4, 4, 2, 2, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 5, 3, 4, 2, 2, 4, 2, 2, 0, 0, 0,
-9, 8, 5, 5, 5, 3, 3, 4, 2, 2, 2, 2, 0, 0, 0, 0,
-9, 7, 3, 1, 5, 3, 1, 4, 2, 2, 2, 2, 0, 0, 0, 0,
-9, 7, 5, 1, 5, 3, 3, 2, 2, 4, 4, 2, 2, 0, 0, 0,
-9, 7, 5, 3, 7, 3, 3, 4, 2, 2, 2, 2, 2, 2, 0, 0,
-8, 7, 5, 3, 5, 5, 3, 6, 2, 4, 2, 2, 2, 0, 0, 0,
-9, 7, 3, 1, 5, 3, 3, 2, 4, 2, 4, 2, 0, 0, 0, 0,
-9, 5, 3, 1, 5, 1, 1, 4, 2, 2, 2, 2, 2, 0, 0, 0,
-9, 5, 5, 5, 5, 5, 5, 2, 4, 4, 4, 2, 2, 0, 0, 0,
-9, 8, 3, 5, 7, 5, 5, 4, 2, 7, 6, 2, 2, 0, 0, 0,
-9, 8, 5, 5, 7, 5, 5, 4, 2, 4, 6, 2, 0, 0, 0, 0,
-9, 8, 5, 3, 7, 5, 3, 2, 4, 4, 6, 0, 0, 0, 0, 0,
-9, 7, 3, 3, 5, 1, 3, 2, 2, 4, 2, 2, 2, 0, 0, 0,
-9, 7, 3, 5, 5, 3, 3, 4, 4, 4, 4, 2, 2, 0, 0, 0,
-9, 5, 5, 5, 5, 5, 3, 2, 2, 4, 2, 2, 0, 0, 0, 0,
-9, 7, 3, 3, 7, 3, 3, 2, 2, 2, 2, 2, 0, 0, 0, 0,
-9, 7, 3, 3, 5, 3, 3, 2, 4, 2, 2, 2, 2, 0, 0, 0,
-9, 7, 3, 3, 5, 3, 3, 2, 2, 2, 2, 2, 0, 0, 0, 0,
-9, 7, 5, 3, 7, 5, 3, 2, 4, 2, 4, 2, 2, 2, 0, 0,
-9, 7, 5, 5, 5, 5, 3, 4, 2, 4, 4, 2, 2, 0, 0, 0,
-9, 7, 3, 3, 3, 3, 3, 2, 2, 2, 2, 2, 2, 2, 0, 0,
-9, 7, 1, 5, 7, 3, 3, 2, 4, 2, 2, 2, 2, 2, 0, 0,
-9, 7, 3, 1, 5, 1, 3, 2, 2, 2, 2, 2, 2, 0, 0, 0,
-9, 7, 3, 1, 3, 1, 3, 2, 4, 4, 2, 2, 2, 2, 0, 0,
-9, 7, 5, 1, 5, 3, 1, 2, 4, 2, 2, 2, 0, 0, 0, 0,
-9, 7, 3, 1, 5, 3, 3, 2, 2, 2, 2, 2, 0, 0, 0, 0,
-9, 7, 3, 3, 5, 3, 1, 2, 2, 2, 2, 2, 2, 2, 0, 0,
-9, 7, 3, 5, 7, 5, 5, 4, 2, 6, 4, 2, 2, 2, 0, 0,
-9, 8, 3, 5, 7, 5, 5, 4, 2, 4, 4, 2, 2, 2, 0, 0,
-9, 8, 5, 3, 7, 3, 5, 2, 4, 6, 6, 2, 0, 0, 0, 0,
-9, 8, 5, 3, 7, 1, 1, 4, 4, 4, 2, 2, 0, 0, 0, 0,
-9, 7, 5, 3, 5, 3, 3, 2, 4, 4, 2, 2, 2, 0, 0, 0,
-9, 7, 5, 5, 5, 5, 1, 2, 4, 4, 4, 2, 0, 0, 0, 0,
-9, 7, 5, 5, 5, 5, 3, 4, 2, 4, 4, 0, 0, 0, 0, 0,
-9, 8, 7, 5, 7, 5, 3, 2, 4, 4, 4, 2, 0, 0, 0, 0,
-9, 7, 1, 3, 3, 5, 1, 2, 2, 4, 2, 2, 2, 0, 0, 0,
-9, 7, 3, 3, 7, 3, 3, 2, 2, 2, 2, 2, 0, 0, 0, 0,
-9, 7, 3, 5, 5, 3, 3, 2, 2, 2, 4, 2, 0, 0, 0, 0,
-9, 7, 3, 3, 5, 3, 3, 2, 2, 2, 2, 2, 2, 0, 0, 0,
-9, 7, 7, 1, 7, 3, 1, 2, 2, 2, 2, 2, 0, 0, 0, 0,
-9, 8, 5, 3, 5, 3, 3, 4, 2, 2, 4, 2, 2, 0, 0, 0,
-9, 7, 5, 5, 7, 5, 3, 4, 2, 4, 4, 2, 0, 0, 0, 0,
-9, 7, 3, 3, 5, 5, 5, 4, 2, 2, 2, 2, 2, 0, 0, 0,
-9, 7, 3, 3, 3, 3, 3, 2, 2, 2, 2, 2, 2, 2, 0, 0,
-9, 7, 3, 3, 3, 1, 1, 2, 2, 4, 2, 2, 0, 0, 0, 0,
-9, 7, 3, 3, 5, 3, 3, 2, 2, 2, 2, 2, 2, 0, 0, 0,
-9, 7, 1, 3, 5, 1, 3, 2, 2, 2, 2, 2, 2, 0, 0, 0,
-9, 7, 3, 3, 5, 3, 3, 2, 4, 4, 2, 2, 2, 2, 0, 0,
-9, 7, 5, 5, 5, 5, 3, 4, 4, 2, 2, 2, 2, 0, 0, 0,
-8, 7, 7, 3, 5, 5, 3, 2, 2, 4, 2, 2, 2, 2, 0, 0,
-9, 5, 5, 7, 5, 3, 3, 4, 2, 2, 4, 2, 0, 0, 0, 0,
-9, 5, 5, 3, 5, 5, 3, 2, 2, 6, 4, 2, 2, 0, 0, 0,
-9, 8, 5, 5, 7, 5, 5, 4, 4, 6, 6, 2, 2, 2, 0, 0,
-9, 8, 5, 3, 7, 5, 5, 4, 2, 6, 6, 0, 2, 0, 0, 0,
-9, 8, 5, 3, 7, 3, 3, 4, 4, 4, 4, 0, 0, 0, 0, 0,
-9, 7, 3, 3, 3, 3, 1, 2, 4, 2, 4, 2, 2, 0, 0, 0,
-9, 7, 5, 3, 3, 3, 3, 4, 2, 4, 2, 2, 2, 0, 0, 0,
-9, 7, 5, 3, 5, 3, 1, 2, 2, 4, 2, 2, 0, 0, 0, 0,
-9, 7, 3, 5, 3, 5, 3, 4, 2, 2, 4, 2, 2, 0, 0, 0,
-9, 7, 5, 3, 5, 3, 3, 6, 2, 4, 6, 4, 2, 0, 0, 0,
-9, 5, 3, 3, 3, 3, 1, 4, 2, 2, 2, 2, 0, 0, 0, 0,
-9, 5, 5, 5, 5, 5, 5, 4, 4, 4, 6, 2, 2, 2, 0, 0,
-9, 8, 7, 7, 7, 7, 7, 4, 6, 6, 6, 2, 2, 0, 0, 0,
-9, 8, 3, 3, 7, 3, 5, 4, 2, 6, 6, 0, 0, 0, 0, 0,
-9, 8, 3, 5, 7, 5, 5, 4, 4, 4, 4, 0, 0, 0, 0, 0,
-9, 8, 5, 3, 5, 1, 3, 4, 2, 2, 2, 2, 0, 0, 0, 0,
-9, 7, 3, 1, 5, 5, 1, 2, 2, 4, 4, 0, 0, 0, 0, 0,
-9, 7, 3, 3, 5, 3, 3, 2, 2, 6, 2, 2, 0, 0, 0, 0,
-9, 7, 5, 5, 3, 3, 3, 2, 2, 2, 4, 2, 0, 0, 0, 0,
-9, 5, 7, 5, 7, 5, 3, 2, 4, 2, 2, 2, 0, 0, 0, 0,
-9, 7, 3, 1, 5, 3, 3, 4, 2, 2, 2, 2, 2, 0, 0, 0,
-9, 7, 3, 1, 5, 3, 1, 4, 2, 2, 2, 2, 2, 0, 0, 0,
-9, 5, 3, 1, 5, 3, 3, 6, 2, 2, 2, 2, 2, 2, 0, 0,
-9, 5, 3, 3, 5, 1, 3, 4, 2, 2, 2, 2, 0, 2, 0, 0,
-9, 7, 5, 3, 5, 5, 1, 2, 2, 4, 2, 2, 0, 0, 0, 0,
-9, 7, 7, 5, 7, 5, 3, 4, 4, 4, 4, 2, 0, 0, 0, 0,
-9, 7, 3, 3, 5, 1, 1, 4, 2, 2, 2, 2, 2, 2, 0, 0,
-9, 7, 3, 3, 3, 1, 3, 4, 2, 4, 4, 2, 2, 0, 0, 0,
-9, 7, 3, 3, 3, 3, 1, 4, 2, 2, 2, 2, 2, 2, 0, 0,
-9, 7, 3, 3, 5, 3, 1, 2, 4, 4, 2, 2, 2, 0, 0, 0,
-9, 7, 3, 3, 3, 3, 1, 2, 4, 2, 2, 2, 2, 0, 0, 0,
-9, 7, 3, 3, 3, 3, 1, 2, 2, 2, 2, 2, 2, 0, 0, 0,
-9, 7, 1, 1, 5, 3, 1, 2, 4, 2, 2, 2, 2, 2, 0, 0,
-9, 5, 5, 5, 5, 3, 5, 2, 2, 4, 4, 2, 2, 2, 0, 0,
-9, 8, 3, 5, 7, 5, 5, 2, 2, 6, 6, 2, 2, 4, 0, 0,
-9, 7, 5, 3, 5, 3, 3, 2, 2, 4, 2, 2, 0, 0, 0, 0,
-9, 7, 3, 3, 3, 3, 1, 2, 4, 2, 2, 2, 2, 0, 0, 0,
-9, 5, 3, 3, 3, 3, 3, 2, 2, 4, 2, 0, 0, 0, 0, 0,
-9, 7, 3, 3, 7, 3, 3, 2, 2, 4, 2, 2, 0, 0, 0, 0,
-9, 7, 5, 5, 5, 5, 3, 2, 4, 4, 4, 2, 2, 0, 0, 0,
-9, 7, 5, 5, 7, 5, 3, 2, 2, 6, 2, 2, 2, 0, 0, 0,
-9, 7, 1, 3, 3, 3, 3, 2, 2, 4, 2, 2, 0, 0, 0, 0,
-9, 7, 3, 3, 5, 3, 3, 0, 2, 4, 2, 2, 2, 0, 0, 0,
-9, 7, 3, 5, 5, 5, 3, 4, 4, 2, 4, 4, 4, 0, 0, 0,
-8, 7, 5, 5, 7, 5, 5, 4, 4, 2, 4, 4, 2, 2, 0, 0,
-8, 7, 3, 3, 3, 3, 1, 4, 2, 2, 2, 2, 2, 0, 0, 0,
-9, 7, 3, 3, 5, 1, 1, 2, 2, 2, 2, 2, 2, 0, 0, 0,
-9, 5, 3, 3, 5, 3, 3, 2, 4, 2, 2, 2, 0, 0, 0, 0,
-8, 7, 3, 3, 3, 1, 3, 4, 2, 2, 2, 2, 2, 0, 0, 0,
-9, 5, 5, 3, 5, 5, 3, 4, 4, 4, 2, 2, 2, 2, 0, 0,
-9, 7, 3, 5, 7, 5, 5, 4, 2, 6, 6, 2, 2, 0, 0, 0,
-8, 8, 5, 3, 3, 3, 3, 4, 4, 2, 4, 2, 2, 0, 0, 0,
-9, 8, 7, 5, 7, 3, 3, 6, 2, 4, 4, 0, 0, 0, 0, 0,
-9, 7, 5, 3, 7, 1, 3, 6, 4, 4, 2, 0, 0, 0, 0, 0,
-9, 7, 3, 5, 7, 5, 1, 4, 2, 4, 4, 2, 0, 0, 0, 0,
-9, 5, 5, 5, 5, 3, 3, 4, 4, 4, 4, 4, 2, 2, 0, 0,
-9, 5, 3, 3, 5, 5, 3, 6, 6, 4, 4, 2, 2, 0, 0, 0,
-9, 8, 3, 5, 7, 5, 5, 4, 2, 6, 6, 2, 2, 2, 0, 0,
-9, 7, 3, 5, 3, 5, 1, 6, 2, 4, 6, 2, 2, 0, 0, 0,
-9, 7, 5, 5, 7, 1, 3, 4, 6, 4, 6, 0, 0, 0, 0, 0,
-9, 8, 5, 3, 7, 1, 3, 6, 2, 2, 2, 0, 0, 0, 0, 0,
-9, 7, 3, 1, 5, 3, 3, 4, 2, 4, 2, 2, 2, 0, 0, 0,
-9, 7, 3, 3, 3, 3, 3, 2, 2, 4, 2, 2, 0, 0, 0, 0,
-9, 8, 5, 5, 7, 5, 5, 2, 4, 6, 2, 2, 0, 0, 0, 0,
-9, 7, 5, 5, 7, 5, 3, 2, 4, 2, 2, 2, 2, 0, 0, 0,
-9, 7, 5, 3, 5, 3, 3, 4, 2, 4, 2, 2, 0, 0, 0, 0,
-9, 8, 3, 3, 5, 3, 3, 2, 2, 2, 4, 0, 0, 0, 0, 0,
-9, 7, 5, 5, 7, 5, 3, 4, 2, 2, 4, 2, 2, 0, 0, 0,
-9, 7, 5, 5, 5, 5, 3, 2, 4, 4, 2, 2, 0, 0, 0, 0,
-9, 7, 3, 3, 3, 3, 1, 2, 2, 2, 4, 2, 2, 0, 0, 0,
-9, 5, 3, 1, 3, 5, 3, 2, 2, 2, 2, 2, 2, 0, 0, 0,
-9, 7, 3, 3, 5, 5, 3, 4, 2, 2, 2, 2, 2, 0, 0, 0,
-9, 5, 3, 3, 3, 3, 3, 2, 4, 2, 2, 2, 2, 0, 0, 0,
-9, 7, 1, 3, 5, 3, 1, 4, 4, 2, 2, 2, 0, 2, 0, 0,
-9, 7, 3, 5, 5, 5, 5, 4, 2, 6, 6, 2, 2, 2, 0, 0,
-9, 8, 3, 5, 7, 7, 5, 6, 4, 4, 6, 2, 2, 0, 0, 0,
-9, 8, 3, 5, 7, 5, 5, 2, 2, 6, 6, 2, 0, 0, 0, 0,
-9, 8, 7, 7, 5, 1, 3, 2, 2, 4, 2, 2, 0, 0, 0, 0,
-9, 7, 3, 1, 5, 1, 5, 2, 2, 2, 2, 2, 0, 0, 0, 0,
-9, 7, 7, 3, 5, 3, 1, 2, 2, 6, 2, 2, 2, 0, 0, 0,
-9, 7, 5, 3, 7, 5, 3, 2, 4, 4, 4, 0, 0, 0, 0, 0,
-9, 7, 3, 3, 5, 1, 3, 2, 2, 2, 2, 2, 2, 0, 0, 0,
-9, 7, 3, 3, 5, 1, 5, 2, 2, 2, 4, 2, 0, 0, 0, 0,
-9, 7, 1, 3, 5, 1, 1, 2, 2, 2, 2, 2, 2, 0, 0, 0,
-9, 7, 3, 3, 5, 1, 3, 4, 2, 2, 2, 2, 0, 2, 0, 0,
-9, 7, 1, 1, 5, 3, 3, 4, 2, 2, 2, 2, 2, 2, 0, 0,
-9, 8, 7, 3, 5, 3, 1, 4, 4, 2, 2, 2, 2, 0, 0, 0,
-9, 5, 1, 5, 5, 3, 3, 4, 2, 2, 2, 2, 2, 0, 0, 0,
-9, 5, 5, 5, 5, 5, 5, 4, 2, 4, 4, 4, 2, 2, 0, 0,
-9, 8, 5, 5, 7, 7, 5, 6, 6, 4, 6, 2, 2, 2, 0, 0,
-9, 7, 3, 1, 3, 1, 3, 4, 2, 2, 4, 2, 0, 0, 0, 0,
-9, 7, 5, 3, 5, 1, 3, 4, 2, 4, 2, 2, 0, 0, 0, 0,
-9, 5, 3, 1, 5, 3, 3, 2, 4, 2, 2, 2, 0, 0, 0, 0,
-9, 7, 5, 3, 3, 3, 3, 2, 2, 2, 2, 2, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 3, 3, 2, 2, 4, 4, 2, 2, 0, 0, 0,
-9, 8, 7, 5, 5, 5, 3, 4, 2, 4, 2, 2, 0, 0, 0, 0,
-9, 7, 5, 3, 5, 3, 3, 2, 2, 2, 2, 2, 2, 0, 0, 0,
-9, 5, 3, 5, 5, 5, 5, 4, 4, 2, 2, 2, 2, 0, 0, 0,
-9, 7, 5, 5, 7, 7, 5, 4, 4, 6, 4, 2, 2, 2, 0, 0,
-9, 7, 3, 3, 5, 3, 1, 4, 2, 4, 2, 2, 0, 0, 0, 0,
-9, 7, 7, 3, 3, 3, 3, 4, 2, 4, 2, 2, 0, 0, 0, 0,
-9, 7, 3, 1, 5, 1, 3, 2, 2, 2, 2, 2, 0, 0, 0, 0,
-9, 7, 1, 1, 3, 3, 1, 4, 2, 4, 2, 2, 2, 0, 0, 0,
-9, 7, 5, 5, 5, 3, 3, 2, 4, 4, 2, 2, 0, 0, 0, 0,
-9, 7, 5, 3, 7, 5, 3, 4, 4, 4, 2, 2, 0, 0, 0, 0,
-9, 7, 5, 3, 3, 3, 3, 2, 2, 2, 2, 2, 2, 0, 0, 0,
-9, 7, 3, 1, 3, 3, 1, 4, 2, 2, 2, 2, 0, 0, 0, 0,
-9, 7, 3, 3, 7, 1, 3, 2, 4, 4, 2, 2, 2, 0, 0, 0,
-9, 5, 5, 5, 7, 3, 5, 2, 4, 4, 4, 2, 0, 0, 0, 0,
-9, 8, 5, 5, 7, 5, 5, 2, 2, 4, 4, 2, 0, 0, 0, 0,
-9, 7, 3, 3, 5, 3, 1, 2, 2, 4, 2, 2, 0, 0, 0, 0,
-9, 7, 3, 3, 5, 3, 3, 4, 2, 2, 4, 2, 2, 0, 0, 0,
-9, 8, 1, 1, 5, 3, 3, 2, 2, 4, 2, 2, 0, 0, 0, 0,
-9, 7, 3, 1, 3, 1, 1, 2, 4, 4, 2, 0, 0, 0, 0, 0,
-9, 8, 5, 3, 3, 3, 3, 2, 2, 4, 2, 2, 0, 0, 0, 0,
-9, 7, 3, 1, 3, 3, 3, 4, 2, 2, 4, 2, 0, 0, 0, 0,
-9, 8, 5, 5, 5, 3, 3, 4, 2, 2, 4, 2, 2, 0, 0, 0,
-9, 5, 5, 3, 5, 3, 3, 4, 2, 4, 2, 2, 2, 2, 0, 0,
-9, 7, 3, 1, 5, 3, 1, 4, 2, 4, 2, 2, 2, 0, 0, 0,
-9, 7, 5, 5, 5, 5, 5, 4, 2, 4, 4, 2, 0, 0, 0, 0,
-9, 7, 3, 3, 7, 5, 5, 4, 2, 4, 6, 2, 2, 0, 0, 0,
-9, 7, 3, 5, 5, 5, 5, 2, 2, 4, 6, 2, 0, 0, 0, 0,
-9, 7, 3, 5, 5, 1, 5, 4, 2, 6, 2, 0, 0, 0, 0, 0,
-9, 7, 5, 5, 5, 1, 1, 2, 4, 4, 2, 0, 0, 0, 0, 0,
-9, 7, 5, 3, 5, 1, 3, 2, 2, 2, 2, 0, 0, 0, 0, 0,
-9, 8, 5, 5, 5, 5, 3, 2, 2, 4, 2, 2, 0, 0, 0, 0,
-9, 7, 5, 5, 5, 5, 3, 4, 4, 4, 4, 2, 2, 0, 0, 0,
-8, 7, 3, 3, 1, 3, 1, 2, 2, 2, 2, 2, 0, 0, 0, 0,
-9, 7, 5, 7, 5, 1, 3, 2, 4, 2, 2, 2, 0, 0, 0, 0,
-8, 7, 3, 1, 5, 3, 3, 2, 2, 2, 2, 0, 0, 0, 0, 0,
-8, 7, 5, 3, 3, 5, 3, 2, 4, 2, 2, 0, 0, 0, 0, 0,
-9, 7, 3, 3, 3, 1, 3, 2, 2, 2, 2, 0, 0, 0, 0, 0,
-9, 7, 5, 3, 5, 3, 5, 2, 2, 2, 4, 2, 0, 0, 0, 0,
-9, 7, 5, 3, 7, 5, 3, 2, 4, 4, 2, 0, 0, 0, 0, 0,
-9, 7, 5, 3, 7, 3, 3, 2, 4, 2, 4, 0, 0, 0, 0, 0,
-9, 7, 3, 3, 3, 3, 3, 2, 2, 2, 2, 2, 0, 0, 0, 0,
-9, 7, 3, 3, 5, 3, 5, 2, 2, 2, 2, 2, 2, 0, 0, 0,
-9, 7, 3, 1, 5, 3, 3, 2, 2, 2, 2, 2, 0, 0, 0, 0,
-9, 7, 3, 3, 3, 3, 3, 2, 4, 2, 4, 2, 0, 0, 0, 0,
-9, 7, 3, 3, 5, 1, 5, 2, 2, 4, 2, 2, 0, 0, 0, 0,
-9, 7, 3, 1, 5, 1, 1, 2, 2, 2, 2, 2, 0, 0, 0, 0,
-9, 7, 1, 1, 5, 3, 3, 2, 2, 4, 2, 2, 2, 0, 0, 0,
-9, 7, 3, 5, 5, 5, 3, 4, 4, 4, 4, 4, 2, 2, 0, 0,
-8, 5, 5, 5, 5, 3, 5, 4, 4, 4, 4, 2, 4, 2, 0, 0,
-8, 5, 5, 5, 7, 3, 5, 6, 4, 6, 6, 2, 4, 2, 0, 0,
-8, 7, 5, 7, 5, 3, 5, 6, 6, 6, 4, 4, 2, 0, 0, 0,
-8, 7, 5, 5, 7, 5, 5, 2, 6, 4, 4, 2, 2, 0, 0, 0,
-8, 7, 3, 5, 3, 3, 3, 2, 2, 2, 2, 2, 0, 0, 0, 0,
-9, 5, 3, 3, 5, 3, 1, 4, 2, 4, 2, 2, 2, 0, 0, 0,
-9, 5, 3, 3, 3, 3, 3, 4, 2, 4, 2, 2, 0, 0, 0, 0,
-9, 5, 3, 1, 3, 3, 3, 2, 4, 4, 2, 2, 0, 0, 0, 0,
-9, 7, 5, 5, 5, 5, 5, 4, 4, 4, 4, 2, 2, 2, 0, 0,
-9, 8, 5, 5, 7, 5, 5, 4, 2, 6, 4, 2, 2, 0, 0, 0,
-9, 7, 5, 7, 3, 5, 5, 4, 2, 4, 4, 2, 2, 0, 0, 0,
-9, 7, 3, 3, 5, 3, 5, 6, 2, 4, 4, 2, 0, 0, 0, 0,
-9, 7, 3, 3, 5, 1, 3, 4, 2, 2, 2, 2, 0, 0, 0, 0,
-9, 8, 5, 5, 5, 1, 5, 4, 2, 4, 4, 2, 2, 2, 0, 0,
-9, 7, 5, 5, 5, 5, 1, 4, 4, 4, 4, 2, 2, 0, 0, 0,
-8, 7, 3, 5, 3, 3, 1, 4, 2, 2, 2, 2, 2, 0, 0, 0,
-8, 7, 3, 5, 5, 3, 3, 4, 2, 2, 2, 2, 0, 0, 0, 0,
-8, 7, 3, 1, 5, 3, 3, 2, 2, 2, 2, 0, 0, 0, 0, 0,
-9, 7, 5, 5, 3, 3, 3, 2, 2, 2, 2, 0, 0, 0, 0, 0,
-9, 5, 3, 1, 3, 3, 5, 2, 2, 2, 2, 2, 0, 0, 0, 0,
-9, 7, 3, 5, 5, 3, 1, 4, 2, 2, 2, 2, 0, 0, 0, 0,
-9, 7, 5, 3, 7, 3, 3, 2, 2, 2, 2, 0, 0, 0, 0, 0,
-9, 7, 5, 3, 7, 3, 5, 2, 4, 4, 2, 2, 0, 0, 0, 0,
-9, 8, 5, 5, 7, 3, 3, 4, 4, 2, 2, 2, 2, 0, 0, 0,
-9, 5, 5, 3, 5, 5, 3, 4, 2, 4, 4, 2, 2, 2, 0, 0,
-9, 7, 5, 3, 3, 1, 3, 4, 2, 2, 4, 2, 2, 2, 0, 0,
-9, 7, 3, 3, 3, 3, 1, 2, 2, 2, 2, 2, 2, 2, 0, 0,
-9, 7, 1, 3, 3, 3, 3, 4, 2, 2, 2, 2, 2, 0, 0, 0,
-9, 7, 1, 5, 3, 3, 3, 2, 2, 2, 2, 2, 2, 2, 0, 0,
-9, 5, 5, 3, 5, 5, 3, 4, 2, 4, 4, 2, 2, 2, 0, 0,
-9, 8, 5, 5, 7, 7, 7, 6, 4, 4, 4, 4, 2, 0, 0, 0,
-9, 8, 5, 5, 5, 5, 5, 6, 2, 4, 6, 2, 2, 0, 0, 0,
-9, 8, 3, 5, 5, 1, 5, 2, 4, 4, 4, 0, 0, 0, 0, 0,
-9, 7, 5, 3, 5, 3, 3, 2, 2, 2, 4, 2, 2, 0, 0, 0,
-9, 7, 5, 3, 5, 5, 1, 4, 2, 2, 4, 2, 2, 0, 0, 0,
-9, 7, 5, 3, 7, 5, 3, 2, 2, 4, 4, 2, 2, 0, 0, 0,
-9, 7, 3, 3, 7, 3, 5, 4, 4, 2, 2, 2, 2, 0, 0, 0,
-9, 7, 5, 5, 7, 3, 1, 4, 2, 4, 4, 2, 2, 0, 0, 0,
-9, 5, 3, 5, 7, 3, 1, 6, 2, 4, 2, 2, 2, 0, 0, 0,
-9, 5, 3, 3, 5, 3, 3, 2, 2, 2, 4, 2, 2, 0, 0, 0,
-9, 7, 3, 3, 5, 3, 3, 2, 4, 2, 2, 2, 2, 0, 0, 0,
-9, 7, 3, 3, 5, 3, 3, 2, 2, 2, 2, 2, 0, 0, 0, 0,
-9, 7, 1, 3, 5, 5, 1, 2, 2, 4, 2, 2, 0, 2, 0, 0,
-9, 7, 3, 3, 3, 3, 1, 2, 2, 2, 2, 2, 2, 0, 0, 0,
-9, 7, 5, 5, 5, 3, 1, 4, 4, 2, 4, 4, 0, 0, 0, 0,
-9, 7, 5, 3, 7, 5, 5, 2, 4, 6, 4, 4, 2, 2, 0, 0,
-9, 7, 5, 5, 7, 5, 5, 6, 2, 4, 6, 2, 2, 0, 0, 0,
-9, 7, 3, 1, 5, 3, 1, 2, 2, 2, 4, 2, 0, 0, 0, 0,
-9, 7, 1, 3, 3, 3, 1, 4, 2, 2, 2, 2, 2, 0, 0, 0,
-9, 7, 3, 3, 3, 3, 3, 2, 2, 2, 2, 2, 2, 0, 0, 0,
-9, 7, 5, 5, 7, 3, 1, 4, 4, 6, 4, 2, 0, 0, 0, 0,
-9, 5, 5, 5, 5, 3, 3, 4, 4, 2, 2, 2, 0, 0, 0, 0,
-9, 7, 3, 3, 5, 5, 3, 2, 2, 2, 2, 2, 2, 0, 0, 0,
-9, 7, 3, 3, 5, 1, 1, 4, 4, 4, 4, 2, 2, 2, 0, 0,
-9, 7, 3, 1, 5, 3, 1, 4, 4, 2, 2, 2, 0, 2, 0, 0,
-9, 7, 5, 5, 7, 5, 5, 4, 4, 6, 4, 2, 2, 2, 0, 0,
-9, 8, 7, 5, 7, 5, 7, 4, 2, 6, 4, 2, 4, 0, 0, 0,
-9, 7, 3, 3, 5, 5, 3, 4, 4, 2, 2, 2, 0, 0, 0, 0,
-9, 7, 3, 3, 3, 3, 3, 2, 2, 2, 2, 2, 0, 0, 0, 0,
-9, 7, 1, 3, 5, 3, 1, 2, 2, 2, 2, 2, 0, 0, 0, 0,
-9, 7, 5, 5, 5, 5, 3, 2, 4, 4, 2, 2, 0, 0, 0, 0,
-9, 7, 5, 5, 7, 5, 3, 2, 2, 4, 2, 2, 0, 0, 0, 0,
-9, 7, 3, 5, 7, 5, 3, 2, 2, 4, 2, 2, 2, 0, 0, 0,
-9, 5, 3, 3, 3, 3, 5, 4, 2, 4, 2, 2, 0, 0, 0, 0,
-9, 7, 3, 5, 3, 3, 5, 6, 4, 4, 2, 2, 0, 0, 0, 0,
-9, 5, 5, 5, 5, 5, 3, 4, 4, 4, 4, 2, 0, 0, 0, 0,
-8, 5, 5, 5, 5, 5, 5, 4, 6, 4, 4, 2, 2, 2, 0, 0,
-8, 5, 5, 5, 3, 1, 3, 4, 4, 4, 2, 2, 0, 0, 0, 0,
-8, 5, 5, 3, 3, 3, 3, 4, 2, 2, 4, 2, 0, 0, 0, 0,
-9, 5, 3, 3, 3, 3, 3, 4, 4, 4, 2, 2, 2, 0, 0, 0,
-8, 5, 5, 5, 3, 5, 3, 2, 6, 2, 6, 2, 2, 0, 0, 0,
-8, 5, 3, 3, 3, 1, 5, 4, 4, 2, 2, 2, 0, 2, 0, 0,
-9, 5, 3, 3, 3, 5, 3, 2, 2, 2, 4, 2, 0, 0, 0, 0,
-9, 3, 5, 3, 3, 3, 3, 2, 6, 2, 2, 2, 0, 0, 0, 0,
-8, 7, 5, 5, 5, 5, 5, 4, 4, 4, 2, 2, 2, 0, 0, 0,
-8, 7, 7, 5, 5, 3, 5, 6, 4, 6, 4, 4, 6, 0, 0, 0,
-8, 7, 5, 5, 5, 3, 5, 4, 4, 4, 2, 4, 4, 0, 0, 0,
-9, 5, 7, 7, 3, 5, 5, 4, 4, 6, 4, 4, 6, 0, 0, 0,
-7, 5, 5, 5, 5, 5, 5, 4, 4, 7, 2, 4, 4, 0, 0, 0,
-8, 5, 7, 5, 7, 5, 5, 6, 4, 6, 2, 4, 6, 0, 0, 0,
-8, 5, 7, 5, 5, 3, 5, 6, 2, 6, 2, 4, 4, 0, 0, 0,
-8, 7, 5, 5, 5, 5, 5, 6, 4, 6, 4, 2, 6, 0, 0, 0,
-8, 7, 7, 5, 7, 5, 5, 4, 4, 7, 4, 2, 4, 0, 0, 0,
-7, 5, 5, 5, 5, 7, 5, 6, 4, 6, 2, 0, 2, 0, 0, 0,
-8, 5, 5, 5, 3, 3, 3, 2, 6, 4, 2, 2, 2, 2, 0, 0,
-8, 5, 5, 3, 3, 3, 3, 4, 4, 2, 2, 4, 2, 2, 0, 0,
-8, 5, 3, 3, 3, 3, 5, 4, 4, 2, 2, 4, 2, 0, 0, 0,
-8, 3, 7, 3, 5, 1, 3, 4, 2, 4, 2, 4, 2, 2, 0, 0,
-7, 3, 5, 3, 3, 3, 5, 4, 4, 4, 2, 4, 2, 0, 0, 0,
-8, 5, 5, 5, 5, 5, 5, 6, 4, 2, 2, 6, 6, 0, 0, 0,
-8, 7, 7, 3, 5, 5, 5, 4, 6, 4, 2, 4, 4, 0, 0, 0,
-8, 3, 5, 3, 5, 5, 5, 4, 6, 2, 0, 6, 4, 2, 0, 0,
-9, 5, 7, 5, 5, 5, 5, 4, 6, 6, 0, 6, 2, 2, 0, 0,
-9, 5, 7, 1, 5, 3, 3, 4, 6, 2, 4, 4, 2, 0, 0, 0,
-9, 5, 3, 3, 3, 5, 3, 4, 6, 2, 2, 4, 2, 0, 0, 0,
-9, 5, 5, 3, 3, 5, 1, 4, 4, 0, 2, 4, 2, 0, 0, 0,
-9, 3, 5, 3, 3, 3, 3, 2, 6, 2, 4, 2, 2, 0, 0, 0,
-9, 5, 5, 3, 3, 3, 1, 4, 6, 2, 4, 2, 2, 0, 0, 0,
-9, 5, 5, 5, 5, 5, 5, 4, 4, 2, 4, 4, 2, 0, 0, 0,
-8, 5, 7, 5, 5, 5, 5, 6, 4, 4, 4, 2, 2, 2, 0, 0,
-9, 5, 7, 5, 5, 7, 7, 7, 4, 6, 4, 4, 2, 2, 0, 0,
-9, 5, 7, 5, 7, 7, 3, 7, 7, 6, 4, 4, 2, 2, 0, 0,
-9, 5, 7, 5, 7, 5, 3, 4, 6, 6, 6, 2, 2, 0, 0, 0,
-9, 5, 8, 5, 7, 7, 5, 6, 6, 6, 2, 4, 2, 0, 0, 0,
-9, 5, 8, 5, 7, 7, 3, 6, 6, 6, 4, 2, 0, 0, 0, 0,
-9, 5, 7, 5, 5, 7, 3, 6, 6, 6, 2, 4, 0, 0, 0, 0,
-9, 5, 7, 5, 5, 7, 1, 4, 6, 7, 4, 4, 2, 2, 0, 0,
-9, 5, 8, 3, 7, 7, 1, 4, 6, 6, 6, 4, 2, 2, 0, 0,
-9, 5, 8, 3, 7, 7, 5, 2, 6, 2, 6, 4, 2, 2, 0, 0,
-9, 7, 7, 5, 7, 7, 3, 6, 6, 4, 4, 4, 2, 4, 0, 0,
-7, 5, 7, 5, 5, 5, 3, 4, 6, 4, 4, 4, 2, 2, 0, 0,
-9, 7, 7, 5, 5, 7, 5, 6, 6, 4, 4, 2, 4, 4, 0, 0,
-9, 5, 7, 3, 7, 7, 3, 6, 7, 7, 2, 4, 2, 4, 0, 0,
-9, 5, 5, 3, 7, 5, 3, 6, 6, 6, 4, 4, 2, 4, 0, 0,
-9, 5, 5, 3, 7, 7, 3, 4, 4, 6, 4, 4, 4, 2, 0, 0,
-9, 5, 5, 3, 7, 5, 3, 4, 6, 7, 2, 2, 2, 2, 0, 0,
-9, 5, 7, 5, 5, 7, 3, 6, 4, 6, 4, 2, 2, 0, 0, 0,
-8, 5, 7, 5, 7, 5, 3, 4, 4, 2, 4, 2, 2, 0, 0, 0,
-9, 5, 7, 5, 7, 3, 3, 6, 6, 4, 6, 2, 2, 6, 0, 0,
-9, 5, 7, 5, 7, 5, 1, 7, 7, 2, 6, 2, 2, 2, 0, 0,
-9, 7, 7, 5, 7, 5, 3, 7, 6, 2, 4, 2, 2, 0, 0, 0,
-9, 5, 7, 5, 7, 5, 3, 4, 6, 2, 4, 2, 0, 0, 0, 0,
-9, 5, 7, 5, 5, 5, 7, 6, 2, 4, 4, 4, 2, 2, 0, 0,
-9, 7, 7, 5, 7, 3, 5, 6, 4, 6, 2, 2, 2, 2, 0, 0,
-9, 5, 7, 5, 5, 5, 3, 7, 7, 2, 6, 4, 2, 2, 0, 0,
-9, 5, 7, 7, 7, 5, 5, 7, 7, 2, 6, 2, 2, 2, 0, 0,
-9, 5, 5, 5, 5, 5, 3, 7, 6, 2, 6, 2, 0, 2, 0, 0,
-9, 5, 5, 5, 5, 5, 3, 7, 6, 4, 6, 2, 2, 2, 0, 0,
-9, 7, 7, 5, 7, 5, 3, 6, 4, 2, 4, 4, 2, 2, 0, 0,
-9, 7, 7, 5, 7, 3, 3, 6, 4, 2, 4, 2, 4, 2, 0, 0,
-9, 5, 7, 5, 7, 5, 3, 6, 6, 4, 4, 4, 2, 2, 0, 0,
-9, 7, 5, 5, 7, 7, 3, 4, 6, 4, 4, 4, 2, 0, 0, 0,
-9, 5, 5, 3, 5, 5, 1, 6, 4, 6, 4, 2, 2, 0, 0, 0,
-9, 5, 5, 5, 3, 5, 3, 4, 6, 4, 4, 2, 2, 0, 0, 0,
-9, 7, 5, 5, 5, 5, 5, 4, 6, 4, 4, 2, 2, 0, 0, 0,
-8, 5, 7, 3, 5, 5, 3, 6, 4, 4, 4, 4, 2, 0, 0, 0,
-9, 5, 5, 3, 5, 7, 3, 4, 6, 4, 2, 4, 2, 0, 0, 0,
-9, 3, 7, 5, 5, 5, 3, 4, 6, 4, 4, 6, 2, 2, 0, 0,
-9, 5, 5, 3, 5, 3, 5, 6, 4, 2, 4, 2, 2, 0, 0, 0,
-9, 5, 5, 5, 5, 3, 3, 4, 6, 4, 2, 2, 2, 0, 0, 0,
-9, 5, 7, 3, 5, 5, 5, 4, 4, 4, 4, 4, 2, 0, 0, 0,
-9, 5, 7, 5, 5, 5, 5, 6, 6, 2, 4, 2, 2, 2, 0, 0,
-9, 5, 7, 3, 5, 5, 3, 4, 4, 4, 4, 4, 2, 2, 0, 0,
-9, 5, 7, 3, 5, 5, 5, 4, 4, 4, 2, 4, 2, 2, 0, 0,
-9, 5, 7, 5, 5, 5, 3, 4, 4, 4, 4, 4, 2, 0, 0, 0,
-9, 5, 7, 3, 5, 5, 3, 6, 4, 2, 4, 4, 2, 2, 0, 0,
-9, 5, 7, 3, 7, 5, 3, 4, 6, 0, 0, 2, 2, 0, 0, 0,
-9, 5, 7, 5, 5, 5, 5, 4, 4, 0, 2, 2, 2, 0, 0, 0,
-9, 5, 7, 5, 5, 5, 5, 4, 6, 0, 2, 2, 2, 0, 0, 0,
-8, 5, 5, 5, 5, 5, 5, 4, 6, 2, 2, 2, 0, 0, 0, 0,
-8, 5, 5, 5, 5, 5, 5, 4, 2, 2, 2, 2, 2, 0, 0, 0,
-8, 7, 3, 3, 5, 3, 3, 4, 4, 2, 0, 2, 0, 0, 0, 0,
-7, 5, 5, 7, 7, 5, 7, 6, 6, 4, 2, 2, 2, 0, 0, 0,
-7, 7, 5, 5, 5, 3, 5, 6, 4, 4, 2, 2, 2, 2, 0, 0,
-8, 7, 5, 5, 5, 5, 5, 4, 6, 2, 2, 2, 4, 2, 0, 0,
-8, 7, 7, 5, 5, 5, 5, 4, 6, 2, 0, 4, 4, 2, 0, 0,
-7, 5, 5, 5, 7, 5, 5, 4, 6, 2, 2, 2, 2, 0, 0, 0,
-8, 5, 5, 5, 7, 5, 5, 6, 4, 4, 0, 2, 2, 0, 0, 0,
-8, 5, 7, 7, 5, 7, 3, 7, 4, 4, 2, 0, 2, 0, 0, 0,
-9, 5, 5, 5, 5, 7, 5, 4, 6, 4, 4, 4, 0, 0, 0, 0,
-8, 5, 7, 5, 5, 7, 3, 6, 6, 2, 4, 2, 0, 0, 0, 0,
-8, 5, 7, 5, 5, 7, 3, 6, 7, 2, 4, 4, 0, 0, 0, 0,
-9, 5, 7, 5, 7, 7, 3, 7, 6, 6, 2, 6, 0, 0, 0, 0,
-9, 5, 7, 5, 5, 7, 3, 6, 4, 4, 6, 2, 0, 0, 0, 0,
-9, 5, 7, 5, 5, 7, 5, 6, 6, 6, 6, 2, 2, 0, 0, 0,
-9, 5, 7, 5, 5, 8, 3, 4, 4, 7, 6, 2, 0, 0, 0, 0,
-9, 3, 5, 7, 3, 3, 3, 2, 4, 4, 4, 2, 0, 0, 0, 0,
-8, 3, 5, 5, 3, 7, 1, 4, 4, 6, 4, 2, 0, 0, 0, 0,
-9, 5, 7, 7, 3, 7, 3, 4, 4, 6, 6, 2, 2, 0, 0, 0,
-9, 5, 7, 7, 5, 7, 3, 6, 4, 6, 6, 2, 0, 2, 0, 0,
-9, 7, 7, 5, 3, 1, 3, 2, 2, 4, 4, 2, 2, 0, 0, 0,
-8, 7, 5, 5, 3, 1, 5, 2, 2, 4, 2, 2, 2, 0, 0, 0,
-8, 3, 5, 7, 3, 3, 5, 4, 2, 4, 0, 4, 2, 0, 0, 0,
-8, 5, 7, 5, 3, 3, 5, 2, 2, 6, 2, 2, 0, 0, 0, 0,
-8, 5, 5, 5, 1, 1, 5, 4, 4, 2, 2, 2, 2, 0, 0, 0,
-8, 7, 5, 5, 1, 3, 7, 2, 4, 2, 2, 2, 0, 0, 0, 0,
-8, 7, 5, 3, 3, 1, 7, 2, 2, 4, 0, 2, 2, 0, 0, 0,
-9, 5, 5, 5, 3, 3, 7, 4, 6, 4, 2, 2, 2, 0, 0, 0,
-9, 5, 5, 5, 5, 3, 5, 2, 4, 6, 4, 2, 0, 0, 0, 0,
-8, 3, 5, 5, 3, 1, 5, 4, 2, 2, 6, 2, 0, 0, 0, 0,
-8, 7, 3, 3, 5, 5, 3, 6, 6, 2, 2, 4, 2, 2, 0, 0,
-9, 7, 3, 5, 5, 3, 5, 2, 2, 4, 4, 2, 0, 0, 0, 0,
-9, 5, 5, 3, 5, 1, 5, 4, 2, 4, 4, 2, 2, 2, 0, 0,
-8, 3, 3, 3, 3, 3, 5, 2, 6, 2, 2, 2, 2, 2, 0, 0,
-8, 5, 5, 5, 3, 3, 3, 2, 4, 2, 2, 2, 0, 0, 0, 0,
-9, 5, 5, 3, 3, 3, 3, 2, 2, 2, 4, 2, 2, 0, 0, 0,
-8, 5, 5, 5, 5, 5, 5, 2, 2, 4, 4, 2, 2, 0, 0, 0,
-9, 7, 5, 5, 5, 5, 7, 4, 4, 4, 4, 4, 2, 0, 0, 0,
-9, 7, 5, 5, 7, 5, 5, 4, 4, 2, 4, 2, 2, 0, 0, 0,
-8, 7, 3, 3, 3, 5, 3, 2, 4, 2, 2, 2, 2, 0, 0, 0,
-8, 5, 5, 3, 3, 3, 5, 4, 2, 4, 2, 4, 0, 2, 0, 0,
-8, 3, 3, 5, 5, 1, 3, 4, 2, 2, 2, 4, 2, 2, 0, 0,
-9, 3, 3, 3, 5, 1, 3, 2, 4, 4, 2, 2, 2, 0, 0, 0,
-9, 5, 3, 3, 3, 3, 3, 2, 2, 4, 2, 2, 0, 0, 0, 0,
-8, 7, 5, 5, 5, 3, 5, 4, 2, 4, 4, 2, 0, 0, 0, 0,
-9, 7, 3, 7, 5, 5, 7, 4, 4, 4, 6, 2, 0, 0, 0, 0,
-8, 7, 5, 5, 5, 3, 7, 4, 4, 6, 4, 2, 0, 0, 0, 0,
-9, 5, 5, 5, 5, 3, 7, 2, 2, 6, 4, 2, 0, 0, 0, 0,
-9, 3, 5, 5, 1, 5, 3, 4, 2, 6, 6, 0, 0, 0, 0, 0,
-8, 5, 5, 3, 3, 3, 3, 4, 2, 4, 4, 0, 0, 0, 0, 0,
-9, 7, 5, 7, 3, 7, 5, 2, 2, 4, 6, 2, 2, 0, 0, 0,
-9, 3, 7, 5, 3, 5, 3, 4, 4, 6, 4, 0, 0, 0, 0, 0,
-9, 5, 5, 7, 5, 5, 3, 6, 4, 4, 4, 4, 2, 2, 0, 0,
-9, 7, 5, 5, 3, 5, 5, 4, 4, 6, 2, 2, 2, 2, 0, 0,
-9, 7, 5, 7, 5, 5, 3, 6, 4, 4, 4, 4, 2, 0, 0, 0,
-9, 7, 3, 7, 5, 7, 3, 4, 4, 4, 6, 4, 2, 0, 0, 0,
-9, 5, 5, 5, 5, 5, 3, 6, 6, 4, 4, 2, 2, 2, 0, 0,
-9, 7, 5, 7, 5, 7, 5, 6, 4, 2, 7, 7, 2, 2, 0, 0,
-9, 5, 5, 5, 5, 5, 5, 6, 2, 4, 6, 4, 2, 0, 0, 0,
-9, 7, 5, 5, 3, 5, 1, 6, 4, 6, 4, 4, 2, 2, 0, 0,
-9, 7, 5, 5, 5, 5, 7, 6, 6, 4, 4, 6, 4, 2, 0, 0,
-9, 7, 5, 7, 7, 3, 7, 6, 4, 4, 4, 4, 2, 0, 0, 0,
-9, 7, 7, 7, 5, 5, 5, 4, 6, 6, 4, 2, 2, 0, 0, 0,
-9, 7, 5, 5, 5, 5, 1, 6, 6, 4, 4, 2, 2, 0, 0, 0,
-9, 7, 5, 5, 5, 5, 5, 4, 4, 7, 2, 2, 2, 0, 0, 0,
-9, 8, 7, 5, 5, 7, 5, 4, 4, 6, 4, 0, 2, 0, 0, 0,
-9, 7, 7, 5, 7, 7, 3, 6, 4, 7, 2, 2, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 5, 5, 6, 4, 4, 0, 2, 0, 0, 0, 0,
-9, 7, 7, 7, 7, 7, 5, 4, 4, 6, 2, 2, 0, 0, 0, 0,
-8, 8, 5, 7, 5, 5, 3, 4, 6, 7, 2, 2, 0, 0, 0, 0,
-9, 7, 5, 7, 7, 5, 1, 6, 6, 6, 2, 2, 0, 0, 0, 0,
-9, 7, 7, 7, 7, 7, 1, 6, 6, 6, 2, 2, 0, 0, 0, 0,
-9, 5, 7, 7, 7, 7, 5, 6, 4, 6, 2, 2, 0, 0, 0, 0,
-9, 5, 7, 7, 7, 5, 1, 6, 4, 4, 4, 2, 0, 0, 0, 0,
-9, 7, 5, 7, 5, 5, 3, 6, 6, 7, 2, 2, 2, 0, 0, 0,
-9, 7, 5, 7, 7, 5, 7, 6, 4, 6, 4, 2, 0, 0, 0, 0,
-9, 7, 5, 7, 7, 7, 5, 6, 4, 6, 2, 2, 0, 0, 0, 0,
-9, 7, 5, 5, 5, 5, 3, 4, 6, 6, 2, 2, 2, 0, 0, 0,
-9, 5, 7, 5, 7, 5, 3, 4, 6, 2, 2, 2, 0, 0, 0, 0,
-9, 7, 5, 5, 7, 5, 5, 6, 6, 4, 4, 2, 0, 0, 0, 0,
-9, 7, 5, 5, 5, 5, 7, 4, 7, 6, 4, 2, 2, 0, 0, 0,
-8, 7, 5, 5, 5, 3, 5, 2, 2, 4, 2, 4, 0, 0, 0, 0,
-8, 7, 3, 3, 5, 3, 3, 6, 2, 6, 2, 2, 0, 2, 0, 0,
-9, 7, 5, 5, 5, 7, 5, 6, 2, 6, 6, 4, 2, 0, 0, 0,
-9, 7, 7, 5, 5, 5, 5, 6, 2, 2, 6, 2, 4, 2, 0, 0,
-9, 7, 7, 7, 5, 5, 5, 7, 6, 4, 6, 4, 2, 0, 0, 0,
-9, 7, 5, 5, 7, 5, 5, 7, 2, 4, 6, 6, 4, 0, 0, 0,
-9, 7, 5, 5, 5, 5, 5, 7, 6, 6, 4, 6, 2, 0, 0, 0,
-9, 7, 1, 5, 5, 3, 3, 6, 2, 4, 4, 4, 2, 0, 0, 0,
-9, 7, 7, 5, 5, 3, 5, 6, 2, 4, 6, 4, 4, 0, 0, 0,
-8, 5, 5, 5, 5, 5, 5, 7, 4, 4, 6, 6, 2, 2, 0, 0,
-9, 7, 5, 7, 5, 5, 5, 7, 6, 2, 6, 4, 2, 0, 0, 0,
-9, 7, 7, 5, 7, 5, 5, 7, 4, 4, 6, 2, 2, 0, 0, 0,
-9, 7, 3, 5, 5, 3, 3, 4, 4, 2, 6, 2, 6, 0, 0, 0,
-8, 7, 3, 5, 5, 3, 7, 4, 4, 2, 7, 2, 4, 0, 0, 0,
-8, 5, 7, 3, 5, 3, 5, 4, 4, 6, 6, 2, 2, 0, 0, 0,
-9, 7, 3, 7, 7, 3, 5, 4, 4, 4, 6, 2, 2, 0, 0, 0,
-9, 7, 7, 7, 5, 5, 7, 6, 4, 6, 6, 2, 2, 2, 0, 0,
-9, 5, 5, 7, 7, 5, 5, 6, 2, 7, 2, 2, 4, 0, 0, 0,
-9, 7, 5, 7, 5, 5, 7, 6, 2, 7, 2, 2, 4, 2, 0, 0,
-8, 7, 5, 5, 5, 5, 7, 6, 4, 7, 4, 4, 4, 0, 0, 0,
-9, 5, 3, 3, 5, 3, 3, 6, 2, 7, 4, 4, 2, 2, 0, 0,
-9, 5, 3, 5, 5, 3, 5, 4, 2, 7, 2, 2, 2, 0, 0, 0,
-9, 5, 5, 5, 7, 5, 3, 4, 2, 7, 4, 6, 2, 0, 0, 0,
-9, 7, 3, 5, 5, 1, 5, 2, 4, 4, 4, 2, 2, 2, 0, 0,
-9, 7, 5, 5, 3, 5, 5, 2, 6, 4, 4, 4, 2, 2, 0, 0,
-9, 5, 3, 5, 3, 3, 5, 2, 4, 2, 4, 2, 0, 0, 0, 0,
-9, 7, 7, 5, 3, 1, 3, 4, 6, 2, 6, 4, 4, 0, 0, 0,
-8, 5, 5, 5, 5, 5, 5, 4, 6, 2, 6, 4, 4, 2, 0, 0,
-8, 5, 5, 5, 5, 3, 5, 6, 2, 2, 4, 4, 2, 2, 0, 0,
-9, 7, 7, 5, 5, 5, 7, 4, 6, 6, 4, 4, 2, 4, 0, 0,
-8, 7, 3, 3, 5, 1, 5, 4, 2, 2, 4, 4, 2, 0, 0, 0,
-8, 7, 5, 5, 7, 3, 7, 4, 4, 4, 6, 4, 4, 0, 0, 0,
-8, 5, 5, 5, 7, 5, 5, 6, 4, 6, 6, 2, 2, 0, 0, 0,
-9, 7, 5, 5, 7, 5, 3, 6, 4, 6, 2, 4, 0, 2, 0, 0,
-8, 7, 5, 5, 7, 5, 7, 4, 4, 6, 6, 4, 0, 0, 0, 0,
-9, 5, 3, 5, 3, 3, 5, 2, 4, 4, 4, 2, 0, 0, 0, 0,
-8, 7, 1, 5, 1, 3, 5, 2, 6, 4, 4, 2, 2, 0, 0, 0,
-9, 7, 3, 3, 5, 3, 7, 2, 6, 4, 4, 2, 2, 0, 0, 0,
-9, 7, 3, 5, 3, 5, 3, 6, 4, 4, 6, 2, 0, 0, 0, 0,
-8, 5, 3, 5, 3, 7, 5, 4, 2, 4, 6, 2, 0, 2, 0, 0,
-9, 7, 5, 3, 5, 5, 7, 4, 6, 4, 4, 2, 2, 2, 0, 0,
-9, 5, 3, 7, 5, 3, 5, 2, 2, 4, 6, 2, 2, 0, 0, 0,
-8, 3, 5, 5, 3, 3, 5, 2, 2, 4, 6, 0, 0, 0, 0, 0,
-8, 5, 5, 7, 3, 3, 5, 2, 2, 4, 4, 0, 0, 0, 0, 0,
-8, 5, 3, 5, 1, 3, 3, 2, 2, 6, 2, 2, 2, 0, 0, 0,
-8, 7, 7, 7, 5, 3, 7, 2, 2, 4, 4, 2, 2, 0, 0, 0,
-9, 5, 7, 7, 5, 5, 7, 2, 4, 4, 2, 2, 2, 0, 0, 0,
-8, 3, 5, 3, 1, 3, 3, 4, 2, 2, 2, 2, 2, 2, 0, 0,
-8, 5, 3, 3, 1, 3, 5, 2, 4, 2, 2, 2, 2, 2, 0, 0,
-9, 5, 5, 5, 7, 3, 5, 4, 2, 4, 4, 2, 0, 0, 0, 0,
-8, 7, 5, 5, 5, 3, 7, 4, 4, 2, 2, 2, 2, 0, 0, 0,
-7, 5, 7, 5, 5, 3, 7, 4, 6, 4, 2, 0, 0, 0, 0, 0,
-8, 7, 5, 5, 7, 3, 7, 2, 4, 4, 4, 2, 4, 2, 0, 0,
-8, 3, 5, 3, 3, 1, 5, 2, 4, 2, 4, 2, 0, 0, 0, 0,
-9, 5, 5, 5, 5, 5, 7, 2, 6, 4, 2, 0, 2, 0, 0, 0,
-8, 5, 5, 5, 7, 5, 7, 6, 6, 2, 2, 0, 2, 0, 0, 0,
-8, 5, 5, 3, 3, 3, 3, 2, 4, 2, 2, 2, 2, 0, 0, 0,
-8, 5, 3, 3, 3, 5, 5, 2, 4, 2, 2, 2, 2, 0, 0, 0,
-9, 5, 3, 3, 5, 3, 3, 4, 2, 4, 2, 4, 2, 0, 0, 0,
-8, 5, 3, 3, 3, 3, 3, 2, 2, 4, 2, 2, 2, 0, 0, 0,
-8, 3, 3, 5, 5, 3, 3, 4, 2, 2, 4, 2, 2, 2, 0, 0,
-8, 5, 3, 5, 5, 3, 3, 4, 4, 2, 2, 2, 0, 0, 0, 0,
-9, 5, 5, 3, 5, 3, 5, 4, 4, 4, 6, 2, 2, 0, 0, 0,
-7, 7, 5, 5, 5, 3, 5, 4, 4, 4, 4, 2, 2, 2, 0, 0,
-9, 7, 7, 5, 5, 3, 5, 6, 2, 2, 6, 2, 4, 2, 0, 0,
-9, 5, 5, 5, 5, 5, 5, 4, 2, 4, 4, 2, 6, 2, 0, 0,
-9, 5, 5, 3, 3, 3, 3, 4, 4, 2, 4, 2, 2, 2, 0, 0,
-9, 5, 3, 5, 3, 3, 5, 4, 2, 4, 2, 2, 2, 2, 0, 0,
-9, 5, 3, 3, 3, 3, 3, 4, 4, 4, 4, 2, 2, 0, 0, 0,
-8, 5, 3, 3, 3, 3, 1, 4, 2, 2, 6, 2, 2, 0, 0, 0,
-8, 5, 5, 3, 3, 7, 3, 6, 2, 2, 4, 2, 2, 2, 0, 0,
-8, 5, 7, 7, 3, 5, 5, 4, 2, 2, 2, 2, 2, 0, 0, 0,
-8, 5, 5, 3, 3, 3, 3, 4, 2, 2, 2, 0, 0, 0, 0, 0,
-8, 5, 7, 5, 5, 7, 5, 6, 6, 6, 4, 2, 0, 0, 0, 0,
-8, 7, 7, 7, 5, 7, 5, 4, 4, 4, 6, 2, 2, 0, 0, 0,
-8, 7, 7, 7, 7, 7, 5, 4, 2, 4, 2, 0, 0, 0, 0, 0,
-7, 5, 3, 5, 3, 3, 3, 4, 2, 2, 2, 2, 2, 2, 0, 0,
-8, 7, 5, 3, 3, 5, 5, 2, 4, 2, 2, 2, 2, 2, 0, 0,
-8, 3, 5, 3, 5, 3, 3, 4, 2, 2, 2, 2, 2, 0, 0, 0,
-7, 5, 5, 3, 3, 5, 3, 4, 2, 2, 2, 2, 2, 0, 0, 0,
-7, 5, 5, 5, 5, 5, 3, 4, 4, 4, 2, 2, 2, 0, 0, 0,
-8, 5, 7, 5, 5, 5, 5, 4, 6, 6, 4, 2, 2, 0, 0, 0,
-8, 5, 5, 3, 3, 3, 7, 4, 4, 2, 2, 2, 4, 2, 0, 0,
-8, 5, 5, 3, 3, 1, 7, 2, 4, 4, 2, 4, 6, 0, 0, 0,
-8, 5, 5, 3, 3, 1, 5, 2, 6, 4, 2, 4, 4, 0, 0, 0,
-8, 5, 5, 5, 5, 3, 5, 2, 2, 2, 2, 2, 4, 0, 0, 0,
-9, 3, 7, 5, 3, 3, 5, 4, 6, 2, 4, 2, 2, 0, 0, 0,
-9, 5, 3, 5, 1, 3, 3, 2, 2, 4, 2, 2, 2, 0, 0, 0,
-9, 7, 5, 5, 5, 5, 5, 6, 4, 4, 6, 2, 0, 0, 0, 0,
-8, 7, 5, 7, 5, 5, 5, 6, 4, 6, 4, 0, 0, 0, 0, 0,
-9, 5, 3, 3, 3, 3, 5, 2, 4, 4, 6, 0, 0, 0, 0, 0,
-9, 5, 5, 5, 3, 3, 5, 2, 2, 4, 6, 0, 0, 0, 0, 0,
-9, 7, 5, 5, 3, 3, 5, 2, 4, 6, 4, 0, 0, 0, 0, 0,
-9, 7, 7, 3, 3, 5, 1, 4, 4, 4, 6, 0, 0, 0, 0, 0,
-8, 5, 5, 5, 3, 3, 3, 4, 4, 2, 4, 2, 0, 0, 0, 0,
-9, 5, 5, 5, 3, 3, 3, 2, 4, 7, 2, 2, 0, 0, 0, 0,
-8, 5, 5, 3, 1, 5, 5, 2, 6, 4, 4, 2, 2, 0, 0, 0,
-8, 5, 5, 5, 5, 5, 5, 4, 2, 4, 6, 2, 2, 0, 0, 0,
-9, 7, 5, 7, 5, 5, 7, 4, 4, 4, 6, 2, 2, 0, 0, 0,
-8, 5, 5, 3, 3, 3, 1, 4, 4, 4, 2, 2, 2, 0, 0, 0,
-8, 5, 5, 5, 5, 5, 3, 4, 4, 4, 2, 2, 2, 2, 0, 0,
-9, 3, 5, 5, 5, 5, 5, 2, 4, 2, 4, 2, 2, 0, 0, 0,
-8, 5, 7, 5, 5, 3, 3, 4, 4, 4, 4, 4, 2, 2, 0, 0,
-7, 7, 5, 5, 5, 3, 7, 2, 4, 2, 2, 4, 4, 0, 0, 0,
-8, 7, 7, 5, 7, 5, 7, 2, 4, 2, 4, 2, 0, 0, 0, 0,
-8, 7, 7, 5, 5, 3, 3, 4, 6, 4, 2, 2, 2, 2, 0, 0,
-9, 7, 5, 5, 5, 5, 5, 4, 6, 4, 2, 4, 4, 0, 0, 0,
-7, 5, 5, 5, 5, 3, 7, 4, 6, 2, 2, 4, 4, 0, 0, 0,
-8, 5, 7, 5, 3, 7, 5, 2, 2, 4, 2, 2, 2, 0, 0, 0,
-8, 5, 5, 3, 3, 3, 3, 4, 4, 4, 2, 2, 4, 0, 0, 0,
-8, 5, 7, 7, 5, 5, 3, 6, 6, 6, 2, 4, 4, 0, 0, 0,
-8, 5, 5, 7, 5, 5, 5, 6, 4, 6, 4, 4, 6, 0, 0, 0,
-9, 5, 5, 5, 5, 5, 3, 4, 4, 2, 4, 4, 4, 2, 0, 0,
-9, 5, 5, 7, 5, 3, 7, 4, 4, 6, 6, 6, 2, 2, 0, 0,
-9, 5, 5, 5, 5, 5, 7, 2, 4, 2, 4, 2, 2, 0, 0, 0,
-9, 5, 5, 3, 3, 5, 5, 4, 4, 6, 4, 2, 2, 2, 0, 0,
-9, 7, 5, 3, 3, 3, 5, 2, 2, 6, 4, 2, 2, 0, 0, 0,
-9, 5, 5, 5, 5, 3, 7, 4, 2, 6, 6, 2, 2, 0, 0, 0,
-8, 5, 7, 5, 5, 5, 5, 6, 4, 6, 6, 2, 2, 0, 0, 0,
-9, 5, 7, 5, 5, 7, 3, 6, 4, 6, 6, 2, 2, 2, 0, 0,
-9, 5, 8, 5, 7, 7, 5, 6, 6, 6, 4, 4, 2, 2, 0, 0,
-8, 5, 7, 7, 5, 7, 5, 4, 6, 6, 6, 2, 2, 0, 0, 0,
-9, 5, 7, 5, 7, 7, 5, 6, 4, 6, 6, 4, 0, 0, 0, 0,
-9, 5, 7, 5, 7, 7, 5, 4, 4, 6, 4, 2, 2, 0, 0, 0,
-9, 5, 7, 3, 7, 7, 3, 4, 4, 6, 4, 4, 2, 0, 0, 0,
-9, 3, 7, 5, 5, 7, 3, 4, 4, 6, 4, 2, 2, 2, 0, 0,
-9, 5, 7, 5, 5, 7, 3, 6, 6, 6, 4, 2, 2, 2, 0, 0,
-9, 5, 7, 5, 7, 5, 5, 6, 6, 6, 4, 2, 2, 2, 0, 0,
-9, 5, 7, 5, 5, 7, 5, 4, 6, 6, 6, 4, 2, 2, 0, 0,
-8, 5, 7, 5, 7, 7, 3, 4, 4, 6, 4, 2, 2, 2, 0, 0,
-9, 5, 7, 5, 5, 5, 3, 6, 4, 6, 4, 2, 4, 2, 0, 0,
-9, 5, 7, 5, 7, 5, 3, 6, 4, 6, 4, 2, 6, 0, 0, 0,
-9, 5, 7, 5, 5, 5, 3, 4, 6, 6, 4, 4, 4, 2, 0, 0,
-9, 5, 7, 5, 7, 7, 3, 4, 4, 6, 4, 2, 2, 4, 0, 0,
-9, 5, 5, 5, 5, 7, 3, 2, 6, 6, 2, 2, 4, 0, 0, 0,
-9, 5, 5, 5, 5, 7, 3, 4, 6, 6, 4, 2, 2, 0, 0, 0,
-9, 5, 7, 5, 7, 5, 3, 4, 6, 4, 4, 2, 2, 2, 0, 0,
-9, 5, 7, 5, 5, 5, 3, 6, 6, 4, 4, 2, 2, 4, 0, 0,
-9, 5, 7, 5, 7, 5, 5, 6, 6, 2, 4, 2, 0, 2, 0, 0,
-9, 5, 5, 3, 5, 5, 1, 6, 6, 2, 4, 4, 0, 0, 0, 0,
-8, 5, 7, 5, 5, 5, 3, 4, 6, 2, 4, 2, 2, 0, 0, 0,
-8, 5, 7, 5, 7, 3, 3, 6, 6, 2, 4, 2, 4, 0, 0, 0,
-9, 5, 7, 7, 7, 7, 3, 7, 4, 4, 4, 2, 2, 0, 0, 0,
-8, 7, 7, 5, 5, 5, 3, 7, 7, 4, 4, 2, 2, 0, 0, 0,
-9, 5, 5, 5, 5, 5, 3, 6, 6, 4, 6, 4, 2, 0, 0, 0,
-9, 5, 7, 5, 5, 5, 3, 7, 6, 4, 6, 4, 2, 2, 0, 0,
-9, 3, 5, 3, 5, 5, 1, 6, 4, 4, 6, 2, 2, 0, 0, 0,
-9, 3, 5, 5, 7, 5, 3, 4, 6, 4, 4, 2, 2, 0, 0, 0,
-9, 5, 5, 3, 5, 5, 5, 7, 6, 4, 6, 2, 2, 2, 0, 0,
-9, 5, 5, 3, 5, 5, 5, 2, 4, 4, 4, 2, 0, 0, 0, 0,
-8, 7, 5, 5, 5, 7, 5, 2, 7, 6, 4, 2, 2, 0, 0, 0,
-8, 3, 3, 5, 3, 5, 3, 4, 4, 2, 4, 4, 4, 2, 0, 0,
-8, 3, 3, 5, 3, 5, 5, 6, 2, 2, 4, 2, 2, 2, 0, 0,
-8, 5, 3, 3, 3, 3, 3, 4, 2, 2, 2, 2, 2, 2, 0, 0,
-8, 5, 7, 5, 1, 5, 1, 6, 4, 2, 4, 2, 2, 0, 0, 0,
-9, 3, 3, 5, 3, 3, 5, 4, 6, 4, 2, 2, 2, 2, 0, 0,
-8, 5, 7, 7, 3, 7, 5, 7, 4, 4, 6, 2, 4, 2, 0, 0,
-8, 3, 5, 7, 5, 5, 5, 4, 6, 2, 4, 2, 0, 0, 0, 0,
-7, 3, 5, 3, 3, 3, 7, 4, 6, 4, 2, 2, 0, 2, 0, 0,
-8, 3, 3, 5, 3, 3, 5, 4, 4, 2, 4, 4, 0, 0, 0, 0,
-8, 5, 3, 5, 3, 3, 7, 2, 4, 4, 4, 6, 2, 0, 0, 0,
-8, 7, 5, 5, 5, 5, 7, 4, 6, 4, 2, 2, 2, 2, 0, 0,
-7, 5, 5, 5, 5, 5, 7, 6, 4, 6, 4, 6, 4, 0, 0, 0,
-8, 5, 5, 5, 5, 5, 3, 6, 4, 6, 4, 2, 4, 0, 0, 0,
-9, 5, 7, 5, 5, 5, 3, 6, 6, 6, 4, 2, 4, 0, 0, 0,
-9, 5, 5, 3, 5, 5, 5, 4, 4, 6, 4, 2, 2, 0, 0, 0,
-9, 5, 7, 5, 5, 5, 5, 4, 4, 6, 6, 2, 2, 2, 0, 0,
-9, 5, 7, 5, 3, 5, 5, 4, 4, 4, 7, 2, 2, 0, 0, 0,
-9, 3, 7, 5, 3, 5, 5, 4, 4, 6, 6, 2, 2, 0, 0, 0,
-9, 5, 5, 3, 5, 3, 3, 4, 4, 2, 2, 2, 2, 0, 0, 0,
-9, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 2, 2, 0, 0, 0,
-9, 7, 5, 5, 5, 5, 5, 4, 4, 4, 6, 2, 2, 0, 0, 0,
-9, 5, 5, 5, 5, 3, 5, 2, 2, 6, 6, 2, 2, 2, 0, 0,
-9, 5, 5, 3, 5, 3, 5, 2, 2, 6, 2, 2, 2, 0, 0, 0,
-8, 7, 7, 1, 5, 5, 3, 4, 4, 4, 2, 2, 2, 0, 0, 0,
-9, 7, 5, 1, 3, 3, 7, 2, 2, 4, 4, 2, 2, 0, 0, 0,
-9, 7, 7, 5, 5, 5, 5, 6, 4, 2, 4, 6, 0, 0, 0, 0,
-9, 5, 7, 5, 7, 7, 3, 6, 7, 2, 6, 6, 2, 2, 0, 0,
-9, 7, 5, 3, 7, 7, 3, 6, 6, 0, 4, 7, 2, 2, 0, 0,
-9, 5, 7, 3, 7, 7, 3, 7, 6, 2, 6, 7, 2, 4, 0, 0,
-9, 5, 7, 3, 7, 7, 5, 7, 4, 4, 4, 7, 4, 4, 0, 0,
-9, 3, 7, 5, 7, 7, 3, 7, 6, 2, 6, 6, 2, 4, 0, 0,
-9, 5, 7, 5, 5, 7, 5, 6, 4, 2, 4, 6, 2, 4, 0, 0,
-9, 5, 7, 3, 5, 5, 3, 4, 6, 4, 4, 4, 2, 2, 0, 0,
-9, 5, 7, 3, 7, 7, 3, 4, 4, 6, 2, 4, 2, 2, 0, 0,
-9, 5, 7, 5, 5, 7, 3, 4, 4, 2, 6, 4, 2, 2, 0, 0,
-9, 5, 7, 3, 7, 7, 3, 6, 4, 4, 4, 4, 2, 0, 0, 0,
-9, 5, 7, 5, 7, 5, 1, 6, 6, 2, 4, 2, 2, 2, 0, 0,
-9, 7, 3, 5, 3, 1, 5, 2, 4, 4, 2, 2, 4, 2, 0, 0,
-8, 5, 5, 5, 5, 1, 3, 4, 6, 2, 2, 4, 4, 0, 0, 0,
-8, 3, 5, 5, 5, 3, 5, 4, 6, 4, 6, 6, 2, 2, 0, 0,
-7, 5, 5, 3, 5, 3, 5, 4, 2, 4, 2, 2, 4, 2, 0, 0,
-9, 7, 5, 5, 5, 7, 5, 4, 4, 4, 4, 2, 4, 2, 0, 0,
-9, 5, 5, 5, 5, 5, 7, 4, 6, 4, 4, 2, 4, 0, 0, 0,
-9, 3, 5, 3, 5, 5, 7, 4, 2, 4, 6, 2, 2, 2, 0, 0,
-9, 7, 5, 3, 3, 3, 5, 4, 2, 4, 4, 2, 4, 0, 0, 0,
-9, 5, 3, 5, 3, 3, 3, 2, 2, 4, 2, 2, 4, 0, 0, 0,
-9, 3, 5, 3, 3, 5, 3, 4, 6, 4, 2, 2, 2, 2, 0, 0,
-9, 7, 5, 5, 5, 5, 5, 4, 2, 4, 4, 2, 2, 2, 0, 0,
-7, 7, 7, 5, 5, 7, 5, 4, 6, 2, 4, 6, 2, 0, 0, 0,
-8, 7, 7, 5, 3, 5, 5, 6, 4, 2, 4, 4, 2, 2, 0, 0,
-8, 5, 5, 5, 3, 5, 5, 4, 4, 4, 6, 4, 2, 2, 0, 0,
-8, 5, 5, 5, 3, 3, 5, 4, 2, 2, 4, 4, 2, 0, 0, 0,
-7, 7, 5, 5, 3, 5, 5, 4, 4, 4, 4, 2, 2, 4, 0, 0,
-8, 7, 5, 5, 5, 3, 7, 4, 6, 2, 6, 2, 2, 2, 0, 0,
-9, 7, 5, 5, 5, 5, 7, 4, 6, 6, 4, 4, 2, 2, 0, 0,
-8, 5, 5, 3, 3, 3, 3, 4, 4, 4, 4, 2, 2, 2, 0, 0,
-9, 7, 5, 5, 3, 5, 3, 4, 6, 4, 6, 2, 2, 0, 0, 0,
-8, 7, 5, 5, 5, 5, 3, 6, 6, 6, 4, 2, 2, 0, 0, 0,
-8, 7, 3, 3, 3, 3, 3, 6, 4, 2, 6, 2, 2, 2, 0, 0,
-9, 7, 3, 3, 3, 5, 3, 6, 2, 2, 4, 6, 2, 2, 0, 0,
-8, 7, 5, 5, 5, 5, 5, 6, 4, 6, 4, 2, 2, 0, 0, 0,
-8, 7, 5, 5, 3, 5, 3, 6, 4, 6, 4, 4, 2, 2, 0, 0,
-8, 7, 5, 5, 7, 5, 5, 4, 4, 4, 4, 6, 2, 2, 0, 0,
-8, 7, 5, 5, 7, 5, 5, 4, 6, 6, 6, 4, 2, 0, 0, 0,
-8, 7, 5, 5, 5, 5, 5, 4, 6, 6, 4, 4, 2, 0, 0, 0,
-8, 7, 5, 5, 5, 5, 3, 6, 7, 6, 4, 2, 2, 0, 0, 0,
-8, 7, 5, 7, 7, 5, 3, 4, 4, 6, 4, 2, 0, 0, 0, 0,
-9, 7, 5, 7, 5, 5, 3, 4, 4, 7, 4, 2, 2, 0, 0, 0,
-8, 7, 5, 7, 5, 7, 5, 4, 4, 6, 7, 4, 0, 0, 0, 0,
-8, 7, 5, 5, 5, 5, 5, 6, 4, 6, 2, 2, 0, 0, 0, 0,
-9, 7, 5, 7, 5, 7, 5, 4, 6, 4, 2, 0, 0, 0, 0, 0,
-8, 7, 5, 5, 7, 5, 5, 2, 6, 6, 6, 2, 2, 2, 0, 0,
-8, 7, 3, 3, 5, 3, 5, 4, 6, 6, 4, 2, 0, 0, 0, 0,
-8, 5, 3, 3, 5, 5, 1, 4, 2, 4, 6, 2, 0, 0, 0, 0,
-8, 7, 5, 5, 7, 5, 7, 4, 4, 4, 6, 4, 2, 0, 0, 0,
-8, 5, 3, 3, 5, 7, 7, 4, 4, 4, 4, 2, 2, 0, 0, 0,
-9, 5, 5, 7, 5, 3, 1, 4, 4, 4, 4, 2, 2, 2, 0, 0,
-8, 5, 3, 7, 3, 3, 5, 6, 2, 2, 6, 2, 2, 0, 0, 0,
-9, 5, 5, 7, 5, 5, 7, 7, 2, 4, 6, 2, 4, 2, 0, 0,
-9, 7, 5, 5, 5, 5, 5, 6, 6, 2, 6, 4, 0, 0, 0, 0,
-9, 7, 7, 5, 7, 3, 5, 4, 6, 2, 2, 6, 4, 0, 0, 0,
-9, 7, 5, 5, 7, 5, 1, 7, 6, 4, 4, 6, 2, 0, 0, 0,
-9, 7, 5, 7, 7, 3, 3, 7, 2, 2, 4, 6, 2, 0, 0, 0,
-9, 7, 5, 7, 5, 5, 3, 6, 6, 2, 6, 6, 4, 0, 0, 0,
-8, 7, 7, 7, 5, 5, 3, 7, 4, 2, 6, 6, 4, 2, 0, 0,
-8, 7, 5, 7, 7, 5, 5, 7, 6, 6, 6, 2, 2, 0, 0, 0,
-8, 5, 3, 5, 7, 5, 5, 4, 4, 4, 6, 2, 2, 0, 0, 0,
-9, 5, 5, 5, 5, 5, 5, 4, 4, 2, 6, 2, 2, 2, 0, 0,
-8, 7, 3, 5, 5, 5, 5, 4, 6, 4, 4, 2, 4, 2, 0, 0,
-8, 7, 5, 7, 5, 7, 7, 4, 6, 6, 6, 2, 0, 0, 0, 0,
-9, 5, 7, 7, 5, 5, 5, 4, 4, 6, 6, 6, 4, 0, 0, 0,
-9, 5, 7, 7, 7, 5, 3, 6, 4, 6, 4, 4, 2, 2, 0, 0,
-9, 7, 5, 7, 7, 5, 3, 7, 6, 4, 4, 4, 0, 2, 0, 0,
-9, 7, 5, 3, 5, 7, 1, 6, 4, 2, 6, 2, 0, 0, 0, 0,
-8, 7, 7, 7, 7, 7, 5, 7, 7, 2, 6, 2, 2, 0, 0, 0,
-8, 7, 5, 7, 7, 7, 5, 6, 4, 2, 4, 4, 2, 2, 0, 0,
-9, 7, 7, 5, 5, 7, 5, 6, 4, 2, 6, 2, 2, 0, 0, 0,
-8, 7, 7, 7, 5, 7, 5, 6, 4, 4, 6, 2, 2, 2, 0, 0,
-8, 7, 5, 5, 5, 7, 3, 4, 6, 2, 4, 2, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 7, 3, 4, 4, 6, 4, 2, 2, 2, 0, 0,
-8, 8, 5, 5, 5, 5, 3, 6, 6, 4, 6, 2, 2, 0, 0, 0,
-9, 7, 7, 5, 5, 5, 3, 6, 6, 2, 2, 2, 2, 0, 0, 0,
-8, 7, 7, 7, 5, 5, 3, 4, 4, 4, 6, 2, 2, 0, 0, 0,
-9, 7, 7, 7, 5, 7, 3, 4, 4, 4, 4, 2, 2, 0, 0, 0,
-8, 7, 5, 7, 7, 5, 5, 4, 4, 2, 6, 2, 2, 2, 0, 0,
-9, 7, 7, 5, 5, 5, 3, 4, 6, 2, 6, 2, 4, 2, 0, 0,
-9, 7, 7, 7, 5, 5, 3, 6, 6, 2, 6, 4, 2, 0, 0, 0,
-9, 7, 5, 5, 3, 5, 3, 4, 6, 6, 6, 2, 2, 2, 0, 0,
-8, 7, 7, 7, 5, 7, 3, 7, 6, 6, 6, 0, 0, 2, 0, 0,
-8, 7, 5, 5, 5, 5, 3, 6, 4, 7, 4, 0, 0, 2, 0, 0,
-9, 7, 7, 7, 5, 5, 3, 4, 6, 2, 4, 0, 0, 0, 0, 0,
-9, 7, 7, 7, 3, 7, 5, 6, 6, 6, 6, 0, 0, 2, 0, 0,
-9, 7, 5, 7, 5, 5, 3, 7, 6, 2, 2, 2, 0, 2, 0, 0,
-9, 7, 5, 7, 5, 5, 1, 6, 6, 6, 6, 0, 0, 0, 0, 0,
-8, 7, 7, 7, 5, 5, 5, 6, 6, 6, 2, 4, 0, 2, 0, 0,
-9, 7, 5, 7, 5, 7, 3, 7, 6, 4, 2, 2, 2, 2, 0, 0,
-9, 7, 7, 7, 3, 5, 3, 4, 6, 6, 4, 2, 0, 0, 0, 0,
-9, 7, 7, 7, 5, 5, 5, 4, 6, 2, 4, 2, 0, 0, 0, 0,
-9, 7, 7, 7, 5, 7, 5, 4, 6, 2, 4, 2, 2, 0, 0, 0,
-8, 7, 7, 5, 5, 5, 3, 6, 4, 4, 6, 4, 2, 2, 0, 0,
-9, 7, 7, 7, 3, 5, 1, 2, 4, 2, 6, 2, 2, 2, 0, 0,
-9, 5, 3, 5, 5, 7, 5, 2, 4, 2, 6, 2, 2, 0, 0, 0,
-8, 7, 5, 5, 3, 5, 7, 6, 6, 6, 4, 2, 0, 0, 0, 0,
-9, 5, 3, 5, 3, 3, 5, 2, 2, 4, 2, 2, 0, 0, 0, 0,
-8, 5, 3, 5, 3, 3, 7, 6, 4, 6, 2, 2, 0, 0, 0, 0,
-9, 5, 5, 5, 5, 7, 7, 4, 6, 4, 4, 2, 2, 0, 0, 0,
-9, 5, 5, 7, 5, 5, 5, 4, 4, 4, 2, 4, 2, 2, 0, 0,
-9, 5, 5, 5, 3, 7, 5, 2, 6, 7, 2, 2, 0, 2, 0, 0,
-8, 5, 3, 5, 5, 5, 5, 2, 6, 4, 2, 4, 2, 0, 0, 0,
-9, 5, 7, 7, 3, 5, 7, 2, 2, 4, 4, 2, 2, 0, 0, 0,
-9, 5, 5, 3, 3, 3, 7, 4, 6, 4, 4, 2, 0, 0, 0, 0,
-9, 7, 5, 5, 5, 7, 7, 4, 4, 6, 2, 2, 0, 0, 0, 0,
-8, 7, 7, 5, 5, 5, 5, 2, 2, 7, 2, 2, 0, 0, 0, 0,
-8, 7, 7, 5, 5, 5, 7, 2, 4, 6, 0, 2, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 7, 5, 2, 4, 7, 2, 2, 2, 2, 0, 0,
-9, 7, 5, 5, 5, 7, 5, 4, 4, 6, 4, 2, 2, 0, 0, 0,
-9, 7, 5, 7, 5, 3, 3, 6, 4, 2, 4, 4, 2, 0, 0, 0,
-9, 7, 5, 7, 5, 5, 3, 4, 6, 2, 4, 4, 2, 0, 0, 0,
-9, 5, 7, 5, 7, 7, 5, 2, 6, 2, 2, 2, 2, 0, 0, 0,
-9, 7, 7, 5, 5, 5, 3, 4, 6, 2, 4, 4, 2, 0, 0, 0,
-9, 7, 5, 5, 5, 7, 5, 2, 6, 4, 2, 2, 2, 0, 0, 0,
-9, 7, 5, 5, 5, 5, 3, 2, 7, 2, 2, 2, 2, 0, 0, 0,
-9, 7, 5, 5, 5, 7, 5, 2, 6, 0, 2, 2, 0, 0, 0, 0,
-9, 5, 7, 7, 7, 5, 7, 2, 6, 2, 4, 2, 0, 0, 0, 0,
-9, 7, 7, 5, 3, 7, 7, 2, 6, 2, 2, 2, 2, 0, 0, 0,
-9, 7, 5, 7, 5, 3, 5, 2, 7, 2, 2, 2, 2, 0, 0, 0,
-9, 7, 7, 7, 5, 7, 5, 2, 6, 2, 2, 2, 2, 0, 0, 0,
-9, 7, 5, 5, 3, 7, 5, 2, 6, 2, 4, 2, 2, 0, 0, 0,
-9, 7, 3, 3, 3, 3, 5, 2, 6, 2, 2, 2, 2, 0, 0, 0,
-8, 7, 3, 5, 1, 3, 3, 2, 6, 2, 2, 2, 2, 2, 0, 0,
-9, 7, 5, 5, 5, 5, 5, 2, 7, 4, 4, 4, 2, 0, 0, 0,
-9, 3, 7, 5, 5, 5, 5, 2, 6, 2, 2, 4, 0, 0, 0, 0,
-9, 7, 5, 5, 5, 5, 3, 2, 6, 4, 2, 2, 0, 0, 0, 0,
-9, 5, 5, 7, 5, 5, 3, 2, 6, 4, 4, 2, 2, 0, 0, 0,
-8, 5, 5, 5, 3, 3, 3, 2, 6, 4, 2, 2, 2, 0, 0, 0,
-9, 5, 3, 3, 3, 5, 1, 2, 6, 2, 2, 4, 0, 0, 0, 0,
-9, 5, 3, 5, 3, 3, 3, 2, 6, 2, 2, 2, 0, 0, 0, 0,
-9, 7, 5, 5, 5, 7, 3, 2, 4, 2, 2, 2, 0, 2, 0, 0,
-8, 5, 5, 5, 5, 5, 3, 4, 6, 4, 2, 2, 2, 2, 0, 0,
-8, 5, 3, 5, 5, 5, 5, 2, 6, 4, 2, 0, 2, 0, 0, 0,
-9, 5, 5, 5, 5, 5, 3, 4, 6, 4, 2, 2, 2, 0, 0, 0,
-9, 7, 7, 5, 3, 5, 3, 4, 6, 4, 2, 2, 0, 0, 0, 0,
-9, 5, 5, 7, 3, 7, 5, 4, 4, 4, 2, 2, 2, 0, 0, 0,
-9, 5, 5, 7, 3, 7, 1, 4, 4, 6, 6, 0, 0, 0, 0, 0,
-9, 5, 3, 7, 5, 7, 3, 4, 4, 4, 6, 2, 0, 0, 0, 0,
-9, 7, 5, 5, 5, 7, 5, 4, 6, 4, 2, 2, 2, 0, 0, 0,
-9, 5, 3, 3, 3, 5, 5, 4, 4, 2, 2, 2, 2, 2, 0, 0,
-8, 5, 5, 5, 5, 3, 3, 6, 6, 6, 4, 2, 2, 2, 0, 0,
-9, 7, 5, 5, 5, 5, 3, 6, 4, 4, 2, 2, 4, 2, 0, 0,
-8, 5, 5, 3, 5, 5, 5, 2, 4, 4, 4, 2, 4, 0, 0, 0,
-9, 7, 5, 5, 7, 5, 3, 6, 6, 4, 4, 2, 2, 2, 0, 0,
-9, 7, 3, 5, 3, 3, 3, 2, 6, 2, 2, 2, 2, 0, 0, 0,
-9, 5, 5, 3, 5, 5, 3, 4, 6, 4, 4, 2, 0, 0, 0, 0,
-9, 5, 5, 3, 5, 7, 5, 4, 6, 4, 4, 2, 2, 0, 0, 0,
-9, 7, 3, 5, 5, 7, 3, 4, 4, 4, 2, 4, 0, 0, 0, 0,
-9, 7, 5, 5, 3, 5, 3, 4, 6, 6, 2, 2, 2, 0, 0, 0,
-9, 7, 5, 5, 3, 7, 3, 4, 6, 4, 4, 2, 0, 0, 0, 0,
-9, 7, 7, 3, 3, 3, 5, 4, 4, 2, 2, 2, 2, 2, 0, 0,
-9, 7, 5, 5, 5, 5, 3, 4, 6, 6, 4, 2, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 5, 3, 4, 6, 4, 4, 4, 2, 0, 0, 0,
-8, 5, 5, 3, 5, 3, 3, 4, 6, 2, 4, 4, 4, 2, 0, 0,
-7, 7, 7, 3, 5, 5, 3, 6, 4, 2, 2, 6, 2, 2, 0, 0,
-8, 7, 5, 5, 5, 5, 7, 4, 6, 2, 4, 4, 2, 0, 0, 0,
-8, 5, 5, 5, 5, 5, 5, 4, 4, 2, 4, 4, 4, 2, 0, 0,
-8, 7, 5, 5, 7, 5, 7, 4, 4, 4, 4, 6, 2, 2, 2, 0,
-7, 5, 3, 3, 3, 1, 3, 2, 6, 4, 2, 4, 2, 0, 0, 0,
-8, 3, 5, 5, 3, 5, 5, 4, 4, 4, 2, 4, 4, 2, 0, 0,
-8, 3, 5, 5, 3, 5, 3, 2, 4, 6, 2, 4, 2, 0, 2, 0,
-8, 5, 5, 5, 3, 3, 5, 4, 4, 6, 2, 2, 2, 2, 0, 0,
-8, 5, 7, 3, 3, 7, 3, 4, 4, 4, 2, 2, 4, 2, 0, 0,
-9, 5, 7, 3, 3, 5, 1, 4, 6, 4, 2, 2, 2, 2, 0, 0,
-9, 7, 5, 3, 5, 5, 7, 4, 4, 4, 2, 2, 2, 4, 2, 0,
-9, 7, 5, 3, 7, 3, 7, 4, 4, 4, 4, 2, 2, 2, 0, 0,
-9, 5, 3, 3, 3, 3, 3, 2, 2, 2, 2, 4, 0, 0, 0, 0,
-9, 5, 3, 3, 1, 3, 3, 2, 4, 4, 2, 2, 2, 0, 0, 0,
-8, 5, 5, 5, 3, 3, 1, 4, 4, 2, 2, 2, 2, 0, 0, 0,
-8, 5, 5, 3, 5, 5, 1, 4, 4, 4, 4, 2, 2, 0, 0, 0,
-8, 7, 7, 3, 5, 7, 3, 4, 4, 6, 4, 4, 2, 0, 0, 0,
-8, 7, 5, 5, 5, 5, 3, 4, 4, 6, 2, 2, 0, 0, 0, 0,
-9, 5, 7, 5, 7, 5, 5, 6, 4, 6, 2, 2, 0, 0, 0, 0,
-9, 3, 5, 1, 3, 5, 3, 4, 4, 4, 4, 2, 0, 0, 0, 0,
-8, 5, 3, 3, 5, 3, 3, 2, 4, 2, 2, 0, 2, 0, 0, 0,
-9, 5, 7, 3, 5, 5, 3, 6, 4, 2, 4, 2, 0, 0, 0, 0,
-9, 5, 3, 3, 3, 3, 1, 4, 2, 4, 2, 2, 2, 0, 0, 0,
-9, 5, 3, 5, 3, 3, 1, 2, 2, 4, 2, 2, 2, 0, 0, 0,
-8, 5, 3, 3, 5, 5, 3, 4, 4, 4, 4, 2, 2, 0, 0, 0,
-9, 5, 3, 3, 3, 3, 5, 2, 4, 4, 4, 2, 2, 0, 0, 0,
-9, 5, 5, 5, 5, 5, 3, 4, 4, 6, 6, 2, 0, 0, 0, 0,
-8, 7, 5, 5, 7, 5, 7, 2, 4, 6, 6, 2, 0, 0, 0, 0,
-8, 5, 7, 7, 5, 5, 5, 4, 4, 7, 2, 2, 0, 0, 0, 0,
-9, 5, 5, 5, 3, 5, 5, 4, 4, 2, 6, 2, 2, 2, 0, 0,
-8, 7, 5, 5, 5, 5, 5, 6, 4, 2, 6, 6, 0, 2, 0, 0,
-9, 5, 3, 7, 3, 5, 5, 2, 2, 7, 4, 4, 0, 0, 0, 0,
-8, 5, 5, 3, 3, 3, 3, 4, 2, 4, 2, 6, 2, 0, 0, 0,
-8, 5, 3, 3, 3, 3, 5, 4, 2, 4, 2, 2, 0, 0, 0, 0,
-9, 3, 5, 5, 5, 5, 5, 4, 4, 6, 4, 2, 2, 0, 0, 0,
-9, 5, 7, 5, 5, 5, 3, 4, 6, 6, 6, 4, 4, 0, 0, 0,
-8, 5, 5, 5, 5, 5, 5, 6, 4, 6, 2, 4, 6, 0, 0, 0,
-8, 5, 7, 5, 3, 5, 7, 6, 4, 4, 6, 4, 4, 0, 0, 0,
-8, 5, 5, 7, 5, 5, 3, 6, 4, 6, 4, 4, 4, 0, 0, 0,
-8, 5, 5, 5, 3, 5, 5, 4, 4, 6, 4, 4, 6, 0, 0, 0,
-8, 5, 7, 5, 5, 5, 5, 4, 2, 6, 2, 4, 4, 0, 0, 0,
-8, 5, 7, 7, 5, 5, 5, 4, 2, 7, 2, 4, 4, 0, 0, 0,
-9, 5, 5, 5, 5, 5, 3, 4, 4, 6, 2, 2, 4, 0, 0, 0,
-9, 5, 5, 7, 5, 7, 5, 6, 2, 7, 2, 2, 4, 0, 0, 0,
-8, 5, 5, 5, 5, 7, 3, 4, 4, 7, 0, 0, 2, 0, 0, 0,
-9, 5, 5, 5, 5, 5, 5, 4, 4, 7, 2, 0, 2, 0, 0, 0,
-8, 5, 7, 3, 5, 5, 5, 4, 4, 7, 2, 2, 4, 0, 0, 0,
-9, 5, 7, 5, 5, 5, 3, 4, 2, 7, 0, 2, 2, 0, 0, 0,
-8, 5, 7, 3, 5, 5, 3, 4, 2, 7, 2, 2, 4, 0, 0, 0,
-8, 5, 7, 3, 5, 5, 3, 4, 2, 7, 4, 4, 4, 0, 0, 0,
-9, 5, 5, 3, 1, 3, 1, 2, 2, 6, 4, 2, 2, 0, 0, 0,
-9, 5, 7, 3, 5, 5, 3, 6, 2, 7, 2, 2, 2, 0, 0, 0,
-9, 5, 5, 7, 5, 5, 5, 4, 4, 6, 2, 2, 4, 0, 0, 0,
-9, 5, 7, 5, 5, 5, 5, 6, 4, 2, 6, 6, 2, 2, 0, 0,
-8, 7, 3, 3, 1, 3, 5, 2, 6, 2, 4, 2, 2, 0, 0, 0,
-8, 5, 3, 5, 3, 3, 7, 6, 4, 4, 2, 2, 0, 0, 0, 0,
-8, 5, 3, 3, 3, 1, 3, 2, 4, 4, 2, 2, 2, 0, 0, 0,
-8, 5, 7, 5, 5, 1, 3, 2, 2, 4, 4, 2, 0, 0, 0, 0,
-8, 5, 5, 5, 5, 1, 7, 2, 4, 6, 2, 2, 0, 0, 0, 0,
-8, 5, 7, 5, 5, 3, 7, 4, 6, 4, 4, 2, 0, 0, 0, 0,
-9, 7, 7, 7, 7, 5, 5, 4, 6, 4, 6, 4, 2, 2, 0, 0,
-9, 7, 7, 5, 5, 7, 5, 6, 6, 6, 4, 2, 0, 2, 0, 0,
-8, 7, 7, 5, 7, 5, 7, 6, 6, 7, 4, 4, 2, 2, 0, 0,
-8, 7, 7, 5, 7, 7, 5, 2, 4, 6, 6, 2, 2, 0, 0, 0,
-8, 7, 7, 5, 3, 7, 7, 4, 4, 6, 4, 2, 0, 0, 0, 0,
-8, 5, 7, 5, 5, 7, 7, 4, 2, 6, 2, 2, 0, 0, 0, 0,
-9, 7, 7, 5, 3, 7, 7, 2, 6, 7, 2, 4, 0, 0, 0, 0,
-8, 3, 5, 5, 3, 3, 5, 2, 4, 7, 2, 2, 2, 0, 0, 0,
-8, 5, 5, 5, 5, 3, 5, 2, 6, 6, 2, 2, 2, 2, 0, 0,
-9, 5, 5, 5, 3, 7, 5, 4, 6, 6, 2, 2, 0, 0, 0, 0,
-9, 5, 5, 5, 5, 3, 7, 4, 4, 6, 2, 2, 2, 0, 0, 0,
-9, 5, 5, 3, 3, 3, 5, 4, 4, 6, 2, 2, 2, 2, 0, 0,
-9, 3, 5, 3, 3, 3, 3, 4, 4, 2, 2, 2, 2, 0, 0, 0,
-9, 5, 3, 3, 3, 3, 3, 4, 2, 2, 2, 2, 2, 2, 0, 0,
-9, 5, 5, 3, 7, 3, 3, 4, 4, 2, 4, 2, 2, 0, 0, 0,
-8, 3, 3, 1, 3, 3, 3, 4, 4, 2, 2, 2, 2, 2, 0, 0,
-8, 5, 5, 5, 5, 5, 5, 4, 4, 2, 4, 4, 2, 0, 0, 0,
-9, 5, 7, 3, 5, 5, 3, 6, 4, 2, 2, 4, 2, 0, 0, 0,
-9, 5, 7, 3, 5, 5, 5, 2, 6, 4, 4, 4, 2, 2, 0, 0,
-9, 5, 7, 5, 5, 5, 5, 4, 4, 4, 4, 6, 2, 2, 0, 0,
-9, 3, 7, 3, 5, 5, 5, 4, 4, 4, 4, 2, 2, 0, 0, 0,
-9, 5, 7, 5, 5, 5, 7, 6, 4, 4, 4, 4, 2, 0, 0, 0,
-9, 5, 7, 3, 7, 5, 5, 4, 6, 2, 4, 4, 2, 2, 0, 0,
-9, 5, 7, 5, 5, 5, 3, 4, 6, 2, 2, 2, 0, 2, 0, 0,
-9, 5, 7, 3, 5, 3, 5, 2, 6, 0, 2, 2, 2, 0, 0, 0,
-9, 5, 7, 5, 3, 5, 5, 4, 6, 2, 2, 4, 2, 0, 0, 0,
-9, 5, 7, 5, 5, 5, 3, 2, 6, 2, 4, 4, 2, 0, 0, 0,
-9, 5, 7, 5, 5, 3, 3, 4, 6, 2, 2, 2, 4, 0, 0, 0,
-9, 5, 7, 5, 5, 5, 5, 2, 6, 2, 4, 4, 2, 0, 0, 0,
-9, 5, 5, 3, 3, 3, 3, 4, 4, 2, 2, 2, 2, 0, 0, 0,
-9, 5, 7, 5, 3, 3, 5, 2, 6, 2, 4, 2, 2, 0, 0, 0,
-9, 5, 7, 5, 5, 5, 3, 4, 6, 4, 2, 4, 4, 2, 0, 0,
-9, 5, 7, 3, 5, 7, 5, 6, 4, 6, 2, 4, 4, 0, 0, 0,
-9, 7, 7, 3, 5, 5, 7, 7, 4, 2, 2, 4, 4, 0, 0, 0,
-9, 5, 5, 3, 3, 3, 7, 7, 4, 4, 2, 6, 4, 0, 0, 0,
-9, 5, 7, 5, 5, 5, 7, 7, 4, 4, 4, 4, 4, 0, 0, 0,
-9, 7, 7, 5, 5, 3, 7, 7, 4, 6, 2, 4, 2, 0, 0, 0,
-8, 5, 5, 5, 5, 5, 3, 6, 4, 2, 6, 2, 2, 0, 0, 0,
-8, 5, 7, 5, 3, 5, 3, 6, 4, 4, 6, 4, 0, 0, 0, 0,
-9, 5, 5, 5, 7, 5, 5, 6, 4, 4, 6, 2, 2, 0, 0, 0,
-9, 5, 7, 3, 3, 5, 7, 6, 4, 4, 2, 4, 2, 2, 0, 0,
-9, 5, 5, 5, 3, 5, 5, 4, 4, 2, 4, 2, 2, 0, 0, 0,
-9, 5, 7, 5, 5, 5, 7, 2, 4, 2, 4, 2, 2, 2, 0, 0,
-9, 7, 7, 5, 5, 5, 5, 4, 4, 4, 4, 2, 2, 2, 0, 0,
-9, 5, 7, 5, 5, 5, 5, 6, 2, 4, 2, 4, 4, 2, 0, 0,
-9, 5, 5, 5, 3, 5, 3, 7, 4, 2, 4, 4, 2, 2, 0, 0,
-8, 5, 5, 5, 3, 3, 3, 4, 4, 4, 4, 2, 2, 2, 0, 0,
-8, 5, 5, 5, 3, 7, 5, 4, 4, 4, 4, 2, 2, 0, 0, 0,
-9, 5, 7, 3, 7, 5, 5, 4, 4, 2, 2, 4, 4, 0, 0, 0,
-8, 5, 5, 5, 5, 5, 5, 2, 4, 6, 2, 6, 2, 0, 0, 0,
-8, 5, 5, 3, 5, 3, 7, 6, 6, 2, 4, 2, 2, 2, 0, 0,
-8, 5, 5, 3, 3, 3, 5, 4, 6, 2, 2, 4, 2, 2, 0, 0,
-8, 5, 3, 3, 3, 3, 5, 4, 6, 2, 2, 6, 2, 0, 0, 0,
-8, 7, 5, 5, 5, 5, 5, 4, 4, 2, 2, 4, 2, 0, 0, 0,
-8, 5, 7, 3, 7, 7, 3, 7, 6, 2, 4, 6, 2, 2, 0, 0,
-8, 5, 5, 5, 5, 5, 3, 4, 6, 2, 4, 4, 2, 2, 0, 0,
-8, 5, 5, 5, 7, 5, 5, 6, 7, 4, 4, 6, 4, 4, 0, 0,
-8, 5, 5, 5, 7, 7, 7, 4, 6, 4, 2, 6, 2, 4, 0, 0,
-8, 5, 7, 5, 5, 7, 5, 4, 6, 4, 4, 6, 4, 4, 0, 0,
-8, 7, 5, 5, 5, 7, 7, 6, 7, 6, 2, 6, 4, 2, 0, 0,
-8, 7, 5, 1, 5, 5, 5, 4, 6, 4, 2, 4, 4, 4, 0, 0,
-8, 5, 5, 3, 5, 5, 5, 2, 4, 6, 2, 2, 2, 2, 0, 0,
-8, 7, 5, 3, 5, 3, 7, 6, 2, 2, 4, 4, 2, 2, 0, 0,
-8, 7, 7, 3, 5, 3, 7, 6, 4, 4, 2, 6, 2, 0, 0, 0,
-8, 7, 3, 3, 5, 5, 5, 6, 4, 2, 2, 7, 2, 2, 0, 0,
-8, 7, 5, 3, 5, 5, 7, 2, 4, 4, 4, 7, 4, 0, 0, 0,
-8, 7, 7, 5, 5, 5, 7, 6, 4, 2, 2, 6, 4, 2, 0, 0,
-7, 5, 5, 5, 5, 5, 5, 4, 4, 4, 4, 6, 4, 2, 0, 0,
-8, 5, 5, 5, 5, 5, 3, 6, 6, 6, 2, 4, 6, 2, 0, 0,
-8, 7, 5, 5, 5, 5, 5, 4, 4, 6, 6, 2, 2, 0, 0, 0,
-8, 5, 7, 7, 5, 5, 5, 6, 4, 7, 6, 2, 6, 0, 0, 0,
-8, 7, 5, 5, 5, 3, 5, 6, 6, 6, 4, 2, 6, 0, 0, 0,
-7, 5, 5, 3, 7, 3, 3, 4, 2, 2, 2, 4, 0, 0, 0, 0,
-7, 5, 5, 1, 5, 3, 7, 2, 4, 2, 4, 4, 0, 0, 0, 0,
-8, 5, 5, 5, 3, 3, 3, 4, 2, 2, 4, 2, 2, 2, 0, 0,
-8, 5, 5, 3, 5, 3, 5, 2, 2, 4, 6, 6, 0, 0, 0, 0,
-8, 5, 5, 3, 3, 5, 5, 6, 4, 6, 4, 4, 0, 0, 0, 0,
-9, 5, 7, 5, 7, 7, 3, 6, 7, 4, 4, 4, 0, 0, 0, 0,
-9, 7, 7, 5, 7, 7, 3, 6, 7, 4, 6, 2, 0, 0, 0, 0,
-9, 5, 7, 5, 5, 7, 3, 7, 6, 4, 2, 2, 2, 0, 0, 0,
-9, 5, 7, 5, 5, 7, 3, 7, 4, 4, 4, 4, 0, 0, 0, 0,
-8, 5, 7, 5, 3, 3, 5, 2, 4, 4, 2, 2, 2, 0, 0, 0,
-8, 5, 7, 5, 3, 3, 5, 2, 4, 2, 4, 2, 2, 0, 0, 0,
-9, 5, 7, 5, 5, 5, 7, 6, 6, 6, 2, 2, 2, 0, 0, 0,
-8, 3, 5, 5, 3, 5, 7, 6, 2, 6, 4, 2, 2, 0, 0, 0,
-9, 5, 5, 5, 3, 5, 5, 4, 4, 6, 2, 2, 4, 0, 0, 0,
-9, 3, 7, 5, 1, 7, 5, 2, 4, 4, 2, 2, 2, 0, 0, 0,
-9, 3, 3, 5, 3, 3, 5, 4, 2, 4, 4, 2, 2, 0, 0, 0,
-8, 5, 5, 5, 5, 5, 5, 6, 4, 6, 7, 2, 2, 0, 0, 0,
-9, 5, 5, 5, 3, 5, 7, 4, 4, 6, 7, 2, 2, 2, 0, 0,
-9, 7, 5, 5, 3, 5, 3, 4, 2, 6, 4, 4, 2, 0, 0, 0,
-9, 7, 3, 5, 5, 3, 3, 2, 2, 4, 4, 4, 2, 2, 0, 0,
-9, 5, 5, 5, 5, 5, 5, 4, 4, 6, 6, 2, 2, 0, 0, 0,
-9, 7, 5, 5, 5, 5, 5, 4, 4, 4, 6, 2, 2, 0, 0, 0,
-9, 5, 3, 3, 3, 5, 3, 4, 2, 2, 6, 2, 2, 0, 0, 0,
-9, 5, 5, 5, 3, 5, 5, 4, 4, 2, 6, 2, 2, 2, 0, 0,
-9, 5, 5, 3, 5, 5, 3, 4, 2, 4, 6, 2, 0, 0, 0, 0,
-9, 5, 5, 3, 3, 3, 5, 4, 2, 4, 6, 2, 2, 0, 0, 0,
-9, 5, 5, 3, 3, 3, 3, 2, 2, 4, 4, 2, 0, 0, 0, 0,
-9, 5, 5, 5, 5, 7, 3, 4, 4, 4, 4, 2, 4, 2, 0, 0,
-9, 5, 7, 5, 7, 5, 5, 4, 2, 4, 4, 4, 2, 0, 0, 0,
-9, 5, 7, 7, 3, 5, 5, 4, 4, 6, 4, 2, 2, 0, 0, 0,
-9, 5, 7, 5, 5, 3, 3, 4, 6, 6, 2, 2, 2, 0, 0, 0,
-9, 5, 5, 5, 3, 5, 5, 4, 6, 6, 2, 2, 4, 2, 0, 0,
-9, 7, 7, 3, 7, 5, 5, 4, 6, 6, 4, 4, 2, 2, 0, 0,
-9, 5, 5, 3, 5, 7, 3, 2, 6, 6, 4, 2, 4, 2, 0, 0,
-9, 7, 7, 5, 5, 7, 3, 4, 4, 4, 6, 2, 2, 2, 0, 0,
-9, 5, 5, 3, 5, 7, 3, 4, 4, 6, 6, 2, 4, 0, 0, 0,
-9, 5, 5, 5, 3, 7, 5, 4, 4, 2, 4, 2, 0, 0, 0, 0,
-9, 3, 7, 5, 7, 8, 7, 6, 6, 2, 4, 2, 0, 0, 0, 0,
-9, 5, 7, 3, 3, 7, 1, 4, 6, 2, 4, 4, 0, 0, 0, 0,
-8, 7, 7, 7, 5, 7, 3, 4, 6, 2, 2, 4, 2, 2, 0, 0,
-8, 7, 3, 3, 3, 3, 3, 2, 2, 4, 4, 0, 0, 0, 0, 0,
-8, 5, 3, 5, 5, 1, 5, 4, 2, 4, 2, 2, 2, 0, 0, 0,
-9, 5, 5, 5, 5, 3, 5, 6, 4, 6, 4, 2, 2, 0, 0, 0,
-9, 3, 7, 3, 3, 1, 3, 4, 2, 2, 4, 2, 2, 0, 0, 0,
-9, 5, 3, 3, 7, 3, 5, 2, 2, 2, 2, 2, 2, 0, 0, 0,
-9, 5, 5, 3, 5, 3, 5, 4, 2, 2, 2, 2, 2, 0, 0, 0,
-8, 7, 3, 3, 5, 3, 3, 2, 2, 2, 4, 2, 2, 0, 0, 0,
-8, 5, 5, 3, 5, 3, 5, 4, 2, 4, 2, 2, 0, 0, 0, 0,
-9, 5, 7, 3, 7, 3, 3, 4, 2, 4, 4, 2, 2, 2, 0, 0,
-9, 5, 5, 3, 5, 5, 1, 2, 4, 4, 2, 2, 2, 2, 0, 0,
-9, 5, 5, 3, 3, 5, 1, 4, 4, 4, 4, 2, 2, 2, 0, 0,
-9, 3, 5, 3, 3, 3, 1, 4, 4, 4, 2, 2, 2, 0, 0, 0,
-9, 3, 3, 3, 5, 5, 1, 4, 4, 2, 4, 2, 2, 0, 0, 0,
-9, 5, 3, 3, 3, 3, 1, 2, 4, 2, 2, 2, 2, 0, 0, 0,
-9, 5, 3, 5, 5, 3, 1, 4, 6, 4, 6, 2, 2, 0, 0, 0,
-7, 7, 5, 5, 3, 7, 1, 4, 4, 4, 2, 2, 2, 0, 0, 0,
-7, 5, 7, 3, 5, 5, 1, 2, 4, 4, 2, 2, 2, 0, 0, 0,
-9, 5, 7, 3, 7, 7, 3, 4, 4, 4, 4, 2, 2, 0, 0, 0,
-7, 5, 7, 3, 5, 5, 3, 4, 4, 2, 2, 2, 2, 0, 0, 0,
-8, 5, 7, 5, 5, 5, 1, 4, 4, 2, 4, 2, 2, 0, 0, 0,
-8, 5, 7, 5, 5, 7, 3, 4, 4, 4, 2, 2, 2, 0, 0, 0,
-9, 7, 7, 5, 5, 7, 3, 4, 4, 2, 4, 2, 2, 2, 0, 0,
-7, 5, 7, 5, 7, 3, 3, 4, 2, 2, 4, 2, 2, 0, 0, 0,
-8, 5, 7, 5, 5, 5, 1, 2, 6, 4, 4, 2, 2, 0, 0, 0,
-9, 5, 7, 5, 3, 7, 3, 2, 4, 2, 2, 2, 2, 2, 0, 0,
-9, 3, 7, 3, 5, 5, 3, 4, 4, 4, 4, 2, 2, 0, 0, 0,
-8, 5, 3, 3, 3, 5, 3, 2, 2, 2, 2, 2, 2, 2, 0, 0,
-8, 5, 3, 3, 3, 3, 3, 4, 2, 4, 2, 2, 2, 0, 0, 0,
-8, 5, 5, 3, 5, 3, 5, 4, 4, 4, 6, 6, 4, 4, 2, 0,
-8, 5, 5, 3, 5, 3, 5, 4, 4, 4, 6, 6, 4, 2, 2, 0,
-8, 5, 5, 3, 3, 3, 3, 2, 2, 2, 0, 0, 0, 0, 0, 0,
-9, 3, 5, 3, 5, 3, 3, 4, 6, 4, 4, 4, 4, 2, 0, 0,
-9, 5, 5, 5, 3, 5, 5, 4, 4, 6, 4, 4, 2, 2, 2, 0,
-8, 7, 5, 7, 5, 5, 3, 4, 4, 2, 4, 2, 2, 0, 0, 0,
-7, 7, 5, 5, 5, 3, 3, 4, 4, 4, 4, 4, 2, 4, 0, 0,
-8, 7, 7, 5, 3, 3, 5, 4, 4, 6, 4, 2, 2, 0, 0, 0,
-9, 5, 5, 5, 5, 5, 5, 4, 4, 4, 4, 2, 2, 0, 0, 0,
-9, 5, 5, 3, 5, 5, 5, 4, 4, 4, 2, 2, 2, 0, 0, 0,
-8, 5, 5, 5, 5, 5, 3, 4, 4, 4, 4, 2, 2, 0, 0, 0,
-8, 5, 5, 5, 5, 5, 5, 4, 4, 4, 6, 2, 0, 0, 0, 0,
-9, 5, 5, 5, 5, 5, 5, 6, 4, 4, 2, 4, 2, 0, 0, 0,
-9, 5, 5, 5, 3, 5, 5, 4, 6, 6, 2, 2, 2, 2, 0, 0,
-9, 5, 5, 3, 5, 3, 3, 4, 4, 4, 4, 4, 0, 0, 0, 0,
-8, 7, 5, 7, 5, 5, 3, 4, 6, 6, 4, 2, 2, 0, 0, 0,
-8, 7, 5, 5, 5, 5, 5, 4, 4, 4, 4, 2, 0, 0, 0, 0,
-8, 7, 5, 5, 5, 5, 5, 4, 6, 4, 4, 2, 2, 0, 0, 0,
-9, 5, 7, 5, 5, 3, 1, 4, 4, 6, 4, 2, 2, 2, 0, 0,
-9, 5, 3, 3, 5, 5, 5, 4, 2, 4, 4, 2, 0, 0, 0, 0,
-7, 7, 5, 3, 3, 3, 5, 4, 4, 6, 4, 2, 2, 0, 0, 0,
-8, 5, 5, 5, 3, 5, 5, 2, 4, 4, 4, 2, 2, 0, 0, 0,
-9, 5, 7, 3, 5, 3, 5, 4, 2, 4, 4, 2, 2, 0, 0, 0,
-9, 5, 5, 5, 5, 5, 5, 2, 4, 4, 6, 2, 0, 0, 0, 0,
-9, 5, 5, 5, 5, 5, 5, 4, 2, 4, 4, 2, 2, 0, 0, 0,
-8, 5, 5, 5, 5, 5, 3, 2, 2, 4, 6, 2, 2, 0, 0, 0,
-8, 7, 7, 7, 5, 5, 5, 4, 2, 4, 2, 2, 2, 2, 0, 0,
-9, 5, 5, 7, 3, 5, 3, 4, 6, 6, 2, 2, 2, 2, 0, 0,
-9, 5, 5, 3, 5, 5, 5, 4, 4, 4, 4, 2, 2, 0, 0, 0,
-8, 5, 5, 5, 5, 5, 5, 4, 4, 4, 4, 2, 2, 0, 0, 0,
-7, 7, 5, 7, 3, 5, 3, 4, 4, 6, 4, 4, 2, 0, 0, 0,
-8, 7, 5, 3, 5, 5, 5, 4, 4, 4, 4, 2, 2, 0, 0, 0,
-9, 5, 7, 5, 5, 5, 3, 4, 4, 4, 4, 2, 0, 0, 0, 0,
-9, 5, 3, 3, 3, 3, 5, 4, 2, 2, 4, 4, 2, 0, 0, 0,
-8, 7, 7, 5, 5, 5, 3, 4, 4, 6, 6, 2, 2, 0, 0, 0,
-8, 5, 5, 5, 3, 5, 5, 2, 4, 4, 4, 2, 0, 0, 0, 0,
-9, 7, 7, 3, 5, 7, 3, 6, 4, 4, 4, 2, 2, 0, 0, 0,
-9, 5, 5, 7, 5, 5, 3, 4, 6, 4, 4, 2, 0, 0, 0, 0,
-9, 5, 5, 5, 3, 3, 3, 4, 2, 4, 4, 2, 2, 0, 0, 0,
-8, 5, 5, 5, 5, 5, 3, 4, 6, 6, 4, 2, 2, 0, 0, 0,
-8, 7, 5, 5, 3, 5, 3, 4, 6, 2, 4, 2, 0, 0, 0, 0,
-8, 5, 5, 7, 5, 5, 5, 4, 4, 4, 4, 2, 2, 0, 0, 0,
-8, 5, 5, 5, 5, 3, 5, 4, 4, 2, 6, 2, 2, 2, 0, 0,
-8, 5, 5, 5, 3, 5, 5, 4, 2, 4, 4, 2, 2, 0, 0, 0,
-7, 7, 5, 5, 5, 5, 3, 4, 6, 4, 4, 2, 2, 0, 0, 0,
-7, 7, 5, 7, 3, 5, 5, 4, 4, 2, 4, 2, 2, 0, 0, 0,
-8, 5, 5, 5, 5, 5, 3, 6, 2, 6, 4, 2, 2, 0, 0, 0,
-9, 5, 5, 5, 3, 5, 3, 2, 4, 4, 4, 2, 2, 0, 0, 0,
-8, 5, 5, 5, 5, 5, 3, 4, 2, 4, 4, 4, 2, 0, 0, 0,
-7, 7, 5, 5, 5, 5, 3, 4, 4, 4, 4, 2, 0, 0, 0, 0,
-8, 7, 5, 5, 5, 5, 3, 4, 2, 4, 4, 2, 2, 2, 0, 0,
-8, 5, 5, 5, 5, 5, 3, 4, 4, 2, 2, 2, 2, 2, 0, 0,
-8, 5, 5, 3, 5, 5, 5, 4, 2, 4, 4, 2, 2, 0, 0, 0,
-7, 5, 5, 5, 5, 5, 3, 4, 4, 4, 4, 2, 2, 0, 0, 0,
-8, 7, 5, 5, 3, 5, 3, 4, 6, 4, 4, 2, 0, 0, 0, 0,
-8, 7, 5, 7, 5, 3, 3, 4, 6, 2, 4, 4, 2, 2, 0, 0,
-9, 7, 5, 5, 5, 5, 3, 6, 6, 4, 4, 2, 2, 2, 0, 0,
-9, 5, 5, 3, 5, 3, 3, 4, 2, 4, 4, 4, 4, 0, 0, 0,
-7, 5, 5, 3, 5, 5, 5, 4, 4, 4, 4, 4, 2, 0, 0, 0,
-7, 7, 5, 5, 3, 5, 3, 4, 6, 4, 2, 2, 2, 0, 0, 0,
-8, 5, 7, 3, 5, 3, 5, 4, 4, 4, 4, 2, 2, 2, 0, 0,
-9, 3, 5, 5, 3, 5, 3, 4, 4, 4, 4, 2, 2, 0, 0, 0,
-9, 5, 5, 3, 5, 5, 3, 2, 2, 4, 4, 2, 2, 0, 0, 0,
-7, 5, 7, 3, 3, 3, 3, 2, 2, 4, 4, 2, 0, 0, 0, 0,
-7, 7, 5, 3, 5, 7, 3, 6, 4, 2, 2, 4, 2, 0, 0, 0,
-8, 5, 5, 5, 5, 3, 3, 4, 4, 4, 2, 2, 2, 0, 0, 0,
-8, 3, 5, 5, 5, 3, 5, 4, 4, 2, 2, 2, 2, 0, 0, 0,
-8, 5, 3, 3, 5, 5, 3, 4, 2, 4, 4, 2, 2, 0, 0, 0,
-7, 7, 5, 3, 5, 5, 5, 6, 4, 6, 4, 4, 2, 0, 0, 0,
-7, 7, 5, 5, 5, 5, 3, 4, 6, 4, 4, 4, 2, 0, 0, 0,
-8, 5, 5, 5, 5, 5, 5, 6, 4, 6, 4, 2, 2, 2, 0, 0,
-9, 5, 5, 5, 7, 5, 3, 4, 6, 4, 4, 2, 2, 2, 0, 0,
-8, 5, 5, 5, 5, 5, 3, 4, 4, 4, 4, 4, 2, 0, 0, 0,
-7, 7, 5, 3, 5, 5, 3, 6, 6, 4, 2, 2, 2, 0, 0, 0,
-8, 7, 5, 5, 5, 5, 3, 4, 4, 6, 4, 2, 2, 0, 0, 0,
-9, 5, 5, 5, 5, 5, 3, 4, 4, 6, 4, 0, 2, 2, 0, 0,
-9, 5, 5, 5, 5, 5, 3, 2, 2, 4, 4, 4, 2, 0, 0, 0,
-8, 5, 7, 3, 5, 5, 3, 4, 4, 4, 4, 2, 2, 0, 0, 0,
-8, 7, 5, 5, 5, 5, 3, 4, 6, 2, 4, 4, 0, 0, 0, 0,
-8, 7, 5, 3, 7, 3, 5, 4, 4, 4, 4, 2, 2, 0, 0, 0,
-9, 5, 5, 5, 5, 5, 3, 2, 6, 4, 4, 2, 2, 0, 0, 0,
-8, 5, 5, 3, 3, 5, 3, 4, 4, 4, 4, 2, 2, 0, 0, 0,
-7, 5, 5, 5, 5, 5, 3, 4, 4, 4, 6, 2, 0, 0, 0, 0,
-8, 7, 5, 5, 3, 5, 3, 4, 4, 4, 2, 2, 2, 0, 0, 0,
-8, 7, 7, 5, 5, 5, 3, 4, 2, 2, 4, 2, 2, 2, 0, 0,
-8, 5, 7, 5, 5, 3, 3, 6, 4, 4, 4, 2, 0, 0, 0, 0,
-8, 5, 5, 5, 5, 3, 3, 4, 4, 4, 4, 2, 2, 0, 0, 0,
-7, 5, 7, 5, 5, 5, 5, 2, 4, 4, 4, 2, 2, 0, 0, 0,
-8, 7, 5, 5, 5, 5, 3, 4, 2, 2, 2, 2, 2, 2, 0, 0,
-8, 5, 5, 5, 5, 5, 5, 4, 2, 6, 4, 2, 2, 0, 0, 0,
-8, 3, 3, 3, 3, 3, 3, 4, 4, 2, 2, 2, 2, 0, 0, 0,
-8, 5, 5, 3, 5, 5, 3, 4, 4, 4, 4, 2, 2, 0, 0, 0,
-7, 7, 5, 3, 5, 5, 3, 4, 4, 6, 4, 2, 2, 0, 0, 0,
-8, 7, 5, 5, 5, 5, 5, 4, 4, 6, 4, 2, 2, 0, 0, 0,
-8, 5, 7, 5, 5, 5, 5, 4, 2, 6, 2, 2, 2, 2, 0, 0,
-8, 5, 5, 5, 5, 5, 5, 4, 4, 6, 4, 2, 2, 0, 0, 0,
-8, 5, 7, 5, 5, 5, 5, 4, 2, 4, 4, 2, 2, 0, 0, 0,
-7, 7, 5, 3, 3, 3, 3, 4, 6, 6, 4, 2, 0, 0, 0, 0,
-8, 7, 5, 5, 5, 5, 3, 6, 2, 6, 6, 2, 2, 0, 0, 0,
-9, 5, 7, 5, 5, 5, 5, 2, 4, 4, 4, 2, 0, 0, 0, 0,
-9, 5, 5, 3, 5, 5, 5, 4, 4, 4, 4, 2, 2, 0, 0, 0,
-8, 5, 7, 5, 5, 5, 5, 4, 4, 4, 4, 2, 2, 0, 0, 0,
-8, 7, 7, 3, 5, 5, 3, 2, 4, 6, 4, 2, 2, 0, 0, 0,
-8, 7, 5, 5, 5, 5, 3, 4, 6, 4, 4, 2, 2, 0, 0, 0,
-9, 5, 5, 7, 5, 3, 5, 4, 6, 6, 4, 2, 2, 0, 0, 0,
-8, 5, 3, 3, 5, 5, 3, 4, 2, 4, 4, 2, 2, 0, 0, 0,
-7, 5, 5, 3, 5, 5, 5, 4, 4, 4, 4, 2, 2, 0, 0, 0,
-8, 5, 7, 5, 3, 5, 3, 4, 4, 4, 6, 4, 0, 0, 0, 0,
-8, 5, 5, 5, 5, 3, 3, 4, 4, 4, 2, 2, 2, 0, 0, 0,
-9, 5, 7, 5, 5, 5, 3, 4, 6, 4, 4, 2, 2, 0, 0, 0,
-8, 5, 5, 5, 5, 5, 5, 4, 4, 4, 4, 2, 0, 0, 0, 0,
-7, 5, 5, 3, 5, 5, 5, 2, 4, 6, 2, 4, 2, 0, 0, 0,
-8, 7, 5, 5, 3, 3, 3, 4, 4, 4, 4, 2, 0, 0, 0, 0,
-8, 5, 7, 5, 3, 5, 1, 4, 6, 4, 2, 2, 2, 0, 0, 0,
-8, 5, 5, 5, 3, 5, 3, 4, 4, 6, 2, 2, 2, 2, 0, 0,
-9, 5, 5, 3, 5, 5, 5, 4, 4, 4, 4, 2, 2, 0, 0, 0,
-7, 5, 5, 5, 5, 5, 5, 2, 6, 6, 6, 2, 2, 0, 0, 0,
-8, 7, 5, 3, 3, 5, 5, 4, 6, 6, 4, 2, 0, 0, 0, 0,
-8, 5, 5, 5, 5, 3, 3, 4, 4, 4, 2, 2, 2, 2, 0, 0,
-8, 5, 5, 5, 7, 3, 5, 6, 4, 2, 4, 4, 2, 0, 0, 0,
-8, 5, 5, 3, 5, 5, 5, 2, 4, 4, 4, 2, 0, 0, 0, 0,
-7, 7, 7, 5, 5, 3, 3, 4, 6, 4, 4, 2, 0, 0, 0, 0,
-8, 7, 7, 5, 5, 3, 5, 4, 6, 6, 4, 2, 2, 0, 0, 0,
-8, 5, 5, 7, 5, 3, 5, 4, 4, 4, 4, 2, 2, 2, 0, 0,
-8, 5, 5, 3, 5, 5, 5, 4, 2, 2, 4, 2, 0, 0, 0, 0,
-7, 5, 5, 5, 5, 5, 3, 4, 2, 4, 4, 2, 0, 0, 0, 0,
-8, 7, 7, 5, 5, 3, 3, 4, 4, 4, 6, 2, 0, 0, 0, 0,
-8, 7, 7, 5, 5, 5, 3, 4, 6, 6, 2, 2, 2, 0, 0, 0,
-9, 5, 7, 5, 5, 5, 3, 4, 4, 4, 6, 2, 2, 0, 0, 0,
-8, 5, 5, 3, 3, 3, 3, 4, 4, 4, 4, 2, 0, 0, 0, 0,
-7, 5, 5, 5, 5, 5, 5, 4, 4, 4, 4, 2, 2, 0, 0, 0,
-8, 5, 7, 3, 7, 5, 5, 4, 6, 6, 4, 2, 2, 2, 0, 0,
-8, 5, 5, 5, 5, 3, 3, 4, 6, 4, 4, 2, 2, 2, 0, 0,
-9, 5, 7, 5, 5, 5, 3, 4, 2, 4, 2, 2, 2, 2, 0, 0,
-8, 5, 5, 5, 3, 3, 3, 4, 4, 6, 2, 2, 2, 0, 0, 0,
-7, 5, 7, 5, 5, 5, 5, 2, 6, 4, 6, 2, 0, 0, 0, 0,
-8, 5, 7, 5, 5, 5, 3, 6, 4, 4, 4, 4, 2, 0, 0, 0,
-8, 5, 7, 5, 5, 7, 3, 4, 4, 4, 4, 2, 2, 2, 0, 0,
-8, 5, 7, 3, 7, 5, 3, 4, 2, 2, 4, 2, 2, 0, 0, 0,
-8, 5, 5, 5, 5, 5, 5, 4, 4, 4, 4, 4, 2, 0, 0, 0,
-7, 5, 5, 3, 5, 3, 3, 2, 6, 6, 4, 2, 2, 0, 0, 0,
-7, 5, 5, 5, 5, 5, 7, 2, 4, 4, 4, 2, 2, 2, 0, 0,
-8, 5, 5, 5, 5, 5, 5, 6, 4, 4, 2, 2, 2, 0, 0, 0,
-8, 5, 5, 5, 5, 5, 3, 4, 4, 4, 2, 2, 2, 0, 0, 0,
-8, 5, 5, 3, 5, 5, 5, 2, 2, 4, 6, 2, 2, 0, 0, 0,
-7, 5, 5, 7, 5, 5, 3, 4, 6, 4, 4, 2, 2, 2, 0, 0,
-8, 5, 5, 5, 7, 3, 3, 4, 4, 6, 4, 2, 2, 2, 0, 0,
-8, 5, 7, 7, 3, 5, 3, 4, 6, 6, 2, 2, 2, 0, 0, 0,
-8, 5, 5, 5, 5, 5, 3, 4, 2, 4, 4, 2, 2, 0, 0, 0,
-7, 5, 5, 5, 5, 3, 5, 2, 4, 4, 4, 2, 2, 0, 0, 0,
-8, 7, 5, 5, 5, 5, 3, 4, 4, 4, 4, 2, 2, 0, 0, 0,
-8, 7, 5, 5, 7, 5, 3, 6, 4, 4, 4, 4, 2, 2, 0, 0,
-8, 5, 5, 5, 7, 3, 5, 6, 4, 2, 2, 4, 2, 0, 0, 0,
-8, 5, 5, 3, 3, 3, 1, 4, 6, 6, 2, 2, 0, 0, 0, 0,
-8, 5, 5, 3, 5, 5, 5, 4, 4, 4, 4, 4, 0, 0, 0, 0,
-7, 5, 5, 3, 5, 5, 3, 4, 4, 4, 4, 4, 2, 0, 0, 0,
-8, 5, 7, 3, 5, 5, 5, 4, 4, 4, 2, 2, 2, 0, 0, 0,
-9, 5, 5, 5, 5, 5, 5, 4, 4, 4, 4, 2, 2, 0, 0, 0,
-9, 5, 5, 3, 3, 3, 5, 4, 4, 2, 6, 2, 2, 0, 0, 0,
-7, 5, 5, 7, 5, 5, 3, 4, 6, 4, 4, 2, 0, 0, 0, 0,
-8, 5, 5, 5, 5, 5, 5, 6, 6, 2, 4, 2, 2, 0, 0, 0,
-9, 5, 5, 5, 5, 5, 5, 4, 4, 4, 4, 2, 2, 0, 0, 0,
-8, 5, 5, 3, 1, 3, 3, 4, 2, 4, 4, 2, 2, 0, 0, 0,
-8, 5, 5, 5, 5, 5, 3, 4, 2, 4, 4, 2, 2, 0, 0, 0,
-8, 5, 5, 5, 5, 5, 3, 4, 6, 4, 4, 2, 2, 0, 0, 0,
-8, 7, 5, 5, 5, 5, 3, 4, 2, 4, 4, 4, 2, 0, 0, 0,
-8, 5, 7, 3, 5, 5, 5, 4, 4, 4, 4, 2, 2, 0, 0, 0,
-9, 5, 5, 5, 5, 5, 5, 4, 4, 2, 4, 2, 2, 0, 0, 0,
-8, 5, 5, 3, 5, 5, 3, 4, 4, 4, 4, 2, 0, 0, 0, 0,
-8, 7, 5, 5, 5, 5, 3, 6, 4, 2, 4, 4, 2, 2, 0, 0,
-8, 3, 5, 5, 5, 5, 3, 6, 6, 2, 4, 4, 2, 2, 0, 0,
-9, 7, 5, 3, 5, 5, 5, 6, 4, 4, 4, 4, 2, 2, 0, 0,
-9, 5, 7, 5, 5, 5, 5, 2, 4, 6, 4, 2, 2, 2, 0, 0,
-8, 5, 5, 5, 5, 5, 3, 4, 4, 4, 6, 2, 2, 0, 0, 0,
-7, 7, 5, 3, 7, 3, 5, 4, 4, 6, 4, 2, 2, 0, 0, 0,
-9, 7, 5, 5, 5, 5, 5, 2, 4, 4, 4, 2, 2, 2, 0, 0,
-9, 7, 5, 5, 5, 5, 5, 4, 4, 4, 4, 2, 2, 0, 0, 0,
-9, 5, 5, 3, 5, 5, 3, 2, 4, 2, 4, 2, 0, 0, 0, 0,
-8, 7, 7, 5, 5, 5, 5, 4, 4, 4, 4, 2, 2, 0, 0, 0,
-8, 5, 5, 5, 7, 5, 3, 4, 6, 4, 4, 2, 2, 2, 0, 0,
-8, 5, 5, 3, 5, 3, 5, 2, 4, 4, 2, 2, 2, 2, 0, 0,
-9, 5, 5, 5, 5, 3, 3, 4, 6, 6, 4, 2, 2, 0, 0, 0,
-9, 5, 5, 5, 5, 5, 3, 4, 2, 4, 4, 2, 0, 0, 0, 0,
-8, 7, 5, 3, 5, 5, 3, 4, 4, 4, 4, 4, 2, 0, 0, 0,
-8, 5, 5, 5, 7, 5, 5, 2, 6, 4, 4, 4, 2, 0, 0, 0,
-9, 7, 5, 5, 5, 5, 3, 2, 4, 2, 2, 2, 2, 2, 0, 0,
-9, 5, 5, 5, 7, 5, 3, 4, 4, 6, 2, 2, 2, 0, 0, 0,
-9, 5, 5, 3, 5, 3, 3, 4, 6, 2, 4, 6, 2, 0, 0, 0,
-8, 5, 5, 3, 5, 3, 3, 6, 4, 2, 6, 2, 2, 0, 0, 0,
-8, 7, 5, 7, 5, 5, 3, 4, 6, 2, 4, 4, 2, 0, 0, 0,
-8, 7, 7, 3, 5, 7, 5, 6, 4, 4, 4, 4, 2, 2, 0, 0,
-9, 5, 5, 5, 5, 5, 3, 4, 4, 4, 4, 2, 2, 2, 0, 0,
-9, 5, 5, 3, 5, 3, 3, 4, 4, 4, 2, 2, 2, 2, 0, 0,
-8, 5, 3, 3, 3, 3, 3, 2, 2, 2, 4, 2, 2, 2, 0, 0,
-9, 5, 5, 3, 3, 3, 1, 4, 4, 2, 2, 2, 2, 0, 0, 0,
-8, 5, 3, 5, 5, 5, 3, 4, 4, 4, 4, 4, 2, 2, 0, 0,
-7, 7, 7, 5, 7, 3, 3, 4, 4, 4, 4, 2, 2, 0, 0, 0,
-8, 5, 3, 7, 5, 5, 3, 4, 4, 2, 2, 2, 2, 0, 0, 0,
-8, 5, 5, 5, 3, 3, 3, 2, 4, 2, 2, 2, 2, 2, 0, 0,
-9, 3, 5, 5, 3, 3, 3, 4, 4, 4, 2, 2, 2, 2, 0, 0,
-8, 5, 5, 5, 5, 5, 3, 4, 4, 4, 4, 2, 2, 0, 0, 0,
-8, 5, 5, 5, 5, 3, 5, 4, 4, 2, 2, 2, 2, 0, 0, 0,
-8, 5, 5, 5, 5, 5, 5, 4, 4, 4, 2, 2, 2, 2, 0, 0,
-8, 7, 5, 5, 5, 5, 3, 6, 4, 2, 4, 2, 2, 2, 0, 0,
-8, 5, 7, 3, 5, 5, 3, 6, 4, 4, 4, 2, 2, 2, 0, 0,
-9, 5, 5, 5, 7, 5, 3, 4, 2, 4, 4, 4, 0, 0, 0, 0,
-7, 5, 5, 3, 5, 5, 3, 4, 4, 4, 2, 4, 2, 0, 0, 0,
-8, 7, 5, 5, 7, 5, 3, 4, 4, 4, 4, 2, 2, 2, 0, 0,
-9, 7, 5, 5, 5, 3, 5, 4, 4, 6, 4, 4, 2, 0, 0, 0,
-9, 5, 5, 3, 5, 5, 5, 2, 2, 6, 4, 2, 2, 0, 0, 0,
-8, 5, 7, 5, 5, 5, 5, 4, 4, 4, 4, 2, 2, 0, 0, 0,
-8, 7, 5, 5, 5, 5, 3, 4, 6, 6, 4, 2, 2, 0, 0, 0,
-8, 7, 5, 5, 5, 7, 3, 4, 4, 4, 2, 4, 2, 2, 0, 0,
-8, 5, 5, 5, 7, 3, 5, 4, 4, 4, 4, 2, 2, 0, 0, 0,
-9, 5, 5, 3, 5, 5, 3, 4, 2, 4, 2, 2, 0, 0, 0, 0,
-8, 7, 7, 5, 5, 5, 5, 4, 4, 2, 4, 2, 2, 0, 0, 0,
-8, 5, 5, 3, 7, 5, 5, 6, 6, 6, 4, 2, 2, 2, 0, 0,
-9, 5, 5, 5, 5, 5, 1, 4, 4, 2, 6, 2, 2, 0, 0, 0,
-9, 5, 5, 5, 5, 5, 3, 4, 2, 4, 2, 2, 2, 2, 0, 0,
-8, 5, 5, 5, 5, 3, 3, 4, 2, 4, 4, 2, 2, 0, 0, 0,
-8, 7, 7, 3, 5, 5, 3, 4, 4, 4, 4, 2, 0, 0, 0, 0,
-8, 5, 5, 5, 3, 5, 5, 4, 4, 4, 4, 2, 2, 2, 0, 0,
-9, 5, 5, 5, 5, 3, 5, 4, 2, 4, 2, 2, 2, 0, 0, 0,
-8, 5, 5, 5, 5, 5, 3, 4, 4, 4, 4, 2, 2, 2, 0, 0,
-8, 5, 5, 5, 5, 5, 3, 4, 2, 4, 4, 2, 2, 0, 0, 0,
-7, 7, 5, 7, 5, 5, 5, 4, 6, 6, 4, 4, 2, 0, 0, 0,
-8, 7, 5, 5, 5, 5, 5, 4, 6, 4, 4, 2, 2, 0, 0, 0,
-8, 5, 7, 5, 5, 5, 3, 4, 6, 2, 2, 2, 2, 0, 0, 0,
-8, 5, 7, 5, 5, 5, 3, 6, 6, 2, 2, 2, 2, 0, 0, 0,
-8, 7, 5, 5, 5, 5, 3, 4, 2, 4, 4, 2, 0, 0, 0, 0,
-7, 5, 7, 5, 7, 5, 1, 6, 4, 4, 6, 2, 2, 0, 0, 0,
-8, 5, 5, 5, 5, 3, 3, 4, 4, 4, 4, 2, 0, 0, 0, 0,
-8, 5, 7, 5, 5, 3, 5, 4, 2, 4, 6, 2, 2, 0, 0, 0,
-8, 5, 5, 3, 5, 5, 5, 4, 4, 4, 4, 2, 2, 0, 0, 0,
-8, 5, 5, 3, 5, 5, 3, 4, 4, 4, 4, 4, 2, 0, 0, 0,
-8, 5, 7, 7, 5, 7, 5, 4, 6, 6, 2, 4, 4, 0, 0, 0,
-9, 5, 7, 3, 7, 5, 3, 4, 4, 4, 2, 2, 2, 0, 0, 0,
-8, 5, 5, 3, 5, 5, 3, 2, 4, 4, 4, 2, 2, 0, 0, 0,
-8, 5, 5, 3, 3, 5, 3, 4, 2, 4, 4, 2, 2, 0, 0, 0,
-7, 5, 5, 5, 5, 7, 3, 4, 4, 4, 4, 4, 2, 0, 0, 0,
-8, 7, 7, 3, 7, 5, 3, 6, 4, 4, 4, 4, 0, 0, 0, 0,
-9, 5, 5, 5, 5, 3, 5, 4, 4, 4, 4, 6, 2, 2, 0, 0,
-8, 5, 5, 7, 5, 5, 7, 4, 2, 4, 6, 2, 2, 2, 0, 0,
-8, 7, 5, 5, 5, 5, 1, 4, 2, 4, 2, 2, 0, 0, 0, 0,
-7, 7, 5, 5, 5, 3, 5, 4, 4, 4, 4, 2, 2, 0, 0, 0,
-8, 7, 5, 3, 5, 5, 5, 4, 4, 4, 4, 2, 0, 0, 0, 0,
-9, 7, 5, 5, 5, 5, 5, 2, 2, 6, 2, 2, 2, 2, 0, 0,
-8, 5, 5, 5, 5, 3, 5, 6, 4, 2, 4, 2, 2, 0, 0, 0,
-8, 5, 5, 5, 3, 5, 3, 4, 4, 4, 4, 2, 2, 0, 0, 0,
-7, 7, 7, 5, 7, 5, 3, 4, 6, 6, 4, 2, 2, 0, 0, 0,
-8, 7, 5, 3, 5, 5, 3, 4, 6, 4, 4, 2, 0, 0, 0, 0,
-8, 5, 7, 5, 7, 5, 3, 6, 4, 2, 4, 2, 2, 0, 0, 0,
-8, 5, 7, 5, 5, 5, 3, 6, 4, 4, 4, 2, 2, 2, 0, 0,
-8, 5, 5, 3, 5, 5, 5, 4, 4, 4, 4, 2, 2, 0, 0, 0,
-7, 7, 5, 5, 5, 3, 3, 4, 4, 4, 4, 4, 2, 0, 0, 0,
-8, 7, 7, 5, 5, 3, 5, 4, 4, 4, 4, 2, 2, 2, 0, 0,
-8, 5, 5, 5, 5, 3, 1, 6, 4, 4, 6, 2, 2, 2, 0, 0,
-8, 5, 5, 5, 5, 5, 3, 4, 4, 4, 4, 2, 0, 0, 0, 0,
-8, 5, 7, 5, 5, 5, 5, 4, 4, 4, 4, 2, 2, 0, 0, 0,
-8, 7, 7, 5, 3, 5, 5, 6, 4, 4, 4, 2, 2, 0, 0, 0,
-9, 7, 5, 5, 5, 5, 5, 6, 4, 4, 2, 4, 2, 2, 0, 0,
-9, 7, 7, 5, 5, 3, 3, 6, 4, 6, 4, 4, 2, 2, 0, 0,
-8, 7, 5, 3, 5, 5, 3, 4, 2, 4, 4, 2, 2, 0, 0, 0,
-7, 7, 7, 5, 5, 5, 3, 4, 4, 4, 4, 2, 2, 0, 0, 0,
-8, 7, 7, 3, 5, 5, 3, 4, 6, 4, 2, 2, 0, 0, 0, 0,
-8, 7, 5, 5, 3, 7, 3, 4, 6, 4, 4, 2, 0, 2, 0, 0,
-9, 7, 7, 3, 5, 5, 3, 2, 4, 2, 4, 2, 2, 2, 0, 0,
-8, 5, 5, 3, 5, 5, 3, 4, 2, 4, 2, 2, 2, 0, 0, 0,
-7, 7, 5, 5, 5, 5, 3, 4, 4, 2, 4, 4, 2, 0, 0, 0,
-8, 7, 7, 3, 7, 3, 5, 4, 6, 4, 4, 2, 0, 2, 0, 0,
-9, 7, 3, 5, 7, 5, 5, 6, 6, 4, 4, 4, 2, 2, 0, 0,
-8, 7, 5, 5, 7, 5, 3, 4, 6, 6, 2, 2, 2, 2, 0, 0,
-8, 5, 5, 3, 5, 5, 5, 4, 4, 4, 4, 2, 2, 0, 0, 0,
-7, 7, 5, 5, 5, 5, 5, 6, 6, 6, 4, 4, 2, 0, 0, 0,
-8, 7, 7, 5, 5, 7, 3, 6, 6, 2, 2, 2, 2, 0, 0, 0,
-8, 7, 3, 5, 3, 7, 3, 6, 4, 4, 4, 4, 2, 2, 0, 0,
-8, 7, 5, 5, 5, 3, 3, 4, 2, 4, 4, 2, 2, 2, 0, 0,
-8, 5, 5, 3, 5, 5, 5, 4, 4, 4, 4, 4, 2, 0, 0, 0,
-7, 7, 5, 5, 5, 5, 3, 6, 4, 4, 6, 2, 2, 0, 0, 0,
-8, 7, 5, 5, 5, 5, 5, 4, 4, 6, 4, 2, 2, 0, 0, 0,
-9, 5, 7, 5, 5, 5, 3, 4, 4, 2, 2, 2, 2, 2, 0, 0,
-8, 5, 7, 3, 5, 5, 5, 4, 4, 6, 2, 2, 0, 0, 0, 0,
-8, 5, 5, 5, 5, 5, 5, 4, 2, 4, 4, 4, 2, 0, 0, 0,
-8, 7, 5, 3, 5, 3, 3, 6, 6, 6, 4, 2, 2, 0, 0, 0,
-9, 7, 5, 3, 7, 5, 5, 6, 6, 4, 4, 4, 2, 0, 0, 0,
-9, 7, 5, 5, 5, 7, 5, 6, 4, 6, 4, 2, 2, 4, 0, 0,
-9, 5, 5, 3, 3, 5, 3, 4, 2, 4, 2, 4, 0, 0, 0, 0,
-8, 7, 7, 7, 5, 5, 5, 4, 4, 4, 4, 2, 2, 0, 0, 0,
-8, 7, 5, 5, 5, 5, 5, 4, 4, 4, 2, 2, 2, 2, 0, 0,
-9, 7, 5, 5, 5, 3, 5, 6, 2, 2, 4, 2, 2, 0, 0, 0,
-9, 7, 3, 3, 5, 7, 3, 6, 2, 4, 4, 2, 2, 0, 0, 0,
-9, 5, 5, 3, 5, 5, 3, 4, 2, 4, 4, 0, 2, 0, 0, 0,
-8, 7, 7, 5, 5, 3, 5, 4, 4, 2, 4, 4, 2, 0, 0, 0,
-8, 7, 7, 5, 5, 5, 5, 4, 4, 4, 2, 4, 2, 0, 0, 0,
-9, 7, 5, 5, 5, 5, 3, 6, 4, 4, 2, 2, 2, 0, 0, 0,
-9, 7, 7, 3, 7, 5, 5, 4, 4, 4, 2, 2, 2, 2, 0, 0,
-9, 5, 5, 5, 3, 3, 5, 4, 2, 4, 4, 4, 2, 0, 0, 0,
-8, 7, 7, 5, 5, 5, 5, 4, 4, 4, 4, 2, 0, 0, 0, 0,
-9, 7, 5, 5, 5, 3, 5, 4, 4, 4, 2, 2, 2, 0, 0, 0,
-9, 5, 5, 5, 5, 5, 3, 4, 4, 2, 2, 2, 2, 0, 0, 0,
-8, 5, 5, 5, 5, 5, 3, 4, 4, 6, 4, 2, 2, 2, 0, 0,
-9, 7, 5, 5, 5, 5, 5, 4, 2, 4, 4, 4, 2, 0, 0, 0,
-8, 7, 7, 3, 5, 3, 3, 4, 4, 4, 4, 4, 0, 0, 0, 0,
-9, 7, 5, 5, 5, 7, 5, 6, 4, 4, 2, 2, 2, 2, 0, 0,
-9, 5, 7, 5, 5, 5, 5, 6, 2, 4, 2, 4, 0, 0, 0, 0,
-9, 5, 5, 3, 5, 3, 3, 2, 4, 4, 2, 4, 2, 0, 0, 0,
-9, 7, 5, 5, 5, 5, 3, 4, 2, 4, 4, 2, 2, 0, 0, 0,
-9, 7, 7, 3, 5, 5, 5, 4, 4, 6, 4, 2, 2, 0, 0, 0,
-9, 7, 5, 7, 5, 5, 3, 6, 4, 6, 4, 2, 2, 0, 0, 0,
-9, 5, 5, 5, 5, 5, 5, 4, 2, 4, 4, 2, 2, 0, 0, 0,
-9, 5, 5, 3, 5, 3, 3, 4, 2, 4, 2, 2, 2, 0, 0, 0,
-9, 7, 5, 5, 5, 5, 5, 4, 4, 4, 4, 4, 2, 0, 0, 0,
-9, 7, 5, 5, 5, 5, 3, 4, 4, 4, 4, 2, 2, 0, 0, 0,
-9, 7, 5, 3, 5, 5, 3, 4, 2, 6, 4, 2, 0, 0, 0, 0,
-9, 5, 7, 5, 5, 3, 5, 4, 2, 6, 2, 2, 2, 0, 0, 0,
-9, 5, 5, 3, 5, 5, 5, 4, 4, 4, 4, 4, 2, 0, 0, 0,
-9, 7, 5, 5, 5, 7, 5, 4, 2, 4, 4, 4, 2, 2, 0, 0,
-9, 7, 5, 5, 7, 5, 7, 4, 2, 4, 2, 4, 2, 2, 0, 0,
-9, 5, 7, 3, 5, 5, 5, 4, 4, 2, 2, 2, 2, 0, 0, 0,
-9, 5, 7, 5, 5, 5, 3, 2, 4, 4, 4, 2, 2, 2, 0, 0,
-8, 5, 5, 5, 5, 5, 3, 4, 2, 4, 4, 2, 2, 0, 0, 0,
-7, 7, 5, 3, 5, 5, 5, 4, 2, 4, 6, 2, 2, 0, 0, 0,
-8, 7, 5, 5, 7, 5, 5, 6, 2, 4, 2, 4, 2, 0, 0, 0,
-9, 5, 5, 5, 5, 5, 5, 6, 4, 6, 2, 2, 2, 0, 0, 0,
-8, 5, 5, 3, 5, 7, 3, 4, 4, 2, 4, 2, 2, 2, 0, 0,
-9, 7, 5, 5, 5, 5, 5, 4, 4, 2, 4, 2, 2, 0, 0, 0,
-9, 7, 5, 5, 5, 5, 5, 4, 2, 4, 4, 2, 2, 0, 0, 0,
-8, 7, 3, 5, 3, 5, 5, 4, 4, 4, 4, 2, 2, 0, 0, 0,
-9, 7, 5, 7, 5, 3, 5, 6, 4, 2, 4, 2, 0, 0, 0, 0,
-9, 5, 5, 5, 5, 3, 7, 4, 4, 4, 4, 2, 0, 0, 0, 0,
-9, 7, 5, 7, 5, 5, 5, 4, 2, 2, 4, 2, 2, 0, 0, 0,
-9, 5, 5, 3, 5, 5, 3, 2, 4, 4, 4, 2, 2, 0, 0, 0,
-9, 7, 5, 7, 3, 5, 5, 4, 2, 4, 4, 2, 2, 0, 0, 0,
-8, 7, 5, 5, 3, 5, 5, 4, 4, 4, 6, 2, 0, 0, 0, 0,
-9, 5, 5, 5, 5, 5, 5, 4, 4, 2, 4, 2, 2, 0, 0, 0,
-9, 5, 5, 5, 5, 5, 5, 4, 4, 4, 4, 2, 0, 0, 0, 0,
-9, 5, 5, 5, 5, 3, 5, 6, 4, 4, 4, 2, 2, 0, 0, 0,
-9, 5, 5, 5, 5, 3, 3, 6, 2, 4, 4, 2, 0, 0, 0, 0,
-9, 7, 5, 5, 3, 5, 3, 4, 2, 4, 4, 2, 2, 0, 0, 0,
-8, 5, 5, 5, 3, 5, 3, 4, 4, 6, 2, 2, 2, 0, 0, 0,
-9, 7, 5, 5, 5, 5, 5, 4, 6, 4, 4, 2, 2, 0, 0, 0,
-9, 5, 7, 7, 5, 5, 5, 4, 6, 6, 4, 2, 2, 0, 0, 0,
-9, 5, 5, 5, 5, 1, 3, 2, 6, 2, 2, 4, 2, 0, 0, 0,
-9, 5, 5, 7, 5, 3, 3, 4, 2, 4, 4, 2, 0, 0, 0, 0,
-9, 7, 5, 5, 5, 5, 5, 4, 2, 4, 4, 2, 2, 0, 0, 0,
-8, 5, 5, 5, 3, 5, 5, 4, 4, 4, 4, 2, 0, 0, 0, 0,
-9, 5, 5, 7, 5, 3, 5, 4, 4, 4, 4, 2, 0, 0, 0, 0,
-9, 7, 5, 7, 5, 5, 5, 6, 4, 6, 4, 4, 2, 0, 0, 0,
-9, 7, 3, 3, 3, 3, 5, 2, 2, 2, 2, 2, 2, 0, 0, 0,
-9, 5, 3, 5, 3, 3, 3, 4, 2, 2, 2, 2, 2, 2, 0, 0,
-9, 7, 5, 5, 5, 5, 5, 4, 2, 4, 4, 2, 2, 0, 0, 0,
-8, 7, 5, 5, 5, 5, 3, 4, 4, 4, 4, 2, 2, 0, 0, 0,
-9, 7, 5, 5, 5, 5, 5, 4, 2, 2, 4, 4, 0, 0, 0, 0,
-9, 7, 5, 5, 5, 5, 5, 6, 4, 4, 4, 4, 2, 0, 0, 0,
-8, 5, 3, 5, 3, 3, 3, 4, 2, 4, 2, 2, 2, 0, 0, 0,
-9, 5, 5, 7, 5, 5, 3, 4, 2, 4, 2, 2, 0, 2, 0, 0,
-9, 5, 5, 3, 5, 3, 3, 2, 4, 4, 4, 2, 2, 0, 0, 0,
-8, 7, 5, 5, 5, 5, 5, 4, 4, 4, 4, 2, 2, 0, 0, 0,
-8, 5, 5, 5, 7, 5, 5, 4, 4, 4, 4, 2, 0, 0, 0, 0,
-8, 5, 5, 5, 3, 5, 5, 2, 4, 4, 6, 2, 2, 2, 0, 0,
-9, 5, 7, 5, 3, 5, 3, 4, 4, 4, 2, 2, 2, 0, 0, 0,
-9, 7, 3, 5, 3, 3, 3, 2, 4, 2, 4, 2, 2, 0, 0, 0,
-9, 5, 3, 5, 3, 3, 3, 4, 4, 4, 2, 2, 2, 0, 0, 0,
-8, 7, 5, 5, 5, 5, 5, 4, 2, 4, 4, 2, 2, 0, 0, 0,
-8, 7, 5, 5, 3, 5, 3, 4, 4, 4, 4, 2, 2, 0, 0, 0,
-8, 7, 3, 7, 5, 5, 5, 6, 4, 6, 6, 2, 2, 0, 0, 0,
-9, 7, 5, 7, 5, 7, 5, 4, 6, 4, 2, 4, 2, 0, 0, 0,
-9, 5, 7, 5, 5, 5, 3, 4, 4, 4, 2, 4, 2, 0, 0, 0,
-9, 7, 3, 5, 3, 1, 1, 4, 2, 2, 2, 2, 2, 2, 0, 0,
-9, 7, 3, 3, 3, 3, 3, 2, 4, 4, 2, 2, 2, 0, 0, 0,
-8, 7, 5, 5, 5, 3, 5, 4, 2, 4, 4, 4, 2, 0, 0, 0,
-8, 7, 5, 7, 5, 5, 3, 6, 4, 4, 6, 2, 2, 2, 0, 0,
-8, 7, 5, 7, 5, 5, 3, 4, 4, 4, 4, 2, 2, 0, 0, 0,
-9, 7, 5, 5, 3, 5, 3, 6, 4, 4, 2, 2, 2, 0, 0, 0,
-9, 7, 5, 7, 5, 5, 5, 6, 4, 4, 6, 4, 0, 0, 0, 0,
-9, 5, 5, 3, 5, 5, 5, 4, 2, 4, 4, 2, 0, 0, 0, 0,
-8, 7, 5, 5, 3, 5, 5, 4, 2, 4, 4, 2, 2, 0, 0, 0,
-8, 7, 5, 5, 5, 5, 3, 6, 4, 4, 4, 2, 2, 0, 0, 0,
-9, 7, 5, 7, 5, 5, 5, 6, 4, 4, 2, 4, 2, 2, 0, 0,
-8, 7, 5, 7, 5, 3, 5, 4, 2, 6, 4, 2, 2, 0, 0, 0,
-9, 5, 5, 5, 3, 5, 3, 4, 4, 4, 4, 2, 0, 0, 0, 0,
-9, 5, 5, 3, 5, 5, 5, 4, 4, 4, 4, 2, 2, 0, 0, 0,
-8, 7, 5, 5, 5, 5, 5, 4, 2, 4, 4, 2, 0, 0, 0, 0,
-8, 7, 5, 5, 5, 3, 5, 4, 4, 2, 6, 2, 2, 0, 0, 0,
-9, 7, 5, 7, 7, 5, 3, 6, 4, 2, 2, 4, 0, 0, 0, 0,
-9, 5, 7, 7, 5, 5, 3, 2, 6, 4, 4, 2, 2, 2, 0, 0,
-9, 5, 5, 5, 7, 5, 5, 6, 4, 4, 4, 2, 2, 0, 0, 0,
-9, 5, 5, 3, 3, 5, 5, 2, 2, 4, 4, 2, 0, 0, 0, 0,
-8, 5, 5, 5, 5, 5, 5, 4, 2, 4, 2, 4, 2, 0, 0, 0,
-8, 7, 5, 5, 5, 5, 3, 4, 2, 4, 4, 6, 2, 0, 0, 0,
-8, 5, 7, 3, 5, 5, 5, 4, 4, 4, 2, 4, 0, 0, 0, 0,
-9, 7, 5, 3, 7, 3, 5, 4, 2, 4, 6, 4, 2, 2, 0, 0,
-9, 7, 5, 5, 5, 5, 3, 4, 4, 6, 4, 2, 0, 0, 0, 0,
-9, 7, 5, 5, 5, 5, 5, 4, 2, 4, 4, 4, 2, 0, 0, 0,
-8, 7, 3, 5, 3, 5, 5, 4, 4, 4, 6, 2, 0, 0, 0, 0,
-9, 7, 5, 5, 5, 5, 5, 4, 4, 4, 2, 2, 2, 2, 0, 0,
-9, 5, 5, 5, 5, 5, 5, 4, 4, 4, 2, 2, 2, 2, 0, 0,
-9, 7, 5, 5, 5, 3, 5, 4, 4, 4, 4, 4, 0, 0, 0, 0,
-8, 7, 5, 5, 5, 5, 5, 2, 2, 4, 4, 2, 2, 0, 0, 0,
-8, 7, 3, 7, 3, 5, 5, 6, 4, 6, 4, 4, 2, 0, 0, 0,
-9, 5, 3, 5, 5, 5, 3, 4, 4, 4, 4, 2, 2, 0, 0, 0,
-9, 5, 5, 5, 5, 3, 5, 2, 4, 4, 4, 4, 2, 0, 0, 0,
-9, 5, 5, 5, 3, 5, 5, 6, 4, 6, 4, 2, 2, 0, 0, 0,
-8, 7, 5, 7, 5, 5, 5, 2, 4, 2, 4, 2, 2, 0, 0, 0,
-9, 7, 5, 5, 5, 5, 5, 4, 4, 4, 4, 2, 2, 0, 0, 0,
-9, 7, 5, 5, 5, 5, 5, 2, 4, 4, 2, 4, 2, 0, 0, 0,
-9, 5, 5, 5, 5, 3, 5, 6, 4, 4, 4, 2, 2, 0, 0, 0,
-8, 3, 5, 3, 3, 1, 3, 2, 2, 2, 2, 2, 2, 4, 0, 0,
-9, 5, 3, 3, 3, 3, 3, 4, 4, 4, 4, 2, 2, 0, 0, 0,
-9, 3, 3, 3, 5, 5, 5, 4, 2, 4, 2, 4, 2, 2, 0, 0,
-9, 5, 5, 5, 5, 3, 3, 6, 4, 4, 2, 2, 2, 0, 0, 0,
-8, 5, 7, 5, 3, 5, 3, 4, 2, 2, 6, 2, 2, 0, 0, 0,
-8, 7, 5, 5, 3, 7, 5, 6, 4, 4, 4, 2, 2, 0, 0, 0,
-9, 7, 3, 5, 3, 5, 5, 2, 2, 6, 4, 2, 2, 0, 0, 0,
-8, 5, 5, 3, 5, 5, 3, 4, 4, 4, 4, 2, 2, 0, 0, 0,
-9, 5, 5, 3, 5, 5, 5, 4, 2, 4, 4, 2, 2, 0, 0, 0,
-7, 7, 5, 7, 5, 5, 3, 4, 2, 4, 4, 4, 2, 0, 0, 0,
-8, 7, 5, 5, 3, 5, 3, 4, 4, 4, 4, 2, 2, 2, 0, 0,
-9, 7, 5, 5, 5, 5, 3, 6, 6, 6, 2, 2, 2, 0, 0, 0,
-8, 5, 5, 7, 3, 7, 5, 2, 6, 4, 2, 2, 2, 0, 0, 0,
-9, 5, 3, 3, 3, 3, 3, 4, 2, 2, 4, 2, 2, 0, 0, 0,
-8, 5, 5, 5, 5, 5, 5, 4, 4, 4, 4, 2, 2, 0, 0, 0,
-8, 7, 5, 5, 5, 5, 3, 4, 6, 2, 4, 4, 2, 0, 0, 0,
-9, 7, 5, 7, 3, 7, 5, 4, 2, 4, 4, 2, 2, 0, 0, 0,
-9, 7, 5, 5, 3, 5, 5, 4, 4, 6, 4, 2, 2, 0, 0, 0,
-9, 7, 5, 5, 5, 5, 5, 4, 2, 4, 4, 2, 0, 0, 0, 0,
-8, 7, 5, 5, 3, 5, 7, 6, 6, 4, 4, 2, 2, 0, 0, 0,
-8, 5, 5, 5, 7, 5, 5, 7, 4, 6, 4, 4, 0, 0, 0, 0,
-9, 7, 5, 5, 5, 5, 5, 4, 2, 4, 4, 2, 2, 0, 0, 0,
-9, 5, 5, 7, 5, 5, 3, 4, 6, 6, 4, 2, 2, 0, 0, 0,
-9, 5, 3, 5, 5, 5, 5, 4, 2, 4, 4, 2, 2, 0, 0, 0,
-8, 7, 5, 7, 5, 3, 5, 6, 4, 4, 4, 4, 2, 0, 0, 0,
-8, 7, 5, 5, 3, 5, 5, 4, 4, 2, 4, 2, 2, 2, 0, 0,
-9, 7, 5, 5, 5, 5, 5, 4, 6, 4, 4, 2, 2, 0, 0, 0,
-9, 7, 5, 5, 7, 5, 5, 6, 4, 4, 4, 2, 2, 0, 0, 0,
-9, 7, 5, 5, 3, 5, 5, 4, 4, 4, 4, 4, 2, 0, 0, 0,
-8, 7, 5, 5, 5, 5, 3, 6, 4, 4, 4, 2, 2, 0, 0, 0,
-8, 7, 7, 7, 5, 3, 5, 2, 6, 4, 2, 2, 2, 0, 0, 0,
-9, 5, 7, 5, 5, 5, 5, 4, 2, 4, 2, 2, 2, 0, 0, 0,
-9, 5, 5, 3, 5, 5, 3, 4, 2, 4, 4, 2, 0, 0, 0, 0,
-8, 7, 5, 7, 5, 5, 5, 4, 4, 4, 4, 4, 0, 0, 0, 0,
-9, 7, 3, 5, 5, 3, 3, 4, 4, 4, 4, 2, 2, 2, 0, 0,
-8, 5, 7, 3, 5, 5, 3, 4, 4, 4, 4, 4, 2, 0, 0, 0,
-9, 5, 7, 7, 5, 3, 1, 6, 4, 4, 4, 2, 0, 0, 0, 0,
-9, 5, 5, 3, 5, 5, 3, 4, 2, 4, 4, 2, 2, 0, 0, 0,
-8, 7, 3, 5, 5, 5, 3, 4, 6, 4, 4, 2, 2, 0, 0, 0,
-8, 5, 5, 5, 5, 3, 3, 4, 4, 2, 4, 2, 0, 0, 0, 0,
-9, 5, 5, 7, 3, 7, 3, 4, 4, 2, 6, 2, 2, 0, 0, 0,
-9, 3, 5, 5, 5, 5, 3, 4, 4, 4, 6, 2, 0, 0, 0, 0,
-9, 7, 5, 5, 3, 3, 3, 4, 4, 4, 4, 2, 0, 0, 0, 0,
-9, 5, 5, 3, 3, 5, 3, 4, 2, 4, 2, 4, 2, 0, 0, 0,
-8, 7, 3, 7, 3, 7, 5, 4, 4, 4, 6, 2, 0, 0, 0, 0,
-9, 7, 7, 7, 3, 5, 3, 4, 4, 6, 2, 4, 2, 0, 0, 0,
-9, 5, 5, 7, 5, 3, 5, 4, 2, 4, 4, 2, 0, 0, 0, 0,
-9, 5, 3, 3, 5, 5, 3, 4, 4, 4, 4, 2, 2, 0, 0, 0,
-8, 7, 5, 5, 3, 5, 5, 4, 4, 6, 4, 2, 0, 0, 0, 0,
-8, 7, 3, 5, 5, 5, 3, 4, 4, 6, 2, 2, 2, 0, 0, 0,
-9, 7, 5, 5, 5, 5, 5, 4, 6, 2, 4, 2, 0, 2, 0, 0,
-9, 5, 5, 5, 3, 5, 5, 4, 2, 6, 4, 2, 0, 0, 0, 0,
-9, 5, 5, 5, 5, 3, 5, 4, 4, 4, 4, 4, 2, 0, 0, 0,
-8, 5, 5, 5, 3, 3, 3, 4, 4, 4, 4, 2, 0, 0, 0, 0,
-9, 5, 5, 5, 5, 5, 3, 6, 4, 4, 4, 4, 0, 0, 0, 0,
-9, 5, 5, 5, 5, 7, 3, 6, 6, 4, 4, 2, 0, 0, 0, 0,
-9, 7, 5, 5, 5, 5, 5, 4, 2, 4, 2, 2, 2, 0, 0, 0,
-9, 7, 5, 5, 5, 5, 5, 4, 2, 4, 4, 2, 0, 0, 0, 0,
-9, 7, 5, 5, 3, 5, 3, 4, 4, 4, 4, 2, 2, 0, 0, 0,
-9, 7, 7, 7, 5, 5, 5, 6, 4, 4, 4, 2, 2, 0, 0, 0,
-9, 3, 5, 5, 5, 5, 3, 4, 4, 6, 4, 2, 2, 0, 0, 0,
-9, 5, 5, 5, 5, 3, 5, 4, 4, 4, 2, 2, 2, 0, 0, 0,
-8, 7, 5, 3, 3, 5, 3, 4, 4, 4, 4, 2, 0, 0, 0, 0,
-8, 7, 7, 3, 3, 5, 3, 4, 4, 2, 4, 2, 2, 0, 0, 0,
-9, 7, 7, 5, 7, 7, 3, 4, 4, 4, 2, 4, 2, 2, 0, 0,
-9, 5, 7, 7, 7, 7, 3, 6, 4, 4, 2, 2, 2, 2, 0, 0,
-9, 7, 3, 3, 5, 3, 3, 2, 4, 4, 2, 2, 2, 0, 0, 0,
-8, 7, 5, 5, 5, 5, 5, 4, 2, 2, 4, 2, 0, 0, 0, 0,
-8, 5, 5, 5, 7, 5, 5, 4, 2, 4, 4, 2, 2, 0, 0, 0,
-9, 7, 7, 7, 5, 5, 5, 4, 4, 4, 4, 4, 0, 0, 0, 0,
-9, 5, 5, 7, 5, 5, 3, 6, 4, 6, 4, 2, 2, 2, 0, 0,
-9, 5, 5, 5, 3, 5, 3, 4, 2, 4, 4, 2, 2, 0, 0, 0,
-8, 7, 5, 5, 5, 3, 5, 6, 2, 4, 4, 4, 2, 0, 0, 0,
-8, 7, 7, 3, 7, 5, 3, 4, 2, 2, 6, 2, 2, 0, 0, 0,
-9, 7, 5, 3, 5, 5, 5, 4, 2, 4, 2, 4, 0, 0, 0, 0,
-9, 5, 7, 5, 7, 5, 5, 4, 6, 4, 4, 2, 2, 2, 0, 0,
-9, 5, 5, 3, 5, 5, 5, 4, 4, 4, 4, 4, 2, 0, 0, 0,
-8, 7, 5, 3, 3, 5, 5, 6, 2, 4, 4, 2, 0, 0, 0, 0,
-9, 5, 5, 5, 3, 5, 3, 6, 4, 4, 2, 4, 2, 0, 0, 0,
-9, 5, 5, 5, 5, 5, 5, 4, 6, 4, 2, 2, 2, 0, 0, 0,
-9, 5, 5, 5, 5, 5, 3, 2, 4, 4, 2, 2, 2, 0, 0, 0,
-9, 7, 5, 5, 5, 5, 5, 4, 2, 4, 4, 2, 0, 0, 0, 0,
-9, 7, 5, 5, 5, 5, 3, 4, 4, 4, 4, 2, 2, 2, 0, 0,
-8, 7, 5, 3, 5, 3, 3, 4, 4, 4, 2, 2, 2, 2, 0, 0,
-9, 5, 3, 3, 5, 5, 5, 4, 4, 2, 2, 4, 2, 0, 0, 0,
-9, 5, 5, 5, 5, 5, 1, 4, 4, 4, 2, 2, 2, 0, 0, 0,
-9, 7, 7, 7, 5, 5, 5, 2, 4, 4, 2, 2, 0, 0, 0, 0,
-8, 5, 5, 5, 5, 3, 7, 4, 4, 2, 2, 4, 2, 0, 0, 0,
-9, 5, 5, 5, 5, 3, 5, 4, 4, 4, 4, 2, 2, 0, 0, 0,
-8, 5, 7, 5, 3, 5, 3, 4, 4, 4, 4, 4, 0, 0, 0, 0,
-8, 7, 5, 5, 3, 7, 3, 6, 2, 4, 4, 2, 2, 0, 0, 0,
-8, 5, 5, 5, 5, 5, 5, 4, 2, 4, 4, 2, 0, 0, 0, 0,
-9, 7, 5, 3, 7, 5, 5, 6, 2, 4, 2, 4, 2, 0, 0, 0,
-9, 5, 5, 3, 5, 5, 5, 4, 2, 4, 4, 2, 2, 0, 0, 0,
-8, 7, 7, 5, 3, 5, 3, 4, 2, 4, 4, 4, 2, 0, 0, 0,
-8, 7, 7, 3, 7, 5, 5, 6, 6, 4, 4, 2, 2, 2, 0, 0,
-9, 7, 5, 5, 5, 7, 5, 4, 2, 4, 2, 2, 2, 0, 0, 0,
-9, 5, 5, 5, 5, 5, 5, 4, 4, 4, 2, 2, 0, 0, 0, 0,
-9, 5, 5, 5, 5, 5, 5, 4, 2, 4, 4, 4, 2, 0, 0, 0,
-7, 7, 5, 3, 5, 7, 3, 4, 4, 6, 4, 2, 0, 0, 0, 0,
-9, 7, 5, 3, 5, 5, 3, 2, 6, 4, 4, 4, 2, 0, 0, 0,
-9, 5, 5, 3, 5, 3, 5, 4, 4, 4, 4, 2, 2, 0, 0, 0,
-9, 5, 5, 3, 5, 5, 5, 2, 2, 4, 4, 2, 0, 0, 0, 0,
-8, 7, 7, 3, 5, 5, 5, 4, 2, 4, 4, 2, 2, 0, 0, 0,
-8, 7, 5, 5, 3, 5, 3, 4, 4, 4, 2, 4, 2, 0, 0, 0,
-8, 7, 5, 5, 5, 5, 3, 4, 4, 4, 2, 2, 0, 0, 0, 0,
-9, 7, 5, 5, 5, 7, 3, 4, 4, 4, 2, 4, 2, 0, 0, 0,
-9, 5, 3, 3, 3, 3, 3, 4, 2, 2, 2, 0, 0, 0, 0, 0,
-9, 5, 7, 5, 5, 5, 3, 4, 2, 4, 4, 2, 2, 0, 0, 0,
-8, 7, 5, 3, 5, 5, 3, 4, 4, 4, 4, 2, 0, 0, 0, 0,
-9, 7, 5, 5, 5, 3, 5, 4, 4, 4, 4, 4, 2, 2, 0, 0,
-9, 5, 5, 5, 5, 5, 5, 4, 6, 2, 4, 6, 0, 0, 0, 0,
-8, 5, 5, 3, 5, 5, 5, 4, 2, 4, 4, 2, 2, 0, 0, 0,
-8, 7, 5, 5, 5, 5, 5, 4, 4, 6, 4, 2, 0, 0, 0, 0,
-9, 7, 5, 5, 5, 5, 3, 4, 4, 4, 4, 4, 2, 0, 0, 0,
-8, 7, 5, 5, 5, 5, 3, 4, 4, 2, 4, 2, 0, 0, 0, 0,
-9, 5, 5, 5, 5, 7, 3, 2, 6, 4, 4, 2, 2, 2, 0, 0,
-9, 5, 3, 5, 5, 5, 3, 4, 2, 4, 4, 4, 2, 0, 0, 0,
-8, 7, 5, 5, 5, 5, 5, 4, 4, 4, 4, 2, 2, 0, 0, 0,
-8, 7, 3, 5, 5, 5, 3, 4, 4, 4, 4, 2, 0, 0, 0, 0,
-9, 5, 5, 5, 5, 5, 5, 4, 2, 2, 6, 2, 2, 0, 0, 0,
-9, 7, 5, 5, 5, 5, 3, 2, 4, 4, 4, 2, 2, 0, 0, 0,
-8, 5, 5, 5, 5, 5, 5, 4, 2, 4, 4, 4, 2, 0, 0, 0,
-8, 7, 5, 5, 5, 5, 3, 4, 4, 4, 4, 4, 2, 0, 0, 0,
-8, 7, 5, 5, 7, 5, 3, 4, 4, 4, 4, 2, 2, 0, 0, 0,
-9, 7, 5, 5, 5, 3, 3, 2, 6, 6, 2, 2, 2, 0, 0, 0,
-8, 5, 5, 3, 5, 5, 5, 4, 4, 4, 4, 2, 0, 0, 0, 0,
-8, 7, 7, 5, 5, 5, 5, 4, 2, 6, 4, 2, 0, 0, 0, 0,
-7, 7, 5, 5, 7, 5, 5, 4, 6, 4, 4, 2, 2, 0, 0, 0,
-8, 7, 5, 5, 5, 5, 3, 4, 6, 6, 4, 2, 2, 0, 0, 0,
-8, 7, 7, 5, 5, 3, 5, 6, 6, 4, 2, 2, 2, 0, 0, 0,
-9, 5, 5, 5, 3, 3, 3, 4, 4, 2, 4, 4, 2, 0, 0, 0,
-8, 7, 7, 5, 5, 5, 3, 4, 4, 4, 4, 2, 2, 0, 0, 0,
-8, 7, 5, 5, 5, 5, 5, 4, 4, 4, 2, 2, 2, 0, 0, 0,
-9, 7, 5, 5, 5, 5, 5, 6, 2, 2, 4, 2, 2, 2, 0, 0,
-9, 5, 7, 5, 5, 5, 3, 4, 4, 4, 4, 2, 2, 0, 0, 0,
-9, 5, 5, 5, 5, 5, 3, 4, 2, 4, 4, 2, 2, 0, 0, 0,
-7, 7, 5, 3, 5, 5, 3, 2, 4, 6, 4, 2, 2, 0, 0, 0,
-9, 7, 5, 5, 5, 5, 3, 4, 2, 6, 4, 2, 2, 0, 0, 0,
-8, 7, 5, 5, 5, 5, 5, 6, 4, 4, 4, 2, 2, 2, 0, 0,
-9, 5, 5, 3, 3, 5, 3, 6, 4, 4, 2, 2, 2, 2, 0, 0,
-9, 5, 5, 5, 5, 3, 3, 4, 2, 4, 4, 2, 2, 0, 0, 0,
-7, 7, 5, 5, 5, 3, 3, 4, 6, 4, 2, 2, 0, 0, 0, 0,
-8, 7, 5, 5, 5, 5, 3, 4, 4, 2, 2, 2, 2, 0, 0, 0,
-9, 7, 5, 7, 5, 5, 3, 4, 2, 4, 4, 2, 2, 0, 0, 0,
-9, 7, 7, 5, 5, 3, 3, 4, 4, 6, 2, 2, 0, 0, 0, 0,
-9, 5, 5, 5, 7, 5, 3, 4, 2, 4, 4, 2, 2, 0, 0, 0,
-7, 7, 7, 5, 5, 3, 3, 4, 4, 6, 2, 2, 0, 0, 0, 0,
-8, 7, 5, 5, 5, 3, 3, 2, 4, 2, 4, 2, 0, 0, 0, 0,
-8, 7, 5, 5, 5, 5, 5, 4, 4, 4, 2, 2, 2, 0, 0, 0,
-9, 5, 5, 5, 3, 3, 3, 4, 4, 4, 2, 4, 2, 0, 0, 0,
-8, 5, 5, 5, 5, 5, 3, 4, 2, 4, 4, 2, 2, 0, 0, 0,
-8, 7, 5, 5, 5, 5, 3, 4, 2, 2, 4, 2, 2, 0, 0, 0,
-8, 7, 7, 5, 7, 3, 3, 4, 4, 4, 4, 2, 2, 2, 0, 0,
-9, 5, 5, 7, 5, 3, 3, 4, 2, 4, 4, 4, 2, 2, 0, 0,
-9, 5, 5, 3, 3, 5, 3, 4, 4, 4, 4, 2, 2, 0, 0, 0,
-8, 7, 7, 5, 5, 5, 3, 4, 2, 4, 4, 4, 2, 0, 0, 0,
-8, 7, 5, 3, 5, 5, 5, 4, 4, 4, 2, 2, 2, 0, 0, 0,
-8, 5, 5, 5, 5, 5, 3, 4, 4, 4, 4, 4, 2, 0, 0, 0,
-9, 5, 5, 5, 5, 5, 3, 4, 4, 2, 2, 2, 2, 2, 0, 0,
-9, 5, 5, 5, 5, 5, 3, 4, 4, 4, 4, 2, 2, 0, 0, 0,
-8, 7, 7, 3, 5, 3, 3, 6, 4, 4, 4, 2, 0, 0, 0, 0,
-8, 7, 5, 5, 5, 5, 3, 4, 4, 4, 4, 2, 2, 0, 0, 0,
-9, 7, 5, 5, 5, 3, 3, 4, 4, 4, 4, 2, 0, 0, 0, 0,
-9, 5, 7, 5, 5, 5, 5, 6, 4, 4, 4, 2, 2, 0, 0, 0,
-8, 5, 3, 5, 5, 5, 3, 4, 4, 4, 4, 2, 0, 0, 0, 0,
-7, 7, 5, 3, 5, 3, 3, 4, 4, 6, 4, 2, 0, 0, 0, 0,
-8, 7, 5, 5, 5, 5, 3, 4, 4, 6, 2, 2, 2, 0, 0, 0,
-9, 5, 5, 5, 5, 5, 3, 4, 4, 4, 2, 2, 2, 0, 0, 0,
-8, 7, 7, 5, 5, 5, 3, 4, 4, 2, 4, 2, 2, 0, 0, 0,
-9, 5, 5, 5, 5, 5, 3, 4, 4, 4, 4, 4, 2, 0, 0, 0,
-8, 7, 5, 5, 5, 5, 3, 4, 4, 4, 2, 2, 2, 0, 0, 0,
-8, 7, 5, 5, 7, 5, 5, 6, 4, 2, 4, 2, 2, 0, 0, 0,
-9, 5, 7, 7, 5, 5, 1, 4, 4, 6, 4, 2, 2, 0, 0, 0,
-9, 5, 5, 3, 5, 5, 5, 4, 4, 4, 4, 2, 2, 0, 0, 0,
-8, 7, 5, 5, 5, 5, 3, 4, 2, 4, 4, 4, 2, 0, 0, 0,
-8, 7, 5, 5, 5, 3, 3, 2, 4, 4, 6, 2, 2, 0, 0, 0,
-9, 7, 5, 5, 5, 5, 3, 6, 4, 4, 4, 2, 0, 0, 0, 0,
-9, 5, 5, 7, 5, 5, 3, 4, 4, 4, 4, 2, 2, 0, 0, 0,
-9, 5, 3, 3, 3, 5, 3, 4, 2, 4, 4, 2, 2, 0, 0, 0,
-8, 7, 5, 5, 5, 5, 3, 4, 4, 4, 4, 2, 2, 0, 0, 0,
-8, 7, 5, 5, 5, 5, 5, 4, 4, 4, 4, 2, 2, 0, 0, 0,
-9, 7, 5, 5, 5, 5, 3, 6, 2, 4, 2, 2, 2, 0, 0, 0,
-9, 7, 5, 5, 7, 7, 3, 6, 4, 4, 4, 2, 2, 0, 0, 0,
-9, 7, 3, 3, 5, 3, 3, 4, 2, 4, 4, 2, 2, 0, 0, 0,
-8, 7, 5, 3, 5, 5, 5, 4, 4, 4, 4, 2, 0, 0, 0, 0,
-8, 5, 5, 5, 7, 5, 3, 4, 4, 4, 4, 2, 2, 0, 0, 0,
-9, 5, 5, 5, 3, 5, 5, 4, 4, 4, 2, 2, 2, 0, 0, 0,
-9, 5, 5, 5, 5, 3, 3, 4, 6, 4, 4, 2, 2, 0, 0, 0,
-8, 5, 5, 3, 5, 5, 3, 4, 2, 4, 4, 2, 2, 0, 0, 0,
-9, 7, 7, 5, 5, 3, 3, 4, 4, 4, 4, 4, 2, 0, 0, 0,
-8, 7, 5, 5, 5, 5, 3, 4, 6, 2, 2, 2, 2, 2, 0, 0,
-9, 5, 7, 7, 5, 5, 3, 4, 4, 4, 2, 2, 0, 0, 0, 0,
-9, 7, 7, 5, 7, 5, 5, 4, 2, 6, 2, 2, 2, 2, 0, 0,
-9, 5, 5, 5, 5, 5, 5, 4, 4, 4, 4, 4, 2, 0, 0, 0,
-8, 7, 5, 3, 5, 5, 3, 4, 2, 4, 4, 2, 0, 0, 0, 0,
-8, 7, 5, 5, 7, 5, 5, 4, 4, 6, 4, 2, 2, 0, 0, 0,
-9, 7, 7, 5, 5, 3, 3, 4, 6, 2, 4, 2, 2, 0, 0, 0,
-9, 7, 5, 5, 5, 3, 3, 4, 2, 4, 4, 2, 0, 0, 0, 0,
-9, 5, 7, 5, 5, 5, 5, 4, 4, 4, 4, 2, 2, 0, 0, 0,
-9, 7, 5, 5, 5, 3, 3, 4, 4, 6, 2, 2, 0, 0, 0, 0,
-9, 7, 5, 5, 5, 5, 3, 4, 4, 4, 4, 2, 2, 0, 0, 0,
-9, 5, 5, 5, 5, 5, 1, 4, 6, 6, 4, 2, 0, 0, 0, 0,
-9, 5, 3, 3, 5, 5, 3, 2, 2, 4, 4, 2, 2, 0, 0, 0,
-8, 5, 3, 3, 7, 5, 5, 4, 2, 4, 4, 2, 2, 0, 0, 0,
-8, 7, 5, 5, 5, 3, 3, 4, 4, 6, 4, 2, 2, 0, 0, 0,
-9, 7, 7, 7, 5, 5, 5, 4, 6, 4, 4, 2, 2, 0, 0, 0,
-9, 5, 5, 5, 3, 5, 3, 2, 6, 4, 4, 2, 2, 0, 0, 0,
-9, 5, 5, 5, 3, 3, 3, 2, 4, 4, 4, 2, 2, 0, 0, 0,
-8, 7, 7, 5, 5, 5, 3, 4, 2, 6, 4, 4, 2, 0, 0, 0,
-9, 7, 5, 5, 5, 3, 3, 2, 6, 4, 4, 2, 2, 2, 0, 0,
-9, 7, 5, 5, 5, 3, 5, 4, 4, 4, 2, 2, 2, 2, 0, 0,
-9, 5, 5, 5, 5, 5, 3, 4, 4, 2, 4, 2, 2, 0, 0, 0,
-8, 5, 5, 5, 5, 5, 3, 4, 2, 4, 4, 2, 2, 0, 0, 0,
-9, 7, 7, 5, 5, 3, 3, 4, 4, 4, 4, 2, 2, 0, 0, 0,
-8, 7, 5, 3, 5, 5, 3, 4, 6, 4, 2, 4, 2, 0, 0, 0,
-9, 7, 5, 5, 5, 5, 5, 4, 2, 4, 2, 4, 0, 0, 0, 0,
-9, 3, 7, 5, 5, 5, 3, 4, 4, 4, 4, 2, 2, 0, 0, 0,
-9, 7, 5, 7, 5, 5, 3, 4, 4, 4, 4, 4, 2, 0, 0, 0,
-9, 5, 7, 5, 5, 3, 5, 2, 4, 4, 4, 4, 2, 0, 0, 0,
-8, 7, 7, 5, 5, 5, 3, 2, 6, 4, 4, 2, 2, 0, 0, 0,
-9, 5, 5, 5, 5, 5, 3, 4, 4, 6, 4, 2, 2, 0, 0, 0,
-9, 5, 5, 5, 5, 3, 3, 2, 4, 4, 4, 2, 0, 0, 0, 0,
-9, 5, 5, 5, 7, 5, 3, 4, 4, 4, 4, 2, 2, 0, 0, 0,
-9, 7, 7, 5, 5, 3, 5, 6, 4, 4, 4, 2, 0, 0, 0, 0,
-9, 7, 5, 5, 5, 5, 3, 4, 4, 4, 2, 2, 2, 0, 0, 0,
-9, 7, 5, 5, 5, 5, 3, 2, 4, 2, 4, 4, 0, 0, 0, 0,
-9, 5, 3, 3, 3, 5, 3, 4, 4, 4, 4, 2, 2, 0, 0, 0,
-9, 5, 5, 5, 5, 5, 3, 4, 2, 6, 4, 2, 2, 0, 0, 0,
-8, 7, 5, 5, 5, 3, 5, 4, 4, 6, 2, 2, 2, 0, 0, 0,
-9, 5, 5, 5, 5, 5, 3, 2, 4, 4, 4, 4, 2, 2, 0, 0,
-9, 5, 5, 5, 5, 5, 3, 6, 6, 2, 4, 4, 2, 2, 0, 0,
-9, 5, 5, 3, 5, 5, 5, 4, 4, 4, 4, 2, 2, 0, 0, 0,
-9, 5, 5, 5, 5, 7, 3, 4, 4, 6, 4, 2, 2, 0, 0, 0,
-9, 7, 5, 5, 7, 7, 5, 4, 4, 4, 2, 2, 0, 0, 0, 0,
-9, 5, 7, 5, 5, 5, 3, 4, 4, 4, 4, 4, 2, 0, 0, 0,
-9, 3, 5, 5, 3, 3, 1, 4, 4, 4, 2, 2, 2, 0, 0, 0,
-9, 7, 5, 5, 3, 5, 3, 4, 4, 4, 2, 2, 2, 0, 0, 0,
-9, 5, 5, 5, 7, 5, 3, 4, 4, 4, 2, 2, 2, 2, 0, 0,
-9, 7, 7, 5, 7, 3, 5, 4, 6, 4, 2, 2, 2, 0, 0, 0,
-9, 5, 5, 5, 5, 5, 3, 4, 4, 6, 2, 2, 2, 0, 0, 0,
-9, 5, 5, 5, 5, 3, 3, 2, 2, 4, 2, 2, 2, 2, 0, 0,
-9, 5, 3, 5, 5, 5, 5, 4, 4, 4, 4, 2, 2, 0, 0, 0,
-9, 7, 7, 5, 5, 3, 3, 4, 4, 6, 4, 2, 0, 0, 0, 0,
-8, 7, 5, 5, 5, 3, 5, 6, 4, 4, 2, 4, 2, 2, 0, 0,
-9, 5, 5, 5, 3, 5, 3, 4, 4, 4, 2, 2, 2, 0, 0, 0,
-9, 7, 5, 3, 5, 5, 3, 4, 2, 6, 4, 2, 0, 0, 0, 0,
-9, 5, 5, 5, 5, 5, 3, 4, 2, 4, 4, 2, 2, 0, 0, 0,
-9, 7, 7, 3, 3, 3, 3, 6, 6, 4, 4, 2, 2, 0, 0, 0,
-9, 7, 5, 5, 5, 5, 5, 2, 6, 4, 4, 2, 2, 0, 0, 0,
-9, 7, 5, 5, 5, 5, 5, 2, 4, 4, 4, 2, 2, 0, 0, 0,
-9, 5, 3, 3, 5, 5, 3, 2, 2, 4, 4, 2, 2, 0, 0, 0,
-9, 5, 7, 3, 7, 5, 5, 4, 2, 4, 4, 4, 2, 0, 0, 0,
-8, 7, 5, 5, 7, 5, 5, 4, 6, 4, 4, 4, 2, 0, 0, 0,
-8, 7, 5, 3, 5, 5, 3, 4, 4, 4, 4, 2, 0, 0, 0, 0,
-9, 5, 5, 5, 3, 5, 3, 4, 6, 4, 2, 2, 2, 0, 0, 0,
-9, 5, 5, 5, 3, 5, 5, 4, 4, 4, 4, 0, 0, 0, 0, 0,
-8, 5, 5, 5, 5, 5, 3, 4, 4, 4, 4, 4, 2, 0, 0, 0,
-8, 7, 7, 5, 5, 3, 5, 4, 4, 4, 4, 2, 2, 0, 0, 0,
-8, 7, 5, 5, 5, 5, 5, 4, 4, 6, 2, 2, 2, 0, 0, 0,
-9, 7, 5, 5, 5, 5, 5, 2, 4, 4, 4, 2, 2, 0, 0, 0,
-9, 5, 5, 5, 5, 5, 5, 4, 2, 4, 4, 2, 0, 0, 0, 0,
-8, 7, 7, 5, 5, 5, 3, 4, 6, 4, 2, 4, 4, 0, 0, 0,
-9, 7, 5, 3, 5, 3, 3, 4, 6, 4, 4, 2, 2, 0, 0, 0,
-9, 7, 5, 5, 5, 5, 3, 6, 4, 2, 4, 2, 0, 0, 0, 0,
-8, 7, 5, 5, 5, 7, 3, 4, 4, 6, 4, 2, 2, 0, 0, 0,
-9, 5, 5, 3, 5, 5, 5, 4, 4, 4, 4, 2, 2, 0, 0, 0,
-8, 7, 5, 7, 7, 5, 5, 4, 4, 4, 4, 2, 2, 0, 0, 0,
-8, 7, 7, 5, 5, 5, 3, 6, 6, 6, 6, 2, 2, 0, 0, 0,
-8, 7, 5, 5, 5, 5, 5, 4, 4, 4, 2, 2, 2, 0, 0, 0,
-9, 7, 5, 3, 5, 5, 5, 4, 4, 4, 4, 2, 2, 0, 0, 0,
-9, 5, 5, 5, 5, 5, 5, 4, 4, 4, 4, 2, 2, 0, 0, 0,
-7, 5, 5, 5, 5, 5, 3, 4, 6, 2, 4, 4, 2, 0, 0, 0,
-9, 7, 5, 5, 5, 5, 5, 4, 4, 4, 4, 2, 0, 0, 0, 0,
-9, 7, 5, 5, 7, 5, 5, 4, 4, 4, 2, 2, 2, 2, 0, 0,
-9, 5, 5, 3, 5, 5, 5, 4, 4, 4, 4, 2, 0, 0, 0, 0,
-8, 5, 5, 5, 5, 5, 3, 4, 4, 4, 4, 2, 2, 0, 0, 0,
-7, 7, 7, 7, 7, 5, 5, 4, 4, 6, 2, 2, 4, 0, 0, 0,
-8, 7, 5, 5, 5, 5, 5, 4, 4, 4, 4, 2, 2, 0, 0, 0,
-8, 7, 5, 5, 5, 5, 5, 4, 4, 4, 2, 2, 2, 2, 0, 0,
-9, 5, 3, 5, 5, 3, 3, 4, 2, 4, 4, 2, 2, 0, 0, 0,
-8, 7, 5, 5, 5, 7, 5, 4, 4, 6, 4, 2, 0, 0, 0, 0,
-7, 5, 7, 3, 5, 5, 5, 4, 4, 4, 4, 2, 0, 0, 0, 0,
-9, 7, 5, 3, 5, 7, 5, 4, 4, 4, 4, 2, 2, 0, 0, 0,
-9, 7, 7, 7, 5, 3, 3, 4, 2, 6, 2, 4, 2, 0, 0, 0,
-9, 5, 5, 3, 5, 3, 3, 2, 2, 4, 4, 2, 2, 0, 0, 0,
-7, 5, 7, 3, 5, 5, 3, 4, 4, 4, 4, 2, 0, 0, 0, 0,
-8, 7, 5, 5, 5, 3, 3, 2, 6, 6, 4, 2, 2, 0, 0, 0,
-8, 5, 5, 5, 5, 3, 3, 4, 4, 2, 2, 2, 2, 0, 0, 0,
-9, 7, 5, 7, 7, 5, 5, 2, 4, 4, 4, 2, 2, 2, 0, 0,
-9, 5, 5, 3, 5, 5, 5, 2, 4, 4, 4, 2, 2, 0, 0, 0,
-7, 5, 5, 5, 5, 3, 3, 4, 6, 4, 4, 4, 2, 0, 0, 0,
-7, 5, 5, 5, 5, 3, 3, 4, 4, 4, 2, 2, 2, 0, 0, 0,
-9, 5, 7, 5, 5, 5, 5, 4, 4, 4, 4, 2, 2, 2, 0, 0,
-9, 7, 7, 5, 5, 5, 3, 4, 4, 2, 4, 4, 2, 2, 0, 0,
-9, 5, 5, 5, 5, 5, 5, 4, 4, 4, 4, 2, 2, 0, 0, 0,
-7, 7, 7, 3, 5, 3, 3, 4, 6, 6, 6, 2, 0, 0, 0, 0,
-8, 7, 5, 7, 5, 7, 5, 6, 4, 4, 4, 2, 2, 0, 0, 0,
-8, 5, 5, 5, 3, 5, 5, 4, 4, 2, 4, 4, 2, 0, 0, 0,
-9, 7, 5, 5, 5, 7, 1, 4, 4, 4, 2, 4, 0, 0, 0, 0,
-9, 5, 5, 5, 5, 5, 3, 4, 4, 4, 4, 2, 2, 0, 0, 0,
-7, 5, 5, 5, 5, 5, 3, 6, 6, 4, 4, 2, 0, 0, 0, 0,
-8, 5, 5, 5, 5, 5, 5, 4, 4, 4, 4, 2, 2, 0, 0, 0,
-9, 7, 5, 5, 5, 3, 3, 4, 4, 4, 2, 2, 2, 0, 0, 0,
-9, 5, 7, 3, 5, 5, 3, 2, 4, 2, 4, 2, 2, 0, 0, 0,
-8, 7, 5, 5, 5, 5, 5, 4, 4, 4, 4, 2, 2, 0, 0, 0,
-7, 5, 5, 5, 5, 3, 5, 2, 4, 4, 2, 2, 0, 0, 0, 0,
-9, 7, 5, 5, 7, 3, 3, 4, 4, 4, 4, 2, 2, 2, 0, 0,
-9, 5, 5, 5, 5, 5, 3, 4, 6, 4, 4, 2, 2, 0, 0, 0,
-9, 5, 5, 3, 5, 5, 3, 2, 4, 4, 2, 4, 0, 0, 0, 0,
-8, 5, 5, 5, 5, 5, 3, 4, 4, 4, 4, 2, 2, 0, 0, 0,
-8, 3, 7, 5, 5, 5, 3, 2, 4, 2, 2, 2, 2, 0, 0, 0,
-9, 5, 5, 5, 5, 5, 3, 2, 6, 4, 6, 2, 0, 0, 0, 0,
-9, 5, 5, 7, 3, 5, 3, 2, 4, 2, 4, 2, 2, 0, 0, 0,
-9, 5, 5, 5, 3, 5, 3, 4, 4, 4, 2, 2, 2, 0, 0, 0,
-8, 7, 5, 5, 5, 5, 3, 4, 4, 4, 4, 2, 0, 0, 0, 0,
-7, 5, 5, 5, 5, 5, 3, 4, 4, 4, 4, 2, 2, 2, 0, 0,
-9, 7, 5, 5, 3, 3, 3, 4, 2, 4, 4, 2, 2, 0, 0, 0,
-9, 5, 5, 3, 5, 3, 3, 6, 4, 4, 4, 2, 2, 0, 0, 0,
-9, 5, 5, 5, 7, 5, 3, 6, 4, 2, 4, 2, 2, 0, 0, 0,
-8, 5, 5, 5, 5, 3, 5, 2, 4, 4, 4, 2, 2, 0, 0, 0,
-8, 5, 5, 5, 5, 5, 3, 6, 4, 2, 4, 2, 2, 0, 0, 0,
-8, 5, 5, 5, 5, 5, 3, 2, 4, 6, 4, 2, 2, 2, 0, 0,
-9, 7, 5, 7, 5, 5, 3, 4, 4, 2, 4, 2, 2, 2, 0, 0,
-9, 7, 5, 5, 7, 5, 5, 6, 2, 4, 4, 2, 2, 0, 0, 0,
-9, 5, 5, 5, 5, 5, 3, 4, 2, 4, 4, 2, 2, 0, 0, 0,
-8, 7, 7, 5, 5, 5, 3, 4, 4, 4, 4, 4, 2, 0, 0, 0,
-8, 7, 5, 5, 5, 5, 5, 4, 4, 4, 4, 2, 2, 2, 0, 0,
-9, 5, 5, 5, 5, 7, 3, 6, 4, 4, 2, 2, 2, 2, 0, 0,
-9, 5, 5, 5, 5, 5, 5, 4, 2, 4, 4, 2, 2, 0, 0, 0,
-9, 5, 5, 5, 5, 3, 3, 2, 2, 4, 4, 2, 2, 0, 0, 0,
-8, 7, 5, 7, 5, 3, 3, 4, 2, 4, 2, 2, 0, 0, 0, 0,
-8, 7, 7, 5, 5, 5, 5, 4, 4, 4, 2, 2, 0, 0, 0, 0,
-9, 5, 7, 5, 7, 3, 3, 4, 4, 4, 4, 2, 2, 2, 0, 0,
-9, 5, 5, 5, 5, 3, 3, 6, 4, 4, 4, 2, 2, 2, 0, 0,
-9, 5, 5, 3, 3, 3, 3, 2, 2, 4, 4, 2, 0, 0, 0, 0,
-9, 7, 7, 7, 5, 5, 5, 4, 2, 4, 4, 4, 2, 0, 0, 0,
-8, 7, 5, 5, 5, 3, 3, 6, 4, 4, 4, 2, 0, 0, 0, 0,
-8, 5, 5, 7, 5, 5, 5, 4, 4, 4, 4, 2, 2, 2, 0, 0,
-9, 5, 7, 5, 3, 5, 3, 4, 2, 2, 4, 2, 2, 2, 0, 0,
-9, 5, 5, 7, 5, 5, 3, 4, 4, 6, 2, 2, 2, 0, 0, 0,
-9, 7, 5, 5, 5, 5, 5, 4, 2, 4, 4, 2, 0, 0, 0, 0,
-9, 5, 5, 3, 5, 3, 3, 6, 4, 6, 4, 0, 2, 0, 0, 0,
-8, 5, 5, 3, 3, 5, 3, 4, 4, 4, 4, 2, 2, 0, 0, 0,
-9, 5, 7, 5, 5, 5, 1, 4, 6, 4, 4, 2, 0, 0, 0, 0,
-9, 5, 5, 5, 5, 5, 5, 4, 6, 4, 4, 2, 2, 0, 0, 0,
-8, 7, 5, 3, 5, 3, 5, 4, 2, 2, 4, 4, 2, 0, 0, 0,
-8, 5, 5, 5, 3, 5, 3, 4, 4, 6, 4, 4, 2, 0, 0, 0,
-8, 5, 5, 5, 5, 3, 3, 4, 2, 2, 4, 2, 2, 0, 0, 0,
-8, 3, 7, 7, 3, 5, 3, 2, 4, 4, 4, 2, 2, 0, 0, 0,
-9, 7, 5, 5, 5, 5, 3, 6, 4, 4, 4, 2, 2, 0, 0, 0,
-9, 5, 5, 3, 5, 5, 5, 4, 2, 4, 4, 2, 2, 0, 0, 0,
-9, 7, 7, 5, 5, 5, 3, 4, 4, 4, 4, 2, 2, 0, 0, 0,
-8, 5, 7, 5, 5, 5, 3, 4, 4, 4, 2, 2, 2, 0, 0, 0,
-9, 7, 7, 7, 7, 5, 1, 6, 4, 4, 2, 2, 2, 0, 0, 0,
-9, 5, 5, 5, 5, 5, 5, 2, 4, 4, 4, 2, 2, 0, 0, 0,
-9, 5, 7, 5, 5, 7, 5, 6, 2, 2, 4, 2, 0, 0, 0, 0,
-8, 5, 5, 5, 5, 3, 3, 4, 4, 2, 4, 2, 2, 0, 0, 0,
-8, 7, 5, 5, 3, 3, 3, 4, 4, 6, 4, 4, 0, 0, 0, 0,
-8, 7, 5, 7, 5, 5, 5, 6, 2, 4, 4, 2, 2, 2, 0, 0,
-9, 7, 5, 5, 5, 7, 5, 4, 4, 4, 4, 2, 2, 0, 0, 0,
-9, 5, 5, 5, 5, 5, 3, 4, 6, 4, 2, 2, 2, 0, 0, 0,
-9, 5, 5, 5, 3, 5, 3, 4, 4, 4, 4, 2, 0, 0, 0, 0,
-9, 7, 5, 5, 5, 5, 3, 4, 4, 4, 4, 4, 2, 0, 0, 0,
-9, 7, 5, 3, 5, 5, 3, 4, 4, 4, 4, 2, 2, 0, 0, 0,
-9, 7, 7, 5, 5, 5, 5, 2, 4, 4, 4, 2, 0, 2, 0, 0,
-9, 5, 5, 7, 5, 7, 5, 4, 2, 4, 4, 2, 2, 0, 0, 0,
-9, 7, 5, 3, 5, 3, 5, 2, 4, 2, 6, 2, 2, 0, 0, 0,
-9, 5, 3, 3, 5, 5, 3, 2, 2, 4, 4, 2, 2, 0, 0, 0,
-9, 5, 7, 7, 5, 5, 5, 4, 4, 4, 4, 2, 2, 0, 0, 0,
-8, 7, 5, 5, 5, 5, 3, 2, 4, 6, 4, 2, 2, 0, 0, 0,
-8, 5, 5, 5, 5, 5, 5, 4, 4, 6, 2, 2, 2, 0, 0, 0,
-9, 7, 5, 5, 5, 5, 5, 2, 4, 6, 4, 2, 2, 0, 0, 0,
-9, 5, 3, 5, 3, 3, 3, 4, 2, 4, 2, 2, 2, 2, 0, 0,
-9, 7, 3, 5, 3, 5, 3, 6, 2, 4, 2, 2, 2, 0, 0, 0,
-8, 7, 5, 5, 5, 5, 5, 2, 4, 2, 4, 4, 2, 0, 0, 0,
-9, 7, 7, 5, 5, 7, 3, 2, 6, 4, 2, 2, 2, 2, 0, 0,
-9, 7, 5, 5, 3, 3, 3, 4, 4, 4, 4, 4, 2, 2, 0, 0,
-9, 7, 5, 5, 3, 5, 1, 4, 4, 6, 2, 2, 2, 0, 0, 0,
-9, 5, 3, 3, 3, 3, 3, 4, 2, 4, 2, 2, 2, 0, 0, 0,
-9, 5, 5, 3, 3, 3, 5, 4, 4, 4, 4, 2, 2, 0, 0, 0,
-9, 7, 5, 5, 5, 3, 3, 4, 2, 4, 4, 2, 0, 0, 0, 0,
-8, 7, 5, 5, 7, 3, 3, 2, 4, 4, 4, 2, 2, 2, 0, 0,
-9, 7, 5, 3, 5, 5, 3, 4, 4, 4, 4, 2, 2, 0, 0, 0,
-9, 5, 5, 5, 5, 3, 5, 4, 4, 6, 4, 2, 2, 2, 0, 0,
-9, 5, 3, 5, 5, 3, 1, 2, 2, 2, 4, 4, 2, 0, 0, 0,
-9, 7, 3, 5, 5, 5, 3, 4, 6, 4, 4, 2, 0, 0, 0, 0,
-9, 7, 5, 3, 5, 3, 3, 4, 4, 2, 4, 4, 2, 0, 0, 0,
-9, 7, 7, 5, 5, 5, 3, 2, 6, 2, 4, 4, 2, 0, 0, 0,
-9, 5, 5, 5, 5, 5, 5, 4, 4, 4, 2, 2, 2, 0, 0, 0,
-9, 5, 7, 3, 3, 5, 3, 4, 4, 4, 2, 2, 2, 2, 0, 0,
-9, 5, 3, 3, 3, 5, 3, 6, 4, 4, 2, 2, 2, 0, 0, 0,
-8, 7, 5, 5, 5, 5, 5, 2, 4, 4, 2, 2, 2, 0, 0, 0,
-9, 7, 5, 5, 5, 5, 3, 4, 4, 4, 4, 2, 2, 2, 0, 0,
-9, 7, 5, 5, 5, 5, 3, 2, 4, 6, 2, 2, 2, 0, 0, 0,
-9, 5, 5, 3, 5, 3, 5, 6, 4, 2, 2, 2, 0, 0, 0, 0,
-8, 3, 5, 5, 5, 3, 3, 4, 4, 2, 4, 2, 2, 0, 0, 0,
-9, 5, 3, 3, 3, 3, 3, 4, 2, 4, 2, 2, 2, 0, 0, 0,
-9, 7, 5, 5, 5, 5, 5, 4, 4, 4, 4, 2, 0, 0, 0, 0,
-7, 7, 5, 5, 3, 5, 1, 4, 4, 4, 4, 2, 0, 0, 0, 0,
-8, 7, 5, 5, 5, 5, 3, 6, 4, 6, 4, 2, 2, 0, 0, 0,
-9, 5, 5, 5, 5, 7, 1, 4, 6, 6, 2, 2, 2, 0, 0, 0,
-9, 7, 5, 7, 3, 5, 5, 2, 4, 2, 2, 4, 2, 2, 0, 0,
-9, 7, 5, 5, 5, 7, 5, 6, 2, 2, 6, 2, 2, 0, 0, 0,
-9, 5, 3, 5, 5, 5, 3, 4, 4, 4, 4, 2, 2, 0, 0, 0,
-8, 8, 5, 5, 5, 5, 3, 4, 4, 6, 4, 2, 2, 0, 0, 0,
-8, 7, 5, 5, 7, 3, 5, 4, 2, 6, 2, 2, 2, 0, 0, 0,
-9, 5, 3, 5, 3, 5, 3, 6, 4, 6, 4, 2, 2, 0, 0, 0,
-9, 5, 5, 5, 5, 3, 3, 4, 6, 4, 4, 2, 2, 2, 0, 0,
-9, 5, 3, 3, 3, 3, 5, 2, 2, 2, 2, 2, 2, 2, 0, 0,
-8, 5, 5, 5, 5, 5, 5, 4, 4, 4, 4, 4, 2, 0, 0, 0,
-8, 5, 5, 3, 5, 5, 3, 4, 4, 4, 6, 2, 2, 0, 0, 0,
-8, 7, 5, 5, 5, 5, 3, 4, 4, 4, 2, 2, 2, 2, 0, 0,
-8, 5, 5, 5, 3, 5, 1, 6, 4, 2, 4, 2, 2, 0, 0, 0,
-8, 7, 5, 5, 7, 5, 7, 6, 6, 4, 6, 2, 2, 0, 0, 0,
-9, 5, 5, 3, 3, 5, 5, 2, 2, 2, 4, 2, 2, 0, 0, 0,
-8, 5, 5, 5, 3, 5, 5, 4, 2, 4, 4, 2, 2, 0, 0, 0,
-8, 7, 5, 5, 5, 3, 5, 4, 4, 4, 4, 2, 2, 0, 0, 0,
-7, 7, 5, 5, 5, 5, 5, 2, 4, 2, 4, 2, 0, 0, 0, 0,
-9, 5, 5, 5, 3, 5, 5, 4, 2, 4, 2, 2, 2, 0, 0, 0,
-9, 5, 5, 5, 5, 5, 3, 4, 4, 4, 2, 2, 2, 0, 0, 0,
-9, 5, 5, 3, 3, 5, 1, 4, 4, 2, 2, 2, 2, 2, 0, 0,
-8, 5, 5, 3, 3, 3, 3, 2, 2, 4, 4, 2, 2, 0, 0, 0,
-8, 7, 7, 5, 5, 7, 5, 4, 6, 6, 4, 4, 2, 0, 0, 0,
-8, 7, 7, 5, 5, 7, 3, 6, 4, 4, 4, 2, 2, 0, 0, 0,
-8, 5, 5, 5, 3, 5, 5, 2, 2, 6, 4, 2, 0, 0, 0, 0,
-9, 5, 5, 5, 5, 5, 1, 6, 2, 4, 4, 2, 2, 2, 0, 0,
-8, 5, 7, 5, 3, 3, 3, 2, 2, 4, 2, 2, 2, 0, 0, 0,
-8, 5, 5, 5, 3, 3, 3, 4, 2, 6, 4, 2, 0, 0, 0, 0,
-8, 5, 5, 5, 5, 5, 3, 4, 4, 4, 4, 4, 2, 0, 0, 0,
-8, 5, 5, 5, 5, 3, 7, 4, 4, 4, 4, 2, 2, 0, 0, 0,
-9, 7, 5, 3, 5, 3, 3, 4, 6, 2, 4, 2, 2, 0, 0, 0,
-8, 5, 7, 3, 5, 7, 5, 6, 6, 4, 4, 2, 2, 2, 0, 0,
-8, 5, 5, 3, 3, 3, 3, 6, 2, 4, 2, 2, 2, 0, 0, 0,
-8, 5, 5, 3, 5, 5, 5, 4, 2, 4, 4, 2, 0, 0, 0, 0,
-8, 5, 5, 5, 5, 5, 5, 4, 4, 4, 4, 2, 2, 0, 0, 0,
-7, 5, 5, 5, 5, 5, 3, 4, 6, 4, 4, 4, 0, 0, 0, 0,
-9, 5, 7, 5, 5, 5, 3, 4, 6, 4, 2, 2, 0, 0, 0, 0,
-9, 5, 5, 5, 5, 5, 1, 4, 4, 6, 4, 2, 2, 2, 0, 0,
-8, 5, 5, 5, 1, 3, 5, 2, 4, 2, 2, 2, 2, 2, 0, 0,
-8, 3, 5, 3, 3, 5, 3, 4, 4, 2, 2, 2, 2, 0, 0, 0,
-8, 5, 5, 5, 3, 5, 5, 4, 4, 4, 4, 2, 2, 0, 0, 0,
-8, 5, 3, 5, 5, 3, 3, 4, 4, 4, 2, 2, 2, 0, 0, 0,
-8, 7, 5, 5, 5, 5, 3, 4, 4, 2, 2, 2, 2, 0, 0, 0,
-8, 5, 5, 3, 5, 3, 5, 4, 4, 4, 4, 2, 2, 2, 0, 0,
-9, 7, 5, 5, 5, 5, 3, 4, 2, 4, 4, 2, 2, 2, 0, 0,
-8, 5, 3, 5, 3, 3, 3, 4, 4, 2, 2, 2, 2, 2, 0, 0,
-8, 5, 5, 5, 5, 5, 5, 4, 2, 4, 2, 2, 2, 0, 0, 0,
-7, 7, 7, 5, 5, 7, 3, 6, 4, 6, 4, 4, 0, 0, 0, 0,
-7, 7, 7, 5, 5, 7, 3, 6, 4, 6, 4, 2, 0, 0, 0, 0,
-8, 5, 5, 5, 5, 5, 3, 4, 4, 4, 2, 4, 2, 0, 0, 0,
-9, 5, 5, 5, 3, 5, 3, 4, 2, 4, 2, 4, 2, 0, 0, 0,
-8, 5, 5, 5, 3, 3, 1, 2, 4, 2, 2, 2, 2, 2, 0, 0,
-9, 5, 5, 3, 5, 5, 5, 4, 2, 4, 4, 2, 0, 0, 0, 0,
-8, 7, 5, 5, 5, 5, 5, 4, 4, 4, 4, 2, 2, 0, 0, 0,
-8, 7, 5, 7, 5, 5, 3, 6, 2, 4, 4, 2, 2, 0, 0, 0,
-8, 5, 5, 5, 5, 5, 3, 4, 4, 4, 4, 2, 2, 0, 0, 0,
-9, 5, 5, 5, 5, 5, 3, 4, 2, 4, 4, 2, 2, 0, 0, 0,
-9, 5, 5, 5, 5, 3, 5, 2, 4, 2, 2, 2, 2, 0, 0, 0,
-9, 5, 5, 5, 3, 3, 3, 2, 2, 4, 2, 2, 2, 2, 0, 0,
-9, 5, 5, 5, 5, 5, 3, 2, 2, 4, 4, 2, 2, 0, 0, 0,
-8, 7, 7, 5, 5, 5, 3, 4, 2, 4, 4, 2, 0, 0, 0, 0,
-8, 5, 7, 7, 5, 5, 3, 6, 6, 4, 4, 4, 2, 0, 0, 0,
-9, 5, 5, 7, 3, 5, 1, 6, 4, 4, 4, 2, 2, 2, 0, 0,
-9, 5, 5, 7, 5, 5, 1, 4, 2, 4, 4, 2, 0, 0, 0, 0,
-9, 7, 5, 3, 3, 1, 1, 4, 4, 2, 4, 2, 2, 2, 0, 0,
-8, 3, 5, 5, 3, 5, 3, 4, 2, 2, 2, 2, 2, 2, 0, 0,
-8, 5, 5, 5, 3, 3, 5, 4, 2, 4, 4, 2, 0, 0, 0, 0,
-7, 7, 7, 5, 5, 5, 5, 4, 2, 4, 4, 2, 2, 0, 0, 0,
-8, 5, 5, 7, 3, 5, 3, 4, 4, 4, 4, 2, 0, 0, 0, 0,
-9, 3, 5, 7, 5, 3, 3, 4, 2, 2, 4, 4, 2, 2, 0, 0,
-8, 5, 5, 5, 5, 5, 3, 4, 4, 2, 2, 4, 2, 0, 0, 0,
-9, 3, 5, 5, 3, 3, 5, 4, 4, 2, 2, 4, 2, 2, 0, 0,
-8, 5, 3, 5, 1, 3, 5, 4, 2, 4, 4, 2, 2, 2, 0, 0,
-8, 5, 5, 5, 5, 5, 5, 4, 2, 4, 4, 2, 0, 0, 0, 0,
-8, 5, 5, 5, 3, 5, 5, 4, 6, 2, 4, 4, 0, 0, 0, 0,
-8, 5, 5, 5, 5, 3, 3, 4, 4, 2, 4, 4, 2, 2, 0, 0,
-9, 5, 5, 5, 3, 5, 3, 2, 6, 6, 2, 2, 2, 0, 0, 0,
-9, 5, 3, 3, 3, 3, 5, 4, 2, 4, 2, 2, 2, 0, 0, 0,
-9, 5, 3, 3, 3, 5, 3, 4, 4, 4, 2, 2, 2, 2, 0, 0,
-9, 3, 3, 1, 3, 3, 3, 2, 4, 4, 2, 4, 2, 2, 0, 0,
-8, 5, 5, 5, 3, 3, 3, 4, 2, 2, 4, 2, 2, 0, 0, 0,
-9, 7, 7, 5, 5, 5, 3, 4, 4, 2, 4, 4, 2, 0, 0, 0,
-8, 5, 5, 5, 5, 5, 5, 4, 4, 4, 2, 2, 2, 0, 0, 0,
-9, 5, 5, 5, 5, 5, 3, 6, 6, 4, 4, 2, 2, 2, 0, 0,
-9, 5, 5, 7, 5, 5, 3, 4, 4, 2, 4, 2, 2, 0, 0, 0,
-9, 5, 3, 5, 3, 3, 3, 2, 2, 2, 4, 2, 0, 0, 0, 0,
-9, 7, 3, 5, 3, 3, 3, 2, 2, 2, 2, 2, 2, 2, 0, 0,
-9, 7, 5, 5, 3, 5, 3, 4, 4, 4, 4, 4, 2, 0, 0, 0,
-8, 7, 5, 5, 5, 3, 5, 4, 4, 4, 6, 2, 2, 0, 0, 0,
-8, 7, 5, 5, 5, 5, 5, 4, 6, 2, 4, 2, 2, 2, 0, 0,
-9, 5, 5, 7, 5, 3, 3, 6, 6, 4, 2, 2, 0, 0, 0, 0,
-8, 5, 3, 7, 3, 3, 3, 6, 4, 4, 4, 2, 2, 0, 0, 0,
-9, 5, 3, 3, 3, 3, 3, 6, 4, 4, 2, 2, 2, 0, 0, 0,
-9, 5, 5, 5, 5, 3, 5, 4, 2, 4, 2, 2, 2, 0, 0, 0,
-9, 5, 5, 3, 5, 5, 5, 4, 4, 4, 4, 2, 2, 0, 0, 0,
-8, 7, 5, 7, 5, 5, 3, 4, 2, 6, 4, 4, 2, 0, 0, 0,
-9, 7, 5, 5, 7, 3, 5, 4, 4, 2, 2, 2, 2, 0, 0, 0,
-9, 7, 7, 5, 5, 5, 3, 6, 6, 6, 4, 4, 2, 0, 0, 0,
-9, 5, 5, 7, 5, 5, 3, 6, 4, 2, 2, 2, 2, 2, 0, 0,
-9, 5, 5, 3, 3, 5, 5, 4, 4, 2, 4, 2, 2, 0, 0, 0,
-9, 3, 5, 3, 5, 3, 5, 4, 2, 4, 2, 2, 2, 2, 0, 0,
-9, 5, 3, 3, 3, 5, 3, 4, 2, 4, 4, 2, 0, 0, 0, 0,
-8, 7, 5, 5, 5, 5, 5, 4, 4, 4, 4, 2, 2, 0, 0, 0,
-8, 7, 5, 5, 5, 5, 5, 2, 4, 2, 4, 4, 0, 0, 0, 0,
-8, 7, 5, 5, 7, 5, 3, 6, 4, 4, 4, 2, 2, 0, 0, 0,
-9, 5, 5, 5, 5, 5, 3, 2, 6, 2, 4, 2, 0, 0, 0, 0,
-9, 5, 7, 5, 5, 5, 3, 4, 4, 2, 2, 2, 2, 0, 0, 0,
-9, 7, 5, 3, 3, 3, 3, 2, 2, 4, 2, 2, 2, 0, 0, 0,
-9, 7, 7, 3, 3, 5, 3, 4, 4, 2, 2, 2, 2, 2, 0, 0,
-9, 5, 5, 5, 3, 3, 3, 2, 2, 4, 4, 2, 0, 0, 0, 0,
-8, 7, 5, 5, 5, 3, 5, 4, 4, 4, 4, 2, 2, 0, 0, 0,
-8, 7, 5, 5, 7, 5, 5, 6, 4, 4, 6, 2, 2, 0, 0, 0,
-9, 7, 7, 5, 3, 5, 7, 2, 4, 6, 6, 2, 0, 0, 0, 0,
-9, 5, 7, 7, 3, 7, 3, 4, 4, 2, 4, 2, 0, 0, 0, 0,
-9, 5, 5, 3, 3, 3, 3, 4, 2, 4, 4, 2, 2, 2, 0, 0,
-9, 7, 5, 3, 5, 1, 1, 4, 4, 2, 4, 4, 2, 0, 0, 0,
-9, 7, 5, 5, 5, 5, 5, 4, 4, 2, 4, 2, 0, 0, 0, 0,
-9, 5, 5, 5, 3, 3, 5, 4, 4, 4, 4, 2, 2, 0, 0, 0,
-8, 7, 5, 5, 5, 5, 3, 6, 2, 6, 2, 2, 0, 0, 0, 0,
-8, 7, 7, 5, 3, 7, 5, 4, 4, 4, 4, 2, 2, 0, 0, 0,
-9, 7, 7, 7, 5, 5, 5, 4, 2, 4, 4, 2, 2, 2, 0, 0,
-9, 7, 7, 5, 3, 3, 5, 6, 4, 4, 2, 2, 2, 0, 0, 0,
-9, 7, 3, 3, 3, 3, 5, 2, 2, 4, 2, 2, 2, 2, 0, 0,
-9, 5, 3, 5, 5, 3, 3, 4, 2, 2, 4, 2, 2, 0, 0, 0,
-9, 5, 5, 5, 5, 3, 5, 4, 4, 2, 4, 2, 0, 0, 0, 0,
-9, 7, 5, 5, 3, 3, 3, 4, 4, 4, 4, 2, 0, 0, 0, 0,
-8, 5, 5, 7, 5, 5, 3, 4, 4, 4, 4, 2, 2, 0, 0, 0,
-9, 7, 5, 5, 5, 5, 3, 4, 2, 4, 4, 2, 2, 0, 0, 0,
-9, 5, 7, 5, 5, 3, 5, 4, 4, 4, 4, 2, 0, 0, 0, 0,
-9, 5, 5, 5, 3, 3, 5, 4, 4, 4, 4, 2, 2, 0, 0, 0,
-9, 3, 5, 3, 3, 3, 3, 4, 2, 2, 2, 2, 2, 0, 0, 0,
-9, 5, 3, 5, 3, 3, 3, 4, 2, 4, 2, 2, 2, 0, 0, 0,
-9, 5, 3, 5, 3, 1, 3, 4, 4, 4, 2, 2, 2, 2, 0, 0,
-9, 5, 5, 5, 5, 5, 5, 4, 2, 4, 4, 2, 0, 0, 0, 0,
-8, 7, 5, 5, 5, 5, 3, 4, 4, 4, 4, 2, 0, 0, 0, 0,
-8, 5, 7, 5, 5, 5, 3, 4, 6, 6, 2, 2, 2, 0, 0, 0,
-9, 5, 5, 5, 3, 5, 3, 6, 4, 4, 2, 4, 2, 2, 0, 0,
-9, 7, 5, 5, 3, 5, 3, 4, 4, 4, 4, 2, 2, 0, 0, 0,
-9, 5, 3, 3, 3, 3, 3, 6, 4, 4, 4, 2, 2, 2, 0, 0,
-9, 3, 3, 5, 3, 3, 3, 2, 4, 4, 2, 2, 0, 2, 0, 0,
-9, 3, 3, 5, 3, 5, 3, 4, 4, 2, 4, 2, 2, 0, 0, 0,
-9, 5, 5, 3, 5, 3, 5, 4, 4, 4, 4, 2, 2, 0, 0, 0,
-8, 7, 5, 7, 5, 5, 3, 4, 4, 6, 2, 4, 0, 2, 0, 0,
-8, 5, 5, 5, 5, 5, 3, 4, 4, 4, 4, 2, 2, 0, 0, 0,
-9, 7, 5, 5, 5, 3, 3, 6, 2, 4, 2, 4, 2, 2, 0, 0,
-9, 3, 3, 5, 3, 3, 3, 4, 2, 4, 2, 2, 2, 0, 0, 0,
-9, 5, 5, 5, 3, 3, 5, 2, 4, 2, 2, 2, 2, 2, 0, 0,
-9, 5, 3, 7, 3, 3, 5, 2, 4, 4, 2, 2, 2, 2, 0, 0,
-9, 5, 5, 5, 5, 3, 3, 4, 2, 2, 2, 2, 2, 2, 0, 0,
-9, 7, 5, 5, 5, 5, 1, 4, 4, 4, 4, 2, 2, 0, 0, 0,
-9, 7, 5, 5, 5, 5, 5, 4, 4, 4, 4, 2, 2, 0, 0, 0,
-8, 7, 5, 5, 5, 5, 5, 6, 2, 6, 4, 2, 2, 0, 0, 0,
-8, 5, 7, 5, 5, 3, 5, 2, 4, 4, 4, 2, 2, 0, 0, 0,
-9, 5, 5, 5, 5, 3, 3, 6, 4, 4, 4, 2, 2, 0, 0, 0,
-9, 7, 3, 3, 3, 3, 3, 4, 4, 2, 4, 2, 2, 0, 0, 0,
-9, 5, 3, 5, 3, 5, 3, 4, 2, 2, 2, 2, 2, 2, 0, 0,
-9, 5, 3, 3, 3, 1, 3, 2, 4, 4, 4, 2, 2, 0, 0, 0,
-9, 5, 3, 5, 5, 3, 5, 2, 2, 4, 2, 2, 2, 0, 0, 0,
-9, 5, 5, 3, 5, 5, 5, 4, 4, 4, 4, 2, 2, 0, 0, 0,
-9, 5, 5, 5, 5, 5, 5, 4, 4, 4, 4, 4, 2, 0, 0, 0,
-8, 5, 5, 7, 5, 5, 3, 4, 6, 4, 4, 2, 2, 2, 0, 0,
-8, 5, 7, 5, 5, 5, 5, 4, 4, 6, 4, 2, 2, 2, 0, 0,
-9, 5, 5, 5, 5, 5, 3, 4, 4, 4, 4, 2, 2, 0, 0, 0,
-9, 5, 3, 3, 3, 3, 5, 6, 2, 2, 4, 4, 2, 0, 0, 0,
-8, 3, 5, 3, 5, 1, 1, 4, 2, 2, 2, 4, 2, 0, 0, 0,
-9, 5, 5, 3, 1, 5, 1, 4, 2, 4, 2, 2, 2, 2, 0, 0,
-9, 5, 3, 3, 3, 3, 1, 2, 4, 4, 2, 2, 2, 2, 0, 0,
-9, 5, 5, 5, 3, 3, 3, 4, 6, 4, 4, 2, 0, 0, 0, 0,
-8, 5, 5, 5, 5, 5, 5, 4, 4, 4, 4, 4, 2, 0, 0, 0,
-8, 7, 5, 5, 5, 5, 3, 4, 4, 4, 2, 2, 0, 0, 0, 0,
-8, 7, 5, 5, 5, 5, 3, 4, 4, 6, 2, 2, 0, 0, 0, 0,
-9, 5, 7, 7, 5, 7, 3, 6, 2, 4, 4, 2, 2, 0, 0, 0,
-9, 5, 5, 5, 5, 5, 5, 4, 6, 4, 4, 2, 2, 2, 0, 0,
-9, 5, 5, 3, 5, 1, 3, 4, 4, 2, 6, 2, 2, 0, 0, 0,
-9, 5, 5, 3, 3, 3, 3, 2, 4, 4, 2, 2, 0, 2, 0, 0,
-9, 5, 3, 3, 5, 3, 3, 4, 4, 2, 4, 6, 2, 0, 0, 0,
-9, 3, 5, 3, 5, 5, 3, 4, 4, 2, 2, 2, 2, 0, 0, 0,
-9, 5, 5, 3, 5, 3, 3, 4, 4, 4, 4, 2, 0, 0, 0, 0,
-7, 5, 5, 5, 5, 5, 5, 4, 4, 6, 6, 2, 2, 0, 0, 0,
-7, 7, 5, 5, 5, 3, 3, 4, 4, 4, 6, 2, 0, 0, 0, 0,
-8, 5, 5, 5, 5, 5, 3, 4, 6, 6, 4, 2, 0, 0, 0, 0,
-9, 5, 5, 3, 5, 3, 3, 2, 6, 4, 4, 2, 2, 2, 0, 0,
-8, 3, 5, 1, 3, 1, 3, 2, 4, 4, 4, 2, 0, 2, 0, 0,
-8, 5, 5, 3, 3, 3, 5, 2, 2, 4, 2, 4, 2, 0, 0, 0,
-9, 5, 5, 3, 3, 3, 3, 4, 4, 4, 2, 2, 2, 2, 0, 0,
-9, 5, 5, 3, 5, 1, 5, 4, 2, 2, 4, 2, 2, 0, 0, 0,
-9, 3, 7, 3, 3, 3, 3, 2, 4, 2, 2, 2, 0, 0, 0, 0,
-7, 5, 3, 5, 5, 5, 5, 4, 4, 4, 4, 2, 2, 0, 0, 0,
-8, 7, 5, 3, 5, 5, 5, 6, 4, 4, 4, 2, 2, 0, 0, 0,
-8, 5, 7, 3, 5, 5, 3, 6, 4, 2, 4, 2, 0, 0, 0, 0,
-9, 7, 5, 3, 5, 5, 5, 2, 4, 2, 4, 2, 0, 0, 0, 0,
-9, 5, 5, 3, 7, 3, 3, 6, 4, 6, 4, 2, 2, 2, 0, 0,
-9, 7, 5, 3, 3, 5, 3, 2, 4, 2, 2, 2, 2, 2, 0, 0,
-8, 3, 5, 3, 1, 3, 3, 2, 4, 2, 2, 2, 2, 0, 0, 0,
-9, 7, 5, 3, 3, 3, 3, 4, 2, 2, 2, 2, 2, 0, 0, 0,
-9, 5, 3, 1, 3, 5, 3, 4, 2, 2, 2, 6, 2, 0, 0, 0,
-9, 3, 5, 1, 3, 5, 5, 4, 4, 2, 2, 2, 2, 0, 0, 0,
-8, 5, 5, 5, 5, 5, 5, 4, 4, 4, 4, 2, 2, 0, 0, 0,
-7, 7, 5, 5, 5, 3, 3, 6, 4, 4, 4, 2, 0, 0, 0, 0,
-8, 5, 3, 5, 3, 3, 5, 2, 4, 4, 2, 2, 2, 0, 0, 0,
-8, 7, 3, 5, 5, 3, 3, 4, 4, 6, 4, 2, 2, 0, 0, 0,
-9, 5, 7, 5, 5, 3, 3, 4, 4, 2, 4, 2, 2, 0, 0, 0,
-8, 5, 5, 3, 3, 5, 3, 2, 4, 2, 4, 2, 2, 0, 0, 0,
-8, 5, 5, 5, 3, 5, 1, 4, 4, 6, 4, 2, 2, 0, 0, 0,
-9, 5, 3, 3, 3, 3, 3, 2, 2, 4, 2, 2, 2, 0, 0, 0,
-9, 7, 5, 1, 3, 5, 3, 2, 4, 4, 2, 2, 2, 0, 0, 0,
-9, 5, 3, 3, 3, 3, 1, 4, 4, 2, 2, 2, 2, 2, 0, 0,
-7, 7, 3, 5, 5, 5, 5, 4, 4, 4, 4, 2, 2, 0, 0, 0,
-7, 7, 5, 3, 5, 5, 3, 6, 6, 6, 4, 4, 2, 0, 0, 0,
-8, 7, 5, 5, 5, 5, 5, 6, 4, 2, 4, 2, 2, 2, 0, 0,
-9, 7, 5, 5, 5, 5, 3, 4, 2, 4, 4, 2, 2, 0, 0, 0,
-9, 7, 5, 5, 5, 5, 1, 4, 6, 4, 4, 4, 2, 0, 0, 0,
-8, 5, 5, 3, 3, 3, 5, 4, 2, 2, 4, 4, 2, 0, 0, 0,
-8, 5, 5, 3, 3, 5, 1, 4, 2, 2, 2, 2, 2, 2, 0, 0,
-9, 3, 3, 3, 3, 1, 3, 4, 2, 2, 2, 2, 2, 2, 0, 0,
-9, 3, 3, 3, 5, 3, 1, 4, 4, 4, 2, 2, 2, 2, 0, 0,
-9, 5, 5, 5, 5, 3, 3, 4, 2, 2, 2, 2, 2, 2, 0, 0,
-7, 5, 5, 7, 3, 5, 3, 4, 4, 4, 4, 2, 2, 0, 0, 0,
-8, 7, 5, 5, 5, 5, 3, 6, 4, 4, 2, 2, 0, 0, 0, 0,
-8, 7, 5, 5, 5, 5, 3, 6, 4, 2, 4, 2, 2, 2, 0, 0,
-9, 7, 5, 7, 5, 5, 3, 6, 4, 4, 2, 2, 2, 0, 0, 0,
-9, 5, 5, 3, 3, 1, 3, 4, 2, 2, 2, 2, 2, 2, 0, 0,
-9, 3, 5, 3, 3, 3, 3, 2, 4, 2, 2, 2, 2, 2, 0, 0,
-9, 3, 5, 3, 5, 3, 3, 4, 4, 4, 2, 2, 2, 2, 0, 0,
-8, 5, 5, 3, 3, 1, 3, 4, 4, 2, 2, 4, 2, 2, 0, 0,
-9, 3, 5, 5, 3, 3, 3, 4, 2, 4, 2, 2, 2, 0, 0, 0,
-9, 3, 5, 3, 3, 3, 3, 4, 4, 6, 4, 2, 2, 0, 0, 0,
-8, 5, 5, 5, 5, 5, 5, 2, 4, 6, 4, 4, 2, 0, 0, 0,
-8, 7, 5, 5, 5, 3, 5, 4, 4, 4, 4, 2, 2, 0, 0, 0,
-8, 5, 5, 5, 5, 5, 5, 4, 4, 4, 2, 2, 2, 2, 0, 0,
-9, 5, 5, 5, 3, 5, 5, 4, 4, 4, 4, 2, 2, 2, 0, 0,
-9, 5, 7, 7, 5, 3, 3, 4, 4, 4, 2, 2, 2, 2, 0, 0,
-9, 5, 5, 3, 3, 3, 3, 4, 2, 2, 2, 2, 2, 2, 0, 0,
-9, 3, 5, 3, 3, 5, 1, 4, 4, 4, 4, 2, 2, 2, 0, 0,
-9, 3, 3, 3, 3, 1, 5, 2, 4, 2, 2, 4, 2, 0, 0, 0,
-9, 5, 5, 3, 3, 3, 1, 4, 2, 2, 2, 2, 2, 2, 0, 0,
-9, 5, 5, 3, 5, 5, 5, 4, 2, 6, 4, 2, 2, 0, 0, 0,
-8, 7, 5, 5, 5, 5, 5, 2, 4, 4, 4, 2, 2, 0, 0, 0,
-7, 7, 5, 5, 5, 5, 3, 6, 6, 4, 6, 2, 2, 0, 0, 0,
-9, 7, 7, 5, 5, 7, 3, 6, 6, 4, 4, 4, 2, 2, 0, 0,
-9, 5, 5, 5, 5, 5, 5, 4, 4, 4, 2, 4, 2, 0, 0, 0,
-9, 5, 5, 3, 3, 3, 3, 4, 2, 4, 6, 2, 2, 2, 0, 0,
-9, 5, 5, 5, 3, 1, 3, 2, 2, 4, 2, 4, 2, 2, 0, 0,
-9, 5, 3, 3, 5, 5, 5, 2, 4, 2, 4, 2, 2, 2, 0, 0,
-9, 3, 7, 3, 3, 5, 3, 2, 4, 4, 4, 2, 2, 0, 0, 0,
-9, 3, 5, 5, 3, 3, 3, 4, 4, 4, 2, 2, 2, 0, 0, 0,
-9, 5, 3, 3, 5, 5, 3, 4, 2, 4, 4, 2, 2, 0, 0, 0,
-8, 7, 5, 5, 3, 5, 5, 4, 4, 4, 4, 2, 2, 0, 0, 0,
-8, 7, 5, 5, 3, 5, 3, 4, 6, 4, 4, 2, 0, 0, 0, 0,
-9, 7, 5, 5, 5, 5, 3, 6, 4, 4, 4, 2, 2, 2, 0, 0,
-9, 5, 7, 5, 5, 5, 3, 4, 4, 6, 2, 2, 2, 0, 0, 0,
-9, 5, 3, 3, 3, 3, 3, 4, 4, 4, 2, 2, 2, 2, 0, 0,
-9, 5, 5, 5, 5, 3, 5, 2, 4, 2, 2, 2, 2, 0, 0, 0,
-9, 3, 7, 3, 3, 5, 3, 4, 2, 4, 2, 2, 2, 2, 0, 0,
-9, 3, 5, 5, 3, 3, 1, 4, 4, 4, 2, 0, 2, 2, 0, 0,
-9, 5, 3, 3, 3, 3, 5, 4, 4, 2, 4, 2, 2, 0, 0, 0,
-9, 5, 5, 5, 5, 5, 5, 4, 4, 4, 4, 2, 2, 0, 0, 0,
-8, 5, 5, 5, 5, 5, 3, 4, 4, 4, 4, 2, 2, 0, 0, 0,
-8, 7, 7, 5, 5, 5, 3, 4, 4, 6, 4, 2, 2, 0, 0, 0,
-8, 7, 7, 5, 5, 7, 5, 2, 4, 4, 2, 2, 2, 0, 0, 0,
-9, 7, 5, 5, 3, 5, 3, 4, 4, 2, 4, 2, 2, 0, 0, 0,
-9, 3, 3, 1, 5, 3, 3, 4, 2, 4, 4, 2, 2, 0, 0, 0,
-9, 5, 5, 1, 3, 3, 5, 2, 4, 4, 4, 2, 2, 0, 0, 0,
-9, 5, 5, 3, 3, 1, 3, 4, 4, 2, 2, 2, 0, 0, 0, 0,
-9, 5, 5, 1, 5, 5, 3, 4, 4, 4, 2, 2, 2, 2, 0, 0,
-9, 5, 7, 3, 3, 5, 5, 4, 4, 2, 2, 2, 2, 0, 0, 0,
-9, 5, 3, 3, 5, 5, 5, 2, 2, 4, 4, 2, 2, 0, 0, 0,
-8, 5, 5, 7, 5, 5, 3, 4, 4, 4, 4, 4, 2, 0, 0, 0,
-8, 7, 7, 5, 5, 5, 3, 6, 4, 2, 2, 2, 2, 2, 0, 0,
-9, 5, 7, 5, 3, 5, 3, 4, 2, 4, 4, 2, 2, 0, 0, 0,
-9, 5, 7, 5, 5, 5, 5, 6, 6, 4, 4, 4, 2, 0, 0, 0,
-9, 3, 3, 5, 3, 5, 3, 4, 4, 4, 2, 2, 2, 0, 0, 0,
-9, 3, 3, 3, 5, 3, 3, 4, 2, 6, 4, 2, 2, 2, 0, 0,
-9, 5, 5, 3, 3, 3, 3, 4, 4, 2, 2, 2, 2, 0, 0, 0,
-9, 5, 5, 3, 3, 3, 3, 4, 2, 2, 4, 2, 0, 0, 0, 0,
-9, 3, 5, 3, 5, 3, 3, 4, 2, 4, 2, 2, 2, 0, 0, 0,
-9, 5, 3, 3, 5, 5, 3, 2, 2, 4, 4, 2, 0, 0, 0, 0,
-8, 7, 5, 5, 5, 5, 5, 4, 6, 6, 4, 2, 2, 0, 0, 0,
-8, 7, 7, 5, 5, 3, 5, 4, 6, 4, 4, 2, 2, 0, 0, 0,
-8, 5, 7, 5, 7, 5, 5, 4, 2, 4, 2, 4, 2, 0, 0, 0,
-9, 3, 7, 3, 5, 3, 3, 4, 4, 4, 4, 2, 2, 0, 0, 0,
-9, 3, 5, 5, 3, 3, 1, 4, 6, 2, 4, 2, 2, 2, 0, 0,
-9, 3, 5, 3, 3, 3, 5, 4, 2, 4, 4, 2, 2, 0, 0, 0,
-9, 3, 5, 3, 3, 3, 3, 4, 4, 2, 2, 2, 2, 0, 0, 0,
-9, 5, 5, 3, 3, 3, 3, 6, 4, 2, 2, 2, 2, 2, 0, 0,
-9, 3, 5, 3, 3, 3, 3, 4, 4, 2, 2, 2, 2, 0, 0, 0,
-9, 5, 3, 5, 5, 3, 5, 2, 4, 4, 4, 2, 0, 0, 0, 0,
-8, 7, 7, 7, 5, 5, 5, 4, 2, 4, 6, 2, 2, 0, 0, 0,
-8, 5, 5, 5, 5, 5, 5, 6, 6, 4, 6, 4, 2, 0, 0, 0,
-9, 5, 7, 5, 3, 5, 3, 4, 4, 4, 4, 2, 0, 0, 0, 0,
-9, 5, 7, 5, 5, 5, 3, 4, 4, 2, 2, 2, 2, 0, 0, 0,
-8, 1, 5, 3, 3, 5, 1, 2, 2, 4, 4, 2, 2, 0, 0, 0,
-9, 5, 5, 3, 5, 3, 5, 4, 4, 2, 4, 2, 0, 0, 0, 0,
-9, 5, 5, 5, 5, 5, 5, 4, 4, 4, 4, 2, 2, 0, 0, 0,
-9, 5, 7, 3, 5, 5, 3, 6, 2, 4, 2, 2, 4, 0, 0, 0,
-9, 7, 7, 5, 5, 5, 3, 4, 6, 6, 4, 2, 2, 0, 0, 0,
-9, 3, 5, 5, 3, 7, 3, 4, 4, 4, 4, 2, 0, 0, 0, 0,
-9, 5, 5, 5, 5, 5, 5, 4, 4, 2, 4, 2, 2, 0, 0, 0,
-9, 5, 5, 5, 5, 5, 3, 4, 4, 2, 2, 2, 2, 0, 0, 0,
-9, 5, 7, 5, 5, 3, 3, 4, 6, 4, 4, 4, 2, 0, 0, 0,
-9, 3, 5, 5, 5, 5, 3, 4, 4, 4, 2, 2, 2, 2, 0, 0,
-9, 3, 7, 5, 5, 5, 5, 4, 6, 4, 4, 2, 2, 0, 0, 0,
-9, 5, 5, 5, 5, 5, 5, 4, 4, 6, 2, 2, 2, 0, 0, 0,
-9, 5, 5, 5, 5, 5, 3, 6, 4, 2, 4, 4, 2, 2, 0, 0,
-9, 5, 3, 3, 1, 3, 3, 2, 2, 4, 4, 2, 2, 2, 0, 0,
-9, 5, 3, 5, 3, 3, 3, 2, 2, 2, 2, 2, 2, 2, 0, 0,
-9, 5, 3, 3, 3, 5, 3, 2, 4, 2, 4, 2, 2, 0, 0, 0,
-9, 5, 3, 5, 5, 3, 1, 4, 4, 4, 4, 2, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 5, 5, 4, 4, 4, 4, 2, 0, 0, 0, 0,
-8, 5, 5, 5, 5, 5, 5, 4, 4, 4, 2, 2, 2, 2, 0, 0,
-9, 5, 7, 5, 5, 5, 5, 4, 4, 6, 4, 2, 2, 0, 0, 0,
-8, 7, 7, 5, 7, 3, 5, 2, 2, 6, 2, 2, 2, 0, 0, 0,
-9, 7, 5, 3, 5, 5, 5, 4, 4, 4, 4, 2, 2, 0, 0, 0,
-8, 7, 5, 5, 5, 5, 3, 4, 4, 6, 4, 4, 0, 0, 0, 0,
-8, 7, 5, 5, 7, 5, 3, 4, 6, 2, 4, 6, 2, 0, 0, 0,
-8, 7, 5, 3, 5, 5, 3, 4, 4, 6, 4, 2, 2, 0, 0, 0,
-9, 5, 7, 7, 5, 5, 5, 6, 4, 4, 4, 2, 2, 0, 0, 0,
-8, 5, 5, 5, 5, 5, 3, 4, 2, 4, 4, 2, 2, 0, 0, 0,
-7, 5, 7, 5, 5, 5, 3, 6, 6, 6, 4, 2, 2, 0, 0, 0,
-8, 5, 5, 5, 7, 3, 5, 4, 6, 4, 4, 2, 2, 2, 0, 0,
-9, 5, 5, 5, 5, 3, 5, 6, 2, 6, 4, 2, 2, 0, 0, 0,
-9, 5, 5, 5, 5, 5, 3, 4, 4, 6, 4, 4, 2, 0, 0, 0,
-9, 5, 5, 3, 7, 5, 5, 4, 2, 4, 4, 2, 2, 0, 0, 0,
-8, 7, 5, 3, 7, 3, 3, 4, 4, 4, 4, 4, 2, 0, 0, 0,
-9, 8, 5, 5, 7, 5, 3, 2, 6, 6, 4, 2, 2, 0, 0, 0,
-9, 7, 5, 5, 5, 3, 5, 2, 2, 4, 4, 2, 2, 2, 0, 0,
-9, 5, 3, 3, 5, 5, 5, 4, 2, 4, 4, 2, 2, 0, 0, 0,
-8, 5, 5, 5, 5, 5, 5, 4, 4, 4, 4, 2, 0, 0, 0, 0,
-8, 7, 5, 3, 5, 5, 5, 4, 4, 6, 4, 2, 0, 0, 0, 0,
-8, 7, 7, 5, 7, 3, 5, 4, 6, 4, 2, 2, 2, 2, 0, 0,
-9, 7, 7, 5, 5, 3, 5, 4, 6, 6, 2, 2, 2, 0, 0, 0,
-9, 5, 5, 3, 5, 3, 3, 4, 2, 4, 4, 2, 2, 0, 0, 0,
-8, 5, 5, 5, 7, 5, 3, 4, 4, 6, 4, 2, 0, 0, 0, 0,
-8, 5, 7, 3, 5, 3, 3, 4, 6, 6, 4, 2, 0, 0, 0, 0,
-9, 5, 5, 7, 5, 5, 5, 4, 4, 4, 2, 2, 2, 2, 0, 0,
-9, 5, 5, 7, 7, 5, 5, 4, 2, 2, 4, 4, 2, 2, 0, 0,
-9, 5, 5, 3, 5, 5, 5, 2, 2, 4, 4, 2, 2, 0, 0, 0,
-8, 7, 7, 5, 5, 5, 5, 4, 6, 6, 4, 4, 0, 0, 0, 0,
-8, 7, 5, 5, 3, 5, 1, 4, 4, 4, 4, 2, 2, 0, 0, 0,
-8, 7, 5, 5, 5, 5, 5, 4, 4, 2, 4, 2, 2, 2, 0, 0,
-9, 7, 5, 5, 3, 5, 3, 4, 6, 2, 2, 2, 2, 0, 0, 0,
-8, 5, 5, 3, 5, 5, 3, 4, 4, 4, 4, 2, 2, 0, 0, 0,
-8, 5, 5, 3, 7, 5, 3, 6, 4, 4, 4, 2, 2, 0, 0, 0,
-8, 7, 7, 5, 5, 5, 3, 4, 4, 2, 4, 4, 2, 0, 0, 0,
-8, 7, 5, 5, 5, 5, 3, 2, 4, 4, 2, 2, 2, 2, 0, 0,
-9, 7, 7, 5, 3, 5, 3, 4, 4, 4, 4, 2, 2, 0, 0, 0,
-9, 5, 5, 5, 5, 5, 5, 4, 4, 4, 4, 2, 2, 0, 0, 0,
-8, 7, 7, 5, 5, 3, 3, 4, 6, 4, 4, 2, 2, 0, 0, 0,
-9, 8, 5, 3, 5, 3, 5, 4, 2, 4, 2, 2, 2, 0, 0, 0,
-8, 7, 5, 5, 5, 3, 5, 4, 4, 6, 2, 2, 2, 0, 0, 0,
-9, 5, 5, 3, 5, 5, 5, 4, 4, 4, 4, 2, 0, 0, 0, 0,
-8, 5, 5, 5, 5, 5, 3, 4, 4, 4, 4, 2, 2, 0, 0, 0,
-7, 5, 5, 3, 7, 3, 3, 4, 4, 4, 4, 2, 2, 2, 0, 0,
-8, 7, 5, 5, 5, 5, 3, 2, 2, 6, 2, 2, 2, 0, 0, 0,
-9, 7, 7, 5, 5, 5, 5, 4, 6, 2, 2, 2, 2, 2, 0, 0,
-9, 5, 5, 5, 5, 3, 3, 4, 4, 4, 4, 2, 2, 0, 0, 0,
-8, 7, 5, 3, 5, 5, 5, 2, 4, 4, 4, 4, 2, 0, 0, 0,
-8, 7, 5, 5, 5, 3, 3, 6, 4, 6, 2, 4, 0, 2, 0, 0,
-9, 5, 7, 5, 5, 5, 1, 4, 4, 2, 4, 2, 0, 0, 0, 0,
-9, 5, 5, 5, 5, 5, 3, 4, 4, 4, 4, 2, 2, 0, 0, 0,
-9, 5, 5, 5, 5, 3, 3, 2, 2, 4, 4, 2, 2, 0, 0, 0,
-8, 7, 5, 3, 5, 3, 3, 4, 2, 4, 4, 2, 0, 0, 0, 0,
-8, 7, 5, 5, 5, 5, 3, 4, 6, 4, 2, 2, 2, 2, 0, 0,
-9, 7, 5, 5, 5, 7, 3, 4, 6, 6, 6, 2, 2, 2, 0, 0,
-9, 3, 7, 5, 5, 7, 5, 4, 4, 4, 4, 2, 2, 0, 0, 0,
-8, 5, 5, 5, 5, 5, 3, 4, 4, 4, 4, 2, 2, 0, 0, 0,
-7, 5, 5, 5, 5, 5, 5, 4, 4, 6, 4, 2, 2, 0, 0, 0,
-8, 7, 5, 5, 5, 5, 5, 4, 4, 4, 2, 2, 2, 2, 0, 0,
-9, 7, 5, 5, 5, 3, 3, 4, 4, 4, 4, 2, 2, 0, 0, 0,
-8, 7, 5, 5, 5, 5, 5, 4, 4, 6, 4, 2, 2, 0, 0, 0,
-9, 5, 5, 7, 5, 5, 3, 4, 4, 4, 4, 4, 2, 0, 0, 0,
-8, 8, 5, 5, 5, 3, 3, 4, 4, 4, 4, 2, 0, 0, 0, 0,
-9, 7, 5, 5, 3, 5, 3, 4, 6, 4, 2, 4, 2, 2, 0, 0,
-9, 7, 5, 5, 7, 5, 5, 4, 4, 4, 4, 2, 2, 2, 0, 0,
-9, 5, 5, 3, 5, 5, 3, 4, 2, 4, 2, 2, 0, 0, 0, 0,
-9, 5, 5, 5, 5, 5, 3, 4, 4, 4, 4, 4, 2, 0, 0, 0,
-7, 7, 5, 5, 5, 5, 3, 6, 6, 4, 4, 2, 2, 0, 0, 0,
-8, 7, 5, 5, 5, 5, 3, 2, 4, 4, 2, 2, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 3, 3, 4, 4, 4, 2, 2, 2, 2, 0, 0,
-9, 5, 5, 5, 3, 5, 3, 4, 4, 2, 4, 2, 0, 0, 0, 0,
-8, 7, 5, 7, 5, 5, 3, 2, 4, 4, 4, 2, 2, 0, 0, 0,
-8, 7, 5, 5, 5, 5, 5, 6, 4, 4, 4, 4, 2, 0, 0, 0,
-9, 7, 5, 5, 3, 5, 3, 4, 6, 4, 4, 2, 2, 0, 0, 0,
-8, 7, 7, 5, 5, 5, 3, 4, 6, 6, 2, 2, 2, 0, 0, 0,
-9, 5, 7, 3, 5, 5, 3, 2, 2, 4, 4, 2, 0, 0, 0, 0,
-7, 5, 5, 5, 7, 5, 3, 6, 2, 4, 2, 4, 2, 0, 0, 0,
-8, 7, 7, 5, 5, 3, 3, 4, 4, 4, 4, 2, 2, 0, 0, 0,
-8, 7, 5, 5, 5, 3, 3, 4, 6, 4, 4, 4, 2, 2, 0, 0,
-8, 5, 5, 5, 5, 3, 3, 4, 4, 6, 4, 2, 2, 0, 0, 0,
-8, 5, 5, 3, 5, 5, 3, 4, 4, 4, 4, 2, 2, 0, 0, 0,
-7, 5, 5, 5, 5, 3, 3, 4, 4, 4, 4, 2, 2, 0, 0, 0,
-8, 7, 7, 5, 5, 5, 1, 4, 4, 2, 2, 2, 2, 2, 0, 0,
-8, 7, 5, 3, 5, 5, 5, 2, 4, 6, 4, 2, 2, 0, 0, 0,
-8, 5, 7, 5, 5, 5, 3, 4, 4, 2, 4, 2, 0, 2, 0, 0,
-8, 5, 5, 5, 5, 5, 5, 4, 2, 4, 4, 2, 2, 0, 0, 0,
-8, 7, 7, 5, 5, 3, 1, 4, 4, 6, 2, 2, 0, 0, 0, 0,
-8, 7, 5, 5, 7, 5, 5, 6, 4, 4, 2, 4, 2, 2, 0, 0,
-9, 5, 7, 5, 5, 5, 3, 4, 4, 6, 2, 4, 2, 0, 0, 0,
-9, 5, 5, 3, 5, 5, 5, 2, 4, 4, 4, 2, 2, 0, 0, 0,
-8, 5, 5, 3, 5, 5, 5, 2, 4, 4, 4, 2, 2, 0, 0, 0,
-9, 7, 7, 5, 5, 3, 3, 4, 6, 6, 4, 2, 2, 0, 0, 0,
-8, 5, 5, 5, 7, 5, 3, 4, 4, 4, 4, 2, 2, 0, 0, 0,
-9, 5, 5, 5, 5, 5, 3, 4, 6, 4, 2, 4, 2, 2, 0, 0,
-8, 5, 5, 3, 5, 5, 5, 2, 4, 6, 2, 2, 0, 0, 0, 0,
-7, 5, 7, 5, 7, 5, 5, 2, 6, 6, 4, 2, 2, 0, 0, 0,
-8, 7, 5, 3, 7, 5, 3, 2, 6, 4, 4, 2, 0, 0, 0, 0,
-8, 7, 5, 5, 5, 5, 3, 6, 4, 2, 2, 2, 2, 0, 0, 0,
-9, 5, 7, 5, 5, 5, 3, 4, 4, 2, 4, 2, 2, 0, 0, 0,
-9, 5, 5, 3, 5, 5, 5, 2, 4, 4, 4, 2, 2, 0, 0, 0,
-7, 5, 5, 5, 7, 3, 3, 4, 4, 4, 6, 4, 2, 0, 0, 0,
-8, 7, 7, 5, 3, 3, 5, 4, 4, 4, 6, 4, 0, 0, 0, 0,
-8, 7, 5, 5, 5, 3, 3, 4, 4, 4, 4, 4, 2, 0, 0, 0,
-8, 5, 5, 5, 5, 5, 1, 4, 4, 6, 4, 2, 2, 0, 0, 0,
-8, 5, 5, 3, 5, 5, 5, 4, 2, 4, 4, 2, 2, 0, 0, 0,
-8, 7, 7, 5, 5, 5, 5, 4, 6, 4, 4, 2, 2, 0, 0, 0,
-8, 7, 5, 5, 5, 3, 5, 4, 4, 4, 4, 2, 4, 0, 0, 0,
-9, 7, 7, 5, 5, 5, 3, 4, 6, 2, 4, 2, 2, 0, 0, 0,
-9, 7, 5, 7, 5, 3, 5, 6, 4, 6, 4, 2, 2, 0, 0, 0,
-8, 7, 5, 5, 5, 5, 5, 4, 4, 4, 4, 2, 2, 0, 0, 0,
-7, 7, 5, 3, 7, 5, 3, 2, 6, 6, 4, 2, 2, 0, 0, 0,
-8, 7, 7, 3, 5, 5, 3, 2, 4, 4, 4, 2, 2, 0, 0, 0,
-9, 7, 7, 5, 5, 5, 5, 4, 4, 4, 4, 2, 2, 0, 0, 0,
-9, 7, 5, 5, 5, 3, 3, 4, 4, 4, 6, 2, 0, 0, 0, 0,
-7, 5, 7, 5, 5, 5, 5, 4, 2, 4, 4, 2, 2, 0, 0, 0,
-9, 7, 7, 5, 7, 3, 3, 6, 6, 2, 2, 4, 2, 0, 0, 0,
-9, 7, 5, 5, 5, 3, 3, 4, 4, 4, 4, 2, 2, 2, 0, 0,
-9, 7, 7, 5, 3, 3, 5, 4, 6, 4, 4, 2, 2, 2, 0, 0,
-9, 5, 3, 3, 3, 5, 3, 2, 2, 4, 4, 2, 2, 0, 0, 0,
-7, 5, 5, 3, 7, 5, 5, 4, 4, 4, 4, 2, 0, 0, 0, 0,
-8, 7, 7, 5, 3, 7, 3, 2, 4, 4, 4, 2, 2, 2, 0, 0,
-8, 5, 7, 5, 7, 5, 3, 6, 6, 4, 4, 2, 2, 0, 0, 0,
-8, 5, 5, 5, 5, 5, 5, 4, 4, 4, 4, 2, 2, 0, 0, 0,
-8, 5, 5, 3, 5, 5, 3, 2, 2, 4, 4, 2, 0, 0, 0, 0,
-7, 5, 5, 5, 3, 5, 3, 6, 4, 4, 4, 2, 2, 0, 0, 0,
-8, 7, 7, 5, 5, 5, 3, 4, 6, 2, 4, 2, 0, 0, 0, 0,
-8, 7, 5, 5, 5, 3, 1, 4, 6, 2, 4, 2, 2, 0, 0, 0,
-9, 5, 5, 5, 3, 5, 3, 6, 4, 4, 4, 4, 2, 0, 0, 0,
-8, 5, 5, 5, 5, 5, 3, 4, 4, 4, 4, 2, 0, 0, 0, 0,
-8, 7, 7, 5, 5, 3, 5, 4, 4, 4, 2, 4, 0, 0, 0, 0,
-8, 7, 5, 5, 7, 5, 3, 4, 4, 4, 4, 4, 2, 0, 0, 0,
-9, 7, 5, 5, 7, 5, 3, 4, 4, 4, 4, 2, 2, 2, 0, 0,
-8, 5, 7, 5, 3, 5, 5, 4, 6, 2, 2, 2, 2, 2, 0, 0,
-8, 5, 5, 3, 5, 5, 3, 4, 4, 4, 4, 2, 0, 0, 0, 0,
-8, 7, 5, 5, 5, 5, 1, 4, 4, 4, 4, 0, 0, 0, 0, 0,
-9, 7, 5, 5, 5, 3, 5, 6, 2, 4, 4, 2, 2, 0, 0, 0,
-8, 5, 5, 5, 5, 5, 3, 4, 6, 4, 2, 2, 0, 2, 0, 0,
-9, 5, 5, 5, 7, 3, 5, 4, 4, 4, 2, 2, 4, 2, 0, 0,
-8, 5, 5, 5, 5, 5, 3, 4, 4, 2, 4, 2, 2, 0, 0, 0,
-8, 7, 5, 5, 5, 5, 5, 4, 4, 4, 4, 2, 2, 0, 0, 0,
-9, 7, 7, 5, 5, 5, 3, 4, 4, 4, 2, 2, 2, 0, 0, 0,
-8, 5, 5, 5, 5, 5, 5, 4, 6, 4, 2, 2, 2, 2, 0, 0,
-8, 5, 5, 3, 3, 3, 3, 4, 2, 4, 4, 2, 0, 0, 0, 0,
-7, 5, 5, 5, 5, 5, 3, 6, 2, 4, 4, 2, 0, 0, 0, 0,
-8, 7, 7, 5, 5, 5, 3, 4, 4, 4, 2, 4, 2, 0, 0, 0,
-8, 7, 5, 5, 5, 5, 3, 4, 2, 4, 4, 2, 2, 2, 0, 0,
-8, 5, 5, 5, 5, 3, 3, 4, 4, 2, 4, 2, 2, 2, 0, 0,
-8, 5, 5, 5, 5, 5, 3, 4, 4, 4, 4, 2, 0, 0, 0, 0,
-7, 5, 5, 3, 5, 5, 3, 4, 4, 4, 4, 2, 2, 0, 0, 0,
-8, 5, 7, 5, 5, 3, 3, 6, 6, 4, 4, 2, 2, 2, 0, 0,
-8, 7, 7, 5, 3, 3, 3, 4, 4, 4, 4, 2, 2, 2, 0, 0,
-9, 5, 5, 5, 3, 5, 5, 4, 4, 4, 2, 2, 2, 0, 0, 0,
-9, 3, 5, 5, 3, 5, 5, 4, 4, 4, 4, 2, 0, 0, 0, 0,
-7, 5, 5, 3, 5, 5, 5, 4, 6, 2, 6, 2, 2, 0, 0, 0,
-9, 5, 7, 5, 5, 5, 3, 4, 4, 4, 2, 2, 2, 0, 0, 0,
-8, 7, 5, 3, 3, 3, 5, 4, 4, 4, 6, 2, 0, 0, 0, 0,
-8, 5, 5, 5, 5, 5, 1, 4, 4, 4, 2, 2, 0, 2, 0, 0,
-8, 5, 5, 3, 5, 5, 3, 4, 4, 6, 4, 2, 2, 0, 0, 0,
-8, 7, 7, 5, 5, 5, 3, 4, 4, 6, 4, 2, 2, 0, 0, 0,
-8, 7, 7, 5, 3, 5, 3, 6, 4, 4, 4, 2, 2, 0, 0, 0,
-8, 7, 5, 5, 7, 5, 5, 4, 4, 4, 4, 2, 2, 0, 0, 0,
-9, 5, 7, 5, 7, 3, 5, 4, 6, 2, 4, 4, 2, 2, 0, 0,
-7, 5, 5, 5, 5, 5, 3, 4, 2, 4, 4, 2, 2, 0, 0, 0,
-8, 7, 5, 3, 5, 7, 5, 4, 4, 4, 2, 0, 2, 2, 0, 0,
-9, 7, 5, 5, 5, 5, 3, 6, 6, 4, 2, 4, 2, 2, 0, 0,
-9, 5, 5, 5, 3, 5, 5, 2, 4, 4, 4, 2, 2, 2, 0, 0,
-9, 5, 5, 5, 3, 5, 3, 4, 4, 4, 4, 2, 0, 0, 0, 0,
-8, 5, 5, 5, 5, 5, 3, 4, 4, 4, 4, 2, 2, 0, 0, 0,
-8, 7, 5, 3, 5, 5, 5, 6, 4, 4, 4, 2, 2, 0, 0, 0,
-9, 7, 5, 5, 3, 5, 1, 4, 6, 6, 4, 4, 2, 2, 0, 0,
-8, 5, 5, 7, 5, 7, 5, 4, 6, 4, 4, 2, 2, 2, 0, 0,
-9, 5, 5, 3, 5, 5, 3, 4, 4, 4, 2, 2, 0, 0, 0, 0,
-8, 7, 5, 5, 5, 5, 3, 4, 4, 4, 4, 2, 0, 0, 0, 0,
-7, 7, 5, 5, 5, 5, 5, 4, 4, 4, 2, 2, 2, 0, 0, 0,
-9, 7, 5, 5, 5, 5, 5, 4, 4, 4, 2, 2, 2, 2, 0, 0,
-9, 5, 5, 5, 7, 5, 3, 4, 4, 4, 4, 2, 2, 0, 0, 0,
-9, 5, 5, 3, 3, 5, 3, 6, 2, 4, 4, 2, 0, 0, 0, 0,
-8, 5, 7, 5, 3, 5, 3, 4, 2, 4, 4, 4, 2, 0, 0, 0,
-8, 7, 5, 5, 5, 5, 5, 2, 6, 2, 2, 2, 2, 0, 0, 0,
-8, 7, 7, 7, 7, 5, 5, 6, 6, 4, 4, 2, 2, 2, 0, 0,
-8, 7, 5, 5, 5, 3, 5, 4, 6, 4, 4, 2, 2, 0, 0, 0,
-8, 5, 5, 3, 5, 5, 3, 4, 4, 4, 6, 4, 2, 0, 0, 0,
-7, 7, 5, 3, 3, 5, 3, 4, 4, 2, 4, 2, 2, 0, 0, 0,
-8, 7, 5, 5, 5, 5, 3, 4, 4, 4, 4, 2, 2, 2, 0, 0,
-9, 7, 7, 3, 5, 5, 3, 4, 4, 2, 4, 2, 2, 0, 0, 0,
-9, 5, 5, 5, 5, 5, 3, 6, 4, 2, 2, 2, 2, 2, 0, 0,
-9, 5, 5, 3, 5, 5, 3, 4, 4, 4, 4, 2, 0, 0, 0, 0,
-8, 5, 5, 3, 5, 5, 3, 4, 4, 4, 4, 4, 2, 2, 0, 0,
-9, 5, 5, 7, 5, 5, 3, 4, 6, 6, 4, 2, 2, 0, 0, 0,
-9, 5, 5, 5, 5, 5, 5, 4, 6, 2, 4, 2, 2, 2, 0, 0,
-8, 5, 3, 3, 3, 3, 3, 4, 4, 2, 2, 2, 2, 2, 0, 0,
-8, 3, 5, 3, 3, 3, 3, 4, 2, 2, 2, 2, 2, 2, 0, 0,
-8, 7, 3, 3, 3, 5, 5, 4, 2, 2, 2, 2, 2, 0, 0, 0,
-8, 5, 5, 5, 3, 5, 3, 4, 4, 2, 4, 2, 0, 2, 0, 0,
-8, 5, 5, 7, 5, 5, 3, 4, 4, 4, 4, 2, 2, 0, 0, 0,
-8, 7, 5, 5, 5, 5, 3, 6, 4, 4, 4, 2, 0, 0, 0, 0,
-8, 5, 5, 5, 5, 5, 3, 4, 4, 4, 4, 2, 2, 0, 0, 0,
-8, 5, 7, 5, 5, 3, 5, 4, 4, 4, 4, 2, 2, 0, 0, 0,
-8, 7, 5, 5, 5, 5, 5, 4, 4, 2, 4, 2, 0, 0, 0, 0,
-8, 5, 7, 3, 3, 5, 3, 6, 2, 4, 4, 4, 0, 0, 0, 0,
-7, 5, 5, 5, 3, 7, 5, 4, 4, 6, 4, 2, 2, 0, 0, 0,
-8, 5, 5, 5, 5, 3, 3, 4, 4, 2, 2, 2, 2, 0, 0, 0,
-8, 5, 7, 5, 5, 5, 5, 4, 2, 2, 4, 4, 2, 2, 0, 0,
-9, 5, 5, 3, 5, 5, 5, 2, 2, 4, 4, 2, 2, 0, 0, 0,
-8, 7, 5, 5, 5, 5, 5, 4, 2, 2, 4, 4, 0, 0, 0, 0,
-8, 7, 5, 5, 5, 5, 5, 4, 4, 6, 4, 2, 2, 2, 0, 0,
-8, 5, 5, 5, 5, 5, 5, 4, 6, 2, 4, 4, 2, 0, 0, 0,
-9, 5, 7, 5, 3, 3, 3, 4, 4, 4, 4, 4, 2, 0, 0, 0,
-9, 5, 5, 3, 5, 5, 3, 2, 2, 4, 4, 2, 0, 0, 0, 0,
-8, 5, 5, 7, 5, 5, 5, 4, 4, 2, 4, 2, 2, 0, 0, 0,
-9, 7, 5, 5, 5, 5, 3, 4, 4, 4, 4, 2, 2, 0, 0, 0,
-8, 5, 5, 5, 5, 5, 3, 6, 4, 4, 4, 2, 2, 0, 0, 0,
-8, 5, 5, 7, 7, 5, 3, 6, 4, 4, 6, 2, 2, 0, 0, 0,
-9, 5, 5, 5, 5, 5, 3, 4, 2, 4, 4, 2, 2, 0, 0, 0,
-8, 5, 5, 3, 5, 3, 5, 4, 4, 4, 4, 2, 2, 0, 0, 0,
-8, 7, 5, 7, 7, 7, 5, 4, 6, 4, 4, 2, 2, 0, 0, 0,
-8, 5, 5, 5, 5, 5, 5, 4, 2, 6, 2, 4, 2, 0, 0, 0,
-8, 5, 5, 7, 3, 5, 3, 6, 4, 4, 4, 2, 2, 0, 0, 0,
-8, 5, 5, 5, 3, 5, 5, 4, 2, 4, 4, 2, 2, 0, 0, 0,
-8, 5, 5, 7, 3, 5, 5, 2, 6, 2, 4, 4, 2, 0, 0, 0,
-8, 7, 3, 5, 3, 3, 5, 4, 4, 6, 4, 2, 2, 0, 0, 0,
-8, 5, 5, 5, 5, 5, 3, 4, 6, 4, 4, 2, 2, 0, 0, 0,
-8, 5, 5, 3, 5, 5, 5, 4, 2, 4, 4, 2, 2, 0, 0, 0,
-9, 7, 5, 5, 5, 5, 5, 4, 4, 4, 4, 2, 2, 0, 0, 0,
-8, 5, 5, 7, 3, 7, 5, 6, 6, 4, 6, 2, 2, 0, 0, 0,
-9, 5, 3, 5, 5, 5, 5, 4, 4, 4, 2, 2, 2, 0, 0, 0,
-8, 5, 5, 5, 5, 5, 3, 4, 4, 4, 4, 2, 2, 0, 0, 0,
-8, 5, 5, 3, 5, 5, 5, 2, 2, 4, 4, 2, 0, 0, 0, 0,
-7, 7, 5, 5, 5, 5, 3, 4, 4, 4, 4, 2, 2, 0, 0, 0,
-8, 5, 5, 7, 5, 5, 7, 4, 4, 4, 2, 4, 4, 0, 0, 0,
-9, 7, 5, 5, 5, 5, 5, 4, 2, 4, 4, 2, 2, 0, 0, 0,
-9, 5, 5, 3, 5, 5, 5, 4, 4, 2, 4, 2, 2, 0, 0, 0,
-9, 5, 5, 5, 3, 5, 3, 2, 2, 4, 4, 2, 2, 0, 0, 0,
-7, 5, 5, 7, 3, 7, 5, 4, 4, 2, 4, 4, 2, 0, 0, 0,
-8, 5, 3, 7, 5, 5, 3, 6, 6, 6, 4, 4, 0, 0, 0, 0,
-8, 5, 7, 7, 5, 5, 5, 4, 2, 2, 6, 4, 2, 0, 0, 0,
-8, 7, 5, 5, 3, 5, 5, 2, 4, 4, 4, 2, 2, 0, 0, 0,
-8, 5, 5, 5, 5, 5, 3, 4, 2, 4, 4, 2, 2, 0, 0, 0,
-7, 5, 5, 5, 3, 5, 5, 4, 4, 4, 4, 4, 2, 0, 0, 0,
-8, 7, 5, 5, 5, 5, 3, 4, 2, 4, 2, 2, 0, 0, 0, 0,
-8, 5, 5, 7, 3, 3, 7, 2, 2, 4, 4, 2, 2, 2, 0, 0,
-8, 5, 3, 5, 5, 5, 5, 4, 4, 4, 4, 2, 2, 2, 0, 0,
-8, 5, 7, 7, 5, 3, 3, 4, 4, 4, 4, 4, 0, 0, 0, 0,
-8, 7, 5, 5, 3, 5, 5, 4, 4, 4, 6, 2, 2, 0, 0, 0,
-9, 5, 5, 5, 5, 5, 7, 6, 4, 4, 6, 2, 0, 0, 0, 0,
-8, 5, 5, 5, 5, 3, 3, 6, 2, 4, 4, 4, 2, 2, 0, 0,
-8, 5, 5, 5, 5, 5, 5, 4, 4, 4, 4, 2, 0, 0, 0, 0,
-8, 7, 7, 5, 5, 5, 5, 4, 2, 4, 4, 2, 2, 0, 0, 0,
-8, 5, 5, 7, 3, 5, 5, 4, 6, 6, 4, 2, 0, 0, 0, 0,
-9, 7, 5, 5, 5, 5, 5, 4, 4, 2, 4, 2, 2, 0, 0, 0,
-8, 5, 5, 5, 5, 3, 3, 4, 6, 4, 4, 2, 2, 2, 0, 0,
-9, 5, 3, 3, 5, 5, 3, 2, 2, 4, 4, 2, 2, 0, 0, 0,
-7, 5, 5, 5, 5, 5, 5, 4, 2, 4, 4, 2, 2, 0, 0, 0,
-8, 5, 5, 7, 5, 5, 3, 4, 4, 4, 4, 2, 2, 0, 0, 0,
-8, 5, 5, 5, 3, 5, 3, 6, 6, 4, 4, 2, 2, 0, 0, 0,
-9, 5, 5, 5, 5, 1, 5, 4, 4, 4, 4, 4, 2, 2, 0, 0,
-9, 5, 3, 3, 5, 5, 3, 4, 4, 4, 4, 2, 2, 0, 0, 0,
-7, 7, 5, 5, 3, 5, 5, 4, 2, 4, 4, 2, 2, 0, 0, 0,
-8, 7, 5, 7, 5, 5, 3, 4, 4, 4, 4, 4, 2, 0, 0, 0,
-9, 5, 3, 5, 5, 5, 5, 4, 4, 2, 4, 2, 2, 2, 0, 0,
-8, 5, 7, 5, 5, 5, 5, 4, 4, 4, 4, 2, 2, 2, 0, 0,
-8, 5, 5, 3, 5, 5, 5, 4, 2, 4, 4, 4, 2, 0, 0, 0,
-7, 5, 5, 7, 3, 5, 5, 2, 2, 4, 4, 2, 2, 0, 0, 0,
-7, 7, 3, 7, 5, 5, 3, 4, 4, 4, 4, 2, 2, 0, 0, 0,
-9, 5, 5, 5, 3, 3, 3, 4, 4, 4, 4, 2, 2, 2, 0, 0,
-8, 5, 5, 7, 3, 5, 3, 4, 6, 2, 4, 2, 2, 2, 0, 0,
-8, 5, 5, 3, 5, 3, 5, 4, 2, 4, 4, 4, 2, 0, 0, 0,
-8, 7, 5, 7, 3, 5, 3, 4, 4, 4, 4, 2, 0, 0, 0, 0,
-9, 7, 5, 5, 3, 5, 5, 6, 4, 4, 2, 2, 2, 0, 0, 0,
-8, 7, 5, 5, 5, 7, 5, 4, 4, 4, 4, 2, 2, 0, 0, 0,
-8, 7, 5, 5, 5, 5, 5, 4, 2, 4, 4, 2, 0, 0, 0, 0,
-8, 5, 5, 5, 5, 5, 5, 2, 2, 4, 4, 2, 2, 0, 0, 0,
-8, 7, 5, 7, 5, 5, 3, 4, 4, 4, 4, 2, 0, 0, 0, 0,
-9, 7, 3, 5, 3, 7, 3, 4, 4, 2, 6, 2, 2, 2, 0, 0,
-9, 7, 5, 5, 5, 5, 5, 6, 4, 4, 4, 2, 2, 0, 0, 0,
-9, 5, 5, 3, 5, 5, 3, 4, 2, 4, 4, 2, 0, 0, 0, 0,
-8, 7, 5, 5, 5, 5, 5, 6, 2, 4, 4, 4, 2, 0, 0, 0,
-8, 7, 5, 7, 3, 5, 5, 4, 4, 2, 4, 4, 2, 0, 0, 0,
-9, 5, 3, 5, 5, 3, 5, 4, 6, 4, 4, 4, 2, 0, 0, 0,
-9, 7, 3, 5, 5, 5, 3, 6, 4, 4, 2, 4, 2, 2, 0, 0,
-9, 7, 5, 3, 5, 3, 3, 4, 2, 2, 4, 2, 2, 0, 0, 0,
-7, 7, 5, 5, 5, 5, 5, 4, 4, 4, 4, 4, 0, 0, 0, 0,
-8, 7, 3, 7, 3, 3, 5, 4, 4, 2, 2, 2, 2, 2, 0, 0,
-9, 7, 3, 7, 5, 7, 3, 6, 2, 2, 2, 2, 2, 2, 0, 0,
-9, 7, 5, 5, 5, 5, 3, 4, 4, 4, 4, 2, 2, 0, 0, 0,
-9, 5, 5, 3, 5, 3, 5, 4, 2, 4, 4, 4, 2, 0, 0, 0,
-8, 7, 5, 5, 3, 3, 5, 4, 2, 4, 4, 4, 2, 0, 0, 0,
-9, 7, 5, 5, 3, 5, 3, 4, 4, 4, 4, 2, 2, 0, 0, 0,
-9, 7, 5, 5, 5, 5, 5, 6, 2, 4, 6, 2, 2, 0, 0, 0,
-8, 7, 7, 5, 7, 3, 5, 6, 4, 4, 2, 2, 2, 2, 0, 0,
-8, 7, 5, 5, 5, 5, 5, 4, 2, 4, 4, 2, 2, 0, 0, 0,
-8, 7, 3, 5, 5, 3, 5, 4, 4, 4, 4, 2, 2, 0, 0, 0,
-8, 7, 5, 5, 3, 5, 5, 2, 4, 4, 4, 2, 0, 2, 0, 0,
-9, 5, 5, 5, 5, 5, 5, 4, 4, 4, 2, 2, 0, 0, 0, 0,
-9, 5, 5, 3, 5, 5, 3, 2, 6, 4, 4, 2, 0, 0, 0, 0,
-9, 7, 5, 5, 5, 3, 5, 4, 2, 4, 4, 2, 2, 0, 0, 0,
-8, 7, 3, 7, 5, 5, 5, 4, 4, 4, 4, 2, 0, 0, 0, 0,
-9, 7, 5, 5, 5, 3, 5, 4, 4, 4, 2, 2, 2, 0, 0, 0,
-9, 5, 5, 5, 5, 5, 3, 4, 2, 4, 4, 2, 2, 0, 0, 0,
-9, 5, 5, 3, 3, 3, 3, 2, 2, 4, 4, 2, 2, 0, 0, 0,
-8, 7, 5, 5, 3, 5, 5, 4, 2, 4, 4, 4, 2, 0, 0, 0,
-8, 7, 5, 5, 3, 3, 5, 4, 4, 4, 4, 2, 2, 0, 0, 0,
-9, 5, 5, 7, 5, 5, 5, 4, 4, 4, 4, 2, 2, 0, 0, 0,
-9, 3, 7, 7, 5, 5, 3, 6, 4, 4, 6, 2, 2, 2, 0, 0,
-9, 5, 5, 5, 5, 3, 3, 4, 4, 2, 4, 4, 0, 0, 0, 0,
-9, 7, 5, 5, 5, 5, 5, 4, 4, 6, 4, 2, 0, 0, 0, 0,
-9, 7, 3, 5, 5, 5, 3, 6, 4, 4, 4, 2, 2, 0, 0, 0,
-9, 5, 5, 5, 5, 3, 3, 6, 4, 4, 4, 2, 2, 0, 0, 0,
-9, 5, 5, 5, 5, 3, 5, 2, 4, 4, 4, 2, 2, 0, 0, 0,
-9, 5, 5, 5, 3, 5, 3, 4, 4, 4, 4, 4, 2, 2, 0, 0,
-9, 5, 5, 5, 5, 7, 5, 6, 4, 4, 4, 2, 2, 0, 0, 0,
-9, 7, 3, 5, 3, 5, 5, 4, 2, 2, 4, 2, 2, 0, 0, 0,
-9, 5, 5, 5, 5, 5, 5, 6, 4, 4, 4, 2, 2, 2, 0, 0,
-8, 5, 3, 3, 3, 3, 3, 4, 2, 2, 2, 2, 2, 0, 0, 0,
-8, 5, 5, 5, 5, 5, 5, 4, 2, 4, 4, 2, 2, 0, 0, 0,
-8, 7, 5, 5, 3, 5, 5, 4, 2, 4, 4, 2, 2, 0, 0, 0,
-8, 7, 5, 5, 5, 5, 5, 4, 4, 4, 4, 2, 2, 0, 0, 0,
-9, 5, 7, 5, 5, 5, 5, 4, 4, 4, 2, 2, 2, 0, 0, 0,
-9, 7, 5, 5, 5, 3, 5, 6, 4, 2, 2, 4, 2, 2, 0, 0,
-9, 7, 5, 3, 3, 5, 3, 2, 2, 4, 4, 2, 0, 0, 0, 0,
-8, 7, 5, 5, 5, 5, 3, 4, 2, 4, 4, 4, 0, 0, 0, 0,
-8, 7, 5, 5, 3, 5, 5, 4, 2, 2, 4, 4, 2, 0, 0, 0,
-9, 5, 5, 7, 7, 7, 5, 4, 4, 2, 6, 2, 0, 2, 0, 0,
-9, 5, 5, 5, 5, 3, 5, 4, 4, 4, 4, 2, 0, 0, 0, 0,
-9, 5, 3, 5, 1, 3, 3, 2, 2, 4, 4, 2, 2, 2, 0, 0,
-9, 5, 5, 3, 3, 5, 3, 4, 2, 2, 4, 2, 0, 0, 0, 0,
-8, 7, 5, 5, 3, 5, 5, 4, 2, 4, 4, 4, 2, 0, 0, 0,
-8, 5, 3, 7, 5, 5, 5, 4, 4, 2, 4, 4, 2, 2, 0, 0,
-9, 7, 5, 5, 5, 5, 3, 4, 2, 6, 2, 2, 0, 0, 0, 0,
-9, 5, 7, 5, 3, 5, 5, 4, 4, 6, 4, 2, 2, 0, 0, 0,
-9, 5, 5, 3, 3, 3, 1, 4, 2, 4, 2, 2, 2, 2, 0, 0,
-9, 5, 5, 3, 5, 3, 3, 4, 2, 4, 4, 2, 0, 0, 0, 0,
-8, 7, 5, 5, 3, 5, 5, 4, 2, 4, 6, 4, 2, 0, 0, 0,
-8, 7, 5, 5, 5, 5, 3, 4, 4, 6, 4, 2, 2, 0, 0, 0,
-9, 5, 5, 7, 5, 3, 3, 4, 4, 6, 2, 2, 0, 0, 0, 0,
-9, 5, 7, 7, 5, 5, 5, 4, 6, 4, 2, 2, 0, 0, 0, 0,
-9, 5, 3, 5, 3, 3, 1, 4, 2, 4, 2, 2, 2, 2, 0, 0,
-9, 5, 5, 3, 5, 5, 5, 2, 4, 4, 4, 2, 2, 0, 0, 0,
-8, 7, 5, 5, 5, 5, 5, 6, 2, 4, 4, 2, 2, 0, 0, 0,
-8, 5, 5, 5, 5, 5, 5, 4, 4, 4, 4, 2, 2, 0, 0, 0,
-9, 5, 5, 7, 3, 3, 5, 4, 4, 4, 4, 2, 2, 0, 0, 0,
-9, 7, 3, 5, 5, 3, 3, 6, 6, 4, 2, 2, 2, 0, 0, 0,
-9, 7, 3, 5, 3, 3, 3, 4, 2, 2, 2, 2, 2, 0, 0, 0,
-9, 5, 5, 5, 5, 3, 3, 4, 2, 4, 4, 4, 2, 0, 0, 0,
-8, 7, 5, 5, 5, 5, 5, 4, 2, 4, 4, 2, 2, 0, 0, 0,
-8, 7, 5, 5, 3, 3, 5, 6, 4, 4, 2, 2, 2, 2, 0, 0,
-9, 7, 3, 5, 7, 3, 5, 4, 4, 4, 4, 4, 2, 0, 0, 0,
-9, 7, 5, 5, 5, 3, 5, 6, 4, 4, 4, 2, 2, 0, 0, 0,
-9, 5, 5, 7, 5, 7, 3, 4, 4, 4, 4, 2, 2, 2, 0, 0,
-9, 7, 5, 7, 7, 5, 7, 4, 4, 4, 4, 2, 2, 2, 0, 0,
-9, 7, 3, 3, 5, 5, 5, 4, 4, 4, 4, 2, 2, 0, 0, 0,
-8, 7, 5, 5, 3, 5, 5, 4, 4, 4, 6, 2, 2, 0, 0, 0,
-9, 5, 5, 5, 5, 7, 3, 4, 4, 4, 4, 2, 0, 0, 0, 0,
-9, 7, 5, 5, 3, 5, 7, 2, 6, 4, 4, 2, 2, 0, 0, 0,
-8, 5, 7, 7, 5, 3, 5, 4, 2, 4, 4, 2, 2, 0, 0, 0,
-9, 5, 1, 5, 3, 3, 5, 2, 2, 4, 2, 2, 2, 0, 0, 0,
-9, 5, 5, 5, 5, 5, 5, 4, 6, 4, 4, 2, 0, 0, 0, 0,
-9, 7, 5, 5, 5, 5, 5, 4, 4, 4, 4, 2, 2, 0, 0, 0,
-8, 7, 5, 3, 5, 5, 5, 4, 2, 4, 4, 4, 2, 0, 0, 0,
-9, 5, 5, 7, 5, 5, 3, 4, 4, 6, 4, 2, 2, 0, 0, 0,
-9, 7, 5, 7, 3, 5, 5, 2, 4, 4, 4, 4, 2, 0, 0, 0,
-9, 5, 5, 7, 5, 7, 3, 6, 6, 4, 2, 2, 2, 0, 0, 0,
-9, 5, 5, 5, 5, 3, 3, 4, 4, 4, 4, 2, 2, 2, 0, 0,
-9, 5, 5, 5, 5, 5, 3, 4, 2, 4, 4, 2, 2, 0, 0, 0,
-8, 7, 5, 5, 5, 5, 5, 4, 4, 4, 4, 2, 2, 0, 0, 0,
-8, 7, 5, 7, 5, 5, 3, 4, 4, 4, 2, 2, 2, 2, 0, 0,
-9, 7, 5, 7, 3, 7, 5, 6, 4, 4, 4, 4, 2, 0, 0, 0,
-8, 7, 5, 5, 3, 5, 3, 6, 4, 4, 2, 4, 2, 2, 0, 0,
-9, 5, 3, 5, 3, 5, 3, 4, 2, 4, 4, 4, 2, 0, 0, 0,
-9, 5, 3, 3, 3, 3, 3, 2, 2, 4, 2, 2, 2, 0, 0, 0,
-8, 7, 5, 7, 5, 5, 5, 4, 2, 4, 4, 2, 2, 0, 0, 0,
-8, 7, 5, 3, 3, 5, 7, 4, 4, 6, 4, 2, 2, 0, 0, 0,
-9, 7, 5, 7, 3, 5, 5, 4, 4, 4, 4, 4, 2, 2, 0, 0,
-9, 7, 3, 5, 5, 3, 5, 4, 4, 6, 4, 2, 2, 2, 0, 0,
-9, 5, 5, 3, 5, 5, 3, 4, 2, 4, 4, 2, 2, 0, 0, 0,
-9, 7, 3, 5, 5, 3, 5, 4, 2, 4, 4, 2, 0, 0, 0, 0,
-7, 8, 5, 5, 5, 5, 5, 4, 4, 4, 2, 2, 2, 0, 0, 0,
-8, 7, 5, 5, 3, 3, 3, 6, 4, 2, 4, 4, 2, 0, 0, 0,
-9, 7, 5, 5, 5, 3, 5, 4, 4, 6, 4, 2, 2, 0, 0, 0,
-9, 5, 5, 5, 5, 3, 5, 2, 4, 4, 6, 2, 0, 0, 0, 0,
-9, 7, 7, 5, 5, 5, 5, 4, 4, 4, 4, 2, 2, 0, 0, 0,
-9, 5, 3, 3, 5, 5, 5, 4, 4, 4, 4, 4, 2, 0, 0, 0,
-8, 7, 7, 5, 5, 5, 5, 4, 4, 4, 2, 2, 2, 0, 0, 0,
diff --git a/lib/books/coupled/_44c4_short.vqh b/lib/books/coupled/_44c4_short.vqh
deleted file mode 100644
index 5ec5a1c4..00000000
--- a/lib/books/coupled/_44c4_short.vqh
+++ /dev/null
@@ -1,43 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by huff/huffbuld
-
- ********************************************************************/
-
-#ifndef _V__44c4_short_VQH_
-#define _V__44c4_short_VQH_
-#include "codebook.h"
-
-static long _huff_lengthlist__44c4_short[] = {
- 4,18, 9,18,12,16,13,14,17,17,16, 7, 7, 7, 6, 9,
- 9,11,17,17, 4,17, 3,17, 6,17, 7,10,17,17,14, 6,
- 6, 4, 5, 5, 6, 8,17,17, 8,17, 4,17, 5,17, 6,10,
- 17,17,13, 7, 7, 5, 5, 4, 6, 6,15,17, 9,17, 6,17,
- 6,17, 7,11,17,17,12,10, 9, 7, 8, 6, 9, 7,15,17,
- 17,12,16, 7,17, 5,17, 6,12,16,17,12,17, 6,17, 5,
- 17, 5, 9,17,
-};
-
-static static_codebook _huff_book__44c4_short = {
- 2, 100,
- _huff_lengthlist__44c4_short,
- 0, 0, 0, 0, 0,
- NULL,
- NULL,
- NULL,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c5_long.vqh b/lib/books/coupled/_44c5_long.vqh
deleted file mode 100644
index 05ccc7f4..00000000
--- a/lib/books/coupled/_44c5_long.vqh
+++ /dev/null
@@ -1,43 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by huff/huffbuld
-
- ********************************************************************/
-
-#ifndef _V__44c5_long_VQH_
-#define _V__44c5_long_VQH_
-#include "codebook.h"
-
-static long _huff_lengthlist__44c5_long[] = {
- 2,11, 7,14,10,16,11,11,13,14,11, 8, 9, 8, 9, 9,
- 11, 9,11,14, 6,20, 3,20, 4,20, 7, 8,14,18,14, 7,
- 9, 6, 7, 6, 9, 7,10,13,10,20, 4,20, 3,20, 6, 8,
- 14,18,15, 8,10, 6, 9, 6, 9, 6,10,14,11,19, 6,19,
- 6,19, 6, 8,14,18,10, 9, 8, 7, 8, 6, 7, 5, 7,11,
- 11,11,12, 9,12, 8,12, 6, 7, 9,11,13,15,12,16,11,
- 17, 8, 7, 8,
-};
-
-static static_codebook _huff_book__44c5_long = {
- 2, 100,
- _huff_lengthlist__44c5_long,
- 0, 0, 0, 0, 0,
- NULL,
- NULL,
- NULL,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c5_s0_p1_0.vqh b/lib/books/coupled/_44c5_s0_p1_0.vqh
deleted file mode 100644
index 6d152555..00000000
--- a/lib/books/coupled/_44c5_s0_p1_0.vqh
+++ /dev/null
@@ -1,99 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c5_s0_p1_0_VQH_
-#define _V__44c5_s0_p1_0_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c5_s0_p1_0[] = {
- 2,
- 1,
- 3,
- 0,
- 4,
-};
-
-static long _vq_lengthlist__44c5_s0_p1_0[] = {
- 2, 5, 5, 0, 0, 0, 5, 5, 0, 0, 0, 5, 5, 0, 0, 0,
- 7, 7, 0, 0, 0, 0, 0, 0, 0, 5, 6, 6, 0, 0, 0, 8,
- 7, 0, 0, 0, 7, 7, 0, 0, 0,10,10, 0, 0, 0, 0, 0,
- 0, 0, 5, 6, 6, 0, 0, 0, 7, 7, 0, 0, 0, 7, 7, 0,
- 0, 0,10,10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 5, 7, 7, 0, 0, 0, 7, 7, 0, 0,
- 0, 7, 7, 0, 0, 0, 9, 9, 0, 0, 0, 0, 0, 0, 0, 5,
- 7, 7, 0, 0, 0, 7, 7, 0, 0, 0, 7, 7, 0, 0, 0, 9,
- 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 5, 8, 7, 0, 0, 0, 7, 7, 0, 0, 0, 7, 7,
- 0, 0, 0, 9, 9, 0, 0, 0, 0, 0, 0, 0, 5, 7, 7, 0,
- 0, 0, 7, 7, 0, 0, 0, 7, 7, 0, 0, 0, 9, 9, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 8,10,10, 0, 0, 0, 9, 9, 0, 0, 0, 9, 9, 0, 0, 0,
- 10,10, 0, 0, 0, 0, 0, 0, 0, 7,10,10, 0, 0, 0, 9,
- 9, 0, 0, 0, 9, 9, 0, 0, 0,10,10, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,
-};
-
-static float _vq_quantthresh__44c5_s0_p1_0[] = {
- -1.5, -0.5, 0.5, 1.5,
-};
-
-static long _vq_quantmap__44c5_s0_p1_0[] = {
- 3, 1, 0, 2, 4,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c5_s0_p1_0 = {
- _vq_quantthresh__44c5_s0_p1_0,
- _vq_quantmap__44c5_s0_p1_0,
- 5,
- 5
-};
-
-static static_codebook _44c5_s0_p1_0 = {
- 4, 625,
- _vq_lengthlist__44c5_s0_p1_0,
- 1, -533725184, 1611661312, 3, 0,
- _vq_quantlist__44c5_s0_p1_0,
- NULL,
- &_vq_auxt__44c5_s0_p1_0,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c5_s0_p2_0.vqh b/lib/books/coupled/_44c5_s0_p2_0.vqh
deleted file mode 100644
index 61015956..00000000
--- a/lib/books/coupled/_44c5_s0_p2_0.vqh
+++ /dev/null
@@ -1,99 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c5_s0_p2_0_VQH_
-#define _V__44c5_s0_p2_0_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c5_s0_p2_0[] = {
- 2,
- 1,
- 3,
- 0,
- 4,
-};
-
-static long _vq_lengthlist__44c5_s0_p2_0[] = {
- 1, 6, 6, 0, 0, 0, 5, 5, 0, 0, 0, 5, 5, 0, 0, 0,
- 8, 8, 0, 0, 0, 0, 0, 0, 0, 6, 8, 7, 0, 0, 0, 9,
- 8, 0, 0, 0, 9, 8, 0, 0, 0,11,11, 0, 0, 0, 0, 0,
- 0, 0, 6, 7, 8, 0, 0, 0, 8, 9, 0, 0, 0, 8, 8, 0,
- 0, 0,11,11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 5, 8, 8, 0, 0, 0, 8, 7, 0, 0,
- 0, 8, 8, 0, 0, 0,10,10, 0, 0, 0, 0, 0, 0, 0, 5,
- 8, 8, 0, 0, 0, 8, 8, 0, 0, 0, 8, 8, 0, 0, 0,10,
- 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 5, 9, 8, 0, 0, 0, 8, 8, 0, 0, 0, 8, 7,
- 0, 0, 0,10,10, 0, 0, 0, 0, 0, 0, 0, 5, 8, 9, 0,
- 0, 0, 8, 8, 0, 0, 0, 7, 8, 0, 0, 0,10,10, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 8,11,11, 0, 0, 0,10,10, 0, 0, 0,10,10, 0, 0, 0,
- 11,11, 0, 0, 0, 0, 0, 0, 0, 8,11,11, 0, 0, 0,10,
- 10, 0, 0, 0,10,10, 0, 0, 0,11,11, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,
-};
-
-static float _vq_quantthresh__44c5_s0_p2_0[] = {
- -1.5, -0.5, 0.5, 1.5,
-};
-
-static long _vq_quantmap__44c5_s0_p2_0[] = {
- 3, 1, 0, 2, 4,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c5_s0_p2_0 = {
- _vq_quantthresh__44c5_s0_p2_0,
- _vq_quantmap__44c5_s0_p2_0,
- 5,
- 5
-};
-
-static static_codebook _44c5_s0_p2_0 = {
- 4, 625,
- _vq_lengthlist__44c5_s0_p2_0,
- 1, -533725184, 1611661312, 3, 0,
- _vq_quantlist__44c5_s0_p2_0,
- NULL,
- &_vq_auxt__44c5_s0_p2_0,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c5_s0_p3_0.vqh b/lib/books/coupled/_44c5_s0_p3_0.vqh
deleted file mode 100644
index e526ca77..00000000
--- a/lib/books/coupled/_44c5_s0_p3_0.vqh
+++ /dev/null
@@ -1,70 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c5_s0_p3_0_VQH_
-#define _V__44c5_s0_p3_0_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c5_s0_p3_0[] = {
- 4,
- 3,
- 5,
- 2,
- 6,
- 1,
- 7,
- 0,
- 8,
-};
-
-static long _vq_lengthlist__44c5_s0_p3_0[] = {
- 2, 3, 3, 6, 6, 0, 0, 0, 0, 0, 4, 4, 6, 6, 0, 0,
- 0, 0, 0, 4, 4, 6, 6, 0, 0, 0, 0, 0, 5, 5, 6, 6,
- 0, 0, 0, 0, 0, 0, 0, 6, 6, 0, 0, 0, 0, 0, 0, 0,
- 7, 7, 0, 0, 0, 0, 0, 0, 0, 7, 8, 0, 0, 0, 0, 0,
- 0, 0, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,
-};
-
-static float _vq_quantthresh__44c5_s0_p3_0[] = {
- -3.5, -2.5, -1.5, -0.5, 0.5, 1.5, 2.5, 3.5,
-};
-
-static long _vq_quantmap__44c5_s0_p3_0[] = {
- 7, 5, 3, 1, 0, 2, 4, 6,
- 8,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c5_s0_p3_0 = {
- _vq_quantthresh__44c5_s0_p3_0,
- _vq_quantmap__44c5_s0_p3_0,
- 9,
- 9
-};
-
-static static_codebook _44c5_s0_p3_0 = {
- 2, 81,
- _vq_lengthlist__44c5_s0_p3_0,
- 1, -531628032, 1611661312, 4, 0,
- _vq_quantlist__44c5_s0_p3_0,
- NULL,
- &_vq_auxt__44c5_s0_p3_0,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c5_s0_p4_0.vqh b/lib/books/coupled/_44c5_s0_p4_0.vqh
deleted file mode 100644
index 486a649b..00000000
--- a/lib/books/coupled/_44c5_s0_p4_0.vqh
+++ /dev/null
@@ -1,70 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c5_s0_p4_0_VQH_
-#define _V__44c5_s0_p4_0_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c5_s0_p4_0[] = {
- 4,
- 3,
- 5,
- 2,
- 6,
- 1,
- 7,
- 0,
- 8,
-};
-
-static long _vq_lengthlist__44c5_s0_p4_0[] = {
- 2, 3, 3, 7, 7, 0, 0, 0, 0, 0, 4, 4, 6, 6, 0, 0,
- 0, 0, 0, 3, 4, 6, 6, 0, 0, 0, 0, 0, 5, 5, 7, 7,
- 0, 0, 0, 0, 0, 0, 0, 7, 7, 0, 0, 0, 0, 0, 0, 0,
- 9, 8, 0, 0, 0, 0, 0, 0, 0, 8, 8, 0, 0, 0, 0, 0,
- 0, 0,10,10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,
-};
-
-static float _vq_quantthresh__44c5_s0_p4_0[] = {
- -3.5, -2.5, -1.5, -0.5, 0.5, 1.5, 2.5, 3.5,
-};
-
-static long _vq_quantmap__44c5_s0_p4_0[] = {
- 7, 5, 3, 1, 0, 2, 4, 6,
- 8,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c5_s0_p4_0 = {
- _vq_quantthresh__44c5_s0_p4_0,
- _vq_quantmap__44c5_s0_p4_0,
- 9,
- 9
-};
-
-static static_codebook _44c5_s0_p4_0 = {
- 2, 81,
- _vq_lengthlist__44c5_s0_p4_0,
- 1, -531628032, 1611661312, 4, 0,
- _vq_quantlist__44c5_s0_p4_0,
- NULL,
- &_vq_auxt__44c5_s0_p4_0,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c5_s0_p5_0.vqh b/lib/books/coupled/_44c5_s0_p5_0.vqh
deleted file mode 100644
index 4cd3ba6f..00000000
--- a/lib/books/coupled/_44c5_s0_p5_0.vqh
+++ /dev/null
@@ -1,93 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c5_s0_p5_0_VQH_
-#define _V__44c5_s0_p5_0_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c5_s0_p5_0[] = {
- 8,
- 7,
- 9,
- 6,
- 10,
- 5,
- 11,
- 4,
- 12,
- 3,
- 13,
- 2,
- 14,
- 1,
- 15,
- 0,
- 16,
-};
-
-static long _vq_lengthlist__44c5_s0_p5_0[] = {
- 2, 4, 4, 6, 6, 7, 7, 9, 9, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 4, 4, 6, 6, 7, 7, 9, 9, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 4, 4, 6, 6, 7, 7, 9, 9, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 5, 5, 6, 6, 8, 8,10,10, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 6, 6, 8, 8,10,10, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 8, 8,10,10, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 8, 8,10,10, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 9, 9, 9,10,10,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9,10,
- 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,10,10,
- 11,11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,10,
- 10,11,11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 11,11,11,11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,11,12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,12,12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,12,12, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,13,13, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,
-};
-
-static float _vq_quantthresh__44c5_s0_p5_0[] = {
- -7.5, -6.5, -5.5, -4.5, -3.5, -2.5, -1.5, -0.5,
- 0.5, 1.5, 2.5, 3.5, 4.5, 5.5, 6.5, 7.5,
-};
-
-static long _vq_quantmap__44c5_s0_p5_0[] = {
- 15, 13, 11, 9, 7, 5, 3, 1,
- 0, 2, 4, 6, 8, 10, 12, 14,
- 16,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c5_s0_p5_0 = {
- _vq_quantthresh__44c5_s0_p5_0,
- _vq_quantmap__44c5_s0_p5_0,
- 17,
- 17
-};
-
-static static_codebook _44c5_s0_p5_0 = {
- 2, 289,
- _vq_lengthlist__44c5_s0_p5_0,
- 1, -529530880, 1611661312, 5, 0,
- _vq_quantlist__44c5_s0_p5_0,
- NULL,
- &_vq_auxt__44c5_s0_p5_0,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c5_s0_p6_0.vqh b/lib/books/coupled/_44c5_s0_p6_0.vqh
deleted file mode 100644
index f963205a..00000000
--- a/lib/books/coupled/_44c5_s0_p6_0.vqh
+++ /dev/null
@@ -1,93 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c5_s0_p6_0_VQH_
-#define _V__44c5_s0_p6_0_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c5_s0_p6_0[] = {
- 8,
- 7,
- 9,
- 6,
- 10,
- 5,
- 11,
- 4,
- 12,
- 3,
- 13,
- 2,
- 14,
- 1,
- 15,
- 0,
- 16,
-};
-
-static long _vq_lengthlist__44c5_s0_p6_0[] = {
- 2, 4, 4, 6, 6, 6, 7, 8, 8, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 4, 4, 6, 6, 7, 7, 9, 9, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 4, 4, 6, 6, 7, 7, 9, 9, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 5, 5, 7, 7, 8, 8, 9, 9, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 7, 7, 7, 7,10, 9, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 8, 8,10,10, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 8, 8,10,10, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 8, 9, 9,10,10,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 8,10,
- 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9,
- 11,11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9,
- 9,11,11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 10,10,12,11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,11,11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,12,12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,12,12, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,13,13, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,
-};
-
-static float _vq_quantthresh__44c5_s0_p6_0[] = {
- -7.5, -6.5, -5.5, -4.5, -3.5, -2.5, -1.5, -0.5,
- 0.5, 1.5, 2.5, 3.5, 4.5, 5.5, 6.5, 7.5,
-};
-
-static long _vq_quantmap__44c5_s0_p6_0[] = {
- 15, 13, 11, 9, 7, 5, 3, 1,
- 0, 2, 4, 6, 8, 10, 12, 14,
- 16,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c5_s0_p6_0 = {
- _vq_quantthresh__44c5_s0_p6_0,
- _vq_quantmap__44c5_s0_p6_0,
- 17,
- 17
-};
-
-static static_codebook _44c5_s0_p6_0 = {
- 2, 289,
- _vq_lengthlist__44c5_s0_p6_0,
- 1, -529530880, 1611661312, 5, 0,
- _vq_quantlist__44c5_s0_p6_0,
- NULL,
- &_vq_auxt__44c5_s0_p6_0,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c5_s0_p7_0.vqh b/lib/books/coupled/_44c5_s0_p7_0.vqh
deleted file mode 100644
index 9def0ac4..00000000
--- a/lib/books/coupled/_44c5_s0_p7_0.vqh
+++ /dev/null
@@ -1,80 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c5_s0_p7_0_VQH_
-#define _V__44c5_s0_p7_0_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c5_s0_p7_0[] = {
- 6,
- 5,
- 7,
- 4,
- 8,
- 3,
- 9,
- 2,
- 10,
- 1,
- 11,
- 0,
- 12,
-};
-
-static long _vq_lengthlist__44c5_s0_p7_0[] = {
- 1, 3, 3, 7, 7, 9, 9, 0, 0, 0, 0, 0, 0, 6, 5, 5,
- 7, 7,10,10, 0, 0, 0, 0, 0, 0, 6, 5, 5, 8, 8,10,
- 10, 0, 0, 0, 0, 0, 0, 0, 8, 8, 8, 8,10,10, 0, 0,
- 0, 0, 0, 0, 0, 8, 8, 8, 8,10,10, 0, 0, 0, 0, 0,
- 0, 0,12,12,10, 9,11,11, 0, 0, 0, 0, 0, 0, 0,13,
- 13,10, 9,11,11, 0, 0, 0, 0, 0, 0, 0, 0, 0,11,12,
- 12,12, 0, 0, 0, 0, 0, 0, 0, 0, 0,12,12,12,12, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,15,15,12,12, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,16,16,13,13, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,15,15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,15,14, 0, 0, 0, 0, 0, 0,
-};
-
-static float _vq_quantthresh__44c5_s0_p7_0[] = {
- -27.5, -22.5, -17.5, -12.5, -7.5, -2.5, 2.5, 7.5,
- 12.5, 17.5, 22.5, 27.5,
-};
-
-static long _vq_quantmap__44c5_s0_p7_0[] = {
- 11, 9, 7, 5, 3, 1, 0, 2,
- 4, 6, 8, 10, 12,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c5_s0_p7_0 = {
- _vq_quantthresh__44c5_s0_p7_0,
- _vq_quantmap__44c5_s0_p7_0,
- 13,
- 13
-};
-
-static static_codebook _44c5_s0_p7_0 = {
- 2, 169,
- _vq_lengthlist__44c5_s0_p7_0,
- 1, -526516224, 1616117760, 4, 0,
- _vq_quantlist__44c5_s0_p7_0,
- NULL,
- &_vq_auxt__44c5_s0_p7_0,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c5_s0_p7_1.vqh b/lib/books/coupled/_44c5_s0_p7_1.vqh
deleted file mode 100644
index f8b00f31..00000000
--- a/lib/books/coupled/_44c5_s0_p7_1.vqh
+++ /dev/null
@@ -1,61 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c5_s0_p7_1_VQH_
-#define _V__44c5_s0_p7_1_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c5_s0_p7_1[] = {
- 2,
- 1,
- 3,
- 0,
- 4,
-};
-
-static long _vq_lengthlist__44c5_s0_p7_1[] = {
- 2, 4, 4, 5, 5, 7, 4, 4, 6, 6, 7, 4, 4, 5, 5, 7,
- 5, 5, 6, 5, 7, 7, 7, 5, 5,
-};
-
-static float _vq_quantthresh__44c5_s0_p7_1[] = {
- -1.5, -0.5, 0.5, 1.5,
-};
-
-static long _vq_quantmap__44c5_s0_p7_1[] = {
- 3, 1, 0, 2, 4,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c5_s0_p7_1 = {
- _vq_quantthresh__44c5_s0_p7_1,
- _vq_quantmap__44c5_s0_p7_1,
- 5,
- 5
-};
-
-static static_codebook _44c5_s0_p7_1 = {
- 2, 25,
- _vq_lengthlist__44c5_s0_p7_1,
- 1, -533725184, 1611661312, 3, 0,
- _vq_quantlist__44c5_s0_p7_1,
- NULL,
- &_vq_auxt__44c5_s0_p7_1,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c5_s0_p8_0.vqh b/lib/books/coupled/_44c5_s0_p8_0.vqh
deleted file mode 100644
index 5e1c49a4..00000000
--- a/lib/books/coupled/_44c5_s0_p8_0.vqh
+++ /dev/null
@@ -1,80 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c5_s0_p8_0_VQH_
-#define _V__44c5_s0_p8_0_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c5_s0_p8_0[] = {
- 6,
- 5,
- 7,
- 4,
- 8,
- 3,
- 9,
- 2,
- 10,
- 1,
- 11,
- 0,
- 12,
-};
-
-static long _vq_lengthlist__44c5_s0_p8_0[] = {
- 1, 3, 4, 6, 6, 8, 8, 0, 0, 0, 0, 0, 0, 6, 5, 5,
- 6, 6, 9, 9, 0, 0, 0, 0, 0, 0, 6, 5, 5, 7, 7, 9,
- 9, 0, 0, 0, 0, 0, 0, 0, 7, 7, 8, 8, 9, 9, 0, 0,
- 0, 0, 0, 0, 0, 8, 8, 8, 8,10,10, 0, 0, 0, 0, 0,
- 0, 0,12,12, 9, 9,10,11, 0, 0, 0, 0, 0, 0, 0,12,
- 12, 9, 9,10,10, 0, 0, 0, 0, 0, 0, 0, 0, 0,11,11,
- 11,11, 0, 0, 0, 0, 0, 0, 0, 0, 0,11,11,11,11, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,15,15,12,12, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,15,15,12,12, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,13,14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,14,13, 0, 0, 0, 0, 0, 0,
-};
-
-static float _vq_quantthresh__44c5_s0_p8_0[] = {
- -71.5, -58.5, -45.5, -32.5, -19.5, -6.5, 6.5, 19.5,
- 32.5, 45.5, 58.5, 71.5,
-};
-
-static long _vq_quantmap__44c5_s0_p8_0[] = {
- 11, 9, 7, 5, 3, 1, 0, 2,
- 4, 6, 8, 10, 12,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c5_s0_p8_0 = {
- _vq_quantthresh__44c5_s0_p8_0,
- _vq_quantmap__44c5_s0_p8_0,
- 13,
- 13
-};
-
-static static_codebook _44c5_s0_p8_0 = {
- 2, 169,
- _vq_lengthlist__44c5_s0_p8_0,
- 1, -523010048, 1618608128, 4, 0,
- _vq_quantlist__44c5_s0_p8_0,
- NULL,
- &_vq_auxt__44c5_s0_p8_0,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c5_s0_p8_1.vqh b/lib/books/coupled/_44c5_s0_p8_1.vqh
deleted file mode 100644
index 7f4fc925..00000000
--- a/lib/books/coupled/_44c5_s0_p8_1.vqh
+++ /dev/null
@@ -1,80 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c5_s0_p8_1_VQH_
-#define _V__44c5_s0_p8_1_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c5_s0_p8_1[] = {
- 6,
- 5,
- 7,
- 4,
- 8,
- 3,
- 9,
- 2,
- 10,
- 1,
- 11,
- 0,
- 12,
-};
-
-static long _vq_lengthlist__44c5_s0_p8_1[] = {
- 3, 5, 5, 6, 6, 7, 7, 7, 7, 8, 8, 8, 8, 9, 5, 5,
- 6, 6, 7, 7, 8, 8, 8, 8, 8, 8, 9, 5, 5, 6, 6, 7,
- 7, 8, 8, 8, 8, 8, 8, 9, 6, 7, 7, 7, 8, 7, 8, 8,
- 8, 8, 8, 8, 9, 9, 9, 7, 7, 8, 7, 8, 8, 8, 8, 8,
- 8, 9,10,10, 7, 7, 8, 8, 8, 8, 8, 8, 8, 8,10, 9,
- 9, 7, 7, 8, 8, 8, 8, 8, 8, 8, 8, 9, 9,10, 8, 8,
- 8, 8, 8, 8, 8, 8, 8, 8,10,10, 9,10,10, 8, 8, 8,
- 8, 8, 8, 8, 8, 9,10, 9, 9, 9, 8, 8, 8, 8, 8, 8,
- 8, 8,10, 9, 9, 9, 9, 8, 8, 8, 8, 8, 8, 8, 8,10,
- 10,10, 9, 9, 9, 9, 8, 8, 8, 8, 8, 8,10, 9, 9,10,
- 10, 9, 9, 8, 8, 8, 8, 8, 8,
-};
-
-static float _vq_quantthresh__44c5_s0_p8_1[] = {
- -5.5, -4.5, -3.5, -2.5, -1.5, -0.5, 0.5, 1.5,
- 2.5, 3.5, 4.5, 5.5,
-};
-
-static long _vq_quantmap__44c5_s0_p8_1[] = {
- 11, 9, 7, 5, 3, 1, 0, 2,
- 4, 6, 8, 10, 12,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c5_s0_p8_1 = {
- _vq_quantthresh__44c5_s0_p8_1,
- _vq_quantmap__44c5_s0_p8_1,
- 13,
- 13
-};
-
-static static_codebook _44c5_s0_p8_1 = {
- 2, 169,
- _vq_lengthlist__44c5_s0_p8_1,
- 1, -531103744, 1611661312, 4, 0,
- _vq_quantlist__44c5_s0_p8_1,
- NULL,
- &_vq_auxt__44c5_s0_p8_1,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c5_s0_p9_0.vqh b/lib/books/coupled/_44c5_s0_p9_0.vqh
deleted file mode 100644
index b2b5888a..00000000
--- a/lib/books/coupled/_44c5_s0_p9_0.vqh
+++ /dev/null
@@ -1,86 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c5_s0_p9_0_VQH_
-#define _V__44c5_s0_p9_0_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c5_s0_p9_0[] = {
- 7,
- 6,
- 8,
- 5,
- 9,
- 4,
- 10,
- 3,
- 11,
- 2,
- 12,
- 1,
- 13,
- 0,
- 14,
-};
-
-static long _vq_lengthlist__44c5_s0_p9_0[] = {
- 1, 3, 3,11,10,14,14,14,14,14,14,14,14,14,14, 5,
- 5, 5,11,14,14,14,14,14,14,14,14,14,14,14, 5, 6,
- 4,12,12,14,14,14,14,14,14,14,14,14,14,14, 7,10,
- 13,13,14,14,14,14,14,14,14,14,14,14,14,12, 7,14,
- 14,14,14,14,14,14,14,14,14,14,13,13,10,13, 8,13,
- 13,13,13,13,13,13,13,13,13,13,13,13,12,13,11,13,
- 13,13,13,13,13,13,13,13,13,13,13,13,11,13,13,13,
- 13,13,13,13,13,13,13,13,13,13,13,13,12,13,13,13,
- 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,
- 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,
- 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,
- 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,
- 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,
- 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,
- 13,
-};
-
-static float _vq_quantthresh__44c5_s0_p9_0[] = {
- -1436.5, -1215.5, -994.5, -773.5, -552.5, -331.5, -110.5, 110.5,
- 331.5, 552.5, 773.5, 994.5, 1215.5, 1436.5,
-};
-
-static long _vq_quantmap__44c5_s0_p9_0[] = {
- 13, 11, 9, 7, 5, 3, 1, 0,
- 2, 4, 6, 8, 10, 12, 14,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c5_s0_p9_0 = {
- _vq_quantthresh__44c5_s0_p9_0,
- _vq_quantmap__44c5_s0_p9_0,
- 15,
- 15
-};
-
-static static_codebook _44c5_s0_p9_0 = {
- 2, 225,
- _vq_lengthlist__44c5_s0_p9_0,
- 1, -514315264, 1627103232, 4, 0,
- _vq_quantlist__44c5_s0_p9_0,
- NULL,
- &_vq_auxt__44c5_s0_p9_0,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c5_s0_p9_1.vqh b/lib/books/coupled/_44c5_s0_p9_1.vqh
deleted file mode 100644
index 6faae0ce..00000000
--- a/lib/books/coupled/_44c5_s0_p9_1.vqh
+++ /dev/null
@@ -1,93 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c5_s0_p9_1_VQH_
-#define _V__44c5_s0_p9_1_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c5_s0_p9_1[] = {
- 8,
- 7,
- 9,
- 6,
- 10,
- 5,
- 11,
- 4,
- 12,
- 3,
- 13,
- 2,
- 14,
- 1,
- 15,
- 0,
- 16,
-};
-
-static long _vq_lengthlist__44c5_s0_p9_1[] = {
- 1, 4, 4, 6, 6, 7, 7, 7, 7, 8, 8, 9, 9,10,10,10,
- 10, 7, 6, 6, 7, 7, 8, 8, 9, 9, 9,10,10,10,11,11,
- 11,11, 7, 5, 5, 7, 7, 8, 8, 9, 9,10,10,10,10,11,
- 11,11,11,15, 8, 8, 8, 8, 9, 9, 9, 9,10,10,11,11,
- 11,11,11,11,14, 8, 8, 8, 8, 9, 9, 9, 9,10,10,11,
- 11,11,11,12,12,15,12,12, 9, 9,10,10,10,10,10,11,
- 11,11,11,11,11,12,14,12,11, 9, 9,10,10,10,10,11,
- 11,11,11,11,11,12,12,14,14,14,11,11,10,10,10,10,
- 11,11,11,11,11,12,12,12,14,14,14,11,11,10,10,11,
- 11,11,11,11,12,12,12,12,12,15,15,14,13,13,11,11,
- 11,11,12,12,12,12,12,12,12,12,14,14,14,14,14,11,
- 11,11,11,12,12,12,12,12,12,12,12,15,14,15,14,14,
- 12,12,11,12,12,12,12,12,12,12,12,12,14,15,15,14,
- 16,12,12,11,11,12,12,13,12,12,12,12,13,15,14,16,
- 14,15,14,14,12,12,12,12,13,12,12,12,13,13,15,15,
- 15,15,15,14,13,12,12,12,12,12,12,13,13,13,13,14,
- 14,15,14,15,14,15,13,12,12,12,12,12,13,13,13,13,
- 15,15,15,15,14,15,14,12,13,12,12,12,12,13,12,13,
- 13,
-};
-
-static float _vq_quantthresh__44c5_s0_p9_1[] = {
- -97.5, -84.5, -71.5, -58.5, -45.5, -32.5, -19.5, -6.5,
- 6.5, 19.5, 32.5, 45.5, 58.5, 71.5, 84.5, 97.5,
-};
-
-static long _vq_quantmap__44c5_s0_p9_1[] = {
- 15, 13, 11, 9, 7, 5, 3, 1,
- 0, 2, 4, 6, 8, 10, 12, 14,
- 16,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c5_s0_p9_1 = {
- _vq_quantthresh__44c5_s0_p9_1,
- _vq_quantmap__44c5_s0_p9_1,
- 17,
- 17
-};
-
-static static_codebook _44c5_s0_p9_1 = {
- 2, 289,
- _vq_lengthlist__44c5_s0_p9_1,
- 1, -522584064, 1618608128, 5, 0,
- _vq_quantlist__44c5_s0_p9_1,
- NULL,
- &_vq_auxt__44c5_s0_p9_1,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c5_s0_p9_2.vqh b/lib/books/coupled/_44c5_s0_p9_2.vqh
deleted file mode 100644
index 90c6a366..00000000
--- a/lib/books/coupled/_44c5_s0_p9_2.vqh
+++ /dev/null
@@ -1,80 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c5_s0_p9_2_VQH_
-#define _V__44c5_s0_p9_2_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c5_s0_p9_2[] = {
- 6,
- 5,
- 7,
- 4,
- 8,
- 3,
- 9,
- 2,
- 10,
- 1,
- 11,
- 0,
- 12,
-};
-
-static long _vq_lengthlist__44c5_s0_p9_2[] = {
- 3, 5, 5, 6, 6, 6, 6, 7, 7, 7, 7, 7, 7, 8, 6, 6,
- 7, 7, 7, 7, 7, 7, 7, 8, 8, 8, 8, 6, 6, 6, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 9, 7, 7, 7, 7, 7, 7, 8, 8,
- 8, 8, 8, 8, 9, 9, 9, 7, 7, 7, 7, 8, 8, 8, 8, 8,
- 8, 9, 9, 9, 7, 7, 8, 8, 8, 8, 8, 8, 8, 8, 9, 9,
- 9, 7, 8, 8, 8, 8, 8, 8, 8, 8, 8, 9, 9, 9, 8, 8,
- 8, 8, 8, 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, 8, 8, 8,
- 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, 8, 8, 8, 8, 8, 8,
- 8, 8, 9, 9, 9, 9, 9, 8, 8, 8, 8, 8, 8, 8, 8, 9,
- 9, 9, 9, 9, 8, 8, 8, 8, 8, 8, 8, 8, 9, 9, 9, 9,
- 9, 9, 9, 8, 8, 8, 8, 8, 8,
-};
-
-static float _vq_quantthresh__44c5_s0_p9_2[] = {
- -5.5, -4.5, -3.5, -2.5, -1.5, -0.5, 0.5, 1.5,
- 2.5, 3.5, 4.5, 5.5,
-};
-
-static long _vq_quantmap__44c5_s0_p9_2[] = {
- 11, 9, 7, 5, 3, 1, 0, 2,
- 4, 6, 8, 10, 12,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c5_s0_p9_2 = {
- _vq_quantthresh__44c5_s0_p9_2,
- _vq_quantmap__44c5_s0_p9_2,
- 13,
- 13
-};
-
-static static_codebook _44c5_s0_p9_2 = {
- 2, 169,
- _vq_lengthlist__44c5_s0_p9_2,
- 1, -531103744, 1611661312, 4, 0,
- _vq_quantlist__44c5_s0_p9_2,
- NULL,
- &_vq_auxt__44c5_s0_p9_2,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c5_s1_p2_0.vqh b/lib/books/coupled/_44c5_s1_p2_0.vqh
deleted file mode 100644
index 240dfd5a..00000000
--- a/lib/books/coupled/_44c5_s1_p2_0.vqh
+++ /dev/null
@@ -1,63 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c5_s1_p2_0_VQH_
-#define _V__44c5_s1_p2_0_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c5_s1_p2_0[] = {
- 1,
- 0,
- 2,
-};
-
-static long _vq_lengthlist__44c5_s1_p2_0[] = {
- 1, 3, 3, 0, 0, 0, 0, 0, 0, 4, 5, 5, 0, 0, 0, 0,
- 0, 0, 4, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,
-};
-
-static float _vq_quantthresh__44c5_s1_p2_0[] = {
- -0.5, 0.5,
-};
-
-static long _vq_quantmap__44c5_s1_p2_0[] = {
- 1, 0, 2,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c5_s1_p2_0 = {
- _vq_quantthresh__44c5_s1_p2_0,
- _vq_quantmap__44c5_s1_p2_0,
- 3,
- 3
-};
-
-static static_codebook _44c5_s1_p2_0 = {
- 4, 81,
- _vq_lengthlist__44c5_s1_p2_0,
- 1, -535822336, 1611661312, 2, 0,
- _vq_quantlist__44c5_s1_p2_0,
- NULL,
- &_vq_auxt__44c5_s1_p2_0,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c5_s1_p4_0.vqh b/lib/books/coupled/_44c5_s1_p4_0.vqh
deleted file mode 100644
index fcb02916..00000000
--- a/lib/books/coupled/_44c5_s1_p4_0.vqh
+++ /dev/null
@@ -1,99 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c5_s1_p4_0_VQH_
-#define _V__44c5_s1_p4_0_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c5_s1_p4_0[] = {
- 2,
- 1,
- 3,
- 0,
- 4,
-};
-
-static long _vq_lengthlist__44c5_s1_p4_0[] = {
- 2, 3, 3, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 4, 4, 7, 6, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 4, 4, 4, 6, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 6, 9, 9,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 7, 7, 7, 9, 9, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,
-};
-
-static float _vq_quantthresh__44c5_s1_p4_0[] = {
- -1.5, -0.5, 0.5, 1.5,
-};
-
-static long _vq_quantmap__44c5_s1_p4_0[] = {
- 3, 1, 0, 2, 4,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c5_s1_p4_0 = {
- _vq_quantthresh__44c5_s1_p4_0,
- _vq_quantmap__44c5_s1_p4_0,
- 5,
- 5
-};
-
-static static_codebook _44c5_s1_p4_0 = {
- 4, 625,
- _vq_lengthlist__44c5_s1_p4_0,
- 1, -533725184, 1611661312, 3, 0,
- _vq_quantlist__44c5_s1_p4_0,
- NULL,
- &_vq_auxt__44c5_s1_p4_0,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c5_s1_p6_0.vqh b/lib/books/coupled/_44c5_s1_p6_0.vqh
deleted file mode 100644
index ce2dd94a..00000000
--- a/lib/books/coupled/_44c5_s1_p6_0.vqh
+++ /dev/null
@@ -1,93 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c5_s1_p6_0_VQH_
-#define _V__44c5_s1_p6_0_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c5_s1_p6_0[] = {
- 8,
- 7,
- 9,
- 6,
- 10,
- 5,
- 11,
- 4,
- 12,
- 3,
- 13,
- 2,
- 14,
- 1,
- 15,
- 0,
- 16,
-};
-
-static long _vq_lengthlist__44c5_s1_p6_0[] = {
- 2, 2, 2, 4, 4, 7, 7, 9, 9, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 7, 7, 9, 9, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 7, 7, 9, 9, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 8, 8, 9, 9, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 8,10,10, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 8,10,10, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 8,10,10, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9,11,11,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9,10,
- 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9,
- 11,11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9,
- 9,11,11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 10,10,12,11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,11,11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,12,12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,12,12, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,13,13, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,
-};
-
-static float _vq_quantthresh__44c5_s1_p6_0[] = {
- -7.5, -6.5, -5.5, -4.5, -3.5, -2.5, -1.5, -0.5,
- 0.5, 1.5, 2.5, 3.5, 4.5, 5.5, 6.5, 7.5,
-};
-
-static long _vq_quantmap__44c5_s1_p6_0[] = {
- 15, 13, 11, 9, 7, 5, 3, 1,
- 0, 2, 4, 6, 8, 10, 12, 14,
- 16,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c5_s1_p6_0 = {
- _vq_quantthresh__44c5_s1_p6_0,
- _vq_quantmap__44c5_s1_p6_0,
- 17,
- 17
-};
-
-static static_codebook _44c5_s1_p6_0 = {
- 2, 289,
- _vq_lengthlist__44c5_s1_p6_0,
- 1, -529530880, 1611661312, 5, 0,
- _vq_quantlist__44c5_s1_p6_0,
- NULL,
- &_vq_auxt__44c5_s1_p6_0,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c5_s1_p7_0.vqh b/lib/books/coupled/_44c5_s1_p7_0.vqh
deleted file mode 100644
index 5102b87a..00000000
--- a/lib/books/coupled/_44c5_s1_p7_0.vqh
+++ /dev/null
@@ -1,80 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c5_s1_p7_0_VQH_
-#define _V__44c5_s1_p7_0_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c5_s1_p7_0[] = {
- 6,
- 5,
- 7,
- 4,
- 8,
- 3,
- 9,
- 2,
- 10,
- 1,
- 11,
- 0,
- 12,
-};
-
-static long _vq_lengthlist__44c5_s1_p7_0[] = {
- 1, 3, 3, 7, 7, 9, 9, 0, 0, 0, 0, 0, 0, 6, 5, 5,
- 7, 7,10,10, 0, 0, 0, 0, 0, 0, 6, 5, 5, 8, 8,10,
- 10, 0, 0, 0, 0, 0, 0, 0, 8, 8, 8, 8,10,10, 0, 0,
- 0, 0, 0, 0, 0, 8, 8, 8, 8,10,10, 0, 0, 0, 0, 0,
- 0, 0,12,12,10, 9,11,11, 0, 0, 0, 0, 0, 0, 0,13,
- 13,10, 9,11,11, 0, 0, 0, 0, 0, 0, 0, 0, 0,11,12,
- 12,12, 0, 0, 0, 0, 0, 0, 0, 0, 0,12,12,12,12, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,15,15,12,12, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,16,16,13,13, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,15,15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,15,14, 0, 0, 0, 0, 0, 0,
-};
-
-static float _vq_quantthresh__44c5_s1_p7_0[] = {
- -27.5, -22.5, -17.5, -12.5, -7.5, -2.5, 2.5, 7.5,
- 12.5, 17.5, 22.5, 27.5,
-};
-
-static long _vq_quantmap__44c5_s1_p7_0[] = {
- 11, 9, 7, 5, 3, 1, 0, 2,
- 4, 6, 8, 10, 12,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c5_s1_p7_0 = {
- _vq_quantthresh__44c5_s1_p7_0,
- _vq_quantmap__44c5_s1_p7_0,
- 13,
- 13
-};
-
-static static_codebook _44c5_s1_p7_0 = {
- 2, 169,
- _vq_lengthlist__44c5_s1_p7_0,
- 1, -526516224, 1616117760, 4, 0,
- _vq_quantlist__44c5_s1_p7_0,
- NULL,
- &_vq_auxt__44c5_s1_p7_0,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c5_s1_p7_1.vqh b/lib/books/coupled/_44c5_s1_p7_1.vqh
deleted file mode 100644
index b013e15a..00000000
--- a/lib/books/coupled/_44c5_s1_p7_1.vqh
+++ /dev/null
@@ -1,61 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c5_s1_p7_1_VQH_
-#define _V__44c5_s1_p7_1_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c5_s1_p7_1[] = {
- 2,
- 1,
- 3,
- 0,
- 4,
-};
-
-static long _vq_lengthlist__44c5_s1_p7_1[] = {
- 2, 4, 4, 5, 5, 6, 4, 4, 6, 5, 6, 4, 4, 5, 5, 7,
- 6, 6, 6, 5, 7, 7, 7, 5, 5,
-};
-
-static float _vq_quantthresh__44c5_s1_p7_1[] = {
- -1.5, -0.5, 0.5, 1.5,
-};
-
-static long _vq_quantmap__44c5_s1_p7_1[] = {
- 3, 1, 0, 2, 4,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c5_s1_p7_1 = {
- _vq_quantthresh__44c5_s1_p7_1,
- _vq_quantmap__44c5_s1_p7_1,
- 5,
- 5
-};
-
-static static_codebook _44c5_s1_p7_1 = {
- 2, 25,
- _vq_lengthlist__44c5_s1_p7_1,
- 1, -533725184, 1611661312, 3, 0,
- _vq_quantlist__44c5_s1_p7_1,
- NULL,
- &_vq_auxt__44c5_s1_p7_1,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c5_s1_p8_0.vqh b/lib/books/coupled/_44c5_s1_p8_0.vqh
deleted file mode 100644
index b85dd340..00000000
--- a/lib/books/coupled/_44c5_s1_p8_0.vqh
+++ /dev/null
@@ -1,80 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c5_s1_p8_0_VQH_
-#define _V__44c5_s1_p8_0_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c5_s1_p8_0[] = {
- 6,
- 5,
- 7,
- 4,
- 8,
- 3,
- 9,
- 2,
- 10,
- 1,
- 11,
- 0,
- 12,
-};
-
-static long _vq_lengthlist__44c5_s1_p8_0[] = {
- 1, 3, 4, 6, 6, 8, 8, 0, 0, 0, 0, 0, 0, 6, 5, 5,
- 6, 6, 9, 9, 0, 0, 0, 0, 0, 0, 6, 5, 5, 7, 7, 9,
- 9, 0, 0, 0, 0, 0, 0, 0, 7, 7, 8, 8, 9, 9, 0, 0,
- 0, 0, 0, 0, 0, 8, 8, 8, 8,10,10, 0, 0, 0, 0, 0,
- 0, 0,12,12, 9, 9,10,11, 0, 0, 0, 0, 0, 0, 0,12,
- 12, 9, 9,10,10, 0, 0, 0, 0, 0, 0, 0, 0, 0,11,11,
- 11,11, 0, 0, 0, 0, 0, 0, 0, 0, 0,11,11,11,11, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,15,15,12,12, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,15,15,12,12, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,13,14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,14,13, 0, 0, 0, 0, 0, 0,
-};
-
-static float _vq_quantthresh__44c5_s1_p8_0[] = {
- -71.5, -58.5, -45.5, -32.5, -19.5, -6.5, 6.5, 19.5,
- 32.5, 45.5, 58.5, 71.5,
-};
-
-static long _vq_quantmap__44c5_s1_p8_0[] = {
- 11, 9, 7, 5, 3, 1, 0, 2,
- 4, 6, 8, 10, 12,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c5_s1_p8_0 = {
- _vq_quantthresh__44c5_s1_p8_0,
- _vq_quantmap__44c5_s1_p8_0,
- 13,
- 13
-};
-
-static static_codebook _44c5_s1_p8_0 = {
- 2, 169,
- _vq_lengthlist__44c5_s1_p8_0,
- 1, -523010048, 1618608128, 4, 0,
- _vq_quantlist__44c5_s1_p8_0,
- NULL,
- &_vq_auxt__44c5_s1_p8_0,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c5_s1_p8_1.vqh b/lib/books/coupled/_44c5_s1_p8_1.vqh
deleted file mode 100644
index 2237ce05..00000000
--- a/lib/books/coupled/_44c5_s1_p8_1.vqh
+++ /dev/null
@@ -1,80 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c5_s1_p8_1_VQH_
-#define _V__44c5_s1_p8_1_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c5_s1_p8_1[] = {
- 6,
- 5,
- 7,
- 4,
- 8,
- 3,
- 9,
- 2,
- 10,
- 1,
- 11,
- 0,
- 12,
-};
-
-static long _vq_lengthlist__44c5_s1_p8_1[] = {
- 3, 5, 5, 6, 6, 7, 7, 7, 7, 8, 8, 8, 8, 9, 5, 5,
- 6, 7, 7, 7, 8, 8, 8, 8, 8, 8, 9, 5, 5, 6, 6, 7,
- 7, 8, 8, 8, 8, 8, 8, 9, 6, 7, 7, 7, 8, 7, 8, 8,
- 8, 8, 8, 8, 9, 9, 9, 7, 7, 8, 7, 8, 8, 8, 8, 8,
- 8, 9,10, 9, 7, 7, 8, 8, 8, 8, 8, 8, 8, 8, 9, 9,
- 9, 7, 7, 8, 8, 8, 8, 8, 8, 8, 8, 9, 9, 9, 8, 8,
- 8, 8, 8, 8, 8, 8, 8, 8,10,10, 9, 9, 9, 8, 8, 8,
- 8, 8, 8, 8, 8, 9,10, 9, 9, 9, 8, 8, 8, 8, 8, 8,
- 8, 8,10, 9, 9, 9, 9, 8, 8, 8, 8, 8, 8, 8, 8,10,
- 10, 9, 9, 9, 9, 9, 8, 8, 8, 8, 8, 8,10, 9, 9, 9,
- 9, 9, 9, 8, 8, 8, 8, 8, 8,
-};
-
-static float _vq_quantthresh__44c5_s1_p8_1[] = {
- -5.5, -4.5, -3.5, -2.5, -1.5, -0.5, 0.5, 1.5,
- 2.5, 3.5, 4.5, 5.5,
-};
-
-static long _vq_quantmap__44c5_s1_p8_1[] = {
- 11, 9, 7, 5, 3, 1, 0, 2,
- 4, 6, 8, 10, 12,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c5_s1_p8_1 = {
- _vq_quantthresh__44c5_s1_p8_1,
- _vq_quantmap__44c5_s1_p8_1,
- 13,
- 13
-};
-
-static static_codebook _44c5_s1_p8_1 = {
- 2, 169,
- _vq_lengthlist__44c5_s1_p8_1,
- 1, -531103744, 1611661312, 4, 0,
- _vq_quantlist__44c5_s1_p8_1,
- NULL,
- &_vq_auxt__44c5_s1_p8_1,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c5_s1_p9_0.vqh b/lib/books/coupled/_44c5_s1_p9_0.vqh
deleted file mode 100644
index 8387d97f..00000000
--- a/lib/books/coupled/_44c5_s1_p9_0.vqh
+++ /dev/null
@@ -1,86 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c5_s1_p9_0_VQH_
-#define _V__44c5_s1_p9_0_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c5_s1_p9_0[] = {
- 7,
- 6,
- 8,
- 5,
- 9,
- 4,
- 10,
- 3,
- 11,
- 2,
- 12,
- 1,
- 13,
- 0,
- 14,
-};
-
-static long _vq_lengthlist__44c5_s1_p9_0[] = {
- 1, 3, 3,11,10,14,14,14,14,14,14,14,14,14,14, 5,
- 5, 5,11,14,14,14,14,14,14,14,14,14,14,14, 5, 6,
- 4,12,12,14,14,14,14,14,14,14,14,14,14,14, 7,10,
- 13,13,14,14,14,14,14,14,14,14,14,14,14,12, 7,14,
- 14,14,14,14,14,14,14,14,14,14,13,13,10,13, 8,13,
- 13,13,13,13,13,13,13,13,13,13,13,13,12,13,11,13,
- 13,13,13,13,13,13,13,13,13,13,13,13,11,13,13,13,
- 13,13,13,13,13,13,13,13,13,13,13,13,12,13,13,13,
- 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,
- 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,
- 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,
- 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,
- 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,
- 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,
- 13,
-};
-
-static float _vq_quantthresh__44c5_s1_p9_0[] = {
- -1436.5, -1215.5, -994.5, -773.5, -552.5, -331.5, -110.5, 110.5,
- 331.5, 552.5, 773.5, 994.5, 1215.5, 1436.5,
-};
-
-static long _vq_quantmap__44c5_s1_p9_0[] = {
- 13, 11, 9, 7, 5, 3, 1, 0,
- 2, 4, 6, 8, 10, 12, 14,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c5_s1_p9_0 = {
- _vq_quantthresh__44c5_s1_p9_0,
- _vq_quantmap__44c5_s1_p9_0,
- 15,
- 15
-};
-
-static static_codebook _44c5_s1_p9_0 = {
- 2, 225,
- _vq_lengthlist__44c5_s1_p9_0,
- 1, -514315264, 1627103232, 4, 0,
- _vq_quantlist__44c5_s1_p9_0,
- NULL,
- &_vq_auxt__44c5_s1_p9_0,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c5_s1_p9_1.vqh b/lib/books/coupled/_44c5_s1_p9_1.vqh
deleted file mode 100644
index be34c183..00000000
--- a/lib/books/coupled/_44c5_s1_p9_1.vqh
+++ /dev/null
@@ -1,93 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c5_s1_p9_1_VQH_
-#define _V__44c5_s1_p9_1_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c5_s1_p9_1[] = {
- 8,
- 7,
- 9,
- 6,
- 10,
- 5,
- 11,
- 4,
- 12,
- 3,
- 13,
- 2,
- 14,
- 1,
- 15,
- 0,
- 16,
-};
-
-static long _vq_lengthlist__44c5_s1_p9_1[] = {
- 1, 4, 4, 6, 6, 7, 7, 7, 7, 8, 8, 9, 9,10,10,10,
- 10, 7, 6, 6, 7, 7, 8, 8, 9, 9, 9,10,10,10,11,11,
- 11,11, 7, 5, 5, 7, 7, 8, 8, 9, 9,10,10,10,10,11,
- 11,11,11,15, 8, 8, 8, 8, 9, 9, 9, 9,10,10,11,11,
- 11,11,11,11,14, 8, 8, 8, 8, 9, 9, 9, 9,10,10,11,
- 11,11,11,12,12,15,12,12, 9, 9,10,10,10,10,10,11,
- 11,11,11,11,11,12,14,12,11, 9, 9,10,10,10,10,11,
- 11,11,11,11,11,12,12,14,14,14,11,11,10,10,10,10,
- 11,11,11,11,11,12,12,12,14,14,14,11,11,10,10,11,
- 11,11,11,11,12,12,12,12,12,15,15,14,13,13,11,11,
- 11,11,12,12,12,12,12,12,12,12,14,14,14,14,14,11,
- 11,11,11,12,12,12,12,12,12,12,12,15,14,15,14,14,
- 12,12,11,12,12,12,12,12,12,12,12,12,14,15,15,14,
- 16,12,12,11,11,12,12,13,12,12,12,12,13,15,14,16,
- 14,15,14,14,12,12,12,12,13,12,12,12,13,13,15,15,
- 15,15,15,14,13,12,12,12,12,12,12,13,13,13,13,14,
- 14,15,14,15,14,15,13,12,12,12,12,12,13,13,13,13,
- 15,15,15,15,14,15,14,12,13,12,12,12,12,13,12,13,
- 13,
-};
-
-static float _vq_quantthresh__44c5_s1_p9_1[] = {
- -97.5, -84.5, -71.5, -58.5, -45.5, -32.5, -19.5, -6.5,
- 6.5, 19.5, 32.5, 45.5, 58.5, 71.5, 84.5, 97.5,
-};
-
-static long _vq_quantmap__44c5_s1_p9_1[] = {
- 15, 13, 11, 9, 7, 5, 3, 1,
- 0, 2, 4, 6, 8, 10, 12, 14,
- 16,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c5_s1_p9_1 = {
- _vq_quantthresh__44c5_s1_p9_1,
- _vq_quantmap__44c5_s1_p9_1,
- 17,
- 17
-};
-
-static static_codebook _44c5_s1_p9_1 = {
- 2, 289,
- _vq_lengthlist__44c5_s1_p9_1,
- 1, -522584064, 1618608128, 5, 0,
- _vq_quantlist__44c5_s1_p9_1,
- NULL,
- &_vq_auxt__44c5_s1_p9_1,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c5_s1_p9_2.vqh b/lib/books/coupled/_44c5_s1_p9_2.vqh
deleted file mode 100644
index dc077e26..00000000
--- a/lib/books/coupled/_44c5_s1_p9_2.vqh
+++ /dev/null
@@ -1,80 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c5_s1_p9_2_VQH_
-#define _V__44c5_s1_p9_2_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c5_s1_p9_2[] = {
- 6,
- 5,
- 7,
- 4,
- 8,
- 3,
- 9,
- 2,
- 10,
- 1,
- 11,
- 0,
- 12,
-};
-
-static long _vq_lengthlist__44c5_s1_p9_2[] = {
- 3, 5, 5, 6, 6, 6, 6, 7, 7, 7, 7, 7, 7, 8, 6, 6,
- 7, 7, 7, 7, 7, 7, 7, 8, 8, 8, 8, 6, 6, 6, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 9, 7, 7, 7, 7, 7, 7, 8, 8,
- 8, 8, 8, 8, 9, 9, 9, 7, 7, 7, 7, 8, 8, 8, 8, 8,
- 8, 9, 9, 9, 7, 7, 8, 8, 8, 8, 8, 8, 8, 8, 9, 9,
- 9, 7, 8, 8, 8, 8, 8, 8, 8, 8, 8, 9, 9, 9, 8, 8,
- 8, 8, 8, 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, 8, 8, 8,
- 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, 8, 8, 8, 8, 8, 8,
- 8, 8, 9, 9, 9, 9, 9, 8, 8, 8, 8, 8, 8, 8, 8, 9,
- 9, 9, 9, 9, 8, 8, 8, 8, 8, 8, 8, 8, 9, 9, 9, 9,
- 9, 9, 9, 8, 8, 8, 8, 8, 8,
-};
-
-static float _vq_quantthresh__44c5_s1_p9_2[] = {
- -5.5, -4.5, -3.5, -2.5, -1.5, -0.5, 0.5, 1.5,
- 2.5, 3.5, 4.5, 5.5,
-};
-
-static long _vq_quantmap__44c5_s1_p9_2[] = {
- 11, 9, 7, 5, 3, 1, 0, 2,
- 4, 6, 8, 10, 12,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c5_s1_p9_2 = {
- _vq_quantthresh__44c5_s1_p9_2,
- _vq_quantmap__44c5_s1_p9_2,
- 13,
- 13
-};
-
-static static_codebook _44c5_s1_p9_2 = {
- 2, 169,
- _vq_lengthlist__44c5_s1_p9_2,
- 1, -531103744, 1611661312, 4, 0,
- _vq_quantlist__44c5_s1_p9_2,
- NULL,
- &_vq_auxt__44c5_s1_p9_2,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c5_s2_p6_0.vqh b/lib/books/coupled/_44c5_s2_p6_0.vqh
deleted file mode 100644
index 4d92bac6..00000000
--- a/lib/books/coupled/_44c5_s2_p6_0.vqh
+++ /dev/null
@@ -1,70 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c5_s2_p6_0_VQH_
-#define _V__44c5_s2_p6_0_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c5_s2_p6_0[] = {
- 4,
- 3,
- 5,
- 2,
- 6,
- 1,
- 7,
- 0,
- 8,
-};
-
-static long _vq_lengthlist__44c5_s2_p6_0[] = {
- 2, 2, 2, 3, 4, 5, 6, 7, 7, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,
-};
-
-static float _vq_quantthresh__44c5_s2_p6_0[] = {
- -3.5, -2.5, -1.5, -0.5, 0.5, 1.5, 2.5, 3.5,
-};
-
-static long _vq_quantmap__44c5_s2_p6_0[] = {
- 7, 5, 3, 1, 0, 2, 4, 6,
- 8,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c5_s2_p6_0 = {
- _vq_quantthresh__44c5_s2_p6_0,
- _vq_quantmap__44c5_s2_p6_0,
- 9,
- 9
-};
-
-static static_codebook _44c5_s2_p6_0 = {
- 2, 81,
- _vq_lengthlist__44c5_s2_p6_0,
- 1, -531628032, 1611661312, 4, 0,
- _vq_quantlist__44c5_s2_p6_0,
- NULL,
- &_vq_auxt__44c5_s2_p6_0,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c5_s2_p7_0.vqh b/lib/books/coupled/_44c5_s2_p7_0.vqh
deleted file mode 100644
index 3c7f9260..00000000
--- a/lib/books/coupled/_44c5_s2_p7_0.vqh
+++ /dev/null
@@ -1,80 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c5_s2_p7_0_VQH_
-#define _V__44c5_s2_p7_0_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c5_s2_p7_0[] = {
- 6,
- 5,
- 7,
- 4,
- 8,
- 3,
- 9,
- 2,
- 10,
- 1,
- 11,
- 0,
- 12,
-};
-
-static long _vq_lengthlist__44c5_s2_p7_0[] = {
- 1, 3, 3, 7, 7, 9, 9, 0, 0, 0, 0, 0, 0, 6, 5, 5,
- 7, 7,10,10, 0, 0, 0, 0, 0, 0, 6, 5, 5, 8, 8,10,
- 10, 0, 0, 0, 0, 0, 0, 0, 8, 8, 8, 8,10,10, 0, 0,
- 0, 0, 0, 0, 0, 8, 8, 8, 8,10,10, 0, 0, 0, 0, 0,
- 0, 0,12,12,10, 9,11,11, 0, 0, 0, 0, 0, 0, 0,13,
- 13,10, 9,11,11, 0, 0, 0, 0, 0, 0, 0, 0, 0,11,12,
- 12,12, 0, 0, 0, 0, 0, 0, 0, 0, 0,12,12,12,12, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,15,15,12,12, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,16,16,13,13, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,15,15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,15,14, 0, 0, 0, 0, 0, 0,
-};
-
-static float _vq_quantthresh__44c5_s2_p7_0[] = {
- -27.5, -22.5, -17.5, -12.5, -7.5, -2.5, 2.5, 7.5,
- 12.5, 17.5, 22.5, 27.5,
-};
-
-static long _vq_quantmap__44c5_s2_p7_0[] = {
- 11, 9, 7, 5, 3, 1, 0, 2,
- 4, 6, 8, 10, 12,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c5_s2_p7_0 = {
- _vq_quantthresh__44c5_s2_p7_0,
- _vq_quantmap__44c5_s2_p7_0,
- 13,
- 13
-};
-
-static static_codebook _44c5_s2_p7_0 = {
- 2, 169,
- _vq_lengthlist__44c5_s2_p7_0,
- 1, -526516224, 1616117760, 4, 0,
- _vq_quantlist__44c5_s2_p7_0,
- NULL,
- &_vq_auxt__44c5_s2_p7_0,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c5_s2_p7_1.vqh b/lib/books/coupled/_44c5_s2_p7_1.vqh
deleted file mode 100644
index 22d54189..00000000
--- a/lib/books/coupled/_44c5_s2_p7_1.vqh
+++ /dev/null
@@ -1,61 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c5_s2_p7_1_VQH_
-#define _V__44c5_s2_p7_1_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c5_s2_p7_1[] = {
- 2,
- 1,
- 3,
- 0,
- 4,
-};
-
-static long _vq_lengthlist__44c5_s2_p7_1[] = {
- 2, 4, 3, 5, 5, 6, 4, 4, 6, 6, 6, 4, 4, 5, 5, 7,
- 6, 6, 6, 6, 7, 7, 7, 6, 6,
-};
-
-static float _vq_quantthresh__44c5_s2_p7_1[] = {
- -1.5, -0.5, 0.5, 1.5,
-};
-
-static long _vq_quantmap__44c5_s2_p7_1[] = {
- 3, 1, 0, 2, 4,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c5_s2_p7_1 = {
- _vq_quantthresh__44c5_s2_p7_1,
- _vq_quantmap__44c5_s2_p7_1,
- 5,
- 5
-};
-
-static static_codebook _44c5_s2_p7_1 = {
- 2, 25,
- _vq_lengthlist__44c5_s2_p7_1,
- 1, -533725184, 1611661312, 3, 0,
- _vq_quantlist__44c5_s2_p7_1,
- NULL,
- &_vq_auxt__44c5_s2_p7_1,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c5_s2_p8_0.vqh b/lib/books/coupled/_44c5_s2_p8_0.vqh
deleted file mode 100644
index 19e8c462..00000000
--- a/lib/books/coupled/_44c5_s2_p8_0.vqh
+++ /dev/null
@@ -1,80 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c5_s2_p8_0_VQH_
-#define _V__44c5_s2_p8_0_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c5_s2_p8_0[] = {
- 6,
- 5,
- 7,
- 4,
- 8,
- 3,
- 9,
- 2,
- 10,
- 1,
- 11,
- 0,
- 12,
-};
-
-static long _vq_lengthlist__44c5_s2_p8_0[] = {
- 1, 3, 4, 6, 6, 8, 8, 0, 0, 0, 0, 0, 0, 6, 5, 5,
- 6, 6, 9, 9, 0, 0, 0, 0, 0, 0, 6, 5, 5, 7, 7, 9,
- 9, 0, 0, 0, 0, 0, 0, 0, 7, 7, 8, 8, 9, 9, 0, 0,
- 0, 0, 0, 0, 0, 8, 8, 8, 8,10,10, 0, 0, 0, 0, 0,
- 0, 0,12,12, 9, 9,10,11, 0, 0, 0, 0, 0, 0, 0,12,
- 12, 9, 9,10,10, 0, 0, 0, 0, 0, 0, 0, 0, 0,11,11,
- 11,11, 0, 0, 0, 0, 0, 0, 0, 0, 0,11,11,11,11, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,15,15,12,12, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,15,15,12,12, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,13,14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,14,13, 0, 0, 0, 0, 0, 0,
-};
-
-static float _vq_quantthresh__44c5_s2_p8_0[] = {
- -71.5, -58.5, -45.5, -32.5, -19.5, -6.5, 6.5, 19.5,
- 32.5, 45.5, 58.5, 71.5,
-};
-
-static long _vq_quantmap__44c5_s2_p8_0[] = {
- 11, 9, 7, 5, 3, 1, 0, 2,
- 4, 6, 8, 10, 12,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c5_s2_p8_0 = {
- _vq_quantthresh__44c5_s2_p8_0,
- _vq_quantmap__44c5_s2_p8_0,
- 13,
- 13
-};
-
-static static_codebook _44c5_s2_p8_0 = {
- 2, 169,
- _vq_lengthlist__44c5_s2_p8_0,
- 1, -523010048, 1618608128, 4, 0,
- _vq_quantlist__44c5_s2_p8_0,
- NULL,
- &_vq_auxt__44c5_s2_p8_0,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c5_s2_p8_1.vqh b/lib/books/coupled/_44c5_s2_p8_1.vqh
deleted file mode 100644
index fcde15a9..00000000
--- a/lib/books/coupled/_44c5_s2_p8_1.vqh
+++ /dev/null
@@ -1,80 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c5_s2_p8_1_VQH_
-#define _V__44c5_s2_p8_1_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c5_s2_p8_1[] = {
- 6,
- 5,
- 7,
- 4,
- 8,
- 3,
- 9,
- 2,
- 10,
- 1,
- 11,
- 0,
- 12,
-};
-
-static long _vq_lengthlist__44c5_s2_p8_1[] = {
- 3, 5, 5, 6, 6, 7, 7, 7, 7, 8, 8, 8, 8, 9, 5, 5,
- 6, 7, 7, 7, 8, 8, 8, 8, 8, 8, 9, 5, 5, 6, 6, 7,
- 7, 8, 8, 8, 8, 8, 8, 9, 6, 7, 7, 7, 8, 7, 8, 8,
- 8, 8, 8, 8, 9, 9, 9, 7, 7, 8, 7, 8, 8, 8, 8, 8,
- 8, 9,10, 9, 7, 7, 8, 8, 8, 8, 8, 8, 8, 8, 9, 9,
- 9, 7, 7, 8, 8, 8, 8, 8, 8, 8, 8, 9, 9, 9, 8, 8,
- 8, 8, 8, 8, 8, 8, 8, 8,10,10, 9, 9, 9, 8, 8, 8,
- 8, 8, 8, 8, 8, 9,10, 9, 9, 9, 8, 8, 8, 8, 8, 8,
- 8, 8,10, 9, 9, 9, 9, 8, 8, 8, 8, 8, 8, 8, 8,10,
- 10, 9, 9, 9, 9, 9, 8, 8, 8, 8, 8, 8,10, 9, 9, 9,
- 9, 9, 9, 8, 8, 8, 8, 8, 8,
-};
-
-static float _vq_quantthresh__44c5_s2_p8_1[] = {
- -5.5, -4.5, -3.5, -2.5, -1.5, -0.5, 0.5, 1.5,
- 2.5, 3.5, 4.5, 5.5,
-};
-
-static long _vq_quantmap__44c5_s2_p8_1[] = {
- 11, 9, 7, 5, 3, 1, 0, 2,
- 4, 6, 8, 10, 12,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c5_s2_p8_1 = {
- _vq_quantthresh__44c5_s2_p8_1,
- _vq_quantmap__44c5_s2_p8_1,
- 13,
- 13
-};
-
-static static_codebook _44c5_s2_p8_1 = {
- 2, 169,
- _vq_lengthlist__44c5_s2_p8_1,
- 1, -531103744, 1611661312, 4, 0,
- _vq_quantlist__44c5_s2_p8_1,
- NULL,
- &_vq_auxt__44c5_s2_p8_1,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c5_s2_p9_0.vqh b/lib/books/coupled/_44c5_s2_p9_0.vqh
deleted file mode 100644
index e624ddae..00000000
--- a/lib/books/coupled/_44c5_s2_p9_0.vqh
+++ /dev/null
@@ -1,86 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c5_s2_p9_0_VQH_
-#define _V__44c5_s2_p9_0_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c5_s2_p9_0[] = {
- 7,
- 6,
- 8,
- 5,
- 9,
- 4,
- 10,
- 3,
- 11,
- 2,
- 12,
- 1,
- 13,
- 0,
- 14,
-};
-
-static long _vq_lengthlist__44c5_s2_p9_0[] = {
- 1, 3, 3,11,10,14,14,14,14,14,14,14,14,14,14, 5,
- 5, 5,11,14,14,14,14,14,14,14,14,14,14,14, 5, 6,
- 4,12,12,14,14,14,14,14,14,14,14,14,14,14, 7,10,
- 13,13,14,14,14,14,14,14,14,14,14,14,14,12, 7,14,
- 14,14,14,14,14,14,14,14,14,14,13,13,10,13, 8,13,
- 13,13,13,13,13,13,13,13,13,13,13,13,12,13,11,13,
- 13,13,13,13,13,13,13,13,13,13,13,13,11,13,13,13,
- 13,13,13,13,13,13,13,13,13,13,13,13,12,13,13,13,
- 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,
- 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,
- 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,
- 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,
- 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,
- 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,
- 13,
-};
-
-static float _vq_quantthresh__44c5_s2_p9_0[] = {
- -1436.5, -1215.5, -994.5, -773.5, -552.5, -331.5, -110.5, 110.5,
- 331.5, 552.5, 773.5, 994.5, 1215.5, 1436.5,
-};
-
-static long _vq_quantmap__44c5_s2_p9_0[] = {
- 13, 11, 9, 7, 5, 3, 1, 0,
- 2, 4, 6, 8, 10, 12, 14,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c5_s2_p9_0 = {
- _vq_quantthresh__44c5_s2_p9_0,
- _vq_quantmap__44c5_s2_p9_0,
- 15,
- 15
-};
-
-static static_codebook _44c5_s2_p9_0 = {
- 2, 225,
- _vq_lengthlist__44c5_s2_p9_0,
- 1, -514315264, 1627103232, 4, 0,
- _vq_quantlist__44c5_s2_p9_0,
- NULL,
- &_vq_auxt__44c5_s2_p9_0,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c5_s2_p9_1.vqh b/lib/books/coupled/_44c5_s2_p9_1.vqh
deleted file mode 100644
index 590a0460..00000000
--- a/lib/books/coupled/_44c5_s2_p9_1.vqh
+++ /dev/null
@@ -1,93 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c5_s2_p9_1_VQH_
-#define _V__44c5_s2_p9_1_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c5_s2_p9_1[] = {
- 8,
- 7,
- 9,
- 6,
- 10,
- 5,
- 11,
- 4,
- 12,
- 3,
- 13,
- 2,
- 14,
- 1,
- 15,
- 0,
- 16,
-};
-
-static long _vq_lengthlist__44c5_s2_p9_1[] = {
- 1, 4, 4, 6, 6, 7, 7, 7, 7, 8, 8, 9, 9,10,10,10,
- 10, 7, 6, 6, 7, 7, 8, 8, 9, 9, 9,10,10,10,11,11,
- 11,11, 7, 5, 5, 7, 7, 8, 8, 9, 9,10,10,10,10,11,
- 11,11,11,15, 8, 8, 8, 8, 9, 9, 9, 9,10,10,11,11,
- 11,11,11,11,14, 8, 8, 8, 8, 9, 9, 9, 9,10,10,11,
- 11,11,11,12,12,15,12,12, 9, 9,10,10,10,10,10,11,
- 11,11,11,11,11,12,14,12,11, 9, 9,10,10,10,10,11,
- 11,11,11,11,11,12,12,14,14,14,11,11,10,10,10,10,
- 11,11,11,11,11,12,12,12,14,14,14,11,11,10,10,11,
- 11,11,11,11,12,12,12,12,12,15,15,14,13,13,11,11,
- 11,11,12,12,12,12,12,12,12,12,14,14,14,14,14,11,
- 11,11,11,12,12,12,12,12,12,12,12,15,14,15,14,14,
- 12,12,11,12,12,12,12,12,12,12,12,12,14,15,15,14,
- 16,12,12,11,11,12,12,13,12,12,12,12,13,15,14,16,
- 14,15,14,14,12,12,12,12,13,12,12,12,13,13,15,15,
- 15,15,15,14,13,12,12,12,12,12,12,13,13,13,13,14,
- 14,15,14,15,14,15,13,12,12,12,12,12,13,13,13,13,
- 15,15,15,15,14,15,14,12,13,12,12,12,12,13,12,13,
- 13,
-};
-
-static float _vq_quantthresh__44c5_s2_p9_1[] = {
- -97.5, -84.5, -71.5, -58.5, -45.5, -32.5, -19.5, -6.5,
- 6.5, 19.5, 32.5, 45.5, 58.5, 71.5, 84.5, 97.5,
-};
-
-static long _vq_quantmap__44c5_s2_p9_1[] = {
- 15, 13, 11, 9, 7, 5, 3, 1,
- 0, 2, 4, 6, 8, 10, 12, 14,
- 16,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c5_s2_p9_1 = {
- _vq_quantthresh__44c5_s2_p9_1,
- _vq_quantmap__44c5_s2_p9_1,
- 17,
- 17
-};
-
-static static_codebook _44c5_s2_p9_1 = {
- 2, 289,
- _vq_lengthlist__44c5_s2_p9_1,
- 1, -522584064, 1618608128, 5, 0,
- _vq_quantlist__44c5_s2_p9_1,
- NULL,
- &_vq_auxt__44c5_s2_p9_1,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c5_s2_p9_2.vqh b/lib/books/coupled/_44c5_s2_p9_2.vqh
deleted file mode 100644
index 9a1c73a8..00000000
--- a/lib/books/coupled/_44c5_s2_p9_2.vqh
+++ /dev/null
@@ -1,80 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c5_s2_p9_2_VQH_
-#define _V__44c5_s2_p9_2_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c5_s2_p9_2[] = {
- 6,
- 5,
- 7,
- 4,
- 8,
- 3,
- 9,
- 2,
- 10,
- 1,
- 11,
- 0,
- 12,
-};
-
-static long _vq_lengthlist__44c5_s2_p9_2[] = {
- 3, 5, 5, 6, 6, 6, 6, 7, 7, 7, 7, 7, 7, 8, 6, 6,
- 7, 7, 7, 7, 7, 7, 7, 8, 8, 8, 8, 6, 6, 6, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 9, 7, 7, 7, 7, 7, 7, 8, 8,
- 8, 8, 8, 8, 9, 9, 9, 7, 7, 7, 7, 8, 8, 8, 8, 8,
- 8, 9, 9, 9, 7, 7, 8, 8, 8, 8, 8, 8, 8, 8, 9, 9,
- 9, 7, 8, 8, 8, 8, 8, 8, 8, 8, 8, 9, 9, 9, 8, 8,
- 8, 8, 8, 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, 8, 8, 8,
- 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, 8, 8, 8, 8, 8, 8,
- 8, 8, 9, 9, 9, 9, 9, 8, 8, 8, 8, 8, 8, 8, 8, 9,
- 9, 9, 9, 9, 8, 8, 8, 8, 8, 8, 8, 8, 9, 9, 9, 9,
- 9, 9, 9, 8, 8, 8, 8, 8, 8,
-};
-
-static float _vq_quantthresh__44c5_s2_p9_2[] = {
- -5.5, -4.5, -3.5, -2.5, -1.5, -0.5, 0.5, 1.5,
- 2.5, 3.5, 4.5, 5.5,
-};
-
-static long _vq_quantmap__44c5_s2_p9_2[] = {
- 11, 9, 7, 5, 3, 1, 0, 2,
- 4, 6, 8, 10, 12,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c5_s2_p9_2 = {
- _vq_quantthresh__44c5_s2_p9_2,
- _vq_quantmap__44c5_s2_p9_2,
- 13,
- 13
-};
-
-static static_codebook _44c5_s2_p9_2 = {
- 2, 169,
- _vq_lengthlist__44c5_s2_p9_2,
- 1, -531103744, 1611661312, 4, 0,
- _vq_quantlist__44c5_s2_p9_2,
- NULL,
- &_vq_auxt__44c5_s2_p9_2,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c5_s3_p7_0.vqh b/lib/books/coupled/_44c5_s3_p7_0.vqh
deleted file mode 100644
index 4374c991..00000000
--- a/lib/books/coupled/_44c5_s3_p7_0.vqh
+++ /dev/null
@@ -1,80 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c5_s3_p7_0_VQH_
-#define _V__44c5_s3_p7_0_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c5_s3_p7_0[] = {
- 6,
- 5,
- 7,
- 4,
- 8,
- 3,
- 9,
- 2,
- 10,
- 1,
- 11,
- 0,
- 12,
-};
-
-static long _vq_lengthlist__44c5_s3_p7_0[] = {
- 1, 3, 3, 7, 7,10,10, 0, 0, 0, 0, 0, 0, 6, 5, 5,
- 7, 7,10,10, 0, 0, 0, 0, 0, 0, 6, 5, 5, 8, 7,10,
- 10, 0, 0, 0, 0, 0, 0, 0, 8, 8, 8, 8,10,10, 0, 0,
- 0, 0, 0, 0, 0, 8, 8, 8, 8,10,10, 0, 0, 0, 0, 0,
- 0, 0,13,12,10,10,11,11, 0, 0, 0, 0, 0, 0, 0,13,
- 13,10,10,10,11, 0, 0, 0, 0, 0, 0, 0, 0, 0,12,12,
- 12,12, 0, 0, 0, 0, 0, 0, 0, 0, 0,12,12,11,12, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,16,16,13,13, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,17,17,13,13, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,16,15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,16,16, 0, 0, 0, 0, 0, 0,
-};
-
-static float _vq_quantthresh__44c5_s3_p7_0[] = {
- -27.5, -22.5, -17.5, -12.5, -7.5, -2.5, 2.5, 7.5,
- 12.5, 17.5, 22.5, 27.5,
-};
-
-static long _vq_quantmap__44c5_s3_p7_0[] = {
- 11, 9, 7, 5, 3, 1, 0, 2,
- 4, 6, 8, 10, 12,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c5_s3_p7_0 = {
- _vq_quantthresh__44c5_s3_p7_0,
- _vq_quantmap__44c5_s3_p7_0,
- 13,
- 13
-};
-
-static static_codebook _44c5_s3_p7_0 = {
- 2, 169,
- _vq_lengthlist__44c5_s3_p7_0,
- 1, -526516224, 1616117760, 4, 0,
- _vq_quantlist__44c5_s3_p7_0,
- NULL,
- &_vq_auxt__44c5_s3_p7_0,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c5_s3_p7_1.vqh b/lib/books/coupled/_44c5_s3_p7_1.vqh
deleted file mode 100644
index a0845bb6..00000000
--- a/lib/books/coupled/_44c5_s3_p7_1.vqh
+++ /dev/null
@@ -1,61 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c5_s3_p7_1_VQH_
-#define _V__44c5_s3_p7_1_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c5_s3_p7_1[] = {
- 2,
- 1,
- 3,
- 0,
- 4,
-};
-
-static long _vq_lengthlist__44c5_s3_p7_1[] = {
- 2, 4, 4, 5, 5, 7, 4, 4, 6, 5, 7, 4, 4, 5, 5, 7,
- 6, 6, 5, 5, 7, 7, 7, 5, 5,
-};
-
-static float _vq_quantthresh__44c5_s3_p7_1[] = {
- -1.5, -0.5, 0.5, 1.5,
-};
-
-static long _vq_quantmap__44c5_s3_p7_1[] = {
- 3, 1, 0, 2, 4,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c5_s3_p7_1 = {
- _vq_quantthresh__44c5_s3_p7_1,
- _vq_quantmap__44c5_s3_p7_1,
- 5,
- 5
-};
-
-static static_codebook _44c5_s3_p7_1 = {
- 2, 25,
- _vq_lengthlist__44c5_s3_p7_1,
- 1, -533725184, 1611661312, 3, 0,
- _vq_quantlist__44c5_s3_p7_1,
- NULL,
- &_vq_auxt__44c5_s3_p7_1,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c5_s3_p8_0.vqh b/lib/books/coupled/_44c5_s3_p8_0.vqh
deleted file mode 100644
index 987d3ac0..00000000
--- a/lib/books/coupled/_44c5_s3_p8_0.vqh
+++ /dev/null
@@ -1,80 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c5_s3_p8_0_VQH_
-#define _V__44c5_s3_p8_0_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c5_s3_p8_0[] = {
- 6,
- 5,
- 7,
- 4,
- 8,
- 3,
- 9,
- 2,
- 10,
- 1,
- 11,
- 0,
- 12,
-};
-
-static long _vq_lengthlist__44c5_s3_p8_0[] = {
- 1, 3, 4, 6, 6, 8, 8, 0, 0, 0, 0, 0, 0, 6, 5, 5,
- 6, 6, 9, 9, 0, 0, 0, 0, 0, 0, 6, 5, 5, 7, 6, 9,
- 9, 0, 0, 0, 0, 0, 0, 0, 8, 8, 8, 8, 9, 9, 0, 0,
- 0, 0, 0, 0, 0, 8, 8, 8, 8, 9,10, 0, 0, 0, 0, 0,
- 0, 0,13,12, 9, 9,10,11, 0, 0, 0, 0, 0, 0, 0,12,
- 13, 9, 9,10,10, 0, 0, 0, 0, 0, 0, 0, 0, 0,11,12,
- 11,11, 0, 0, 0, 0, 0, 0, 0, 0, 0,11,12,11,11, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,15,16,12,12, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,15,16,12,12, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,15,15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,15,14, 0, 0, 0, 0, 0, 0,
-};
-
-static float _vq_quantthresh__44c5_s3_p8_0[] = {
- -71.5, -58.5, -45.5, -32.5, -19.5, -6.5, 6.5, 19.5,
- 32.5, 45.5, 58.5, 71.5,
-};
-
-static long _vq_quantmap__44c5_s3_p8_0[] = {
- 11, 9, 7, 5, 3, 1, 0, 2,
- 4, 6, 8, 10, 12,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c5_s3_p8_0 = {
- _vq_quantthresh__44c5_s3_p8_0,
- _vq_quantmap__44c5_s3_p8_0,
- 13,
- 13
-};
-
-static static_codebook _44c5_s3_p8_0 = {
- 2, 169,
- _vq_lengthlist__44c5_s3_p8_0,
- 1, -523010048, 1618608128, 4, 0,
- _vq_quantlist__44c5_s3_p8_0,
- NULL,
- &_vq_auxt__44c5_s3_p8_0,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c5_s3_p8_1.vqh b/lib/books/coupled/_44c5_s3_p8_1.vqh
deleted file mode 100644
index 04d232ff..00000000
--- a/lib/books/coupled/_44c5_s3_p8_1.vqh
+++ /dev/null
@@ -1,80 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c5_s3_p8_1_VQH_
-#define _V__44c5_s3_p8_1_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c5_s3_p8_1[] = {
- 6,
- 5,
- 7,
- 4,
- 8,
- 3,
- 9,
- 2,
- 10,
- 1,
- 11,
- 0,
- 12,
-};
-
-static long _vq_lengthlist__44c5_s3_p8_1[] = {
- 3, 5, 5, 6, 6, 7, 7, 8, 8, 8, 8, 8, 8, 9, 5, 5,
- 6, 6, 7, 7, 8, 8, 8, 8, 8, 8, 9, 5, 5, 6, 6, 7,
- 7, 8, 8, 8, 8, 8, 8, 9, 7, 7, 7, 7, 7, 7, 8, 8,
- 8, 8, 8, 8,10, 9, 9, 7, 7, 7, 7, 8, 8, 8, 8, 8,
- 8, 9, 9, 9, 7, 8, 8, 8, 8, 8, 8, 8, 8, 8,10, 9,
- 9, 8, 7, 8, 8, 8, 8, 8, 8, 8, 8, 9, 9, 9, 8, 8,
- 8, 8, 8, 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, 8, 8, 8,
- 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, 8, 8, 8, 8, 8, 8,
- 8, 8, 9, 9, 9, 9, 9, 8, 8, 8, 8, 8, 8, 8, 8, 9,
- 9, 9, 9, 9, 8, 9, 8, 8, 8, 8, 8, 8, 9, 9, 9, 9,
- 9, 9, 9, 8, 8, 8, 8, 8, 8,
-};
-
-static float _vq_quantthresh__44c5_s3_p8_1[] = {
- -5.5, -4.5, -3.5, -2.5, -1.5, -0.5, 0.5, 1.5,
- 2.5, 3.5, 4.5, 5.5,
-};
-
-static long _vq_quantmap__44c5_s3_p8_1[] = {
- 11, 9, 7, 5, 3, 1, 0, 2,
- 4, 6, 8, 10, 12,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c5_s3_p8_1 = {
- _vq_quantthresh__44c5_s3_p8_1,
- _vq_quantmap__44c5_s3_p8_1,
- 13,
- 13
-};
-
-static static_codebook _44c5_s3_p8_1 = {
- 2, 169,
- _vq_lengthlist__44c5_s3_p8_1,
- 1, -531103744, 1611661312, 4, 0,
- _vq_quantlist__44c5_s3_p8_1,
- NULL,
- &_vq_auxt__44c5_s3_p8_1,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c5_s3_p9_0.vqh b/lib/books/coupled/_44c5_s3_p9_0.vqh
deleted file mode 100644
index 9efe1323..00000000
--- a/lib/books/coupled/_44c5_s3_p9_0.vqh
+++ /dev/null
@@ -1,86 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c5_s3_p9_0_VQH_
-#define _V__44c5_s3_p9_0_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c5_s3_p9_0[] = {
- 7,
- 6,
- 8,
- 5,
- 9,
- 4,
- 10,
- 3,
- 11,
- 2,
- 12,
- 1,
- 13,
- 0,
- 14,
-};
-
-static long _vq_lengthlist__44c5_s3_p9_0[] = {
- 1, 3, 3,12,10,12,12,12,12,12,12,12,12,12,12, 5,
- 5, 5,11,12,12,12,12,12,12,12,12,12,12,12, 5, 5,
- 5,10,11,12,12,12,12,12,12,12,12,12,12,12,12,10,
- 12,12,12,12,12,12,12,12,12,12,12,12,12,10,12,12,
- 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,
- 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,
- 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,
- 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,
- 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,
- 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,
- 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,
- 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,
- 12,12,12,12,12,12,12,11,11,11,11,11,11,11,11,11,
- 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,
- 11,
-};
-
-static float _vq_quantthresh__44c5_s3_p9_0[] = {
- -1436.5, -1215.5, -994.5, -773.5, -552.5, -331.5, -110.5, 110.5,
- 331.5, 552.5, 773.5, 994.5, 1215.5, 1436.5,
-};
-
-static long _vq_quantmap__44c5_s3_p9_0[] = {
- 13, 11, 9, 7, 5, 3, 1, 0,
- 2, 4, 6, 8, 10, 12, 14,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c5_s3_p9_0 = {
- _vq_quantthresh__44c5_s3_p9_0,
- _vq_quantmap__44c5_s3_p9_0,
- 15,
- 15
-};
-
-static static_codebook _44c5_s3_p9_0 = {
- 2, 225,
- _vq_lengthlist__44c5_s3_p9_0,
- 1, -514315264, 1627103232, 4, 0,
- _vq_quantlist__44c5_s3_p9_0,
- NULL,
- &_vq_auxt__44c5_s3_p9_0,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c5_s3_p9_1.vqh b/lib/books/coupled/_44c5_s3_p9_1.vqh
deleted file mode 100644
index 2fab965e..00000000
--- a/lib/books/coupled/_44c5_s3_p9_1.vqh
+++ /dev/null
@@ -1,93 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c5_s3_p9_1_VQH_
-#define _V__44c5_s3_p9_1_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c5_s3_p9_1[] = {
- 8,
- 7,
- 9,
- 6,
- 10,
- 5,
- 11,
- 4,
- 12,
- 3,
- 13,
- 2,
- 14,
- 1,
- 15,
- 0,
- 16,
-};
-
-static long _vq_lengthlist__44c5_s3_p9_1[] = {
- 1, 4, 4, 7, 6, 8, 8, 8, 9,10,10,11,11,11,11,11,
- 11, 6, 5, 5, 7, 7, 8, 8, 9, 9,10,10,11,11,11,11,
- 12,12, 7, 5, 5, 7, 7, 8, 8, 9, 9,10,10,11,11,11,
- 12,12,12,14, 8, 8, 8, 8, 9, 9, 9, 9,10,10,11,11,
- 11,11,12,12,14, 8, 8, 8, 8, 9, 9, 9, 9,10,10,11,
- 11,12,12,12,12,15,12,12, 9, 9, 9, 9,10,10,10,11,
- 11,11,11,12,12,12,14,12,12, 9, 9,10, 9,10,10,11,
- 10,11,11,11,11,12,12,15,15,14,11,11,10,10,10,10,
- 11,11,12,11,12,12,12,12,15,14,14,11,11,10,10,11,
- 10,11,11,12,12,12,12,12,12,15,16,15,14,13,11,11,
- 11,11,11,12,12,12,12,13,12,12,16,14,15,13,14,11,
- 11,11,11,12,12,12,12,12,13,12,12,16,15,16,15,14,
- 12,12,12,12,12,12,12,12,12,12,12,12,15,16,15,15,
- 15,12,12,11,11,12,13,12,13,12,12,12,12,16,15,16,
- 15,15,14,13,12,11,12,12,12,12,12,13,12,13,16,15,
- 15,15,16,14,14,12,12,12,12,12,12,12,12,13,13,15,
- 14,15,15,16,15,15,13,13,12,12,12,12,12,13,13,13,
- 15,16,15,16,15,14,15,13,12,12,12,12,12,13,12,13,
- 13,
-};
-
-static float _vq_quantthresh__44c5_s3_p9_1[] = {
- -97.5, -84.5, -71.5, -58.5, -45.5, -32.5, -19.5, -6.5,
- 6.5, 19.5, 32.5, 45.5, 58.5, 71.5, 84.5, 97.5,
-};
-
-static long _vq_quantmap__44c5_s3_p9_1[] = {
- 15, 13, 11, 9, 7, 5, 3, 1,
- 0, 2, 4, 6, 8, 10, 12, 14,
- 16,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c5_s3_p9_1 = {
- _vq_quantthresh__44c5_s3_p9_1,
- _vq_quantmap__44c5_s3_p9_1,
- 17,
- 17
-};
-
-static static_codebook _44c5_s3_p9_1 = {
- 2, 289,
- _vq_lengthlist__44c5_s3_p9_1,
- 1, -522584064, 1618608128, 5, 0,
- _vq_quantlist__44c5_s3_p9_1,
- NULL,
- &_vq_auxt__44c5_s3_p9_1,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c5_s3_p9_2.vqh b/lib/books/coupled/_44c5_s3_p9_2.vqh
deleted file mode 100644
index 478afd44..00000000
--- a/lib/books/coupled/_44c5_s3_p9_2.vqh
+++ /dev/null
@@ -1,80 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c5_s3_p9_2_VQH_
-#define _V__44c5_s3_p9_2_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c5_s3_p9_2[] = {
- 6,
- 5,
- 7,
- 4,
- 8,
- 3,
- 9,
- 2,
- 10,
- 1,
- 11,
- 0,
- 12,
-};
-
-static long _vq_lengthlist__44c5_s3_p9_2[] = {
- 5, 6, 6, 6, 6, 7, 7, 7, 7, 8, 7, 8, 8, 8, 6, 6,
- 6, 7, 7, 7, 7, 7, 7, 8, 7, 8, 8, 6, 6, 6, 6, 7,
- 7, 7, 7, 7, 7, 7, 7, 8, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 8, 8, 7, 8, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 8,
- 8, 8, 8, 8, 7, 7, 7, 7, 7, 8, 8, 8, 8, 7, 8, 8,
- 8, 7, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
- 8, 8, 8, 8, 8, 8, 8, 8, 9, 8, 8, 8, 8, 8, 8, 8,
- 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
- 8, 8, 9, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
- 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 9, 9, 8,
- 8, 8, 8, 8, 8, 8, 8, 8, 8,
-};
-
-static float _vq_quantthresh__44c5_s3_p9_2[] = {
- -5.5, -4.5, -3.5, -2.5, -1.5, -0.5, 0.5, 1.5,
- 2.5, 3.5, 4.5, 5.5,
-};
-
-static long _vq_quantmap__44c5_s3_p9_2[] = {
- 11, 9, 7, 5, 3, 1, 0, 2,
- 4, 6, 8, 10, 12,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c5_s3_p9_2 = {
- _vq_quantthresh__44c5_s3_p9_2,
- _vq_quantmap__44c5_s3_p9_2,
- 13,
- 13
-};
-
-static static_codebook _44c5_s3_p9_2 = {
- 2, 169,
- _vq_lengthlist__44c5_s3_p9_2,
- 1, -531103744, 1611661312, 4, 0,
- _vq_quantlist__44c5_s3_p9_2,
- NULL,
- &_vq_auxt__44c5_s3_p9_2,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c5_short.vqh b/lib/books/coupled/_44c5_short.vqh
deleted file mode 100644
index f7c092a8..00000000
--- a/lib/books/coupled/_44c5_short.vqh
+++ /dev/null
@@ -1,43 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by huff/huffbuld
-
- ********************************************************************/
-
-#ifndef _V__44c5_short_VQH_
-#define _V__44c5_short_VQH_
-#include "codebook.h"
-
-static long _huff_lengthlist__44c5_short[] = {
- 3,18, 9,18,12,17,14,16,17,17,16,15,17,12,17,12,
- 17,14,17,17, 4,17, 4,17, 5,17, 7, 9,17,17,17, 9,
- 17, 7,17, 8,17,10,17,17, 8,17, 4,17, 3,17, 5, 8,
- 16,17,17, 9,17, 6,17, 6,17, 8,16,17, 9,17, 5,17,
- 4,17, 4, 6,14,17,12,11, 9, 8, 7, 5, 5, 5,12,17,
- 17,17,15, 9,16, 7,14, 5, 9,16,17,15,17, 8,17, 5,
- 17, 4, 8,11,
-};
-
-static static_codebook _huff_book__44c5_short = {
- 2, 100,
- _huff_lengthlist__44c5_short,
- 0, 0, 0, 0, 0,
- NULL,
- NULL,
- NULL,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c6_long.vqh b/lib/books/coupled/_44c6_long.vqh
deleted file mode 100644
index 195d88f2..00000000
--- a/lib/books/coupled/_44c6_long.vqh
+++ /dev/null
@@ -1,43 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by huff/huffbuld
-
- ********************************************************************/
-
-#ifndef _V__44c6_long_VQH_
-#define _V__44c6_long_VQH_
-#include "codebook.h"
-
-static long _huff_lengthlist__44c6_long[] = {
- 2,11, 7,14,11,16,11,11,13,13,10, 9,11,11,13,11,
- 13,10,11,14, 6,20, 4,20, 5,20, 7, 9,14,16,14,11,
- 12, 9,10, 7, 9, 8,11,13,10,20, 5,19, 4,19, 4, 8,
- 13,19,14,11,12, 7, 8, 5, 7, 5, 9,13,11,19, 7,19,
- 4,19, 4, 6,13,16,10,10, 8, 8, 7, 5, 6, 4, 7,12,
- 11,11,12,10,11, 8,10, 6, 6, 9,11,12,14,12,15,10,
- 15, 7, 7, 7,
-};
-
-static static_codebook _huff_book__44c6_long = {
- 2, 100,
- _huff_lengthlist__44c6_long,
- 0, 0, 0, 0, 0,
- NULL,
- NULL,
- NULL,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c6_s0_p1_0.vqh b/lib/books/coupled/_44c6_s0_p1_0.vqh
deleted file mode 100644
index 2d2be61b..00000000
--- a/lib/books/coupled/_44c6_s0_p1_0.vqh
+++ /dev/null
@@ -1,99 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c6_s0_p1_0_VQH_
-#define _V__44c6_s0_p1_0_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c6_s0_p1_0[] = {
- 2,
- 1,
- 3,
- 0,
- 4,
-};
-
-static long _vq_lengthlist__44c6_s0_p1_0[] = {
- 1, 6, 6, 0, 0, 0, 5, 5, 0, 0, 0, 5, 5, 0, 0, 0,
- 8, 8, 0, 0, 0, 0, 0, 0, 0, 6, 7, 7, 0, 0, 0, 9,
- 8, 0, 0, 0, 8, 9, 0, 0, 0,12,12, 0, 0, 0, 0, 0,
- 0, 0, 5, 7, 7, 0, 0, 0, 8, 9, 0, 0, 0, 9, 9, 0,
- 0, 0,12,11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 5, 9, 9, 0, 0, 0, 8, 7, 0, 0,
- 0, 8, 8, 0, 0, 0,10,10, 0, 0, 0, 0, 0, 0, 0, 5,
- 9, 8, 0, 0, 0, 8, 8, 0, 0, 0, 8, 8, 0, 0, 0,10,
- 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 5, 9, 9, 0, 0, 0, 8, 8, 0, 0, 0, 8, 8,
- 0, 0, 0,10,10, 0, 0, 0, 0, 0, 0, 0, 5, 9, 9, 0,
- 0, 0, 8, 8, 0, 0, 0, 8, 8, 0, 0, 0,11,10, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 8,12,11, 0, 0, 0,10,10, 0, 0, 0,10,10, 0, 0, 0,
- 11,11, 0, 0, 0, 0, 0, 0, 0, 8,11,11, 0, 0, 0,10,
- 10, 0, 0, 0,11,10, 0, 0, 0,11,11, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,
-};
-
-static float _vq_quantthresh__44c6_s0_p1_0[] = {
- -1.5, -0.5, 0.5, 1.5,
-};
-
-static long _vq_quantmap__44c6_s0_p1_0[] = {
- 3, 1, 0, 2, 4,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c6_s0_p1_0 = {
- _vq_quantthresh__44c6_s0_p1_0,
- _vq_quantmap__44c6_s0_p1_0,
- 5,
- 5
-};
-
-static static_codebook _44c6_s0_p1_0 = {
- 4, 625,
- _vq_lengthlist__44c6_s0_p1_0,
- 1, -533725184, 1611661312, 3, 0,
- _vq_quantlist__44c6_s0_p1_0,
- NULL,
- &_vq_auxt__44c6_s0_p1_0,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c6_s0_p2_0.vqh b/lib/books/coupled/_44c6_s0_p2_0.vqh
deleted file mode 100644
index 2c015664..00000000
--- a/lib/books/coupled/_44c6_s0_p2_0.vqh
+++ /dev/null
@@ -1,99 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c6_s0_p2_0_VQH_
-#define _V__44c6_s0_p2_0_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c6_s0_p2_0[] = {
- 2,
- 1,
- 3,
- 0,
- 4,
-};
-
-static long _vq_lengthlist__44c6_s0_p2_0[] = {
- 1, 6, 6, 0, 0, 0, 5, 5, 0, 0, 0, 5, 5, 0, 0, 0,
- 8, 8, 0, 0, 0, 0, 0, 0, 0, 6, 8, 7, 0, 0, 0, 9,
- 8, 0, 0, 0, 9, 8, 0, 0, 0,11,11, 0, 0, 0, 0, 0,
- 0, 0, 6, 7, 8, 0, 0, 0, 8, 9, 0, 0, 0, 8, 9, 0,
- 0, 0,11,11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 5, 8, 8, 0, 0, 0, 8, 7, 0, 0,
- 0, 8, 8, 0, 0, 0,10,10, 0, 0, 0, 0, 0, 0, 0, 5,
- 8, 9, 0, 0, 0, 7, 8, 0, 0, 0, 8, 8, 0, 0, 0,10,
- 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 5, 9, 8, 0, 0, 0, 8, 8, 0, 0, 0, 8, 7,
- 0, 0, 0,10,10, 0, 0, 0, 0, 0, 0, 0, 5, 8, 9, 0,
- 0, 0, 8, 8, 0, 0, 0, 7, 8, 0, 0, 0,10,10, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 8,11,11, 0, 0, 0,10,10, 0, 0, 0,10,10, 0, 0, 0,
- 11,11, 0, 0, 0, 0, 0, 0, 0, 8,11,11, 0, 0, 0,10,
- 10, 0, 0, 0,10,10, 0, 0, 0,11,11, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,
-};
-
-static float _vq_quantthresh__44c6_s0_p2_0[] = {
- -1.5, -0.5, 0.5, 1.5,
-};
-
-static long _vq_quantmap__44c6_s0_p2_0[] = {
- 3, 1, 0, 2, 4,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c6_s0_p2_0 = {
- _vq_quantthresh__44c6_s0_p2_0,
- _vq_quantmap__44c6_s0_p2_0,
- 5,
- 5
-};
-
-static static_codebook _44c6_s0_p2_0 = {
- 4, 625,
- _vq_lengthlist__44c6_s0_p2_0,
- 1, -533725184, 1611661312, 3, 0,
- _vq_quantlist__44c6_s0_p2_0,
- NULL,
- &_vq_auxt__44c6_s0_p2_0,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c6_s0_p3_0.vqh b/lib/books/coupled/_44c6_s0_p3_0.vqh
deleted file mode 100644
index 5332a5fb..00000000
--- a/lib/books/coupled/_44c6_s0_p3_0.vqh
+++ /dev/null
@@ -1,70 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c6_s0_p3_0_VQH_
-#define _V__44c6_s0_p3_0_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c6_s0_p3_0[] = {
- 4,
- 3,
- 5,
- 2,
- 6,
- 1,
- 7,
- 0,
- 8,
-};
-
-static long _vq_lengthlist__44c6_s0_p3_0[] = {
- 2, 3, 3, 5, 5, 0, 0, 0, 0, 0, 4, 4, 6, 6, 0, 0,
- 0, 0, 0, 4, 4, 6, 6, 0, 0, 0, 0, 0, 6, 6, 6, 6,
- 0, 0, 0, 0, 0, 0, 0, 6, 6, 0, 0, 0, 0, 0, 0, 0,
- 8, 7, 0, 0, 0, 0, 0, 0, 0, 7, 7, 0, 0, 0, 0, 0,
- 0, 0, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,
-};
-
-static float _vq_quantthresh__44c6_s0_p3_0[] = {
- -3.5, -2.5, -1.5, -0.5, 0.5, 1.5, 2.5, 3.5,
-};
-
-static long _vq_quantmap__44c6_s0_p3_0[] = {
- 7, 5, 3, 1, 0, 2, 4, 6,
- 8,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c6_s0_p3_0 = {
- _vq_quantthresh__44c6_s0_p3_0,
- _vq_quantmap__44c6_s0_p3_0,
- 9,
- 9
-};
-
-static static_codebook _44c6_s0_p3_0 = {
- 2, 81,
- _vq_lengthlist__44c6_s0_p3_0,
- 1, -531628032, 1611661312, 4, 0,
- _vq_quantlist__44c6_s0_p3_0,
- NULL,
- &_vq_auxt__44c6_s0_p3_0,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c6_s0_p4_0.vqh b/lib/books/coupled/_44c6_s0_p4_0.vqh
deleted file mode 100644
index 68c5e108..00000000
--- a/lib/books/coupled/_44c6_s0_p4_0.vqh
+++ /dev/null
@@ -1,70 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c6_s0_p4_0_VQH_
-#define _V__44c6_s0_p4_0_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c6_s0_p4_0[] = {
- 4,
- 3,
- 5,
- 2,
- 6,
- 1,
- 7,
- 0,
- 8,
-};
-
-static long _vq_lengthlist__44c6_s0_p4_0[] = {
- 2, 3, 3, 6, 6, 0, 0, 0, 0, 0, 4, 4, 6, 6, 0, 0,
- 0, 0, 0, 4, 4, 6, 6, 0, 0, 0, 0, 0, 5, 5, 6, 6,
- 0, 0, 0, 0, 0, 0, 0, 6, 6, 0, 0, 0, 0, 0, 0, 0,
- 7, 7, 0, 0, 0, 0, 0, 0, 0, 7, 8, 0, 0, 0, 0, 0,
- 0, 0, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,
-};
-
-static float _vq_quantthresh__44c6_s0_p4_0[] = {
- -3.5, -2.5, -1.5, -0.5, 0.5, 1.5, 2.5, 3.5,
-};
-
-static long _vq_quantmap__44c6_s0_p4_0[] = {
- 7, 5, 3, 1, 0, 2, 4, 6,
- 8,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c6_s0_p4_0 = {
- _vq_quantthresh__44c6_s0_p4_0,
- _vq_quantmap__44c6_s0_p4_0,
- 9,
- 9
-};
-
-static static_codebook _44c6_s0_p4_0 = {
- 2, 81,
- _vq_lengthlist__44c6_s0_p4_0,
- 1, -531628032, 1611661312, 4, 0,
- _vq_quantlist__44c6_s0_p4_0,
- NULL,
- &_vq_auxt__44c6_s0_p4_0,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c6_s0_p5_0.vqh b/lib/books/coupled/_44c6_s0_p5_0.vqh
deleted file mode 100644
index 410942e7..00000000
--- a/lib/books/coupled/_44c6_s0_p5_0.vqh
+++ /dev/null
@@ -1,93 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c6_s0_p5_0_VQH_
-#define _V__44c6_s0_p5_0_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c6_s0_p5_0[] = {
- 8,
- 7,
- 9,
- 6,
- 10,
- 5,
- 11,
- 4,
- 12,
- 3,
- 13,
- 2,
- 14,
- 1,
- 15,
- 0,
- 16,
-};
-
-static long _vq_lengthlist__44c6_s0_p5_0[] = {
- 3, 4, 4, 5, 5, 7, 7, 8, 8, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 4, 4, 5, 5, 7, 7, 9, 9, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 4, 4, 6, 5, 7, 7, 9, 9, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 5, 5, 6, 6, 7, 7, 9, 9, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 6, 6, 7, 7, 9, 9, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 8, 8, 9, 9, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 8, 8, 9, 9, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 8, 8, 8,10,10,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 8, 9,
- 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9,
- 10,10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9,
- 9,10,10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 10,10,11,11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,11,11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,12,11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,11,11, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,13,13, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,
-};
-
-static float _vq_quantthresh__44c6_s0_p5_0[] = {
- -7.5, -6.5, -5.5, -4.5, -3.5, -2.5, -1.5, -0.5,
- 0.5, 1.5, 2.5, 3.5, 4.5, 5.5, 6.5, 7.5,
-};
-
-static long _vq_quantmap__44c6_s0_p5_0[] = {
- 15, 13, 11, 9, 7, 5, 3, 1,
- 0, 2, 4, 6, 8, 10, 12, 14,
- 16,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c6_s0_p5_0 = {
- _vq_quantthresh__44c6_s0_p5_0,
- _vq_quantmap__44c6_s0_p5_0,
- 17,
- 17
-};
-
-static static_codebook _44c6_s0_p5_0 = {
- 2, 289,
- _vq_lengthlist__44c6_s0_p5_0,
- 1, -529530880, 1611661312, 5, 0,
- _vq_quantlist__44c6_s0_p5_0,
- NULL,
- &_vq_auxt__44c6_s0_p5_0,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c6_s0_p6_0.vqh b/lib/books/coupled/_44c6_s0_p6_0.vqh
deleted file mode 100644
index 446d087f..00000000
--- a/lib/books/coupled/_44c6_s0_p6_0.vqh
+++ /dev/null
@@ -1,93 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c6_s0_p6_0_VQH_
-#define _V__44c6_s0_p6_0_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c6_s0_p6_0[] = {
- 8,
- 7,
- 9,
- 6,
- 10,
- 5,
- 11,
- 4,
- 12,
- 3,
- 13,
- 2,
- 14,
- 1,
- 15,
- 0,
- 16,
-};
-
-static long _vq_lengthlist__44c6_s0_p6_0[] = {
- 3, 4, 4, 5, 5, 7, 7, 9, 9, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 4, 4, 5, 5, 7, 7, 9, 9, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 4, 4, 5, 5, 7, 7, 9, 9, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 5, 5, 6, 6, 7, 7,10,10, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 6, 6, 7, 7,10,10, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 8, 8,10,10, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 8, 8,10,10, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 8, 8, 8,10,10,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 8,10,
- 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9,
- 11,11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9,
- 9,11,10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 10,10,11,11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,11,11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,12,12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,12,12, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,12,12, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,
-};
-
-static float _vq_quantthresh__44c6_s0_p6_0[] = {
- -7.5, -6.5, -5.5, -4.5, -3.5, -2.5, -1.5, -0.5,
- 0.5, 1.5, 2.5, 3.5, 4.5, 5.5, 6.5, 7.5,
-};
-
-static long _vq_quantmap__44c6_s0_p6_0[] = {
- 15, 13, 11, 9, 7, 5, 3, 1,
- 0, 2, 4, 6, 8, 10, 12, 14,
- 16,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c6_s0_p6_0 = {
- _vq_quantthresh__44c6_s0_p6_0,
- _vq_quantmap__44c6_s0_p6_0,
- 17,
- 17
-};
-
-static static_codebook _44c6_s0_p6_0 = {
- 2, 289,
- _vq_lengthlist__44c6_s0_p6_0,
- 1, -529530880, 1611661312, 5, 0,
- _vq_quantlist__44c6_s0_p6_0,
- NULL,
- &_vq_auxt__44c6_s0_p6_0,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c6_s0_p7_0.vqh b/lib/books/coupled/_44c6_s0_p7_0.vqh
deleted file mode 100644
index 48cbc331..00000000
--- a/lib/books/coupled/_44c6_s0_p7_0.vqh
+++ /dev/null
@@ -1,80 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c6_s0_p7_0_VQH_
-#define _V__44c6_s0_p7_0_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c6_s0_p7_0[] = {
- 6,
- 5,
- 7,
- 4,
- 8,
- 3,
- 9,
- 2,
- 10,
- 1,
- 11,
- 0,
- 12,
-};
-
-static long _vq_lengthlist__44c6_s0_p7_0[] = {
- 1, 3, 3, 7, 7,10,10, 0, 0, 0, 0, 0, 0, 5, 5, 5,
- 8, 8,10,10, 0, 0, 0, 0, 0, 0, 6, 5, 5, 8, 8,10,
- 10, 0, 0, 0, 0, 0, 0, 0, 8, 8, 8, 9,10,11, 0, 0,
- 0, 0, 0, 0, 0, 8, 8, 8, 8,11,11, 0, 0, 0, 0, 0,
- 0, 0,12,12,10,10,11,11, 0, 0, 0, 0, 0, 0, 0,13,
- 13,10,10,11,11, 0, 0, 0, 0, 0, 0, 0, 0, 0,12,12,
- 12,12, 0, 0, 0, 0, 0, 0, 0, 0, 0,12,12,12,12, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,15,15,13,13, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,16,16,13,13, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,14,15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,15,15, 0, 0, 0, 0, 0, 0,
-};
-
-static float _vq_quantthresh__44c6_s0_p7_0[] = {
- -27.5, -22.5, -17.5, -12.5, -7.5, -2.5, 2.5, 7.5,
- 12.5, 17.5, 22.5, 27.5,
-};
-
-static long _vq_quantmap__44c6_s0_p7_0[] = {
- 11, 9, 7, 5, 3, 1, 0, 2,
- 4, 6, 8, 10, 12,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c6_s0_p7_0 = {
- _vq_quantthresh__44c6_s0_p7_0,
- _vq_quantmap__44c6_s0_p7_0,
- 13,
- 13
-};
-
-static static_codebook _44c6_s0_p7_0 = {
- 2, 169,
- _vq_lengthlist__44c6_s0_p7_0,
- 1, -526516224, 1616117760, 4, 0,
- _vq_quantlist__44c6_s0_p7_0,
- NULL,
- &_vq_auxt__44c6_s0_p7_0,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c6_s0_p7_1.vqh b/lib/books/coupled/_44c6_s0_p7_1.vqh
deleted file mode 100644
index da6ac804..00000000
--- a/lib/books/coupled/_44c6_s0_p7_1.vqh
+++ /dev/null
@@ -1,61 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c6_s0_p7_1_VQH_
-#define _V__44c6_s0_p7_1_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c6_s0_p7_1[] = {
- 2,
- 1,
- 3,
- 0,
- 4,
-};
-
-static long _vq_lengthlist__44c6_s0_p7_1[] = {
- 3, 4, 4, 4, 5, 6, 4, 4, 5, 5, 6, 4, 4, 5, 5, 6,
- 5, 5, 5, 5, 6, 6, 6, 5, 5,
-};
-
-static float _vq_quantthresh__44c6_s0_p7_1[] = {
- -1.5, -0.5, 0.5, 1.5,
-};
-
-static long _vq_quantmap__44c6_s0_p7_1[] = {
- 3, 1, 0, 2, 4,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c6_s0_p7_1 = {
- _vq_quantthresh__44c6_s0_p7_1,
- _vq_quantmap__44c6_s0_p7_1,
- 5,
- 5
-};
-
-static static_codebook _44c6_s0_p7_1 = {
- 2, 25,
- _vq_lengthlist__44c6_s0_p7_1,
- 1, -533725184, 1611661312, 3, 0,
- _vq_quantlist__44c6_s0_p7_1,
- NULL,
- &_vq_auxt__44c6_s0_p7_1,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c6_s0_p8_0.vqh b/lib/books/coupled/_44c6_s0_p8_0.vqh
deleted file mode 100644
index f7090def..00000000
--- a/lib/books/coupled/_44c6_s0_p8_0.vqh
+++ /dev/null
@@ -1,80 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c6_s0_p8_0_VQH_
-#define _V__44c6_s0_p8_0_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c6_s0_p8_0[] = {
- 6,
- 5,
- 7,
- 4,
- 8,
- 3,
- 9,
- 2,
- 10,
- 1,
- 11,
- 0,
- 12,
-};
-
-static long _vq_lengthlist__44c6_s0_p8_0[] = {
- 1, 4, 3, 6, 6, 8, 8, 0, 0, 0, 0, 0, 0, 6, 5, 5,
- 7, 7, 9, 9, 0, 0, 0, 0, 0, 0, 6, 5, 5, 7, 7, 9,
- 9, 0, 0, 0, 0, 0, 0, 0, 7, 7, 8, 8,10, 9, 0, 0,
- 0, 0, 0, 0, 0, 7, 7, 7, 7,10, 9, 0, 0, 0, 0, 0,
- 0, 0,12,11, 9, 9,10,11, 0, 0, 0, 0, 0, 0, 0,12,
- 12, 9, 9,10,10, 0, 0, 0, 0, 0, 0, 0, 0, 0,11,11,
- 11,11, 0, 0, 0, 0, 0, 0, 0, 0, 0,11,11,11,11, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,15,16,12,12, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,15,16,12,12, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,15,14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,15,15, 0, 0, 0, 0, 0, 0,
-};
-
-static float _vq_quantthresh__44c6_s0_p8_0[] = {
- -71.5, -58.5, -45.5, -32.5, -19.5, -6.5, 6.5, 19.5,
- 32.5, 45.5, 58.5, 71.5,
-};
-
-static long _vq_quantmap__44c6_s0_p8_0[] = {
- 11, 9, 7, 5, 3, 1, 0, 2,
- 4, 6, 8, 10, 12,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c6_s0_p8_0 = {
- _vq_quantthresh__44c6_s0_p8_0,
- _vq_quantmap__44c6_s0_p8_0,
- 13,
- 13
-};
-
-static static_codebook _44c6_s0_p8_0 = {
- 2, 169,
- _vq_lengthlist__44c6_s0_p8_0,
- 1, -523010048, 1618608128, 4, 0,
- _vq_quantlist__44c6_s0_p8_0,
- NULL,
- &_vq_auxt__44c6_s0_p8_0,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c6_s0_p8_1.vqh b/lib/books/coupled/_44c6_s0_p8_1.vqh
deleted file mode 100644
index f2aa3de7..00000000
--- a/lib/books/coupled/_44c6_s0_p8_1.vqh
+++ /dev/null
@@ -1,80 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c6_s0_p8_1_VQH_
-#define _V__44c6_s0_p8_1_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c6_s0_p8_1[] = {
- 6,
- 5,
- 7,
- 4,
- 8,
- 3,
- 9,
- 2,
- 10,
- 1,
- 11,
- 0,
- 12,
-};
-
-static long _vq_lengthlist__44c6_s0_p8_1[] = {
- 3, 5, 5, 6, 6, 7, 7, 7, 8, 8, 8, 8, 8, 9, 5, 5,
- 6, 6, 7, 7, 8, 8, 8, 8, 8, 8, 9, 5, 5, 6, 6, 7,
- 7, 8, 8, 8, 8, 8, 8, 9, 6, 6, 7, 7, 8, 8, 8, 8,
- 8, 8, 8, 8, 9, 9, 9, 7, 7, 8, 7, 8, 8, 8, 8, 8,
- 8,10, 9, 9, 7, 7, 8, 8, 8, 8, 8, 8, 8, 8, 9,10,
- 9, 7, 7, 8, 8, 8, 8, 8, 8, 8, 8, 9,10, 9, 8, 8,
- 8, 8, 8, 8, 8, 8, 8, 8,10,10, 9,10, 9, 8, 8, 8,
- 8, 8, 8, 8, 8,10, 9, 9,10, 9, 8, 8, 8, 8, 8, 8,
- 8, 8,10,10,10,10, 9, 8, 8, 8, 8, 8, 8, 8, 8, 9,
- 10,10, 9, 9, 9, 9, 8, 8, 8, 8, 8, 8,10, 9,10, 9,
- 9, 9, 9, 8, 8, 8, 8, 8, 8,
-};
-
-static float _vq_quantthresh__44c6_s0_p8_1[] = {
- -5.5, -4.5, -3.5, -2.5, -1.5, -0.5, 0.5, 1.5,
- 2.5, 3.5, 4.5, 5.5,
-};
-
-static long _vq_quantmap__44c6_s0_p8_1[] = {
- 11, 9, 7, 5, 3, 1, 0, 2,
- 4, 6, 8, 10, 12,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c6_s0_p8_1 = {
- _vq_quantthresh__44c6_s0_p8_1,
- _vq_quantmap__44c6_s0_p8_1,
- 13,
- 13
-};
-
-static static_codebook _44c6_s0_p8_1 = {
- 2, 169,
- _vq_lengthlist__44c6_s0_p8_1,
- 1, -531103744, 1611661312, 4, 0,
- _vq_quantlist__44c6_s0_p8_1,
- NULL,
- &_vq_auxt__44c6_s0_p8_1,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c6_s0_p9_0.vqh b/lib/books/coupled/_44c6_s0_p9_0.vqh
deleted file mode 100644
index b4259662..00000000
--- a/lib/books/coupled/_44c6_s0_p9_0.vqh
+++ /dev/null
@@ -1,70 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c6_s0_p9_0_VQH_
-#define _V__44c6_s0_p9_0_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c6_s0_p9_0[] = {
- 4,
- 3,
- 5,
- 2,
- 6,
- 1,
- 7,
- 0,
- 8,
-};
-
-static long _vq_lengthlist__44c6_s0_p9_0[] = {
- 1, 4, 4,12,12,12,12,12,12, 4, 6, 8,12,12,12,12,
- 12,12, 2,10, 7,12,12,12,12,12,12,12, 7,12,12,12,
- 12,12,12,12,12,12, 7,12,12,12,12,12,12,12,12,12,
- 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,
- 12,12,12,12,12,12,12,12,12,12,12,11,11,11,11,11,
- 11,
-};
-
-static float _vq_quantthresh__44c6_s0_p9_0[] = {
- -2229.5, -1592.5, -955.5, -318.5, 318.5, 955.5, 1592.5, 2229.5,
-};
-
-static long _vq_quantmap__44c6_s0_p9_0[] = {
- 7, 5, 3, 1, 0, 2, 4, 6,
- 8,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c6_s0_p9_0 = {
- _vq_quantthresh__44c6_s0_p9_0,
- _vq_quantmap__44c6_s0_p9_0,
- 9,
- 9
-};
-
-static static_codebook _44c6_s0_p9_0 = {
- 2, 81,
- _vq_lengthlist__44c6_s0_p9_0,
- 1, -512497664, 1630791680, 4, 0,
- _vq_quantlist__44c6_s0_p9_0,
- NULL,
- &_vq_auxt__44c6_s0_p9_0,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c6_s0_p9_1.vqh b/lib/books/coupled/_44c6_s0_p9_1.vqh
deleted file mode 100644
index 55235566..00000000
--- a/lib/books/coupled/_44c6_s0_p9_1.vqh
+++ /dev/null
@@ -1,80 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c6_s0_p9_1_VQH_
-#define _V__44c6_s0_p9_1_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c6_s0_p9_1[] = {
- 6,
- 5,
- 7,
- 4,
- 8,
- 3,
- 9,
- 2,
- 10,
- 1,
- 11,
- 0,
- 12,
-};
-
-static long _vq_lengthlist__44c6_s0_p9_1[] = {
- 1, 3, 3, 6, 6, 8, 8,10,10,11,11,12,12, 6, 5, 5,
- 8, 8, 9, 9,11,11,12,12,12,12, 6, 6, 5, 8, 8,10,
- 10,11,11,12,12,12,12,19, 8, 9, 9, 9,10,11,11,12,
- 12,13,13,12,15, 9, 8, 9, 9,11,11,12,12,12,13,12,
- 13,17,12,13,10,10,12,12,12,13,12,12,13,12,17,13,
- 12,10,10,12,12,13,12,12,13,13,14,19,15,16,13,12,
- 12,12,13,14,13,10,14,13,18,18,18,12,12,12,11,13,
- 13,13,13,15,14,17,16,18,14,14,13,12,14,12,14,12,
- 13,14,18,18,18,14,15,13,11,13,11,14,14,15,15,18,
- 16,17,16,18,14,14,14,12,14,12,14,14,18,18,18,18,
- 17,14,13,14,11,15,12,14,14,
-};
-
-static float _vq_quantthresh__44c6_s0_p9_1[] = {
- -269.5, -220.5, -171.5, -122.5, -73.5, -24.5, 24.5, 73.5,
- 122.5, 171.5, 220.5, 269.5,
-};
-
-static long _vq_quantmap__44c6_s0_p9_1[] = {
- 11, 9, 7, 5, 3, 1, 0, 2,
- 4, 6, 8, 10, 12,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c6_s0_p9_1 = {
- _vq_quantthresh__44c6_s0_p9_1,
- _vq_quantmap__44c6_s0_p9_1,
- 13,
- 13
-};
-
-static static_codebook _44c6_s0_p9_1 = {
- 2, 169,
- _vq_lengthlist__44c6_s0_p9_1,
- 1, -518889472, 1622704128, 4, 0,
- _vq_quantlist__44c6_s0_p9_1,
- NULL,
- &_vq_auxt__44c6_s0_p9_1,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c6_s0_p9_2.vqh b/lib/books/coupled/_44c6_s0_p9_2.vqh
deleted file mode 100644
index 7b5b4071..00000000
--- a/lib/books/coupled/_44c6_s0_p9_2.vqh
+++ /dev/null
@@ -1,118 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c6_s0_p9_2_VQH_
-#define _V__44c6_s0_p9_2_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c6_s0_p9_2[] = {
- 24,
- 23,
- 25,
- 22,
- 26,
- 21,
- 27,
- 20,
- 28,
- 19,
- 29,
- 18,
- 30,
- 17,
- 31,
- 16,
- 32,
- 15,
- 33,
- 14,
- 34,
- 13,
- 35,
- 12,
- 36,
- 11,
- 37,
- 10,
- 38,
- 9,
- 39,
- 8,
- 40,
- 7,
- 41,
- 6,
- 42,
- 5,
- 43,
- 4,
- 44,
- 3,
- 45,
- 2,
- 46,
- 1,
- 47,
- 0,
- 48,
-};
-
-static long _vq_lengthlist__44c6_s0_p9_2[] = {
- 3, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 6, 6, 6, 6,
- 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7,
-};
-
-static float _vq_quantthresh__44c6_s0_p9_2[] = {
- -23.5, -22.5, -21.5, -20.5, -19.5, -18.5, -17.5, -16.5,
- -15.5, -14.5, -13.5, -12.5, -11.5, -10.5, -9.5, -8.5,
- -7.5, -6.5, -5.5, -4.5, -3.5, -2.5, -1.5, -0.5,
- 0.5, 1.5, 2.5, 3.5, 4.5, 5.5, 6.5, 7.5,
- 8.5, 9.5, 10.5, 11.5, 12.5, 13.5, 14.5, 15.5,
- 16.5, 17.5, 18.5, 19.5, 20.5, 21.5, 22.5, 23.5,
-};
-
-static long _vq_quantmap__44c6_s0_p9_2[] = {
- 47, 45, 43, 41, 39, 37, 35, 33,
- 31, 29, 27, 25, 23, 21, 19, 17,
- 15, 13, 11, 9, 7, 5, 3, 1,
- 0, 2, 4, 6, 8, 10, 12, 14,
- 16, 18, 20, 22, 24, 26, 28, 30,
- 32, 34, 36, 38, 40, 42, 44, 46,
- 48,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c6_s0_p9_2 = {
- _vq_quantthresh__44c6_s0_p9_2,
- _vq_quantmap__44c6_s0_p9_2,
- 49,
- 49
-};
-
-static static_codebook _44c6_s0_p9_2 = {
- 1, 49,
- _vq_lengthlist__44c6_s0_p9_2,
- 1, -526909440, 1611661312, 6, 0,
- _vq_quantlist__44c6_s0_p9_2,
- NULL,
- &_vq_auxt__44c6_s0_p9_2,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c6_s1_p2_0.vqh b/lib/books/coupled/_44c6_s1_p2_0.vqh
deleted file mode 100644
index dc464a71..00000000
--- a/lib/books/coupled/_44c6_s1_p2_0.vqh
+++ /dev/null
@@ -1,63 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c6_s1_p2_0_VQH_
-#define _V__44c6_s1_p2_0_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c6_s1_p2_0[] = {
- 1,
- 0,
- 2,
-};
-
-static long _vq_lengthlist__44c6_s1_p2_0[] = {
- 1, 3, 3, 0, 0, 0, 0, 0, 0, 4, 5, 5, 0, 0, 0, 0,
- 0, 0, 4, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,
-};
-
-static float _vq_quantthresh__44c6_s1_p2_0[] = {
- -0.5, 0.5,
-};
-
-static long _vq_quantmap__44c6_s1_p2_0[] = {
- 1, 0, 2,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c6_s1_p2_0 = {
- _vq_quantthresh__44c6_s1_p2_0,
- _vq_quantmap__44c6_s1_p2_0,
- 3,
- 3
-};
-
-static static_codebook _44c6_s1_p2_0 = {
- 4, 81,
- _vq_lengthlist__44c6_s1_p2_0,
- 1, -535822336, 1611661312, 2, 0,
- _vq_quantlist__44c6_s1_p2_0,
- NULL,
- &_vq_auxt__44c6_s1_p2_0,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c6_s1_p4_0.vqh b/lib/books/coupled/_44c6_s1_p4_0.vqh
deleted file mode 100644
index 00d6e32b..00000000
--- a/lib/books/coupled/_44c6_s1_p4_0.vqh
+++ /dev/null
@@ -1,99 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c6_s1_p4_0_VQH_
-#define _V__44c6_s1_p4_0_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c6_s1_p4_0[] = {
- 2,
- 1,
- 3,
- 0,
- 4,
-};
-
-static long _vq_lengthlist__44c6_s1_p4_0[] = {
- 3, 3, 3, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 4, 4, 7, 6, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 3, 3, 4, 6, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 7, 9, 9,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 7, 6, 7, 9, 9, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,
-};
-
-static float _vq_quantthresh__44c6_s1_p4_0[] = {
- -1.5, -0.5, 0.5, 1.5,
-};
-
-static long _vq_quantmap__44c6_s1_p4_0[] = {
- 3, 1, 0, 2, 4,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c6_s1_p4_0 = {
- _vq_quantthresh__44c6_s1_p4_0,
- _vq_quantmap__44c6_s1_p4_0,
- 5,
- 5
-};
-
-static static_codebook _44c6_s1_p4_0 = {
- 4, 625,
- _vq_lengthlist__44c6_s1_p4_0,
- 1, -533725184, 1611661312, 3, 0,
- _vq_quantlist__44c6_s1_p4_0,
- NULL,
- &_vq_auxt__44c6_s1_p4_0,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c6_s1_p6_0.vqh b/lib/books/coupled/_44c6_s1_p6_0.vqh
deleted file mode 100644
index fdfdf796..00000000
--- a/lib/books/coupled/_44c6_s1_p6_0.vqh
+++ /dev/null
@@ -1,93 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c6_s1_p6_0_VQH_
-#define _V__44c6_s1_p6_0_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c6_s1_p6_0[] = {
- 8,
- 7,
- 9,
- 6,
- 10,
- 5,
- 11,
- 4,
- 12,
- 3,
- 13,
- 2,
- 14,
- 1,
- 15,
- 0,
- 16,
-};
-
-static long _vq_lengthlist__44c6_s1_p6_0[] = {
- 2, 2, 2, 4, 4, 8, 8,10,10, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 8, 7,10,10, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 7, 7,10, 9, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 7, 8,10,10, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 8,10,10, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 8,10,10, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 8,10,10, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 8,10,10,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 8,10,
- 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9,
- 10,10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9,
- 9,10,10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 9, 9,11,11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,11,11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,11,11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,11,11, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,11,11, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,
-};
-
-static float _vq_quantthresh__44c6_s1_p6_0[] = {
- -7.5, -6.5, -5.5, -4.5, -3.5, -2.5, -1.5, -0.5,
- 0.5, 1.5, 2.5, 3.5, 4.5, 5.5, 6.5, 7.5,
-};
-
-static long _vq_quantmap__44c6_s1_p6_0[] = {
- 15, 13, 11, 9, 7, 5, 3, 1,
- 0, 2, 4, 6, 8, 10, 12, 14,
- 16,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c6_s1_p6_0 = {
- _vq_quantthresh__44c6_s1_p6_0,
- _vq_quantmap__44c6_s1_p6_0,
- 17,
- 17
-};
-
-static static_codebook _44c6_s1_p6_0 = {
- 2, 289,
- _vq_lengthlist__44c6_s1_p6_0,
- 1, -529530880, 1611661312, 5, 0,
- _vq_quantlist__44c6_s1_p6_0,
- NULL,
- &_vq_auxt__44c6_s1_p6_0,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c6_s1_p7_0.vqh b/lib/books/coupled/_44c6_s1_p7_0.vqh
deleted file mode 100644
index 153c9ecd..00000000
--- a/lib/books/coupled/_44c6_s1_p7_0.vqh
+++ /dev/null
@@ -1,80 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c6_s1_p7_0_VQH_
-#define _V__44c6_s1_p7_0_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c6_s1_p7_0[] = {
- 6,
- 5,
- 7,
- 4,
- 8,
- 3,
- 9,
- 2,
- 10,
- 1,
- 11,
- 0,
- 12,
-};
-
-static long _vq_lengthlist__44c6_s1_p7_0[] = {
- 1, 4, 3, 7, 7, 9, 9, 0, 0, 0, 0, 0, 0, 6, 4, 4,
- 7, 8,10,10, 0, 0, 0, 0, 0, 0, 6, 5, 5, 8, 8,10,
- 10, 0, 0, 0, 0, 0, 0, 0, 7, 7, 8, 8,10,10, 0, 0,
- 0, 0, 0, 0, 0, 8, 8, 8, 8,11,11, 0, 0, 0, 0, 0,
- 0, 0,12,12,10,10,11,11, 0, 0, 0, 0, 0, 0, 0,13,
- 13,10,10,11,12, 0, 0, 0, 0, 0, 0, 0, 0, 0,12,12,
- 12,12, 0, 0, 0, 0, 0, 0, 0, 0, 0,12,12,12,12, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,16,17,13,14, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,18,16,13,14, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,16,15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,18,15, 0, 0, 0, 0, 0, 0,
-};
-
-static float _vq_quantthresh__44c6_s1_p7_0[] = {
- -27.5, -22.5, -17.5, -12.5, -7.5, -2.5, 2.5, 7.5,
- 12.5, 17.5, 22.5, 27.5,
-};
-
-static long _vq_quantmap__44c6_s1_p7_0[] = {
- 11, 9, 7, 5, 3, 1, 0, 2,
- 4, 6, 8, 10, 12,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c6_s1_p7_0 = {
- _vq_quantthresh__44c6_s1_p7_0,
- _vq_quantmap__44c6_s1_p7_0,
- 13,
- 13
-};
-
-static static_codebook _44c6_s1_p7_0 = {
- 2, 169,
- _vq_lengthlist__44c6_s1_p7_0,
- 1, -526516224, 1616117760, 4, 0,
- _vq_quantlist__44c6_s1_p7_0,
- NULL,
- &_vq_auxt__44c6_s1_p7_0,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c6_s1_p7_1.vqh b/lib/books/coupled/_44c6_s1_p7_1.vqh
deleted file mode 100644
index 25fe6336..00000000
--- a/lib/books/coupled/_44c6_s1_p7_1.vqh
+++ /dev/null
@@ -1,61 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c6_s1_p7_1_VQH_
-#define _V__44c6_s1_p7_1_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c6_s1_p7_1[] = {
- 2,
- 1,
- 3,
- 0,
- 4,
-};
-
-static long _vq_lengthlist__44c6_s1_p7_1[] = {
- 3, 3, 3, 4, 5, 6, 5, 5, 5, 5, 6, 5, 5, 5, 5, 6,
- 5, 5, 5, 5, 6, 6, 6, 5, 5,
-};
-
-static float _vq_quantthresh__44c6_s1_p7_1[] = {
- -1.5, -0.5, 0.5, 1.5,
-};
-
-static long _vq_quantmap__44c6_s1_p7_1[] = {
- 3, 1, 0, 2, 4,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c6_s1_p7_1 = {
- _vq_quantthresh__44c6_s1_p7_1,
- _vq_quantmap__44c6_s1_p7_1,
- 5,
- 5
-};
-
-static static_codebook _44c6_s1_p7_1 = {
- 2, 25,
- _vq_lengthlist__44c6_s1_p7_1,
- 1, -533725184, 1611661312, 3, 0,
- _vq_quantlist__44c6_s1_p7_1,
- NULL,
- &_vq_auxt__44c6_s1_p7_1,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c6_s1_p8_0.vqh b/lib/books/coupled/_44c6_s1_p8_0.vqh
deleted file mode 100644
index 59520598..00000000
--- a/lib/books/coupled/_44c6_s1_p8_0.vqh
+++ /dev/null
@@ -1,80 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c6_s1_p8_0_VQH_
-#define _V__44c6_s1_p8_0_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c6_s1_p8_0[] = {
- 6,
- 5,
- 7,
- 4,
- 8,
- 3,
- 9,
- 2,
- 10,
- 1,
- 11,
- 0,
- 12,
-};
-
-static long _vq_lengthlist__44c6_s1_p8_0[] = {
- 1, 4, 3, 6, 6, 8, 8, 0, 0, 0, 0, 0, 0, 6, 5, 5,
- 6, 6, 9, 9, 0, 0, 0, 0, 0, 0, 6, 5, 5, 7, 7, 9,
- 9, 0, 0, 0, 0, 0, 0, 0, 7, 7, 8, 8,10,10, 0, 0,
- 0, 0, 0, 0, 0, 8, 7, 8, 8,10,10, 0, 0, 0, 0, 0,
- 0, 0,12,12, 9, 9,11,10, 0, 0, 0, 0, 0, 0, 0,12,
- 12, 9, 9,11,11, 0, 0, 0, 0, 0, 0, 0, 0, 0,11,11,
- 11,11, 0, 0, 0, 0, 0, 0, 0, 0, 0,12,12,11,11, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,17,16,12,12, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,15, 0,13,12, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,15,15, 0, 0, 0, 0, 0, 0,
-};
-
-static float _vq_quantthresh__44c6_s1_p8_0[] = {
- -71.5, -58.5, -45.5, -32.5, -19.5, -6.5, 6.5, 19.5,
- 32.5, 45.5, 58.5, 71.5,
-};
-
-static long _vq_quantmap__44c6_s1_p8_0[] = {
- 11, 9, 7, 5, 3, 1, 0, 2,
- 4, 6, 8, 10, 12,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c6_s1_p8_0 = {
- _vq_quantthresh__44c6_s1_p8_0,
- _vq_quantmap__44c6_s1_p8_0,
- 13,
- 13
-};
-
-static static_codebook _44c6_s1_p8_0 = {
- 2, 169,
- _vq_lengthlist__44c6_s1_p8_0,
- 1, -523010048, 1618608128, 4, 0,
- _vq_quantlist__44c6_s1_p8_0,
- NULL,
- &_vq_auxt__44c6_s1_p8_0,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c6_s1_p8_1.vqh b/lib/books/coupled/_44c6_s1_p8_1.vqh
deleted file mode 100644
index 3697e212..00000000
--- a/lib/books/coupled/_44c6_s1_p8_1.vqh
+++ /dev/null
@@ -1,80 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c6_s1_p8_1_VQH_
-#define _V__44c6_s1_p8_1_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c6_s1_p8_1[] = {
- 6,
- 5,
- 7,
- 4,
- 8,
- 3,
- 9,
- 2,
- 10,
- 1,
- 11,
- 0,
- 12,
-};
-
-static long _vq_lengthlist__44c6_s1_p8_1[] = {
- 3, 5, 5, 6, 6, 7, 7, 8, 8, 8, 8, 8, 8, 9, 5, 5,
- 6, 6, 7, 7, 8, 8, 8, 8, 8, 8, 9, 5, 5, 6, 6, 7,
- 7, 8, 8, 8, 8, 8, 8,10, 6, 6, 7, 7, 7, 7, 8, 8,
- 8, 8, 8, 8,10, 9, 9, 7, 7, 7, 7, 8, 8, 8, 8, 8,
- 8, 9, 9, 9, 7, 7, 8, 8, 8, 8, 8, 8, 8, 8,10,10,
- 10, 7, 7, 8, 8, 8, 8, 8, 8, 8, 8, 9,10,10, 8, 8,
- 8, 8, 8, 8, 8, 8, 8, 8,10,10,10,10,10, 8, 8, 8,
- 8, 8, 8, 8, 8,10, 9, 9,10, 9, 8, 8, 9, 8, 8, 8,
- 8, 8,10,10, 9,10,10, 8, 8, 8, 8, 8, 8, 8, 8, 9,
- 10, 9,10,10, 9, 8, 8, 8, 8, 8, 8, 8, 9,10,10, 9,
- 9, 9,10, 8, 8, 8, 8, 8, 8,
-};
-
-static float _vq_quantthresh__44c6_s1_p8_1[] = {
- -5.5, -4.5, -3.5, -2.5, -1.5, -0.5, 0.5, 1.5,
- 2.5, 3.5, 4.5, 5.5,
-};
-
-static long _vq_quantmap__44c6_s1_p8_1[] = {
- 11, 9, 7, 5, 3, 1, 0, 2,
- 4, 6, 8, 10, 12,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c6_s1_p8_1 = {
- _vq_quantthresh__44c6_s1_p8_1,
- _vq_quantmap__44c6_s1_p8_1,
- 13,
- 13
-};
-
-static static_codebook _44c6_s1_p8_1 = {
- 2, 169,
- _vq_lengthlist__44c6_s1_p8_1,
- 1, -531103744, 1611661312, 4, 0,
- _vq_quantlist__44c6_s1_p8_1,
- NULL,
- &_vq_auxt__44c6_s1_p8_1,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c6_s1_p9_0.vqh b/lib/books/coupled/_44c6_s1_p9_0.vqh
deleted file mode 100644
index 48362b27..00000000
--- a/lib/books/coupled/_44c6_s1_p9_0.vqh
+++ /dev/null
@@ -1,70 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c6_s1_p9_0_VQH_
-#define _V__44c6_s1_p9_0_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c6_s1_p9_0[] = {
- 4,
- 3,
- 5,
- 2,
- 6,
- 1,
- 7,
- 0,
- 8,
-};
-
-static long _vq_lengthlist__44c6_s1_p9_0[] = {
- 1, 6, 6,11,11,11,11,11,11, 4, 5,10,11,11,11,11,
- 11,11, 2,11, 7,11,11,11,11,11,11,11, 5,11,11,11,
- 11,11,11,11,11,11, 5,11,11,11,10,10,10,10,10,10,
- 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,
- 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,
- 10,
-};
-
-static float _vq_quantthresh__44c6_s1_p9_0[] = {
- -2229.5, -1592.5, -955.5, -318.5, 318.5, 955.5, 1592.5, 2229.5,
-};
-
-static long _vq_quantmap__44c6_s1_p9_0[] = {
- 7, 5, 3, 1, 0, 2, 4, 6,
- 8,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c6_s1_p9_0 = {
- _vq_quantthresh__44c6_s1_p9_0,
- _vq_quantmap__44c6_s1_p9_0,
- 9,
- 9
-};
-
-static static_codebook _44c6_s1_p9_0 = {
- 2, 81,
- _vq_lengthlist__44c6_s1_p9_0,
- 1, -512497664, 1630791680, 4, 0,
- _vq_quantlist__44c6_s1_p9_0,
- NULL,
- &_vq_auxt__44c6_s1_p9_0,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c6_s1_p9_1.vqh b/lib/books/coupled/_44c6_s1_p9_1.vqh
deleted file mode 100644
index cd6d7226..00000000
--- a/lib/books/coupled/_44c6_s1_p9_1.vqh
+++ /dev/null
@@ -1,80 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c6_s1_p9_1_VQH_
-#define _V__44c6_s1_p9_1_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c6_s1_p9_1[] = {
- 6,
- 5,
- 7,
- 4,
- 8,
- 3,
- 9,
- 2,
- 10,
- 1,
- 11,
- 0,
- 12,
-};
-
-static long _vq_lengthlist__44c6_s1_p9_1[] = {
- 1, 4, 3, 6, 6, 8, 8,10, 9,11,10,11,12, 6, 5, 5,
- 8, 8,10, 9,11,10,13,11,13,12, 5, 5, 5, 8, 7, 9,
- 9,10,10,13,11,12,11,16, 8, 8, 9, 9,10,10,11,11,
- 12,12,12,10,13, 9, 8, 9, 9,10,10,11,11,13,11,11,
- 12,15,11,12,10,10,11,11,12,12,13,10,13,10,16,12,
- 11,10, 9,11,11,12,11,11,12,11,13,16,13,14,13,12,
- 13,13,12,13,12, 9,13,11,16,16,16,11,12,12, 9,13,
- 12,12,12,13,13,16,14,16,12,12,13,11,14,11,13,10,
- 13,12,16,16,16,13,14,14,10,13, 9,14,14,13,14,16,
- 15,15,14,16,13,14,14,10,14,10,13,12,16,15,15,15,
- 15,14,11,13,10,14,10,14,13,
-};
-
-static float _vq_quantthresh__44c6_s1_p9_1[] = {
- -269.5, -220.5, -171.5, -122.5, -73.5, -24.5, 24.5, 73.5,
- 122.5, 171.5, 220.5, 269.5,
-};
-
-static long _vq_quantmap__44c6_s1_p9_1[] = {
- 11, 9, 7, 5, 3, 1, 0, 2,
- 4, 6, 8, 10, 12,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c6_s1_p9_1 = {
- _vq_quantthresh__44c6_s1_p9_1,
- _vq_quantmap__44c6_s1_p9_1,
- 13,
- 13
-};
-
-static static_codebook _44c6_s1_p9_1 = {
- 2, 169,
- _vq_lengthlist__44c6_s1_p9_1,
- 1, -518889472, 1622704128, 4, 0,
- _vq_quantlist__44c6_s1_p9_1,
- NULL,
- &_vq_auxt__44c6_s1_p9_1,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c6_s1_p9_2.vqh b/lib/books/coupled/_44c6_s1_p9_2.vqh
deleted file mode 100644
index b6fdf155..00000000
--- a/lib/books/coupled/_44c6_s1_p9_2.vqh
+++ /dev/null
@@ -1,118 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c6_s1_p9_2_VQH_
-#define _V__44c6_s1_p9_2_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c6_s1_p9_2[] = {
- 24,
- 23,
- 25,
- 22,
- 26,
- 21,
- 27,
- 20,
- 28,
- 19,
- 29,
- 18,
- 30,
- 17,
- 31,
- 16,
- 32,
- 15,
- 33,
- 14,
- 34,
- 13,
- 35,
- 12,
- 36,
- 11,
- 37,
- 10,
- 38,
- 9,
- 39,
- 8,
- 40,
- 7,
- 41,
- 6,
- 42,
- 5,
- 43,
- 4,
- 44,
- 3,
- 45,
- 2,
- 46,
- 1,
- 47,
- 0,
- 48,
-};
-
-static long _vq_lengthlist__44c6_s1_p9_2[] = {
- 3, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 6, 6, 6,
- 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7,
-};
-
-static float _vq_quantthresh__44c6_s1_p9_2[] = {
- -23.5, -22.5, -21.5, -20.5, -19.5, -18.5, -17.5, -16.5,
- -15.5, -14.5, -13.5, -12.5, -11.5, -10.5, -9.5, -8.5,
- -7.5, -6.5, -5.5, -4.5, -3.5, -2.5, -1.5, -0.5,
- 0.5, 1.5, 2.5, 3.5, 4.5, 5.5, 6.5, 7.5,
- 8.5, 9.5, 10.5, 11.5, 12.5, 13.5, 14.5, 15.5,
- 16.5, 17.5, 18.5, 19.5, 20.5, 21.5, 22.5, 23.5,
-};
-
-static long _vq_quantmap__44c6_s1_p9_2[] = {
- 47, 45, 43, 41, 39, 37, 35, 33,
- 31, 29, 27, 25, 23, 21, 19, 17,
- 15, 13, 11, 9, 7, 5, 3, 1,
- 0, 2, 4, 6, 8, 10, 12, 14,
- 16, 18, 20, 22, 24, 26, 28, 30,
- 32, 34, 36, 38, 40, 42, 44, 46,
- 48,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c6_s1_p9_2 = {
- _vq_quantthresh__44c6_s1_p9_2,
- _vq_quantmap__44c6_s1_p9_2,
- 49,
- 49
-};
-
-static static_codebook _44c6_s1_p9_2 = {
- 1, 49,
- _vq_lengthlist__44c6_s1_p9_2,
- 1, -526909440, 1611661312, 6, 0,
- _vq_quantlist__44c6_s1_p9_2,
- NULL,
- &_vq_auxt__44c6_s1_p9_2,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c6_s2_p6_0.vqh b/lib/books/coupled/_44c6_s2_p6_0.vqh
deleted file mode 100644
index 5244bd21..00000000
--- a/lib/books/coupled/_44c6_s2_p6_0.vqh
+++ /dev/null
@@ -1,70 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c6_s2_p6_0_VQH_
-#define _V__44c6_s2_p6_0_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c6_s2_p6_0[] = {
- 4,
- 3,
- 5,
- 2,
- 6,
- 1,
- 7,
- 0,
- 8,
-};
-
-static long _vq_lengthlist__44c6_s2_p6_0[] = {
- 2, 2, 2, 4, 3, 6, 5, 7, 7, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,
-};
-
-static float _vq_quantthresh__44c6_s2_p6_0[] = {
- -3.5, -2.5, -1.5, -0.5, 0.5, 1.5, 2.5, 3.5,
-};
-
-static long _vq_quantmap__44c6_s2_p6_0[] = {
- 7, 5, 3, 1, 0, 2, 4, 6,
- 8,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c6_s2_p6_0 = {
- _vq_quantthresh__44c6_s2_p6_0,
- _vq_quantmap__44c6_s2_p6_0,
- 9,
- 9
-};
-
-static static_codebook _44c6_s2_p6_0 = {
- 2, 81,
- _vq_lengthlist__44c6_s2_p6_0,
- 1, -531628032, 1611661312, 4, 0,
- _vq_quantlist__44c6_s2_p6_0,
- NULL,
- &_vq_auxt__44c6_s2_p6_0,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c6_s2_p7_0.vqh b/lib/books/coupled/_44c6_s2_p7_0.vqh
deleted file mode 100644
index 27dbbc60..00000000
--- a/lib/books/coupled/_44c6_s2_p7_0.vqh
+++ /dev/null
@@ -1,80 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c6_s2_p7_0_VQH_
-#define _V__44c6_s2_p7_0_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c6_s2_p7_0[] = {
- 6,
- 5,
- 7,
- 4,
- 8,
- 3,
- 9,
- 2,
- 10,
- 1,
- 11,
- 0,
- 12,
-};
-
-static long _vq_lengthlist__44c6_s2_p7_0[] = {
- 1, 3, 3, 7, 7, 9, 9, 0, 0, 0, 0, 0, 0, 6, 5, 5,
- 7, 8,10,10, 0, 0, 0, 0, 0, 0, 6, 5, 5, 8, 8,10,
- 10, 0, 0, 0, 0, 0, 0, 0, 7, 7, 8, 8,10,10, 0, 0,
- 0, 0, 0, 0, 0, 8, 8, 8, 8,11,11, 0, 0, 0, 0, 0,
- 0, 0,12,12,10,10,11,11, 0, 0, 0, 0, 0, 0, 0,13,
- 13,10,10,11,12, 0, 0, 0, 0, 0, 0, 0, 0, 0,12,12,
- 12,12, 0, 0, 0, 0, 0, 0, 0, 0, 0,12,12,12,12, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,16,17,13,14, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,18,16,13,14, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,16,15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,18,15, 0, 0, 0, 0, 0, 0,
-};
-
-static float _vq_quantthresh__44c6_s2_p7_0[] = {
- -27.5, -22.5, -17.5, -12.5, -7.5, -2.5, 2.5, 7.5,
- 12.5, 17.5, 22.5, 27.5,
-};
-
-static long _vq_quantmap__44c6_s2_p7_0[] = {
- 11, 9, 7, 5, 3, 1, 0, 2,
- 4, 6, 8, 10, 12,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c6_s2_p7_0 = {
- _vq_quantthresh__44c6_s2_p7_0,
- _vq_quantmap__44c6_s2_p7_0,
- 13,
- 13
-};
-
-static static_codebook _44c6_s2_p7_0 = {
- 2, 169,
- _vq_lengthlist__44c6_s2_p7_0,
- 1, -526516224, 1616117760, 4, 0,
- _vq_quantlist__44c6_s2_p7_0,
- NULL,
- &_vq_auxt__44c6_s2_p7_0,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c6_s2_p7_1.vqh b/lib/books/coupled/_44c6_s2_p7_1.vqh
deleted file mode 100644
index e23adb39..00000000
--- a/lib/books/coupled/_44c6_s2_p7_1.vqh
+++ /dev/null
@@ -1,61 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c6_s2_p7_1_VQH_
-#define _V__44c6_s2_p7_1_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c6_s2_p7_1[] = {
- 2,
- 1,
- 3,
- 0,
- 4,
-};
-
-static long _vq_lengthlist__44c6_s2_p7_1[] = {
- 3, 3, 3, 4, 4, 6, 5, 5, 5, 5, 6, 5, 5, 5, 5, 6,
- 6, 5, 5, 5, 6, 7, 7, 5, 5,
-};
-
-static float _vq_quantthresh__44c6_s2_p7_1[] = {
- -1.5, -0.5, 0.5, 1.5,
-};
-
-static long _vq_quantmap__44c6_s2_p7_1[] = {
- 3, 1, 0, 2, 4,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c6_s2_p7_1 = {
- _vq_quantthresh__44c6_s2_p7_1,
- _vq_quantmap__44c6_s2_p7_1,
- 5,
- 5
-};
-
-static static_codebook _44c6_s2_p7_1 = {
- 2, 25,
- _vq_lengthlist__44c6_s2_p7_1,
- 1, -533725184, 1611661312, 3, 0,
- _vq_quantlist__44c6_s2_p7_1,
- NULL,
- &_vq_auxt__44c6_s2_p7_1,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c6_s2_p8_0.vqh b/lib/books/coupled/_44c6_s2_p8_0.vqh
deleted file mode 100644
index c86621b4..00000000
--- a/lib/books/coupled/_44c6_s2_p8_0.vqh
+++ /dev/null
@@ -1,80 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c6_s2_p8_0_VQH_
-#define _V__44c6_s2_p8_0_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c6_s2_p8_0[] = {
- 6,
- 5,
- 7,
- 4,
- 8,
- 3,
- 9,
- 2,
- 10,
- 1,
- 11,
- 0,
- 12,
-};
-
-static long _vq_lengthlist__44c6_s2_p8_0[] = {
- 1, 4, 3, 6, 6, 8, 8, 0, 0, 0, 0, 0, 0, 6, 5, 5,
- 6, 6, 9, 9, 0, 0, 0, 0, 0, 0, 6, 5, 5, 7, 7, 9,
- 9, 0, 0, 0, 0, 0, 0, 0, 7, 7, 8, 8,10,10, 0, 0,
- 0, 0, 0, 0, 0, 8, 7, 8, 8,10,10, 0, 0, 0, 0, 0,
- 0, 0,12,12, 9, 9,11,10, 0, 0, 0, 0, 0, 0, 0,12,
- 12, 9, 9,11,11, 0, 0, 0, 0, 0, 0, 0, 0, 0,11,11,
- 11,11, 0, 0, 0, 0, 0, 0, 0, 0, 0,12,12,11,11, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,17,16,12,12, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,15, 0,13,12, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,15,15, 0, 0, 0, 0, 0, 0,
-};
-
-static float _vq_quantthresh__44c6_s2_p8_0[] = {
- -71.5, -58.5, -45.5, -32.5, -19.5, -6.5, 6.5, 19.5,
- 32.5, 45.5, 58.5, 71.5,
-};
-
-static long _vq_quantmap__44c6_s2_p8_0[] = {
- 11, 9, 7, 5, 3, 1, 0, 2,
- 4, 6, 8, 10, 12,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c6_s2_p8_0 = {
- _vq_quantthresh__44c6_s2_p8_0,
- _vq_quantmap__44c6_s2_p8_0,
- 13,
- 13
-};
-
-static static_codebook _44c6_s2_p8_0 = {
- 2, 169,
- _vq_lengthlist__44c6_s2_p8_0,
- 1, -523010048, 1618608128, 4, 0,
- _vq_quantlist__44c6_s2_p8_0,
- NULL,
- &_vq_auxt__44c6_s2_p8_0,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c6_s2_p8_1.vqh b/lib/books/coupled/_44c6_s2_p8_1.vqh
deleted file mode 100644
index 666d9a22..00000000
--- a/lib/books/coupled/_44c6_s2_p8_1.vqh
+++ /dev/null
@@ -1,80 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c6_s2_p8_1_VQH_
-#define _V__44c6_s2_p8_1_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c6_s2_p8_1[] = {
- 6,
- 5,
- 7,
- 4,
- 8,
- 3,
- 9,
- 2,
- 10,
- 1,
- 11,
- 0,
- 12,
-};
-
-static long _vq_lengthlist__44c6_s2_p8_1[] = {
- 3, 5, 5, 6, 6, 7, 7, 8, 7, 8, 8, 8, 8, 9, 5, 5,
- 6, 6, 7, 7, 8, 8, 8, 8, 8, 8, 9, 5, 5, 6, 6, 7,
- 7, 8, 8, 8, 8, 8, 8,10, 6, 6, 7, 7, 7, 7, 8, 8,
- 8, 8, 8, 8,10, 9, 9, 7, 7, 8, 7, 8, 8, 8, 8, 8,
- 8, 9, 9, 9, 7, 7, 8, 8, 8, 8, 8, 8, 8, 8,10,10,
- 10, 7, 7, 8, 8, 8, 8, 8, 8, 8, 8, 9,10,10, 8, 8,
- 8, 8, 8, 8, 8, 8, 8, 8,10,10,10,10,10, 8, 8, 8,
- 8, 8, 8, 8, 8,10, 9, 9,10, 9, 8, 8, 9, 8, 8, 8,
- 8, 8,10,10, 9,10,10, 8, 8, 8, 8, 8, 8, 8, 8, 9,
- 10, 9,10,10, 9, 8, 8, 8, 8, 8, 8, 8, 9,10,10, 9,
- 9, 9,10, 8, 8, 8, 8, 8, 8,
-};
-
-static float _vq_quantthresh__44c6_s2_p8_1[] = {
- -5.5, -4.5, -3.5, -2.5, -1.5, -0.5, 0.5, 1.5,
- 2.5, 3.5, 4.5, 5.5,
-};
-
-static long _vq_quantmap__44c6_s2_p8_1[] = {
- 11, 9, 7, 5, 3, 1, 0, 2,
- 4, 6, 8, 10, 12,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c6_s2_p8_1 = {
- _vq_quantthresh__44c6_s2_p8_1,
- _vq_quantmap__44c6_s2_p8_1,
- 13,
- 13
-};
-
-static static_codebook _44c6_s2_p8_1 = {
- 2, 169,
- _vq_lengthlist__44c6_s2_p8_1,
- 1, -531103744, 1611661312, 4, 0,
- _vq_quantlist__44c6_s2_p8_1,
- NULL,
- &_vq_auxt__44c6_s2_p8_1,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c6_s2_p9_0.vqh b/lib/books/coupled/_44c6_s2_p9_0.vqh
deleted file mode 100644
index 341e2323..00000000
--- a/lib/books/coupled/_44c6_s2_p9_0.vqh
+++ /dev/null
@@ -1,70 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c6_s2_p9_0_VQH_
-#define _V__44c6_s2_p9_0_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c6_s2_p9_0[] = {
- 4,
- 3,
- 5,
- 2,
- 6,
- 1,
- 7,
- 0,
- 8,
-};
-
-static long _vq_lengthlist__44c6_s2_p9_0[] = {
- 1, 6, 6,11,11,11,11,11,11, 4, 5,10,11,11,11,11,
- 11,11, 2,11, 7,11,11,11,11,11,11,11, 5,11,11,11,
- 11,11,11,11,11,11, 5,11,11,11,10,10,10,10,10,10,
- 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,
- 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,
- 10,
-};
-
-static float _vq_quantthresh__44c6_s2_p9_0[] = {
- -2229.5, -1592.5, -955.5, -318.5, 318.5, 955.5, 1592.5, 2229.5,
-};
-
-static long _vq_quantmap__44c6_s2_p9_0[] = {
- 7, 5, 3, 1, 0, 2, 4, 6,
- 8,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c6_s2_p9_0 = {
- _vq_quantthresh__44c6_s2_p9_0,
- _vq_quantmap__44c6_s2_p9_0,
- 9,
- 9
-};
-
-static static_codebook _44c6_s2_p9_0 = {
- 2, 81,
- _vq_lengthlist__44c6_s2_p9_0,
- 1, -512497664, 1630791680, 4, 0,
- _vq_quantlist__44c6_s2_p9_0,
- NULL,
- &_vq_auxt__44c6_s2_p9_0,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c6_s2_p9_1.vqh b/lib/books/coupled/_44c6_s2_p9_1.vqh
deleted file mode 100644
index 87f15d59..00000000
--- a/lib/books/coupled/_44c6_s2_p9_1.vqh
+++ /dev/null
@@ -1,80 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c6_s2_p9_1_VQH_
-#define _V__44c6_s2_p9_1_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c6_s2_p9_1[] = {
- 6,
- 5,
- 7,
- 4,
- 8,
- 3,
- 9,
- 2,
- 10,
- 1,
- 11,
- 0,
- 12,
-};
-
-static long _vq_lengthlist__44c6_s2_p9_1[] = {
- 1, 4, 3, 6, 6, 8, 8,10, 9,11,10,11,12, 6, 5, 5,
- 8, 8,10, 9,11,10,13,11,13,12, 5, 5, 5, 8, 7, 9,
- 9,10,10,13,11,12,11,16, 8, 8, 9, 9,10,10,11,11,
- 12,12,12,10,13, 9, 8, 9, 9,10,10,11,11,13,11,11,
- 12,15,11,12,10,10,11,11,12,12,13,10,13,10,16,12,
- 11,10, 9,11,11,12,11,11,12,11,13,16,13,14,13,12,
- 13,13,12,13,12, 9,13,11,16,16,16,11,12,12, 9,13,
- 12,12,12,13,13,16,14,16,12,12,13,11,14,11,13,10,
- 13,12,16,16,16,13,14,14,10,13, 9,14,14,13,14,16,
- 15,15,14,16,13,14,14,10,14,10,13,12,16,15,15,15,
- 15,14,11,13,10,14,10,14,13,
-};
-
-static float _vq_quantthresh__44c6_s2_p9_1[] = {
- -269.5, -220.5, -171.5, -122.5, -73.5, -24.5, 24.5, 73.5,
- 122.5, 171.5, 220.5, 269.5,
-};
-
-static long _vq_quantmap__44c6_s2_p9_1[] = {
- 11, 9, 7, 5, 3, 1, 0, 2,
- 4, 6, 8, 10, 12,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c6_s2_p9_1 = {
- _vq_quantthresh__44c6_s2_p9_1,
- _vq_quantmap__44c6_s2_p9_1,
- 13,
- 13
-};
-
-static static_codebook _44c6_s2_p9_1 = {
- 2, 169,
- _vq_lengthlist__44c6_s2_p9_1,
- 1, -518889472, 1622704128, 4, 0,
- _vq_quantlist__44c6_s2_p9_1,
- NULL,
- &_vq_auxt__44c6_s2_p9_1,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c6_s2_p9_2.vqh b/lib/books/coupled/_44c6_s2_p9_2.vqh
deleted file mode 100644
index 270497c2..00000000
--- a/lib/books/coupled/_44c6_s2_p9_2.vqh
+++ /dev/null
@@ -1,118 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c6_s2_p9_2_VQH_
-#define _V__44c6_s2_p9_2_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c6_s2_p9_2[] = {
- 24,
- 23,
- 25,
- 22,
- 26,
- 21,
- 27,
- 20,
- 28,
- 19,
- 29,
- 18,
- 30,
- 17,
- 31,
- 16,
- 32,
- 15,
- 33,
- 14,
- 34,
- 13,
- 35,
- 12,
- 36,
- 11,
- 37,
- 10,
- 38,
- 9,
- 39,
- 8,
- 40,
- 7,
- 41,
- 6,
- 42,
- 5,
- 43,
- 4,
- 44,
- 3,
- 45,
- 2,
- 46,
- 1,
- 47,
- 0,
- 48,
-};
-
-static long _vq_lengthlist__44c6_s2_p9_2[] = {
- 3, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 6, 6, 6,
- 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7,
-};
-
-static float _vq_quantthresh__44c6_s2_p9_2[] = {
- -23.5, -22.5, -21.5, -20.5, -19.5, -18.5, -17.5, -16.5,
- -15.5, -14.5, -13.5, -12.5, -11.5, -10.5, -9.5, -8.5,
- -7.5, -6.5, -5.5, -4.5, -3.5, -2.5, -1.5, -0.5,
- 0.5, 1.5, 2.5, 3.5, 4.5, 5.5, 6.5, 7.5,
- 8.5, 9.5, 10.5, 11.5, 12.5, 13.5, 14.5, 15.5,
- 16.5, 17.5, 18.5, 19.5, 20.5, 21.5, 22.5, 23.5,
-};
-
-static long _vq_quantmap__44c6_s2_p9_2[] = {
- 47, 45, 43, 41, 39, 37, 35, 33,
- 31, 29, 27, 25, 23, 21, 19, 17,
- 15, 13, 11, 9, 7, 5, 3, 1,
- 0, 2, 4, 6, 8, 10, 12, 14,
- 16, 18, 20, 22, 24, 26, 28, 30,
- 32, 34, 36, 38, 40, 42, 44, 46,
- 48,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c6_s2_p9_2 = {
- _vq_quantthresh__44c6_s2_p9_2,
- _vq_quantmap__44c6_s2_p9_2,
- 49,
- 49
-};
-
-static static_codebook _44c6_s2_p9_2 = {
- 1, 49,
- _vq_lengthlist__44c6_s2_p9_2,
- 1, -526909440, 1611661312, 6, 0,
- _vq_quantlist__44c6_s2_p9_2,
- NULL,
- &_vq_auxt__44c6_s2_p9_2,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c6_s3_p7_0.vqh b/lib/books/coupled/_44c6_s3_p7_0.vqh
deleted file mode 100644
index 7a62076a..00000000
--- a/lib/books/coupled/_44c6_s3_p7_0.vqh
+++ /dev/null
@@ -1,80 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c6_s3_p7_0_VQH_
-#define _V__44c6_s3_p7_0_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c6_s3_p7_0[] = {
- 6,
- 5,
- 7,
- 4,
- 8,
- 3,
- 9,
- 2,
- 10,
- 1,
- 11,
- 0,
- 12,
-};
-
-static long _vq_lengthlist__44c6_s3_p7_0[] = {
- 1, 3, 3, 7, 7, 9, 9, 0, 0, 0, 0, 0, 0, 5, 5, 5,
- 8, 8,10,10, 0, 0, 0, 0, 0, 0, 6, 5, 5, 8, 8,10,
- 10, 0, 0, 0, 0, 0, 0, 0, 8, 8, 8, 8,10,10, 0, 0,
- 0, 0, 0, 0, 0, 8, 8, 9, 9,11,11, 0, 0, 0, 0, 0,
- 0, 0,13,13,10,10,11,11, 0, 0, 0, 0, 0, 0, 0,14,
- 13,10,10,11,11, 0, 0, 0, 0, 0, 0, 0, 0, 0,12,12,
- 12,12, 0, 0, 0, 0, 0, 0, 0, 0, 0,12,12,12,12, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,16,17,13,13, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,18,16,13,14, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,16,15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,18,15, 0, 0, 0, 0, 0, 0,
-};
-
-static float _vq_quantthresh__44c6_s3_p7_0[] = {
- -27.5, -22.5, -17.5, -12.5, -7.5, -2.5, 2.5, 7.5,
- 12.5, 17.5, 22.5, 27.5,
-};
-
-static long _vq_quantmap__44c6_s3_p7_0[] = {
- 11, 9, 7, 5, 3, 1, 0, 2,
- 4, 6, 8, 10, 12,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c6_s3_p7_0 = {
- _vq_quantthresh__44c6_s3_p7_0,
- _vq_quantmap__44c6_s3_p7_0,
- 13,
- 13
-};
-
-static static_codebook _44c6_s3_p7_0 = {
- 2, 169,
- _vq_lengthlist__44c6_s3_p7_0,
- 1, -526516224, 1616117760, 4, 0,
- _vq_quantlist__44c6_s3_p7_0,
- NULL,
- &_vq_auxt__44c6_s3_p7_0,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c6_s3_p7_1.vqh b/lib/books/coupled/_44c6_s3_p7_1.vqh
deleted file mode 100644
index bda0cad6..00000000
--- a/lib/books/coupled/_44c6_s3_p7_1.vqh
+++ /dev/null
@@ -1,61 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c6_s3_p7_1_VQH_
-#define _V__44c6_s3_p7_1_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c6_s3_p7_1[] = {
- 2,
- 1,
- 3,
- 0,
- 4,
-};
-
-static long _vq_lengthlist__44c6_s3_p7_1[] = {
- 3, 3, 3, 4, 4, 6, 5, 5, 5, 5, 6, 5, 5, 5, 5, 7,
- 5, 5, 5, 5, 7, 7, 7, 5, 5,
-};
-
-static float _vq_quantthresh__44c6_s3_p7_1[] = {
- -1.5, -0.5, 0.5, 1.5,
-};
-
-static long _vq_quantmap__44c6_s3_p7_1[] = {
- 3, 1, 0, 2, 4,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c6_s3_p7_1 = {
- _vq_quantthresh__44c6_s3_p7_1,
- _vq_quantmap__44c6_s3_p7_1,
- 5,
- 5
-};
-
-static static_codebook _44c6_s3_p7_1 = {
- 2, 25,
- _vq_lengthlist__44c6_s3_p7_1,
- 1, -533725184, 1611661312, 3, 0,
- _vq_quantlist__44c6_s3_p7_1,
- NULL,
- &_vq_auxt__44c6_s3_p7_1,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c6_s3_p8_0.vqh b/lib/books/coupled/_44c6_s3_p8_0.vqh
deleted file mode 100644
index efdb9bfc..00000000
--- a/lib/books/coupled/_44c6_s3_p8_0.vqh
+++ /dev/null
@@ -1,80 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c6_s3_p8_0_VQH_
-#define _V__44c6_s3_p8_0_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c6_s3_p8_0[] = {
- 6,
- 5,
- 7,
- 4,
- 8,
- 3,
- 9,
- 2,
- 10,
- 1,
- 11,
- 0,
- 12,
-};
-
-static long _vq_lengthlist__44c6_s3_p8_0[] = {
- 1, 4, 3, 6, 6, 8, 8, 0, 0, 0, 0, 0, 0, 6, 5, 5,
- 6, 6, 9, 9, 0, 0, 0, 0, 0, 0, 6, 5, 5, 7, 7, 9,
- 9, 0, 0, 0, 0, 0, 0, 0, 7, 7, 8, 8,10,10, 0, 0,
- 0, 0, 0, 0, 0, 8, 7, 8, 8,10,10, 0, 0, 0, 0, 0,
- 0, 0,12,12, 9, 9,11,10, 0, 0, 0, 0, 0, 0, 0,12,
- 12, 9, 9,11,11, 0, 0, 0, 0, 0, 0, 0, 0, 0,11,11,
- 11,11, 0, 0, 0, 0, 0, 0, 0, 0, 0,12,12,11,11, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,17,16,12,12, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,15, 0,13,12, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,15,15, 0, 0, 0, 0, 0, 0,
-};
-
-static float _vq_quantthresh__44c6_s3_p8_0[] = {
- -71.5, -58.5, -45.5, -32.5, -19.5, -6.5, 6.5, 19.5,
- 32.5, 45.5, 58.5, 71.5,
-};
-
-static long _vq_quantmap__44c6_s3_p8_0[] = {
- 11, 9, 7, 5, 3, 1, 0, 2,
- 4, 6, 8, 10, 12,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c6_s3_p8_0 = {
- _vq_quantthresh__44c6_s3_p8_0,
- _vq_quantmap__44c6_s3_p8_0,
- 13,
- 13
-};
-
-static static_codebook _44c6_s3_p8_0 = {
- 2, 169,
- _vq_lengthlist__44c6_s3_p8_0,
- 1, -523010048, 1618608128, 4, 0,
- _vq_quantlist__44c6_s3_p8_0,
- NULL,
- &_vq_auxt__44c6_s3_p8_0,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c6_s3_p8_1.vqh b/lib/books/coupled/_44c6_s3_p8_1.vqh
deleted file mode 100644
index 9df6d646..00000000
--- a/lib/books/coupled/_44c6_s3_p8_1.vqh
+++ /dev/null
@@ -1,80 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c6_s3_p8_1_VQH_
-#define _V__44c6_s3_p8_1_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c6_s3_p8_1[] = {
- 6,
- 5,
- 7,
- 4,
- 8,
- 3,
- 9,
- 2,
- 10,
- 1,
- 11,
- 0,
- 12,
-};
-
-static long _vq_lengthlist__44c6_s3_p8_1[] = {
- 3, 5, 5, 6, 6, 7, 7, 7, 7, 8, 7, 8, 8, 9, 5, 5,
- 6, 6, 7, 7, 8, 8, 8, 8, 8, 8, 9, 5, 5, 6, 6, 7,
- 7, 8, 8, 8, 8, 8, 8,10, 6, 6, 7, 7, 7, 8, 8, 8,
- 8, 8, 8, 8,10, 9, 9, 7, 7, 8, 7, 8, 8, 8, 8, 8,
- 8,10, 9, 9, 7, 7, 8, 8, 8, 8, 8, 8, 8, 8,10,10,
- 10, 7, 7, 8, 8, 8, 8, 8, 8, 8, 8, 9,10,10, 8, 8,
- 8, 8, 8, 8, 8, 8, 8, 8,10,10,10,10,10, 8, 8, 8,
- 8, 8, 8, 8, 8,10, 9,10,10, 9, 8, 8, 9, 8, 8, 8,
- 8, 8,10,10,10,10,10, 8, 8, 8, 8, 8, 8, 8, 8, 9,
- 10, 9,10,10, 9, 8, 8, 8, 8, 8, 8, 8, 9,10,10,10,
- 9, 9,10, 8, 8, 8, 8, 8, 8,
-};
-
-static float _vq_quantthresh__44c6_s3_p8_1[] = {
- -5.5, -4.5, -3.5, -2.5, -1.5, -0.5, 0.5, 1.5,
- 2.5, 3.5, 4.5, 5.5,
-};
-
-static long _vq_quantmap__44c6_s3_p8_1[] = {
- 11, 9, 7, 5, 3, 1, 0, 2,
- 4, 6, 8, 10, 12,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c6_s3_p8_1 = {
- _vq_quantthresh__44c6_s3_p8_1,
- _vq_quantmap__44c6_s3_p8_1,
- 13,
- 13
-};
-
-static static_codebook _44c6_s3_p8_1 = {
- 2, 169,
- _vq_lengthlist__44c6_s3_p8_1,
- 1, -531103744, 1611661312, 4, 0,
- _vq_quantlist__44c6_s3_p8_1,
- NULL,
- &_vq_auxt__44c6_s3_p8_1,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c6_s3_p9_0.vqh b/lib/books/coupled/_44c6_s3_p9_0.vqh
deleted file mode 100644
index e2cb1a6f..00000000
--- a/lib/books/coupled/_44c6_s3_p9_0.vqh
+++ /dev/null
@@ -1,70 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c6_s3_p9_0_VQH_
-#define _V__44c6_s3_p9_0_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c6_s3_p9_0[] = {
- 4,
- 3,
- 5,
- 2,
- 6,
- 1,
- 7,
- 0,
- 8,
-};
-
-static long _vq_lengthlist__44c6_s3_p9_0[] = {
- 1, 6, 6,11,11,11,11,11,11, 4, 5,10,11,11,11,11,
- 11,11, 2,11, 7,11,11,11,11,11,11,11, 5,11,11,11,
- 11,11,11,11,11,11, 5,11,11,11,10,10,10,10,10,10,
- 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,
- 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,
- 10,
-};
-
-static float _vq_quantthresh__44c6_s3_p9_0[] = {
- -2229.5, -1592.5, -955.5, -318.5, 318.5, 955.5, 1592.5, 2229.5,
-};
-
-static long _vq_quantmap__44c6_s3_p9_0[] = {
- 7, 5, 3, 1, 0, 2, 4, 6,
- 8,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c6_s3_p9_0 = {
- _vq_quantthresh__44c6_s3_p9_0,
- _vq_quantmap__44c6_s3_p9_0,
- 9,
- 9
-};
-
-static static_codebook _44c6_s3_p9_0 = {
- 2, 81,
- _vq_lengthlist__44c6_s3_p9_0,
- 1, -512497664, 1630791680, 4, 0,
- _vq_quantlist__44c6_s3_p9_0,
- NULL,
- &_vq_auxt__44c6_s3_p9_0,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c6_s3_p9_1.vqh b/lib/books/coupled/_44c6_s3_p9_1.vqh
deleted file mode 100644
index 53c4d38e..00000000
--- a/lib/books/coupled/_44c6_s3_p9_1.vqh
+++ /dev/null
@@ -1,80 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c6_s3_p9_1_VQH_
-#define _V__44c6_s3_p9_1_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c6_s3_p9_1[] = {
- 6,
- 5,
- 7,
- 4,
- 8,
- 3,
- 9,
- 2,
- 10,
- 1,
- 11,
- 0,
- 12,
-};
-
-static long _vq_lengthlist__44c6_s3_p9_1[] = {
- 1, 4, 3, 6, 6, 8, 8,10, 9,11,10,11,12, 6, 5, 5,
- 8, 8,10, 9,11,10,13,11,13,12, 5, 5, 5, 8, 7, 9,
- 9,10,10,13,11,12,11,16, 8, 8, 9, 9,10,10,11,11,
- 12,12,12,10,13, 9, 8, 9, 9,10,10,11,11,13,11,11,
- 12,15,11,12,10,10,11,11,12,12,13,10,13,10,16,12,
- 11,10, 9,11,11,12,11,11,12,11,13,16,13,14,13,12,
- 13,13,12,13,12, 9,13,11,16,16,16,11,12,12, 9,13,
- 12,12,12,13,13,16,14,16,12,12,13,11,14,11,13,10,
- 13,12,16,16,16,13,14,14,10,13, 9,14,14,13,14,16,
- 15,15,14,16,13,14,14,10,14,10,13,12,16,15,15,15,
- 15,14,11,13,10,14,10,14,13,
-};
-
-static float _vq_quantthresh__44c6_s3_p9_1[] = {
- -269.5, -220.5, -171.5, -122.5, -73.5, -24.5, 24.5, 73.5,
- 122.5, 171.5, 220.5, 269.5,
-};
-
-static long _vq_quantmap__44c6_s3_p9_1[] = {
- 11, 9, 7, 5, 3, 1, 0, 2,
- 4, 6, 8, 10, 12,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c6_s3_p9_1 = {
- _vq_quantthresh__44c6_s3_p9_1,
- _vq_quantmap__44c6_s3_p9_1,
- 13,
- 13
-};
-
-static static_codebook _44c6_s3_p9_1 = {
- 2, 169,
- _vq_lengthlist__44c6_s3_p9_1,
- 1, -518889472, 1622704128, 4, 0,
- _vq_quantlist__44c6_s3_p9_1,
- NULL,
- &_vq_auxt__44c6_s3_p9_1,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c6_s3_p9_2.vqh b/lib/books/coupled/_44c6_s3_p9_2.vqh
deleted file mode 100644
index 0ce03c07..00000000
--- a/lib/books/coupled/_44c6_s3_p9_2.vqh
+++ /dev/null
@@ -1,118 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c6_s3_p9_2_VQH_
-#define _V__44c6_s3_p9_2_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c6_s3_p9_2[] = {
- 24,
- 23,
- 25,
- 22,
- 26,
- 21,
- 27,
- 20,
- 28,
- 19,
- 29,
- 18,
- 30,
- 17,
- 31,
- 16,
- 32,
- 15,
- 33,
- 14,
- 34,
- 13,
- 35,
- 12,
- 36,
- 11,
- 37,
- 10,
- 38,
- 9,
- 39,
- 8,
- 40,
- 7,
- 41,
- 6,
- 42,
- 5,
- 43,
- 4,
- 44,
- 3,
- 45,
- 2,
- 46,
- 1,
- 47,
- 0,
- 48,
-};
-
-static long _vq_lengthlist__44c6_s3_p9_2[] = {
- 3, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 6, 6, 6,
- 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7,
-};
-
-static float _vq_quantthresh__44c6_s3_p9_2[] = {
- -23.5, -22.5, -21.5, -20.5, -19.5, -18.5, -17.5, -16.5,
- -15.5, -14.5, -13.5, -12.5, -11.5, -10.5, -9.5, -8.5,
- -7.5, -6.5, -5.5, -4.5, -3.5, -2.5, -1.5, -0.5,
- 0.5, 1.5, 2.5, 3.5, 4.5, 5.5, 6.5, 7.5,
- 8.5, 9.5, 10.5, 11.5, 12.5, 13.5, 14.5, 15.5,
- 16.5, 17.5, 18.5, 19.5, 20.5, 21.5, 22.5, 23.5,
-};
-
-static long _vq_quantmap__44c6_s3_p9_2[] = {
- 47, 45, 43, 41, 39, 37, 35, 33,
- 31, 29, 27, 25, 23, 21, 19, 17,
- 15, 13, 11, 9, 7, 5, 3, 1,
- 0, 2, 4, 6, 8, 10, 12, 14,
- 16, 18, 20, 22, 24, 26, 28, 30,
- 32, 34, 36, 38, 40, 42, 44, 46,
- 48,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c6_s3_p9_2 = {
- _vq_quantthresh__44c6_s3_p9_2,
- _vq_quantmap__44c6_s3_p9_2,
- 49,
- 49
-};
-
-static static_codebook _44c6_s3_p9_2 = {
- 1, 49,
- _vq_lengthlist__44c6_s3_p9_2,
- 1, -526909440, 1611661312, 6, 0,
- _vq_quantlist__44c6_s3_p9_2,
- NULL,
- &_vq_auxt__44c6_s3_p9_2,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c6_short.vqh b/lib/books/coupled/_44c6_short.vqh
deleted file mode 100644
index eb3ffd35..00000000
--- a/lib/books/coupled/_44c6_short.vqh
+++ /dev/null
@@ -1,43 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by huff/huffbuld
-
- ********************************************************************/
-
-#ifndef _V__44c6_short_VQH_
-#define _V__44c6_short_VQH_
-#include "codebook.h"
-
-static long _huff_lengthlist__44c6_short[] = {
- 3,18, 9,18,13,17,14,17,17,17,17,16,17,17,17,16,
- 17,16,17,17, 4,17, 5,17, 7,17, 8,10,15,17,17,17,
- 17,12,17, 9,17,10,15,17, 7,17, 5,17, 5,17, 5, 8,
- 15,17,17,13,17, 8,17, 5,17, 7,14,17, 9,17, 5,17,
- 4,17, 3, 5,14,17,12,14, 8, 9, 6, 6, 4, 3, 9,15,
- 16,17,15,12,14, 8,13, 6, 8,16,17,16,17,10,17, 5,
- 17, 4, 6,10,
-};
-
-static static_codebook _huff_book__44c6_short = {
- 2, 100,
- _huff_lengthlist__44c6_short,
- 0, 0, 0, 0, 0,
- NULL,
- NULL,
- NULL,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c7_long.vqh b/lib/books/coupled/_44c7_long.vqh
deleted file mode 100644
index 02a0775d..00000000
--- a/lib/books/coupled/_44c7_long.vqh
+++ /dev/null
@@ -1,43 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by huff/huffbuld
-
- ********************************************************************/
-
-#ifndef _V__44c7_long_VQH_
-#define _V__44c7_long_VQH_
-#include "codebook.h"
-
-static long _huff_lengthlist__44c7_long[] = {
- 2,11,13, 7,11,12,12,13,14,14,11, 5, 6,19,19,19,
- 19,19,12,12,13, 5, 4,19,19,19,19,19, 9,10, 6,19,
- 19, 4, 6, 8, 9,11,13,16,10,19,19, 6, 5, 5, 7,10,
- 12,17,11,19,19, 7, 5, 3, 5, 8,10,15,12,19,19, 9,
- 7, 4, 4, 7, 9,15,12,19,19,11,10, 8, 6, 7, 9,15,
- 11,10, 8,11,11, 9, 9, 9, 9,11,12, 9, 7,14,15,15,
- 15,14, 9, 8,
-};
-
-static static_codebook _huff_book__44c7_long = {
- 2, 100,
- _huff_lengthlist__44c7_long,
- 0, 0, 0, 0, 0,
- NULL,
- NULL,
- NULL,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c7_s0_p0_r0.vqh b/lib/books/coupled/_44c7_s0_p0_r0.vqh
deleted file mode 100644
index 8d595d5b..00000000
--- a/lib/books/coupled/_44c7_s0_p0_r0.vqh
+++ /dev/null
@@ -1,61 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c7_s0_p0_r0_VQH_
-#define _V__44c7_s0_p0_r0_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c7_s0_p0_r0[] = {
- 2,
- 1,
- 3,
- 0,
- 4,
-};
-
-static long _vq_lengthlist__44c7_s0_p0_r0[] = {
- 1, 5, 4,11,11,11, 4, 4,11,11,11, 3, 3,11,11,11,
- 6, 7,11,11,11,11,11,11,11,
-};
-
-static float _vq_quantthresh__44c7_s0_p0_r0[] = {
- -0.5, -0.16667, 0.16667, 0.5,
-};
-
-static long _vq_quantmap__44c7_s0_p0_r0[] = {
- 3, 1, 0, 2, 4,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c7_s0_p0_r0 = {
- _vq_quantthresh__44c7_s0_p0_r0,
- _vq_quantmap__44c7_s0_p0_r0,
- 5,
- 5
-};
-
-static static_codebook _44c7_s0_p0_r0 = {
- 2, 25,
- _vq_lengthlist__44c7_s0_p0_r0,
- 1, -537569963, 1607816533, 3, 0,
- _vq_quantlist__44c7_s0_p0_r0,
- NULL,
- &_vq_auxt__44c7_s0_p0_r0,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c7_s0_p0_r1.vqh b/lib/books/coupled/_44c7_s0_p0_r1.vqh
deleted file mode 100644
index 45d481f9..00000000
--- a/lib/books/coupled/_44c7_s0_p0_r1.vqh
+++ /dev/null
@@ -1,61 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c7_s0_p0_r1_VQH_
-#define _V__44c7_s0_p0_r1_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c7_s0_p0_r1[] = {
- 2,
- 1,
- 3,
- 0,
- 4,
-};
-
-static long _vq_lengthlist__44c7_s0_p0_r1[] = {
- 1, 5, 5,12,12, 6, 3, 3,12,12, 6, 4, 4,12,12,12,
- 7, 8,12,11,11, 7, 7,11,11,
-};
-
-static float _vq_quantthresh__44c7_s0_p0_r1[] = {
- -0.16667, -0.055556, 0.055556, 0.16667,
-};
-
-static long _vq_quantmap__44c7_s0_p0_r1[] = {
- 3, 1, 0, 2, 4,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c7_s0_p0_r1 = {
- _vq_quantthresh__44c7_s0_p0_r1,
- _vq_quantmap__44c7_s0_p0_r1,
- 5,
- 5
-};
-
-static static_codebook _44c7_s0_p0_r1 = {
- 2, 25,
- _vq_lengthlist__44c7_s0_p0_r1,
- 1, -541298233, 1604088263, 3, 0,
- _vq_quantlist__44c7_s0_p0_r1,
- NULL,
- &_vq_auxt__44c7_s0_p0_r1,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c7_s0_p1_0.vqh b/lib/books/coupled/_44c7_s0_p1_0.vqh
deleted file mode 100644
index 2cc95608..00000000
--- a/lib/books/coupled/_44c7_s0_p1_0.vqh
+++ /dev/null
@@ -1,75 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c7_s0_p1_0_VQH_
-#define _V__44c7_s0_p1_0_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c7_s0_p1_0[] = {
- 19,
- 16,
- 22,
- 13,
- 25,
- 0,
- 38,
- 7,
- 31,
- 4,
- 34,
-};
-
-static long _vq_lengthlist__44c7_s0_p1_0[] = {
- 2, 3, 3, 5, 5, 0, 0, 0, 0, 0, 0, 5, 4, 4, 6, 6,
- 0, 0, 0, 0, 0, 0, 0, 4, 4, 6, 6, 0, 0, 0, 0, 0,
- 0, 0, 7, 7, 6, 6, 0, 0, 0, 0, 0, 0, 0, 7, 7, 7,
- 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 9, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 8, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,11,11, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,11,11, 0, 0, 0, 0, 0, 0,
-};
-
-static float _vq_quantthresh__44c7_s0_p1_0[] = {
- -17, -13.5, -9, -4.5, -1.5, 1.5, 4.5, 9,
- 13.5, 17,
-};
-
-static long _vq_quantmap__44c7_s0_p1_0[] = {
- 5, 9, 7, 3, 1, 0, 2, 4,
- 8, 10, 6,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c7_s0_p1_0 = {
- _vq_quantthresh__44c7_s0_p1_0,
- _vq_quantmap__44c7_s0_p1_0,
- 11,
- 11
-};
-
-static static_codebook _44c7_s0_p1_0 = {
- 2, 121,
- _vq_lengthlist__44c7_s0_p1_0,
- 1, -527237120, 1611661312, 6, 0,
- _vq_quantlist__44c7_s0_p1_0,
- NULL,
- &_vq_auxt__44c7_s0_p1_0,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c7_s0_p1_1.vqh b/lib/books/coupled/_44c7_s0_p1_1.vqh
deleted file mode 100644
index 61cbf8be..00000000
--- a/lib/books/coupled/_44c7_s0_p1_1.vqh
+++ /dev/null
@@ -1,58 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c7_s0_p1_1_VQH_
-#define _V__44c7_s0_p1_1_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c7_s0_p1_1[] = {
- 1,
- 0,
- 2,
-};
-
-static long _vq_lengthlist__44c7_s0_p1_1[] = {
- 2, 3, 3, 4, 4, 4, 4, 3, 3,
-};
-
-static float _vq_quantthresh__44c7_s0_p1_1[] = {
- -0.5, 0.5,
-};
-
-static long _vq_quantmap__44c7_s0_p1_1[] = {
- 1, 0, 2,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c7_s0_p1_1 = {
- _vq_quantthresh__44c7_s0_p1_1,
- _vq_quantmap__44c7_s0_p1_1,
- 3,
- 3
-};
-
-static static_codebook _44c7_s0_p1_1 = {
- 2, 9,
- _vq_lengthlist__44c7_s0_p1_1,
- 1, -535822336, 1611661312, 2, 0,
- _vq_quantlist__44c7_s0_p1_1,
- NULL,
- &_vq_auxt__44c7_s0_p1_1,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c7_s0_p2_0.vqh b/lib/books/coupled/_44c7_s0_p2_0.vqh
deleted file mode 100644
index 1dd0dc3c..00000000
--- a/lib/books/coupled/_44c7_s0_p2_0.vqh
+++ /dev/null
@@ -1,80 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c7_s0_p2_0_VQH_
-#define _V__44c7_s0_p2_0_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c7_s0_p2_0[] = {
- 6,
- 5,
- 7,
- 4,
- 8,
- 3,
- 9,
- 2,
- 10,
- 1,
- 11,
- 0,
- 12,
-};
-
-static long _vq_lengthlist__44c7_s0_p2_0[] = {
- 1, 3, 3, 7, 7, 9, 9, 0, 0, 0, 0, 0, 0, 5, 5, 5,
- 8, 8,10,10, 0, 0, 0, 0, 0, 0, 6, 5, 5, 8, 8,10,
- 10, 0, 0, 0, 0, 0, 0, 0, 8, 8, 9, 9,10,11, 0, 0,
- 0, 0, 0, 0, 0, 8, 8, 8, 8,11,11, 0, 0, 0, 0, 0,
- 0, 0,12,12,10,10,11,11, 0, 0, 0, 0, 0, 0, 0,13,
- 12,10,10,11,11, 0, 0, 0, 0, 0, 0, 0, 0, 0,12,12,
- 12,12, 0, 0, 0, 0, 0, 0, 0, 0, 0,12,12,12,12, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,16,16,13,13, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,17,17,13,13, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,16,16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,15,16, 0, 0, 0, 0, 0, 0,
-};
-
-static float _vq_quantthresh__44c7_s0_p2_0[] = {
- -71.5, -58.5, -45.5, -32.5, -19.5, -6.5, 6.5, 19.5,
- 32.5, 45.5, 58.5, 71.5,
-};
-
-static long _vq_quantmap__44c7_s0_p2_0[] = {
- 11, 9, 7, 5, 3, 1, 0, 2,
- 4, 6, 8, 10, 12,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c7_s0_p2_0 = {
- _vq_quantthresh__44c7_s0_p2_0,
- _vq_quantmap__44c7_s0_p2_0,
- 13,
- 13
-};
-
-static static_codebook _44c7_s0_p2_0 = {
- 2, 169,
- _vq_lengthlist__44c7_s0_p2_0,
- 1, -523010048, 1618608128, 4, 0,
- _vq_quantlist__44c7_s0_p2_0,
- NULL,
- &_vq_auxt__44c7_s0_p2_0,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c7_s0_p2_1.vqh b/lib/books/coupled/_44c7_s0_p2_1.vqh
deleted file mode 100644
index a1502f3d..00000000
--- a/lib/books/coupled/_44c7_s0_p2_1.vqh
+++ /dev/null
@@ -1,80 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c7_s0_p2_1_VQH_
-#define _V__44c7_s0_p2_1_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c7_s0_p2_1[] = {
- 6,
- 5,
- 7,
- 4,
- 8,
- 3,
- 9,
- 2,
- 10,
- 1,
- 11,
- 0,
- 12,
-};
-
-static long _vq_lengthlist__44c7_s0_p2_1[] = {
- 4, 5, 5, 6, 6, 6, 6, 7, 7, 7, 7, 7, 7,10, 5, 5,
- 6, 6, 7, 7, 7, 7, 8, 8, 8, 8, 9, 5, 5, 6, 6, 7,
- 7, 7, 7, 8, 8, 8, 8,10, 6, 6, 7, 7, 7, 7, 8, 7,
- 8, 8, 8, 8,10,10,10, 7, 7, 7, 7, 8, 8, 8, 8, 8,
- 8,10,10,10, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8,10,10,
- 10, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8,10,10,10, 8, 8,
- 8, 8, 8, 8, 8, 8, 8, 8,10,10,10,10,10, 8, 8, 8,
- 8, 8, 8, 8, 8,10,10,10,10,10, 8, 8, 8, 8, 8, 8,
- 8, 8,10,10,10,10,10, 8, 8, 8, 8, 8, 8, 8, 8,10,
- 10,10,10,10, 8, 8, 8, 8, 8, 8, 8, 8,10,10,10,10,
- 10, 9,10, 8, 8, 8, 8, 8, 8,
-};
-
-static float _vq_quantthresh__44c7_s0_p2_1[] = {
- -5.5, -4.5, -3.5, -2.5, -1.5, -0.5, 0.5, 1.5,
- 2.5, 3.5, 4.5, 5.5,
-};
-
-static long _vq_quantmap__44c7_s0_p2_1[] = {
- 11, 9, 7, 5, 3, 1, 0, 2,
- 4, 6, 8, 10, 12,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c7_s0_p2_1 = {
- _vq_quantthresh__44c7_s0_p2_1,
- _vq_quantmap__44c7_s0_p2_1,
- 13,
- 13
-};
-
-static static_codebook _44c7_s0_p2_1 = {
- 2, 169,
- _vq_lengthlist__44c7_s0_p2_1,
- 1, -531103744, 1611661312, 4, 0,
- _vq_quantlist__44c7_s0_p2_1,
- NULL,
- &_vq_auxt__44c7_s0_p2_1,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c7_s0_p3_0.vqh b/lib/books/coupled/_44c7_s0_p3_0.vqh
deleted file mode 100644
index f52f61b5..00000000
--- a/lib/books/coupled/_44c7_s0_p3_0.vqh
+++ /dev/null
@@ -1,99 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c7_s0_p3_0_VQH_
-#define _V__44c7_s0_p3_0_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c7_s0_p3_0[] = {
- 2,
- 1,
- 3,
- 0,
- 4,
-};
-
-static long _vq_lengthlist__44c7_s0_p3_0[] = {
- 1, 6, 6, 0, 0, 0, 5, 5, 0, 0, 0, 5, 5, 0, 0, 0,
- 8, 8, 0, 0, 0, 0, 0, 0, 0, 6, 8, 7, 0, 0, 0, 9,
- 8, 0, 0, 0, 9, 8, 0, 0, 0,11,11, 0, 0, 0, 0, 0,
- 0, 0, 6, 7, 8, 0, 0, 0, 8, 9, 0, 0, 0, 8, 9, 0,
- 0, 0,11,11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 5, 8, 8, 0, 0, 0, 8, 7, 0, 0,
- 0, 8, 8, 0, 0, 0,10,10, 0, 0, 0, 0, 0, 0, 0, 5,
- 8, 9, 0, 0, 0, 7, 8, 0, 0, 0, 8, 8, 0, 0, 0,10,
- 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 5, 9, 8, 0, 0, 0, 8, 8, 0, 0, 0, 8, 7,
- 0, 0, 0,10,10, 0, 0, 0, 0, 0, 0, 0, 5, 8, 9, 0,
- 0, 0, 8, 8, 0, 0, 0, 7, 8, 0, 0, 0,10,10, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 8,11,12, 0, 0, 0,10,10, 0, 0, 0,10,10, 0, 0, 0,
- 11,10, 0, 0, 0, 0, 0, 0, 0, 8,12,11, 0, 0, 0,10,
- 10, 0, 0, 0,10,10, 0, 0, 0,11,11, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,
-};
-
-static float _vq_quantthresh__44c7_s0_p3_0[] = {
- -1.5, -0.5, 0.5, 1.5,
-};
-
-static long _vq_quantmap__44c7_s0_p3_0[] = {
- 3, 1, 0, 2, 4,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c7_s0_p3_0 = {
- _vq_quantthresh__44c7_s0_p3_0,
- _vq_quantmap__44c7_s0_p3_0,
- 5,
- 5
-};
-
-static static_codebook _44c7_s0_p3_0 = {
- 4, 625,
- _vq_lengthlist__44c7_s0_p3_0,
- 1, -533725184, 1611661312, 3, 0,
- _vq_quantlist__44c7_s0_p3_0,
- NULL,
- &_vq_auxt__44c7_s0_p3_0,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c7_s0_p4_0.vqh b/lib/books/coupled/_44c7_s0_p4_0.vqh
deleted file mode 100644
index 391824ce..00000000
--- a/lib/books/coupled/_44c7_s0_p4_0.vqh
+++ /dev/null
@@ -1,70 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c7_s0_p4_0_VQH_
-#define _V__44c7_s0_p4_0_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c7_s0_p4_0[] = {
- 4,
- 3,
- 5,
- 2,
- 6,
- 1,
- 7,
- 0,
- 8,
-};
-
-static long _vq_lengthlist__44c7_s0_p4_0[] = {
- 2, 3, 3, 6, 6, 0, 0, 0, 0, 0, 4, 4, 6, 6, 0, 0,
- 0, 0, 0, 4, 4, 6, 6, 0, 0, 0, 0, 0, 5, 5, 6, 6,
- 0, 0, 0, 0, 0, 0, 0, 6, 6, 0, 0, 0, 0, 0, 0, 0,
- 7, 7, 0, 0, 0, 0, 0, 0, 0, 8, 7, 0, 0, 0, 0, 0,
- 0, 0, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,
-};
-
-static float _vq_quantthresh__44c7_s0_p4_0[] = {
- -3.5, -2.5, -1.5, -0.5, 0.5, 1.5, 2.5, 3.5,
-};
-
-static long _vq_quantmap__44c7_s0_p4_0[] = {
- 7, 5, 3, 1, 0, 2, 4, 6,
- 8,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c7_s0_p4_0 = {
- _vq_quantthresh__44c7_s0_p4_0,
- _vq_quantmap__44c7_s0_p4_0,
- 9,
- 9
-};
-
-static static_codebook _44c7_s0_p4_0 = {
- 2, 81,
- _vq_lengthlist__44c7_s0_p4_0,
- 1, -531628032, 1611661312, 4, 0,
- _vq_quantlist__44c7_s0_p4_0,
- NULL,
- &_vq_auxt__44c7_s0_p4_0,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c7_s0_p5_0.vqh b/lib/books/coupled/_44c7_s0_p5_0.vqh
deleted file mode 100644
index dc30554d..00000000
--- a/lib/books/coupled/_44c7_s0_p5_0.vqh
+++ /dev/null
@@ -1,93 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c7_s0_p5_0_VQH_
-#define _V__44c7_s0_p5_0_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c7_s0_p5_0[] = {
- 8,
- 7,
- 9,
- 6,
- 10,
- 5,
- 11,
- 4,
- 12,
- 3,
- 13,
- 2,
- 14,
- 1,
- 15,
- 0,
- 16,
-};
-
-static long _vq_lengthlist__44c7_s0_p5_0[] = {
- 3, 4, 4, 5, 5, 7, 7, 8, 8, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 4, 4, 5, 5, 7, 7, 9, 9, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 4, 4, 6, 6, 7, 7, 9, 9, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 5, 5, 6, 6, 7, 7, 9, 9, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 6, 6, 7, 7, 9, 9, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 7, 7, 9, 9, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 8, 7, 9, 9, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 8, 8, 8, 9, 9,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 8, 9,
- 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9,
- 10,10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9,
- 9,10,10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 10,10,10,10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,10,11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,11,11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,11,11, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,12,12, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,
-};
-
-static float _vq_quantthresh__44c7_s0_p5_0[] = {
- -7.5, -6.5, -5.5, -4.5, -3.5, -2.5, -1.5, -0.5,
- 0.5, 1.5, 2.5, 3.5, 4.5, 5.5, 6.5, 7.5,
-};
-
-static long _vq_quantmap__44c7_s0_p5_0[] = {
- 15, 13, 11, 9, 7, 5, 3, 1,
- 0, 2, 4, 6, 8, 10, 12, 14,
- 16,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c7_s0_p5_0 = {
- _vq_quantthresh__44c7_s0_p5_0,
- _vq_quantmap__44c7_s0_p5_0,
- 17,
- 17
-};
-
-static static_codebook _44c7_s0_p5_0 = {
- 2, 289,
- _vq_lengthlist__44c7_s0_p5_0,
- 1, -529530880, 1611661312, 5, 0,
- _vq_quantlist__44c7_s0_p5_0,
- NULL,
- &_vq_auxt__44c7_s0_p5_0,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c7_s0_p6_0.vqh b/lib/books/coupled/_44c7_s0_p6_0.vqh
deleted file mode 100644
index 34b1bcce..00000000
--- a/lib/books/coupled/_44c7_s0_p6_0.vqh
+++ /dev/null
@@ -1,75 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c7_s0_p6_0_VQH_
-#define _V__44c7_s0_p6_0_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c7_s0_p6_0[] = {
- 19,
- 16,
- 22,
- 13,
- 25,
- 0,
- 38,
- 7,
- 31,
- 4,
- 34,
-};
-
-static long _vq_lengthlist__44c7_s0_p6_0[] = {
- 2, 3, 3, 6, 5, 0, 0, 0, 0, 0, 0, 5, 4, 4, 6, 6,
- 0, 0, 0, 0, 0, 0, 0, 4, 4, 6, 6, 0, 0, 0, 0, 0,
- 0, 0, 6, 6, 6, 6, 0, 0, 0, 0, 0, 0, 0, 7, 7, 7,
- 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 10, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,12,11, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,13,13, 0, 0, 0, 0, 0, 0,
-};
-
-static float _vq_quantthresh__44c7_s0_p6_0[] = {
- -17, -13.5, -9, -4.5, -1.5, 1.5, 4.5, 9,
- 13.5, 17,
-};
-
-static long _vq_quantmap__44c7_s0_p6_0[] = {
- 5, 9, 7, 3, 1, 0, 2, 4,
- 8, 10, 6,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c7_s0_p6_0 = {
- _vq_quantthresh__44c7_s0_p6_0,
- _vq_quantmap__44c7_s0_p6_0,
- 11,
- 11
-};
-
-static static_codebook _44c7_s0_p6_0 = {
- 2, 121,
- _vq_lengthlist__44c7_s0_p6_0,
- 1, -527237120, 1611661312, 6, 0,
- _vq_quantlist__44c7_s0_p6_0,
- NULL,
- &_vq_auxt__44c7_s0_p6_0,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c7_s0_p6_1.vqh b/lib/books/coupled/_44c7_s0_p6_1.vqh
deleted file mode 100644
index ef25ce43..00000000
--- a/lib/books/coupled/_44c7_s0_p6_1.vqh
+++ /dev/null
@@ -1,58 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c7_s0_p6_1_VQH_
-#define _V__44c7_s0_p6_1_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c7_s0_p6_1[] = {
- 1,
- 0,
- 2,
-};
-
-static long _vq_lengthlist__44c7_s0_p6_1[] = {
- 3, 3, 3, 4, 3, 3, 4, 3, 3,
-};
-
-static float _vq_quantthresh__44c7_s0_p6_1[] = {
- -0.5, 0.5,
-};
-
-static long _vq_quantmap__44c7_s0_p6_1[] = {
- 1, 0, 2,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c7_s0_p6_1 = {
- _vq_quantthresh__44c7_s0_p6_1,
- _vq_quantmap__44c7_s0_p6_1,
- 3,
- 3
-};
-
-static static_codebook _44c7_s0_p6_1 = {
- 2, 9,
- _vq_lengthlist__44c7_s0_p6_1,
- 1, -535822336, 1611661312, 2, 0,
- _vq_quantlist__44c7_s0_p6_1,
- NULL,
- &_vq_auxt__44c7_s0_p6_1,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c7_s0_p7_0.vqh b/lib/books/coupled/_44c7_s0_p7_0.vqh
deleted file mode 100644
index e6400656..00000000
--- a/lib/books/coupled/_44c7_s0_p7_0.vqh
+++ /dev/null
@@ -1,80 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c7_s0_p7_0_VQH_
-#define _V__44c7_s0_p7_0_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c7_s0_p7_0[] = {
- 6,
- 5,
- 7,
- 4,
- 8,
- 3,
- 9,
- 2,
- 10,
- 1,
- 11,
- 0,
- 12,
-};
-
-static long _vq_lengthlist__44c7_s0_p7_0[] = {
- 1, 3, 4, 6, 6, 9, 9, 0, 0, 0, 0, 0, 0, 6, 5, 5,
- 7, 7, 9, 9, 0, 0, 0, 0, 0, 0, 6, 5, 5, 7, 7, 9,
- 9, 0, 0, 0, 0, 0, 0, 0, 7, 7, 7, 8,10,10, 0, 0,
- 0, 0, 0, 0, 0, 8, 8, 7, 7,10,10, 0, 0, 0, 0, 0,
- 0, 0,11,11, 8, 8,10,10, 0, 0, 0, 0, 0, 0, 0,12,
- 12, 8, 8,10,10, 0, 0, 0, 0, 0, 0, 0, 0, 0,10,10,
- 11,11, 0, 0, 0, 0, 0, 0, 0, 0, 0,11,11,11,11, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,14,14,12,12, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,15,15,12,12, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,13,14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,14,14, 0, 0, 0, 0, 0, 0,
-};
-
-static float _vq_quantthresh__44c7_s0_p7_0[] = {
- -27.5, -22.5, -17.5, -12.5, -7.5, -2.5, 2.5, 7.5,
- 12.5, 17.5, 22.5, 27.5,
-};
-
-static long _vq_quantmap__44c7_s0_p7_0[] = {
- 11, 9, 7, 5, 3, 1, 0, 2,
- 4, 6, 8, 10, 12,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c7_s0_p7_0 = {
- _vq_quantthresh__44c7_s0_p7_0,
- _vq_quantmap__44c7_s0_p7_0,
- 13,
- 13
-};
-
-static static_codebook _44c7_s0_p7_0 = {
- 2, 169,
- _vq_lengthlist__44c7_s0_p7_0,
- 1, -526516224, 1616117760, 4, 0,
- _vq_quantlist__44c7_s0_p7_0,
- NULL,
- &_vq_auxt__44c7_s0_p7_0,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c7_s0_p7_1.vqh b/lib/books/coupled/_44c7_s0_p7_1.vqh
deleted file mode 100644
index 1f1d528e..00000000
--- a/lib/books/coupled/_44c7_s0_p7_1.vqh
+++ /dev/null
@@ -1,61 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c7_s0_p7_1_VQH_
-#define _V__44c7_s0_p7_1_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c7_s0_p7_1[] = {
- 2,
- 1,
- 3,
- 0,
- 4,
-};
-
-static long _vq_lengthlist__44c7_s0_p7_1[] = {
- 3, 4, 4, 4, 5, 6, 4, 4, 5, 5, 6, 4, 4, 5, 5, 6,
- 5, 5, 5, 5, 6, 6, 6, 5, 5,
-};
-
-static float _vq_quantthresh__44c7_s0_p7_1[] = {
- -1.5, -0.5, 0.5, 1.5,
-};
-
-static long _vq_quantmap__44c7_s0_p7_1[] = {
- 3, 1, 0, 2, 4,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c7_s0_p7_1 = {
- _vq_quantthresh__44c7_s0_p7_1,
- _vq_quantmap__44c7_s0_p7_1,
- 5,
- 5
-};
-
-static static_codebook _44c7_s0_p7_1 = {
- 2, 25,
- _vq_lengthlist__44c7_s0_p7_1,
- 1, -533725184, 1611661312, 3, 0,
- _vq_quantlist__44c7_s0_p7_1,
- NULL,
- &_vq_auxt__44c7_s0_p7_1,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c7_s0_p8_0.vqh b/lib/books/coupled/_44c7_s0_p8_0.vqh
deleted file mode 100644
index a3c42e1c..00000000
--- a/lib/books/coupled/_44c7_s0_p8_0.vqh
+++ /dev/null
@@ -1,86 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c7_s0_p8_0_VQH_
-#define _V__44c7_s0_p8_0_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c7_s0_p8_0[] = {
- 7,
- 6,
- 8,
- 5,
- 9,
- 4,
- 10,
- 3,
- 11,
- 2,
- 12,
- 1,
- 13,
- 0,
- 14,
-};
-
-static long _vq_lengthlist__44c7_s0_p8_0[] = {
- 1, 3, 4, 6, 6, 7, 7, 9, 9, 0, 0, 0, 0, 0, 0, 6,
- 5, 5, 7, 7, 8, 8,10,11, 0, 0, 0, 0, 0, 0, 6, 5,
- 5, 7, 7, 8, 8,11,11, 0, 0, 0, 0, 0, 0, 0, 8, 8,
- 9, 8, 9, 9,11,11, 0, 0, 0, 0, 0, 0, 0, 8, 8, 9,
- 8, 9, 9,11,11, 0, 0, 0, 0, 0, 0, 0,12,13,10,10,
- 10,10,12,12, 0, 0, 0, 0, 0, 0, 0,13,13,10,10,10,
- 10,12,12, 0, 0, 0, 0, 0, 0, 0, 0, 0,12,12,10,10,
- 12,12, 0, 0, 0, 0, 0, 0, 0, 0, 0,12,12,10,10,12,
- 12, 0, 0, 0, 0, 0, 0, 0, 0, 0,15,15,11,11,13,13,
- 0, 0, 0, 0, 0, 0, 0, 0, 0,17,17,11,11,13,13, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,12,13,13,14, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0,13,13,14,13, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,15,16,15,15, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,16,16,13,15, 0, 0, 0, 0, 0,
- 0,
-};
-
-static float _vq_quantthresh__44c7_s0_p8_0[] = {
- -97.5, -82.5, -67.5, -52.5, -37.5, -22.5, -7.5, 7.5,
- 22.5, 37.5, 52.5, 67.5, 82.5, 97.5,
-};
-
-static long _vq_quantmap__44c7_s0_p8_0[] = {
- 13, 11, 9, 7, 5, 3, 1, 0,
- 2, 4, 6, 8, 10, 12, 14,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c7_s0_p8_0 = {
- _vq_quantthresh__44c7_s0_p8_0,
- _vq_quantmap__44c7_s0_p8_0,
- 15,
- 15
-};
-
-static static_codebook _44c7_s0_p8_0 = {
- 2, 225,
- _vq_lengthlist__44c7_s0_p8_0,
- 1, -522567680, 1618870272, 4, 0,
- _vq_quantlist__44c7_s0_p8_0,
- NULL,
- &_vq_auxt__44c7_s0_p8_0,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c7_s0_p8_1.vqh b/lib/books/coupled/_44c7_s0_p8_1.vqh
deleted file mode 100644
index 06f79954..00000000
--- a/lib/books/coupled/_44c7_s0_p8_1.vqh
+++ /dev/null
@@ -1,86 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c7_s0_p8_1_VQH_
-#define _V__44c7_s0_p8_1_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c7_s0_p8_1[] = {
- 7,
- 6,
- 8,
- 5,
- 9,
- 4,
- 10,
- 3,
- 11,
- 2,
- 12,
- 1,
- 13,
- 0,
- 14,
-};
-
-static long _vq_lengthlist__44c7_s0_p8_1[] = {
- 3, 5, 5, 6, 6, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8,10,
- 5, 5, 6, 6, 7, 7, 8, 8, 8, 8, 8, 8, 9, 9,10, 5,
- 5, 6, 6, 7, 7, 8, 8, 8, 8, 8, 8, 8, 8,10, 6, 7,
- 7, 7, 8, 8, 8, 8, 8, 8, 9, 9, 9, 9,10,10,10, 7,
- 7, 7, 7, 8, 8, 8, 8, 9, 9, 9, 9,10,10,10, 7, 7,
- 8, 8, 8, 8, 8, 8, 9, 9, 9, 9,10,10,10, 7, 7, 8,
- 8, 8, 8, 9, 8, 9, 8, 9, 9,10,10,10, 8, 8, 8, 8,
- 8, 8, 9, 9, 9, 9, 9, 9,10,10,10,10,10, 8, 8, 8,
- 8, 9, 9, 9, 9, 9, 9,10,10,10,10,10, 8, 9, 8, 9,
- 9, 9, 9, 9, 9, 9,10,10,10,10,10, 8, 8, 9, 9, 9,
- 9, 9, 9, 9, 9,10,10,10,10,10, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 9,10,10,10,10,10,10,10, 9, 9, 9, 9, 9,
- 9, 9, 9,10,10,10,10,10,10,10, 9, 9, 9, 9, 9, 9,
- 9, 9,10,10,10,10,10,10,10, 9, 9, 9, 9, 9, 9, 9,
- 9,
-};
-
-static float _vq_quantthresh__44c7_s0_p8_1[] = {
- -6.5, -5.5, -4.5, -3.5, -2.5, -1.5, -0.5, 0.5,
- 1.5, 2.5, 3.5, 4.5, 5.5, 6.5,
-};
-
-static long _vq_quantmap__44c7_s0_p8_1[] = {
- 13, 11, 9, 7, 5, 3, 1, 0,
- 2, 4, 6, 8, 10, 12, 14,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c7_s0_p8_1 = {
- _vq_quantthresh__44c7_s0_p8_1,
- _vq_quantmap__44c7_s0_p8_1,
- 15,
- 15
-};
-
-static static_codebook _44c7_s0_p8_1 = {
- 2, 225,
- _vq_lengthlist__44c7_s0_p8_1,
- 1, -530841600, 1611661312, 4, 0,
- _vq_quantlist__44c7_s0_p8_1,
- NULL,
- &_vq_auxt__44c7_s0_p8_1,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c7_s0_p9_0.vqh b/lib/books/coupled/_44c7_s0_p9_0.vqh
deleted file mode 100644
index dacb1409..00000000
--- a/lib/books/coupled/_44c7_s0_p9_0.vqh
+++ /dev/null
@@ -1,70 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c7_s0_p9_0_VQH_
-#define _V__44c7_s0_p9_0_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c7_s0_p9_0[] = {
- 4,
- 3,
- 5,
- 2,
- 6,
- 1,
- 7,
- 0,
- 8,
-};
-
-static long _vq_lengthlist__44c7_s0_p9_0[] = {
- 1, 4, 4,13,13,11,12,12,12, 4, 6, 9,12,12,12,12,
- 12,12, 2,11, 7,12,12,12,12,12,12,12, 6,12,12,12,
- 12,12,12,12,12,12, 8,12,12,12,12,12,12,12,12,12,
- 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,
- 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,
- 12,
-};
-
-static float _vq_quantthresh__44c7_s0_p9_0[] = {
- -2229.5, -1592.5, -955.5, -318.5, 318.5, 955.5, 1592.5, 2229.5,
-};
-
-static long _vq_quantmap__44c7_s0_p9_0[] = {
- 7, 5, 3, 1, 0, 2, 4, 6,
- 8,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c7_s0_p9_0 = {
- _vq_quantthresh__44c7_s0_p9_0,
- _vq_quantmap__44c7_s0_p9_0,
- 9,
- 9
-};
-
-static static_codebook _44c7_s0_p9_0 = {
- 2, 81,
- _vq_lengthlist__44c7_s0_p9_0,
- 1, -512497664, 1630791680, 4, 0,
- _vq_quantlist__44c7_s0_p9_0,
- NULL,
- &_vq_auxt__44c7_s0_p9_0,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c7_s0_p9_1.vqh b/lib/books/coupled/_44c7_s0_p9_1.vqh
deleted file mode 100644
index bc24b511..00000000
--- a/lib/books/coupled/_44c7_s0_p9_1.vqh
+++ /dev/null
@@ -1,80 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c7_s0_p9_1_VQH_
-#define _V__44c7_s0_p9_1_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c7_s0_p9_1[] = {
- 6,
- 5,
- 7,
- 4,
- 8,
- 3,
- 9,
- 2,
- 10,
- 1,
- 11,
- 0,
- 12,
-};
-
-static long _vq_lengthlist__44c7_s0_p9_1[] = {
- 1, 3, 3, 6, 6, 8, 8, 9, 9,11,10,11,11, 6, 6, 6,
- 7, 7, 9, 9,10,10,11,12,12,12, 6, 6, 5, 7, 7, 9,
- 9,10,11,11,11,12,12,17, 8, 8, 9, 9,10,10,11,12,
- 12,12,13,11,14, 9, 8, 9, 9,10,10,12,11,12,12,12,
- 13,18,12,12,10,10,11,11,11,12,12,11,13,11,16,12,
- 12,10,10,12,11,12,12,12,13,13,13,17,16,16,12,12,
- 12,12,13,13,13,10,14,12,18,17,16,11,12,11,10,13,
- 13,13,12,14,14,16,17,17,14,15,12,11,13,12,14,12,
- 13,13,17,17,17,14,15,12,11,13,11,14,14,14,15,16,
- 17,16,17,16,13,14,13,12,14,12,15,13,17,17,17,17,
- 17,14,13,13,11,14,12,14,14,
-};
-
-static float _vq_quantthresh__44c7_s0_p9_1[] = {
- -269.5, -220.5, -171.5, -122.5, -73.5, -24.5, 24.5, 73.5,
- 122.5, 171.5, 220.5, 269.5,
-};
-
-static long _vq_quantmap__44c7_s0_p9_1[] = {
- 11, 9, 7, 5, 3, 1, 0, 2,
- 4, 6, 8, 10, 12,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c7_s0_p9_1 = {
- _vq_quantthresh__44c7_s0_p9_1,
- _vq_quantmap__44c7_s0_p9_1,
- 13,
- 13
-};
-
-static static_codebook _44c7_s0_p9_1 = {
- 2, 169,
- _vq_lengthlist__44c7_s0_p9_1,
- 1, -518889472, 1622704128, 4, 0,
- _vq_quantlist__44c7_s0_p9_1,
- NULL,
- &_vq_auxt__44c7_s0_p9_1,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c7_s0_p9_2.vqh b/lib/books/coupled/_44c7_s0_p9_2.vqh
deleted file mode 100644
index ab3b7488..00000000
--- a/lib/books/coupled/_44c7_s0_p9_2.vqh
+++ /dev/null
@@ -1,118 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c7_s0_p9_2_VQH_
-#define _V__44c7_s0_p9_2_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c7_s0_p9_2[] = {
- 24,
- 23,
- 25,
- 22,
- 26,
- 21,
- 27,
- 20,
- 28,
- 19,
- 29,
- 18,
- 30,
- 17,
- 31,
- 16,
- 32,
- 15,
- 33,
- 14,
- 34,
- 13,
- 35,
- 12,
- 36,
- 11,
- 37,
- 10,
- 38,
- 9,
- 39,
- 8,
- 40,
- 7,
- 41,
- 6,
- 42,
- 5,
- 43,
- 4,
- 44,
- 3,
- 45,
- 2,
- 46,
- 1,
- 47,
- 0,
- 48,
-};
-
-static long _vq_lengthlist__44c7_s0_p9_2[] = {
- 3, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 5, 6, 6, 6, 6,
- 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7,
-};
-
-static float _vq_quantthresh__44c7_s0_p9_2[] = {
- -23.5, -22.5, -21.5, -20.5, -19.5, -18.5, -17.5, -16.5,
- -15.5, -14.5, -13.5, -12.5, -11.5, -10.5, -9.5, -8.5,
- -7.5, -6.5, -5.5, -4.5, -3.5, -2.5, -1.5, -0.5,
- 0.5, 1.5, 2.5, 3.5, 4.5, 5.5, 6.5, 7.5,
- 8.5, 9.5, 10.5, 11.5, 12.5, 13.5, 14.5, 15.5,
- 16.5, 17.5, 18.5, 19.5, 20.5, 21.5, 22.5, 23.5,
-};
-
-static long _vq_quantmap__44c7_s0_p9_2[] = {
- 47, 45, 43, 41, 39, 37, 35, 33,
- 31, 29, 27, 25, 23, 21, 19, 17,
- 15, 13, 11, 9, 7, 5, 3, 1,
- 0, 2, 4, 6, 8, 10, 12, 14,
- 16, 18, 20, 22, 24, 26, 28, 30,
- 32, 34, 36, 38, 40, 42, 44, 46,
- 48,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c7_s0_p9_2 = {
- _vq_quantthresh__44c7_s0_p9_2,
- _vq_quantmap__44c7_s0_p9_2,
- 49,
- 49
-};
-
-static static_codebook _44c7_s0_p9_2 = {
- 1, 49,
- _vq_lengthlist__44c7_s0_p9_2,
- 1, -526909440, 1611661312, 6, 0,
- _vq_quantlist__44c7_s0_p9_2,
- NULL,
- &_vq_auxt__44c7_s0_p9_2,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c7_s0_pN_r0.vqh b/lib/books/coupled/_44c7_s0_pN_r0.vqh
deleted file mode 100644
index bb9d15d0..00000000
--- a/lib/books/coupled/_44c7_s0_pN_r0.vqh
+++ /dev/null
@@ -1,61 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c7_s0_pN_r0_VQH_
-#define _V__44c7_s0_pN_r0_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c7_s0_pN_r0[] = {
- 2,
- 1,
- 3,
- 0,
- 4,
-};
-
-static long _vq_lengthlist__44c7_s0_pN_r0[] = {
- 3, 3, 3, 8, 8, 4, 4, 4, 9, 9, 4, 4, 4, 9, 8, 8,
- 4, 4, 9, 9, 9, 5, 4, 9, 9,
-};
-
-static float _vq_quantthresh__44c7_s0_pN_r0[] = {
- -0.5, -0.16667, 0.16667, 0.5,
-};
-
-static long _vq_quantmap__44c7_s0_pN_r0[] = {
- 3, 1, 0, 2, 4,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c7_s0_pN_r0 = {
- _vq_quantthresh__44c7_s0_pN_r0,
- _vq_quantmap__44c7_s0_pN_r0,
- 5,
- 5
-};
-
-static static_codebook _44c7_s0_pN_r0 = {
- 2, 25,
- _vq_lengthlist__44c7_s0_pN_r0,
- 1, -537569963, 1607816533, 3, 0,
- _vq_quantlist__44c7_s0_pN_r0,
- NULL,
- &_vq_auxt__44c7_s0_pN_r0,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c7_s0_pN_r1.vqh b/lib/books/coupled/_44c7_s0_pN_r1.vqh
deleted file mode 100644
index f4fd7a1e..00000000
--- a/lib/books/coupled/_44c7_s0_pN_r1.vqh
+++ /dev/null
@@ -1,61 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c7_s0_pN_r1_VQH_
-#define _V__44c7_s0_pN_r1_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c7_s0_pN_r1[] = {
- 2,
- 1,
- 3,
- 0,
- 4,
-};
-
-static long _vq_lengthlist__44c7_s0_pN_r1[] = {
- 3, 3, 3, 8, 8, 4, 4, 4, 9, 8, 3, 4, 4, 8, 8,10,
- 5, 5, 9, 9,10, 5, 4, 9, 9,
-};
-
-static float _vq_quantthresh__44c7_s0_pN_r1[] = {
- -0.16667, -0.055556, 0.055556, 0.16667,
-};
-
-static long _vq_quantmap__44c7_s0_pN_r1[] = {
- 3, 1, 0, 2, 4,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c7_s0_pN_r1 = {
- _vq_quantthresh__44c7_s0_pN_r1,
- _vq_quantmap__44c7_s0_pN_r1,
- 5,
- 5
-};
-
-static static_codebook _44c7_s0_pN_r1 = {
- 2, 25,
- _vq_lengthlist__44c7_s0_pN_r1,
- 1, -541298233, 1604088263, 3, 0,
- _vq_quantlist__44c7_s0_pN_r1,
- NULL,
- &_vq_auxt__44c7_s0_pN_r1,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c7_short.vqh b/lib/books/coupled/_44c7_short.vqh
deleted file mode 100644
index c303a3cc..00000000
--- a/lib/books/coupled/_44c7_short.vqh
+++ /dev/null
@@ -1,43 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by huff/huffbuld
-
- ********************************************************************/
-
-#ifndef _V__44c7_short_VQH_
-#define _V__44c7_short_VQH_
-#include "codebook.h"
-
-static long _huff_lengthlist__44c7_short[] = {
- 3,17,17,10,13,14,17,17,17,17,17,17,17,14,11, 8,
- 5, 7,11,17,17, 9, 6,15,11, 9, 5, 5, 7,14, 4,17,
- 17, 5, 9,10,11,13,15,17, 7,17,17, 5, 7, 6, 8,12,
- 15,17, 9,17,17, 5, 4, 4, 5, 9,13,17,11,17,17, 7,
- 6, 4, 3, 7,12,17,14,17,17,11, 9, 7, 5, 6,10,17,
- 17, 9, 6,14,14,12, 9, 8,10,14,17, 6, 4,17,16,17,
- 15,14, 9,10,
-};
-
-static static_codebook _huff_book__44c7_short = {
- 2, 100,
- _huff_lengthlist__44c7_short,
- 0, 0, 0, 0, 0,
- NULL,
- NULL,
- NULL,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c8_long.vqh b/lib/books/coupled/_44c8_long.vqh
deleted file mode 100644
index 8a982cea..00000000
--- a/lib/books/coupled/_44c8_long.vqh
+++ /dev/null
@@ -1,43 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by huff/huffbuld
-
- ********************************************************************/
-
-#ifndef _V__44c8_long_VQH_
-#define _V__44c8_long_VQH_
-#include "codebook.h"
-
-static long _huff_lengthlist__44c8_long[] = {
- 2,11,13, 8,11,12,12,13,14,14,11, 5, 6,20,20,20,
- 20,20,12,12,13, 6, 4,20,20,20,19,19, 9, 9, 6,19,
- 19, 4, 7, 8, 9,10,12,16,11,19,19, 6, 6, 6, 7,10,
- 12,16,12,19,19, 7, 5, 4, 4, 8,10,15,12,19,19, 9,
- 7, 4, 3, 6, 9,15,12,19,19,10,10, 8, 6, 6, 8,14,
- 11,10, 7,11,11, 9, 8, 8, 9,10,12, 9, 7,13,15,15,
- 14,14, 9, 8,
-};
-
-static static_codebook _huff_book__44c8_long = {
- 2, 100,
- _huff_lengthlist__44c8_long,
- 0, 0, 0, 0, 0,
- NULL,
- NULL,
- NULL,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c8_s0_p1_0.vqh b/lib/books/coupled/_44c8_s0_p1_0.vqh
deleted file mode 100644
index 075191f0..00000000
--- a/lib/books/coupled/_44c8_s0_p1_0.vqh
+++ /dev/null
@@ -1,75 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c8_s0_p1_0_VQH_
-#define _V__44c8_s0_p1_0_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c8_s0_p1_0[] = {
- 19,
- 16,
- 22,
- 13,
- 25,
- 0,
- 38,
- 7,
- 31,
- 4,
- 34,
-};
-
-static long _vq_lengthlist__44c8_s0_p1_0[] = {
- 1, 3, 4, 6, 6, 0, 0, 0, 0, 0, 0, 5, 5, 5, 7, 6,
- 0, 0, 0, 0, 0, 0, 0, 5, 5, 6, 6, 0, 0, 0, 0, 0,
- 0, 0, 7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 7, 7, 7,
- 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 10, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,11,12, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,13,13, 0, 0, 0, 0, 0, 0,
-};
-
-static float _vq_quantthresh__44c8_s0_p1_0[] = {
- -17, -13.5, -9, -4.5, -1.5, 1.5, 4.5, 9,
- 13.5, 17,
-};
-
-static long _vq_quantmap__44c8_s0_p1_0[] = {
- 5, 9, 7, 3, 1, 0, 2, 4,
- 8, 10, 6,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c8_s0_p1_0 = {
- _vq_quantthresh__44c8_s0_p1_0,
- _vq_quantmap__44c8_s0_p1_0,
- 11,
- 11
-};
-
-static static_codebook _44c8_s0_p1_0 = {
- 2, 121,
- _vq_lengthlist__44c8_s0_p1_0,
- 1, -527237120, 1611661312, 6, 0,
- _vq_quantlist__44c8_s0_p1_0,
- NULL,
- &_vq_auxt__44c8_s0_p1_0,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c8_s0_p1_1.vqh b/lib/books/coupled/_44c8_s0_p1_1.vqh
deleted file mode 100644
index 7fce3bb1..00000000
--- a/lib/books/coupled/_44c8_s0_p1_1.vqh
+++ /dev/null
@@ -1,58 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c8_s0_p1_1_VQH_
-#define _V__44c8_s0_p1_1_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c8_s0_p1_1[] = {
- 1,
- 0,
- 2,
-};
-
-static long _vq_lengthlist__44c8_s0_p1_1[] = {
- 2, 3, 3, 4, 4, 4, 4, 3, 3,
-};
-
-static float _vq_quantthresh__44c8_s0_p1_1[] = {
- -0.5, 0.5,
-};
-
-static long _vq_quantmap__44c8_s0_p1_1[] = {
- 1, 0, 2,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c8_s0_p1_1 = {
- _vq_quantthresh__44c8_s0_p1_1,
- _vq_quantmap__44c8_s0_p1_1,
- 3,
- 3
-};
-
-static static_codebook _44c8_s0_p1_1 = {
- 2, 9,
- _vq_lengthlist__44c8_s0_p1_1,
- 1, -535822336, 1611661312, 2, 0,
- _vq_quantlist__44c8_s0_p1_1,
- NULL,
- &_vq_auxt__44c8_s0_p1_1,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c8_s0_p2_0.vqh b/lib/books/coupled/_44c8_s0_p2_0.vqh
deleted file mode 100644
index 1b30aff7..00000000
--- a/lib/books/coupled/_44c8_s0_p2_0.vqh
+++ /dev/null
@@ -1,80 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c8_s0_p2_0_VQH_
-#define _V__44c8_s0_p2_0_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c8_s0_p2_0[] = {
- 6,
- 5,
- 7,
- 4,
- 8,
- 3,
- 9,
- 2,
- 10,
- 1,
- 11,
- 0,
- 12,
-};
-
-static long _vq_lengthlist__44c8_s0_p2_0[] = {
- 1, 3, 3, 7, 7, 9, 9, 0, 0, 0, 0, 0, 0, 5, 5, 5,
- 8, 8,10,10, 0, 0, 0, 0, 0, 0, 6, 5, 5, 8, 8,10,
- 10, 0, 0, 0, 0, 0, 0, 0, 8, 8, 9, 9,11,11, 0, 0,
- 0, 0, 0, 0, 0, 8, 8, 8, 8,11,11, 0, 0, 0, 0, 0,
- 0, 0,12,12,10,10,11,12, 0, 0, 0, 0, 0, 0, 0,13,
- 13,10, 9,11,11, 0, 0, 0, 0, 0, 0, 0, 0, 0,12,12,
- 12,12, 0, 0, 0, 0, 0, 0, 0, 0, 0,12,12,12,13, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,16,17,13,13, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,16,17,13,13, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,16,16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,16,15, 0, 0, 0, 0, 0, 0,
-};
-
-static float _vq_quantthresh__44c8_s0_p2_0[] = {
- -71.5, -58.5, -45.5, -32.5, -19.5, -6.5, 6.5, 19.5,
- 32.5, 45.5, 58.5, 71.5,
-};
-
-static long _vq_quantmap__44c8_s0_p2_0[] = {
- 11, 9, 7, 5, 3, 1, 0, 2,
- 4, 6, 8, 10, 12,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c8_s0_p2_0 = {
- _vq_quantthresh__44c8_s0_p2_0,
- _vq_quantmap__44c8_s0_p2_0,
- 13,
- 13
-};
-
-static static_codebook _44c8_s0_p2_0 = {
- 2, 169,
- _vq_lengthlist__44c8_s0_p2_0,
- 1, -523010048, 1618608128, 4, 0,
- _vq_quantlist__44c8_s0_p2_0,
- NULL,
- &_vq_auxt__44c8_s0_p2_0,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c8_s0_p2_1.vqh b/lib/books/coupled/_44c8_s0_p2_1.vqh
deleted file mode 100644
index ccc6182b..00000000
--- a/lib/books/coupled/_44c8_s0_p2_1.vqh
+++ /dev/null
@@ -1,80 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c8_s0_p2_1_VQH_
-#define _V__44c8_s0_p2_1_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c8_s0_p2_1[] = {
- 6,
- 5,
- 7,
- 4,
- 8,
- 3,
- 9,
- 2,
- 10,
- 1,
- 11,
- 0,
- 12,
-};
-
-static long _vq_lengthlist__44c8_s0_p2_1[] = {
- 4, 5, 5, 6, 6, 7, 6, 7, 7, 7, 7, 7, 7, 9, 6, 6,
- 6, 6, 7, 7, 7, 7, 8, 8, 8, 8, 9, 5, 6, 6, 6, 7,
- 7, 7, 7, 7, 8, 8, 8, 9, 6, 6, 7, 7, 7, 7, 7, 7,
- 8, 8, 8, 8, 9, 9, 9, 7, 7, 7, 7, 7, 7, 8, 8, 8,
- 8, 9, 9, 9, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 9, 9,
- 9, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 9, 9, 9, 8, 8,
- 8, 8, 8, 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, 8, 8, 8,
- 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, 8, 8, 8, 8, 8, 8,
- 8, 8, 9, 9, 9, 9, 9, 8, 8, 8, 8, 8, 8, 8, 8, 9,
- 9, 9, 9, 9, 8, 8, 8, 8, 8, 8, 8, 8, 9, 9, 9, 9,
- 9, 9, 9, 8, 8, 8, 8, 8, 8,
-};
-
-static float _vq_quantthresh__44c8_s0_p2_1[] = {
- -5.5, -4.5, -3.5, -2.5, -1.5, -0.5, 0.5, 1.5,
- 2.5, 3.5, 4.5, 5.5,
-};
-
-static long _vq_quantmap__44c8_s0_p2_1[] = {
- 11, 9, 7, 5, 3, 1, 0, 2,
- 4, 6, 8, 10, 12,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c8_s0_p2_1 = {
- _vq_quantthresh__44c8_s0_p2_1,
- _vq_quantmap__44c8_s0_p2_1,
- 13,
- 13
-};
-
-static static_codebook _44c8_s0_p2_1 = {
- 2, 169,
- _vq_lengthlist__44c8_s0_p2_1,
- 1, -531103744, 1611661312, 4, 0,
- _vq_quantlist__44c8_s0_p2_1,
- NULL,
- &_vq_auxt__44c8_s0_p2_1,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c8_s0_p3_0.vqh b/lib/books/coupled/_44c8_s0_p3_0.vqh
deleted file mode 100644
index 3f64cb1b..00000000
--- a/lib/books/coupled/_44c8_s0_p3_0.vqh
+++ /dev/null
@@ -1,99 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c8_s0_p3_0_VQH_
-#define _V__44c8_s0_p3_0_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c8_s0_p3_0[] = {
- 2,
- 1,
- 3,
- 0,
- 4,
-};
-
-static long _vq_lengthlist__44c8_s0_p3_0[] = {
- 1, 6, 6, 0, 0, 0, 5, 5, 0, 0, 0, 5, 5, 0, 0, 0,
- 8, 8, 0, 0, 0, 0, 0, 0, 0, 6, 8, 7, 0, 0, 0, 9,
- 8, 0, 0, 0, 9, 8, 0, 0, 0,12,11, 0, 0, 0, 0, 0,
- 0, 0, 6, 8, 8, 0, 0, 0, 8, 9, 0, 0, 0, 8, 9, 0,
- 0, 0,12,12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 5, 9, 8, 0, 0, 0, 8, 7, 0, 0,
- 0, 8, 8, 0, 0, 0,10,10, 0, 0, 0, 0, 0, 0, 0, 5,
- 8, 9, 0, 0, 0, 7, 8, 0, 0, 0, 8, 8, 0, 0, 0,10,
- 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 5, 9, 8, 0, 0, 0, 8, 8, 0, 0, 0, 7, 7,
- 0, 0, 0,10,10, 0, 0, 0, 0, 0, 0, 0, 5, 8, 9, 0,
- 0, 0, 8, 8, 0, 0, 0, 7, 7, 0, 0, 0,10,10, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 8,11,12, 0, 0, 0,10,10, 0, 0, 0,10,10, 0, 0, 0,
- 11,11, 0, 0, 0, 0, 0, 0, 0, 8,12,12, 0, 0, 0,10,
- 10, 0, 0, 0,10,10, 0, 0, 0,11,11, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,
-};
-
-static float _vq_quantthresh__44c8_s0_p3_0[] = {
- -1.5, -0.5, 0.5, 1.5,
-};
-
-static long _vq_quantmap__44c8_s0_p3_0[] = {
- 3, 1, 0, 2, 4,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c8_s0_p3_0 = {
- _vq_quantthresh__44c8_s0_p3_0,
- _vq_quantmap__44c8_s0_p3_0,
- 5,
- 5
-};
-
-static static_codebook _44c8_s0_p3_0 = {
- 4, 625,
- _vq_lengthlist__44c8_s0_p3_0,
- 1, -533725184, 1611661312, 3, 0,
- _vq_quantlist__44c8_s0_p3_0,
- NULL,
- &_vq_auxt__44c8_s0_p3_0,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c8_s0_p4_0.vqh b/lib/books/coupled/_44c8_s0_p4_0.vqh
deleted file mode 100644
index 9f7168ed..00000000
--- a/lib/books/coupled/_44c8_s0_p4_0.vqh
+++ /dev/null
@@ -1,70 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c8_s0_p4_0_VQH_
-#define _V__44c8_s0_p4_0_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c8_s0_p4_0[] = {
- 4,
- 3,
- 5,
- 2,
- 6,
- 1,
- 7,
- 0,
- 8,
-};
-
-static long _vq_lengthlist__44c8_s0_p4_0[] = {
- 2, 3, 3, 6, 6, 0, 0, 0, 0, 0, 4, 4, 6, 6, 0, 0,
- 0, 0, 0, 4, 4, 6, 6, 0, 0, 0, 0, 0, 5, 5, 6, 6,
- 0, 0, 0, 0, 0, 0, 0, 6, 6, 0, 0, 0, 0, 0, 0, 0,
- 7, 7, 0, 0, 0, 0, 0, 0, 0, 8, 7, 0, 0, 0, 0, 0,
- 0, 0, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,
-};
-
-static float _vq_quantthresh__44c8_s0_p4_0[] = {
- -3.5, -2.5, -1.5, -0.5, 0.5, 1.5, 2.5, 3.5,
-};
-
-static long _vq_quantmap__44c8_s0_p4_0[] = {
- 7, 5, 3, 1, 0, 2, 4, 6,
- 8,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c8_s0_p4_0 = {
- _vq_quantthresh__44c8_s0_p4_0,
- _vq_quantmap__44c8_s0_p4_0,
- 9,
- 9
-};
-
-static static_codebook _44c8_s0_p4_0 = {
- 2, 81,
- _vq_lengthlist__44c8_s0_p4_0,
- 1, -531628032, 1611661312, 4, 0,
- _vq_quantlist__44c8_s0_p4_0,
- NULL,
- &_vq_auxt__44c8_s0_p4_0,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c8_s0_p5_0.vqh b/lib/books/coupled/_44c8_s0_p5_0.vqh
deleted file mode 100644
index c421846e..00000000
--- a/lib/books/coupled/_44c8_s0_p5_0.vqh
+++ /dev/null
@@ -1,93 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c8_s0_p5_0_VQH_
-#define _V__44c8_s0_p5_0_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c8_s0_p5_0[] = {
- 8,
- 7,
- 9,
- 6,
- 10,
- 5,
- 11,
- 4,
- 12,
- 3,
- 13,
- 2,
- 14,
- 1,
- 15,
- 0,
- 16,
-};
-
-static long _vq_lengthlist__44c8_s0_p5_0[] = {
- 3, 4, 4, 5, 5, 7, 7, 8, 8, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 4, 4, 6, 5, 7, 7, 8, 8, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 4, 4, 6, 6, 7, 7, 8, 8, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 5, 5, 6, 6, 7, 7, 9, 9, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 6, 6, 7, 7, 9, 9, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 7, 7, 9, 9, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 7, 7, 9, 9, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 8, 8, 8, 9, 9,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 8, 9,
- 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9,
- 10,10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9,
- 9,10,10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 10,10,10,10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,11,10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,11,11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,11,11, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,12,12, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,
-};
-
-static float _vq_quantthresh__44c8_s0_p5_0[] = {
- -7.5, -6.5, -5.5, -4.5, -3.5, -2.5, -1.5, -0.5,
- 0.5, 1.5, 2.5, 3.5, 4.5, 5.5, 6.5, 7.5,
-};
-
-static long _vq_quantmap__44c8_s0_p5_0[] = {
- 15, 13, 11, 9, 7, 5, 3, 1,
- 0, 2, 4, 6, 8, 10, 12, 14,
- 16,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c8_s0_p5_0 = {
- _vq_quantthresh__44c8_s0_p5_0,
- _vq_quantmap__44c8_s0_p5_0,
- 17,
- 17
-};
-
-static static_codebook _44c8_s0_p5_0 = {
- 2, 289,
- _vq_lengthlist__44c8_s0_p5_0,
- 1, -529530880, 1611661312, 5, 0,
- _vq_quantlist__44c8_s0_p5_0,
- NULL,
- &_vq_auxt__44c8_s0_p5_0,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c8_s0_p6_0.vqh b/lib/books/coupled/_44c8_s0_p6_0.vqh
deleted file mode 100644
index c981eac6..00000000
--- a/lib/books/coupled/_44c8_s0_p6_0.vqh
+++ /dev/null
@@ -1,75 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c8_s0_p6_0_VQH_
-#define _V__44c8_s0_p6_0_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c8_s0_p6_0[] = {
- 19,
- 16,
- 22,
- 13,
- 25,
- 0,
- 38,
- 7,
- 31,
- 4,
- 34,
-};
-
-static long _vq_lengthlist__44c8_s0_p6_0[] = {
- 2, 3, 3, 6, 6, 0, 0, 0, 0, 0, 0, 5, 4, 4, 6, 6,
- 0, 0, 0, 0, 0, 0, 0, 4, 4, 6, 6, 0, 0, 0, 0, 0,
- 0, 0, 6, 6, 6, 6, 0, 0, 0, 0, 0, 0, 0, 7, 7, 6,
- 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 8, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 8, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,11,10, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,12,12, 0, 0, 0, 0, 0, 0,
-};
-
-static float _vq_quantthresh__44c8_s0_p6_0[] = {
- -17, -13.5, -9, -4.5, -1.5, 1.5, 4.5, 9,
- 13.5, 17,
-};
-
-static long _vq_quantmap__44c8_s0_p6_0[] = {
- 5, 9, 7, 3, 1, 0, 2, 4,
- 8, 10, 6,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c8_s0_p6_0 = {
- _vq_quantthresh__44c8_s0_p6_0,
- _vq_quantmap__44c8_s0_p6_0,
- 11,
- 11
-};
-
-static static_codebook _44c8_s0_p6_0 = {
- 2, 121,
- _vq_lengthlist__44c8_s0_p6_0,
- 1, -527237120, 1611661312, 6, 0,
- _vq_quantlist__44c8_s0_p6_0,
- NULL,
- &_vq_auxt__44c8_s0_p6_0,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c8_s0_p6_1.vqh b/lib/books/coupled/_44c8_s0_p6_1.vqh
deleted file mode 100644
index 43b07cc5..00000000
--- a/lib/books/coupled/_44c8_s0_p6_1.vqh
+++ /dev/null
@@ -1,58 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c8_s0_p6_1_VQH_
-#define _V__44c8_s0_p6_1_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c8_s0_p6_1[] = {
- 1,
- 0,
- 2,
-};
-
-static long _vq_lengthlist__44c8_s0_p6_1[] = {
- 3, 3, 3, 4, 3, 3, 4, 3, 3,
-};
-
-static float _vq_quantthresh__44c8_s0_p6_1[] = {
- -0.5, 0.5,
-};
-
-static long _vq_quantmap__44c8_s0_p6_1[] = {
- 1, 0, 2,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c8_s0_p6_1 = {
- _vq_quantthresh__44c8_s0_p6_1,
- _vq_quantmap__44c8_s0_p6_1,
- 3,
- 3
-};
-
-static static_codebook _44c8_s0_p6_1 = {
- 2, 9,
- _vq_lengthlist__44c8_s0_p6_1,
- 1, -535822336, 1611661312, 2, 0,
- _vq_quantlist__44c8_s0_p6_1,
- NULL,
- &_vq_auxt__44c8_s0_p6_1,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c8_s0_p7_0.vqh b/lib/books/coupled/_44c8_s0_p7_0.vqh
deleted file mode 100644
index a088c0e1..00000000
--- a/lib/books/coupled/_44c8_s0_p7_0.vqh
+++ /dev/null
@@ -1,80 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c8_s0_p7_0_VQH_
-#define _V__44c8_s0_p7_0_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c8_s0_p7_0[] = {
- 6,
- 5,
- 7,
- 4,
- 8,
- 3,
- 9,
- 2,
- 10,
- 1,
- 11,
- 0,
- 12,
-};
-
-static long _vq_lengthlist__44c8_s0_p7_0[] = {
- 2, 3, 3, 6, 6, 8, 8, 0, 0, 0, 0, 0, 0, 5, 4, 4,
- 6, 6, 9, 9, 0, 0, 0, 0, 0, 0, 6, 4, 4, 6, 6, 9,
- 9, 0, 0, 0, 0, 0, 0, 0, 7, 7, 7, 7,10,10, 0, 0,
- 0, 0, 0, 0, 0, 7, 7, 7, 7,10,10, 0, 0, 0, 0, 0,
- 0, 0,11,11, 8, 8,10,10, 0, 0, 0, 0, 0, 0, 0,12,
- 12, 8, 8,10,10, 0, 0, 0, 0, 0, 0, 0, 0, 0,10,10,
- 11,11, 0, 0, 0, 0, 0, 0, 0, 0, 0,11,11,11,11, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,14,14,12,12, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,14,14,12,12, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,14,14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,14,14, 0, 0, 0, 0, 0, 0,
-};
-
-static float _vq_quantthresh__44c8_s0_p7_0[] = {
- -27.5, -22.5, -17.5, -12.5, -7.5, -2.5, 2.5, 7.5,
- 12.5, 17.5, 22.5, 27.5,
-};
-
-static long _vq_quantmap__44c8_s0_p7_0[] = {
- 11, 9, 7, 5, 3, 1, 0, 2,
- 4, 6, 8, 10, 12,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c8_s0_p7_0 = {
- _vq_quantthresh__44c8_s0_p7_0,
- _vq_quantmap__44c8_s0_p7_0,
- 13,
- 13
-};
-
-static static_codebook _44c8_s0_p7_0 = {
- 2, 169,
- _vq_lengthlist__44c8_s0_p7_0,
- 1, -526516224, 1616117760, 4, 0,
- _vq_quantlist__44c8_s0_p7_0,
- NULL,
- &_vq_auxt__44c8_s0_p7_0,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c8_s0_p7_1.vqh b/lib/books/coupled/_44c8_s0_p7_1.vqh
deleted file mode 100644
index 6739de52..00000000
--- a/lib/books/coupled/_44c8_s0_p7_1.vqh
+++ /dev/null
@@ -1,61 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c8_s0_p7_1_VQH_
-#define _V__44c8_s0_p7_1_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c8_s0_p7_1[] = {
- 2,
- 1,
- 3,
- 0,
- 4,
-};
-
-static long _vq_lengthlist__44c8_s0_p7_1[] = {
- 3, 4, 4, 5, 5, 6, 4, 4, 5, 5, 6, 4, 4, 5, 5, 6,
- 5, 5, 5, 5, 6, 5, 5, 5, 5,
-};
-
-static float _vq_quantthresh__44c8_s0_p7_1[] = {
- -1.5, -0.5, 0.5, 1.5,
-};
-
-static long _vq_quantmap__44c8_s0_p7_1[] = {
- 3, 1, 0, 2, 4,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c8_s0_p7_1 = {
- _vq_quantthresh__44c8_s0_p7_1,
- _vq_quantmap__44c8_s0_p7_1,
- 5,
- 5
-};
-
-static static_codebook _44c8_s0_p7_1 = {
- 2, 25,
- _vq_lengthlist__44c8_s0_p7_1,
- 1, -533725184, 1611661312, 3, 0,
- _vq_quantlist__44c8_s0_p7_1,
- NULL,
- &_vq_auxt__44c8_s0_p7_1,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c8_s0_p8_0.vqh b/lib/books/coupled/_44c8_s0_p8_0.vqh
deleted file mode 100644
index 164440db..00000000
--- a/lib/books/coupled/_44c8_s0_p8_0.vqh
+++ /dev/null
@@ -1,86 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c8_s0_p8_0_VQH_
-#define _V__44c8_s0_p8_0_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c8_s0_p8_0[] = {
- 7,
- 6,
- 8,
- 5,
- 9,
- 4,
- 10,
- 3,
- 11,
- 2,
- 12,
- 1,
- 13,
- 0,
- 14,
-};
-
-static long _vq_lengthlist__44c8_s0_p8_0[] = {
- 1, 4, 3, 6, 6, 7, 7,10,10, 0, 0, 0, 0, 0, 0, 6,
- 5, 5, 7, 7, 8, 8,11,11, 0, 0, 0, 0, 0, 0, 6, 5,
- 5, 7, 7, 8, 8,11,11, 0, 0, 0, 0, 0, 0, 0, 8, 8,
- 9, 8, 9, 9,11,11, 0, 0, 0, 0, 0, 0, 0, 8, 8, 8,
- 8, 9, 9,11,11, 0, 0, 0, 0, 0, 0, 0,12,12,10,10,
- 10,10,12,12, 0, 0, 0, 0, 0, 0, 0,13,12, 9,10,10,
- 10,12,12, 0, 0, 0, 0, 0, 0, 0, 0, 0,12,12,10,10,
- 13,13, 0, 0, 0, 0, 0, 0, 0, 0, 0,12,12,10,10,13,
- 13, 0, 0, 0, 0, 0, 0, 0, 0, 0,16,16,11,11,13,14,
- 0, 0, 0, 0, 0, 0, 0, 0, 0,16,16,11,11,13,13, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,12,13,14,14, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0,13,13,14,14, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,16,17,16,14, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,16,17,14,14, 0, 0, 0, 0, 0,
- 0,
-};
-
-static float _vq_quantthresh__44c8_s0_p8_0[] = {
- -97.5, -82.5, -67.5, -52.5, -37.5, -22.5, -7.5, 7.5,
- 22.5, 37.5, 52.5, 67.5, 82.5, 97.5,
-};
-
-static long _vq_quantmap__44c8_s0_p8_0[] = {
- 13, 11, 9, 7, 5, 3, 1, 0,
- 2, 4, 6, 8, 10, 12, 14,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c8_s0_p8_0 = {
- _vq_quantthresh__44c8_s0_p8_0,
- _vq_quantmap__44c8_s0_p8_0,
- 15,
- 15
-};
-
-static static_codebook _44c8_s0_p8_0 = {
- 2, 225,
- _vq_lengthlist__44c8_s0_p8_0,
- 1, -522567680, 1618870272, 4, 0,
- _vq_quantlist__44c8_s0_p8_0,
- NULL,
- &_vq_auxt__44c8_s0_p8_0,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c8_s0_p8_1.vqh b/lib/books/coupled/_44c8_s0_p8_1.vqh
deleted file mode 100644
index 427bf2f0..00000000
--- a/lib/books/coupled/_44c8_s0_p8_1.vqh
+++ /dev/null
@@ -1,86 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c8_s0_p8_1_VQH_
-#define _V__44c8_s0_p8_1_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c8_s0_p8_1[] = {
- 7,
- 6,
- 8,
- 5,
- 9,
- 4,
- 10,
- 3,
- 11,
- 2,
- 12,
- 1,
- 13,
- 0,
- 14,
-};
-
-static long _vq_lengthlist__44c8_s0_p8_1[] = {
- 4, 5, 5, 6, 6, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8,10,
- 6, 6, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 8, 8, 9, 6,
- 6, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 8, 8, 9, 7, 7,
- 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 8, 8,10,10, 9, 7,
- 7, 7, 7, 8, 8, 8, 8, 8, 8, 8, 8,10,10,10, 7, 7,
- 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,10, 9,10, 7, 7, 8,
- 8, 8, 8, 8, 8, 8, 8, 8, 8,10,10,10, 8, 8, 8, 8,
- 8, 8, 8, 8, 8, 8, 8, 8,10,10,10, 9, 9, 8, 8, 8,
- 8, 8, 8, 8, 8, 8, 8,10, 9,10, 9, 9, 8, 8, 8, 8,
- 8, 8, 8, 8, 8, 8,10,10,10, 9, 9, 8, 8, 8, 8, 8,
- 8, 8, 8, 8, 8,10,10,10,10,10, 9, 9, 9, 9, 8, 8,
- 8, 8, 8, 8,10,10,10, 9, 9,10, 9, 9, 9, 8, 8, 8,
- 8, 9, 8,10,10,10, 9, 9,10, 9, 9, 9, 8, 8, 8, 8,
- 8, 8,10,10,10, 9,10,10,10, 8, 8, 8, 8, 8, 8, 8,
- 8,
-};
-
-static float _vq_quantthresh__44c8_s0_p8_1[] = {
- -6.5, -5.5, -4.5, -3.5, -2.5, -1.5, -0.5, 0.5,
- 1.5, 2.5, 3.5, 4.5, 5.5, 6.5,
-};
-
-static long _vq_quantmap__44c8_s0_p8_1[] = {
- 13, 11, 9, 7, 5, 3, 1, 0,
- 2, 4, 6, 8, 10, 12, 14,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c8_s0_p8_1 = {
- _vq_quantthresh__44c8_s0_p8_1,
- _vq_quantmap__44c8_s0_p8_1,
- 15,
- 15
-};
-
-static static_codebook _44c8_s0_p8_1 = {
- 2, 225,
- _vq_lengthlist__44c8_s0_p8_1,
- 1, -530841600, 1611661312, 4, 0,
- _vq_quantlist__44c8_s0_p8_1,
- NULL,
- &_vq_auxt__44c8_s0_p8_1,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c8_s0_p9_0.vqh b/lib/books/coupled/_44c8_s0_p9_0.vqh
deleted file mode 100644
index a23a4151..00000000
--- a/lib/books/coupled/_44c8_s0_p9_0.vqh
+++ /dev/null
@@ -1,75 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c8_s0_p9_0_VQH_
-#define _V__44c8_s0_p9_0_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c8_s0_p9_0[] = {
- 5,
- 4,
- 6,
- 3,
- 7,
- 2,
- 8,
- 1,
- 9,
- 0,
- 10,
-};
-
-static long _vq_lengthlist__44c8_s0_p9_0[] = {
- 1, 4, 4,11,12,12,12,12,12,12,12, 5, 6, 8,12,12,
- 12,12,12,12,12,12, 2,10, 7,12,12,12,12,12,12,12,
- 12,12, 6,12,12,12,12,12,12,12,12,12,12,12, 6,12,
- 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,
- 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,
- 12,12,12,12,12,12,12,12,12,12,12,12,11,11,11,11,
- 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,
- 11,11,11,11,11,11,11,11,11,
-};
-
-static float _vq_quantthresh__44c8_s0_p9_0[] = {
- -2866.5, -2229.5, -1592.5, -955.5, -318.5, 318.5, 955.5, 1592.5,
- 2229.5, 2866.5,
-};
-
-static long _vq_quantmap__44c8_s0_p9_0[] = {
- 9, 7, 5, 3, 1, 0, 2, 4,
- 6, 8, 10,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c8_s0_p9_0 = {
- _vq_quantthresh__44c8_s0_p9_0,
- _vq_quantmap__44c8_s0_p9_0,
- 11,
- 11
-};
-
-static static_codebook _44c8_s0_p9_0 = {
- 2, 121,
- _vq_lengthlist__44c8_s0_p9_0,
- 1, -512171520, 1630791680, 4, 0,
- _vq_quantlist__44c8_s0_p9_0,
- NULL,
- &_vq_auxt__44c8_s0_p9_0,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c8_s0_p9_1.vqh b/lib/books/coupled/_44c8_s0_p9_1.vqh
deleted file mode 100644
index 112910bb..00000000
--- a/lib/books/coupled/_44c8_s0_p9_1.vqh
+++ /dev/null
@@ -1,80 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c8_s0_p9_1_VQH_
-#define _V__44c8_s0_p9_1_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c8_s0_p9_1[] = {
- 6,
- 5,
- 7,
- 4,
- 8,
- 3,
- 9,
- 2,
- 10,
- 1,
- 11,
- 0,
- 12,
-};
-
-static long _vq_lengthlist__44c8_s0_p9_1[] = {
- 1, 3, 3, 6, 6, 8, 8,10,10,11,11,11,11, 6, 6, 6,
- 7, 7, 9, 9,11,11,12,12,12,12, 6, 5, 5, 8, 8, 9,
- 10,11,11,12,12,12,12,17, 8, 8, 9, 9,10,10,11,12,
- 12,12,13,12,15, 8, 8, 9, 9,11,10,12,12,13,13,13,
- 13,17,12,12,10,10,11,11,12,12,13,11,14,12,18,13,
- 12,10,10,11,11,12,12,12,13,13,14,17,15,16,12,12,
- 12,12,13,13,13,11,14,13,17,18,17,12,12,12,10,13,
- 13,13,13,14,14,18,16,18,15,14,13,12,13,12,14,12,
- 14,14,18,18,18,14,14,13,11,13,11,14,14,14,15,17,
- 18,17,17,18,13,15,13,12,14,13,15,14,18,18,18,17,
- 17,14,13,14,11,15,12,14,14,
-};
-
-static float _vq_quantthresh__44c8_s0_p9_1[] = {
- -269.5, -220.5, -171.5, -122.5, -73.5, -24.5, 24.5, 73.5,
- 122.5, 171.5, 220.5, 269.5,
-};
-
-static long _vq_quantmap__44c8_s0_p9_1[] = {
- 11, 9, 7, 5, 3, 1, 0, 2,
- 4, 6, 8, 10, 12,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c8_s0_p9_1 = {
- _vq_quantthresh__44c8_s0_p9_1,
- _vq_quantmap__44c8_s0_p9_1,
- 13,
- 13
-};
-
-static static_codebook _44c8_s0_p9_1 = {
- 2, 169,
- _vq_lengthlist__44c8_s0_p9_1,
- 1, -518889472, 1622704128, 4, 0,
- _vq_quantlist__44c8_s0_p9_1,
- NULL,
- &_vq_auxt__44c8_s0_p9_1,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c8_s0_p9_2.vqh b/lib/books/coupled/_44c8_s0_p9_2.vqh
deleted file mode 100644
index e0942296..00000000
--- a/lib/books/coupled/_44c8_s0_p9_2.vqh
+++ /dev/null
@@ -1,118 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c8_s0_p9_2_VQH_
-#define _V__44c8_s0_p9_2_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c8_s0_p9_2[] = {
- 24,
- 23,
- 25,
- 22,
- 26,
- 21,
- 27,
- 20,
- 28,
- 19,
- 29,
- 18,
- 30,
- 17,
- 31,
- 16,
- 32,
- 15,
- 33,
- 14,
- 34,
- 13,
- 35,
- 12,
- 36,
- 11,
- 37,
- 10,
- 38,
- 9,
- 39,
- 8,
- 40,
- 7,
- 41,
- 6,
- 42,
- 5,
- 43,
- 4,
- 44,
- 3,
- 45,
- 2,
- 46,
- 1,
- 47,
- 0,
- 48,
-};
-
-static long _vq_lengthlist__44c8_s0_p9_2[] = {
- 3, 4, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 6, 6, 6,
- 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,
- 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7,
-};
-
-static float _vq_quantthresh__44c8_s0_p9_2[] = {
- -23.5, -22.5, -21.5, -20.5, -19.5, -18.5, -17.5, -16.5,
- -15.5, -14.5, -13.5, -12.5, -11.5, -10.5, -9.5, -8.5,
- -7.5, -6.5, -5.5, -4.5, -3.5, -2.5, -1.5, -0.5,
- 0.5, 1.5, 2.5, 3.5, 4.5, 5.5, 6.5, 7.5,
- 8.5, 9.5, 10.5, 11.5, 12.5, 13.5, 14.5, 15.5,
- 16.5, 17.5, 18.5, 19.5, 20.5, 21.5, 22.5, 23.5,
-};
-
-static long _vq_quantmap__44c8_s0_p9_2[] = {
- 47, 45, 43, 41, 39, 37, 35, 33,
- 31, 29, 27, 25, 23, 21, 19, 17,
- 15, 13, 11, 9, 7, 5, 3, 1,
- 0, 2, 4, 6, 8, 10, 12, 14,
- 16, 18, 20, 22, 24, 26, 28, 30,
- 32, 34, 36, 38, 40, 42, 44, 46,
- 48,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c8_s0_p9_2 = {
- _vq_quantthresh__44c8_s0_p9_2,
- _vq_quantmap__44c8_s0_p9_2,
- 49,
- 49
-};
-
-static static_codebook _44c8_s0_p9_2 = {
- 1, 49,
- _vq_lengthlist__44c8_s0_p9_2,
- 1, -526909440, 1611661312, 6, 0,
- _vq_quantlist__44c8_s0_p9_2,
- NULL,
- &_vq_auxt__44c8_s0_p9_2,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c8_short.vqh b/lib/books/coupled/_44c8_short.vqh
deleted file mode 100644
index bcfed762..00000000
--- a/lib/books/coupled/_44c8_short.vqh
+++ /dev/null
@@ -1,43 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by huff/huffbuld
-
- ********************************************************************/
-
-#ifndef _V__44c8_short_VQH_
-#define _V__44c8_short_VQH_
-#include "codebook.h"
-
-static long _huff_lengthlist__44c8_short[] = {
- 3,17,17,10,13,14,17,17,17,17,17,17,17,14,11, 9,
- 6, 7,11,17,17,13, 7,14,11, 8, 5, 4, 5,11, 4,17,
- 17, 5, 9,10,11,13,15,17, 7,17,17, 5, 7, 8, 8,11,
- 14,16, 9,17,17, 6, 6, 5, 5, 8,12,16,11,17,17, 7,
- 5, 4, 3, 6,11,17,13,17,17,10, 8, 6, 5, 5, 8,17,
- 17,13, 6,13,13,10, 8, 6, 7, 9,17, 9, 4,16,16,16,
- 14,12, 7, 7,
-};
-
-static static_codebook _huff_book__44c8_short = {
- 2, 100,
- _huff_lengthlist__44c8_short,
- 0, 0, 0, 0, 0,
- NULL,
- NULL,
- NULL,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c9_long.vqh b/lib/books/coupled/_44c9_long.vqh
deleted file mode 100644
index 16e56e07..00000000
--- a/lib/books/coupled/_44c9_long.vqh
+++ /dev/null
@@ -1,43 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by huff/huffbuld
-
- ********************************************************************/
-
-#ifndef _V__44c9_long_VQH_
-#define _V__44c9_long_VQH_
-#include "codebook.h"
-
-static long _huff_lengthlist__44c9_long[] = {
- 2,12,16, 8,12,13,13,14,13,14,12, 7, 8,21,21,21,
- 21,21,12,10,14, 8, 5,21,21,21,20,20, 7, 7, 6,20,
- 20, 5, 7,10,11,12,12,15,10,20,20, 6, 6, 7, 9,10,
- 11,14,11,20,20, 8, 6, 4, 5, 8,10,13,13,20,20,10,
- 8, 5, 4, 6, 8,12,14,20,20,11,10, 8, 5, 4, 6,10,
- 13,11, 7,11,11, 9, 7, 5, 4, 6,11, 9, 6,12,13,12,
- 11, 9, 6, 4,
-};
-
-static static_codebook _huff_book__44c9_long = {
- 2, 100,
- _huff_lengthlist__44c9_long,
- 0, 0, 0, 0, 0,
- NULL,
- NULL,
- NULL,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c9_s0_p1_0.vqh b/lib/books/coupled/_44c9_s0_p1_0.vqh
deleted file mode 100644
index 2736a284..00000000
--- a/lib/books/coupled/_44c9_s0_p1_0.vqh
+++ /dev/null
@@ -1,75 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c9_s0_p1_0_VQH_
-#define _V__44c9_s0_p1_0_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c9_s0_p1_0[] = {
- 19,
- 16,
- 22,
- 13,
- 25,
- 0,
- 38,
- 7,
- 31,
- 4,
- 34,
-};
-
-static long _vq_lengthlist__44c9_s0_p1_0[] = {
- 1, 3, 4, 6, 6, 0, 0, 0, 0, 0, 0, 5, 5, 5, 7, 6,
- 0, 0, 0, 0, 0, 0, 0, 5, 5, 6, 6, 0, 0, 0, 0, 0,
- 0, 0, 7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 7, 7, 7,
- 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 9,10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,12,12, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,12,12, 0, 0, 0, 0, 0, 0,
-};
-
-static float _vq_quantthresh__44c9_s0_p1_0[] = {
- -17, -13.5, -9, -4.5, -1.5, 1.5, 4.5, 9,
- 13.5, 17,
-};
-
-static long _vq_quantmap__44c9_s0_p1_0[] = {
- 5, 9, 7, 3, 1, 0, 2, 4,
- 8, 10, 6,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c9_s0_p1_0 = {
- _vq_quantthresh__44c9_s0_p1_0,
- _vq_quantmap__44c9_s0_p1_0,
- 11,
- 11
-};
-
-static static_codebook _44c9_s0_p1_0 = {
- 2, 121,
- _vq_lengthlist__44c9_s0_p1_0,
- 1, -527237120, 1611661312, 6, 0,
- _vq_quantlist__44c9_s0_p1_0,
- NULL,
- &_vq_auxt__44c9_s0_p1_0,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c9_s0_p1_1.vqh b/lib/books/coupled/_44c9_s0_p1_1.vqh
deleted file mode 100644
index 87ad4fb6..00000000
--- a/lib/books/coupled/_44c9_s0_p1_1.vqh
+++ /dev/null
@@ -1,58 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c9_s0_p1_1_VQH_
-#define _V__44c9_s0_p1_1_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c9_s0_p1_1[] = {
- 1,
- 0,
- 2,
-};
-
-static long _vq_lengthlist__44c9_s0_p1_1[] = {
- 2, 3, 3, 4, 4, 4, 4, 3, 3,
-};
-
-static float _vq_quantthresh__44c9_s0_p1_1[] = {
- -0.5, 0.5,
-};
-
-static long _vq_quantmap__44c9_s0_p1_1[] = {
- 1, 0, 2,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c9_s0_p1_1 = {
- _vq_quantthresh__44c9_s0_p1_1,
- _vq_quantmap__44c9_s0_p1_1,
- 3,
- 3
-};
-
-static static_codebook _44c9_s0_p1_1 = {
- 2, 9,
- _vq_lengthlist__44c9_s0_p1_1,
- 1, -535822336, 1611661312, 2, 0,
- _vq_quantlist__44c9_s0_p1_1,
- NULL,
- &_vq_auxt__44c9_s0_p1_1,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c9_s0_p2_0.vqh b/lib/books/coupled/_44c9_s0_p2_0.vqh
deleted file mode 100644
index f5235066..00000000
--- a/lib/books/coupled/_44c9_s0_p2_0.vqh
+++ /dev/null
@@ -1,80 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c9_s0_p2_0_VQH_
-#define _V__44c9_s0_p2_0_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c9_s0_p2_0[] = {
- 6,
- 5,
- 7,
- 4,
- 8,
- 3,
- 9,
- 2,
- 10,
- 1,
- 11,
- 0,
- 12,
-};
-
-static long _vq_lengthlist__44c9_s0_p2_0[] = {
- 1, 4, 3, 6, 6, 8, 8, 0, 0, 0, 0, 0, 0, 6, 5, 5,
- 7, 7, 9, 9, 0, 0, 0, 0, 0, 0, 6, 5, 5, 7, 7, 9,
- 9, 0, 0, 0, 0, 0, 0, 0, 7, 7, 7, 7, 9,10, 0, 0,
- 0, 0, 0, 0, 0, 7, 7, 8, 8,10,10, 0, 0, 0, 0, 0,
- 0, 0,11,11, 9, 9,10,10, 0, 0, 0, 0, 0, 0, 0,12,
- 12, 9, 9,10,10, 0, 0, 0, 0, 0, 0, 0, 0, 0,11,11,
- 11,11, 0, 0, 0, 0, 0, 0, 0, 0, 0,11,11,11,11, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,14,14,12,12, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,15,15,12,12, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,14,13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,14,14, 0, 0, 0, 0, 0, 0,
-};
-
-static float _vq_quantthresh__44c9_s0_p2_0[] = {
- -71.5, -58.5, -45.5, -32.5, -19.5, -6.5, 6.5, 19.5,
- 32.5, 45.5, 58.5, 71.5,
-};
-
-static long _vq_quantmap__44c9_s0_p2_0[] = {
- 11, 9, 7, 5, 3, 1, 0, 2,
- 4, 6, 8, 10, 12,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c9_s0_p2_0 = {
- _vq_quantthresh__44c9_s0_p2_0,
- _vq_quantmap__44c9_s0_p2_0,
- 13,
- 13
-};
-
-static static_codebook _44c9_s0_p2_0 = {
- 2, 169,
- _vq_lengthlist__44c9_s0_p2_0,
- 1, -523010048, 1618608128, 4, 0,
- _vq_quantlist__44c9_s0_p2_0,
- NULL,
- &_vq_auxt__44c9_s0_p2_0,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c9_s0_p2_1.vqh b/lib/books/coupled/_44c9_s0_p2_1.vqh
deleted file mode 100644
index 0f9ed7f4..00000000
--- a/lib/books/coupled/_44c9_s0_p2_1.vqh
+++ /dev/null
@@ -1,80 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c9_s0_p2_1_VQH_
-#define _V__44c9_s0_p2_1_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c9_s0_p2_1[] = {
- 6,
- 5,
- 7,
- 4,
- 8,
- 3,
- 9,
- 2,
- 10,
- 1,
- 11,
- 0,
- 12,
-};
-
-static long _vq_lengthlist__44c9_s0_p2_1[] = {
- 5, 6, 6, 6, 6, 6, 6, 7, 7, 7, 7, 7, 7, 8, 6, 6,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 8, 6, 6, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 9, 7, 7, 7, 7, 7, 7, 7, 7,
- 8, 8, 8, 8, 8, 8, 8, 7, 7, 7, 7, 7, 7, 7, 8, 8,
- 7, 9, 8, 9, 7, 7, 7, 7, 7, 8, 8, 8, 8, 8, 9, 9,
- 9, 7, 7, 7, 7, 7, 7, 7, 7, 8, 8, 9, 9, 9, 8, 8,
- 8, 8, 8, 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, 8, 8, 8,
- 8, 7, 7, 7, 8, 9, 9, 9, 8, 8, 8, 8, 8, 8, 8, 8,
- 8, 8, 9, 9, 9, 9, 9, 8, 8, 7, 7, 7, 7, 7, 8, 9,
- 9, 9, 9, 9, 8, 8, 8, 8, 8, 8, 7, 8, 9, 9, 9, 9,
- 9, 8, 8, 8, 8, 8, 7, 8, 7,
-};
-
-static float _vq_quantthresh__44c9_s0_p2_1[] = {
- -5.5, -4.5, -3.5, -2.5, -1.5, -0.5, 0.5, 1.5,
- 2.5, 3.5, 4.5, 5.5,
-};
-
-static long _vq_quantmap__44c9_s0_p2_1[] = {
- 11, 9, 7, 5, 3, 1, 0, 2,
- 4, 6, 8, 10, 12,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c9_s0_p2_1 = {
- _vq_quantthresh__44c9_s0_p2_1,
- _vq_quantmap__44c9_s0_p2_1,
- 13,
- 13
-};
-
-static static_codebook _44c9_s0_p2_1 = {
- 2, 169,
- _vq_lengthlist__44c9_s0_p2_1,
- 1, -531103744, 1611661312, 4, 0,
- _vq_quantlist__44c9_s0_p2_1,
- NULL,
- &_vq_auxt__44c9_s0_p2_1,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c9_s0_p3_0.vqh b/lib/books/coupled/_44c9_s0_p3_0.vqh
deleted file mode 100644
index 29739a39..00000000
--- a/lib/books/coupled/_44c9_s0_p3_0.vqh
+++ /dev/null
@@ -1,99 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c9_s0_p3_0_VQH_
-#define _V__44c9_s0_p3_0_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c9_s0_p3_0[] = {
- 2,
- 1,
- 3,
- 0,
- 4,
-};
-
-static long _vq_lengthlist__44c9_s0_p3_0[] = {
- 1, 6, 6, 0, 0, 0, 5, 5, 0, 0, 0, 5, 5, 0, 0, 0,
- 8, 8, 0, 0, 0, 0, 0, 0, 0, 6, 8, 8, 0, 0, 0, 9,
- 8, 0, 0, 0, 9, 9, 0, 0, 0,11,11, 0, 0, 0, 0, 0,
- 0, 0, 6, 8, 8, 0, 0, 0, 8, 9, 0, 0, 0, 8, 9, 0,
- 0, 0,11,11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 5, 9, 9, 0, 0, 0, 7, 7, 0, 0,
- 0, 8, 8, 0, 0, 0,10,10, 0, 0, 0, 0, 0, 0, 0, 5,
- 9, 9, 0, 0, 0, 7, 7, 0, 0, 0, 8, 8, 0, 0, 0,10,
- 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 5, 9, 8, 0, 0, 0, 8, 8, 0, 0, 0, 7, 7,
- 0, 0, 0,10,10, 0, 0, 0, 0, 0, 0, 0, 5, 8, 9, 0,
- 0, 0, 8, 8, 0, 0, 0, 7, 7, 0, 0, 0,10,10, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 8,11,11, 0, 0, 0,10,10, 0, 0, 0,10,10, 0, 0, 0,
- 11,11, 0, 0, 0, 0, 0, 0, 0, 8,11,11, 0, 0, 0,10,
- 10, 0, 0, 0,10,10, 0, 0, 0,11,11, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,
-};
-
-static float _vq_quantthresh__44c9_s0_p3_0[] = {
- -1.5, -0.5, 0.5, 1.5,
-};
-
-static long _vq_quantmap__44c9_s0_p3_0[] = {
- 3, 1, 0, 2, 4,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c9_s0_p3_0 = {
- _vq_quantthresh__44c9_s0_p3_0,
- _vq_quantmap__44c9_s0_p3_0,
- 5,
- 5
-};
-
-static static_codebook _44c9_s0_p3_0 = {
- 4, 625,
- _vq_lengthlist__44c9_s0_p3_0,
- 1, -533725184, 1611661312, 3, 0,
- _vq_quantlist__44c9_s0_p3_0,
- NULL,
- &_vq_auxt__44c9_s0_p3_0,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c9_s0_p4_0.vqh b/lib/books/coupled/_44c9_s0_p4_0.vqh
deleted file mode 100644
index fa038460..00000000
--- a/lib/books/coupled/_44c9_s0_p4_0.vqh
+++ /dev/null
@@ -1,70 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c9_s0_p4_0_VQH_
-#define _V__44c9_s0_p4_0_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c9_s0_p4_0[] = {
- 4,
- 3,
- 5,
- 2,
- 6,
- 1,
- 7,
- 0,
- 8,
-};
-
-static long _vq_lengthlist__44c9_s0_p4_0[] = {
- 2, 4, 4, 6, 6, 0, 0, 0, 0, 0, 4, 4, 6, 6, 0, 0,
- 0, 0, 0, 3, 3, 6, 6, 0, 0, 0, 0, 0, 5, 5, 6, 6,
- 0, 0, 0, 0, 0, 0, 0, 6, 6, 0, 0, 0, 0, 0, 0, 0,
- 7, 8, 0, 0, 0, 0, 0, 0, 0, 7, 7, 0, 0, 0, 0, 0,
- 0, 0, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,
-};
-
-static float _vq_quantthresh__44c9_s0_p4_0[] = {
- -3.5, -2.5, -1.5, -0.5, 0.5, 1.5, 2.5, 3.5,
-};
-
-static long _vq_quantmap__44c9_s0_p4_0[] = {
- 7, 5, 3, 1, 0, 2, 4, 6,
- 8,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c9_s0_p4_0 = {
- _vq_quantthresh__44c9_s0_p4_0,
- _vq_quantmap__44c9_s0_p4_0,
- 9,
- 9
-};
-
-static static_codebook _44c9_s0_p4_0 = {
- 2, 81,
- _vq_lengthlist__44c9_s0_p4_0,
- 1, -531628032, 1611661312, 4, 0,
- _vq_quantlist__44c9_s0_p4_0,
- NULL,
- &_vq_auxt__44c9_s0_p4_0,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c9_s0_p5_0.vqh b/lib/books/coupled/_44c9_s0_p5_0.vqh
deleted file mode 100644
index 16ebb698..00000000
--- a/lib/books/coupled/_44c9_s0_p5_0.vqh
+++ /dev/null
@@ -1,93 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c9_s0_p5_0_VQH_
-#define _V__44c9_s0_p5_0_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c9_s0_p5_0[] = {
- 8,
- 7,
- 9,
- 6,
- 10,
- 5,
- 11,
- 4,
- 12,
- 3,
- 13,
- 2,
- 14,
- 1,
- 15,
- 0,
- 16,
-};
-
-static long _vq_lengthlist__44c9_s0_p5_0[] = {
- 3, 4, 4, 5, 5, 7, 7, 8, 8, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 4, 4, 6, 6, 7, 7, 8, 8, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 4, 4, 6, 6, 7, 7, 8, 8, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 5, 5, 6, 6, 7, 7, 9, 9, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 6, 6, 7, 7, 9, 9, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 7, 6, 7, 7, 9, 9, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7, 7, 7, 9, 9, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 8, 8, 8, 9, 9,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 8, 9,
- 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9,
- 10,10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9,
- 9,10,10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 10,10,10,10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,11,10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,11,11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,11,11, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,12,12, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,
-};
-
-static float _vq_quantthresh__44c9_s0_p5_0[] = {
- -7.5, -6.5, -5.5, -4.5, -3.5, -2.5, -1.5, -0.5,
- 0.5, 1.5, 2.5, 3.5, 4.5, 5.5, 6.5, 7.5,
-};
-
-static long _vq_quantmap__44c9_s0_p5_0[] = {
- 15, 13, 11, 9, 7, 5, 3, 1,
- 0, 2, 4, 6, 8, 10, 12, 14,
- 16,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c9_s0_p5_0 = {
- _vq_quantthresh__44c9_s0_p5_0,
- _vq_quantmap__44c9_s0_p5_0,
- 17,
- 17
-};
-
-static static_codebook _44c9_s0_p5_0 = {
- 2, 289,
- _vq_lengthlist__44c9_s0_p5_0,
- 1, -529530880, 1611661312, 5, 0,
- _vq_quantlist__44c9_s0_p5_0,
- NULL,
- &_vq_auxt__44c9_s0_p5_0,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c9_s0_p6_0.vqh b/lib/books/coupled/_44c9_s0_p6_0.vqh
deleted file mode 100644
index 4ce8f833..00000000
--- a/lib/books/coupled/_44c9_s0_p6_0.vqh
+++ /dev/null
@@ -1,75 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c9_s0_p6_0_VQH_
-#define _V__44c9_s0_p6_0_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c9_s0_p6_0[] = {
- 19,
- 16,
- 22,
- 13,
- 25,
- 0,
- 38,
- 7,
- 31,
- 4,
- 34,
-};
-
-static long _vq_lengthlist__44c9_s0_p6_0[] = {
- 2, 3, 3, 6, 6, 0, 0, 0, 0, 0, 0, 5, 4, 4, 6, 6,
- 0, 0, 0, 0, 0, 0, 0, 4, 4, 6, 6, 0, 0, 0, 0, 0,
- 0, 0, 6, 6, 6, 6, 0, 0, 0, 0, 0, 0, 0, 7, 7, 6,
- 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 9, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 8, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,10,11, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,12,12, 0, 0, 0, 0, 0, 0,
-};
-
-static float _vq_quantthresh__44c9_s0_p6_0[] = {
- -17, -13.5, -9, -4.5, -1.5, 1.5, 4.5, 9,
- 13.5, 17,
-};
-
-static long _vq_quantmap__44c9_s0_p6_0[] = {
- 5, 9, 7, 3, 1, 0, 2, 4,
- 8, 10, 6,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c9_s0_p6_0 = {
- _vq_quantthresh__44c9_s0_p6_0,
- _vq_quantmap__44c9_s0_p6_0,
- 11,
- 11
-};
-
-static static_codebook _44c9_s0_p6_0 = {
- 2, 121,
- _vq_lengthlist__44c9_s0_p6_0,
- 1, -527237120, 1611661312, 6, 0,
- _vq_quantlist__44c9_s0_p6_0,
- NULL,
- &_vq_auxt__44c9_s0_p6_0,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c9_s0_p6_1.vqh b/lib/books/coupled/_44c9_s0_p6_1.vqh
deleted file mode 100644
index c143eb92..00000000
--- a/lib/books/coupled/_44c9_s0_p6_1.vqh
+++ /dev/null
@@ -1,58 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c9_s0_p6_1_VQH_
-#define _V__44c9_s0_p6_1_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c9_s0_p6_1[] = {
- 1,
- 0,
- 2,
-};
-
-static long _vq_lengthlist__44c9_s0_p6_1[] = {
- 3, 3, 3, 4, 3, 3, 4, 3, 3,
-};
-
-static float _vq_quantthresh__44c9_s0_p6_1[] = {
- -0.5, 0.5,
-};
-
-static long _vq_quantmap__44c9_s0_p6_1[] = {
- 1, 0, 2,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c9_s0_p6_1 = {
- _vq_quantthresh__44c9_s0_p6_1,
- _vq_quantmap__44c9_s0_p6_1,
- 3,
- 3
-};
-
-static static_codebook _44c9_s0_p6_1 = {
- 2, 9,
- _vq_lengthlist__44c9_s0_p6_1,
- 1, -535822336, 1611661312, 2, 0,
- _vq_quantlist__44c9_s0_p6_1,
- NULL,
- &_vq_auxt__44c9_s0_p6_1,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c9_s0_p7_0.vqh b/lib/books/coupled/_44c9_s0_p7_0.vqh
deleted file mode 100644
index 40610383..00000000
--- a/lib/books/coupled/_44c9_s0_p7_0.vqh
+++ /dev/null
@@ -1,80 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c9_s0_p7_0_VQH_
-#define _V__44c9_s0_p7_0_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c9_s0_p7_0[] = {
- 6,
- 5,
- 7,
- 4,
- 8,
- 3,
- 9,
- 2,
- 10,
- 1,
- 11,
- 0,
- 12,
-};
-
-static long _vq_lengthlist__44c9_s0_p7_0[] = {
- 2, 3, 3, 6, 6, 8, 8, 0, 0, 0, 0, 0, 0, 6, 4, 4,
- 6, 6, 9, 9, 0, 0, 0, 0, 0, 0, 7, 4, 4, 6, 6, 9,
- 9, 0, 0, 0, 0, 0, 0, 0, 6, 6, 7, 7, 9, 9, 0, 0,
- 0, 0, 0, 0, 0, 7, 7, 7, 7, 9, 9, 0, 0, 0, 0, 0,
- 0, 0,11,11, 8, 8,10,10, 0, 0, 0, 0, 0, 0, 0,12,
- 12, 8, 8,10,10, 0, 0, 0, 0, 0, 0, 0, 0, 0,10,10,
- 10,10, 0, 0, 0, 0, 0, 0, 0, 0, 0,10,10,10,10, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,14,14,11,11, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,15,15,11,11, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,13,14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,14,14, 0, 0, 0, 0, 0, 0,
-};
-
-static float _vq_quantthresh__44c9_s0_p7_0[] = {
- -27.5, -22.5, -17.5, -12.5, -7.5, -2.5, 2.5, 7.5,
- 12.5, 17.5, 22.5, 27.5,
-};
-
-static long _vq_quantmap__44c9_s0_p7_0[] = {
- 11, 9, 7, 5, 3, 1, 0, 2,
- 4, 6, 8, 10, 12,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c9_s0_p7_0 = {
- _vq_quantthresh__44c9_s0_p7_0,
- _vq_quantmap__44c9_s0_p7_0,
- 13,
- 13
-};
-
-static static_codebook _44c9_s0_p7_0 = {
- 2, 169,
- _vq_lengthlist__44c9_s0_p7_0,
- 1, -526516224, 1616117760, 4, 0,
- _vq_quantlist__44c9_s0_p7_0,
- NULL,
- &_vq_auxt__44c9_s0_p7_0,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c9_s0_p7_1.vqh b/lib/books/coupled/_44c9_s0_p7_1.vqh
deleted file mode 100644
index f19d01a0..00000000
--- a/lib/books/coupled/_44c9_s0_p7_1.vqh
+++ /dev/null
@@ -1,61 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c9_s0_p7_1_VQH_
-#define _V__44c9_s0_p7_1_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c9_s0_p7_1[] = {
- 2,
- 1,
- 3,
- 0,
- 4,
-};
-
-static long _vq_lengthlist__44c9_s0_p7_1[] = {
- 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 4, 4, 5, 5, 5,
- 5, 5, 5, 5, 5, 5, 5, 5, 5,
-};
-
-static float _vq_quantthresh__44c9_s0_p7_1[] = {
- -1.5, -0.5, 0.5, 1.5,
-};
-
-static long _vq_quantmap__44c9_s0_p7_1[] = {
- 3, 1, 0, 2, 4,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c9_s0_p7_1 = {
- _vq_quantthresh__44c9_s0_p7_1,
- _vq_quantmap__44c9_s0_p7_1,
- 5,
- 5
-};
-
-static static_codebook _44c9_s0_p7_1 = {
- 2, 25,
- _vq_lengthlist__44c9_s0_p7_1,
- 1, -533725184, 1611661312, 3, 0,
- _vq_quantlist__44c9_s0_p7_1,
- NULL,
- &_vq_auxt__44c9_s0_p7_1,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c9_s0_p8_0.vqh b/lib/books/coupled/_44c9_s0_p8_0.vqh
deleted file mode 100644
index 5505175f..00000000
--- a/lib/books/coupled/_44c9_s0_p8_0.vqh
+++ /dev/null
@@ -1,86 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c9_s0_p8_0_VQH_
-#define _V__44c9_s0_p8_0_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c9_s0_p8_0[] = {
- 7,
- 6,
- 8,
- 5,
- 9,
- 4,
- 10,
- 3,
- 11,
- 2,
- 12,
- 1,
- 13,
- 0,
- 14,
-};
-
-static long _vq_lengthlist__44c9_s0_p8_0[] = {
- 2, 3, 3, 6, 6, 8, 8,11,11, 0, 0, 0, 0, 0, 0, 5,
- 4, 4, 7, 7, 9, 9,12,12, 0, 0, 0, 0, 0, 0, 6, 4,
- 4, 7, 7, 9, 9,12,12, 0, 0, 0, 0, 0, 0, 0, 6, 6,
- 7, 7, 9, 9,12,12, 0, 0, 0, 0, 0, 0, 0, 7, 7, 7,
- 7, 9, 9,12,12, 0, 0, 0, 0, 0, 0, 0,11,11, 8, 8,
- 9, 9,12,12, 0, 0, 0, 0, 0, 0, 0,11,11, 8, 8,10,
- 10,12,13, 0, 0, 0, 0, 0, 0, 0, 0, 0,10,10,10,10,
- 13,13, 0, 0, 0, 0, 0, 0, 0, 0, 0,10,10,10,10,13,
- 13, 0, 0, 0, 0, 0, 0, 0, 0, 0,14,14,11,11,13,13,
- 0, 0, 0, 0, 0, 0, 0, 0, 0,15,14,11,11,13,13, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,13,13,14,14, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0,13,13,14,14, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,17,17,15,15, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,17,17,15,15, 0, 0, 0, 0, 0,
- 0,
-};
-
-static float _vq_quantthresh__44c9_s0_p8_0[] = {
- -97.5, -82.5, -67.5, -52.5, -37.5, -22.5, -7.5, 7.5,
- 22.5, 37.5, 52.5, 67.5, 82.5, 97.5,
-};
-
-static long _vq_quantmap__44c9_s0_p8_0[] = {
- 13, 11, 9, 7, 5, 3, 1, 0,
- 2, 4, 6, 8, 10, 12, 14,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c9_s0_p8_0 = {
- _vq_quantthresh__44c9_s0_p8_0,
- _vq_quantmap__44c9_s0_p8_0,
- 15,
- 15
-};
-
-static static_codebook _44c9_s0_p8_0 = {
- 2, 225,
- _vq_lengthlist__44c9_s0_p8_0,
- 1, -522567680, 1618870272, 4, 0,
- _vq_quantlist__44c9_s0_p8_0,
- NULL,
- &_vq_auxt__44c9_s0_p8_0,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c9_s0_p8_1.vqh b/lib/books/coupled/_44c9_s0_p8_1.vqh
deleted file mode 100644
index ae718a6f..00000000
--- a/lib/books/coupled/_44c9_s0_p8_1.vqh
+++ /dev/null
@@ -1,86 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c9_s0_p8_1_VQH_
-#define _V__44c9_s0_p8_1_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c9_s0_p8_1[] = {
- 7,
- 6,
- 8,
- 5,
- 9,
- 4,
- 10,
- 3,
- 11,
- 2,
- 12,
- 1,
- 13,
- 0,
- 14,
-};
-
-static long _vq_lengthlist__44c9_s0_p8_1[] = {
- 5, 6, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 9,
- 7, 7, 7, 7, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 8, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 8, 8, 8, 8, 9, 7, 7,
- 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 8, 8, 9, 9, 9, 7,
- 7, 7, 7, 8, 8, 8, 8, 8, 8, 8, 8, 9, 9, 9, 7, 7,
- 8, 7, 8, 8, 8, 8, 8, 8, 8, 8, 9, 9, 9, 7, 7, 8,
- 8, 8, 8, 8, 8, 8, 8, 8, 8, 9, 9, 9, 8, 8, 8, 8,
- 8, 8, 8, 8, 8, 8, 8, 8, 9, 9, 9, 8, 9, 8, 8, 8,
- 8, 8, 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, 8, 8, 8, 8,
- 8, 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, 8, 8, 8, 8, 8,
- 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, 8, 8, 8, 8, 8, 8,
- 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 8, 8, 8, 8, 8,
- 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 8, 8, 8, 8, 8, 8,
- 8, 8, 9, 9, 9, 9, 9, 9, 9, 8, 8, 8, 8, 8, 8, 8,
- 8,
-};
-
-static float _vq_quantthresh__44c9_s0_p8_1[] = {
- -6.5, -5.5, -4.5, -3.5, -2.5, -1.5, -0.5, 0.5,
- 1.5, 2.5, 3.5, 4.5, 5.5, 6.5,
-};
-
-static long _vq_quantmap__44c9_s0_p8_1[] = {
- 13, 11, 9, 7, 5, 3, 1, 0,
- 2, 4, 6, 8, 10, 12, 14,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c9_s0_p8_1 = {
- _vq_quantthresh__44c9_s0_p8_1,
- _vq_quantmap__44c9_s0_p8_1,
- 15,
- 15
-};
-
-static static_codebook _44c9_s0_p8_1 = {
- 2, 225,
- _vq_lengthlist__44c9_s0_p8_1,
- 1, -530841600, 1611661312, 4, 0,
- _vq_quantlist__44c9_s0_p8_1,
- NULL,
- &_vq_auxt__44c9_s0_p8_1,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c9_s0_p9_0.vqh b/lib/books/coupled/_44c9_s0_p9_0.vqh
deleted file mode 100644
index 948cb03f..00000000
--- a/lib/books/coupled/_44c9_s0_p9_0.vqh
+++ /dev/null
@@ -1,115 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c9_s0_p9_0_VQH_
-#define _V__44c9_s0_p9_0_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c9_s0_p9_0[] = {
- 11,
- 10,
- 12,
- 9,
- 13,
- 8,
- 14,
- 7,
- 15,
- 6,
- 16,
- 5,
- 17,
- 4,
- 18,
- 3,
- 19,
- 2,
- 20,
- 1,
- 21,
- 0,
- 22,
-};
-
-static long _vq_lengthlist__44c9_s0_p9_0[] = {
- 1, 3, 3, 7, 7,11,10,15,13,15,15,15,15,15,15,15,
- 15,15,15,15,15,15,15, 5, 5, 6, 9, 9,11,11,13,13,
- 15,15,15,15,15,15,15,15,15,15,15,15,15,15, 5, 6,
- 5, 9,10,11,11,12,13,15,15,15,15,15,15,15,15,15,
- 15,15,15,15,15,15, 8, 9,11,14,14,15,15,14,15,15,
- 15,15,15,15,15,15,15,15,15,15,15,15,15, 9, 8,12,
- 11,14,15,15,15,15,15,15,15,15,15,15,15,15,15,15,
- 15,15,15,15,12,14,10,11,15,15,15,15,15,15,15,15,
- 15,15,15,15,15,15,15,15,15,15,15,15,13,13, 8,15,
- 15,15,15,15,15,15,15,15,14,14,14,14,14,14,14,14,
- 14,14,14,14,10,12,13,14,14,14,14,14,14,14,14,14,
- 14,14,14,14,14,14,14,14,14,14,14,14, 6,14, 9,14,
- 14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,
- 14,14,12,14,12,14,14,14,14,14,14,14,14,14,14,14,
- 14,14,14,14,14,14,14,14,14,14,11,14, 9,14,14,14,
- 14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,
- 14,14,13,14,13,14,14,14,14,14,14,14,14,14,14,14,
- 14,14,14,14,14,14,14,14,14,14,12,14,13,14,14,14,
- 14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,
- 14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,
- 14,14,14,14,14,14,14,14,14,14,13,14,14,14,14,14,
- 14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,
- 14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,
- 14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,
- 14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,
- 14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,
- 14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,
- 14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,
- 14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,
- 14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,
- 14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,
- 14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,
- 14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,
- 14,
-};
-
-static float _vq_quantthresh__44c9_s0_p9_0[] = {
- -19562, -17698, -15836, -13972, -12110, -10246, -8383.5, -6520.5,
- -4657.5, -2794.5, -931.5, 931.5, 2794.5, 4657.5, 6520.5, 8383.5,
- 10246, 12110, 13972, 15836, 17698, 19562,
-};
-
-static long _vq_quantmap__44c9_s0_p9_0[] = {
- 21, 19, 17, 15, 13, 11, 9, 7,
- 5, 3, 1, 0, 2, 4, 6, 8,
- 10, 12, 14, 16, 18, 20, 22,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c9_s0_p9_0 = {
- _vq_quantthresh__44c9_s0_p9_0,
- _vq_quantmap__44c9_s0_p9_0,
- 23,
- 23
-};
-
-static static_codebook _44c9_s0_p9_0 = {
- 2, 529,
- _vq_lengthlist__44c9_s0_p9_0,
- 1, -506199232, 1633491968, 5, 0,
- _vq_quantlist__44c9_s0_p9_0,
- NULL,
- &_vq_auxt__44c9_s0_p9_0,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c9_s0_p9_1.vqh b/lib/books/coupled/_44c9_s0_p9_1.vqh
deleted file mode 100644
index fdd9ae35..00000000
--- a/lib/books/coupled/_44c9_s0_p9_1.vqh
+++ /dev/null
@@ -1,115 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c9_s0_p9_1_VQH_
-#define _V__44c9_s0_p9_1_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c9_s0_p9_1[] = {
- 11,
- 10,
- 12,
- 9,
- 13,
- 8,
- 14,
- 7,
- 15,
- 6,
- 16,
- 5,
- 17,
- 4,
- 18,
- 3,
- 19,
- 2,
- 20,
- 1,
- 21,
- 0,
- 22,
-};
-
-static long _vq_lengthlist__44c9_s0_p9_1[] = {
- 1, 3, 3, 7, 7, 9, 9,10,10,11,11,12,12,13,13,14,
- 14,14,14,15,15,15,15, 6, 5, 5, 8, 8,10,10,11,11,
- 12,12,13,13,14,14,15,15,15,15,15,15,15,15, 6, 5,
- 5, 8, 8,10,10,11,11,12,12,13,13,14,14,14,14,15,
- 15,15,15,15,15,17, 8, 8, 9, 9,10,11,12,12,13,13,
- 13,14,14,14,15,15,15,15,16,16,16,16,18, 8, 8, 9,
- 9,11,11,12,12,13,13,14,14,14,14,15,15,15,15,16,
- 16,16,16,17,13,13,10,10,11,11,12,12,13,13,14,14,
- 15,15,15,15,15,15,16,16,16,16,18,13,13,10,10,11,
- 11,12,12,13,13,14,14,15,15,15,15,15,16,16,16,16,
- 16,18,18,18,12,12,12,12,13,13,14,14,14,15,15,15,
- 15,16,15,16,16,16,16,16,18,18,18,12,12,12,12,13,
- 13,14,14,15,14,15,15,15,15,16,16,16,16,16,16,18,
- 19,19,16,16,13,13,13,13,14,14,15,15,15,15,16,16,
- 16,16,16,16,16,16,18,18,18,16,16,12,13,13,13,14,
- 14,15,15,15,15,16,16,16,16,16,16,16,16,18,19,18,
- 18,19,14,14,14,14,14,14,15,15,16,16,16,16,16,16,
- 16,16,16,16,18,19,18,18,18,14,14,14,13,14,14,15,
- 15,16,16,16,16,16,16,16,16,16,16,19,18,19,18,18,
- 17,16,14,14,15,15,15,16,16,16,16,16,16,16,16,16,
- 16,16,18,18,19,18,18,17,18,14,14,14,14,15,15,16,
- 16,16,16,17,16,16,16,16,16,18,18,18,19,20,18,18,
- 15,15,15,15,16,16,16,16,16,16,17,16,16,16,16,16,
- 19,18,19,19,19,18,18,16,15,14,15,15,15,16,16,16,
- 16,16,16,16,16,16,16,18,19,19,18,18,20,18,18,18,
- 15,15,16,16,16,16,16,16,16,16,16,16,17,16,19,18,
- 19,19,19,19,18,17,17,14,15,16,15,16,16,16,16,16,
- 17,16,17,17,16,20,18,19,18,19,19,19,19,18,16,16,
- 16,15,16,16,16,16,16,16,17,17,17,17,19,18,20,18,
- 19,18,19,19,18,16,15,16,14,16,15,16,16,16,16,16,
- 17,17,17,18,20,19,18,20,18,18,18,18,17,17,16,15,
- 16,15,16,16,16,16,17,16,16,17,19,19,19,19,19,18,
- 18,18,18,18,17,16,14,16,15,16,16,16,17,17,16,17,
- 17,
-};
-
-static float _vq_quantthresh__44c9_s0_p9_1[] = {
- -850.5, -769.5, -688.5, -607.5, -526.5, -445.5, -364.5, -283.5,
- -202.5, -121.5, -40.5, 40.5, 121.5, 202.5, 283.5, 364.5,
- 445.5, 526.5, 607.5, 688.5, 769.5, 850.5,
-};
-
-static long _vq_quantmap__44c9_s0_p9_1[] = {
- 21, 19, 17, 15, 13, 11, 9, 7,
- 5, 3, 1, 0, 2, 4, 6, 8,
- 10, 12, 14, 16, 18, 20, 22,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c9_s0_p9_1 = {
- _vq_quantthresh__44c9_s0_p9_1,
- _vq_quantmap__44c9_s0_p9_1,
- 23,
- 23
-};
-
-static static_codebook _44c9_s0_p9_1 = {
- 2, 529,
- _vq_lengthlist__44c9_s0_p9_1,
- 1, -516171776, 1624522752, 5, 0,
- _vq_quantlist__44c9_s0_p9_1,
- NULL,
- &_vq_auxt__44c9_s0_p9_1,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c9_s0_p9_2.vqh b/lib/books/coupled/_44c9_s0_p9_2.vqh
deleted file mode 100644
index 20f9b302..00000000
--- a/lib/books/coupled/_44c9_s0_p9_2.vqh
+++ /dev/null
@@ -1,160 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44c9_s0_p9_2_VQH_
-#define _V__44c9_s0_p9_2_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44c9_s0_p9_2[] = {
- 40,
- 39,
- 41,
- 38,
- 42,
- 37,
- 43,
- 36,
- 44,
- 35,
- 45,
- 34,
- 46,
- 33,
- 47,
- 32,
- 48,
- 31,
- 49,
- 30,
- 50,
- 29,
- 51,
- 28,
- 52,
- 27,
- 53,
- 26,
- 54,
- 25,
- 55,
- 24,
- 56,
- 23,
- 57,
- 22,
- 58,
- 21,
- 59,
- 20,
- 60,
- 19,
- 61,
- 18,
- 62,
- 17,
- 63,
- 16,
- 64,
- 15,
- 65,
- 14,
- 66,
- 13,
- 67,
- 12,
- 68,
- 11,
- 69,
- 10,
- 70,
- 9,
- 71,
- 8,
- 72,
- 7,
- 73,
- 6,
- 74,
- 5,
- 75,
- 4,
- 76,
- 3,
- 77,
- 2,
- 78,
- 1,
- 79,
- 0,
- 80,
-};
-
-static long _vq_lengthlist__44c9_s0_p9_2[] = {
- 5, 5, 5, 5, 5, 5, 5, 6, 6, 6, 6, 6, 6, 6, 6, 6,
- 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,
- 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7,
-};
-
-static float _vq_quantthresh__44c9_s0_p9_2[] = {
- -39.5, -38.5, -37.5, -36.5, -35.5, -34.5, -33.5, -32.5,
- -31.5, -30.5, -29.5, -28.5, -27.5, -26.5, -25.5, -24.5,
- -23.5, -22.5, -21.5, -20.5, -19.5, -18.5, -17.5, -16.5,
- -15.5, -14.5, -13.5, -12.5, -11.5, -10.5, -9.5, -8.5,
- -7.5, -6.5, -5.5, -4.5, -3.5, -2.5, -1.5, -0.5,
- 0.5, 1.5, 2.5, 3.5, 4.5, 5.5, 6.5, 7.5,
- 8.5, 9.5, 10.5, 11.5, 12.5, 13.5, 14.5, 15.5,
- 16.5, 17.5, 18.5, 19.5, 20.5, 21.5, 22.5, 23.5,
- 24.5, 25.5, 26.5, 27.5, 28.5, 29.5, 30.5, 31.5,
- 32.5, 33.5, 34.5, 35.5, 36.5, 37.5, 38.5, 39.5,
-};
-
-static long _vq_quantmap__44c9_s0_p9_2[] = {
- 79, 77, 75, 73, 71, 69, 67, 65,
- 63, 61, 59, 57, 55, 53, 51, 49,
- 47, 45, 43, 41, 39, 37, 35, 33,
- 31, 29, 27, 25, 23, 21, 19, 17,
- 15, 13, 11, 9, 7, 5, 3, 1,
- 0, 2, 4, 6, 8, 10, 12, 14,
- 16, 18, 20, 22, 24, 26, 28, 30,
- 32, 34, 36, 38, 40, 42, 44, 46,
- 48, 50, 52, 54, 56, 58, 60, 62,
- 64, 66, 68, 70, 72, 74, 76, 78,
- 80,
-};
-
-static encode_aux_threshmatch _vq_auxt__44c9_s0_p9_2 = {
- _vq_quantthresh__44c9_s0_p9_2,
- _vq_quantmap__44c9_s0_p9_2,
- 81,
- 81
-};
-
-static static_codebook _44c9_s0_p9_2 = {
- 1, 81,
- _vq_lengthlist__44c9_s0_p9_2,
- 1, -525074432, 1611661312, 7, 0,
- _vq_quantlist__44c9_s0_p9_2,
- NULL,
- &_vq_auxt__44c9_s0_p9_2,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/coupled/_44c9_short.vqh b/lib/books/coupled/_44c9_short.vqh
deleted file mode 100644
index c997c500..00000000
--- a/lib/books/coupled/_44c9_short.vqh
+++ /dev/null
@@ -1,43 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by huff/huffbuld
-
- ********************************************************************/
-
-#ifndef _V__44c9_short_VQH_
-#define _V__44c9_short_VQH_
-#include "codebook.h"
-
-static long _huff_lengthlist__44c9_short[] = {
- 3,18,18, 9,13,14,18,18,18,18,17,18,18,16,13,12,
- 10,11,13,17,18,15,15,14,13,11, 8, 6, 5, 9, 5,18,
- 18, 6,10,11,13,14,16,18, 7,18,18, 5, 8,10,11,13,
- 14,17, 8,18,18, 6, 7, 7, 7, 9,12,16,11,18,18, 8,
- 7, 5, 4, 6, 9,14,13,18,18,10, 8, 6, 4, 4, 6,13,
- 15,18,16,12,10, 8, 6, 5, 3, 7,18,10, 6,16,15,13,
- 10, 8, 4, 3,
-};
-
-static static_codebook _huff_book__44c9_short = {
- 2, 100,
- _huff_lengthlist__44c9_short,
- 0, 0, 0, 0, 0,
- NULL,
- NULL,
- NULL,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/floor/.cvsignore b/lib/books/floor/.cvsignore
deleted file mode 100644
index 282522db..00000000
--- a/lib/books/floor/.cvsignore
+++ /dev/null
@@ -1,2 +0,0 @@
-Makefile
-Makefile.in
diff --git a/lib/books/floor/Makefile.am b/lib/books/floor/Makefile.am
deleted file mode 100644
index 15aded6b..00000000
--- a/lib/books/floor/Makefile.am
+++ /dev/null
@@ -1,18 +0,0 @@
-## Process this file with automake to produce Makefile.in
-
-AUTOMAKE_OPTIONS = foreign
-
-EXTRA_DIST = line_1024x31_0sub0.vqh line_1024x31_0sub1.vqh\
- line_1024x31_1sub0.vqh line_1024x31_1sub1.vqh line_1024x31_2sub1.vqh\
- line_1024x31_2sub2.vqh line_1024x31_2sub3.vqh line_1024x31_3sub1.vqh\
- line_1024x31_3sub2.vqh line_1024x31_3sub3.vqh line_1024x31_class0.vqh\
- line_1024x31_class1.vqh line_1024x31_class2.vqh line_1024x31_class3.vqh\
- line_128x19_0sub0.vqh line_128x19_1sub1.vqh line_128x19_1sub2.vqh\
- line_128x19_1sub3.vqh line_128x19_2sub1.vqh line_128x19_2sub2.vqh\
- line_128x19_2sub3.vqh line_128x19_class1.vqh line_128x19_class2.vqh\
- line_128x7_0sub0.vqh line_128x7_1sub1.vqh line_128x7_1sub2.vqh\
- line_128x7_1sub3.vqh line_128x7_2sub1.vqh line_128x7_2sub2.vqh\
- line_128x7_2sub3.vqh line_128x7_class1.vqh line_128x7_class2.vqh\
- line_128x9_0sub0.vqh line_128x9_1sub1.vqh line_128x9_1sub2.vqh\
- line_128x9_1sub3.vqh line_128x9_2sub1.vqh line_128x9_2sub2.vqh\
- line_128x9_2sub3.vqh line_128x9_class1.vqh line_128x9_class2.vqh
diff --git a/lib/books/floor/line_1024x31_0sub0.vqh b/lib/books/floor/line_1024x31_0sub0.vqh
deleted file mode 100644
index 67054207..00000000
--- a/lib/books/floor/line_1024x31_0sub0.vqh
+++ /dev/null
@@ -1,38 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by huff/huffbuld
-
- ********************************************************************/
-
-#ifndef _V_line_1024x31_0sub0_VQH_
-#define _V_line_1024x31_0sub0_VQH_
-#include "codebook.h"
-
-static long _huff_lengthlist_line_1024x31_0sub0[] = {
- 4, 5, 5, 5, 5, 5, 5, 4, 5, 5, 5, 5, 5, 5, 5, 5,
- 5, 5, 5, 5, 5, 5, 5, 5, 6, 5, 6, 5, 6, 5, 6, 5,
-};
-
-static static_codebook _huff_book_line_1024x31_0sub0 = {
- 1, 32,
- _huff_lengthlist_line_1024x31_0sub0,
- 0, 0, 0, 0, 0,
- NULL,
- NULL,
- NULL,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/floor/line_1024x31_0sub1.vqh b/lib/books/floor/line_1024x31_0sub1.vqh
deleted file mode 100644
index cd2615ea..00000000
--- a/lib/books/floor/line_1024x31_0sub1.vqh
+++ /dev/null
@@ -1,44 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by huff/huffbuld
-
- ********************************************************************/
-
-#ifndef _V_line_1024x31_0sub1_VQH_
-#define _V_line_1024x31_0sub1_VQH_
-#include "codebook.h"
-
-static long _huff_lengthlist_line_1024x31_0sub1[] = {
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 4, 4, 4, 4, 5, 4, 5, 4, 5, 4, 5, 5, 5, 5, 5, 5,
- 6, 5, 6, 6, 6, 6, 7, 6, 7, 6, 7, 7, 7, 7, 8, 7,
- 8, 7, 8, 8, 8, 8, 8, 8, 9, 8, 9, 8, 9, 8, 9, 9,
- 9, 9,10,10,10,10,10,10,11,10,10,10,11, 9, 9,10,
- 11,11,11,11,11,11,11,11,11,12,13,12,13,14,15,12,
- 13,17,14,13,13,12,12,12,17,17,15,17,17,17,16,13,
-};
-
-static static_codebook _huff_book_line_1024x31_0sub1 = {
- 1, 128,
- _huff_lengthlist_line_1024x31_0sub1,
- 0, 0, 0, 0, 0,
- NULL,
- NULL,
- NULL,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/floor/line_1024x31_1sub0.vqh b/lib/books/floor/line_1024x31_1sub0.vqh
deleted file mode 100644
index e8d4fbf9..00000000
--- a/lib/books/floor/line_1024x31_1sub0.vqh
+++ /dev/null
@@ -1,38 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by huff/huffbuld
-
- ********************************************************************/
-
-#ifndef _V_line_1024x31_1sub0_VQH_
-#define _V_line_1024x31_1sub0_VQH_
-#include "codebook.h"
-
-static long _huff_lengthlist_line_1024x31_1sub0[] = {
- 2, 4, 5, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
- 5, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 7, 7, 7, 7, 7,
-};
-
-static static_codebook _huff_book_line_1024x31_1sub0 = {
- 1, 32,
- _huff_lengthlist_line_1024x31_1sub0,
- 0, 0, 0, 0, 0,
- NULL,
- NULL,
- NULL,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/floor/line_1024x31_1sub1.vqh b/lib/books/floor/line_1024x31_1sub1.vqh
deleted file mode 100644
index 63616edf..00000000
--- a/lib/books/floor/line_1024x31_1sub1.vqh
+++ /dev/null
@@ -1,44 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by huff/huffbuld
-
- ********************************************************************/
-
-#ifndef _V_line_1024x31_1sub1_VQH_
-#define _V_line_1024x31_1sub1_VQH_
-#include "codebook.h"
-
-static long _huff_lengthlist_line_1024x31_1sub1[] = {
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 4, 4, 4, 4, 4, 4, 5, 4, 5, 4, 5, 4, 5, 5, 6, 5,
- 6, 5, 7, 6, 7, 6, 7, 6, 8, 6, 8, 6, 8, 7, 9, 7,
- 9, 7, 9, 8, 9, 8,10, 8,10, 9,10, 9,11,10,11,10,
- 10, 9,10,10,10,10,10,10,10, 9,10,10,11,12,12,11,
- 12,11,11,12,11,12,11,12,11,12,13,12,11,12,12,12,
- 13,14,14,15,12,13,14,14,15,15,15,15,15,15,15,13,
-};
-
-static static_codebook _huff_book_line_1024x31_1sub1 = {
- 1, 128,
- _huff_lengthlist_line_1024x31_1sub1,
- 0, 0, 0, 0, 0,
- NULL,
- NULL,
- NULL,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/floor/line_1024x31_2sub1.vqh b/lib/books/floor/line_1024x31_2sub1.vqh
deleted file mode 100644
index 30a1ab90..00000000
--- a/lib/books/floor/line_1024x31_2sub1.vqh
+++ /dev/null
@@ -1,38 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by huff/huffbuld
-
- ********************************************************************/
-
-#ifndef _V_line_1024x31_2sub1_VQH_
-#define _V_line_1024x31_2sub1_VQH_
-#include "codebook.h"
-
-static long _huff_lengthlist_line_1024x31_2sub1[] = {
- 0, 4, 4, 4, 4, 3, 5, 3, 5, 3, 5, 4, 5, 4, 5, 5,
- 5, 5,
-};
-
-static static_codebook _huff_book_line_1024x31_2sub1 = {
- 1, 18,
- _huff_lengthlist_line_1024x31_2sub1,
- 0, 0, 0, 0, 0,
- NULL,
- NULL,
- NULL,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/floor/line_1024x31_2sub2.vqh b/lib/books/floor/line_1024x31_2sub2.vqh
deleted file mode 100644
index a47983c9..00000000
--- a/lib/books/floor/line_1024x31_2sub2.vqh
+++ /dev/null
@@ -1,40 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by huff/huffbuld
-
- ********************************************************************/
-
-#ifndef _V_line_1024x31_2sub2_VQH_
-#define _V_line_1024x31_2sub2_VQH_
-#include "codebook.h"
-
-static long _huff_lengthlist_line_1024x31_2sub2[] = {
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 3, 3, 3, 4, 4, 4, 4, 5, 4, 5, 4, 6, 5, 7,
- 5, 8, 6, 8, 6,10, 6,10, 6,11, 7,11, 7,11, 7,12,
- 8,12,
-};
-
-static static_codebook _huff_book_line_1024x31_2sub2 = {
- 1, 50,
- _huff_lengthlist_line_1024x31_2sub2,
- 0, 0, 0, 0, 0,
- NULL,
- NULL,
- NULL,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/floor/line_1024x31_2sub3.vqh b/lib/books/floor/line_1024x31_2sub3.vqh
deleted file mode 100644
index 0b5407b4..00000000
--- a/lib/books/floor/line_1024x31_2sub3.vqh
+++ /dev/null
@@ -1,44 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by huff/huffbuld
-
- ********************************************************************/
-
-#ifndef _V_line_1024x31_2sub3_VQH_
-#define _V_line_1024x31_2sub3_VQH_
-#include "codebook.h"
-
-static long _huff_lengthlist_line_1024x31_2sub3[] = {
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 2, 6, 3, 7, 3, 7, 4, 9, 3, 9, 5, 8, 5, 8,
- 6, 9, 6, 9, 6, 9, 7, 9, 7, 9, 7,10, 8, 8, 9, 7,
- 7, 9, 9, 9, 8, 8, 8, 6, 7, 6, 8, 9, 9,11, 9,11,
- 9,11, 8, 9, 9, 8, 9,11, 9,11, 8,11,11,11,11,11,
- 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,
-};
-
-static static_codebook _huff_book_line_1024x31_2sub3 = {
- 1, 128,
- _huff_lengthlist_line_1024x31_2sub3,
- 0, 0, 0, 0, 0,
- NULL,
- NULL,
- NULL,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/floor/line_1024x31_3sub1.vqh b/lib/books/floor/line_1024x31_3sub1.vqh
deleted file mode 100644
index cb1f8c40..00000000
--- a/lib/books/floor/line_1024x31_3sub1.vqh
+++ /dev/null
@@ -1,38 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by huff/huffbuld
-
- ********************************************************************/
-
-#ifndef _V_line_1024x31_3sub1_VQH_
-#define _V_line_1024x31_3sub1_VQH_
-#include "codebook.h"
-
-static long _huff_lengthlist_line_1024x31_3sub1[] = {
- 0, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
- 5, 5,
-};
-
-static static_codebook _huff_book_line_1024x31_3sub1 = {
- 1, 18,
- _huff_lengthlist_line_1024x31_3sub1,
- 0, 0, 0, 0, 0,
- NULL,
- NULL,
- NULL,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/floor/line_1024x31_3sub2.vqh b/lib/books/floor/line_1024x31_3sub2.vqh
deleted file mode 100644
index e4e96923..00000000
--- a/lib/books/floor/line_1024x31_3sub2.vqh
+++ /dev/null
@@ -1,40 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by huff/huffbuld
-
- ********************************************************************/
-
-#ifndef _V_line_1024x31_3sub2_VQH_
-#define _V_line_1024x31_3sub2_VQH_
-#include "codebook.h"
-
-static long _huff_lengthlist_line_1024x31_3sub2[] = {
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 3, 3, 4, 4, 4, 4, 5, 4, 6, 4, 7, 4, 7, 5,
- 8, 5, 8, 5, 9, 5, 9, 5,10, 6,10, 6,10, 6,11, 6,
- 11, 6,
-};
-
-static static_codebook _huff_book_line_1024x31_3sub2 = {
- 1, 50,
- _huff_lengthlist_line_1024x31_3sub2,
- 0, 0, 0, 0, 0,
- NULL,
- NULL,
- NULL,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/floor/line_1024x31_3sub3.vqh b/lib/books/floor/line_1024x31_3sub3.vqh
deleted file mode 100644
index 9d48219a..00000000
--- a/lib/books/floor/line_1024x31_3sub3.vqh
+++ /dev/null
@@ -1,44 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by huff/huffbuld
-
- ********************************************************************/
-
-#ifndef _V_line_1024x31_3sub3_VQH_
-#define _V_line_1024x31_3sub3_VQH_
-#include "codebook.h"
-
-static long _huff_lengthlist_line_1024x31_3sub3[] = {
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 8, 3, 7, 3, 8, 3, 8, 4, 8, 4, 8, 4, 8, 4,
- 9, 4, 8, 4, 9, 4, 9, 5, 9, 5,10, 6, 9, 6,10, 6,
- 10, 7,10, 8,12, 8,11, 9,12, 9,12,10,14,10,11,10,
- 11,11,14,10,14,11,14,13,14,11,14,13,14,13,12,14,
- 14,13,14,14,14,14,14,14,14,14,14,14,14,14,14,13,
-};
-
-static static_codebook _huff_book_line_1024x31_3sub3 = {
- 1, 128,
- _huff_lengthlist_line_1024x31_3sub3,
- 0, 0, 0, 0, 0,
- NULL,
- NULL,
- NULL,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/floor/line_1024x31_class0.vqh b/lib/books/floor/line_1024x31_class0.vqh
deleted file mode 100644
index 38bff2b3..00000000
--- a/lib/books/floor/line_1024x31_class0.vqh
+++ /dev/null
@@ -1,37 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by huff/huffbuld
-
- ********************************************************************/
-
-#ifndef _V_line_1024x31_class0_VQH_
-#define _V_line_1024x31_class0_VQH_
-#include "codebook.h"
-
-static long _huff_lengthlist_line_1024x31_class0[] = {
- 1, 3, 4, 4, 3, 4, 5, 5,
-};
-
-static static_codebook _huff_book_line_1024x31_class0 = {
- 1, 8,
- _huff_lengthlist_line_1024x31_class0,
- 0, 0, 0, 0, 0,
- NULL,
- NULL,
- NULL,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/floor/line_1024x31_class1.vqh b/lib/books/floor/line_1024x31_class1.vqh
deleted file mode 100644
index f74ace2e..00000000
--- a/lib/books/floor/line_1024x31_class1.vqh
+++ /dev/null
@@ -1,37 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by huff/huffbuld
-
- ********************************************************************/
-
-#ifndef _V_line_1024x31_class1_VQH_
-#define _V_line_1024x31_class1_VQH_
-#include "codebook.h"
-
-static long _huff_lengthlist_line_1024x31_class1[] = {
- 1, 3, 5, 8, 5,10, 9,13, 2, 5, 6, 8, 8,12,11,13,
-};
-
-static static_codebook _huff_book_line_1024x31_class1 = {
- 1, 16,
- _huff_lengthlist_line_1024x31_class1,
- 0, 0, 0, 0, 0,
- NULL,
- NULL,
- NULL,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/floor/line_1024x31_class2.vqh b/lib/books/floor/line_1024x31_class2.vqh
deleted file mode 100644
index 99b8f6e2..00000000
--- a/lib/books/floor/line_1024x31_class2.vqh
+++ /dev/null
@@ -1,40 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by huff/huffbuld
-
- ********************************************************************/
-
-#ifndef _V_line_1024x31_class2_VQH_
-#define _V_line_1024x31_class2_VQH_
-#include "codebook.h"
-
-static long _huff_lengthlist_line_1024x31_class2[] = {
- 1, 3, 5,12, 8, 4, 6,12,10, 7, 8,14,17,20,20,14,
- 6, 3, 6,12, 8, 5, 6,10,11, 7, 9,12,20,19,20,17,
- 12, 7, 8,14,12, 7, 7,13,14,10,11,18,20,20,20,20,
- 18,18,15,17,20,18,16,17,20,19,17,19,19,19,19,19,
-};
-
-static static_codebook _huff_book_line_1024x31_class2 = {
- 1, 64,
- _huff_lengthlist_line_1024x31_class2,
- 0, 0, 0, 0, 0,
- NULL,
- NULL,
- NULL,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/floor/line_1024x31_class3.vqh b/lib/books/floor/line_1024x31_class3.vqh
deleted file mode 100644
index fc546618..00000000
--- a/lib/books/floor/line_1024x31_class3.vqh
+++ /dev/null
@@ -1,40 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by huff/huffbuld
-
- ********************************************************************/
-
-#ifndef _V_line_1024x31_class3_VQH_
-#define _V_line_1024x31_class3_VQH_
-#include "codebook.h"
-
-static long _huff_lengthlist_line_1024x31_class3[] = {
- 1, 4, 5,11, 7, 4, 6,12,11, 8, 9,13,18,14,14,16,
- 7, 3, 5,11, 8, 4, 6,12,11, 8,10,14,20,20,20,20,
- 11, 6, 6, 8,11, 7, 7,10,13, 9,12,15,20,20,19,20,
- 17,14,12, 8,18,14,12,10,20,16,15,14,20,20,19,19,
-};
-
-static static_codebook _huff_book_line_1024x31_class3 = {
- 1, 64,
- _huff_lengthlist_line_1024x31_class3,
- 0, 0, 0, 0, 0,
- NULL,
- NULL,
- NULL,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/floor/line_128x19_0sub0.vqh b/lib/books/floor/line_128x19_0sub0.vqh
deleted file mode 100644
index c7c0b296..00000000
--- a/lib/books/floor/line_128x19_0sub0.vqh
+++ /dev/null
@@ -1,44 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by huff/huffbuld
-
- ********************************************************************/
-
-#ifndef _V_line_128x19_0sub0_VQH_
-#define _V_line_128x19_0sub0_VQH_
-#include "codebook.h"
-
-static long _huff_lengthlist_line_128x19_0sub0[] = {
- 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 6, 5, 6, 5, 6, 5,
- 6, 5, 6, 5, 6, 5, 7, 5, 7, 5, 7, 5, 7, 5, 7, 6,
- 7, 6, 7, 6, 8, 6, 8, 6, 8, 6, 8, 6, 8, 7, 8, 7,
- 9, 7, 9, 8, 9, 8, 9, 8, 9, 9,10, 9,10, 9,10,10,
- 10,10,10,11,11,11,11,12,11,12,12,12,12,13,12,13,
- 13,14,13,14,14,16,14,17,15,19,16,17,16,19,18,18,
- 16,18,17,18,17,18,18,18,18,18,18,18,18,18,18,18,
- 18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,
-};
-
-static static_codebook _huff_book_line_128x19_0sub0 = {
- 1, 128,
- _huff_lengthlist_line_128x19_0sub0,
- 0, 0, 0, 0, 0,
- NULL,
- NULL,
- NULL,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/floor/line_128x19_1sub1.vqh b/lib/books/floor/line_128x19_1sub1.vqh
deleted file mode 100644
index c7699ccc..00000000
--- a/lib/books/floor/line_128x19_1sub1.vqh
+++ /dev/null
@@ -1,38 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by huff/huffbuld
-
- ********************************************************************/
-
-#ifndef _V_line_128x19_1sub1_VQH_
-#define _V_line_128x19_1sub1_VQH_
-#include "codebook.h"
-
-static long _huff_lengthlist_line_128x19_1sub1[] = {
- 0, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 3, 5, 4, 5, 4,
- 6, 4, 6, 5, 6, 5, 6, 6, 6,
-};
-
-static static_codebook _huff_book_line_128x19_1sub1 = {
- 1, 25,
- _huff_lengthlist_line_128x19_1sub1,
- 0, 0, 0, 0, 0,
- NULL,
- NULL,
- NULL,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/floor/line_128x19_1sub2.vqh b/lib/books/floor/line_128x19_1sub2.vqh
deleted file mode 100644
index 73605937..00000000
--- a/lib/books/floor/line_128x19_1sub2.vqh
+++ /dev/null
@@ -1,40 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by huff/huffbuld
-
- ********************************************************************/
-
-#ifndef _V_line_128x19_1sub2_VQH_
-#define _V_line_128x19_1sub2_VQH_
-#include "codebook.h"
-
-static long _huff_lengthlist_line_128x19_1sub2[] = {
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,15,15,15,15,15,15,14, 3, 2, 4, 3, 4, 3, 5,
- 4, 6, 5, 6, 5, 7, 6, 7, 7, 8, 7, 9, 8, 9, 9,11,
- 10,12,
-};
-
-static static_codebook _huff_book_line_128x19_1sub2 = {
- 1, 50,
- _huff_lengthlist_line_128x19_1sub2,
- 0, 0, 0, 0, 0,
- NULL,
- NULL,
- NULL,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/floor/line_128x19_1sub3.vqh b/lib/books/floor/line_128x19_1sub3.vqh
deleted file mode 100644
index a781f871..00000000
--- a/lib/books/floor/line_128x19_1sub3.vqh
+++ /dev/null
@@ -1,44 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by huff/huffbuld
-
- ********************************************************************/
-
-#ifndef _V_line_128x19_1sub3_VQH_
-#define _V_line_128x19_1sub3_VQH_
-#include "codebook.h"
-
-static long _huff_lengthlist_line_128x19_1sub3[] = {
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 3, 7, 3, 8, 4, 7, 4, 8, 5, 6, 5, 8, 5, 8,
- 6, 8, 7, 8, 6, 8, 6, 8, 6, 8, 6, 8, 8, 8, 8, 8,
- 7, 8, 8, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
-};
-
-static static_codebook _huff_book_line_128x19_1sub3 = {
- 1, 128,
- _huff_lengthlist_line_128x19_1sub3,
- 0, 0, 0, 0, 0,
- NULL,
- NULL,
- NULL,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/floor/line_128x19_2sub1.vqh b/lib/books/floor/line_128x19_2sub1.vqh
deleted file mode 100644
index 48c63def..00000000
--- a/lib/books/floor/line_128x19_2sub1.vqh
+++ /dev/null
@@ -1,38 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by huff/huffbuld
-
- ********************************************************************/
-
-#ifndef _V_line_128x19_2sub1_VQH_
-#define _V_line_128x19_2sub1_VQH_
-#include "codebook.h"
-
-static long _huff_lengthlist_line_128x19_2sub1[] = {
- 0, 4, 4, 4, 4, 4, 5, 4, 4, 4, 4, 4, 4, 4, 4, 4,
- 5, 4,
-};
-
-static static_codebook _huff_book_line_128x19_2sub1 = {
- 1, 18,
- _huff_lengthlist_line_128x19_2sub1,
- 0, 0, 0, 0, 0,
- NULL,
- NULL,
- NULL,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/floor/line_128x19_2sub2.vqh b/lib/books/floor/line_128x19_2sub2.vqh
deleted file mode 100644
index b4a10a3f..00000000
--- a/lib/books/floor/line_128x19_2sub2.vqh
+++ /dev/null
@@ -1,40 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by huff/huffbuld
-
- ********************************************************************/
-
-#ifndef _V_line_128x19_2sub2_VQH_
-#define _V_line_128x19_2sub2_VQH_
-#include "codebook.h"
-
-static long _huff_lengthlist_line_128x19_2sub2[] = {
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 4, 3, 4, 3, 5, 4, 6, 4, 6, 4, 7, 4, 7, 4,
- 8, 5, 8, 5, 9, 5, 9, 5,10, 5,10, 6,10, 6,11, 6,
- 11, 6,
-};
-
-static static_codebook _huff_book_line_128x19_2sub2 = {
- 1, 50,
- _huff_lengthlist_line_128x19_2sub2,
- 0, 0, 0, 0, 0,
- NULL,
- NULL,
- NULL,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/floor/line_128x19_2sub3.vqh b/lib/books/floor/line_128x19_2sub3.vqh
deleted file mode 100644
index 885ca48b..00000000
--- a/lib/books/floor/line_128x19_2sub3.vqh
+++ /dev/null
@@ -1,44 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by huff/huffbuld
-
- ********************************************************************/
-
-#ifndef _V_line_128x19_2sub3_VQH_
-#define _V_line_128x19_2sub3_VQH_
-#include "codebook.h"
-
-static long _huff_lengthlist_line_128x19_2sub3[] = {
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 9, 3,10, 3,10, 3,11, 3,11, 4,12, 4,12, 4,
- 14, 4,13, 4,14, 5,14, 5,13, 5,14, 5,14, 6,13, 6,
- 14, 7,13, 7,13, 9,13, 9,13,11,13,13,13,13,13,13,
- 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,
- 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,
-};
-
-static static_codebook _huff_book_line_128x19_2sub3 = {
- 1, 128,
- _huff_lengthlist_line_128x19_2sub3,
- 0, 0, 0, 0, 0,
- NULL,
- NULL,
- NULL,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/floor/line_128x19_class1.vqh b/lib/books/floor/line_128x19_class1.vqh
deleted file mode 100644
index 8e519f60..00000000
--- a/lib/books/floor/line_128x19_class1.vqh
+++ /dev/null
@@ -1,40 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by huff/huffbuld
-
- ********************************************************************/
-
-#ifndef _V_line_128x19_class1_VQH_
-#define _V_line_128x19_class1_VQH_
-#include "codebook.h"
-
-static long _huff_lengthlist_line_128x19_class1[] = {
- 1, 2, 7,14, 8, 3, 6,17,14,11,13,19,19,19,19,19,
- 8, 4, 8,13,10, 6,10,18,15,11,15,19,19,19,19,19,
- 13, 8,13,18,13, 8,14,19,19,16,19,19,19,19,19,19,
- 19,19,19,19,19,16,19,19,19,18,18,18,18,18,18,18,
-};
-
-static static_codebook _huff_book_line_128x19_class1 = {
- 1, 64,
- _huff_lengthlist_line_128x19_class1,
- 0, 0, 0, 0, 0,
- NULL,
- NULL,
- NULL,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/floor/line_128x19_class2.vqh b/lib/books/floor/line_128x19_class2.vqh
deleted file mode 100644
index fd57d5cc..00000000
--- a/lib/books/floor/line_128x19_class2.vqh
+++ /dev/null
@@ -1,40 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by huff/huffbuld
-
- ********************************************************************/
-
-#ifndef _V_line_128x19_class2_VQH_
-#define _V_line_128x19_class2_VQH_
-#include "codebook.h"
-
-static long _huff_lengthlist_line_128x19_class2[] = {
- 2, 3, 4,11, 7, 4, 5,12,10, 7, 8,15,18,16,14,17,
- 7, 3, 4,11, 8, 4, 5,12,10, 7, 8,15,18,16,16,16,
- 10, 5, 5, 6,11, 6, 6, 8,13, 9, 9,12,17,17,17,17,
- 17,16,10, 6,17,14,11, 8,17,17,12,11,17,17,17,17,
-};
-
-static static_codebook _huff_book_line_128x19_class2 = {
- 1, 64,
- _huff_lengthlist_line_128x19_class2,
- 0, 0, 0, 0, 0,
- NULL,
- NULL,
- NULL,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/floor/line_128x7_0sub0.vqh b/lib/books/floor/line_128x7_0sub0.vqh
deleted file mode 100644
index 084df02d..00000000
--- a/lib/books/floor/line_128x7_0sub0.vqh
+++ /dev/null
@@ -1,40 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by huff/huffbuld
-
- ********************************************************************/
-
-#ifndef _V_line_128x7_0sub0_VQH_
-#define _V_line_128x7_0sub0_VQH_
-#include "codebook.h"
-
-static long _huff_lengthlist_line_128x7_0sub0[] = {
- 4, 4, 4, 4, 4, 5, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5,
- 5, 5, 5, 5, 6, 5, 6, 6, 6, 6, 6, 7, 7, 7, 7, 9,
- 7,11, 7,13, 8,15, 9,15, 9,15, 9,13,10,15,11,14,
- 12,14,12,13,13,14,13,14,14,14,14,14,14,14,14,14,
-};
-
-static static_codebook _huff_book_line_128x7_0sub0 = {
- 1, 64,
- _huff_lengthlist_line_128x7_0sub0,
- 0, 0, 0, 0, 0,
- NULL,
- NULL,
- NULL,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/floor/line_128x7_1sub1.vqh b/lib/books/floor/line_128x7_1sub1.vqh
deleted file mode 100644
index 9b39612b..00000000
--- a/lib/books/floor/line_128x7_1sub1.vqh
+++ /dev/null
@@ -1,37 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by huff/huffbuld
-
- ********************************************************************/
-
-#ifndef _V_line_128x7_1sub1_VQH_
-#define _V_line_128x7_1sub1_VQH_
-#include "codebook.h"
-
-static long _huff_lengthlist_line_128x7_1sub1[] = {
- 0, 3, 3, 3, 3, 3, 3, 3, 3,
-};
-
-static static_codebook _huff_book_line_128x7_1sub1 = {
- 1, 9,
- _huff_lengthlist_line_128x7_1sub1,
- 0, 0, 0, 0, 0,
- NULL,
- NULL,
- NULL,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/floor/line_128x7_1sub2.vqh b/lib/books/floor/line_128x7_1sub2.vqh
deleted file mode 100644
index 348bd251..00000000
--- a/lib/books/floor/line_128x7_1sub2.vqh
+++ /dev/null
@@ -1,38 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by huff/huffbuld
-
- ********************************************************************/
-
-#ifndef _V_line_128x7_1sub2_VQH_
-#define _V_line_128x7_1sub2_VQH_
-#include "codebook.h"
-
-static long _huff_lengthlist_line_128x7_1sub2[] = {
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 3, 3, 3, 4, 3, 5,
- 4, 7, 5, 7, 5, 9, 7, 9, 8,
-};
-
-static static_codebook _huff_book_line_128x7_1sub2 = {
- 1, 25,
- _huff_lengthlist_line_128x7_1sub2,
- 0, 0, 0, 0, 0,
- NULL,
- NULL,
- NULL,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/floor/line_128x7_1sub3.vqh b/lib/books/floor/line_128x7_1sub3.vqh
deleted file mode 100644
index b475f442..00000000
--- a/lib/books/floor/line_128x7_1sub3.vqh
+++ /dev/null
@@ -1,40 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by huff/huffbuld
-
- ********************************************************************/
-
-#ifndef _V_line_128x7_1sub3_VQH_
-#define _V_line_128x7_1sub3_VQH_
-#include "codebook.h"
-
-static long _huff_lengthlist_line_128x7_1sub3[] = {
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 2, 5, 4, 6, 4, 6,
- 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,
- 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,
-};
-
-static static_codebook _huff_book_line_128x7_1sub3 = {
- 1, 64,
- _huff_lengthlist_line_128x7_1sub3,
- 0, 0, 0, 0, 0,
- NULL,
- NULL,
- NULL,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/floor/line_128x7_2sub1.vqh b/lib/books/floor/line_128x7_2sub1.vqh
deleted file mode 100644
index 689987e8..00000000
--- a/lib/books/floor/line_128x7_2sub1.vqh
+++ /dev/null
@@ -1,37 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by huff/huffbuld
-
- ********************************************************************/
-
-#ifndef _V_line_128x7_2sub1_VQH_
-#define _V_line_128x7_2sub1_VQH_
-#include "codebook.h"
-
-static long _huff_lengthlist_line_128x7_2sub1[] = {
- 0, 3, 3, 3, 3, 3, 3, 3, 3,
-};
-
-static static_codebook _huff_book_line_128x7_2sub1 = {
- 1, 9,
- _huff_lengthlist_line_128x7_2sub1,
- 0, 0, 0, 0, 0,
- NULL,
- NULL,
- NULL,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/floor/line_128x7_2sub2.vqh b/lib/books/floor/line_128x7_2sub2.vqh
deleted file mode 100644
index 620efaf3..00000000
--- a/lib/books/floor/line_128x7_2sub2.vqh
+++ /dev/null
@@ -1,38 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by huff/huffbuld
-
- ********************************************************************/
-
-#ifndef _V_line_128x7_2sub2_VQH_
-#define _V_line_128x7_2sub2_VQH_
-#include "codebook.h"
-
-static long _huff_lengthlist_line_128x7_2sub2[] = {
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 3, 4, 3, 4, 4,
- 4, 4, 5, 5, 5, 5, 6, 5, 6,
-};
-
-static static_codebook _huff_book_line_128x7_2sub2 = {
- 1, 25,
- _huff_lengthlist_line_128x7_2sub2,
- 0, 0, 0, 0, 0,
- NULL,
- NULL,
- NULL,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/floor/line_128x7_2sub3.vqh b/lib/books/floor/line_128x7_2sub3.vqh
deleted file mode 100644
index 834e7c0b..00000000
--- a/lib/books/floor/line_128x7_2sub3.vqh
+++ /dev/null
@@ -1,40 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by huff/huffbuld
-
- ********************************************************************/
-
-#ifndef _V_line_128x7_2sub3_VQH_
-#define _V_line_128x7_2sub3_VQH_
-#include "codebook.h"
-
-static long _huff_lengthlist_line_128x7_2sub3[] = {
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 3, 3, 4, 4, 4,
- 4, 4, 4, 5, 6, 6, 6, 9, 7, 9, 7, 9, 7,11, 8,11,
- 9,11,11,11,10,11,11,11,11,11,10,10,10,10,10,10,
-};
-
-static static_codebook _huff_book_line_128x7_2sub3 = {
- 1, 64,
- _huff_lengthlist_line_128x7_2sub3,
- 0, 0, 0, 0, 0,
- NULL,
- NULL,
- NULL,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/floor/line_128x7_class1.vqh b/lib/books/floor/line_128x7_class1.vqh
deleted file mode 100644
index bb64e4c5..00000000
--- a/lib/books/floor/line_128x7_class1.vqh
+++ /dev/null
@@ -1,40 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by huff/huffbuld
-
- ********************************************************************/
-
-#ifndef _V_line_128x7_class1_VQH_
-#define _V_line_128x7_class1_VQH_
-#include "codebook.h"
-
-static long _huff_lengthlist_line_128x7_class1[] = {
- 2, 3, 4,14,11, 8, 9,15,12, 9,10,15,15,15,15,15,
- 5, 2, 4,14,11, 8,10,15,13,11,12,15,15,15,15,15,
- 5, 3, 5,13,11, 7, 8,15,14,11,12,15,15,15,15,15,
- 14,11,12,14,14,13,13,14,14,14,14,14,14,14,14,14,
-};
-
-static static_codebook _huff_book_line_128x7_class1 = {
- 1, 64,
- _huff_lengthlist_line_128x7_class1,
- 0, 0, 0, 0, 0,
- NULL,
- NULL,
- NULL,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/floor/line_128x7_class2.vqh b/lib/books/floor/line_128x7_class2.vqh
deleted file mode 100644
index 47eae7e9..00000000
--- a/lib/books/floor/line_128x7_class2.vqh
+++ /dev/null
@@ -1,40 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by huff/huffbuld
-
- ********************************************************************/
-
-#ifndef _V_line_128x7_class2_VQH_
-#define _V_line_128x7_class2_VQH_
-#include "codebook.h"
-
-static long _huff_lengthlist_line_128x7_class2[] = {
- 9, 7, 7,11, 7, 5, 5, 9, 9, 6, 6, 8,13,11, 9,14,
- 7, 5, 5, 9, 5, 3, 3, 7, 6, 4, 4, 6,10, 8, 7, 9,
- 9, 6, 6,10, 7, 4, 4, 7, 7, 4, 4, 7,13, 9, 7, 9,
- 13,12,12,14,11, 9,10,14,11, 9, 9,11,14,13,12,10,
-};
-
-static static_codebook _huff_book_line_128x7_class2 = {
- 1, 64,
- _huff_lengthlist_line_128x7_class2,
- 0, 0, 0, 0, 0,
- NULL,
- NULL,
- NULL,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/floor/line_128x9_0sub0.vqh b/lib/books/floor/line_128x9_0sub0.vqh
deleted file mode 100644
index d0d4804f..00000000
--- a/lib/books/floor/line_128x9_0sub0.vqh
+++ /dev/null
@@ -1,40 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by huff/huffbuld
-
- ********************************************************************/
-
-#ifndef _V_line_128x9_0sub0_VQH_
-#define _V_line_128x9_0sub0_VQH_
-#include "codebook.h"
-
-static long _huff_lengthlist_line_128x9_0sub0[] = {
- 4, 4, 4, 5, 4, 5, 4, 5, 4, 5, 4, 6, 4, 6, 4, 6,
- 5, 7, 5, 7, 5, 7, 5, 8, 6, 8, 6, 8, 6, 9, 6,10,
- 7,11, 7,13, 8,14, 8,13, 9,12, 9,11, 9,11, 9,11,
- 9,10, 9,11,11,13,15,15,15,15,15,15,15,15,15,15,
-};
-
-static static_codebook _huff_book_line_128x9_0sub0 = {
- 1, 64,
- _huff_lengthlist_line_128x9_0sub0,
- 0, 0, 0, 0, 0,
- NULL,
- NULL,
- NULL,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/floor/line_128x9_1sub1.vqh b/lib/books/floor/line_128x9_1sub1.vqh
deleted file mode 100644
index 67ed69a9..00000000
--- a/lib/books/floor/line_128x9_1sub1.vqh
+++ /dev/null
@@ -1,37 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by huff/huffbuld
-
- ********************************************************************/
-
-#ifndef _V_line_128x9_1sub1_VQH_
-#define _V_line_128x9_1sub1_VQH_
-#include "codebook.h"
-
-static long _huff_lengthlist_line_128x9_1sub1[] = {
- 0, 4, 3, 4, 3, 4, 2, 4, 2,
-};
-
-static static_codebook _huff_book_line_128x9_1sub1 = {
- 1, 9,
- _huff_lengthlist_line_128x9_1sub1,
- 0, 0, 0, 0, 0,
- NULL,
- NULL,
- NULL,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/floor/line_128x9_1sub2.vqh b/lib/books/floor/line_128x9_1sub2.vqh
deleted file mode 100644
index e678ca2a..00000000
--- a/lib/books/floor/line_128x9_1sub2.vqh
+++ /dev/null
@@ -1,38 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by huff/huffbuld
-
- ********************************************************************/
-
-#ifndef _V_line_128x9_1sub2_VQH_
-#define _V_line_128x9_1sub2_VQH_
-#include "codebook.h"
-
-static long _huff_lengthlist_line_128x9_1sub2[] = {
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 2, 5, 2, 7, 3, 8,
- 3, 9, 4,10, 5,11, 5,11, 6,
-};
-
-static static_codebook _huff_book_line_128x9_1sub2 = {
- 1, 25,
- _huff_lengthlist_line_128x9_1sub2,
- 0, 0, 0, 0, 0,
- NULL,
- NULL,
- NULL,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/floor/line_128x9_1sub3.vqh b/lib/books/floor/line_128x9_1sub3.vqh
deleted file mode 100644
index ca81050e..00000000
--- a/lib/books/floor/line_128x9_1sub3.vqh
+++ /dev/null
@@ -1,40 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by huff/huffbuld
-
- ********************************************************************/
-
-#ifndef _V_line_128x9_1sub3_VQH_
-#define _V_line_128x9_1sub3_VQH_
-#include "codebook.h"
-
-static long _huff_lengthlist_line_128x9_1sub3[] = {
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 1, 7, 3, 7, 4, 7,
- 5, 7, 7, 7, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
-};
-
-static static_codebook _huff_book_line_128x9_1sub3 = {
- 1, 64,
- _huff_lengthlist_line_128x9_1sub3,
- 0, 0, 0, 0, 0,
- NULL,
- NULL,
- NULL,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/floor/line_128x9_2sub1.vqh b/lib/books/floor/line_128x9_2sub1.vqh
deleted file mode 100644
index 754ba4bf..00000000
--- a/lib/books/floor/line_128x9_2sub1.vqh
+++ /dev/null
@@ -1,37 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by huff/huffbuld
-
- ********************************************************************/
-
-#ifndef _V_line_128x9_2sub1_VQH_
-#define _V_line_128x9_2sub1_VQH_
-#include "codebook.h"
-
-static long _huff_lengthlist_line_128x9_2sub1[] = {
- 0, 3, 3, 2, 3, 3, 4, 3, 4,
-};
-
-static static_codebook _huff_book_line_128x9_2sub1 = {
- 1, 9,
- _huff_lengthlist_line_128x9_2sub1,
- 0, 0, 0, 0, 0,
- NULL,
- NULL,
- NULL,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/floor/line_128x9_2sub2.vqh b/lib/books/floor/line_128x9_2sub2.vqh
deleted file mode 100644
index 8ea35b1d..00000000
--- a/lib/books/floor/line_128x9_2sub2.vqh
+++ /dev/null
@@ -1,38 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by huff/huffbuld
-
- ********************************************************************/
-
-#ifndef _V_line_128x9_2sub2_VQH_
-#define _V_line_128x9_2sub2_VQH_
-#include "codebook.h"
-
-static long _huff_lengthlist_line_128x9_2sub2[] = {
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 4, 3, 4, 3, 5, 3,
- 6, 4, 7, 4, 8, 5, 9, 5, 9,
-};
-
-static static_codebook _huff_book_line_128x9_2sub2 = {
- 1, 25,
- _huff_lengthlist_line_128x9_2sub2,
- 0, 0, 0, 0, 0,
- NULL,
- NULL,
- NULL,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/floor/line_128x9_2sub3.vqh b/lib/books/floor/line_128x9_2sub3.vqh
deleted file mode 100644
index 90280dd6..00000000
--- a/lib/books/floor/line_128x9_2sub3.vqh
+++ /dev/null
@@ -1,40 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by huff/huffbuld
-
- ********************************************************************/
-
-#ifndef _V_line_128x9_2sub3_VQH_
-#define _V_line_128x9_2sub3_VQH_
-#include "codebook.h"
-
-static long _huff_lengthlist_line_128x9_2sub3[] = {
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 7, 2, 8, 3, 9, 3,
- 9, 4, 8, 4, 9, 4,12, 6,12, 6,11, 8,13, 9,11,12,
- 12,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,
-};
-
-static static_codebook _huff_book_line_128x9_2sub3 = {
- 1, 64,
- _huff_lengthlist_line_128x9_2sub3,
- 0, 0, 0, 0, 0,
- NULL,
- NULL,
- NULL,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/floor/line_128x9_class1.vqh b/lib/books/floor/line_128x9_class1.vqh
deleted file mode 100644
index 364e7ba1..00000000
--- a/lib/books/floor/line_128x9_class1.vqh
+++ /dev/null
@@ -1,52 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by huff/huffbuld
-
- ********************************************************************/
-
-#ifndef _V_line_128x9_class1_VQH_
-#define _V_line_128x9_class1_VQH_
-#include "codebook.h"
-
-static long _huff_lengthlist_line_128x9_class1[] = {
- 3, 3, 3,11,14,12,10,16,16, 9,12,16,16,16,16,16,
- 5, 2, 2,10,13,11, 8,13,15,11,11,14,16,16,16,16,
- 7, 5, 5,10,12,10, 8,14,16,13,13,16,16,16,16,16,
- 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,
- 16,16,15,16,15,15,15,15,15,15,15,15,15,15,15,15,
- 15,15,15,15,15,14,15,15,15,15,15,15,15,15,15,15,
- 15,15,15,15,15,15,14,15,15,15,15,15,15,15,15,15,
- 15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,
- 15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,
- 15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,
- 15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,
- 15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,
- 15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,
- 15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,
- 15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,
- 15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,
-};
-
-static static_codebook _huff_book_line_128x9_class1 = {
- 1, 256,
- _huff_lengthlist_line_128x9_class1,
- 0, 0, 0, 0, 0,
- NULL,
- NULL,
- NULL,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/floor/line_128x9_class2.vqh b/lib/books/floor/line_128x9_class2.vqh
deleted file mode 100644
index 010f56a4..00000000
--- a/lib/books/floor/line_128x9_class2.vqh
+++ /dev/null
@@ -1,52 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by huff/huffbuld
-
- ********************************************************************/
-
-#ifndef _V_line_128x9_class2_VQH_
-#define _V_line_128x9_class2_VQH_
-#include "codebook.h"
-
-static long _huff_lengthlist_line_128x9_class2[] = {
- 7, 6, 8,10, 8, 5, 6, 8,11, 8, 8,10,17,17,14,16,
- 8, 5, 6, 9, 7, 4, 5, 8, 9, 6, 7, 9,14,12,13,16,
- 11, 8, 7,10, 9, 6, 7,10,11, 8, 8,11,16,13,12,16,
- 16,16,14,16,15,14,12,15,16,16,14,16,16,16,16,16,
- 10, 7, 9,10, 7, 5, 6, 7,10, 7, 7, 8,15,12,12,13,
- 9, 6, 7, 9, 6, 3, 4, 6, 8, 5, 5, 7,14,10,10,12,
- 11, 9, 9,12, 9, 6, 6, 9, 9, 7, 6,10,14,11, 9,12,
- 16,15,15,16,14,13,13,16,14,13,13,15,16,16,16,16,
- 13, 9,10,11,10, 7, 7, 8,11, 8, 8, 7,14,13,13,12,
- 11, 8, 9,10, 9, 6, 6, 8, 9, 6, 6, 6,12,11, 9, 9,
- 12,10,11,13,10, 7, 8,10,10, 7, 7, 8,14,11, 8, 9,
- 16,15,16,16,14,14,14,16,16,15,14,12,16,16,16,16,
- 16,14,16,16,16,14,14,15,16,14,15,13,16,16,16,16,
- 16,15,14,16,16,12,12,14,14,12,12,14,16,16,16,16,
- 16,16,16,16,16,13,16,14,16,14,14,13,15,16,14,16,
- 16,16,16,16,16,16,16,15,16,16,16,14,16,16,16,16,
-};
-
-static static_codebook _huff_book_line_128x9_class2 = {
- 1, 256,
- _huff_lengthlist_line_128x9_class2,
- 0, 0, 0, 0, 0,
- NULL,
- NULL,
- NULL,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/uncoupled/.cvsignore b/lib/books/uncoupled/.cvsignore
deleted file mode 100644
index 282522db..00000000
--- a/lib/books/uncoupled/.cvsignore
+++ /dev/null
@@ -1,2 +0,0 @@
-Makefile
-Makefile.in
diff --git a/lib/books/uncoupled/Makefile.am b/lib/books/uncoupled/Makefile.am
deleted file mode 100644
index 9167d25d..00000000
--- a/lib/books/uncoupled/Makefile.am
+++ /dev/null
@@ -1,20 +0,0 @@
-## Process this file with automake to produce Makefile.in
-
-AUTOMAKE_OPTIONS = foreign
-
-EXTRA_DIST = _44u0_p0_r0.vqh _44u0_p0_r1.vqh _44u0_p1_0.vqh\
- _44u0_p1_r0.vqh _44u0_p1_r1.vqh _44u0_p2_0.vqh _44u0_p3_0.vqh\
- _44u0_p4_0.vqh _44u0_p4_1.vqh _44u0_p5_0.vqh\
- _44u0_p6_0.vqh _44u0_p7_0.vqh _44u0_p7_1.vqh\
- _44u0_p7_2.vqh _44u4_p0_r0.vqh _44u4_p0_r1.vqh\
- _44u4_p1_0.vqh _44u4_p1_r0.vqh _44u4_p1_r1.vqh\
- _44u4_p2_0.vqh _44u4_p3_0.vqh _44u4_p4_0.vqh\
- _44u4_p5_0.vqh _44u4_p6_0.vqh _44u4_p7_0.vqh\
- _44u4_p7_1.vqh _44u4_p8_0.vqh _44u4_p8_1.vqh\
- _44u4_p9_0.vqh _44u4_p9_1.vqh _44u4_p9_2.vqh\
- _44u7_p0_r0.vqh _44u7_p0_r1.vqh _44u7_p1_0.vqh\
- _44u7_p1_r0.vqh _44u7_p1_r1.vqh _44u7_p2_0.vqh\
- _44u7_p2_1.vqh _44u7_p3_0.vqh _44u7_p4_0.vqh\
- _44u7_p5_0.vqh _44u7_p6_0.vqh _44u7_p7_0.vqh\
- _44u7_p7_1.vqh _44u7_p8_0.vqh _44u7_p8_1.vqh\
- _44u7_p9_0.vqh _44u7_p9_1.vqh _44u7_p9_2.vqh
diff --git a/lib/books/uncoupled/_44u0_p0_r0.vqh b/lib/books/uncoupled/_44u0_p0_r0.vqh
deleted file mode 100644
index 6164e0c7..00000000
--- a/lib/books/uncoupled/_44u0_p0_r0.vqh
+++ /dev/null
@@ -1,58 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44u0_p0_r0_VQH_
-#define _V__44u0_p0_r0_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44u0_p0_r0[] = {
- 1,
- 0,
- 2,
-};
-
-static long _vq_lengthlist__44u0_p0_r0[] = {
- 1, 3, 3, 4, 5, 5, 4, 5, 5,
-};
-
-static float _vq_quantthresh__44u0_p0_r0[] = {
- -0.16667, 0.16667,
-};
-
-static long _vq_quantmap__44u0_p0_r0[] = {
- 1, 0, 2,
-};
-
-static encode_aux_threshmatch _vq_auxt__44u0_p0_r0 = {
- _vq_quantthresh__44u0_p0_r0,
- _vq_quantmap__44u0_p0_r0,
- 3,
- 3
-};
-
-static static_codebook _44u0_p0_r0 = {
- 2, 9,
- _vq_lengthlist__44u0_p0_r0,
- 1, -539667115, 1607816533, 2, 0,
- _vq_quantlist__44u0_p0_r0,
- NULL,
- &_vq_auxt__44u0_p0_r0,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/uncoupled/_44u0_p0_r1.vqh b/lib/books/uncoupled/_44u0_p0_r1.vqh
deleted file mode 100644
index c3bc9065..00000000
--- a/lib/books/uncoupled/_44u0_p0_r1.vqh
+++ /dev/null
@@ -1,58 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44u0_p0_r1_VQH_
-#define _V__44u0_p0_r1_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44u0_p0_r1[] = {
- 1,
- 0,
- 2,
-};
-
-static long _vq_lengthlist__44u0_p0_r1[] = {
- 1, 3, 3, 4, 5, 5, 4, 5, 5,
-};
-
-static float _vq_quantthresh__44u0_p0_r1[] = {
- -0.055556, 0.055556,
-};
-
-static long _vq_quantmap__44u0_p0_r1[] = {
- 1, 0, 2,
-};
-
-static encode_aux_threshmatch _vq_auxt__44u0_p0_r1 = {
- _vq_quantthresh__44u0_p0_r1,
- _vq_quantmap__44u0_p0_r1,
- 3,
- 3
-};
-
-static static_codebook _44u0_p0_r1 = {
- 2, 9,
- _vq_lengthlist__44u0_p0_r1,
- 1, -543395385, 1604088263, 2, 0,
- _vq_quantlist__44u0_p0_r1,
- NULL,
- &_vq_auxt__44u0_p0_r1,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/uncoupled/_44u0_p1_0.vqh b/lib/books/uncoupled/_44u0_p1_0.vqh
deleted file mode 100644
index 1e2634bc..00000000
--- a/lib/books/uncoupled/_44u0_p1_0.vqh
+++ /dev/null
@@ -1,63 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44u0_p1_0_VQH_
-#define _V__44u0_p1_0_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44u0_p1_0[] = {
- 1,
- 0,
- 2,
-};
-
-static long _vq_lengthlist__44u0_p1_0[] = {
- 2, 4, 4, 5, 7, 6, 5, 6, 7, 5, 7, 7, 7, 8, 8, 6,
- 8, 8, 5, 7, 7, 6, 8, 8, 7, 8, 8, 4, 7, 7, 7, 9,
- 8, 7, 8, 8, 7, 9, 8, 8, 9,10, 8,10,10, 6, 8, 8,
- 8,10, 8, 8,10,10, 4, 7, 7, 7, 8, 8, 7, 8, 9, 6,
- 8, 8, 8,10,10, 8, 8,10, 7, 8, 9, 8,10,10, 8,10,
- 9,
-};
-
-static float _vq_quantthresh__44u0_p1_0[] = {
- -0.5, 0.5,
-};
-
-static long _vq_quantmap__44u0_p1_0[] = {
- 1, 0, 2,
-};
-
-static encode_aux_threshmatch _vq_auxt__44u0_p1_0 = {
- _vq_quantthresh__44u0_p1_0,
- _vq_quantmap__44u0_p1_0,
- 3,
- 3
-};
-
-static static_codebook _44u0_p1_0 = {
- 4, 81,
- _vq_lengthlist__44u0_p1_0,
- 1, -535822336, 1611661312, 2, 0,
- _vq_quantlist__44u0_p1_0,
- NULL,
- &_vq_auxt__44u0_p1_0,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/uncoupled/_44u0_p1_r0.vqh b/lib/books/uncoupled/_44u0_p1_r0.vqh
deleted file mode 100644
index 0c4d559c..00000000
--- a/lib/books/uncoupled/_44u0_p1_r0.vqh
+++ /dev/null
@@ -1,58 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44u0_p1_r0_VQH_
-#define _V__44u0_p1_r0_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44u0_p1_r0[] = {
- 1,
- 0,
- 2,
-};
-
-static long _vq_lengthlist__44u0_p1_r0[] = {
- 2, 3, 3, 3, 4, 4, 3, 4, 4,
-};
-
-static float _vq_quantthresh__44u0_p1_r0[] = {
- -0.16667, 0.16667,
-};
-
-static long _vq_quantmap__44u0_p1_r0[] = {
- 1, 0, 2,
-};
-
-static encode_aux_threshmatch _vq_auxt__44u0_p1_r0 = {
- _vq_quantthresh__44u0_p1_r0,
- _vq_quantmap__44u0_p1_r0,
- 3,
- 3
-};
-
-static static_codebook _44u0_p1_r0 = {
- 2, 9,
- _vq_lengthlist__44u0_p1_r0,
- 1, -539667115, 1607816533, 2, 0,
- _vq_quantlist__44u0_p1_r0,
- NULL,
- &_vq_auxt__44u0_p1_r0,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/uncoupled/_44u0_p1_r1.vqh b/lib/books/uncoupled/_44u0_p1_r1.vqh
deleted file mode 100644
index a3d4fb38..00000000
--- a/lib/books/uncoupled/_44u0_p1_r1.vqh
+++ /dev/null
@@ -1,58 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44u0_p1_r1_VQH_
-#define _V__44u0_p1_r1_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44u0_p1_r1[] = {
- 1,
- 0,
- 2,
-};
-
-static long _vq_lengthlist__44u0_p1_r1[] = {
- 2, 3, 3, 3, 4, 4, 3, 4, 4,
-};
-
-static float _vq_quantthresh__44u0_p1_r1[] = {
- -0.055556, 0.055556,
-};
-
-static long _vq_quantmap__44u0_p1_r1[] = {
- 1, 0, 2,
-};
-
-static encode_aux_threshmatch _vq_auxt__44u0_p1_r1 = {
- _vq_quantthresh__44u0_p1_r1,
- _vq_quantmap__44u0_p1_r1,
- 3,
- 3
-};
-
-static static_codebook _44u0_p1_r1 = {
- 2, 9,
- _vq_lengthlist__44u0_p1_r1,
- 1, -543395385, 1604088263, 2, 0,
- _vq_quantlist__44u0_p1_r1,
- NULL,
- &_vq_auxt__44u0_p1_r1,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/uncoupled/_44u0_p2_0.vqh b/lib/books/uncoupled/_44u0_p2_0.vqh
deleted file mode 100644
index cbec1466..00000000
--- a/lib/books/uncoupled/_44u0_p2_0.vqh
+++ /dev/null
@@ -1,99 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44u0_p2_0_VQH_
-#define _V__44u0_p2_0_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44u0_p2_0[] = {
- 2,
- 1,
- 3,
- 0,
- 4,
-};
-
-static long _vq_lengthlist__44u0_p2_0[] = {
- 2, 5, 5, 8, 8, 5, 7, 7, 9, 9, 5, 7, 7, 9, 9, 8,
- 10, 9,11,11, 8, 9,10,11,12, 5, 7, 7,10,10, 7, 8,
- 8,11,10, 7, 8, 8,10,11,10,11,10,12,12, 9,10,10,
- 12,12, 6, 7, 7,10,10, 7, 8, 8,11,10, 7, 8, 8,11,
- 11, 9,10,10,12,12,10,10,11,12,12, 9,10,10,13,12,
- 10,11,11,14,13, 9,11,11,13,13,12,13,13,14,14,12,
- 12,13,14,14, 9,10,10,12,13, 9,11,11,13,13,10,11,
- 11,13,14,12,12,12,14,14,12,13,13,14,14, 5, 7, 7,
- 10,10, 7, 9, 8,11,11, 7, 8, 9,11,11,10,11,11,13,
- 13,10,11,11,13,13, 7, 9, 8,11,11, 8, 9,10,11,12,
- 8,10,10,12,12,11,12,12,12,14,11,11,12,14,14, 7,
- 8, 8,11,11, 8,10, 9,12,11, 8, 9,10,12,12,11,12,
- 11,14,12,11,12,12,14,14,10,11,11,14,13,11,11,12,
- 14,14,11,12,12,14,14,13,12,14,13,15,13,14,14,15,
- 15, 9,11,11,13,14,10,12,11,14,13,10,12,12,14,14,
- 12,14,12,15,13,13,14,14,15,16, 5, 7, 7,10,10, 7,
- 9, 8,11,11, 7, 8, 9,11,11,10,11,11,13,13,10,11,
- 11,13,13, 7, 8, 8,11,11, 8,10, 9,12,12, 8, 9,10,
- 11,12,11,12,12,14,14,11,11,12,12,14, 7, 8, 9,11,
- 11, 8,10,10,12,12, 8,10, 9,12,11,11,12,12,14,13,
- 11,12,11,14,13, 9,11,11,14,13,11,12,12,14,14,10,
- 11,11,13,14,13,14,14,16,16,12,12,14,13,15,10,11,
- 11,13,14,11,12,12,14,15,11,12,11,14,14,13,14,13,
- 15,16,13,14,12,16,13, 8,10,10,13,13,10,11,11,14,
- 14,10,11,11,14,13,13,14,14,16,15,12,13,13,15,15,
- 9,11,11,14,14,11,12,12,14,14,11,12,12,15,14,13,
- 14,14,15,16,13,14,14,15,16, 9,11,11,13,14,10,12,
- 11,15,14,11,12,12,14,15,13,14,14,16,15,13,14,14,
- 16,16,12,13,13,15,15,12,13,13,15,16,13,14,14,16,
- 15,15,13,16,14,18,14,15,16,18,17,11,13,13,15,15,
- 12,13,12,16,15,13,14,14,15,17,14,16,13,17,14,15,
- 15,16,17,17, 8,10,10,13,13,10,11,11,13,14,10,11,
- 11,14,14,12,13,13,15,15,13,14,14,15,16, 9,11,11,
- 13,13,11,12,12,15,14,10,11,12,13,15,13,14,14,16,
- 16,13,13,14,15,16, 9,11,11,14,14,11,12,12,14,15,
- 11,12,12,14,14,13,14,14,15,16,14,15,14,16,15,11,
- 13,13,15,15,12,14,14,16,16,12,12,14,15,16,14,15,
- 15,17,17,14,13,15,14,17,12,13,13,15,16,13,14,14,
- 16,16,12,14,13,16,15,14,16,15,17,17,14,15,13,17,
- 14,
-};
-
-static float _vq_quantthresh__44u0_p2_0[] = {
- -1.5, -0.5, 0.5, 1.5,
-};
-
-static long _vq_quantmap__44u0_p2_0[] = {
- 3, 1, 0, 2, 4,
-};
-
-static encode_aux_threshmatch _vq_auxt__44u0_p2_0 = {
- _vq_quantthresh__44u0_p2_0,
- _vq_quantmap__44u0_p2_0,
- 5,
- 5
-};
-
-static static_codebook _44u0_p2_0 = {
- 4, 625,
- _vq_lengthlist__44u0_p2_0,
- 1, -533725184, 1611661312, 3, 0,
- _vq_quantlist__44u0_p2_0,
- NULL,
- &_vq_auxt__44u0_p2_0,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/uncoupled/_44u0_p3_0.vqh b/lib/books/uncoupled/_44u0_p3_0.vqh
deleted file mode 100644
index c19483eb..00000000
--- a/lib/books/uncoupled/_44u0_p3_0.vqh
+++ /dev/null
@@ -1,70 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44u0_p3_0_VQH_
-#define _V__44u0_p3_0_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44u0_p3_0[] = {
- 4,
- 3,
- 5,
- 2,
- 6,
- 1,
- 7,
- 0,
- 8,
-};
-
-static long _vq_lengthlist__44u0_p3_0[] = {
- 1, 4, 4, 7, 7, 8, 8, 9, 9, 4, 6, 5, 8, 8, 9, 8,
- 10,10, 4, 5, 6, 7, 8, 8, 9,10,10, 7, 8, 7, 9, 9,
- 10, 9,11,11, 7, 7, 8, 9, 9, 9,10,11,11, 8, 9, 8,
- 10,10,11,11,12,12, 8, 8, 9, 9,10,10,11,12,12, 9,
- 10,10,11,11,12,12,13,13, 9,10,10,11,11,12,12,13,
- 13,
-};
-
-static float _vq_quantthresh__44u0_p3_0[] = {
- -3.5, -2.5, -1.5, -0.5, 0.5, 1.5, 2.5, 3.5,
-};
-
-static long _vq_quantmap__44u0_p3_0[] = {
- 7, 5, 3, 1, 0, 2, 4, 6,
- 8,
-};
-
-static encode_aux_threshmatch _vq_auxt__44u0_p3_0 = {
- _vq_quantthresh__44u0_p3_0,
- _vq_quantmap__44u0_p3_0,
- 9,
- 9
-};
-
-static static_codebook _44u0_p3_0 = {
- 2, 81,
- _vq_lengthlist__44u0_p3_0,
- 1, -531628032, 1611661312, 4, 0,
- _vq_quantlist__44u0_p3_0,
- NULL,
- &_vq_auxt__44u0_p3_0,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/uncoupled/_44u0_p4_0.vqh b/lib/books/uncoupled/_44u0_p4_0.vqh
deleted file mode 100644
index 726acc9b..00000000
--- a/lib/books/uncoupled/_44u0_p4_0.vqh
+++ /dev/null
@@ -1,100 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44u0_p4_0_VQH_
-#define _V__44u0_p4_0_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44u0_p4_0[] = {
- 9,
- 8,
- 10,
- 7,
- 11,
- 6,
- 12,
- 5,
- 13,
- 4,
- 14,
- 3,
- 15,
- 2,
- 16,
- 1,
- 17,
- 0,
- 18,
-};
-
-static long _vq_lengthlist__44u0_p4_0[] = {
- 1, 4, 4, 6, 6, 8, 8, 9, 9,10,10,11,11,12,12,12,
- 13,13,13, 4, 6, 6, 7, 7, 9, 9,10,10,11,11,12,11,
- 12,12,13,13,14,13, 5, 6, 6, 7, 7, 9, 9, 9,10,10,
- 11,11,12,12,12,13,13,13,14, 6, 8, 7, 9, 9,10,10,
- 10,10,11,11,12,12,13,13,14,14,14,14, 7, 7, 8, 9,
- 9,10,10,10,11,11,11,12,12,13,13,13,14,14,14, 8,
- 9, 9,10,10,11,10,11,11,12,12,13,13,14,14,14,14,
- 15,15, 8, 9, 9,10,10,10,11,11,11,12,12,13,13,14,
- 14,14,14,14,15, 9,10,10,11,11,12,11,12,12,13,13,
- 14,14,14,14,15,15,15,15, 9,10,10,11,11,11,12,12,
- 12,13,13,14,14,14,14,15,15,15,15,10,11,11,12,12,
- 13,13,13,13,14,14,14,14,15,15,15,15,15,15,10,11,
- 11,12,12,13,12,13,13,14,14,14,14,15,15,15,15,15,
- 15,12,12,12,13,13,13,13,14,14,15,14,15,15,15,15,
- 15,15,16,16,12,12,12,13,13,13,13,14,14,14,14,15,
- 15,15,15,15,15,15,15,12,13,13,13,13,14,14,14,14,
- 14,15,15,15,15,15,15,15,15,15,12,13,13,13,13,14,
- 14,14,14,14,14,15,15,15,15,15,15,15,15,13,13,13,
- 14,14,14,14,14,14,15,15,15,15,15,15,15,16,16,16,
- 13,13,14,14,14,14,14,15,14,15,15,15,15,15,15,15,
- 16,15,15,13,14,14,14,14,15,15,15,15,15,15,15,16,
- 16,15,16,16,16,16,14,14,14,14,14,14,15,15,15,15,
- 15,15,16,15,16,16,16,16,16,
-};
-
-static float _vq_quantthresh__44u0_p4_0[] = {
- -25.5, -22.5, -19.5, -16.5, -13.5, -10.5, -7.5, -4.5,
- -1.5, 1.5, 4.5, 7.5, 10.5, 13.5, 16.5, 19.5,
- 22.5, 25.5,
-};
-
-static long _vq_quantmap__44u0_p4_0[] = {
- 17, 15, 13, 11, 9, 7, 5, 3,
- 1, 0, 2, 4, 6, 8, 10, 12,
- 14, 16, 18,
-};
-
-static encode_aux_threshmatch _vq_auxt__44u0_p4_0 = {
- _vq_quantthresh__44u0_p4_0,
- _vq_quantmap__44u0_p4_0,
- 19,
- 19
-};
-
-static static_codebook _44u0_p4_0 = {
- 2, 361,
- _vq_lengthlist__44u0_p4_0,
- 1, -526712832, 1614282752, 5, 0,
- _vq_quantlist__44u0_p4_0,
- NULL,
- &_vq_auxt__44u0_p4_0,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/uncoupled/_44u0_p4_1.vqh b/lib/books/uncoupled/_44u0_p4_1.vqh
deleted file mode 100644
index 36392aff..00000000
--- a/lib/books/uncoupled/_44u0_p4_1.vqh
+++ /dev/null
@@ -1,63 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44u0_p4_1_VQH_
-#define _V__44u0_p4_1_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44u0_p4_1[] = {
- 1,
- 0,
- 2,
-};
-
-static long _vq_lengthlist__44u0_p4_1[] = {
- 2, 5, 5, 6, 6, 6, 6, 6, 6, 6, 7, 7, 7, 7, 7, 7,
- 7, 7, 6, 7, 7, 7, 7, 7, 7, 7, 7, 5, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 8, 7, 8, 8, 6, 7, 7,
- 7, 8, 8, 7, 8, 8, 5, 7, 7, 7, 7, 7, 7, 7, 7, 6,
- 7, 7, 7, 8, 8, 7, 7, 8, 6, 7, 7, 7, 8, 8, 7, 8,
- 8,
-};
-
-static float _vq_quantthresh__44u0_p4_1[] = {
- -0.5, 0.5,
-};
-
-static long _vq_quantmap__44u0_p4_1[] = {
- 1, 0, 2,
-};
-
-static encode_aux_threshmatch _vq_auxt__44u0_p4_1 = {
- _vq_quantthresh__44u0_p4_1,
- _vq_quantmap__44u0_p4_1,
- 3,
- 3
-};
-
-static static_codebook _44u0_p4_1 = {
- 4, 81,
- _vq_lengthlist__44u0_p4_1,
- 1, -535822336, 1611661312, 2, 0,
- _vq_quantlist__44u0_p4_1,
- NULL,
- &_vq_auxt__44u0_p4_1,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/uncoupled/_44u0_p5_0.vqh b/lib/books/uncoupled/_44u0_p5_0.vqh
deleted file mode 100644
index d7ba6249..00000000
--- a/lib/books/uncoupled/_44u0_p5_0.vqh
+++ /dev/null
@@ -1,63 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44u0_p5_0_VQH_
-#define _V__44u0_p5_0_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44u0_p5_0[] = {
- 1,
- 0,
- 2,
-};
-
-static long _vq_lengthlist__44u0_p5_0[] = {
- 1, 5, 5, 5, 7, 7, 5, 7, 7, 5, 7, 7, 7, 9, 9, 7,
- 9, 9, 5, 7, 7, 7, 9, 9, 7, 9, 9, 5, 7, 7, 8,10,
- 9, 7, 9, 9, 7,10, 9, 9,10,11, 9,11,11, 7, 9, 9,
- 9,11, 9, 9,11,11, 5, 7, 7, 7, 9, 9, 8, 9,10, 7,
- 9, 9, 9,11,11, 9, 9,11, 7, 9,10, 9,11,11, 9,11,
- 10,
-};
-
-static float _vq_quantthresh__44u0_p5_0[] = {
- -0.5, 0.5,
-};
-
-static long _vq_quantmap__44u0_p5_0[] = {
- 1, 0, 2,
-};
-
-static encode_aux_threshmatch _vq_auxt__44u0_p5_0 = {
- _vq_quantthresh__44u0_p5_0,
- _vq_quantmap__44u0_p5_0,
- 3,
- 3
-};
-
-static static_codebook _44u0_p5_0 = {
- 4, 81,
- _vq_lengthlist__44u0_p5_0,
- 1, -535822336, 1611661312, 2, 0,
- _vq_quantlist__44u0_p5_0,
- NULL,
- &_vq_auxt__44u0_p5_0,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/uncoupled/_44u0_p6_0.vqh b/lib/books/uncoupled/_44u0_p6_0.vqh
deleted file mode 100644
index d1809ca0..00000000
--- a/lib/books/uncoupled/_44u0_p6_0.vqh
+++ /dev/null
@@ -1,70 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44u0_p6_0_VQH_
-#define _V__44u0_p6_0_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44u0_p6_0[] = {
- 4,
- 3,
- 5,
- 2,
- 6,
- 1,
- 7,
- 0,
- 8,
-};
-
-static long _vq_lengthlist__44u0_p6_0[] = {
- 1, 4, 4, 7, 7, 9,10,12,12, 4, 5, 5, 7, 7,10,10,
- 13,12, 4, 5, 5, 7, 7,10,10,12,13, 7, 7, 7, 8, 9,
- 11,11,13,13, 7, 7, 7, 9, 9,11,11,13,13,10,10,10,
- 11,11,12,13,14,14,10,10,10,11,11,12,12,14,14,12,
- 13,12,13,13,14,14,15,15,12,12,13,13,13,14,14,15,
- 15,
-};
-
-static float _vq_quantthresh__44u0_p6_0[] = {
- -3.5, -2.5, -1.5, -0.5, 0.5, 1.5, 2.5, 3.5,
-};
-
-static long _vq_quantmap__44u0_p6_0[] = {
- 7, 5, 3, 1, 0, 2, 4, 6,
- 8,
-};
-
-static encode_aux_threshmatch _vq_auxt__44u0_p6_0 = {
- _vq_quantthresh__44u0_p6_0,
- _vq_quantmap__44u0_p6_0,
- 9,
- 9
-};
-
-static static_codebook _44u0_p6_0 = {
- 2, 81,
- _vq_lengthlist__44u0_p6_0,
- 1, -531628032, 1611661312, 4, 0,
- _vq_quantlist__44u0_p6_0,
- NULL,
- &_vq_auxt__44u0_p6_0,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/uncoupled/_44u0_p7_0.vqh b/lib/books/uncoupled/_44u0_p7_0.vqh
deleted file mode 100644
index 3960cc1b..00000000
--- a/lib/books/uncoupled/_44u0_p7_0.vqh
+++ /dev/null
@@ -1,61 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44u0_p7_0_VQH_
-#define _V__44u0_p7_0_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44u0_p7_0[] = {
- 2,
- 1,
- 3,
- 0,
- 4,
-};
-
-static long _vq_lengthlist__44u0_p7_0[] = {
- 1, 3, 3, 7, 6, 3, 7, 7, 9,11, 4, 7, 7,11, 9,10,
- 12,12,16,15,10,12,13,14,16,
-};
-
-static float _vq_quantthresh__44u0_p7_0[] = {
- -100.5, -33.5, 33.5, 100.5,
-};
-
-static long _vq_quantmap__44u0_p7_0[] = {
- 3, 1, 0, 2, 4,
-};
-
-static encode_aux_threshmatch _vq_auxt__44u0_p7_0 = {
- _vq_quantthresh__44u0_p7_0,
- _vq_quantmap__44u0_p7_0,
- 5,
- 5
-};
-
-static static_codebook _44u0_p7_0 = {
- 2, 25,
- _vq_lengthlist__44u0_p7_0,
- 1, -521093120, 1624293376, 3, 0,
- _vq_quantlist__44u0_p7_0,
- NULL,
- &_vq_auxt__44u0_p7_0,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/uncoupled/_44u0_p7_1.vqh b/lib/books/uncoupled/_44u0_p7_1.vqh
deleted file mode 100644
index 3bbfd603..00000000
--- a/lib/books/uncoupled/_44u0_p7_1.vqh
+++ /dev/null
@@ -1,115 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44u0_p7_1_VQH_
-#define _V__44u0_p7_1_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44u0_p7_1[] = {
- 11,
- 10,
- 12,
- 9,
- 13,
- 8,
- 14,
- 7,
- 15,
- 6,
- 16,
- 5,
- 17,
- 4,
- 18,
- 3,
- 19,
- 2,
- 20,
- 1,
- 21,
- 0,
- 22,
-};
-
-static long _vq_lengthlist__44u0_p7_1[] = {
- 1, 4, 5, 7, 7, 8, 8, 9, 9,10,10,10,10,11,11,11,
- 11,11,11,10,10,11,11, 5, 6, 6, 8, 7, 9, 9, 9, 9,
- 10,10,11,11,11,11,11,11,11,11,11,11,11,11, 5, 6,
- 6, 7, 7, 9, 9, 9, 9,10,10,11,11,11,11,11,11,12,
- 11,10,11,11,11, 7, 8, 8, 8, 8, 9, 9,10,10,11,10,
- 11,11,12,11,12,12,12,12,11,11,12,12, 7, 8, 8, 8,
- 8, 9, 9,10,10,11,11,11,11,11,12,12,12,12,12,11,
- 11,12,12, 9, 9, 9,10, 9,10,10,11,10,11,11,11,11,
- 12,12,12,12,12,12,11,12,12,12, 9, 9, 9, 9, 9,10,
- 10,10,10,11,11,11,12,12,12,12,12,12,12,11,12,12,
- 12,10,10,10,11,10,11,11,11,11,12,12,12,12,12,12,
- 13,12,12,12,12,12,12,12,10,10,10,10,10,11,11,11,
- 11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,10,
- 11,11,11,11,11,11,12,12,12,12,12,12,13,13,13,12,
- 13,13,12,12,13,13,11,11,11,11,11,11,12,12,12,12,
- 12,13,12,13,13,13,13,13,13,12,12,13,13,11,11,11,
- 12,12,12,12,12,12,13,12,13,13,13,13,13,13,13,13,
- 12,12,13,13,11,11,11,12,12,12,12,12,12,12,13,13,
- 13,13,13,13,13,13,13,12,12,13,13,12,12,12,12,12,
- 12,12,13,13,13,13,13,13,13,13,13,13,13,13,12,12,
- 13,13,12,12,12,12,12,12,12,13,13,12,13,13,13,13,
- 13,13,13,13,13,12,12,13,13,12,12,12,12,12,13,13,
- 13,13,13,13,13,13,13,13,14,13,13,13,12,12,13,13,
- 12,12,12,12,12,13,13,13,13,13,13,13,13,13,13,13,
- 13,13,13,12,12,13,13,12,12,12,12,13,13,13,13,13,
- 13,13,13,13,13,13,14,13,13,13,13,13,13,13,12,12,
- 12,12,13,13,13,13,13,13,13,13,13,13,14,13,13,13,
- 13,13,13,13,13,11,11,11,12,12,12,12,12,12,12,12,
- 12,12,13,12,13,13,13,13,13,13,13,14,11,11,11,12,
- 12,12,12,12,12,12,12,13,13,13,12,13,13,13,13,13,
- 13,13,13,12,12,12,12,12,12,13,13,13,13,13,13,13,
- 13,13,13,14,14,14,14,13,14,14,12,12,12,12,12,13,
- 13,13,13,13,13,13,13,13,13,13,13,14,13,13,14,14,
- 14,
-};
-
-static float _vq_quantthresh__44u0_p7_1[] = {
- -31.5, -28.5, -25.5, -22.5, -19.5, -16.5, -13.5, -10.5,
- -7.5, -4.5, -1.5, 1.5, 4.5, 7.5, 10.5, 13.5,
- 16.5, 19.5, 22.5, 25.5, 28.5, 31.5,
-};
-
-static long _vq_quantmap__44u0_p7_1[] = {
- 21, 19, 17, 15, 13, 11, 9, 7,
- 5, 3, 1, 0, 2, 4, 6, 8,
- 10, 12, 14, 16, 18, 20, 22,
-};
-
-static encode_aux_threshmatch _vq_auxt__44u0_p7_1 = {
- _vq_quantthresh__44u0_p7_1,
- _vq_quantmap__44u0_p7_1,
- 23,
- 23
-};
-
-static static_codebook _44u0_p7_1 = {
- 2, 529,
- _vq_lengthlist__44u0_p7_1,
- 1, -525303808, 1614282752, 5, 0,
- _vq_quantlist__44u0_p7_1,
- NULL,
- &_vq_auxt__44u0_p7_1,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/uncoupled/_44u0_p7_2.vqh b/lib/books/uncoupled/_44u0_p7_2.vqh
deleted file mode 100644
index 239a4832..00000000
--- a/lib/books/uncoupled/_44u0_p7_2.vqh
+++ /dev/null
@@ -1,63 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44u0_p7_2_VQH_
-#define _V__44u0_p7_2_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44u0_p7_2[] = {
- 1,
- 0,
- 2,
-};
-
-static long _vq_lengthlist__44u0_p7_2[] = {
- 3, 5, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 7, 6,
- 7, 7, 6, 6, 6, 6, 7, 7, 6, 7, 7, 6, 6, 6, 7, 7,
- 7, 6, 7, 7, 6, 7, 7, 7, 7, 7, 7, 7, 7, 6, 7, 7,
- 7, 7, 7, 7, 7, 7, 6, 6, 6, 6, 7, 7, 7, 7, 7, 6,
- 7, 7, 7, 7, 7, 7, 7, 7, 6, 7, 7, 7, 7, 7, 7, 7,
- 7,
-};
-
-static float _vq_quantthresh__44u0_p7_2[] = {
- -0.5, 0.5,
-};
-
-static long _vq_quantmap__44u0_p7_2[] = {
- 1, 0, 2,
-};
-
-static encode_aux_threshmatch _vq_auxt__44u0_p7_2 = {
- _vq_quantthresh__44u0_p7_2,
- _vq_quantmap__44u0_p7_2,
- 3,
- 3
-};
-
-static static_codebook _44u0_p7_2 = {
- 4, 81,
- _vq_lengthlist__44u0_p7_2,
- 1, -535822336, 1611661312, 2, 0,
- _vq_quantlist__44u0_p7_2,
- NULL,
- &_vq_auxt__44u0_p7_2,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/uncoupled/_44u4_p0_r0.vqh b/lib/books/uncoupled/_44u4_p0_r0.vqh
deleted file mode 100644
index 8031c4e0..00000000
--- a/lib/books/uncoupled/_44u4_p0_r0.vqh
+++ /dev/null
@@ -1,58 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44u4_p0_r0_VQH_
-#define _V__44u4_p0_r0_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44u4_p0_r0[] = {
- 1,
- 0,
- 2,
-};
-
-static long _vq_lengthlist__44u4_p0_r0[] = {
- 1, 3, 3, 4, 5, 5, 4, 5, 5,
-};
-
-static float _vq_quantthresh__44u4_p0_r0[] = {
- -0.16667, 0.16667,
-};
-
-static long _vq_quantmap__44u4_p0_r0[] = {
- 1, 0, 2,
-};
-
-static encode_aux_threshmatch _vq_auxt__44u4_p0_r0 = {
- _vq_quantthresh__44u4_p0_r0,
- _vq_quantmap__44u4_p0_r0,
- 3,
- 3
-};
-
-static static_codebook _44u4_p0_r0 = {
- 2, 9,
- _vq_lengthlist__44u4_p0_r0,
- 1, -539667115, 1607816533, 2, 0,
- _vq_quantlist__44u4_p0_r0,
- NULL,
- &_vq_auxt__44u4_p0_r0,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/uncoupled/_44u4_p0_r1.vqh b/lib/books/uncoupled/_44u4_p0_r1.vqh
deleted file mode 100644
index 76c631ea..00000000
--- a/lib/books/uncoupled/_44u4_p0_r1.vqh
+++ /dev/null
@@ -1,58 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44u4_p0_r1_VQH_
-#define _V__44u4_p0_r1_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44u4_p0_r1[] = {
- 1,
- 0,
- 2,
-};
-
-static long _vq_lengthlist__44u4_p0_r1[] = {
- 1, 3, 3, 4, 5, 5, 4, 5, 5,
-};
-
-static float _vq_quantthresh__44u4_p0_r1[] = {
- -0.055556, 0.055556,
-};
-
-static long _vq_quantmap__44u4_p0_r1[] = {
- 1, 0, 2,
-};
-
-static encode_aux_threshmatch _vq_auxt__44u4_p0_r1 = {
- _vq_quantthresh__44u4_p0_r1,
- _vq_quantmap__44u4_p0_r1,
- 3,
- 3
-};
-
-static static_codebook _44u4_p0_r1 = {
- 2, 9,
- _vq_lengthlist__44u4_p0_r1,
- 1, -543395385, 1604088263, 2, 0,
- _vq_quantlist__44u4_p0_r1,
- NULL,
- &_vq_auxt__44u4_p0_r1,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/uncoupled/_44u4_p1_0.vqh b/lib/books/uncoupled/_44u4_p1_0.vqh
deleted file mode 100644
index 60967b73..00000000
--- a/lib/books/uncoupled/_44u4_p1_0.vqh
+++ /dev/null
@@ -1,63 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44u4_p1_0_VQH_
-#define _V__44u4_p1_0_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44u4_p1_0[] = {
- 1,
- 0,
- 2,
-};
-
-static long _vq_lengthlist__44u4_p1_0[] = {
- 2, 5, 5, 5, 7, 6, 5, 6, 6, 5, 6, 6, 7, 8, 8, 6,
- 7, 8, 5, 6, 6, 6, 8, 7, 7, 8, 8, 5, 6, 6, 7, 8,
- 8, 7, 8, 8, 7, 8, 8, 8, 9,10, 8, 9, 9, 6, 8, 8,
- 7, 9, 8, 8, 9,10, 5, 6, 6, 6, 8, 8, 6, 8, 8, 6,
- 8, 8, 8,10, 9, 7, 8, 9, 6, 8, 8, 8, 9, 9, 8,10,
- 9,
-};
-
-static float _vq_quantthresh__44u4_p1_0[] = {
- -0.5, 0.5,
-};
-
-static long _vq_quantmap__44u4_p1_0[] = {
- 1, 0, 2,
-};
-
-static encode_aux_threshmatch _vq_auxt__44u4_p1_0 = {
- _vq_quantthresh__44u4_p1_0,
- _vq_quantmap__44u4_p1_0,
- 3,
- 3
-};
-
-static static_codebook _44u4_p1_0 = {
- 4, 81,
- _vq_lengthlist__44u4_p1_0,
- 1, -535822336, 1611661312, 2, 0,
- _vq_quantlist__44u4_p1_0,
- NULL,
- &_vq_auxt__44u4_p1_0,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/uncoupled/_44u4_p1_r0.vqh b/lib/books/uncoupled/_44u4_p1_r0.vqh
deleted file mode 100644
index 7a5e6175..00000000
--- a/lib/books/uncoupled/_44u4_p1_r0.vqh
+++ /dev/null
@@ -1,58 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44u4_p1_r0_VQH_
-#define _V__44u4_p1_r0_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44u4_p1_r0[] = {
- 1,
- 0,
- 2,
-};
-
-static long _vq_lengthlist__44u4_p1_r0[] = {
- 3, 3, 3, 3, 4, 3, 3, 3, 4,
-};
-
-static float _vq_quantthresh__44u4_p1_r0[] = {
- -0.16667, 0.16667,
-};
-
-static long _vq_quantmap__44u4_p1_r0[] = {
- 1, 0, 2,
-};
-
-static encode_aux_threshmatch _vq_auxt__44u4_p1_r0 = {
- _vq_quantthresh__44u4_p1_r0,
- _vq_quantmap__44u4_p1_r0,
- 3,
- 3
-};
-
-static static_codebook _44u4_p1_r0 = {
- 2, 9,
- _vq_lengthlist__44u4_p1_r0,
- 1, -539667115, 1607816533, 2, 0,
- _vq_quantlist__44u4_p1_r0,
- NULL,
- &_vq_auxt__44u4_p1_r0,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/uncoupled/_44u4_p1_r1.vqh b/lib/books/uncoupled/_44u4_p1_r1.vqh
deleted file mode 100644
index 8c2e907e..00000000
--- a/lib/books/uncoupled/_44u4_p1_r1.vqh
+++ /dev/null
@@ -1,58 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44u4_p1_r1_VQH_
-#define _V__44u4_p1_r1_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44u4_p1_r1[] = {
- 1,
- 0,
- 2,
-};
-
-static long _vq_lengthlist__44u4_p1_r1[] = {
- 2, 3, 3, 3, 4, 4, 3, 4, 4,
-};
-
-static float _vq_quantthresh__44u4_p1_r1[] = {
- -0.055556, 0.055556,
-};
-
-static long _vq_quantmap__44u4_p1_r1[] = {
- 1, 0, 2,
-};
-
-static encode_aux_threshmatch _vq_auxt__44u4_p1_r1 = {
- _vq_quantthresh__44u4_p1_r1,
- _vq_quantmap__44u4_p1_r1,
- 3,
- 3
-};
-
-static static_codebook _44u4_p1_r1 = {
- 2, 9,
- _vq_lengthlist__44u4_p1_r1,
- 1, -543395385, 1604088263, 2, 0,
- _vq_quantlist__44u4_p1_r1,
- NULL,
- &_vq_auxt__44u4_p1_r1,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/uncoupled/_44u4_p2_0.vqh b/lib/books/uncoupled/_44u4_p2_0.vqh
deleted file mode 100644
index 8e8eb145..00000000
--- a/lib/books/uncoupled/_44u4_p2_0.vqh
+++ /dev/null
@@ -1,63 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44u4_p2_0_VQH_
-#define _V__44u4_p2_0_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44u4_p2_0[] = {
- 1,
- 0,
- 2,
-};
-
-static long _vq_lengthlist__44u4_p2_0[] = {
- 1, 5, 5, 5, 7, 7, 5, 7, 7, 5, 7, 7, 8, 9, 9, 7,
- 9, 9, 5, 7, 7, 7, 9, 9, 8, 9, 9, 5, 7, 7, 8, 9,
- 9, 7, 9, 9, 7, 9, 9, 9,10,11, 9,11,11, 7, 9, 9,
- 9,11, 9, 9,11,11, 5, 7, 7, 7, 9, 9, 7, 9, 9, 7,
- 9, 9, 9,11,11, 9, 9,11, 7, 9, 9, 9,11,11, 9,11,
- 10,
-};
-
-static float _vq_quantthresh__44u4_p2_0[] = {
- -0.5, 0.5,
-};
-
-static long _vq_quantmap__44u4_p2_0[] = {
- 1, 0, 2,
-};
-
-static encode_aux_threshmatch _vq_auxt__44u4_p2_0 = {
- _vq_quantthresh__44u4_p2_0,
- _vq_quantmap__44u4_p2_0,
- 3,
- 3
-};
-
-static static_codebook _44u4_p2_0 = {
- 4, 81,
- _vq_lengthlist__44u4_p2_0,
- 1, -535822336, 1611661312, 2, 0,
- _vq_quantlist__44u4_p2_0,
- NULL,
- &_vq_auxt__44u4_p2_0,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/uncoupled/_44u4_p3_0.vqh b/lib/books/uncoupled/_44u4_p3_0.vqh
deleted file mode 100644
index ae5f987c..00000000
--- a/lib/books/uncoupled/_44u4_p3_0.vqh
+++ /dev/null
@@ -1,99 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44u4_p3_0_VQH_
-#define _V__44u4_p3_0_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44u4_p3_0[] = {
- 2,
- 1,
- 3,
- 0,
- 4,
-};
-
-static long _vq_lengthlist__44u4_p3_0[] = {
- 3, 5, 5, 8, 8, 6, 7, 7, 9, 9, 5, 7, 7, 9, 9, 9,
- 9, 9,11,11, 9, 9, 9,11,11, 5, 7, 7, 9, 9, 7, 8,
- 8,10,10, 7, 8, 8,10,10,10,10,10,11,12, 9,10,10,
- 11,12, 5, 7, 7, 9, 9, 7, 8, 8,10,10, 7, 8, 8,10,
- 10, 9,10,10,12,11, 9,10,10,12,12, 8,10,10,12,12,
- 10,10,10,13,12, 9,10,10,12,12,12,12,12,13,14,11,
- 11,12,13,14, 9,10,10,12,12, 9,10,10,12,12,10,10,
- 10,12,12,11,12,11,14,13,12,12,12,14,13, 5, 7, 7,
- 9, 9, 7, 8, 8,10,10, 7, 8, 8,10,10,10,10,10,12,
- 12, 9,10,10,12,12, 7, 8, 8,10,10, 8, 9, 9,11,11,
- 8, 9, 9,11,11,10,11,11,12,13,10,11,11,12,13, 7,
- 8, 8,10,10, 8, 9, 8,11,10, 8, 9, 9,11,11,10,11,
- 10,13,11,10,11,11,13,13, 9,11,10,13,12,10,11,11,
- 13,13,10,11,11,13,13,12,12,13,12,15,12,13,13,14,
- 14, 9,10,10,12,12,10,11,10,13,12,10,11,11,13,13,
- 12,13,11,14,12,12,13,13,14,15, 5, 7, 7, 9, 9, 7,
- 8, 8,10,10, 7, 8, 8,10,10, 9,10,10,12,12,10,10,
- 11,12,12, 7, 8, 8,10,10, 8, 9, 9,11,11, 8, 8, 9,
- 10,11,10,11,11,13,13,10,10,11,11,13, 7, 8, 8,10,
- 10, 8, 9, 9,11,11, 8, 9, 9,11,11,10,11,11,13,12,
- 10,11,11,13,12, 9,10,10,12,12,10,11,11,13,13,10,
- 10,11,12,13,12,13,13,15,14,12,11,13,12,14, 9,10,
- 10,12,13,10,11,11,13,13,10,11,11,13,13,12,13,13,
- 14,14,12,13,12,14,12, 8, 9, 9,12,12, 9,11,10,13,
- 13, 9,10,10,12,12,12,13,13,14,14,12,12,12,14,13,
- 9,10,10,13,12,10,11,11,13,13,10,11,11,13,13,13,
- 13,13,14,15,12,13,13,14,14, 9,10,10,12,13,10,11,
- 10,13,12,10,11,11,12,13,12,13,12,15,14,12,13,13,
- 14,15,11,12,12,14,14,12,12,13,14,15,12,13,13,15,
- 14,13,13,14,12,16,14,14,14,16,15,11,12,12,14,14,
- 11,12,12,14,14,12,13,13,14,15,13,14,12,16,13,14,
- 14,15,15,16, 8, 9, 9,12,12, 9,10,10,13,12, 9,10,
- 10,12,13,12,12,12,14,14,12,12,13,14,14, 9,10,10,
- 12,12,10,11,11,13,13,10,10,11,12,13,12,13,13,15,
- 14,12,12,13,13,15, 9,10,10,12,13,10,11,11,13,13,
- 10,11,11,13,13,12,13,13,14,14,13,13,13,14,14,11,
- 12,12,14,14,12,13,13,15,14,11,12,12,13,14,14,15,
- 14,16,15,13,12,14,13,15,12,12,12,14,14,12,13,13,
- 14,15,12,13,12,15,14,14,14,14,16,16,14,14,12,16,
- 12,
-};
-
-static float _vq_quantthresh__44u4_p3_0[] = {
- -1.5, -0.5, 0.5, 1.5,
-};
-
-static long _vq_quantmap__44u4_p3_0[] = {
- 3, 1, 0, 2, 4,
-};
-
-static encode_aux_threshmatch _vq_auxt__44u4_p3_0 = {
- _vq_quantthresh__44u4_p3_0,
- _vq_quantmap__44u4_p3_0,
- 5,
- 5
-};
-
-static static_codebook _44u4_p3_0 = {
- 4, 625,
- _vq_lengthlist__44u4_p3_0,
- 1, -533725184, 1611661312, 3, 0,
- _vq_quantlist__44u4_p3_0,
- NULL,
- &_vq_auxt__44u4_p3_0,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/uncoupled/_44u4_p4_0.vqh b/lib/books/uncoupled/_44u4_p4_0.vqh
deleted file mode 100644
index 950a8169..00000000
--- a/lib/books/uncoupled/_44u4_p4_0.vqh
+++ /dev/null
@@ -1,99 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44u4_p4_0_VQH_
-#define _V__44u4_p4_0_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44u4_p4_0[] = {
- 2,
- 1,
- 3,
- 0,
- 4,
-};
-
-static long _vq_lengthlist__44u4_p4_0[] = {
- 3, 5, 5, 8, 8, 5, 7, 7, 9, 9, 5, 7, 7, 9, 9, 8,
- 10, 9,12,11, 8, 9, 9,11,12, 5, 7, 7, 9, 9, 7, 8,
- 8,10,10, 7, 8, 8,10,10,10,10,10,12,12, 9,10,10,
- 11,13, 5, 7, 7, 9, 9, 7, 8, 8,10,10, 7, 8, 8,10,
- 10, 9,10,10,12,11,10,10,10,12,12, 9,10,10,12,12,
- 10,11,10,13,12, 9,10,10,12,12,12,12,12,13,14,11,
- 12,12,13,14, 8, 9,10,12,12, 9,10,10,12,12,10,10,
- 10,12,13,11,12,12,14,13,12,13,12,14,14, 5, 7, 7,
- 9, 9, 7, 8, 8,10,10, 7, 8, 8,10,10,10,11,10,13,
- 12,10,10,10,12,12, 7, 8, 8,11,10, 8, 9, 9,11,11,
- 8, 9, 9,11,11,11,11,11,12,13,10,11,11,13,13, 7,
- 8, 8,10,10, 8, 9, 8,11,10, 8, 9, 9,11,11,10,11,
- 10,13,12,10,11,11,13,13,10,11,10,13,12,10,11,11,
- 13,13,10,11,11,13,13,12,12,13,12,15,12,13,13,14,
- 15, 9,10,10,12,13,10,11,10,13,12,10,11,11,13,13,
- 12,13,11,15,12,12,13,13,15,15, 5, 7, 7, 9, 9, 7,
- 8, 8,10,10, 7, 8, 8,10,10, 9,10,10,12,12,10,10,
- 11,12,13, 7, 8, 8,10,10, 8, 9, 9,11,11, 8, 8, 9,
- 10,11,10,11,11,13,13,10,10,11,12,13, 7, 8, 8,10,
- 11, 8, 9, 9,11,11, 8, 9, 9,11,11,10,11,11,13,13,
- 10,11,11,13,12, 9,10,10,13,12,10,11,11,14,13,10,
- 10,11,12,13,13,13,13,15,15,12,11,13,12,15,10,10,
- 11,12,13,10,11,11,13,13,10,11,11,13,13,12,13,13,
- 14,14,12,13,12,15,12, 8,10,10,12,12,10,11,10,13,
- 13, 9,10,10,13,13,12,13,13,15,14,12,12,12,14,14,
- 9,10,10,13,13,10,11,11,13,13,10,11,11,14,13,13,
- 13,14,14,15,12,13,13,15,14, 9,10,10,12,13,10,11,
- 10,13,12,10,11,11,13,13,12,13,12,15,14,13,13,13,
- 14,15,12,12,12,15,14,12,12,13,14,15,12,13,13,15,
- 15,14,13,15,13,16,14,15,15,17,16,11,12,12,14,14,
- 11,13,12,15,14,12,13,13,14,15,13,15,12,16,13,14,
- 15,15,16,16, 8, 9,10,12,12, 9,10,10,13,13,10,10,
- 11,13,13,12,13,12,14,14,12,13,13,14,15, 9,10,10,
- 13,12,10,11,11,14,13,10,10,11,13,13,13,13,13,15,
- 14,12,12,13,14,15, 9,10,11,13,13,10,11,11,13,14,
- 10,11,11,13,13,13,13,13,14,15,13,13,13,15,14,11,
- 12,12,14,14,12,13,13,15,14,11,12,13,14,15,14,15,
- 15,17,16,13,12,15,13,16,12,12,12,14,14,12,13,13,
- 14,15,12,13,12,15,14,14,15,15,16,17,14,15,12,17,
- 13,
-};
-
-static float _vq_quantthresh__44u4_p4_0[] = {
- -1.5, -0.5, 0.5, 1.5,
-};
-
-static long _vq_quantmap__44u4_p4_0[] = {
- 3, 1, 0, 2, 4,
-};
-
-static encode_aux_threshmatch _vq_auxt__44u4_p4_0 = {
- _vq_quantthresh__44u4_p4_0,
- _vq_quantmap__44u4_p4_0,
- 5,
- 5
-};
-
-static static_codebook _44u4_p4_0 = {
- 4, 625,
- _vq_lengthlist__44u4_p4_0,
- 1, -533725184, 1611661312, 3, 0,
- _vq_quantlist__44u4_p4_0,
- NULL,
- &_vq_auxt__44u4_p4_0,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/uncoupled/_44u4_p5_0.vqh b/lib/books/uncoupled/_44u4_p5_0.vqh
deleted file mode 100644
index 7c16a356..00000000
--- a/lib/books/uncoupled/_44u4_p5_0.vqh
+++ /dev/null
@@ -1,70 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44u4_p5_0_VQH_
-#define _V__44u4_p5_0_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44u4_p5_0[] = {
- 4,
- 3,
- 5,
- 2,
- 6,
- 1,
- 7,
- 0,
- 8,
-};
-
-static long _vq_lengthlist__44u4_p5_0[] = {
- 2, 4, 4, 6, 6, 7, 7, 9, 9, 4, 5, 5, 6, 6, 8, 7,
- 9, 9, 4, 5, 5, 6, 6, 7, 7, 9, 9, 6, 6, 6, 7, 7,
- 8, 8,10,10, 6, 6, 6, 7, 7, 8, 8,10,10, 7, 8, 7,
- 8, 8,10, 9,11,11, 7, 7, 8, 8, 8, 9, 9,11,11, 9,
- 9, 9,10,10,11,11,12,12, 9, 9, 9,10,10,11,11,12,
- 12,
-};
-
-static float _vq_quantthresh__44u4_p5_0[] = {
- -3.5, -2.5, -1.5, -0.5, 0.5, 1.5, 2.5, 3.5,
-};
-
-static long _vq_quantmap__44u4_p5_0[] = {
- 7, 5, 3, 1, 0, 2, 4, 6,
- 8,
-};
-
-static encode_aux_threshmatch _vq_auxt__44u4_p5_0 = {
- _vq_quantthresh__44u4_p5_0,
- _vq_quantmap__44u4_p5_0,
- 9,
- 9
-};
-
-static static_codebook _44u4_p5_0 = {
- 2, 81,
- _vq_lengthlist__44u4_p5_0,
- 1, -531628032, 1611661312, 4, 0,
- _vq_quantlist__44u4_p5_0,
- NULL,
- &_vq_auxt__44u4_p5_0,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/uncoupled/_44u4_p6_0.vqh b/lib/books/uncoupled/_44u4_p6_0.vqh
deleted file mode 100644
index 3496f237..00000000
--- a/lib/books/uncoupled/_44u4_p6_0.vqh
+++ /dev/null
@@ -1,70 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44u4_p6_0_VQH_
-#define _V__44u4_p6_0_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44u4_p6_0[] = {
- 4,
- 3,
- 5,
- 2,
- 6,
- 1,
- 7,
- 0,
- 8,
-};
-
-static long _vq_lengthlist__44u4_p6_0[] = {
- 2, 4, 4, 6, 6, 7, 7, 9, 9, 4, 5, 5, 6, 6, 7, 7,
- 10, 9, 4, 5, 5, 6, 6, 7, 7, 9,10, 6, 6, 6, 7, 7,
- 8, 8,10,10, 6, 6, 6, 7, 7, 8, 8,10,10, 7, 8, 7,
- 8, 8, 9, 9,11,11, 7, 7, 8, 8, 8, 9, 9,11,11, 9,
- 10,10,10,10,11,11,12,12, 9, 9,10,10,10,11,11,12,
- 12,
-};
-
-static float _vq_quantthresh__44u4_p6_0[] = {
- -3.5, -2.5, -1.5, -0.5, 0.5, 1.5, 2.5, 3.5,
-};
-
-static long _vq_quantmap__44u4_p6_0[] = {
- 7, 5, 3, 1, 0, 2, 4, 6,
- 8,
-};
-
-static encode_aux_threshmatch _vq_auxt__44u4_p6_0 = {
- _vq_quantthresh__44u4_p6_0,
- _vq_quantmap__44u4_p6_0,
- 9,
- 9
-};
-
-static static_codebook _44u4_p6_0 = {
- 2, 81,
- _vq_lengthlist__44u4_p6_0,
- 1, -531628032, 1611661312, 4, 0,
- _vq_quantlist__44u4_p6_0,
- NULL,
- &_vq_auxt__44u4_p6_0,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/uncoupled/_44u4_p7_0.vqh b/lib/books/uncoupled/_44u4_p7_0.vqh
deleted file mode 100644
index 9bfca63e..00000000
--- a/lib/books/uncoupled/_44u4_p7_0.vqh
+++ /dev/null
@@ -1,75 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44u4_p7_0_VQH_
-#define _V__44u4_p7_0_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44u4_p7_0[] = {
- 5,
- 4,
- 6,
- 3,
- 7,
- 2,
- 8,
- 1,
- 9,
- 0,
- 10,
-};
-
-static long _vq_lengthlist__44u4_p7_0[] = {
- 1, 4, 4, 6, 6, 8, 8,10,10,11,11, 4, 6, 6, 7, 7,
- 9, 9,11,10,12,12, 4, 6, 6, 7, 7, 9, 9,10,11,12,
- 12, 6, 8, 7, 9, 9,10,10,12,11,12,12, 6, 7, 8, 9,
- 9,10,10,11,12,12,12, 8, 9, 9,10,10,11,11,12,12,
- 13,13, 8, 9, 9,10,10,11,11,12,12,13,13,10,11,11,
- 12,11,12,12,13,13,14,14,10,11,11,11,12,12,12,13,
- 13,14,14,11,12,12,13,12,13,13,14,14,14,14,11,12,
- 12,12,13,13,13,14,14,14,14,
-};
-
-static float _vq_quantthresh__44u4_p7_0[] = {
- -13.5, -10.5, -7.5, -4.5, -1.5, 1.5, 4.5, 7.5,
- 10.5, 13.5,
-};
-
-static long _vq_quantmap__44u4_p7_0[] = {
- 9, 7, 5, 3, 1, 0, 2, 4,
- 6, 8, 10,
-};
-
-static encode_aux_threshmatch _vq_auxt__44u4_p7_0 = {
- _vq_quantthresh__44u4_p7_0,
- _vq_quantmap__44u4_p7_0,
- 11,
- 11
-};
-
-static static_codebook _44u4_p7_0 = {
- 2, 121,
- _vq_lengthlist__44u4_p7_0,
- 1, -528613376, 1614282752, 4, 0,
- _vq_quantlist__44u4_p7_0,
- NULL,
- &_vq_auxt__44u4_p7_0,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/uncoupled/_44u4_p7_1.vqh b/lib/books/uncoupled/_44u4_p7_1.vqh
deleted file mode 100644
index 59f08c74..00000000
--- a/lib/books/uncoupled/_44u4_p7_1.vqh
+++ /dev/null
@@ -1,63 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44u4_p7_1_VQH_
-#define _V__44u4_p7_1_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44u4_p7_1[] = {
- 1,
- 0,
- 2,
-};
-
-static long _vq_lengthlist__44u4_p7_1[] = {
- 3, 5, 5, 6, 6, 6, 6, 6, 6, 6, 6, 7, 6, 7, 7, 6,
- 7, 7, 6, 7, 6, 6, 7, 7, 6, 7, 7, 5, 6, 7, 6, 7,
- 7, 7, 7, 7, 6, 7, 7, 7, 7, 7, 7, 7, 7, 6, 7, 7,
- 7, 7, 7, 7, 7, 7, 5, 7, 7, 7, 7, 7, 7, 7, 7, 6,
- 7, 7, 7, 7, 7, 7, 7, 7, 6, 7, 7, 7, 7, 7, 7, 7,
- 7,
-};
-
-static float _vq_quantthresh__44u4_p7_1[] = {
- -0.5, 0.5,
-};
-
-static long _vq_quantmap__44u4_p7_1[] = {
- 1, 0, 2,
-};
-
-static encode_aux_threshmatch _vq_auxt__44u4_p7_1 = {
- _vq_quantthresh__44u4_p7_1,
- _vq_quantmap__44u4_p7_1,
- 3,
- 3
-};
-
-static static_codebook _44u4_p7_1 = {
- 4, 81,
- _vq_lengthlist__44u4_p7_1,
- 1, -535822336, 1611661312, 2, 0,
- _vq_quantlist__44u4_p7_1,
- NULL,
- &_vq_auxt__44u4_p7_1,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/uncoupled/_44u4_p8_0.vqh b/lib/books/uncoupled/_44u4_p8_0.vqh
deleted file mode 100644
index 290cdf21..00000000
--- a/lib/books/uncoupled/_44u4_p8_0.vqh
+++ /dev/null
@@ -1,93 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44u4_p8_0_VQH_
-#define _V__44u4_p8_0_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44u4_p8_0[] = {
- 8,
- 7,
- 9,
- 6,
- 10,
- 5,
- 11,
- 4,
- 12,
- 3,
- 13,
- 2,
- 14,
- 1,
- 15,
- 0,
- 16,
-};
-
-static long _vq_lengthlist__44u4_p8_0[] = {
- 1, 4, 4, 7, 7, 8, 8, 8, 8, 9, 9,10,10,11,11,12,
- 12, 4, 6, 6, 8, 8, 9, 9, 9, 9,10,10,11,11,11,11,
- 12,12, 5, 6, 6, 8, 8, 9, 9, 9, 9,10,10,11,11,11,
- 11,12,12, 7, 8, 8, 9, 9,10,10,10,10,11,11,11,11,
- 12,12,12,12, 7, 8, 8, 9, 9, 9,10,10,10,11,11,11,
- 11,12,12,12,12, 8, 9, 9,10,10,10,10,11,11,11,11,
- 12,12,12,12,13,13, 8, 9, 9,10,10,10,10,11,11,11,
- 12,12,12,12,12,13,13, 8, 9, 9,10,10,11,11,12,11,
- 12,12,12,12,13,13,13,13, 8, 9, 9,10,10,11,11,11,
- 12,12,12,13,13,13,13,13,13,10,10,10,11,11,11,11,
- 12,12,13,13,13,13,13,13,14,13, 9,10,10,11,11,11,
- 11,12,12,12,12,13,13,13,13,13,14,10,11,11,12,12,
- 12,12,13,13,13,13,13,13,14,14,14,14,10,11,11,11,
- 12,12,12,12,12,13,13,13,13,14,13,14,14,11,12,12,
- 12,12,13,12,13,13,14,13,14,14,14,14,14,14,11,12,
- 12,12,12,13,13,13,13,13,13,14,14,14,14,14,14,12,
- 12,12,13,13,13,13,13,13,14,14,14,14,14,14,14,14,
- 12,12,12,13,13,13,13,13,13,14,14,14,14,14,14,14,
- 14,
-};
-
-static float _vq_quantthresh__44u4_p8_0[] = {
- -37.5, -32.5, -27.5, -22.5, -17.5, -12.5, -7.5, -2.5,
- 2.5, 7.5, 12.5, 17.5, 22.5, 27.5, 32.5, 37.5,
-};
-
-static long _vq_quantmap__44u4_p8_0[] = {
- 15, 13, 11, 9, 7, 5, 3, 1,
- 0, 2, 4, 6, 8, 10, 12, 14,
- 16,
-};
-
-static encode_aux_threshmatch _vq_auxt__44u4_p8_0 = {
- _vq_quantthresh__44u4_p8_0,
- _vq_quantmap__44u4_p8_0,
- 17,
- 17
-};
-
-static static_codebook _44u4_p8_0 = {
- 2, 289,
- _vq_lengthlist__44u4_p8_0,
- 1, -525074432, 1616117760, 5, 0,
- _vq_quantlist__44u4_p8_0,
- NULL,
- &_vq_auxt__44u4_p8_0,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/uncoupled/_44u4_p8_1.vqh b/lib/books/uncoupled/_44u4_p8_1.vqh
deleted file mode 100644
index d3152263..00000000
--- a/lib/books/uncoupled/_44u4_p8_1.vqh
+++ /dev/null
@@ -1,99 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44u4_p8_1_VQH_
-#define _V__44u4_p8_1_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44u4_p8_1[] = {
- 2,
- 1,
- 3,
- 0,
- 4,
-};
-
-static long _vq_lengthlist__44u4_p8_1[] = {
- 4, 6, 7, 8, 8, 7, 8, 8, 9, 9, 7, 8, 8, 9, 9, 9,
- 9, 9, 9, 9, 9, 9, 9, 9, 9, 7, 8, 8, 9, 9, 8, 9,
- 9, 9, 9, 8, 9, 9, 9, 9, 9, 9, 9,10,10, 9, 9, 9,
- 9,10, 7, 8, 8, 9, 9, 8, 9, 9, 9, 9, 8, 9, 9, 9,
- 9, 9, 9, 9, 9,10, 9, 9, 9,10,10, 9, 9, 9,10,10,
- 9, 9,10,10,10, 9, 9, 9,10,10, 9,10,10,10,10, 9,
- 10,10,10,10, 9, 9, 9,10,10, 9, 9,10,10,10, 9,10,
- 10,10,10,10,10,10,10,10,10,10,10,10,10, 6, 8, 8,
- 9, 9, 8, 9, 9, 9, 9, 8, 9, 9, 9, 9, 9,10,10,10,
- 10, 9,10,10,10,10, 8, 9, 9,10,10, 9, 9, 9,10,10,
- 9, 9, 9,10,10, 9,10,10,10,10,10,10,10,10,10, 8,
- 9, 9,10,10, 9, 9, 9,10,10, 9, 9, 9,10,10, 9,10,
- 10,10,10,10,10,10,10,10, 9,10,10,10,10, 9,10,10,
- 10,10, 9,10,10,10,10,10,10,10,10,10,10,10,10,10,
- 10, 9,10, 9,10,10, 9,10,10,10,10, 9,10,10,10,10,
- 10,10,10,10,10,10,10,10,10,10, 6, 8, 8, 9, 9, 8,
- 9, 9, 9, 9, 8, 9, 9, 9, 9, 9,10,10,10,10, 9,10,
- 9,10,10, 8, 9, 9,10,10, 9, 9, 9,10,10, 9, 9, 9,
- 10,10, 9,10,10,10,10, 9,10,10,10,10, 8, 9, 9,10,
- 10, 9, 9, 9,10,10, 9, 9, 9,10,10, 9,10,10,10,10,
- 10,10,10,10,10, 9,10,10,10,10, 9,10,10,10,10, 9,
- 10,10,10,10,10,10,10,10,10,10,10,10,10,10, 9,10,
- 9,10,10, 9,10,10,10,10, 9,10,10,10,10,10,10,10,
- 10,10,10,10,10,10,10, 8, 9, 9,10,10, 9,10,10,10,
- 10, 9,10,10,10,10,10,10,10,10,10,10,10,10,10,10,
- 9, 9, 9,10,10, 9,10,10,10,10, 9,10,10,10,10,10,
- 10,10,10,10,10,10,10,10,10, 9, 9, 9,10,10, 9,10,
- 10,10,10, 9,10,10,10,10,10,10,10,10,10,10,10,10,
- 10,10, 9,10,10,10,10,10,10,10,10,10,10,10,10,10,
- 10,10,10,10,10,10,10,10,10,10,10, 9,10,10,10,10,
- 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,
- 10,10,10,10, 8, 9, 9,10,10, 9,10,10,10,10, 9,10,
- 9,10,10,10,10,10,10,10,10,10,10,10,10, 9, 9, 9,
- 10,10, 9,10,10,10,10, 9,10,10,10,10,10,10,10,10,
- 10,10,10,10,10,10, 9, 9,10,10,10, 9,10,10,10,10,
- 9,10,10,10,10,10,10,10,10,10,10,10,10,10,10, 9,
- 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,
- 10,10,10,10,10,10,10,10, 9,10,10,10,10,10,10,10,
- 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,
- 10,
-};
-
-static float _vq_quantthresh__44u4_p8_1[] = {
- -1.5, -0.5, 0.5, 1.5,
-};
-
-static long _vq_quantmap__44u4_p8_1[] = {
- 3, 1, 0, 2, 4,
-};
-
-static encode_aux_threshmatch _vq_auxt__44u4_p8_1 = {
- _vq_quantthresh__44u4_p8_1,
- _vq_quantmap__44u4_p8_1,
- 5,
- 5
-};
-
-static static_codebook _44u4_p8_1 = {
- 4, 625,
- _vq_lengthlist__44u4_p8_1,
- 1, -533725184, 1611661312, 3, 0,
- _vq_quantlist__44u4_p8_1,
- NULL,
- &_vq_auxt__44u4_p8_1,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/uncoupled/_44u4_p9_0.vqh b/lib/books/uncoupled/_44u4_p9_0.vqh
deleted file mode 100644
index 91bfd487..00000000
--- a/lib/books/uncoupled/_44u4_p9_0.vqh
+++ /dev/null
@@ -1,65 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44u4_p9_0_VQH_
-#define _V__44u4_p9_0_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44u4_p9_0[] = {
- 3,
- 2,
- 4,
- 1,
- 5,
- 0,
- 6,
-};
-
-static long _vq_lengthlist__44u4_p9_0[] = {
- 1, 2, 3,11,11,11,11, 4,11,10,11,11,11,11, 5, 9,
- 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,
- 11,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,
- 10,
-};
-
-static float _vq_quantthresh__44u4_p9_0[] = {
- -1592.5, -955.5, -318.5, 318.5, 955.5, 1592.5,
-};
-
-static long _vq_quantmap__44u4_p9_0[] = {
- 5, 3, 1, 0, 2, 4, 6,
-};
-
-static encode_aux_threshmatch _vq_auxt__44u4_p9_0 = {
- _vq_quantthresh__44u4_p9_0,
- _vq_quantmap__44u4_p9_0,
- 7,
- 7
-};
-
-static static_codebook _44u4_p9_0 = {
- 2, 49,
- _vq_lengthlist__44u4_p9_0,
- 1, -513942528, 1630791680, 3, 0,
- _vq_quantlist__44u4_p9_0,
- NULL,
- &_vq_auxt__44u4_p9_0,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/uncoupled/_44u4_p9_1.vqh b/lib/books/uncoupled/_44u4_p9_1.vqh
deleted file mode 100644
index 491ed14a..00000000
--- a/lib/books/uncoupled/_44u4_p9_1.vqh
+++ /dev/null
@@ -1,80 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44u4_p9_1_VQH_
-#define _V__44u4_p9_1_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44u4_p9_1[] = {
- 6,
- 5,
- 7,
- 4,
- 8,
- 3,
- 9,
- 2,
- 10,
- 1,
- 11,
- 0,
- 12,
-};
-
-static long _vq_lengthlist__44u4_p9_1[] = {
- 1, 3, 4, 6, 6, 8, 7, 9, 8,10, 9,11,11, 4, 6, 6,
- 8, 8,10, 9,11,10,12,11,12,11, 4, 6, 6, 8, 8, 9,
- 10,10,11,11,12,12,12, 7, 8, 9,10,10,12,11,13,13,
- 13,14,15,14, 7, 8, 9,10,10,12,12,13,13,14,13,14,
- 14, 9,10,11,12,12,14,14,15,15,15,15,19,15, 9,11,
- 11,12,12,13,13,15,14,16,16,17,16,11,12,13,14,13,
- 15,15,16,17,16,16,17,17,11,13,13,14,14,14,15,16,
- 16,16,16,17,16,13,13,14,15,15,15,15,15,17,17,18,
- 19,19,13,14,14,15,15,15,16,15,17,17,16,18,16,14,
- 14,15,15,16,17,16,18,17,17,18,17,19,14,14,15,18,
- 15,16,16,17,16,16,19,16,19,
-};
-
-static float _vq_quantthresh__44u4_p9_1[] = {
- -269.5, -220.5, -171.5, -122.5, -73.5, -24.5, 24.5, 73.5,
- 122.5, 171.5, 220.5, 269.5,
-};
-
-static long _vq_quantmap__44u4_p9_1[] = {
- 11, 9, 7, 5, 3, 1, 0, 2,
- 4, 6, 8, 10, 12,
-};
-
-static encode_aux_threshmatch _vq_auxt__44u4_p9_1 = {
- _vq_quantthresh__44u4_p9_1,
- _vq_quantmap__44u4_p9_1,
- 13,
- 13
-};
-
-static static_codebook _44u4_p9_1 = {
- 2, 169,
- _vq_lengthlist__44u4_p9_1,
- 1, -518889472, 1622704128, 4, 0,
- _vq_quantlist__44u4_p9_1,
- NULL,
- &_vq_auxt__44u4_p9_1,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/uncoupled/_44u4_p9_2.vqh b/lib/books/uncoupled/_44u4_p9_2.vqh
deleted file mode 100644
index 77c532c5..00000000
--- a/lib/books/uncoupled/_44u4_p9_2.vqh
+++ /dev/null
@@ -1,118 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44u4_p9_2_VQH_
-#define _V__44u4_p9_2_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44u4_p9_2[] = {
- 24,
- 23,
- 25,
- 22,
- 26,
- 21,
- 27,
- 20,
- 28,
- 19,
- 29,
- 18,
- 30,
- 17,
- 31,
- 16,
- 32,
- 15,
- 33,
- 14,
- 34,
- 13,
- 35,
- 12,
- 36,
- 11,
- 37,
- 10,
- 38,
- 9,
- 39,
- 8,
- 40,
- 7,
- 41,
- 6,
- 42,
- 5,
- 43,
- 4,
- 44,
- 3,
- 45,
- 2,
- 46,
- 1,
- 47,
- 0,
- 48,
-};
-
-static long _vq_lengthlist__44u4_p9_2[] = {
- 3, 3, 3, 4, 4, 5, 5, 5, 5, 5, 5, 6, 6, 6, 6, 6,
- 6, 6, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
- 8,
-};
-
-static float _vq_quantthresh__44u4_p9_2[] = {
- -23.5, -22.5, -21.5, -20.5, -19.5, -18.5, -17.5, -16.5,
- -15.5, -14.5, -13.5, -12.5, -11.5, -10.5, -9.5, -8.5,
- -7.5, -6.5, -5.5, -4.5, -3.5, -2.5, -1.5, -0.5,
- 0.5, 1.5, 2.5, 3.5, 4.5, 5.5, 6.5, 7.5,
- 8.5, 9.5, 10.5, 11.5, 12.5, 13.5, 14.5, 15.5,
- 16.5, 17.5, 18.5, 19.5, 20.5, 21.5, 22.5, 23.5,
-};
-
-static long _vq_quantmap__44u4_p9_2[] = {
- 47, 45, 43, 41, 39, 37, 35, 33,
- 31, 29, 27, 25, 23, 21, 19, 17,
- 15, 13, 11, 9, 7, 5, 3, 1,
- 0, 2, 4, 6, 8, 10, 12, 14,
- 16, 18, 20, 22, 24, 26, 28, 30,
- 32, 34, 36, 38, 40, 42, 44, 46,
- 48,
-};
-
-static encode_aux_threshmatch _vq_auxt__44u4_p9_2 = {
- _vq_quantthresh__44u4_p9_2,
- _vq_quantmap__44u4_p9_2,
- 49,
- 49
-};
-
-static static_codebook _44u4_p9_2 = {
- 1, 49,
- _vq_lengthlist__44u4_p9_2,
- 1, -526909440, 1611661312, 6, 0,
- _vq_quantlist__44u4_p9_2,
- NULL,
- &_vq_auxt__44u4_p9_2,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/uncoupled/_44u7_p0_r0.vqh b/lib/books/uncoupled/_44u7_p0_r0.vqh
deleted file mode 100644
index 8337effb..00000000
--- a/lib/books/uncoupled/_44u7_p0_r0.vqh
+++ /dev/null
@@ -1,58 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44u7_p0_r0_VQH_
-#define _V__44u7_p0_r0_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44u7_p0_r0[] = {
- 1,
- 0,
- 2,
-};
-
-static long _vq_lengthlist__44u7_p0_r0[] = {
- 1, 3, 3, 4, 5, 5, 4, 5, 5,
-};
-
-static float _vq_quantthresh__44u7_p0_r0[] = {
- -0.16667, 0.16667,
-};
-
-static long _vq_quantmap__44u7_p0_r0[] = {
- 1, 0, 2,
-};
-
-static encode_aux_threshmatch _vq_auxt__44u7_p0_r0 = {
- _vq_quantthresh__44u7_p0_r0,
- _vq_quantmap__44u7_p0_r0,
- 3,
- 3
-};
-
-static static_codebook _44u7_p0_r0 = {
- 2, 9,
- _vq_lengthlist__44u7_p0_r0,
- 1, -539667115, 1607816533, 2, 0,
- _vq_quantlist__44u7_p0_r0,
- NULL,
- &_vq_auxt__44u7_p0_r0,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/uncoupled/_44u7_p0_r1.vqh b/lib/books/uncoupled/_44u7_p0_r1.vqh
deleted file mode 100644
index 1a3bc5f7..00000000
--- a/lib/books/uncoupled/_44u7_p0_r1.vqh
+++ /dev/null
@@ -1,58 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44u7_p0_r1_VQH_
-#define _V__44u7_p0_r1_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44u7_p0_r1[] = {
- 1,
- 0,
- 2,
-};
-
-static long _vq_lengthlist__44u7_p0_r1[] = {
- 1, 3, 3, 4, 5, 5, 4, 5, 5,
-};
-
-static float _vq_quantthresh__44u7_p0_r1[] = {
- -0.055556, 0.055556,
-};
-
-static long _vq_quantmap__44u7_p0_r1[] = {
- 1, 0, 2,
-};
-
-static encode_aux_threshmatch _vq_auxt__44u7_p0_r1 = {
- _vq_quantthresh__44u7_p0_r1,
- _vq_quantmap__44u7_p0_r1,
- 3,
- 3
-};
-
-static static_codebook _44u7_p0_r1 = {
- 2, 9,
- _vq_lengthlist__44u7_p0_r1,
- 1, -543395385, 1604088263, 2, 0,
- _vq_quantlist__44u7_p0_r1,
- NULL,
- &_vq_auxt__44u7_p0_r1,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/uncoupled/_44u7_p1_0.vqh b/lib/books/uncoupled/_44u7_p1_0.vqh
deleted file mode 100644
index 7e11e74e..00000000
--- a/lib/books/uncoupled/_44u7_p1_0.vqh
+++ /dev/null
@@ -1,93 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44u7_p1_0_VQH_
-#define _V__44u7_p1_0_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44u7_p1_0[] = {
- 8,
- 7,
- 9,
- 6,
- 10,
- 5,
- 11,
- 4,
- 12,
- 3,
- 13,
- 2,
- 14,
- 1,
- 15,
- 0,
- 16,
-};
-
-static long _vq_lengthlist__44u7_p1_0[] = {
- 3, 5, 5, 6, 6, 7, 7, 8, 8, 8, 9, 9, 9,10,10,11,
- 11, 5, 6, 5, 6, 6, 7, 7, 8, 8, 9, 9,10, 9,10,10,
- 11,11, 5, 5, 6, 6, 6, 7, 7, 8, 8, 9, 9, 9,10,10,
- 10,11,11, 6, 6, 6, 7, 7, 8, 7, 8, 8, 9, 9,10,10,
- 11,10,11,11, 6, 6, 6, 7, 7, 7, 8, 8, 8, 9, 9,10,
- 10,10,11,11,11, 7, 7, 7, 8, 7, 8, 8, 9, 8, 9, 9,
- 10,10,11,11,12,11, 7, 7, 7, 7, 8, 8, 8, 8, 9, 9,
- 9,10,10,11,11,11,12, 8, 8, 8, 8, 8, 9, 8, 9, 9,
- 10,10,11,10,11,11,12,12, 8, 8, 8, 8, 8, 8, 9, 9,
- 9,10,10,10,11,11,11,12,12, 9, 9, 9, 9, 9, 9, 9,
- 10, 9,10,10,11,11,12,11,13,12, 8, 9, 9, 9, 9, 9,
- 9, 9,10,10,10,11,11,11,12,12,12, 9, 9, 9,10, 9,
- 10,10,11,10,11,11,12,11,12,12,13,12, 9, 9, 9,10,
- 10,10,10,10,11,11,11,11,12,12,12,12,13,10,10,10,
- 11,10,11,11,11,11,12,11,12,12,13,12,13,13,10,10,
- 10,10,11,11,11,11,11,11,12,12,12,12,13,13,13,11,
- 11,11,11,11,12,11,12,12,12,12,13,12,13,13,14,13,
- 11,11,11,11,11,11,12,12,12,12,12,12,13,13,13,13,
- 14,
-};
-
-static float _vq_quantthresh__44u7_p1_0[] = {
- -7.5, -6.5, -5.5, -4.5, -3.5, -2.5, -1.5, -0.5,
- 0.5, 1.5, 2.5, 3.5, 4.5, 5.5, 6.5, 7.5,
-};
-
-static long _vq_quantmap__44u7_p1_0[] = {
- 15, 13, 11, 9, 7, 5, 3, 1,
- 0, 2, 4, 6, 8, 10, 12, 14,
- 16,
-};
-
-static encode_aux_threshmatch _vq_auxt__44u7_p1_0 = {
- _vq_quantthresh__44u7_p1_0,
- _vq_quantmap__44u7_p1_0,
- 17,
- 17
-};
-
-static static_codebook _44u7_p1_0 = {
- 2, 289,
- _vq_lengthlist__44u7_p1_0,
- 1, -529530880, 1611661312, 5, 0,
- _vq_quantlist__44u7_p1_0,
- NULL,
- &_vq_auxt__44u7_p1_0,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/uncoupled/_44u7_p1_r0.vqh b/lib/books/uncoupled/_44u7_p1_r0.vqh
deleted file mode 100644
index cadb31d3..00000000
--- a/lib/books/uncoupled/_44u7_p1_r0.vqh
+++ /dev/null
@@ -1,58 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44u7_p1_r0_VQH_
-#define _V__44u7_p1_r0_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44u7_p1_r0[] = {
- 1,
- 0,
- 2,
-};
-
-static long _vq_lengthlist__44u7_p1_r0[] = {
- 3, 3, 3, 3, 4, 3, 3, 3, 4,
-};
-
-static float _vq_quantthresh__44u7_p1_r0[] = {
- -0.16667, 0.16667,
-};
-
-static long _vq_quantmap__44u7_p1_r0[] = {
- 1, 0, 2,
-};
-
-static encode_aux_threshmatch _vq_auxt__44u7_p1_r0 = {
- _vq_quantthresh__44u7_p1_r0,
- _vq_quantmap__44u7_p1_r0,
- 3,
- 3
-};
-
-static static_codebook _44u7_p1_r0 = {
- 2, 9,
- _vq_lengthlist__44u7_p1_r0,
- 1, -539667115, 1607816533, 2, 0,
- _vq_quantlist__44u7_p1_r0,
- NULL,
- &_vq_auxt__44u7_p1_r0,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/uncoupled/_44u7_p1_r1.vqh b/lib/books/uncoupled/_44u7_p1_r1.vqh
deleted file mode 100644
index a3fa3f37..00000000
--- a/lib/books/uncoupled/_44u7_p1_r1.vqh
+++ /dev/null
@@ -1,58 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44u7_p1_r1_VQH_
-#define _V__44u7_p1_r1_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44u7_p1_r1[] = {
- 1,
- 0,
- 2,
-};
-
-static long _vq_lengthlist__44u7_p1_r1[] = {
- 3, 3, 3, 3, 4, 3, 3, 3, 4,
-};
-
-static float _vq_quantthresh__44u7_p1_r1[] = {
- -0.055556, 0.055556,
-};
-
-static long _vq_quantmap__44u7_p1_r1[] = {
- 1, 0, 2,
-};
-
-static encode_aux_threshmatch _vq_auxt__44u7_p1_r1 = {
- _vq_quantthresh__44u7_p1_r1,
- _vq_quantmap__44u7_p1_r1,
- 3,
- 3
-};
-
-static static_codebook _44u7_p1_r1 = {
- 2, 9,
- _vq_lengthlist__44u7_p1_r1,
- 1, -543395385, 1604088263, 2, 0,
- _vq_quantlist__44u7_p1_r1,
- NULL,
- &_vq_auxt__44u7_p1_r1,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/uncoupled/_44u7_p2_0.vqh b/lib/books/uncoupled/_44u7_p2_0.vqh
deleted file mode 100644
index 06ca3626..00000000
--- a/lib/books/uncoupled/_44u7_p2_0.vqh
+++ /dev/null
@@ -1,93 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44u7_p2_0_VQH_
-#define _V__44u7_p2_0_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44u7_p2_0[] = {
- 8,
- 7,
- 9,
- 6,
- 10,
- 5,
- 11,
- 4,
- 12,
- 3,
- 13,
- 2,
- 14,
- 1,
- 15,
- 0,
- 16,
-};
-
-static long _vq_lengthlist__44u7_p2_0[] = {
- 2, 4, 4, 6, 6, 7, 7, 9, 9,10,10,10,10,11,11,12,
- 12, 4, 5, 5, 7, 6, 8, 8, 9, 9,10,10,11,11,12,11,
- 12,12, 4, 5, 5, 6, 7, 8, 8, 9, 9,10,10,11,11,11,
- 12,12,12, 6, 7, 6, 8, 7, 9, 8,10,10,10,10,11,11,
- 12,12,13,12, 6, 6, 7, 7, 8, 9, 9, 9,10,10,10,11,
- 11,12,12,12,12, 7, 8, 8, 9, 8, 9, 9,10,10,11,11,
- 12,12,12,12,13,13, 7, 8, 8, 9, 9, 9, 9,10,10,11,
- 11,12,12,12,12,13,13, 9, 9, 9,10,10,10,10,11,11,
- 12,11,12,12,13,13,13,13, 9, 9, 9, 9,10,10,10,11,
- 11,11,12,12,12,13,13,13,13,10,10,10,11,10,11,11,
- 12,11,12,12,13,12,13,13,14,14,10,10,10,10,11,11,
- 11,11,12,12,12,13,13,13,13,14,14,10,11,11,11,11,
- 12,12,12,12,13,13,13,13,14,14,14,14,10,11,11,11,
- 11,12,12,12,12,13,13,13,13,14,14,14,14,11,12,12,
- 12,12,12,12,13,13,13,13,14,14,14,14,15,14,11,12,
- 12,12,12,12,12,13,13,13,13,13,14,14,14,14,14,12,
- 12,12,13,13,13,13,13,13,14,13,14,14,14,14,15,15,
- 12,12,12,13,13,13,13,13,13,14,14,14,14,14,14,14,
- 15,
-};
-
-static float _vq_quantthresh__44u7_p2_0[] = {
- -37.5, -32.5, -27.5, -22.5, -17.5, -12.5, -7.5, -2.5,
- 2.5, 7.5, 12.5, 17.5, 22.5, 27.5, 32.5, 37.5,
-};
-
-static long _vq_quantmap__44u7_p2_0[] = {
- 15, 13, 11, 9, 7, 5, 3, 1,
- 0, 2, 4, 6, 8, 10, 12, 14,
- 16,
-};
-
-static encode_aux_threshmatch _vq_auxt__44u7_p2_0 = {
- _vq_quantthresh__44u7_p2_0,
- _vq_quantmap__44u7_p2_0,
- 17,
- 17
-};
-
-static static_codebook _44u7_p2_0 = {
- 2, 289,
- _vq_lengthlist__44u7_p2_0,
- 1, -525074432, 1616117760, 5, 0,
- _vq_quantlist__44u7_p2_0,
- NULL,
- &_vq_auxt__44u7_p2_0,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/uncoupled/_44u7_p2_1.vqh b/lib/books/uncoupled/_44u7_p2_1.vqh
deleted file mode 100644
index de4412f3..00000000
--- a/lib/books/uncoupled/_44u7_p2_1.vqh
+++ /dev/null
@@ -1,99 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44u7_p2_1_VQH_
-#define _V__44u7_p2_1_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44u7_p2_1[] = {
- 2,
- 1,
- 3,
- 0,
- 4,
-};
-
-static long _vq_lengthlist__44u7_p2_1[] = {
- 5, 8, 8, 9, 9, 8, 9, 9, 9, 9, 8, 9, 9, 9, 9, 9,
- 9, 9, 9, 9, 9, 9, 9, 9, 9, 8, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9,10,10, 9, 9, 9,10,10, 9, 9, 9,10,10, 9,
- 9, 9,10,10, 9, 9, 9,10, 9, 9, 9, 9,10,10, 9, 9,
- 9,10,10, 9, 9,10,10,10, 9,10, 9,10,10, 8, 9, 9,
- 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 9, 9, 9, 9, 9,10,10, 9, 9, 9,10,10, 9,
- 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9,10,10, 9, 9, 9,10,10, 9, 9, 9,10,10, 9, 9,10,
- 10,10, 9,10, 9,10,10, 9,10,10,10,10,10,10,10,10,
- 10, 9, 9, 9,10,10, 9, 9, 9,10,10, 9, 9, 9,10,10,
- 10,10,10,10,10, 9,10,10,10,10, 8, 9, 9, 9, 9, 9,
- 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 9, 9,10,10, 9, 9, 9,10,10, 9, 9, 9, 9,
- 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,10,10,
- 9, 9, 9,10,10, 9, 9, 9,10,10, 9, 9, 9,10,10, 9,
- 9, 9,10,10, 9,10,10,10,10, 9,10,10,10,10, 9, 9,
- 9,10,10, 9, 9, 9,10,10, 9, 9,10,10,10, 9,10,10,
- 10,10, 9,10,10,10,10, 9, 9, 9, 9,10, 9, 9, 9,10,
- 10, 9, 9, 9,10,10,10,10,10,10,10, 9,10,10,10,10,
- 9, 9, 9,10,10, 9, 9, 9,10,10, 9, 9, 9,10,10,10,
- 10,10,10,10,10,10,10,10,10, 9, 9, 9,10,10, 9, 9,
- 9,10,10, 9, 9, 9,10,10,10,10,10,10,10,10,10,10,
- 10,10, 9, 9,10,10,10, 9,10,10,10,10, 9,10,10,10,
- 10,10,10,10,10,10,10,10,10,10,10, 9,10,10,10,10,
- 9,10,10,10,10, 9,10,10,10,10,10,10,10,10,10,10,
- 10,10,10,10, 9, 9, 9,10,10, 9, 9, 9,10,10, 9, 9,
- 9,10,10,10,10,10,10,10,10,10,10,10,10, 9, 9, 9,
- 10,10, 9, 9, 9,10,10, 9, 9, 9,10,10,10,10,10,10,
- 10,10,10,10,10,10, 9, 9, 9,10,10, 9, 9, 9,10,10,
- 9, 9, 9,10,10, 9,10,10,10,10,10,10,10,10,10, 9,
- 9, 9,10,10, 9,10,10,10,10,10,10,10,10,10,10,10,
- 10,10,10,10,10,10,10,10, 9, 9, 9,10,10, 9,10, 9,
- 10,10, 9,10,10,10,10,10,10,10,10,10,10,10,10,10,
- 10,
-};
-
-static float _vq_quantthresh__44u7_p2_1[] = {
- -1.5, -0.5, 0.5, 1.5,
-};
-
-static long _vq_quantmap__44u7_p2_1[] = {
- 3, 1, 0, 2, 4,
-};
-
-static encode_aux_threshmatch _vq_auxt__44u7_p2_1 = {
- _vq_quantthresh__44u7_p2_1,
- _vq_quantmap__44u7_p2_1,
- 5,
- 5
-};
-
-static static_codebook _44u7_p2_1 = {
- 4, 625,
- _vq_lengthlist__44u7_p2_1,
- 1, -533725184, 1611661312, 3, 0,
- _vq_quantlist__44u7_p2_1,
- NULL,
- &_vq_auxt__44u7_p2_1,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/uncoupled/_44u7_p3_0.vqh b/lib/books/uncoupled/_44u7_p3_0.vqh
deleted file mode 100644
index 5d1270a0..00000000
--- a/lib/books/uncoupled/_44u7_p3_0.vqh
+++ /dev/null
@@ -1,63 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44u7_p3_0_VQH_
-#define _V__44u7_p3_0_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44u7_p3_0[] = {
- 1,
- 0,
- 2,
-};
-
-static long _vq_lengthlist__44u7_p3_0[] = {
- 1, 5, 5, 5, 7, 7, 5, 7, 7, 5, 7, 7, 7, 9, 9, 7,
- 9, 9, 5, 7, 7, 7, 9, 9, 7, 9, 9, 5, 7, 7, 8, 9,
- 9, 7, 9, 9, 7, 9, 9, 9,10,11, 9,11,11, 7, 9, 9,
- 9,11, 9, 9,11,11, 5, 7, 7, 8, 9, 9, 8, 9, 9, 7,
- 9, 9, 9,11,11, 9, 9,11, 7, 9, 9, 9,11,11, 9,11,
- 10,
-};
-
-static float _vq_quantthresh__44u7_p3_0[] = {
- -0.5, 0.5,
-};
-
-static long _vq_quantmap__44u7_p3_0[] = {
- 1, 0, 2,
-};
-
-static encode_aux_threshmatch _vq_auxt__44u7_p3_0 = {
- _vq_quantthresh__44u7_p3_0,
- _vq_quantmap__44u7_p3_0,
- 3,
- 3
-};
-
-static static_codebook _44u7_p3_0 = {
- 4, 81,
- _vq_lengthlist__44u7_p3_0,
- 1, -535822336, 1611661312, 2, 0,
- _vq_quantlist__44u7_p3_0,
- NULL,
- &_vq_auxt__44u7_p3_0,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/uncoupled/_44u7_p4_0.vqh b/lib/books/uncoupled/_44u7_p4_0.vqh
deleted file mode 100644
index c56368e3..00000000
--- a/lib/books/uncoupled/_44u7_p4_0.vqh
+++ /dev/null
@@ -1,99 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44u7_p4_0_VQH_
-#define _V__44u7_p4_0_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44u7_p4_0[] = {
- 2,
- 1,
- 3,
- 0,
- 4,
-};
-
-static long _vq_lengthlist__44u7_p4_0[] = {
- 3, 5, 5, 8, 8, 6, 7, 7, 9, 9, 5, 7, 7, 9, 9, 8,
- 9, 9,11,11, 8, 9, 9,11,11, 6, 7, 7, 9, 9, 7, 8,
- 8,10,10, 7, 8, 8, 9,10, 9,10,10,11,12, 9,10,10,
- 11,12, 6, 7, 7, 9, 9, 7, 8, 8,10,10, 7, 8, 8,10,
- 10, 9,10, 9,12,11, 9,10,10,12,11, 9, 9, 9,11,11,
- 9,10,10,12,12, 9,10,10,12,12,11,12,12,13,13,11,
- 11,12,13,13, 8, 9, 9,11,12, 9,10,10,12,12, 9,10,
- 10,12,12,11,12,11,13,13,11,12,12,13,13, 5, 7, 7,
- 9, 9, 7, 8, 8,10,10, 7, 8, 8,10,10, 9,10,10,12,
- 12, 9,10,10,11,12, 7, 8, 8,10,10, 8, 9, 9,11,11,
- 8, 9, 9,11,11,10,10,11,12,12,10,10,11,12,12, 7,
- 8, 8,10,10, 8, 9, 8,11,10, 8, 9, 9,11,11,10,11,
- 10,12,11,10,11,11,12,12, 9,10,10,12,12,10,11,11,
- 12,13,10,11,11,12,12,12,12,12,13,14,12,12,12,13,
- 14, 9,10,10,12,12,10,11,10,12,12,10,11,11,12,13,
- 11,12,11,14,12,12,13,12,14,14, 5, 7, 7, 9, 9, 7,
- 8, 8,10,10, 7, 8, 8,10,10, 9,10,10,12,12, 9,10,
- 10,12,12, 7, 8, 8,10,10, 8, 9, 9,11,10, 8, 8, 9,
- 10,11,10,11,11,12,12,10,10,11,11,13, 7, 8, 8,10,
- 10, 8, 9, 9,11,11, 8, 9, 9,11,11,10,11,10,12,12,
- 10,11,11,12,12, 9,10,10,12,12,10,11,11,13,12,10,
- 10,11,12,12,12,13,13,14,14,11,11,12,12,14, 9,10,
- 10,12,12,10,11,11,12,12,10,11,11,13,12,12,12,12,
- 14,14,12,13,12,14,13, 8, 9, 9,11,11, 9,10,10,12,
- 12, 9,10,10,12,12,12,12,12,14,13,11,12,12,13,13,
- 9,10,10,12,12,10,11,11,12,13,10,11,11,13,12,12,
- 13,13,14,14,12,12,13,14,14, 9,10,10,12,12,10,11,
- 10,13,12,10,11,11,12,13,12,13,12,14,13,12,12,13,
- 14,14,11,12,12,14,13,12,12,12,14,14,12,13,13,14,
- 14,13,13,14,13,15,14,14,14,15,15,11,12,12,13,13,
- 11,12,11,14,13,12,12,13,14,14,13,13,12,15,13,14,
- 14,14,15,15, 8, 9, 9,11,11, 9,10,10,12,12, 9,10,
- 10,12,12,11,12,12,13,13,12,12,12,13,13, 9,10,10,
- 12,12,10,11,11,13,12,10,10,11,12,13,12,13,12,14,
- 14,12,12,13,13,14, 9,10,10,12,12,10,11,11,12,13,
- 10,11,11,12,12,12,12,12,14,14,12,13,12,14,13,11,
- 12,12,13,13,12,12,12,14,14,11,11,12,13,14,13,14,
- 14,15,15,13,12,14,12,15,11,12,12,13,14,12,13,13,
- 14,14,12,12,12,14,14,13,14,14,15,15,13,14,13,15,
- 13,
-};
-
-static float _vq_quantthresh__44u7_p4_0[] = {
- -1.5, -0.5, 0.5, 1.5,
-};
-
-static long _vq_quantmap__44u7_p4_0[] = {
- 3, 1, 0, 2, 4,
-};
-
-static encode_aux_threshmatch _vq_auxt__44u7_p4_0 = {
- _vq_quantthresh__44u7_p4_0,
- _vq_quantmap__44u7_p4_0,
- 5,
- 5
-};
-
-static static_codebook _44u7_p4_0 = {
- 4, 625,
- _vq_lengthlist__44u7_p4_0,
- 1, -533725184, 1611661312, 3, 0,
- _vq_quantlist__44u7_p4_0,
- NULL,
- &_vq_auxt__44u7_p4_0,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/uncoupled/_44u7_p5_0.vqh b/lib/books/uncoupled/_44u7_p5_0.vqh
deleted file mode 100644
index fd9f0d22..00000000
--- a/lib/books/uncoupled/_44u7_p5_0.vqh
+++ /dev/null
@@ -1,70 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44u7_p5_0_VQH_
-#define _V__44u7_p5_0_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44u7_p5_0[] = {
- 4,
- 3,
- 5,
- 2,
- 6,
- 1,
- 7,
- 0,
- 8,
-};
-
-static long _vq_lengthlist__44u7_p5_0[] = {
- 3, 4, 4, 5, 5, 7, 7, 8, 8, 4, 5, 5, 6, 6, 7, 7,
- 9, 8, 4, 5, 5, 6, 6, 7, 7, 8, 9, 5, 6, 6, 7, 6,
- 8, 7, 9, 9, 5, 6, 6, 6, 7, 8, 8, 9, 9, 7, 7, 7,
- 8, 8, 9, 8,10,10, 7, 7, 7, 8, 8, 8, 9,10,10, 8,
- 9, 9, 9, 9,10,10,11,11, 8, 8, 9, 9, 9,10,10,11,
- 11,
-};
-
-static float _vq_quantthresh__44u7_p5_0[] = {
- -3.5, -2.5, -1.5, -0.5, 0.5, 1.5, 2.5, 3.5,
-};
-
-static long _vq_quantmap__44u7_p5_0[] = {
- 7, 5, 3, 1, 0, 2, 4, 6,
- 8,
-};
-
-static encode_aux_threshmatch _vq_auxt__44u7_p5_0 = {
- _vq_quantthresh__44u7_p5_0,
- _vq_quantmap__44u7_p5_0,
- 9,
- 9
-};
-
-static static_codebook _44u7_p5_0 = {
- 2, 81,
- _vq_lengthlist__44u7_p5_0,
- 1, -531628032, 1611661312, 4, 0,
- _vq_quantlist__44u7_p5_0,
- NULL,
- &_vq_auxt__44u7_p5_0,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/uncoupled/_44u7_p6_0.vqh b/lib/books/uncoupled/_44u7_p6_0.vqh
deleted file mode 100644
index fce20bba..00000000
--- a/lib/books/uncoupled/_44u7_p6_0.vqh
+++ /dev/null
@@ -1,93 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44u7_p6_0_VQH_
-#define _V__44u7_p6_0_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44u7_p6_0[] = {
- 8,
- 7,
- 9,
- 6,
- 10,
- 5,
- 11,
- 4,
- 12,
- 3,
- 13,
- 2,
- 14,
- 1,
- 15,
- 0,
- 16,
-};
-
-static long _vq_lengthlist__44u7_p6_0[] = {
- 4, 5, 5, 6, 6, 7, 7, 8, 8, 8, 8, 9, 9,10,11,11,
- 11, 5, 5, 5, 6, 6, 7, 7, 8, 8, 8, 8,10, 9,11,11,
- 12,12, 5, 5, 5, 6, 6, 7, 7, 8, 8, 8, 8, 9,10,11,
- 11,12,12, 6, 6, 6, 7, 6, 7, 7, 8, 8, 9, 9,10,10,
- 11,11,12,12, 6, 6, 6, 6, 7, 7, 7, 8, 8, 9, 9,10,
- 10,11,11,12,12, 7, 7, 7, 7, 7, 8, 8, 9, 8, 9, 9,
- 10,10,11,11,12,12, 7, 7, 7, 7, 7, 8, 8, 8, 9, 9,
- 9,10,10,11,11,12,12, 8, 8, 8, 8, 8, 9, 8, 9, 9,
- 10, 9,11,10,12,11,12,12, 8, 8, 8, 8, 8, 8, 9, 9,
- 9,10,10,10,11,11,12,12,12, 8, 8, 8, 9, 9, 9, 9,
- 10, 9,10,10,11,11,12,12,13,12, 8, 8, 8, 9, 9, 9,
- 9,10,10,10,10,11,11,12,12,13,13, 9,10, 9,10,10,
- 10,10,11,10,11,11,12,11,12,12,13,13, 9, 9,10,10,
- 10,10,10,10,11,11,11,11,12,12,12,13,13,11,11,11,
- 11,11,11,11,12,11,12,12,12,12,13,13,14,13,11,11,
- 11,11,11,11,11,11,12,12,12,12,12,13,13,13,14,12,
- 12,12,12,12,12,12,12,12,13,13,13,13,14,13,14,14,
- 12,12,12,12,12,12,12,12,13,13,13,13,13,13,14,14,
- 14,
-};
-
-static float _vq_quantthresh__44u7_p6_0[] = {
- -7.5, -6.5, -5.5, -4.5, -3.5, -2.5, -1.5, -0.5,
- 0.5, 1.5, 2.5, 3.5, 4.5, 5.5, 6.5, 7.5,
-};
-
-static long _vq_quantmap__44u7_p6_0[] = {
- 15, 13, 11, 9, 7, 5, 3, 1,
- 0, 2, 4, 6, 8, 10, 12, 14,
- 16,
-};
-
-static encode_aux_threshmatch _vq_auxt__44u7_p6_0 = {
- _vq_quantthresh__44u7_p6_0,
- _vq_quantmap__44u7_p6_0,
- 17,
- 17
-};
-
-static static_codebook _44u7_p6_0 = {
- 2, 289,
- _vq_lengthlist__44u7_p6_0,
- 1, -529530880, 1611661312, 5, 0,
- _vq_quantlist__44u7_p6_0,
- NULL,
- &_vq_auxt__44u7_p6_0,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/uncoupled/_44u7_p7_0.vqh b/lib/books/uncoupled/_44u7_p7_0.vqh
deleted file mode 100644
index a510b4cc..00000000
--- a/lib/books/uncoupled/_44u7_p7_0.vqh
+++ /dev/null
@@ -1,75 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44u7_p7_0_VQH_
-#define _V__44u7_p7_0_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44u7_p7_0[] = {
- 5,
- 4,
- 6,
- 3,
- 7,
- 2,
- 8,
- 1,
- 9,
- 0,
- 10,
-};
-
-static long _vq_lengthlist__44u7_p7_0[] = {
- 3, 4, 4, 6, 5, 7, 7, 8, 8,10,10, 4, 5, 4, 6, 6,
- 7, 7, 9, 8,10,10, 4, 5, 5, 6, 6, 7, 7, 8, 9,10,
- 10, 6, 6, 6, 7, 7, 8, 8, 9, 9,10,10, 6, 6, 6, 7,
- 7, 8, 8, 9, 9,10,10, 7, 7, 7, 8, 8, 9, 8,10, 9,
- 11,11, 7, 7, 7, 8, 8, 8, 9,10,10,11,11, 8, 9, 8,
- 9, 9,10, 9,10,10,11,11, 8, 8, 9, 9, 9, 9,10,10,
- 10,11,11,10,10,10,10,10,11,11,11,11,12,12,10,10,
- 10,10,10,11,11,11,11,12,12,
-};
-
-static float _vq_quantthresh__44u7_p7_0[] = {
- -13.5, -10.5, -7.5, -4.5, -1.5, 1.5, 4.5, 7.5,
- 10.5, 13.5,
-};
-
-static long _vq_quantmap__44u7_p7_0[] = {
- 9, 7, 5, 3, 1, 0, 2, 4,
- 6, 8, 10,
-};
-
-static encode_aux_threshmatch _vq_auxt__44u7_p7_0 = {
- _vq_quantthresh__44u7_p7_0,
- _vq_quantmap__44u7_p7_0,
- 11,
- 11
-};
-
-static static_codebook _44u7_p7_0 = {
- 2, 121,
- _vq_lengthlist__44u7_p7_0,
- 1, -528613376, 1614282752, 4, 0,
- _vq_quantlist__44u7_p7_0,
- NULL,
- &_vq_auxt__44u7_p7_0,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/uncoupled/_44u7_p7_1.vqh b/lib/books/uncoupled/_44u7_p7_1.vqh
deleted file mode 100644
index e37b82ec..00000000
--- a/lib/books/uncoupled/_44u7_p7_1.vqh
+++ /dev/null
@@ -1,63 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44u7_p7_1_VQH_
-#define _V__44u7_p7_1_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44u7_p7_1[] = {
- 1,
- 0,
- 2,
-};
-
-static long _vq_lengthlist__44u7_p7_1[] = {
- 5, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 6,
- 6, 7, 6, 6, 6, 6, 7, 6, 6, 6, 6, 6, 6, 6, 6, 7,
- 7, 6, 7, 7, 6, 6, 7, 6, 7, 7, 6, 7, 7, 6, 7, 7,
- 6, 7, 7, 6, 7, 7, 6, 6, 6, 6, 7, 7, 6, 7, 7, 6,
- 7, 7, 7, 7, 7, 6, 7, 7, 6, 7, 7, 6, 7, 7, 7, 7,
- 7,
-};
-
-static float _vq_quantthresh__44u7_p7_1[] = {
- -0.5, 0.5,
-};
-
-static long _vq_quantmap__44u7_p7_1[] = {
- 1, 0, 2,
-};
-
-static encode_aux_threshmatch _vq_auxt__44u7_p7_1 = {
- _vq_quantthresh__44u7_p7_1,
- _vq_quantmap__44u7_p7_1,
- 3,
- 3
-};
-
-static static_codebook _44u7_p7_1 = {
- 4, 81,
- _vq_lengthlist__44u7_p7_1,
- 1, -535822336, 1611661312, 2, 0,
- _vq_quantlist__44u7_p7_1,
- NULL,
- &_vq_auxt__44u7_p7_1,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/uncoupled/_44u7_p8_0.vqh b/lib/books/uncoupled/_44u7_p8_0.vqh
deleted file mode 100644
index af006a31..00000000
--- a/lib/books/uncoupled/_44u7_p8_0.vqh
+++ /dev/null
@@ -1,93 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44u7_p8_0_VQH_
-#define _V__44u7_p8_0_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44u7_p8_0[] = {
- 8,
- 7,
- 9,
- 6,
- 10,
- 5,
- 11,
- 4,
- 12,
- 3,
- 13,
- 2,
- 14,
- 1,
- 15,
- 0,
- 16,
-};
-
-static long _vq_lengthlist__44u7_p8_0[] = {
- 2, 4, 4, 6, 6, 7, 7, 9, 9,10,10,11,11,11,11,12,
- 12, 4, 5, 5, 7, 6, 8, 8, 9, 9,10,10,11,11,12,11,
- 12,12, 4, 5, 5, 6, 7, 8, 8, 9, 9,10,10,11,11,11,
- 12,12,12, 6, 7, 7, 7, 7, 8, 8,10, 9,11,10,11,11,
- 12,12,13,13, 6, 7, 7, 7, 7, 8, 8, 9,10,10,11,11,
- 11,12,12,13,13, 7, 8, 8, 8, 8, 9, 9,10,10,11,11,
- 12,12,12,12,13,13, 8, 8, 8, 8, 8, 9, 9,10,10,11,
- 11,12,12,12,12,13,13, 9, 9, 9,10, 9,10,10,11,11,
- 11,11,12,12,13,12,13,13, 9, 9, 9, 9,10,10,10,11,
- 11,11,11,12,12,13,13,13,13,10,10,10,11,10,11,11,
- 11,11,12,12,13,13,13,13,14,14,10,10,10,10,11,11,
- 11,11,11,12,12,13,13,13,13,14,14,11,11,11,11,11,
- 12,12,12,12,13,13,13,13,13,13,14,14,11,11,11,11,
- 11,12,12,12,12,13,13,13,13,13,13,14,14,11,12,12,
- 12,12,12,12,13,13,13,13,13,13,14,14,14,14,11,12,
- 12,12,12,12,12,13,13,13,13,13,13,14,14,14,14,12,
- 12,12,13,13,13,13,13,13,14,14,14,14,14,14,15,15,
- 12,12,12,13,13,13,13,13,13,14,14,14,14,14,14,15,
- 15,
-};
-
-static float _vq_quantthresh__44u7_p8_0[] = {
- -52.5, -45.5, -38.5, -31.5, -24.5, -17.5, -10.5, -3.5,
- 3.5, 10.5, 17.5, 24.5, 31.5, 38.5, 45.5, 52.5,
-};
-
-static long _vq_quantmap__44u7_p8_0[] = {
- 15, 13, 11, 9, 7, 5, 3, 1,
- 0, 2, 4, 6, 8, 10, 12, 14,
- 16,
-};
-
-static encode_aux_threshmatch _vq_auxt__44u7_p8_0 = {
- _vq_quantthresh__44u7_p8_0,
- _vq_quantmap__44u7_p8_0,
- 17,
- 17
-};
-
-static static_codebook _44u7_p8_0 = {
- 2, 289,
- _vq_lengthlist__44u7_p8_0,
- 1, -524550144, 1616642048, 5, 0,
- _vq_quantlist__44u7_p8_0,
- NULL,
- &_vq_auxt__44u7_p8_0,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/uncoupled/_44u7_p8_1.vqh b/lib/books/uncoupled/_44u7_p8_1.vqh
deleted file mode 100644
index 54ea53de..00000000
--- a/lib/books/uncoupled/_44u7_p8_1.vqh
+++ /dev/null
@@ -1,65 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44u7_p8_1_VQH_
-#define _V__44u7_p8_1_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44u7_p8_1[] = {
- 3,
- 2,
- 4,
- 1,
- 5,
- 0,
- 6,
-};
-
-static long _vq_lengthlist__44u7_p8_1[] = {
- 4, 5, 5, 5, 5, 6, 6, 5, 5, 5, 6, 6, 6, 6, 5, 5,
- 5, 6, 6, 6, 6, 5, 6, 6, 6, 6, 6, 6, 5, 6, 6, 6,
- 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,
- 6,
-};
-
-static float _vq_quantthresh__44u7_p8_1[] = {
- -2.5, -1.5, -0.5, 0.5, 1.5, 2.5,
-};
-
-static long _vq_quantmap__44u7_p8_1[] = {
- 5, 3, 1, 0, 2, 4, 6,
-};
-
-static encode_aux_threshmatch _vq_auxt__44u7_p8_1 = {
- _vq_quantthresh__44u7_p8_1,
- _vq_quantmap__44u7_p8_1,
- 7,
- 7
-};
-
-static static_codebook _44u7_p8_1 = {
- 2, 49,
- _vq_lengthlist__44u7_p8_1,
- 1, -533200896, 1611661312, 3, 0,
- _vq_quantlist__44u7_p8_1,
- NULL,
- &_vq_auxt__44u7_p8_1,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/uncoupled/_44u7_p9_0.vqh b/lib/books/uncoupled/_44u7_p9_0.vqh
deleted file mode 100644
index e0481652..00000000
--- a/lib/books/uncoupled/_44u7_p9_0.vqh
+++ /dev/null
@@ -1,86 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44u7_p9_0_VQH_
-#define _V__44u7_p9_0_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44u7_p9_0[] = {
- 7,
- 6,
- 8,
- 5,
- 9,
- 4,
- 10,
- 3,
- 11,
- 2,
- 12,
- 1,
- 13,
- 0,
- 14,
-};
-
-static long _vq_lengthlist__44u7_p9_0[] = {
- 1, 3, 3, 5, 6, 9, 7,12,10,15,15,15,15,15,15, 4,
- 7, 6, 9, 9,12,12,14,14,15,15,15,15,15,15, 4, 7,
- 7, 9, 9,12,13,14,14,15,15,15,15,15,15, 9,11,11,
- 13,11,15,15,15,15,15,15,15,15,15,15, 8,10,11,11,
- 14,15,15,15,15,15,15,15,15,15,15,11,12,12,15,15,
- 15,15,15,15,15,15,15,15,15,15,10,13,12,15,15,15,
- 15,15,15,15,15,15,15,15,15,12,14,15,15,15,15,15,
- 15,15,15,15,15,15,15,15,11,15,15,15,15,15,15,15,
- 15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,
- 15,15,15,15,15,15,14,15,15,15,15,15,15,15,15,15,
- 15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,
- 15,15,15,15,15,15,15,15,15,15,15,15,15,14,14,14,
- 14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,
- 14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,
- 14,
-};
-
-static float _vq_quantthresh__44u7_p9_0[] = {
- -12110, -10246, -8383.5, -6520.5, -4657.5, -2794.5, -931.5, 931.5,
- 2794.5, 4657.5, 6520.5, 8383.5, 10246, 12110,
-};
-
-static long _vq_quantmap__44u7_p9_0[] = {
- 13, 11, 9, 7, 5, 3, 1, 0,
- 2, 4, 6, 8, 10, 12, 14,
-};
-
-static encode_aux_threshmatch _vq_auxt__44u7_p9_0 = {
- _vq_quantthresh__44u7_p9_0,
- _vq_quantmap__44u7_p9_0,
- 15,
- 15
-};
-
-static static_codebook _44u7_p9_0 = {
- 2, 225,
- _vq_lengthlist__44u7_p9_0,
- 1, -507938688, 1633491968, 4, 0,
- _vq_quantlist__44u7_p9_0,
- NULL,
- &_vq_auxt__44u7_p9_0,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/uncoupled/_44u7_p9_1.vqh b/lib/books/uncoupled/_44u7_p9_1.vqh
deleted file mode 100644
index 5549ed99..00000000
--- a/lib/books/uncoupled/_44u7_p9_1.vqh
+++ /dev/null
@@ -1,115 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44u7_p9_1_VQH_
-#define _V__44u7_p9_1_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44u7_p9_1[] = {
- 11,
- 10,
- 12,
- 9,
- 13,
- 8,
- 14,
- 7,
- 15,
- 6,
- 16,
- 5,
- 17,
- 4,
- 18,
- 3,
- 19,
- 2,
- 20,
- 1,
- 21,
- 0,
- 22,
-};
-
-static long _vq_lengthlist__44u7_p9_1[] = {
- 1, 4, 4, 7, 7, 8, 8,10,10,11,11,12,12,13,13,13,
- 13,13,14,14,14,14,14, 4, 5, 5, 8, 8,10, 9,11,10,
- 11,11,12,12,13,12,13,13,14,14,14,14,14,14, 4, 5,
- 6, 8, 8, 9, 9,10,11,11,12,12,12,13,13,13,13,14,
- 14,14,14,14,14, 7, 8, 8, 9, 9,10,10,11,11,12,12,
- 13,13,14,13,14,14,15,14,15,15,15,15, 7, 8, 8, 9,
- 9,10,10,11,11,12,12,13,13,13,14,14,14,14,14,14,
- 14,15,15, 9,10,10,10,10,11,11,12,12,13,13,14,13,
- 14,14,15,15,15,15,15,15,15,15, 9,10,10,10,10,11,
- 11,12,12,13,13,13,14,14,14,15,15,15,15,15,15,15,
- 15,10,11,11,11,11,12,12,13,13,13,14,14,14,15,15,
- 15,15,15,16,16,15,16,16,10,11,11,11,11,12,12,13,
- 12,13,13,14,14,15,15,15,15,16,15,16,16,16,16,12,
- 12,12,12,13,13,13,14,13,14,14,15,15,15,15,16,16,
- 16,16,16,16,16,16,12,12,12,13,12,13,13,14,14,14,
- 14,15,15,15,15,16,16,16,16,16,16,16,16,13,13,13,
- 13,14,14,14,14,14,15,15,15,15,16,16,16,16,16,16,
- 16,16,16,16,13,13,13,14,13,14,14,14,14,15,15,15,
- 16,16,16,16,16,17,16,16,17,17,17,13,13,14,14,14,
- 15,14,15,15,15,16,16,16,16,16,16,17,17,17,17,16,
- 17,17,14,14,14,14,14,14,14,15,15,16,15,16,16,16,
- 16,17,16,16,17,16,17,17,17,14,14,14,14,15,15,15,
- 15,15,15,15,16,16,17,16,17,17,17,17,17,17,17,17,
- 14,14,14,15,14,15,15,15,15,16,16,16,16,16,16,17,
- 16,17,16,17,16,17,17,14,14,15,15,15,15,15,16,16,
- 16,16,16,17,17,17,17,16,17,17,17,17,18,17,14,15,
- 15,15,15,16,15,16,16,16,16,16,16,16,16,17,17,17,
- 17,17,17,17,17,14,15,15,15,15,16,16,16,16,17,16,
- 16,16,17,16,17,17,17,18,17,17,17,17,15,15,15,15,
- 15,16,16,16,16,17,16,17,16,17,17,17,17,17,17,17,
- 17,17,17,15,15,15,16,15,16,16,16,16,16,16,17,17,
- 17,17,17,17,16,17,17,17,17,17,15,15,15,15,15,16,
- 16,17,16,17,17,17,17,17,17,17,17,17,17,17,17,17,
- 17,
-};
-
-static float _vq_quantthresh__44u7_p9_1[] = {
- -850.5, -769.5, -688.5, -607.5, -526.5, -445.5, -364.5, -283.5,
- -202.5, -121.5, -40.5, 40.5, 121.5, 202.5, 283.5, 364.5,
- 445.5, 526.5, 607.5, 688.5, 769.5, 850.5,
-};
-
-static long _vq_quantmap__44u7_p9_1[] = {
- 21, 19, 17, 15, 13, 11, 9, 7,
- 5, 3, 1, 0, 2, 4, 6, 8,
- 10, 12, 14, 16, 18, 20, 22,
-};
-
-static encode_aux_threshmatch _vq_auxt__44u7_p9_1 = {
- _vq_quantthresh__44u7_p9_1,
- _vq_quantmap__44u7_p9_1,
- 23,
- 23
-};
-
-static static_codebook _44u7_p9_1 = {
- 2, 529,
- _vq_lengthlist__44u7_p9_1,
- 1, -516171776, 1624522752, 5, 0,
- _vq_quantlist__44u7_p9_1,
- NULL,
- &_vq_auxt__44u7_p9_1,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/books/uncoupled/_44u7_p9_2.vqh b/lib/books/uncoupled/_44u7_p9_2.vqh
deleted file mode 100644
index eee35175..00000000
--- a/lib/books/uncoupled/_44u7_p9_2.vqh
+++ /dev/null
@@ -1,160 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: static codebook autogenerated by vq/somethingorother
-
- ********************************************************************/
-
-#ifndef _V__44u7_p9_2_VQH_
-#define _V__44u7_p9_2_VQH_
-#include "codebook.h"
-
-static long _vq_quantlist__44u7_p9_2[] = {
- 40,
- 39,
- 41,
- 38,
- 42,
- 37,
- 43,
- 36,
- 44,
- 35,
- 45,
- 34,
- 46,
- 33,
- 47,
- 32,
- 48,
- 31,
- 49,
- 30,
- 50,
- 29,
- 51,
- 28,
- 52,
- 27,
- 53,
- 26,
- 54,
- 25,
- 55,
- 24,
- 56,
- 23,
- 57,
- 22,
- 58,
- 21,
- 59,
- 20,
- 60,
- 19,
- 61,
- 18,
- 62,
- 17,
- 63,
- 16,
- 64,
- 15,
- 65,
- 14,
- 66,
- 13,
- 67,
- 12,
- 68,
- 11,
- 69,
- 10,
- 70,
- 9,
- 71,
- 8,
- 72,
- 7,
- 73,
- 6,
- 74,
- 5,
- 75,
- 4,
- 76,
- 3,
- 77,
- 2,
- 78,
- 1,
- 79,
- 0,
- 80,
-};
-
-static long _vq_lengthlist__44u7_p9_2[] = {
- 4, 5, 5, 5, 5, 5, 5, 5, 5, 6, 6, 6, 6, 6, 6, 6,
- 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7,
-};
-
-static float _vq_quantthresh__44u7_p9_2[] = {
- -39.5, -38.5, -37.5, -36.5, -35.5, -34.5, -33.5, -32.5,
- -31.5, -30.5, -29.5, -28.5, -27.5, -26.5, -25.5, -24.5,
- -23.5, -22.5, -21.5, -20.5, -19.5, -18.5, -17.5, -16.5,
- -15.5, -14.5, -13.5, -12.5, -11.5, -10.5, -9.5, -8.5,
- -7.5, -6.5, -5.5, -4.5, -3.5, -2.5, -1.5, -0.5,
- 0.5, 1.5, 2.5, 3.5, 4.5, 5.5, 6.5, 7.5,
- 8.5, 9.5, 10.5, 11.5, 12.5, 13.5, 14.5, 15.5,
- 16.5, 17.5, 18.5, 19.5, 20.5, 21.5, 22.5, 23.5,
- 24.5, 25.5, 26.5, 27.5, 28.5, 29.5, 30.5, 31.5,
- 32.5, 33.5, 34.5, 35.5, 36.5, 37.5, 38.5, 39.5,
-};
-
-static long _vq_quantmap__44u7_p9_2[] = {
- 79, 77, 75, 73, 71, 69, 67, 65,
- 63, 61, 59, 57, 55, 53, 51, 49,
- 47, 45, 43, 41, 39, 37, 35, 33,
- 31, 29, 27, 25, 23, 21, 19, 17,
- 15, 13, 11, 9, 7, 5, 3, 1,
- 0, 2, 4, 6, 8, 10, 12, 14,
- 16, 18, 20, 22, 24, 26, 28, 30,
- 32, 34, 36, 38, 40, 42, 44, 46,
- 48, 50, 52, 54, 56, 58, 60, 62,
- 64, 66, 68, 70, 72, 74, 76, 78,
- 80,
-};
-
-static encode_aux_threshmatch _vq_auxt__44u7_p9_2 = {
- _vq_quantthresh__44u7_p9_2,
- _vq_quantmap__44u7_p9_2,
- 81,
- 81
-};
-
-static static_codebook _44u7_p9_2 = {
- 1, 81,
- _vq_lengthlist__44u7_p9_2,
- 1, -525074432, 1611661312, 7, 0,
- _vq_quantlist__44u7_p9_2,
- NULL,
- &_vq_auxt__44u7_p9_2,
- NULL,
- 0
-};
-
-
-#endif
diff --git a/lib/codebook.c b/lib/codebook.c
deleted file mode 100644
index ef19fd0b..00000000
--- a/lib/codebook.c
+++ /dev/null
@@ -1,624 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2002 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: basic codebook pack/unpack/code/decode operations
- last mod: $Id: codebook.c,v 1.38 2002/01/22 02:16:40 xiphmont Exp $
-
- ********************************************************************/
-
-#include <stdlib.h>
-#include <string.h>
-#include <math.h>
-#include <ogg/ogg.h>
-#include "vorbis/codec.h"
-#include "codebook.h"
-#include "scales.h"
-#include "misc.h"
-#include "os.h"
-
-/* packs the given codebook into the bitstream **************************/
-
-int vorbis_staticbook_pack(const static_codebook *c,oggpack_buffer *opb){
- long i,j;
- int ordered=0;
-
- /* first the basic parameters */
- oggpack_write(opb,0x564342,24);
- oggpack_write(opb,c->dim,16);
- oggpack_write(opb,c->entries,24);
-
- /* pack the codewords. There are two packings; length ordered and
- length random. Decide between the two now. */
-
- for(i=1;i<c->entries;i++)
- if(c->lengthlist[i-1]==0 || c->lengthlist[i]<c->lengthlist[i-1])break;
- if(i==c->entries)ordered=1;
-
- if(ordered){
- /* length ordered. We only need to say how many codewords of
- each length. The actual codewords are generated
- deterministically */
-
- long count=0;
- oggpack_write(opb,1,1); /* ordered */
- oggpack_write(opb,c->lengthlist[0]-1,5); /* 1 to 32 */
-
- for(i=1;i<c->entries;i++){
- long this=c->lengthlist[i];
- long last=c->lengthlist[i-1];
- if(this>last){
- for(j=last;j<this;j++){
- oggpack_write(opb,i-count,_ilog(c->entries-count));
- count=i;
- }
- }
- }
- oggpack_write(opb,i-count,_ilog(c->entries-count));
-
- }else{
- /* length random. Again, we don't code the codeword itself, just
- the length. This time, though, we have to encode each length */
- oggpack_write(opb,0,1); /* unordered */
-
- /* algortihmic mapping has use for 'unused entries', which we tag
- here. The algorithmic mapping happens as usual, but the unused
- entry has no codeword. */
- for(i=0;i<c->entries;i++)
- if(c->lengthlist[i]==0)break;
-
- if(i==c->entries){
- oggpack_write(opb,0,1); /* no unused entries */
- for(i=0;i<c->entries;i++)
- oggpack_write(opb,c->lengthlist[i]-1,5);
- }else{
- oggpack_write(opb,1,1); /* we have unused entries; thus we tag */
- for(i=0;i<c->entries;i++){
- if(c->lengthlist[i]==0){
- oggpack_write(opb,0,1);
- }else{
- oggpack_write(opb,1,1);
- oggpack_write(opb,c->lengthlist[i]-1,5);
- }
- }
- }
- }
-
- /* is the entry number the desired return value, or do we have a
- mapping? If we have a mapping, what type? */
- oggpack_write(opb,c->maptype,4);
- switch(c->maptype){
- case 0:
- /* no mapping */
- break;
- case 1:case 2:
- /* implicitly populated value mapping */
- /* explicitly populated value mapping */
-
- if(!c->quantlist){
- /* no quantlist? error */
- return(-1);
- }
-
- /* values that define the dequantization */
- oggpack_write(opb,c->q_min,32);
- oggpack_write(opb,c->q_delta,32);
- oggpack_write(opb,c->q_quant-1,4);
- oggpack_write(opb,c->q_sequencep,1);
-
- {
- int quantvals;
- switch(c->maptype){
- case 1:
- /* a single column of (c->entries/c->dim) quantized values for
- building a full value list algorithmically (square lattice) */
- quantvals=_book_maptype1_quantvals(c);
- break;
- case 2:
- /* every value (c->entries*c->dim total) specified explicitly */
- quantvals=c->entries*c->dim;
- break;
- default: /* NOT_REACHABLE */
- quantvals=-1;
- }
-
- /* quantized values */
- for(i=0;i<quantvals;i++)
- oggpack_write(opb,labs(c->quantlist[i]),c->q_quant);
-
- }
- break;
- default:
- /* error case; we don't have any other map types now */
- return(-1);
- }
-
- return(0);
-}
-
-/* unpacks a codebook from the packet buffer into the codebook struct,
- readies the codebook auxiliary structures for decode *************/
-int vorbis_staticbook_unpack(oggpack_buffer *opb,static_codebook *s){
- long i,j;
- memset(s,0,sizeof(*s));
- s->allocedp=1;
-
- /* make sure alignment is correct */
- if(oggpack_read(opb,24)!=0x564342)goto _eofout;
-
- /* first the basic parameters */
- s->dim=oggpack_read(opb,16);
- s->entries=oggpack_read(opb,24);
- if(s->entries==-1)goto _eofout;
-
- /* codeword ordering.... length ordered or unordered? */
- switch((int)oggpack_read(opb,1)){
- case 0:
- /* unordered */
- s->lengthlist=_ogg_malloc(sizeof(*s->lengthlist)*s->entries);
-
- /* allocated but unused entries? */
- if(oggpack_read(opb,1)){
- /* yes, unused entries */
-
- for(i=0;i<s->entries;i++){
- if(oggpack_read(opb,1)){
- long num=oggpack_read(opb,5);
- if(num==-1)goto _eofout;
- s->lengthlist[i]=num+1;
- }else
- s->lengthlist[i]=0;
- }
- }else{
- /* all entries used; no tagging */
- for(i=0;i<s->entries;i++){
- long num=oggpack_read(opb,5);
- if(num==-1)goto _eofout;
- s->lengthlist[i]=num+1;
- }
- }
-
- break;
- case 1:
- /* ordered */
- {
- long length=oggpack_read(opb,5)+1;
- s->lengthlist=_ogg_malloc(sizeof(*s->lengthlist)*s->entries);
-
- for(i=0;i<s->entries;){
- long num=oggpack_read(opb,_ilog(s->entries-i));
- if(num==-1)goto _eofout;
- for(j=0;j<num && i<s->entries;j++,i++)
- s->lengthlist[i]=length;
- length++;
- }
- }
- break;
- default:
- /* EOF */
- return(-1);
- }
-
- /* Do we have a mapping to unpack? */
- switch((s->maptype=oggpack_read(opb,4))){
- case 0:
- /* no mapping */
- break;
- case 1: case 2:
- /* implicitly populated value mapping */
- /* explicitly populated value mapping */
-
- s->q_min=oggpack_read(opb,32);
- s->q_delta=oggpack_read(opb,32);
- s->q_quant=oggpack_read(opb,4)+1;
- s->q_sequencep=oggpack_read(opb,1);
-
- {
- int quantvals=0;
- switch(s->maptype){
- case 1:
- quantvals=_book_maptype1_quantvals(s);
- break;
- case 2:
- quantvals=s->entries*s->dim;
- break;
- }
-
- /* quantized values */
- s->quantlist=_ogg_malloc(sizeof(*s->quantlist)*quantvals);
- for(i=0;i<quantvals;i++)
- s->quantlist[i]=oggpack_read(opb,s->q_quant);
-
- if(quantvals&&s->quantlist[quantvals-1]==-1)goto _eofout;
- }
- break;
- default:
- goto _errout;
- }
-
- /* all set */
- return(0);
-
- _errout:
- _eofout:
- vorbis_staticbook_clear(s);
- return(-1);
-}
-
-/* returns the number of bits ************************************************/
-int vorbis_book_encode(codebook *book, int a, oggpack_buffer *b){
- oggpack_write(b,book->codelist[a],book->c->lengthlist[a]);
- return(book->c->lengthlist[a]);
-}
-
-/* One the encode side, our vector writers are each designed for a
-specific purpose, and the encoder is not flexible without modification:
-
-The LSP vector coder uses a single stage nearest-match with no
-interleave, so no step and no error return. This is specced by floor0
-and doesn't change.
-
-Residue0 encoding interleaves, uses multiple stages, and each stage
-peels of a specific amount of resolution from a lattice (thus we want
-to match by threshold, not nearest match). Residue doesn't *have* to
-be encoded that way, but to change it, one will need to add more
-infrastructure on the encode side (decode side is specced and simpler) */
-
-/* floor0 LSP (single stage, non interleaved, nearest match) */
-/* returns entry number and *modifies a* to the quantization value *****/
-int vorbis_book_errorv(codebook *book,float *a){
- int dim=book->dim,k;
- int best=_best(book,a,1);
- for(k=0;k<dim;k++)
- a[k]=(book->valuelist+best*dim)[k];
- return(best);
-}
-
-/* returns the number of bits and *modifies a* to the quantization value *****/
-int vorbis_book_encodev(codebook *book,int best,float *a,oggpack_buffer *b){
- int k,dim=book->dim;
- for(k=0;k<dim;k++)
- a[k]=(book->valuelist+best*dim)[k];
- return(vorbis_book_encode(book,best,b));
-}
-
-/* res0 (multistage, interleave, lattice) */
-/* returns the number of bits and *modifies a* to the remainder value ********/
-int vorbis_book_encodevs(codebook *book,float *a,oggpack_buffer *b,
- int step,int addmul){
-
- int best=vorbis_book_besterror(book,a,step,addmul);
- return(vorbis_book_encode(book,best,b));
-}
-
-/* the 'eliminate the decode tree' optimization actually requires the
- codewords to be MSb first, not LSb. This is an annoying inelegancy
- (and one of the first places where carefully thought out design
- turned out to be wrong; Vorbis II and future Ogg codecs should go
- to an MSb bitpacker), but not actually the huge hit it appears to
- be. The first-stage decode table catches most words so that
- bitreverse is not in the main execution path. */
-
-static ogg_uint32_t bitreverse(ogg_uint32_t x){
- x= ((x>>16)&0x0000ffff) | ((x<<16)&0xffff0000);
- x= ((x>> 8)&0x00ff00ff) | ((x<< 8)&0xff00ff00);
- x= ((x>> 4)&0x0f0f0f0f) | ((x<< 4)&0xf0f0f0f0);
- x= ((x>> 2)&0x33333333) | ((x<< 2)&0xcccccccc);
- return((x>> 1)&0x55555555) | ((x<< 1)&0xaaaaaaaa);
-}
-
-STIN long decode_packed_entry_number(codebook *book, oggpack_buffer *b){
- int read=book->dec_maxlength;
- long lo,hi;
- long lok = oggpack_look(b,book->dec_firsttablen);
-
- if (lok >= 0) {
- long entry = book->dec_firsttable[lok];
- if(entry&0x80000000UL){
- lo=(entry>>15)&0x7fff;
- hi=book->used_entries-(entry&0x7fff);
- }else{
- oggpack_adv(b, book->dec_codelengths[entry-1]);
- return(entry-1);
- }
- }else{
- lo=0;
- hi=book->used_entries;
- }
-
- lok = oggpack_look(b, read);
-
- while(lok<0 && read>1)
- lok = oggpack_look(b, --read);
- if(lok<0)return -1;
-
- /* bisect search for the codeword in the ordered list */
- {
- ogg_uint32_t testword=bitreverse((ogg_uint32_t)lok);
-
- while(hi-lo>1){
- long p=(hi-lo)>>1;
- long test=book->codelist[lo+p]>testword;
- lo+=p&(test-1);
- hi-=p&(-test);
- }
-
- if(book->dec_codelengths[lo]<=read){
- oggpack_adv(b, book->dec_codelengths[lo]);
- return(lo);
- }
- }
-
- oggpack_adv(b, read);
- return(-1);
-}
-
-/* Decode side is specced and easier, because we don't need to find
- matches using different criteria; we simply read and map. There are
- two things we need to do 'depending':
-
- We may need to support interleave. We don't really, but it's
- convenient to do it here rather than rebuild the vector later.
-
- Cascades may be additive or multiplicitive; this is not inherent in
- the codebook, but set in the code using the codebook. Like
- interleaving, it's easiest to do it here.
- addmul==0 -> declarative (set the value)
- addmul==1 -> additive
- addmul==2 -> multiplicitive */
-
-/* returns the [original, not compacted] entry number or -1 on eof *********/
-long vorbis_book_decode(codebook *book, oggpack_buffer *b){
- long packed_entry=decode_packed_entry_number(book,b);
- if(packed_entry>=0)
- return(book->dec_index[packed_entry]);
-
- /* if there's no dec_index, the codebook unpacking isn't collapsed */
- return(packed_entry);
-}
-
-/* returns 0 on OK or -1 on eof *************************************/
-long vorbis_book_decodevs_add(codebook *book,float *a,oggpack_buffer *b,int n){
- int step=n/book->dim;
- long *entry = alloca(sizeof(*entry)*step);
- float **t = alloca(sizeof(*t)*step);
- int i,j,o;
-
- for (i = 0; i < step; i++) {
- entry[i]=decode_packed_entry_number(book,b);
- if(entry[i]==-1)return(-1);
- t[i] = book->valuelist+entry[i]*book->dim;
- }
- for(i=0,o=0;i<book->dim;i++,o+=step)
- for (j=0;j<step;j++)
- a[o+j]+=t[j][i];
- return(0);
-}
-
-long vorbis_book_decodev_add(codebook *book,float *a,oggpack_buffer *b,int n){
- int i,j,entry;
- float *t;
-
- if(book->dim>8){
- for(i=0;i<n;){
- entry = decode_packed_entry_number(book,b);
- if(entry==-1)return(-1);
- t = book->valuelist+entry*book->dim;
- for (j=0;j<book->dim;)
- a[i++]+=t[j++];
- }
- }else{
- for(i=0;i<n;){
- entry = decode_packed_entry_number(book,b);
- if(entry==-1)return(-1);
- t = book->valuelist+entry*book->dim;
- j=0;
- switch((int)book->dim){
- case 8:
- a[i++]+=t[j++];
- case 7:
- a[i++]+=t[j++];
- case 6:
- a[i++]+=t[j++];
- case 5:
- a[i++]+=t[j++];
- case 4:
- a[i++]+=t[j++];
- case 3:
- a[i++]+=t[j++];
- case 2:
- a[i++]+=t[j++];
- case 1:
- a[i++]+=t[j++];
- case 0:
- break;
- }
- }
- }
- return(0);
-}
-
-long vorbis_book_decodev_set(codebook *book,float *a,oggpack_buffer *b,int n){
- int i,j,entry;
- float *t;
-
- for(i=0;i<n;){
- entry = decode_packed_entry_number(book,b);
- if(entry==-1)return(-1);
- t = book->valuelist+entry*book->dim;
- for (j=0;j<book->dim;)
- a[i++]=t[j++];
- }
- return(0);
-}
-
-long vorbis_book_decodevv_add(codebook *book,float **a,long offset,int ch,
- oggpack_buffer *b,int n){
- long i,j,entry;
- int chptr=0;
-
- for(i=offset/ch;i<(offset+n)/ch;){
- entry = decode_packed_entry_number(book,b);
- if(entry==-1)return(-1);
- {
- const float *t = book->valuelist+entry*book->dim;
- for (j=0;j<book->dim;j++){
- a[chptr++][i]+=t[j];
- if(chptr==ch){
- chptr=0;
- i++;
- }
- }
- }
- }
- return(0);
-}
-
-#ifdef _V_SELFTEST
-/* Simple enough; pack a few candidate codebooks, unpack them. Code a
- number of vectors through (keeping track of the quantized values),
- and decode using the unpacked book. quantized version of in should
- exactly equal out */
-
-#include <stdio.h>
-
-#include "vorbis/book/lsp20_0.vqh"
-#include "vorbis/book/res0a_13.vqh"
-#define TESTSIZE 40
-
-float test1[TESTSIZE]={
- 0.105939f,
- 0.215373f,
- 0.429117f,
- 0.587974f,
-
- 0.181173f,
- 0.296583f,
- 0.515707f,
- 0.715261f,
-
- 0.162327f,
- 0.263834f,
- 0.342876f,
- 0.406025f,
-
- 0.103571f,
- 0.223561f,
- 0.368513f,
- 0.540313f,
-
- 0.136672f,
- 0.395882f,
- 0.587183f,
- 0.652476f,
-
- 0.114338f,
- 0.417300f,
- 0.525486f,
- 0.698679f,
-
- 0.147492f,
- 0.324481f,
- 0.643089f,
- 0.757582f,
-
- 0.139556f,
- 0.215795f,
- 0.324559f,
- 0.399387f,
-
- 0.120236f,
- 0.267420f,
- 0.446940f,
- 0.608760f,
-
- 0.115587f,
- 0.287234f,
- 0.571081f,
- 0.708603f,
-};
-
-float test3[TESTSIZE]={
- 0,1,-2,3,4,-5,6,7,8,9,
- 8,-2,7,-1,4,6,8,3,1,-9,
- 10,11,12,13,14,15,26,17,18,19,
- 30,-25,-30,-1,-5,-32,4,3,-2,0};
-
-static_codebook *testlist[]={&_vq_book_lsp20_0,
- &_vq_book_res0a_13,NULL};
-float *testvec[]={test1,test3};
-
-int main(){
- oggpack_buffer write;
- oggpack_buffer read;
- long ptr=0,i;
- oggpack_writeinit(&write);
-
- fprintf(stderr,"Testing codebook abstraction...:\n");
-
- while(testlist[ptr]){
- codebook c;
- static_codebook s;
- float *qv=alloca(sizeof(*qv)*TESTSIZE);
- float *iv=alloca(sizeof(*iv)*TESTSIZE);
- memcpy(qv,testvec[ptr],sizeof(*qv)*TESTSIZE);
- memset(iv,0,sizeof(*iv)*TESTSIZE);
-
- fprintf(stderr,"\tpacking/coding %ld... ",ptr);
-
- /* pack the codebook, write the testvector */
- oggpack_reset(&write);
- vorbis_book_init_encode(&c,testlist[ptr]); /* get it into memory
- we can write */
- vorbis_staticbook_pack(testlist[ptr],&write);
- fprintf(stderr,"Codebook size %ld bytes... ",oggpack_bytes(&write));
- for(i=0;i<TESTSIZE;i+=c.dim){
- int best=_best(&c,qv+i,1);
- vorbis_book_encodev(&c,best,qv+i,&write);
- }
- vorbis_book_clear(&c);
-
- fprintf(stderr,"OK.\n");
- fprintf(stderr,"\tunpacking/decoding %ld... ",ptr);
-
- /* transfer the write data to a read buffer and unpack/read */
- oggpack_readinit(&read,oggpack_get_buffer(&write),oggpack_bytes(&write));
- if(vorbis_staticbook_unpack(&read,&s)){
- fprintf(stderr,"Error unpacking codebook.\n");
- exit(1);
- }
- if(vorbis_book_init_decode(&c,&s)){
- fprintf(stderr,"Error initializing codebook.\n");
- exit(1);
- }
-
- for(i=0;i<TESTSIZE;i+=c.dim)
- if(vorbis_book_decodev_set(&c,iv+i,&read,c.dim)==-1){
- fprintf(stderr,"Error reading codebook test data (EOP).\n");
- exit(1);
- }
- for(i=0;i<TESTSIZE;i++)
- if(fabs(qv[i]-iv[i])>.000001){
- fprintf(stderr,"read (%g) != written (%g) at position (%ld)\n",
- iv[i],qv[i],i);
- exit(1);
- }
-
- fprintf(stderr,"OK\n");
- ptr++;
- }
-
- /* The above is the trivial stuff; now try unquantizing a log scale codebook */
-
- exit(0);
-}
-
-#endif
diff --git a/lib/codebook.h b/lib/codebook.h
deleted file mode 100644
index 58005466..00000000
--- a/lib/codebook.h
+++ /dev/null
@@ -1,162 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2002 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: basic shared codebook operations
- last mod: $Id: codebook.h,v 1.12 2002/01/21 20:51:28 xiphmont Exp $
-
- ********************************************************************/
-
-#ifndef _V_CODEBOOK_H_
-#define _V_CODEBOOK_H_
-
-#include <ogg/ogg.h>
-
-/* This structure encapsulates huffman and VQ style encoding books; it
- doesn't do anything specific to either.
-
- valuelist/quantlist are nonNULL (and q_* significant) only if
- there's entry->value mapping to be done.
-
- If encode-side mapping must be done (and thus the entry needs to be
- hunted), the auxiliary encode pointer will point to a decision
- tree. This is true of both VQ and huffman, but is mostly useful
- with VQ.
-
-*/
-
-typedef struct static_codebook{
- long dim; /* codebook dimensions (elements per vector) */
- long entries; /* codebook entries */
- long *lengthlist; /* codeword lengths in bits */
-
- /* mapping ***************************************************************/
- int maptype; /* 0=none
- 1=implicitly populated values from map column
- 2=listed arbitrary values */
-
- /* The below does a linear, single monotonic sequence mapping. */
- long q_min; /* packed 32 bit float; quant value 0 maps to minval */
- long q_delta; /* packed 32 bit float; val 1 - val 0 == delta */
- int q_quant; /* bits: 0 < quant <= 16 */
- int q_sequencep; /* bitflag */
-
- long *quantlist; /* map == 1: (int)(entries^(1/dim)) element column map
- map == 2: list of dim*entries quantized entry vals
- */
-
- /* encode helpers ********************************************************/
- struct encode_aux_nearestmatch *nearest_tree;
- struct encode_aux_threshmatch *thresh_tree;
- struct encode_aux_pigeonhole *pigeon_tree;
-
- int allocedp;
-} static_codebook;
-
-/* this structures an arbitrary trained book to quickly find the
- nearest cell match */
-typedef struct encode_aux_nearestmatch{
- /* pre-calculated partitioning tree */
- long *ptr0;
- long *ptr1;
-
- long *p; /* decision points (each is an entry) */
- long *q; /* decision points (each is an entry) */
- long aux; /* number of tree entries */
- long alloc;
-} encode_aux_nearestmatch;
-
-/* assumes a maptype of 1; encode side only, so that's OK */
-typedef struct encode_aux_threshmatch{
- float *quantthresh;
- long *quantmap;
- int quantvals;
- int threshvals;
-} encode_aux_threshmatch;
-
-typedef struct encode_aux_pigeonhole{
- float min;
- float del;
-
- int mapentries;
- int quantvals;
- long *pigeonmap;
-
- long fittotal;
- long *fitlist;
- long *fitmap;
- long *fitlength;
-} encode_aux_pigeonhole;
-
-typedef struct codebook{
- long dim; /* codebook dimensions (elements per vector) */
- long entries; /* codebook entries */
- long used_entries; /* populated codebook entries */
- const static_codebook *c;
-
- /* for encode, the below are entry-ordered, fully populated */
- /* for decode, the below are ordered by bitreversed codeword and only
- used entries are populated */
- float *valuelist; /* list of dim*entries actual entry values */
- ogg_uint32_t *codelist; /* list of bitstream codewords for each entry */
-
- int *dec_index; /* only used if sparseness collapsed */
- char *dec_codelengths;
- ogg_uint32_t *dec_firsttable;
- int dec_firsttablen;
- int dec_maxlength;
-
-} codebook;
-
-extern void vorbis_staticbook_clear(static_codebook *b);
-extern void vorbis_staticbook_destroy(static_codebook *b);
-extern int vorbis_book_init_encode(codebook *dest,const static_codebook *source);
-extern int vorbis_book_init_decode(codebook *dest,const static_codebook *source);
-extern void vorbis_book_clear(codebook *b);
-
-extern float *_book_unquantize(const static_codebook *b,int n,int *map);
-extern float *_book_logdist(const static_codebook *b,float *vals);
-extern float _float32_unpack(long val);
-extern long _float32_pack(float val);
-extern int _best(codebook *book, float *a, int step);
-extern int _ilog(unsigned int v);
-extern long _book_maptype1_quantvals(const static_codebook *b);
-
-extern int vorbis_book_besterror(codebook *book,float *a,int step,int addmul);
-extern long vorbis_book_codeword(codebook *book,int entry);
-extern long vorbis_book_codelen(codebook *book,int entry);
-
-
-
-extern int vorbis_staticbook_pack(const static_codebook *c,oggpack_buffer *b);
-extern int vorbis_staticbook_unpack(oggpack_buffer *b,static_codebook *c);
-
-extern int vorbis_book_encode(codebook *book, int a, oggpack_buffer *b);
-extern int vorbis_book_errorv(codebook *book, float *a);
-extern int vorbis_book_encodev(codebook *book, int best,float *a,
- oggpack_buffer *b);
-extern int vorbis_book_encodevs(codebook *book, float *a, oggpack_buffer *b,
- int step,int stagetype);
-
-extern long vorbis_book_decode(codebook *book, oggpack_buffer *b);
-extern long vorbis_book_decodevs_add(codebook *book, float *a,
- oggpack_buffer *b,int n);
-extern long vorbis_book_decodev_set(codebook *book, float *a,
- oggpack_buffer *b,int n);
-extern long vorbis_book_decodev_add(codebook *book, float *a,
- oggpack_buffer *b,int n);
-extern long vorbis_book_decodevv_add(codebook *book, float **a,
- long off,int ch,
- oggpack_buffer *b,int n);
-
-
-
-#endif
diff --git a/lib/codec_internal.h b/lib/codec_internal.h
deleted file mode 100644
index e5851dd2..00000000
--- a/lib/codec_internal.h
+++ /dev/null
@@ -1,174 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2002 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: libvorbis codec headers
- last mod: $Id: codec_internal.h,v 1.13 2002/01/22 08:06:06 xiphmont Exp $
-
- ********************************************************************/
-
-#ifndef _V_CODECI_H_
-#define _V_CODECI_H_
-
-#include "envelope.h"
-#include "codebook.h"
-
-#define BLOCKTYPE_IMPULSE 0
-#define BLOCKTYPE_PADDING 1
-#define BLOCKTYPE_TRANSITION 0
-#define BLOCKTYPE_LONG 1
-
-typedef struct vorbis_block_internal{
- float **pcmdelay; /* this is a pointer into local storage */
- float ampmax;
- int blocktype;
-
- ogg_uint32_t *packet_markers;
-} vorbis_block_internal;
-
-typedef void vorbis_look_time;
-typedef void vorbis_look_mapping;
-typedef void vorbis_look_floor;
-typedef void vorbis_look_residue;
-typedef void vorbis_look_transform;
-
-/* mode ************************************************************/
-typedef struct {
- int blockflag;
- int windowtype;
- int transformtype;
- int mapping;
-} vorbis_info_mode;
-
-typedef void vorbis_info_time;
-typedef void vorbis_info_floor;
-typedef void vorbis_info_residue;
-typedef void vorbis_info_mapping;
-
-#include "psy.h"
-#include "bitrate.h"
-
-typedef struct backend_lookup_state {
- /* local lookup storage */
- envelope_lookup *ve; /* envelope lookup */
- float **window[2][2][2]; /* block, leadin, leadout, type */
- vorbis_look_transform **transform[2]; /* block, type */
- vorbis_look_psy_global *psy_g_look;
-
- /* backend lookups are tied to the mode, not the backend or naked mapping */
- int modebits;
- vorbis_look_mapping **mode;
-
- /* local storage, only used on the encoding side. This way the
- application does not need to worry about freeing some packets'
- memory and not others'; packet storage is always tracked.
- Cleared next call to a _dsp_ function */
- unsigned char *header;
- unsigned char *header1;
- unsigned char *header2;
-
- bitrate_manager_state bms;
-
-} backend_lookup_state;
-
-/* high level configuration information for setting things up
- step-by-step with the detaile vorbis_encode_ctl interface */
-
-typedef struct highlevel_block {
- double tone_mask_quality;
- double tone_peaklimit_quality;
-
- double noise_bias_quality;
- double noise_compand_quality;
-
- double ath_quality;
-
-} highlevel_block;
-
-typedef struct highlevel_encode_setup {
- double base_quality; /* these have to be tracked by the ctl */
- double base_quality_short; /* interface so that the right books get */
- double base_quality_long; /* chosen... */
-
- int short_block_p;
- int long_block_p;
- int impulse_block_p;
-
- int stereo_couple_p;
- int stereo_backfill_p;
- int residue_backfill_p;
-
- int stereo_point_dB;
- double stereo_point_kHz[2];
- double lowpass_kHz[2];
-
- double ath_floating_dB;
- double ath_absolute_dB;
-
- double amplitude_track_dBpersec;
- double trigger_quality;
-
- highlevel_block blocktype[4]; /* impulse, padding, trans, long */
-
-} highlevel_encode_setup;
-
-/* codec_setup_info contains all the setup information specific to the
- specific compression/decompression mode in progress (eg,
- psychoacoustic settings, channel setup, options, codebook
- etc).
-*********************************************************************/
-
-typedef struct codec_setup_info {
-
- /* Vorbis supports only short and long blocks, but allows the
- encoder to choose the sizes */
-
- long blocksizes[2];
-
- /* modes are the primary means of supporting on-the-fly different
- blocksizes, different channel mappings (LR or M/A),
- different residue backends, etc. Each mode consists of a
- blocksize flag and a mapping (along with the mapping setup */
-
- int modes;
- int maps;
- int times;
- int floors;
- int residues;
- int books;
- int psys; /* encode only */
-
- vorbis_info_mode *mode_param[64];
- int map_type[64];
- vorbis_info_mapping *map_param[64];
- int time_type[64];
- vorbis_info_time *time_param[64];
- int floor_type[64];
- vorbis_info_floor *floor_param[64];
- int residue_type[64];
- vorbis_info_residue *residue_param[64];
- static_codebook *book_param[256];
- codebook *fullbooks;
-
- vorbis_info_psy *psy_param[64]; /* encode only */
- vorbis_info_psy_global psy_g_param;
-
- bitrate_manager_info bi;
- highlevel_encode_setup hi;
-
- int passlimit[32]; /* iteration limit per couple/quant pass */
- int coupling_passes;
-} codec_setup_info;
-
-extern vorbis_look_psy_global *_vp_global_look(vorbis_info *vi);
-extern void _vp_global_free(vorbis_look_psy_global *look);
-
-#endif
diff --git a/lib/envelope.c b/lib/envelope.c
deleted file mode 100644
index b31d6134..00000000
--- a/lib/envelope.c
+++ /dev/null
@@ -1,286 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: PCM data envelope analysis and manipulation
- last mod: $Id: envelope.c,v 1.41 2001/12/20 01:00:26 segher Exp $
-
- Preecho calculation.
-
- ********************************************************************/
-
-#include <stdlib.h>
-#include <string.h>
-#include <stdio.h>
-#include <math.h>
-#include <ogg/ogg.h>
-#include "vorbis/codec.h"
-#include "codec_internal.h"
-
-#include "os.h"
-#include "scales.h"
-#include "envelope.h"
-#include "misc.h"
-#include "iir.c" /* Yes, ugly, but needed for inlining */
-
-/* Digital filter designed by mkfilter/mkshape/gencode A.J. Fisher */
-
-static int cheb_highpass_stages=6;
-static float cheb_highpass_B[]={1.f,-6.f,15.f,-20.f,15.f,-6.f,1.f};
-
-static int cheb_bandpass_stages=6;
-static float cheb_bandpass_B[]={-1.f,0.f,3.f,0.f,-3.f,0.f,1.f};
-
-
-/* 10kHz Chebyshev highpass */
-static float cheb_highpass10k_gain= 54.34519586f;
-static float cheb_highpass10k_A[]={
- -0.2064797169f,
- -0.5609713214f,
- -1.1352465327f,
- -1.4495555418f,
- -1.7938140760f,
- -0.9473564683f};
-
-/* 6kHz-10kHz Chebyshev bandpass */
-static float cheb_bandpass6k_gain=113.4643935f;
-static float cheb_bandpass6k_A[]={
- -0.5712621337f,
- 1.5626130710f,
- -3.3348854983f,
- 4.0471340821f,
- -4.0051680331f,
- 2.2786325610f};
-
-/* 3kHz-6kHz Chebyshev bandpass */
-static float cheb_bandpass3k_gain= 248.8359377f;
-static float cheb_bandpass3k_A[]={
- -0.6564230022f,
- 3.3747911257f,
- -8.0098635981f,
- 11.0040876874f,
- -9.2250963484f,
- 4.4760355389f};
-
-/* 1.5kHz-3kHz Chebyshev bandpass */
-static float cheb_bandpass1k_gain= 1798.537183f;
-static float cheb_bandpass1k_A[]={
- -0.8097527363f,
- 4.7725742682f,
- -11.9800219408f,
- 16.3770336223f,
- -12.8553129536f,
- 5.4948074309f};
-
-void _ve_envelope_init(envelope_lookup *e,vorbis_info *vi){
- codec_setup_info *ci=vi->codec_setup;
- vorbis_info_psy_global *gi=&ci->psy_g_param;
- int ch=vi->channels;
- int i;
- e->winlength=ci->blocksizes[0]/2; /* not random */
- e->minenergy=fromdB(gi->preecho_minenergy);
- e->iir=_ogg_calloc(ch*4,sizeof(*e->iir));
- e->filtered=_ogg_calloc(ch*4,sizeof(*e->filtered));
- e->ch=ch;
- e->storage=128;
- for(i=0;i<ch*4;i+=4){
-
- IIR_init(e->iir+i,cheb_highpass_stages,cheb_highpass10k_gain,
- cheb_highpass10k_A,cheb_highpass_B);
- IIR_init(e->iir+i+1,cheb_bandpass_stages,cheb_bandpass6k_gain,
- cheb_bandpass6k_A,cheb_bandpass_B);
- IIR_init(e->iir+i+2,cheb_bandpass_stages,cheb_bandpass3k_gain,
- cheb_bandpass3k_A,cheb_bandpass_B);
- IIR_init(e->iir+i+3,cheb_bandpass_stages,cheb_bandpass1k_gain,
- cheb_bandpass1k_A,cheb_bandpass_B);
-
- e->filtered[i]=_ogg_calloc(e->storage,sizeof(*e->filtered[i]));
- e->filtered[i+1]=_ogg_calloc(e->storage,sizeof(*e->filtered[i+1]));
- e->filtered[i+2]=_ogg_calloc(e->storage,sizeof(*e->filtered[i+2]));
- e->filtered[i+3]=_ogg_calloc(e->storage,sizeof(*e->filtered[i+3]));
- }
-
-}
-
-void _ve_envelope_clear(envelope_lookup *e){
- int i;
- for(i=0;i<e->ch*4;i++){
- IIR_clear((e->iir+i));
- _ogg_free(e->filtered[i]);
- }
- _ogg_free(e->filtered);
- _ogg_free(e->iir);
- memset(e,0,sizeof(*e));
-}
-
-/* straight threshhold based until we find something that works better
- and isn't patented */
-static float _ve_deltai(envelope_lookup *ve,float *pre,float *post){
- long n=ve->winlength;
-
- long i;
-
- /* we want to have a 'minimum bar' for energy, else we're just
- basing blocks on quantization noise that outweighs the signal
- itself (for low power signals) */
-
- float minV=ve->minenergy;
- float A=minV*minV*n;
- float B=A;
-
- for(i=0;i<n;i++){
- A+=pre[i]*pre[i];
- B+=post[i]*post[i];
- }
-
- A=todB(&A);
- B=todB(&B);
-
- return(B-A);
-}
-
-long _ve_envelope_search(vorbis_dsp_state *v){
- vorbis_info *vi=v->vi;
- codec_setup_info *ci=vi->codec_setup;
- vorbis_info_psy_global *gi=&ci->psy_g_param;
- envelope_lookup *ve=((backend_lookup_state *)(v->backend_state))->ve;
- long i,j,k;
-
- /* make sure we have enough storage to match the PCM */
- if(v->pcm_storage>ve->storage){
- ve->storage=v->pcm_storage;
- for(i=0;i<ve->ch*4;i++)
- ve->filtered[i]=_ogg_realloc(ve->filtered[i],ve->storage*sizeof(*ve->filtered[i]));
- }
-
- /* catch up the highpass to match the pcm */
- for(i=0;i<ve->ch;i++){
- float *pcm=v->pcm[i];
- float *filtered0=ve->filtered[i*4];
- float *filtered1=ve->filtered[i*4+1];
- float *filtered2=ve->filtered[i*4+2];
- float *filtered3=ve->filtered[i*4+3];
- IIR_state *iir0=ve->iir+i*4;
- IIR_state *iir1=ve->iir+i*4+1;
- IIR_state *iir2=ve->iir+i*4+2;
- IIR_state *iir3=ve->iir+i*4+3;
- int flag=1;
- for(j=ve->current;j<v->pcm_current;j++){
- filtered0[j]=IIR_filter(iir0,pcm[j]);
- filtered1[j]=IIR_filter_Band(iir1,pcm[j]);
- filtered2[j]=IIR_filter_Band(iir2,pcm[j]);
- filtered3[j]=IIR_filter_Band(iir3,pcm[j]);
- if(pcm[j])flag=0;
- }
- if(flag && ve->current+64<v->pcm_current){
- IIR_reset(iir0);
- IIR_reset(iir1);
- IIR_reset(iir2);
- IIR_reset(iir3);
- }
-
- }
-
- ve->current=v->pcm_current;
-
- {
- int flag=-1;
- long centerW=v->centerW;
- long beginW=centerW-ci->blocksizes[v->W]/4;
- /*long endW=centerW+ci->blocksizes[v->W]/4+ci->blocksizes[0]/4;*/
- long testW=centerW+ci->blocksizes[v->W]/4+ci->blocksizes[1]/2+ci->blocksizes[0]/4;
- if(v->W)
- beginW-=ci->blocksizes[v->lW]/4;
- else
- beginW-=ci->blocksizes[0]/4;
-
- if(ve->mark>=centerW && ve->mark<testW)return(0);
- if(ve->mark>=testW)return(1);
-
- if(v->W)
- j=ve->cursor;
- else
- j=centerW-ci->blocksizes[0]/4;
-
- while(j+ve->winlength*3/2<=v->pcm_current){
- if(j>=testW)return(1);
- ve->cursor=j;
-
- for(i=0;i<ve->ch;i++){
- for(k=0;k<4;k++){
- float *filtered=ve->filtered[i*4+k]+j;
- float *filtered2=ve->filtered[i*4+k]+j+ve->winlength/2;
- float m=_ve_deltai(ve,filtered-ve->winlength,filtered);
- float mm=_ve_deltai(ve,filtered2-ve->winlength,filtered2);
-
- if(m>gi->preecho_thresh[k] || m<gi->postecho_thresh[k]){
- if(j<=centerW){
- ve->prevmark=ve->mark=j;
- }else{
- /* if a quarter-short-block advance is an even stronger
- reading, set *that* as the impulse point. */
- if((m>0. && mm>m) || (m<0. && mm<m))
- flag=j+ve->winlength/2;
- else
- if(flag<0)flag=j;
- }
- }
- }
- }
-
- if(flag>=0){
- ve->prevmark=ve->mark;
- ve->mark=flag;
- if(flag>=testW)return(1);
- return(0);
- }
-
- j+=ve->winlength/2;
- }
- }
-
- return(-1);
-}
-
-int _ve_envelope_mark(vorbis_dsp_state *v){
- envelope_lookup *ve=((backend_lookup_state *)(v->backend_state))->ve;
- vorbis_info *vi=v->vi;
- codec_setup_info *ci=vi->codec_setup;
- long centerW=v->centerW;
- long beginW=centerW-ci->blocksizes[v->W]/4;
- long endW=centerW+ci->blocksizes[v->W]/4;
- if(v->W){
- beginW-=ci->blocksizes[v->lW]/4;
- endW+=ci->blocksizes[v->nW]/4;
- }else{
- beginW-=ci->blocksizes[0]/4;
- endW+=ci->blocksizes[0]/4;
- }
-
- if(ve->prevmark>=beginW && ve->prevmark<endW)return(1);
- if(ve->mark>=beginW && ve->mark<endW)return(1);
- return(0);
-}
-
-void _ve_envelope_shift(envelope_lookup *e,long shift){
- int i;
- for(i=0;i<e->ch*4;i++)
- memmove(e->filtered[i],e->filtered[i]+shift,(e->current-shift)*
- sizeof(*e->filtered[i]));
- e->current-=shift;
- if(e->prevmark>=0)
- e->prevmark-=shift;
- if(e->mark>=0)
- e->mark-=shift;
- e->cursor-=shift;
-}
-
-
diff --git a/lib/envelope.h b/lib/envelope.h
deleted file mode 100644
index efc02429..00000000
--- a/lib/envelope.h
+++ /dev/null
@@ -1,48 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: PCM data envelope analysis and manipulation
- last mod: $Id: envelope.h,v 1.18 2001/12/20 01:00:26 segher Exp $
-
- ********************************************************************/
-
-#ifndef _V_ENVELOPE_
-#define _V_ENVELOPE_
-
-#include "iir.h"
-#include "smallft.h"
-
-typedef struct {
- int ch;
- int winlength;
- int searchstep;
- float minenergy;
-
- IIR_state *iir;
- float **filtered;
-
- long storage;
- long current;
- long mark;
- long prevmark;
- long cursor;
-} envelope_lookup;
-
-extern void _ve_envelope_init(envelope_lookup *e,vorbis_info *vi);
-extern void _ve_envelope_clear(envelope_lookup *e);
-extern long _ve_envelope_search(vorbis_dsp_state *v);
-extern void _ve_envelope_shift(envelope_lookup *e,long shift);
-extern int _ve_envelope_mark(vorbis_dsp_state *v);
-
-
-#endif
-
diff --git a/lib/floor0.c b/lib/floor0.c
deleted file mode 100644
index 846e5309..00000000
--- a/lib/floor0.c
+++ /dev/null
@@ -1,468 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2002 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: floor backend 0 implementation
- last mod: $Id: floor0.c,v 1.50 2002/01/22 08:06:06 xiphmont Exp $
-
- ********************************************************************/
-
-#include <stdlib.h>
-#include <string.h>
-#include <math.h>
-#include <ogg/ogg.h>
-#include "vorbis/codec.h"
-#include "codec_internal.h"
-#include "registry.h"
-#include "lpc.h"
-#include "lsp.h"
-#include "codebook.h"
-#include "scales.h"
-#include "misc.h"
-#include "os.h"
-
-#include "misc.h"
-#include <stdio.h>
-
-typedef struct {
- long n;
- int ln;
- int m;
- int *linearmap;
-
- vorbis_info_floor0 *vi;
- lpc_lookup lpclook;
- float *lsp_look;
-
- long bits;
- long frames;
-} vorbis_look_floor0;
-
-/* infrastructure for finding fit */
-static long _f0_fit(codebook *book,
- float *orig,
- float *workfit,
- int cursor){
- int dim=book->dim;
- float norm,base=0.f;
- int i,best=0;
- float *lsp=workfit+cursor;
-
- if(cursor)base=workfit[cursor-1];
- norm=orig[cursor+dim-1]-base;
-
- for(i=0;i<dim;i++)
- lsp[i]=(orig[i+cursor]-base);
- best=_best(book,lsp,1);
-
- memcpy(lsp,book->valuelist+best*dim,dim*sizeof(*lsp));
- for(i=0;i<dim;i++)
- lsp[i]+=base;
- return(best);
-}
-
-/***********************************************/
-
-static vorbis_info_floor *floor0_copy_info (vorbis_info_floor *i){
- vorbis_info_floor0 *info=(vorbis_info_floor0 *)i;
- vorbis_info_floor0 *ret=_ogg_malloc(sizeof(*ret));
- memcpy(ret,info,sizeof(*ret));
- return(ret);
-}
-
-static void floor0_free_info(vorbis_info_floor *i){
- vorbis_info_floor0 *info=(vorbis_info_floor0 *)i;
- if(info){
- memset(info,0,sizeof(*info));
- _ogg_free(info);
- }
-}
-
-static void floor0_free_look(vorbis_look_floor *i){
- vorbis_look_floor0 *look=(vorbis_look_floor0 *)i;
- if(look){
-
- /*fprintf(stderr,"floor 0 bit usage %f\n",
- (float)look->bits/look->frames);*/
-
- if(look->linearmap)_ogg_free(look->linearmap);
- if(look->lsp_look)_ogg_free(look->lsp_look);
- lpc_clear(&look->lpclook);
- memset(look,0,sizeof(*look));
- _ogg_free(look);
- }
-}
-
-static void floor0_pack (vorbis_info_floor *i,oggpack_buffer *opb){
- vorbis_info_floor0 *info=(vorbis_info_floor0 *)i;
- int j;
- oggpack_write(opb,info->order,8);
- oggpack_write(opb,info->rate,16);
- oggpack_write(opb,info->barkmap,16);
- oggpack_write(opb,info->ampbits,6);
- oggpack_write(opb,info->ampdB,8);
- oggpack_write(opb,info->numbooks-1,4);
- for(j=0;j<info->numbooks;j++)
- oggpack_write(opb,info->books[j],8);
-}
-
-static vorbis_info_floor *floor0_unpack (vorbis_info *vi,oggpack_buffer *opb){
- codec_setup_info *ci=vi->codec_setup;
- int j;
-
- vorbis_info_floor0 *info=_ogg_malloc(sizeof(*info));
- info->order=oggpack_read(opb,8);
- info->rate=oggpack_read(opb,16);
- info->barkmap=oggpack_read(opb,16);
- info->ampbits=oggpack_read(opb,6);
- info->ampdB=oggpack_read(opb,8);
- info->numbooks=oggpack_read(opb,4)+1;
-
- if(info->order<1)goto err_out;
- if(info->rate<1)goto err_out;
- if(info->barkmap<1)goto err_out;
- if(info->numbooks<1)goto err_out;
-
- for(j=0;j<info->numbooks;j++){
- info->books[j]=oggpack_read(opb,8);
- if(info->books[j]<0 || info->books[j]>=ci->books)goto err_out;
- }
- return(info);
-
- err_out:
- floor0_free_info(info);
- return(NULL);
-}
-
-/* initialize Bark scale and normalization lookups. We could do this
- with static tables, but Vorbis allows a number of possible
- combinations, so it's best to do it computationally.
-
- The below is authoritative in terms of defining scale mapping.
- Note that the scale depends on the sampling rate as well as the
- linear block and mapping sizes */
-
-static vorbis_look_floor *floor0_look (vorbis_dsp_state *vd,vorbis_info_mode *mi,
- vorbis_info_floor *i){
- int j;
- float scale;
- vorbis_info *vi=vd->vi;
- codec_setup_info *ci=vi->codec_setup;
- vorbis_info_floor0 *info=(vorbis_info_floor0 *)i;
- vorbis_look_floor0 *look=_ogg_calloc(1,sizeof(*look));
- look->m=info->order;
- look->n=ci->blocksizes[mi->blockflag]/2;
- look->ln=info->barkmap;
- look->vi=info;
-
- if(vd->analysisp)
- lpc_init(&look->lpclook,look->ln,look->m);
-
- /* we choose a scaling constant so that:
- floor(bark(rate/2-1)*C)=mapped-1
- floor(bark(rate/2)*C)=mapped */
- scale=look->ln/toBARK(info->rate/2.f);
-
- /* the mapping from a linear scale to a smaller bark scale is
- straightforward. We do *not* make sure that the linear mapping
- does not skip bark-scale bins; the decoder simply skips them and
- the encoder may do what it wishes in filling them. They're
- necessary in some mapping combinations to keep the scale spacing
- accurate */
- look->linearmap=_ogg_malloc((look->n+1)*sizeof(*look->linearmap));
- for(j=0;j<look->n;j++){
- int val=floor( toBARK((info->rate/2.f)/look->n*j)
- *scale); /* bark numbers represent band edges */
- if(val>=look->ln)val=look->ln; /* guard against the approximation */
- look->linearmap[j]=val;
- }
- look->linearmap[j]=-1;
-
- look->lsp_look=_ogg_malloc(look->ln*sizeof(*look->lsp_look));
- for(j=0;j<look->ln;j++)
- look->lsp_look[j]=2*cos(M_PI/look->ln*j);
-
- return look;
-}
-
-/* less efficient than the decode side (written for clarity). We're
- not bottlenecked here anyway */
-
-float _curve_to_lpc(float *curve,float *lpc,
- vorbis_look_floor0 *l){
- /* map the input curve to a bark-scale curve for encoding */
-
- int mapped=l->ln;
- float *work=alloca(sizeof(*work)*mapped);
- int i,j,last=0;
- int bark=0;
- static int seq=0;
-
- memset(work,0,sizeof(*work)*mapped);
-
- /* Only the decode side is behavior-specced; for now in the encoder,
- we select the maximum value of each band as representative (this
- helps make sure peaks don't go out of range. In error terms,
- selecting min would make more sense, but the codebook is trained
- numerically, so we don't actually lose. We'd still want to
- use the original curve for error and noise estimation */
-
- for(i=0;i<l->n;i++){
- bark=l->linearmap[i];
- if(work[bark]<curve[i])work[bark]=curve[i];
- if(bark>last+1){
- /* If the bark scale is climbing rapidly, some bins may end up
- going unused. This isn't a waste actually; it keeps the
- scale resolution even so that the LPC generator has an easy
- time. However, if we leave the bins empty we lose energy.
- So, fill 'em in. The decoder does not do anything with he
- unused bins, so we can fill them anyway we like to end up
- with a better spectral curve */
-
- /* we'll always have a bin zero, so we don't need to guard init */
- long span=bark-last;
- for(j=1;j<span;j++){
- float del=(float)j/span;
- work[j+last]=work[bark]*del+work[last]*(1.f-del);
- }
- }
- last=bark;
- }
-
- /* If we're over-ranged to avoid edge effects, fill in the end of spectrum gap */
- for(i=bark+1;i<mapped;i++)
- work[i]=work[i-1];
-
-
- /**********************/
-
- for(i=0;i<l->n;i++)
- curve[i]-=150;
-
- _analysis_output("barkfloor",seq,work,bark,0,0);
- _analysis_output("barkcurve",seq++,curve,l->n,1,0);
-
- for(i=0;i<l->n;i++)
- curve[i]+=150;
-
- /**********************/
-
- return vorbis_lpc_from_curve(work,lpc,&(l->lpclook));
-}
-
-static int floor0_forward(vorbis_block *vb,vorbis_look_floor *in,
- float *mdct, const float *logmdct, /* in */
- const float *logmask, const float *logmax, /* in */
- float *codedflr){ /* out */
- long j;
- vorbis_look_floor0 *look=(vorbis_look_floor0 *)in;
- vorbis_info_floor0 *info=look->vi;
- float amp;
- long val=0;
- static int seq=0;
-
-#ifdef TRAIN_LSP
- FILE *of;
- FILE *ef;
- char buffer[80];
-
-#if 1
- sprintf(buffer,"lsp0coeff_%d.vqd",vb->mode);
- of=fopen(buffer,"a");
-#endif
-#endif
-
- seq++;
-
-
- /* our floor comes in on a [-Inf...0] dB scale. The curve has to be
- positive, so we offset it. */
-
- for(j=0;j<look->n;j++)
- codedflr[j]=logmask[j]+info->ampdB;
-
- /* use 'out' as temp storage */
- /* Convert our floor to a set of lpc coefficients */
- amp=sqrt(_curve_to_lpc(codedflr,codedflr,look));
-
- /* amp is in the range (0. to ampdB]. Encode that range using
- ampbits bits */
-
- {
- long maxval=(1L<<info->ampbits)-1;
-
- val=rint(amp/info->ampdB*maxval);
-
- if(val<0)val=0; /* likely */
- if(val>maxval)val=maxval; /* not bloody likely */
-
- if(val>0)
- amp=(float)val/maxval*info->ampdB;
- else
- amp=0;
- }
-
- if(val){
- /* LSP <-> LPC is orthogonal and LSP quantizes more stably */
- _analysis_output("lpc",seq-1,codedflr,look->m,0,0);
- if(vorbis_lpc_to_lsp(codedflr,codedflr,look->m))
- val=0;
-
- }
-
- oggpack_write(&vb->opb,val,info->ampbits);
- look->bits+=info->ampbits+1;
- look->frames++;
-
- if(val){
- float *lspwork=alloca(look->m*sizeof(*lspwork));
-
- /* the spec supports using one of a number of codebooks. Right
- now, encode using this lib supports only one */
- codec_setup_info *ci=vb->vd->vi->codec_setup;
- codebook *b;
- int booknum;
-
- _analysis_output("lsp",seq-1,codedflr,look->m,0,0);
-
- /* which codebook to use? We do it only by range right now. */
- if(info->numbooks>1){
- float last=0.;
- for(j=0;j<look->m;j++){
- float val=codedflr[j]-last;
- if(val<info->lessthan || val>info->greaterthan)break;
- last=codedflr[j];
- }
- if(j<look->m)
- booknum=0;
- else
- booknum=1;
- }else
- booknum=0;
-
- b=ci->fullbooks+info->books[booknum];
- oggpack_write(&vb->opb,booknum,_ilog(info->numbooks));
- look->bits+=_ilog(info->numbooks);
-
-#ifdef TRAIN_LSP
- {
- float last=0.f;
- for(j=0;j<look->m;j++){
- fprintf(of,"%.12g, ",codedflr[j]-last);
- last=codedflr[j];
- }
- }
- fprintf(of,"\n");
- fclose(of);
-
- sprintf(buffer,"lsp0ent_m%d_b%d.vqd",vb->mode,booknum);
- ef=fopen(buffer,"a");
-
-#endif
-
- /* code the spectral envelope, and keep track of the actual
- quantized values; we don't want creeping error as each block is
- nailed to the last quantized value of the previous block. */
-
- for(j=0;j<look->m;j+=b->dim){
- int entry=_f0_fit(b,codedflr,lspwork,j);
- look->bits+=vorbis_book_encode(b,entry,&vb->opb);
-
-#ifdef TRAIN_LSP
- fprintf(ef,"%d,\n",entry);
-#endif
-
- }
-
-#ifdef TRAIN_LSP
- fclose(ef);
-#endif
-
- _analysis_output("lsp2",seq-1,lspwork,look->m,0,0);
-
- /* take the coefficients back to a spectral envelope curve */
- for(j=0;j<look->n;j++)
- codedflr[j]=1.f;
- vorbis_lsp_to_curve(codedflr,look->linearmap,look->n,look->ln,
- lspwork,look->m,amp,(float)info->ampdB);
-
- _analysis_output("barklsp",seq-1,codedflr,look->n,1,1);
- _analysis_output("lsp3",seq-1,codedflr,look->n,0,1);
-
- return(val);
- }
-
-#ifdef TRAIN_LSP
- fclose(of);
-#endif
-
- memset(codedflr,0,sizeof(*codedflr)*look->n);
- memset(mdct,0,sizeof(*mdct)*look->n);
- return(val);
-}
-
-static void *floor0_inverse1(vorbis_block *vb,vorbis_look_floor *i){
- vorbis_look_floor0 *look=(vorbis_look_floor0 *)i;
- vorbis_info_floor0 *info=look->vi;
- int j,k;
-
- int ampraw=oggpack_read(&vb->opb,info->ampbits);
- if(ampraw>0){ /* also handles the -1 out of data case */
- long maxval=(1<<info->ampbits)-1;
- float amp=(float)ampraw/maxval*info->ampdB;
- int booknum=oggpack_read(&vb->opb,_ilog(info->numbooks));
-
- if(booknum!=-1 && booknum<info->numbooks){ /* be paranoid */
- codec_setup_info *ci=vb->vd->vi->codec_setup;
- codebook *b=ci->fullbooks+info->books[booknum];
- float last=0.f;
- float *lsp=_vorbis_block_alloc(vb,sizeof(*lsp)*(look->m+1));
-
- for(j=0;j<look->m;j+=b->dim)
- if(vorbis_book_decodev_set(b,lsp+j,&vb->opb,b->dim)==-1)goto eop;
- for(j=0;j<look->m;){
- for(k=0;k<b->dim;k++,j++)lsp[j]+=last;
- last=lsp[j-1];
- }
-
- lsp[look->m]=amp;
- return(lsp);
- }
- }
- eop:
- return(NULL);
-}
-
-static int floor0_inverse2(vorbis_block *vb,vorbis_look_floor *i,
- void *memo,float *out){
- vorbis_look_floor0 *look=(vorbis_look_floor0 *)i;
- vorbis_info_floor0 *info=look->vi;
-
- if(memo){
- float *lsp=(float *)memo;
- float amp=lsp[look->m];
-
- /* take the coefficients back to a spectral envelope curve */
- vorbis_lsp_to_curve(out,look->linearmap,look->n,look->ln,
- lsp,look->m,amp,(float)info->ampdB);
- return(1);
- }
- memset(out,0,sizeof(*out)*look->n);
- return(0);
-}
-
-/* export hooks */
-vorbis_func_floor floor0_exportbundle={
- &floor0_pack,&floor0_unpack,&floor0_look,&floor0_copy_info,&floor0_free_info,
- &floor0_free_look,&floor0_forward,&floor0_inverse1,&floor0_inverse2
-};
-
-
diff --git a/lib/floor1.c b/lib/floor1.c
deleted file mode 100644
index ff0713a4..00000000
--- a/lib/floor1.c
+++ /dev/null
@@ -1,1152 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2002 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: floor backend 1 implementation
- last mod: $Id: floor1.c,v 1.20 2002/01/22 08:06:06 xiphmont Exp $
-
- ********************************************************************/
-
-#include <stdlib.h>
-#include <string.h>
-#include <math.h>
-#include <ogg/ogg.h>
-#include "vorbis/codec.h"
-#include "codec_internal.h"
-#include "registry.h"
-#include "codebook.h"
-#include "misc.h"
-#include "scales.h"
-
-#include <stdio.h>
-
-#define floor1_rangedB 140 /* floor 1 fixed at -140dB to 0dB range */
-
-typedef struct {
- int sorted_index[VIF_POSIT+2];
- int forward_index[VIF_POSIT+2];
- int reverse_index[VIF_POSIT+2];
-
- int hineighbor[VIF_POSIT];
- int loneighbor[VIF_POSIT];
- int posts;
-
- int n;
- int quant_q;
- vorbis_info_floor1 *vi;
-
- long phrasebits;
- long postbits;
- long frames;
-} vorbis_look_floor1;
-
-typedef struct lsfit_acc{
- long x0;
- long x1;
-
- long xa;
- long ya;
- long x2a;
- long y2a;
- long xya;
- long n;
- long an;
- long un;
- long edgey0;
- long edgey1;
-} lsfit_acc;
-
-/***********************************************/
-
-static vorbis_info_floor *floor1_copy_info (vorbis_info_floor *i){
- vorbis_info_floor1 *info=(vorbis_info_floor1 *)i;
- vorbis_info_floor1 *ret=_ogg_malloc(sizeof(*ret));
- memcpy(ret,info,sizeof(*ret));
- return(ret);
-}
-
-static void floor1_free_info(vorbis_info_floor *i){
- vorbis_info_floor1 *info=(vorbis_info_floor1 *)i;
- if(info){
- memset(info,0,sizeof(*info));
- _ogg_free(info);
- }
-}
-
-static void floor1_free_look(vorbis_look_floor *i){
- vorbis_look_floor1 *look=(vorbis_look_floor1 *)i;
- if(look){
- /*fprintf(stderr,"floor 1 bit usage %f:%f (%f total)\n",
- (float)look->phrasebits/look->frames,
- (float)look->postbits/look->frames,
- (float)(look->postbits+look->phrasebits)/look->frames);*/
-
- memset(look,0,sizeof(*look));
- _ogg_free(look);
- }
-}
-
-static int ilog(unsigned int v){
- int ret=0;
- while(v){
- ret++;
- v>>=1;
- }
- return(ret);
-}
-
-static int ilog2(unsigned int v){
- int ret=0;
- while(v>1){
- ret++;
- v>>=1;
- }
- return(ret);
-}
-
-static void floor1_pack (vorbis_info_floor *i,oggpack_buffer *opb){
- vorbis_info_floor1 *info=(vorbis_info_floor1 *)i;
- int j,k;
- int count=0;
- int rangebits;
- int maxposit=info->postlist[1];
- int maxclass=-1;
-
- /* save out partitions */
- oggpack_write(opb,info->partitions,5); /* only 0 to 31 legal */
- for(j=0;j<info->partitions;j++){
- oggpack_write(opb,info->partitionclass[j],4); /* only 0 to 15 legal */
- if(maxclass<info->partitionclass[j])maxclass=info->partitionclass[j];
- }
-
- /* save out partition classes */
- for(j=0;j<maxclass+1;j++){
- oggpack_write(opb,info->class_dim[j]-1,3); /* 1 to 8 */
- oggpack_write(opb,info->class_subs[j],2); /* 0 to 3 */
- if(info->class_subs[j])oggpack_write(opb,info->class_book[j],8);
- for(k=0;k<(1<<info->class_subs[j]);k++)
- oggpack_write(opb,info->class_subbook[j][k]+1,8);
- }
-
- /* save out the post list */
- oggpack_write(opb,info->mult-1,2); /* only 1,2,3,4 legal now */
- oggpack_write(opb,ilog2(maxposit),4);
- rangebits=ilog2(maxposit);
-
- for(j=0,k=0;j<info->partitions;j++){
- count+=info->class_dim[info->partitionclass[j]];
- for(;k<count;k++)
- oggpack_write(opb,info->postlist[k+2],rangebits);
- }
-}
-
-
-static vorbis_info_floor *floor1_unpack (vorbis_info *vi,oggpack_buffer *opb){
- codec_setup_info *ci=vi->codec_setup;
- int j,k,count=0,maxclass=-1,rangebits;
-
- vorbis_info_floor1 *info=_ogg_calloc(1,sizeof(*info));
- /* read partitions */
- info->partitions=oggpack_read(opb,5); /* only 0 to 31 legal */
- for(j=0;j<info->partitions;j++){
- info->partitionclass[j]=oggpack_read(opb,4); /* only 0 to 15 legal */
- if(maxclass<info->partitionclass[j])maxclass=info->partitionclass[j];
- }
-
- /* read partition classes */
- for(j=0;j<maxclass+1;j++){
- info->class_dim[j]=oggpack_read(opb,3)+1; /* 1 to 8 */
- info->class_subs[j]=oggpack_read(opb,2); /* 0,1,2,3 bits */
- if(info->class_subs[j]<0)
- goto err_out;
- if(info->class_subs[j])info->class_book[j]=oggpack_read(opb,8);
- if(info->class_book[j]<0 || info->class_book[j]>=ci->books)
- goto err_out;
- for(k=0;k<(1<<info->class_subs[j]);k++){
- info->class_subbook[j][k]=oggpack_read(opb,8)-1;
- if(info->class_subbook[j][k]<-1 || info->class_subbook[j][k]>=ci->books)
- goto err_out;
- }
- }
-
- /* read the post list */
- info->mult=oggpack_read(opb,2)+1; /* only 1,2,3,4 legal now */
- rangebits=oggpack_read(opb,4);
-
- for(j=0,k=0;j<info->partitions;j++){
- count+=info->class_dim[info->partitionclass[j]];
- for(;k<count;k++){
- int t=info->postlist[k+2]=oggpack_read(opb,rangebits);
- if(t<0 || t>=(1<<rangebits))
- goto err_out;
- }
- }
- info->postlist[0]=0;
- info->postlist[1]=1<<rangebits;
-
- return(info);
-
- err_out:
- floor1_free_info(info);
- return(NULL);
-}
-
-static int icomp(const void *a,const void *b){
- return(**(int **)a-**(int **)b);
-}
-
-static vorbis_look_floor *floor1_look(vorbis_dsp_state *vd,vorbis_info_mode *mi,
- vorbis_info_floor *in){
-
- int *sortpointer[VIF_POSIT+2];
- vorbis_info_floor1 *info=(vorbis_info_floor1 *)in;
- vorbis_look_floor1 *look=_ogg_calloc(1,sizeof(*look));
- int i,j,n=0;
-
- look->vi=info;
- look->n=info->postlist[1];
-
- /* we drop each position value in-between already decoded values,
- and use linear interpolation to predict each new value past the
- edges. The positions are read in the order of the position
- list... we precompute the bounding positions in the lookup. Of
- course, the neighbors can change (if a position is declined), but
- this is an initial mapping */
-
- for(i=0;i<info->partitions;i++)n+=info->class_dim[info->partitionclass[i]];
- n+=2;
- look->posts=n;
-
- /* also store a sorted position index */
- for(i=0;i<n;i++)sortpointer[i]=info->postlist+i;
- qsort(sortpointer,n,sizeof(*sortpointer),icomp);
-
- /* points from sort order back to range number */
- for(i=0;i<n;i++)look->forward_index[i]=sortpointer[i]-info->postlist;
- /* points from range order to sorted position */
- for(i=0;i<n;i++)look->reverse_index[look->forward_index[i]]=i;
- /* we actually need the post values too */
- for(i=0;i<n;i++)look->sorted_index[i]=info->postlist[look->forward_index[i]];
-
- /* quantize values to multiplier spec */
- switch(info->mult){
- case 1: /* 1024 -> 256 */
- look->quant_q=256;
- break;
- case 2: /* 1024 -> 128 */
- look->quant_q=128;
- break;
- case 3: /* 1024 -> 86 */
- look->quant_q=86;
- break;
- case 4: /* 1024 -> 64 */
- look->quant_q=64;
- break;
- }
-
- /* discover our neighbors for decode where we don't use fit flags
- (that would push the neighbors outward) */
- for(i=0;i<n-2;i++){
- int lo=0;
- int hi=1;
- int lx=0;
- int hx=look->n;
- int currentx=info->postlist[i+2];
- for(j=0;j<i+2;j++){
- int x=info->postlist[j];
- if(x>lx && x<currentx){
- lo=j;
- lx=x;
- }
- if(x<hx && x>currentx){
- hi=j;
- hx=x;
- }
- }
- look->loneighbor[i]=lo;
- look->hineighbor[i]=hi;
- }
-
- return(look);
-}
-
-static int render_point(int x0,int x1,int y0,int y1,int x){
- y0&=0x7fff; /* mask off flag */
- y1&=0x7fff;
-
- {
- int dy=y1-y0;
- int adx=x1-x0;
- int ady=abs(dy);
- int err=ady*(x-x0);
-
- int off=err/adx;
- if(dy<0)return(y0-off);
- return(y0+off);
- }
-}
-
-static int vorbis_dBquant(const float *x){
- int i= *x*7.3142857f+1023.5f;
- if(i>1023)return(1023);
- if(i<0)return(0);
- return i;
-}
-
-static float FLOOR_fromdB_LOOKUP[256]={
- 1.0649863e-07F, 1.1341951e-07F, 1.2079015e-07F, 1.2863978e-07F,
- 1.3699951e-07F, 1.4590251e-07F, 1.5538408e-07F, 1.6548181e-07F,
- 1.7623575e-07F, 1.8768855e-07F, 1.9988561e-07F, 2.128753e-07F,
- 2.2670913e-07F, 2.4144197e-07F, 2.5713223e-07F, 2.7384213e-07F,
- 2.9163793e-07F, 3.1059021e-07F, 3.3077411e-07F, 3.5226968e-07F,
- 3.7516214e-07F, 3.9954229e-07F, 4.2550680e-07F, 4.5315863e-07F,
- 4.8260743e-07F, 5.1396998e-07F, 5.4737065e-07F, 5.8294187e-07F,
- 6.2082472e-07F, 6.6116941e-07F, 7.0413592e-07F, 7.4989464e-07F,
- 7.9862701e-07F, 8.5052630e-07F, 9.0579828e-07F, 9.6466216e-07F,
- 1.0273513e-06F, 1.0941144e-06F, 1.1652161e-06F, 1.2409384e-06F,
- 1.3215816e-06F, 1.4074654e-06F, 1.4989305e-06F, 1.5963394e-06F,
- 1.7000785e-06F, 1.8105592e-06F, 1.9282195e-06F, 2.0535261e-06F,
- 2.1869758e-06F, 2.3290978e-06F, 2.4804557e-06F, 2.6416497e-06F,
- 2.8133190e-06F, 2.9961443e-06F, 3.1908506e-06F, 3.3982101e-06F,
- 3.6190449e-06F, 3.8542308e-06F, 4.1047004e-06F, 4.3714470e-06F,
- 4.6555282e-06F, 4.9580707e-06F, 5.2802740e-06F, 5.6234160e-06F,
- 5.9888572e-06F, 6.3780469e-06F, 6.7925283e-06F, 7.2339451e-06F,
- 7.7040476e-06F, 8.2047000e-06F, 8.7378876e-06F, 9.3057248e-06F,
- 9.9104632e-06F, 1.0554501e-05F, 1.1240392e-05F, 1.1970856e-05F,
- 1.2748789e-05F, 1.3577278e-05F, 1.4459606e-05F, 1.5399272e-05F,
- 1.6400004e-05F, 1.7465768e-05F, 1.8600792e-05F, 1.9809576e-05F,
- 2.1096914e-05F, 2.2467911e-05F, 2.3928002e-05F, 2.5482978e-05F,
- 2.7139006e-05F, 2.8902651e-05F, 3.0780908e-05F, 3.2781225e-05F,
- 3.4911534e-05F, 3.7180282e-05F, 3.9596466e-05F, 4.2169667e-05F,
- 4.4910090e-05F, 4.7828601e-05F, 5.0936773e-05F, 5.4246931e-05F,
- 5.7772202e-05F, 6.1526565e-05F, 6.5524908e-05F, 6.9783085e-05F,
- 7.4317983e-05F, 7.9147585e-05F, 8.4291040e-05F, 8.9768747e-05F,
- 9.5602426e-05F, 0.00010181521F, 0.00010843174F, 0.00011547824F,
- 0.00012298267F, 0.00013097477F, 0.00013948625F, 0.00014855085F,
- 0.00015820453F, 0.00016848555F, 0.00017943469F, 0.00019109536F,
- 0.00020351382F, 0.00021673929F, 0.00023082423F, 0.00024582449F,
- 0.00026179955F, 0.00027881276F, 0.00029693158F, 0.00031622787F,
- 0.00033677814F, 0.00035866388F, 0.00038197188F, 0.00040679456F,
- 0.00043323036F, 0.00046138411F, 0.00049136745F, 0.00052329927F,
- 0.00055730621F, 0.00059352311F, 0.00063209358F, 0.00067317058F,
- 0.00071691700F, 0.00076350630F, 0.00081312324F, 0.00086596457F,
- 0.00092223983F, 0.00098217216F, 0.0010459992F, 0.0011139742F,
- 0.0011863665F, 0.0012634633F, 0.0013455702F, 0.0014330129F,
- 0.0015261382F, 0.0016253153F, 0.0017309374F, 0.0018434235F,
- 0.0019632195F, 0.0020908006F, 0.0022266726F, 0.0023713743F,
- 0.0025254795F, 0.0026895994F, 0.0028643847F, 0.0030505286F,
- 0.0032487691F, 0.0034598925F, 0.0036847358F, 0.0039241906F,
- 0.0041792066F, 0.0044507950F, 0.0047400328F, 0.0050480668F,
- 0.0053761186F, 0.0057254891F, 0.0060975636F, 0.0064938176F,
- 0.0069158225F, 0.0073652516F, 0.0078438871F, 0.0083536271F,
- 0.0088964928F, 0.009474637F, 0.010090352F, 0.010746080F,
- 0.011444421F, 0.012188144F, 0.012980198F, 0.013823725F,
- 0.014722068F, 0.015678791F, 0.016697687F, 0.017782797F,
- 0.018938423F, 0.020169149F, 0.021479854F, 0.022875735F,
- 0.024362330F, 0.025945531F, 0.027631618F, 0.029427276F,
- 0.031339626F, 0.033376252F, 0.035545228F, 0.037855157F,
- 0.040315199F, 0.042935108F, 0.045725273F, 0.048696758F,
- 0.051861348F, 0.055231591F, 0.058820850F, 0.062643361F,
- 0.066714279F, 0.071049749F, 0.075666962F, 0.080584227F,
- 0.085821044F, 0.091398179F, 0.097337747F, 0.10366330F,
- 0.11039993F, 0.11757434F, 0.12521498F, 0.13335215F,
- 0.14201813F, 0.15124727F, 0.16107617F, 0.17154380F,
- 0.18269168F, 0.19456402F, 0.20720788F, 0.22067342F,
- 0.23501402F, 0.25028656F, 0.26655159F, 0.28387361F,
- 0.30232132F, 0.32196786F, 0.34289114F, 0.36517414F,
- 0.38890521F, 0.41417847F, 0.44109412F, 0.46975890F,
- 0.50028648F, 0.53279791F, 0.56742212F, 0.60429640F,
- 0.64356699F, 0.68538959F, 0.72993007F, 0.77736504F,
- 0.82788260F, 0.88168307F, 0.9389798F, 1.F,
-};
-
-static void render_line(int x0,int x1,int y0,int y1,float *d){
- int dy=y1-y0;
- int adx=x1-x0;
- int ady=abs(dy);
- int base=dy/adx;
- int sy=(dy<0?base-1:base+1);
- int x=x0;
- int y=y0;
- int err=0;
-
- ady-=abs(base*adx);
-
- d[x]*=FLOOR_fromdB_LOOKUP[y];
- while(++x<x1){
- err=err+ady;
- if(err>=adx){
- err-=adx;
- y+=sy;
- }else{
- y+=base;
- }
- d[x]*=FLOOR_fromdB_LOOKUP[y];
- }
-}
-
-static void render_line0(int x0,int x1,int y0,int y1,float *d){
- int dy=y1-y0;
- int adx=x1-x0;
- int ady=abs(dy);
- int base=dy/adx;
- int sy=(dy<0?base-1:base+1);
- int x=x0;
- int y=y0;
- int err=0;
-
- ady-=abs(base*adx);
-
- d[x]=FLOOR_fromdB_LOOKUP[y];
- while(++x<x1){
- err=err+ady;
- if(err>=adx){
- err-=adx;
- y+=sy;
- }else{
- y+=base;
- }
- d[x]=FLOOR_fromdB_LOOKUP[y];
- }
-}
-
-/* the floor has already been filtered to only include relevant sections */
-static int accumulate_fit(const float *flr,const float *mdct,
- int x0, int x1,lsfit_acc *a,
- int n,vorbis_info_floor1 *info){
- long i;
- int quantized=vorbis_dBquant(flr+x0);
-
- long xa=0,ya=0,x2a=0,y2a=0,xya=0,na=0, xb=0,yb=0,x2b=0,y2b=0,xyb=0,nb=0;
-
- memset(a,0,sizeof(*a));
- a->x0=x0;
- a->x1=x1;
- a->edgey0=quantized;
- if(x1>n)x1=n;
-
- for(i=x0;i<x1;i++){
- int quantized=vorbis_dBquant(flr+i);
- if(quantized){
- if(mdct[i]+info->twofitatten>=flr[i]){
- xa += i;
- ya += quantized;
- x2a += i*i;
- y2a += quantized*quantized;
- xya += i*quantized;
- na++;
- }else{
- xb += i;
- yb += quantized;
- x2b += i*i;
- y2b += quantized*quantized;
- xyb += i*quantized;
- nb++;
- }
- }
- }
-
- xb+=xa;
- yb+=ya;
- x2b+=x2a;
- y2b+=y2a;
- xyb+=xya;
- nb+=na;
-
- /* weight toward the actually used frequencies if we meet the threshhold */
- {
- int weight;
- if(nb<info->twofitminsize || na<info->twofitminused){
- weight=0;
- }else{
- weight=nb*info->twofitweight/na;
- }
- a->xa=xa*weight+xb;
- a->ya=ya*weight+yb;
- a->x2a=x2a*weight+x2b;
- a->y2a=y2a*weight+y2b;
- a->xya=xya*weight+xyb;
- a->an=na*weight+nb;
- a->n=nb;
- a->un=na;
- if(nb>=info->unusedminsize)a->un++;
- }
-
- a->edgey1=-200;
- if(x1<n){
- int quantized=vorbis_dBquant(flr+i);
- a->edgey1=quantized;
- }
- return(a->n);
-}
-
-/* returns < 0 on too few points to fit, >=0 (meansq error) on success */
-static int fit_line(lsfit_acc *a,int fits,int *y0,int *y1){
- long x=0,y=0,x2=0,y2=0,xy=0,n=0,an=0,i;
- long x0=a[0].x0;
- long x1=a[fits-1].x1;
-
- for(i=0;i<fits;i++){
- if(a[i].un){
- x+=a[i].xa;
- y+=a[i].ya;
- x2+=a[i].x2a;
- y2+=a[i].y2a;
- xy+=a[i].xya;
- n+=a[i].n;
- an+=a[i].an;
- }
- }
-
- if(*y0>=0){ /* hint used to break degenerate cases */
- x+= x0;
- y+= *y0;
- x2+= x0 * x0;
- y2+= *y0 * *y0;
- xy+= *y0 * x0;
- n++;
- an++;
- }
-
- if(*y1>=0){ /* hint used to break degenerate cases */
- x+= x1;
- y+= *y1;
- x2+= x1 * x1;
- y2+= *y1 * *y1;
- xy+= *y1 * x1;
- n++;
- an++;
- }
-
- if(n<2)return(n-2);
-
- {
- /* need 64 bit multiplies, which C doesn't give portably as int */
- double fx=x;
- double fy=y;
- double fx2=x2;
- double fxy=xy;
- double denom=1./(an*fx2-fx*fx);
- double a=(fy*fx2-fxy*fx)*denom;
- double b=(an*fxy-fx*fy)*denom;
- *y0=rint(a+b*x0);
- *y1=rint(a+b*x1);
-
- /* limit to our range! */
- if(*y0>1023)*y0=1023;
- if(*y1>1023)*y1=1023;
- if(*y0<0)*y0=0;
- if(*y1<0)*y1=0;
-
- return(0);
- }
-}
-
-/*static void fit_line_point(lsfit_acc *a,int fits,int *y0,int *y1){
- long y=0;
- int i;
-
- for(i=0;i<fits && y==0;i++)
- y+=a[i].ya;
-
- *y0=*y1=y;
- }*/
-
-static int inspect_error(int x0,int x1,int y0,int y1,const float *mask,
- const float *mdct,
- vorbis_info_floor1 *info){
- int dy=y1-y0;
- int adx=x1-x0;
- int ady=abs(dy);
- int base=dy/adx;
- int sy=(dy<0?base-1:base+1);
- int x=x0;
- int y=y0;
- int err=0;
- int val=vorbis_dBquant(mask+x);
- int mse=0;
- int n=0;
-
- ady-=abs(base*adx);
-
- if(mdct[x]+info->twofitatten>=mask[x]){
- if(y+info->maxover<val)return(1);
- if(y-info->maxunder>val)return(1);
- mse=(y-val);
- mse*=mse;
- n++;
- }
-
- while(++x<x1){
- err=err+ady;
- if(err>=adx){
- err-=adx;
- y+=sy;
- }else{
- y+=base;
- }
-
- if(mdct[x]+info->twofitatten>=mask[x]){
- val=vorbis_dBquant(mask+x);
- if(val){
- if(y+info->maxover<val)return(1);
- if(y-info->maxunder>val)return(1);
- mse+=((y-val)*(y-val));
- n++;
- }
- }
- }
-
- if(n){
- if(info->maxover*info->maxover/n>info->maxerr)return(0);
- if(info->maxunder*info->maxunder/n>info->maxerr)return(0);
- if(mse/n>info->maxerr)return(1);
- }
- return(0);
-}
-
-static int post_Y(int *A,int *B,int pos){
- if(A[pos]<0)
- return B[pos];
- if(B[pos]<0)
- return A[pos];
-
- return (A[pos]+B[pos])>>1;
-}
-
-static int floor1_forward(vorbis_block *vb,vorbis_look_floor *in,
- float *mdct, const float *logmdct, /* in */
- const float *logmask, const float *logmax, /* in */
- float *codedflr){ /* out */
- static int seq=0;
- long i,j,k,l;
- vorbis_look_floor1 *look=(vorbis_look_floor1 *)in;
- vorbis_info_floor1 *info=look->vi;
- long n=info->n;
- long posts=look->posts;
- long nonzero=0;
- lsfit_acc fits[VIF_POSIT+1];
- int fit_valueA[VIF_POSIT+2]; /* index by range list position */
- int fit_valueB[VIF_POSIT+2]; /* index by range list position */
- int fit_flag[VIF_POSIT+2];
-
- int loneighbor[VIF_POSIT+2]; /* sorted index of range list position (+2) */
- int hineighbor[VIF_POSIT+2];
- int memo[VIF_POSIT+2];
- codec_setup_info *ci=vb->vd->vi->codec_setup;
- static_codebook **sbooks=ci->book_param;
- codebook *books=NULL;
- int writeflag=0;
-
- if(vb->vd->backend_state){
- books=ci->fullbooks;
- writeflag=1;
- }
-
- memset(fit_flag,0,sizeof(fit_flag));
- for(i=0;i<posts;i++)loneighbor[i]=0; /* 0 for the implicit 0 post */
- for(i=0;i<posts;i++)hineighbor[i]=1; /* 1 for the implicit post at n */
- for(i=0;i<posts;i++)memo[i]=-1; /* no neighbor yet */
-
- /* Scan back from high edge to first 'used' frequency */
- for(;n>info->unusedmin_n;n--)
- if(logmdct[n-1]>-floor1_rangedB &&
- logmdct[n-1]+info->twofitatten>logmask[n-1])break;
-
- /* quantize the relevant floor points and collect them into line fit
- structures (one per minimal division) at the same time */
- if(posts==0){
- nonzero+=accumulate_fit(logmask,logmax,0,n,fits,n,info);
- }else{
- for(i=0;i<posts-1;i++)
- nonzero+=accumulate_fit(logmask,logmax,look->sorted_index[i],
- look->sorted_index[i+1],fits+i,
- n,info);
- }
-
- if(nonzero){
- /* start by fitting the implicit base case.... */
- int y0=-200;
- int y1=-200;
- int mse=fit_line(fits,posts-1,&y0,&y1);
- if(mse<0){
- /* Only a single nonzero point */
- y0=-200;
- y1=0;
- fit_line(fits,posts-1,&y0,&y1);
- }
-
- fit_flag[0]=1;
- fit_flag[1]=1;
- fit_valueA[0]=y0;
- fit_valueB[0]=y0;
- fit_valueB[1]=y1;
- fit_valueA[1]=y1;
-
- if(mse>=0){
- /* Non degenerate case */
- /* start progressive splitting. This is a greedy, non-optimal
- algorithm, but simple and close enough to the best
- answer. */
- for(i=2;i<posts;i++){
- int sortpos=look->reverse_index[i];
- int ln=loneighbor[sortpos];
- int hn=hineighbor[sortpos];
-
- /* eliminate repeat searches of a particular range with a memo */
- if(memo[ln]!=hn){
- /* haven't performed this error search yet */
- int lsortpos=look->reverse_index[ln];
- int hsortpos=look->reverse_index[hn];
- memo[ln]=hn;
-
- /* if this is an empty segment, its endpoints don't matter.
- Mark as such */
- for(j=lsortpos;j<hsortpos;j++)
- if(fits[j].un)break;
- if(j==hsortpos){
- /* empty segment; important to note that this does not
- break 0/n post case */
- fit_valueB[ln]=-200;
- if(fit_valueA[ln]<0)
- fit_flag[ln]=0;
- fit_valueA[hn]=-200;
- if(fit_valueB[hn]<0)
- fit_flag[hn]=0;
-
- }else{
- /* A note: we want to bound/minimize *local*, not global, error */
- int lx=info->postlist[ln];
- int hx=info->postlist[hn];
- int ly=post_Y(fit_valueA,fit_valueB,ln);
- int hy=post_Y(fit_valueA,fit_valueB,hn);
-
- if(inspect_error(lx,hx,ly,hy,logmask,logmdct,info)){
- /* outside error bounds/begin search area. Split it. */
- int ly0=-200;
- int ly1=-200;
- int hy0=-200;
- int hy1=-200;
- int lmse=fit_line(fits+lsortpos,sortpos-lsortpos,&ly0,&ly1);
- int hmse=fit_line(fits+sortpos,hsortpos-sortpos,&hy0,&hy1);
-
- /* the boundary/sparsity cases are the hard part. They
- don't happen often given that we use the full mask
- curve (weighted) now, but when they do happen they
- can go boom. Pay them detailed attention */
- /* cases for a segment:
- >=0) normal fit (>=2 unique points)
- -1) one point on x0;
- one point on x1; <-- disallowed by fit_line
- -2) one point in between x0 and x1
- -3) no points */
-
- switch(lmse){
- case -2:
- /* no points in the low segment */
- break;
- case -1:
- ly0=fits[lsortpos].edgey0;
- break;
- /*default:
- break;*/
- }
-
- switch(hmse){
- case -2:
- /* no points in the hi segment */
- break;
- case -1:
- hy0=fits[sortpos].edgey0;
- break;
- }
-
- /* store new edge values */
- fit_valueB[ln]=ly0;
- if(ln==0 && ly0>=0)fit_valueA[ln]=ly0;
- fit_valueA[i]=ly1;
- fit_valueB[i]=hy0;
- fit_valueA[hn]=hy1;
- if(hn==1 && hy1>=0)fit_valueB[hn]=hy1;
-
- if(ly0<0 && fit_valueA[ln]<0)
- fit_flag[ln]=0;
- if(hy1<0 && fit_valueB[hn]<0)
- fit_flag[hn]=0;
-
- if(ly1>=0 || hy0>=0){
- /* store new neighbor values */
- for(j=sortpos-1;j>=0;j--)
- if(hineighbor[j]==hn)
- hineighbor[j]=i;
- else
- break;
- for(j=sortpos+1;j<posts;j++)
- if(loneighbor[j]==ln)
- loneighbor[j]=i;
- else
- break;
-
- /* store flag (set) */
- fit_flag[i]=1;
- }
- }
- }
- }
- }
- }
-
- /* quantize values to multiplier spec */
- switch(info->mult){
- case 1: /* 1024 -> 256 */
- for(i=0;i<posts;i++)
- if(fit_flag[i])
- fit_valueA[i]=post_Y(fit_valueA,fit_valueB,i)>>2;
- break;
- case 2: /* 1024 -> 128 */
- for(i=0;i<posts;i++)
- if(fit_flag[i])
- fit_valueA[i]=post_Y(fit_valueA,fit_valueB,i)>>3;
- break;
- case 3: /* 1024 -> 86 */
- for(i=0;i<posts;i++)
- if(fit_flag[i])
- fit_valueA[i]=post_Y(fit_valueA,fit_valueB,i)/12;
- break;
- case 4: /* 1024 -> 64 */
- for(i=0;i<posts;i++)
- if(fit_flag[i])
- fit_valueA[i]=post_Y(fit_valueA,fit_valueB,i)>>4;
- break;
- }
-
- /* find prediction values for each post and subtract them */
- for(i=2;i<posts;i++){
- int sp=look->reverse_index[i];
- int ln=look->loneighbor[i-2];
- int hn=look->hineighbor[i-2];
- int x0=info->postlist[ln];
- int x1=info->postlist[hn];
- int y0=fit_valueA[ln];
- int y1=fit_valueA[hn];
-
- int predicted=render_point(x0,x1,y0,y1,info->postlist[i]);
-
- if(fit_flag[i]){
- int headroom=(look->quant_q-predicted<predicted?
- look->quant_q-predicted:predicted);
-
- int val=fit_valueA[i]-predicted;
-
- /* at this point the 'deviation' value is in the range +/- max
- range, but the real, unique range can always be mapped to
- only [0-maxrange). So we want to wrap the deviation into
- this limited range, but do it in the way that least screws
- an essentially gaussian probability distribution. */
-
- if(val<0)
- if(val<-headroom)
- val=headroom-val-1;
- else
- val=-1-(val<<1);
- else
- if(val>=headroom)
- val= val+headroom;
- else
- val<<=1;
-
- fit_valueB[i]=val;
-
- /* unroll the neighbor arrays */
- for(j=sp+1;j<posts;j++)
- if(loneighbor[j]==i)
- loneighbor[j]=loneighbor[sp];
- else
- break;
- for(j=sp-1;j>=0;j--)
- if(hineighbor[j]==i)
- hineighbor[j]=hineighbor[sp];
- else
- break;
-
- }else{
- fit_valueA[i]=predicted;
- fit_valueB[i]=0;
- }
- if(fit_valueB[i]==0)
- fit_valueA[i]|=0x8000;
- else{
- fit_valueA[look->loneighbor[i-2]]&=0x7fff;
- fit_valueA[look->hineighbor[i-2]]&=0x7fff;
- }
- }
-
- /* we have everything we need. pack it out */
- /* mark nontrivial floor */
- if(writeflag){
- oggpack_write(&vb->opb,1,1);
-
- /* beginning/end post */
- look->frames++;
- look->postbits+=ilog(look->quant_q-1)*2;
- oggpack_write(&vb->opb,fit_valueA[0],ilog(look->quant_q-1));
- oggpack_write(&vb->opb,fit_valueA[1],ilog(look->quant_q-1));
-
-
- /* partition by partition */
- for(i=0,j=2;i<info->partitions;i++){
- int class=info->partitionclass[i];
- int cdim=info->class_dim[class];
- int csubbits=info->class_subs[class];
- int csub=1<<csubbits;
- int bookas[8]={0,0,0,0,0,0,0,0};
- int cval=0;
- int cshift=0;
-
- /* generate the partition's first stage cascade value */
- if(csubbits){
- int maxval[8];
- for(k=0;k<csub;k++){
- int booknum=info->class_subbook[class][k];
- if(booknum<0){
- maxval[k]=1;
- }else{
- maxval[k]=sbooks[info->class_subbook[class][k]]->entries;
- }
- }
- for(k=0;k<cdim;k++){
- for(l=0;l<csub;l++){
- int val=fit_valueB[j+k];
- if(val<maxval[l]){
- bookas[k]=l;
- break;
- }
- }
- cval|= bookas[k]<<cshift;
- cshift+=csubbits;
- }
- /* write it */
- look->phrasebits+=
- vorbis_book_encode(books+info->class_book[class],cval,&vb->opb);
-
-#ifdef TRAIN_FLOOR1
- {
- FILE *of;
- char buffer[80];
- sprintf(buffer,"line_%dx%ld_class%d.vqd",
- vb->pcmend/2,posts-2,class);
- of=fopen(buffer,"a");
- fprintf(of,"%d\n",cval);
- fclose(of);
- }
-#endif
- }
-
- /* write post values */
- for(k=0;k<cdim;k++){
- int book=info->class_subbook[class][bookas[k]];
- if(book>=0){
- /* hack to allow training with 'bad' books */
- if(fit_valueB[j+k]<(books+book)->entries)
- look->postbits+=vorbis_book_encode(books+book,
- fit_valueB[j+k],&vb->opb);
- /*else
- fprintf(stderr,"+!");*/
-
-#ifdef TRAIN_FLOOR1
- {
- FILE *of;
- char buffer[80];
- sprintf(buffer,"line_%dx%ld_%dsub%d.vqd",
- vb->pcmend/2,posts-2,class,bookas[k]);
- of=fopen(buffer,"a");
- fprintf(of,"%d\n",fit_valueB[j+k]);
- fclose(of);
- }
-#endif
- }
- }
- j+=cdim;
- }
- }
-
- {
- /* generate quantized floor equivalent to what we'd unpack in decode */
- int hx;
- int lx=0;
- int ly=fit_valueA[0]*info->mult;
-
- for(j=1;j<posts;j++){
- int current=look->forward_index[j];
- if(!(fit_valueA[current]&0x8000)){
- int hy=(fit_valueA[current]&0x7fff)*info->mult;
- hx=info->postlist[current];
-
- render_line0(lx,hx,ly,hy,codedflr);
-
- lx=hx;
- ly=hy;
- }
- }
- for(j=lx;j<vb->pcmend/2;j++)codedflr[j]=codedflr[j-1]; /* be certain */
-
- /* use it to create residue vector. Eliminate mdct elements
- that were below the error training attenuation relative to
- the original mask. This avoids portions of the floor fit
- that were considered 'unused' in fitting from being used in
- coding residue if the unfit values are significantly below
- the original input mask */
-
- for(j=0;j<n;j++)
- if(logmdct[j]+info->twofitatten<logmask[j])
- mdct[j]=0.f;
- for(j=n;j<vb->pcmend/2;j++)mdct[j]=0.f;
-
- }
-
- }else{
- if(writeflag)oggpack_write(&vb->opb,0,1);
- memset(codedflr,0,n*sizeof(*codedflr));
- memset(mdct,0,n*sizeof(*mdct));
- }
- seq++;
- return(nonzero);
-}
-
-static void *floor1_inverse1(vorbis_block *vb,vorbis_look_floor *in){
- vorbis_look_floor1 *look=(vorbis_look_floor1 *)in;
- vorbis_info_floor1 *info=look->vi;
- codec_setup_info *ci=vb->vd->vi->codec_setup;
-
- int i,j,k;
- codebook *books=ci->fullbooks;
-
- /* unpack wrapped/predicted values from stream */
- if(oggpack_read(&vb->opb,1)==1){
- int *fit_value=_vorbis_block_alloc(vb,(look->posts)*sizeof(*fit_value));
-
- fit_value[0]=oggpack_read(&vb->opb,ilog(look->quant_q-1));
- fit_value[1]=oggpack_read(&vb->opb,ilog(look->quant_q-1));
-
- /* partition by partition */
- /* partition by partition */
- for(i=0,j=2;i<info->partitions;i++){
- int class=info->partitionclass[i];
- int cdim=info->class_dim[class];
- int csubbits=info->class_subs[class];
- int csub=1<<csubbits;
- int cval=0;
-
- /* decode the partition's first stage cascade value */
- if(csubbits){
- cval=vorbis_book_decode(books+info->class_book[class],&vb->opb);
-
- if(cval==-1)goto eop;
- }
-
- for(k=0;k<cdim;k++){
- int book=info->class_subbook[class][cval&(csub-1)];
- cval>>=csubbits;
- if(book>=0){
- if((fit_value[j+k]=vorbis_book_decode(books+book,&vb->opb))==-1)
- goto eop;
- }else{
- fit_value[j+k]=0;
- }
- }
- j+=cdim;
- }
-
- /* unwrap positive values and reconsitute via linear interpolation */
- for(i=2;i<look->posts;i++){
- int predicted=render_point(info->postlist[look->loneighbor[i-2]],
- info->postlist[look->hineighbor[i-2]],
- fit_value[look->loneighbor[i-2]],
- fit_value[look->hineighbor[i-2]],
- info->postlist[i]);
- int hiroom=look->quant_q-predicted;
- int loroom=predicted;
- int room=(hiroom<loroom?hiroom:loroom)<<1;
- int val=fit_value[i];
-
- if(val){
- if(val>=room){
- if(hiroom>loroom){
- val = val-loroom;
- }else{
- val = -1-(val-hiroom);
- }
- }else{
- if(val&1){
- val= -((val+1)>>1);
- }else{
- val>>=1;
- }
- }
-
- fit_value[i]=val+predicted;
- fit_value[look->loneighbor[i-2]]&=0x7fff;
- fit_value[look->hineighbor[i-2]]&=0x7fff;
-
- }else{
- fit_value[i]=predicted|0x8000;
- }
-
- }
-
- return(fit_value);
- }
- eop:
- return(NULL);
-}
-
-static int floor1_inverse2(vorbis_block *vb,vorbis_look_floor *in,void *memo,
- float *out){
- vorbis_look_floor1 *look=(vorbis_look_floor1 *)in;
- vorbis_info_floor1 *info=look->vi;
-
- codec_setup_info *ci=vb->vd->vi->codec_setup;
- int n=ci->blocksizes[vb->mode]/2;
- int j;
-
- if(memo){
- /* render the lines */
- int *fit_value=(int *)memo;
- int hx=0;
- int lx=0;
- int ly=fit_value[0]*info->mult;
- for(j=1;j<look->posts;j++){
- int current=look->forward_index[j];
- int hy=fit_value[current]&0x7fff;
- if(hy==fit_value[current]){
-
- hy*=info->mult;
- hx=info->postlist[current];
-
- render_line(lx,hx,ly,hy,out);
-
- lx=hx;
- ly=hy;
- }
- }
- for(j=hx;j<n;j++)out[j]*=ly; /* be certain */
- return(1);
- }
- memset(out,0,sizeof(*out)*n);
- return(0);
-}
-
-/* export hooks */
-vorbis_func_floor floor1_exportbundle={
- &floor1_pack,&floor1_unpack,&floor1_look,&floor1_copy_info,&floor1_free_info,
- &floor1_free_look,&floor1_forward,&floor1_inverse1,&floor1_inverse2
-};
-
diff --git a/lib/iir.c b/lib/iir.c
deleted file mode 100644
index 1af5a5d9..00000000
--- a/lib/iir.c
+++ /dev/null
@@ -1,301 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2002 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: Direct Form II IIR filters, plus some specializations
- last mod: $Id: iir.c,v 1.13 2002/01/22 08:06:07 xiphmont Exp $
-
- ********************************************************************/
-
-/* LPC is actually a degenerate case of form I/II filters, but we need
- both */
-
-#include <ogg/ogg.h>
-#include <stdlib.h>
-#include <string.h>
-#include <math.h>
-#include "iir.h"
-#include "misc.h"
-
-void IIR_init(IIR_state *s,int stages,float gain, float *A, float *B){
- memset(s,0,sizeof(*s));
- s->stages=stages;
- s->gain=1.f/gain;
- s->coeff_A=_ogg_malloc(stages*sizeof(*s->coeff_A));
- s->coeff_B=_ogg_malloc((stages+1)*sizeof(*s->coeff_B));
- s->z_A=_ogg_calloc(stages*2,sizeof(*s->z_A));
-
- memcpy(s->coeff_A,A,stages*sizeof(*s->coeff_A));
- memcpy(s->coeff_B,B,(stages+1)*sizeof(*s->coeff_B));
-}
-
-void IIR_clear(IIR_state *s){
- if(s){
- _ogg_free(s->coeff_A);
- _ogg_free(s->coeff_B);
- _ogg_free(s->z_A);
- memset(s,0,sizeof(*s));
- }
-}
-
-void IIR_reset(IIR_state *s){
- memset(s->z_A,0,sizeof(*s->z_A)*s->stages*2);
-}
-
-float IIR_filter(IIR_state *s,float in){
- int stages=s->stages,i;
- float newA= in*s->gain;
- float newB=0;
- float *zA=s->z_A+s->ring;
-
- for(i=0;i<stages;i++){
- newA+= s->coeff_A[i] * zA[i];
- newB+= s->coeff_B[i] * zA[i];
- }
- newB+=newA*s->coeff_B[stages];
-
- zA[0]=zA[stages]=newA;
- if(++s->ring>=stages)s->ring=0;
- return(newB);
-}
-
-/* this assumes the symmetrical structure of the feed-forward stage of
- a typical bandpass to save multiplies */
-float IIR_filter_Band(IIR_state *s,float in){
- int stages=s->stages,i;
- int stages2=stages>>1;
- float newA= in*s->gain;
- float newB=0;
- float *zA=s->z_A+s->ring;
-
- newA+= s->coeff_A[0] * zA[0];
- for(i=1;i<stages2;i++){
- newA+= s->coeff_A[i] * zA[i];
- newB+= s->coeff_B[i] * (zA[i]-zA[stages-i]);
- }
- newB+= s->coeff_B[i] * zA[i];
- for(;i<stages;i++)
- newA+= s->coeff_A[i] * zA[i];
-
- newB+=newA-zA[0];
-
- zA[0]=zA[stages]=newA;
- if(++s->ring>=stages)s->ring=0;
- return(newB);
-}
-
-#ifdef _V_SELFTEST
-
-/* z^-stage, z^-stage+1... */
-static float cheb_bandpass_B[]={-1.f,0.f,5.f,0.f,-10.f,0.f,10.f,0.f,-5.f,0.f,1f};
-static float cheb_bandpass_A[]={-0.6665900311f,
- 1.0070146601f,
- -3.1262875409f,
- 3.5017171569f,
- -6.2779211945f,
- 5.2966481740f,
- -6.7570216587f,
- 4.0760335768f,
- -3.9134284363f,
- 1.3997338886f};
-
-static float data[128]={
- 0.0426331f,
- 0.0384521f,
- 0.0345764f,
- 0.0346069f,
- 0.0314636f,
- 0.0310059f,
- 0.0318604f,
- 0.0336304f,
- 0.036438f,
- 0.0348511f,
- 0.0354919f,
- 0.0343628f,
- 0.0325623f,
- 0.0318909f,
- 0.0263367f,
- 0.0225525f,
- 0.0195618f,
- 0.0160828f,
- 0.0168762f,
- 0.0145569f,
- 0.0126343f,
- 0.0127258f,
- 0.00820923f,
- 0.00787354f,
- 0.00558472f,
- 0.00204468f,
- 3.05176e-05f,
- -0.00357056f,
- -0.00570679f,
- -0.00991821f,
- -0.0101013f,
- -0.00881958f,
- -0.0108948f,
- -0.0110168f,
- -0.0119324f,
- -0.0161438f,
- -0.0194702f,
- -0.0229187f,
- -0.0260315f,
- -0.0282288f,
- -0.0306091f,
- -0.0330505f,
- -0.0364685f,
- -0.0385742f,
- -0.0428772f,
- -0.043457f,
- -0.0425415f,
- -0.0462341f,
- -0.0467529f,
- -0.0489807f,
- -0.0520325f,
- -0.0558167f,
- -0.0596924f,
- -0.0591431f,
- -0.0612793f,
- -0.0618591f,
- -0.0615845f,
- -0.0634155f,
- -0.0639648f,
- -0.0683594f,
- -0.0718079f,
- -0.0729675f,
- -0.0791931f,
- -0.0860901f,
- -0.0885315f,
- -0.088623f,
- -0.089386f,
- -0.0899353f,
- -0.0886841f,
- -0.0910645f,
- -0.0948181f,
- -0.0919495f,
- -0.0891418f,
- -0.0916443f,
- -0.096344f,
- -0.100464f,
- -0.105499f,
- -0.108612f,
- -0.112213f,
- -0.117676f,
- -0.120911f,
- -0.124329f,
- -0.122162f,
- -0.120605f,
- -0.12326f,
- -0.12619f,
- -0.128998f,
- -0.13205f,
- -0.134247f,
- -0.137939f,
- -0.143555f,
- -0.14389f,
- -0.14859f,
- -0.153717f,
- -0.159851f,
- -0.164551f,
- -0.162811f,
- -0.164276f,
- -0.156952f,
- -0.140564f,
- -0.123291f,
- -0.10321f,
- -0.0827637f,
- -0.0652466f,
- -0.053772f,
- -0.0509949f,
- -0.0577698f,
- -0.0818176f,
- -0.114929f,
- -0.148895f,
- -0.181122f,
- -0.200714f,
- -0.21048f,
- -0.203644f,
- -0.179413f,
- -0.145325f,
- -0.104492f,
- -0.0658264f,
- -0.0332031f,
- -0.0106201f,
- -0.00363159f,
- -0.00909424f,
- -0.0244141f,
- -0.0422058f,
- -0.0537415f,
- -0.0610046f,
- -0.0609741f,
- -0.0547791f};
-
-/* comparison test code from http://www-users.cs.york.ac.uk/~fisher/mkfilter/
- (the above page kicks ass, BTW)*/
-
-#define NZEROS 10
-#define NPOLES 10
-#define GAIN 4.599477515e+02f
-
-static float xv[NZEROS+1], yv[NPOLES+1];
-
-static float filterloop(float next){
- xv[0] = xv[1]; xv[1] = xv[2]; xv[2] = xv[3]; xv[3] = xv[4]; xv[4] = xv[5];
- xv[5] = xv[6]; xv[6] = xv[7]; xv[7] = xv[8]; xv[8] = xv[9]; xv[9] = xv[10];
- xv[10] = next / GAIN;
- yv[0] = yv[1]; yv[1] = yv[2]; yv[2] = yv[3]; yv[3] = yv[4]; yv[4] = yv[5];
- yv[5] = yv[6]; yv[6] = yv[7]; yv[7] = yv[8]; yv[8] = yv[9]; yv[9] = yv[10];
- yv[10] = (xv[10] - xv[0]) + 5 * (xv[2] - xv[8]) + 10 * (xv[6] - xv[4])
- + ( -0.6665900311f * yv[0]) + ( 1.0070146601f * yv[1])
- + ( -3.1262875409f * yv[2]) + ( 3.5017171569f * yv[3])
- + ( -6.2779211945f * yv[4]) + ( 5.2966481740f * yv[5])
- + ( -6.7570216587f * yv[6]) + ( 4.0760335768f * yv[7])
- + ( -3.9134284363f * yv[8]) + ( 1.3997338886f * yv[9]);
- return(yv[10]);
-}
-
-#include <stdio.h>
-int main(){
-
- /* run the pregenerated Chebyshev filter, then our own distillation
- through the generic and specialized code */
- float *work=_ogg_malloc(128*sizeof(*work));
- IIR_state iir;
- int i;
-
- for(i=0;i<128;i++)work[i]=filterloop(data[i]);
- {
- FILE *out=fopen("IIR_ref.m","w");
- for(i=0;i<128;i++)fprintf(out,"%g\n",work[i]);
- fclose(out);
- }
-
- IIR_init(&iir,NPOLES,GAIN,cheb_bandpass_A,cheb_bandpass_B);
- for(i=0;i<128;i++)work[i]=IIR_filter(&iir,data[i]);
- {
- FILE *out=fopen("IIR_gen.m","w");
- for(i=0;i<128;i++)fprintf(out,"%g\n",work[i]);
- fclose(out);
- }
- IIR_clear(&iir);
-
- IIR_init(&iir,NPOLES,GAIN,cheb_bandpass_A,cheb_bandpass_B);
- for(i=0;i<128;i++)work[i]=IIR_filter_ChebBand(&iir,data[i]);
- {
- FILE *out=fopen("IIR_cheb.m","w");
- for(i=0;i<128;i++)fprintf(out,"%g\n",work[i]);
- fclose(out);
- }
- IIR_clear(&iir);
-
- return(0);
-}
-
-#endif
diff --git a/lib/iir.h b/lib/iir.h
deleted file mode 100644
index 58292b2c..00000000
--- a/lib/iir.h
+++ /dev/null
@@ -1,36 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: Direct Form I, II IIR filters, plus some specializations
- last mod: $Id: iir.h,v 1.8 2001/12/20 01:00:27 segher Exp $
-
- ********************************************************************/
-
-#ifndef _V_IIR_H_
-#define _V_IIR_H_
-
-typedef struct {
- int stages;
- float *coeff_A;
- float *coeff_B;
- float *z_A;
- int ring;
- float gain;
-} IIR_state;
-
-extern void IIR_init(IIR_state *s,int stages,float gain, float *A, float *B);
-extern void IIR_clear(IIR_state *s);
-extern float IIR_filter(IIR_state *s,float in);
-extern float IIR_filter_Band(IIR_state *s,float in);
-extern void IIR_reset(IIR_state *s);
-
-#endif
diff --git a/lib/info.c b/lib/info.c
deleted file mode 100644
index 7e196eec..00000000
--- a/lib/info.c
+++ /dev/null
@@ -1,602 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2002 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: maintain the info structure, info <-> header packets
- last mod: $Id: info.c,v 1.53 2002/01/22 08:06:07 xiphmont Exp $
-
- ********************************************************************/
-
-/* general handling of the header and the vorbis_info structure (and
- substructures) */
-
-#include <stdlib.h>
-#include <string.h>
-#include <ctype.h>
-#include <ogg/ogg.h>
-#include "vorbis/codec.h"
-#include "codec_internal.h"
-#include "codebook.h"
-#include "registry.h"
-#include "window.h"
-#include "psy.h"
-#include "misc.h"
-#include "os.h"
-
-/* helpers */
-static int ilog2(unsigned int v){
- int ret=0;
- while(v>1){
- ret++;
- v>>=1;
- }
- return(ret);
-}
-
-static void _v_writestring(oggpack_buffer *o,char *s, int bytes){
-
- while(bytes--){
- oggpack_write(o,*s++,8);
- }
-}
-
-static void _v_readstring(oggpack_buffer *o,char *buf,int bytes){
- while(bytes--){
- *buf++=oggpack_read(o,8);
- }
-}
-
-void vorbis_comment_init(vorbis_comment *vc){
- memset(vc,0,sizeof(*vc));
-}
-
-void vorbis_comment_add(vorbis_comment *vc,char *comment){
- vc->user_comments=_ogg_realloc(vc->user_comments,
- (vc->comments+2)*sizeof(*vc->user_comments));
- vc->comment_lengths=_ogg_realloc(vc->comment_lengths,
- (vc->comments+2)*sizeof(*vc->comment_lengths));
- vc->comment_lengths[vc->comments]=strlen(comment);
- vc->user_comments[vc->comments]=_ogg_malloc(vc->comment_lengths[vc->comments]+1);
- strcpy(vc->user_comments[vc->comments], comment);
- vc->comments++;
- vc->user_comments[vc->comments]=NULL;
-}
-
-void vorbis_comment_add_tag(vorbis_comment *vc, char *tag, char *contents){
- char *comment=alloca(strlen(tag)+strlen(contents)+2); /* +2 for = and \0 */
- strcpy(comment, tag);
- strcat(comment, "=");
- strcat(comment, contents);
- vorbis_comment_add(vc, comment);
-}
-
-/* This is more or less the same as strncasecmp - but that doesn't exist
- * everywhere, and this is a fairly trivial function, so we include it */
-static int tagcompare(const char *s1, const char *s2, int n){
- int c=0;
- while(c < n){
- if(toupper(s1[c]) != toupper(s2[c]))
- return !0;
- c++;
- }
- return 0;
-}
-
-char *vorbis_comment_query(vorbis_comment *vc, char *tag, int count){
- long i;
- int found = 0;
- int taglen = strlen(tag)+1; /* +1 for the = we append */
- char *fulltag = alloca(taglen+ 1);
-
- strcpy(fulltag, tag);
- strcat(fulltag, "=");
-
- for(i=0;i<vc->comments;i++){
- if(!tagcompare(vc->user_comments[i], fulltag, taglen)){
- if(count == found)
- /* We return a pointer to the data, not a copy */
- return vc->user_comments[i] + taglen;
- else
- found++;
- }
- }
- return NULL; /* didn't find anything */
-}
-
-int vorbis_comment_query_count(vorbis_comment *vc, char *tag){
- int i,count=0;
- int taglen = strlen(tag)+1; /* +1 for the = we append */
- char *fulltag = alloca(taglen+1);
- strcpy(fulltag,tag);
- strcat(fulltag, "=");
-
- for(i=0;i<vc->comments;i++){
- if(!tagcompare(vc->user_comments[i], fulltag, taglen))
- count++;
- }
-
- return count;
-}
-
-void vorbis_comment_clear(vorbis_comment *vc){
- if(vc){
- long i;
- for(i=0;i<vc->comments;i++)
- if(vc->user_comments[i])_ogg_free(vc->user_comments[i]);
- if(vc->user_comments)_ogg_free(vc->user_comments);
- if(vc->comment_lengths)_ogg_free(vc->comment_lengths);
- if(vc->vendor)_ogg_free(vc->vendor);
- }
- memset(vc,0,sizeof(*vc));
-}
-
-/* blocksize 0 is guaranteed to be short, 1 is guarantted to be long.
- They may be equal, but short will never ge greater than long */
-int vorbis_info_blocksize(vorbis_info *vi,int zo){
- codec_setup_info *ci = vi->codec_setup;
- return ci ? ci->blocksizes[zo] : -1;
-}
-
-/* used by synthesis, which has a full, alloced vi */
-void vorbis_info_init(vorbis_info *vi){
- memset(vi,0,sizeof(*vi));
- vi->codec_setup=_ogg_calloc(1,sizeof(codec_setup_info));
-}
-
-void vorbis_info_clear(vorbis_info *vi){
- codec_setup_info *ci=vi->codec_setup;
- int i;
-
- if(ci){
-
- for(i=0;i<ci->modes;i++)
- if(ci->mode_param[i])_ogg_free(ci->mode_param[i]);
-
- for(i=0;i<ci->maps;i++) /* unpack does the range checking */
- _mapping_P[ci->map_type[i]]->free_info(ci->map_param[i]);
-
- for(i=0;i<ci->times;i++) /* unpack does the range checking */
- _time_P[ci->time_type[i]]->free_info(ci->time_param[i]);
-
- for(i=0;i<ci->floors;i++) /* unpack does the range checking */
- _floor_P[ci->floor_type[i]]->free_info(ci->floor_param[i]);
-
- for(i=0;i<ci->residues;i++) /* unpack does the range checking */
- _residue_P[ci->residue_type[i]]->free_info(ci->residue_param[i]);
-
- for(i=0;i<ci->books;i++){
- if(ci->book_param[i]){
- /* knows if the book was not alloced */
- vorbis_staticbook_destroy(ci->book_param[i]);
- }
- if(ci->fullbooks)
- vorbis_book_clear(ci->fullbooks+i);
- }
- if(ci->fullbooks)
- _ogg_free(ci->fullbooks);
-
- for(i=0;i<ci->psys;i++)
- _vi_psy_free(ci->psy_param[i]);
-
- _ogg_free(ci);
- }
-
- memset(vi,0,sizeof(*vi));
-}
-
-/* Header packing/unpacking ********************************************/
-
-static int _vorbis_unpack_info(vorbis_info *vi,oggpack_buffer *opb){
- codec_setup_info *ci=vi->codec_setup;
- if(!ci)return(OV_EFAULT);
-
- vi->version=oggpack_read(opb,32);
- if(vi->version!=0)return(OV_EVERSION);
-
- vi->channels=oggpack_read(opb,8);
- vi->rate=oggpack_read(opb,32);
-
- vi->bitrate_upper=oggpack_read(opb,32);
- vi->bitrate_nominal=oggpack_read(opb,32);
- vi->bitrate_lower=oggpack_read(opb,32);
-
- ci->blocksizes[0]=1<<oggpack_read(opb,4);
- ci->blocksizes[1]=1<<oggpack_read(opb,4);
-
- if(vi->rate<1)goto err_out;
- if(vi->channels<1)goto err_out;
- if(ci->blocksizes[0]<8)goto err_out;
- if(ci->blocksizes[1]<ci->blocksizes[0])goto err_out;
-
- if(oggpack_read(opb,1)!=1)goto err_out; /* EOP check */
-
- return(0);
- err_out:
- vorbis_info_clear(vi);
- return(OV_EBADHEADER);
-}
-
-static int _vorbis_unpack_comment(vorbis_comment *vc,oggpack_buffer *opb){
- int i;
- int vendorlen=oggpack_read(opb,32);
- if(vendorlen<0)goto err_out;
- vc->vendor=_ogg_calloc(vendorlen+1,1);
- _v_readstring(opb,vc->vendor,vendorlen);
- vc->comments=oggpack_read(opb,32);
- if(vc->comments<0)goto err_out;
- vc->user_comments=_ogg_calloc(vc->comments+1,sizeof(*vc->user_comments));
- vc->comment_lengths=_ogg_calloc(vc->comments+1, sizeof(*vc->comment_lengths));
-
- for(i=0;i<vc->comments;i++){
- int len=oggpack_read(opb,32);
- if(len<0)goto err_out;
- vc->comment_lengths[i]=len;
- vc->user_comments[i]=_ogg_calloc(len+1,1);
- _v_readstring(opb,vc->user_comments[i],len);
- }
- if(oggpack_read(opb,1)!=1)goto err_out; /* EOP check */
-
- return(0);
- err_out:
- vorbis_comment_clear(vc);
- return(OV_EBADHEADER);
-}
-
-/* all of the real encoding details are here. The modes, books,
- everything */
-static int _vorbis_unpack_books(vorbis_info *vi,oggpack_buffer *opb){
- codec_setup_info *ci=vi->codec_setup;
- int i;
- if(!ci)return(OV_EFAULT);
-
- /* codebooks */
- ci->books=oggpack_read(opb,8)+1;
- /*ci->book_param=_ogg_calloc(ci->books,sizeof(*ci->book_param));*/
- for(i=0;i<ci->books;i++){
- ci->book_param[i]=_ogg_calloc(1,sizeof(*ci->book_param[i]));
- if(vorbis_staticbook_unpack(opb,ci->book_param[i]))goto err_out;
- }
-
- /* time backend settings */
- ci->times=oggpack_read(opb,6)+1;
- /*ci->time_type=_ogg_malloc(ci->times*sizeof(*ci->time_type));*/
- /*ci->time_param=_ogg_calloc(ci->times,sizeof(void *));*/
- for(i=0;i<ci->times;i++){
- ci->time_type[i]=oggpack_read(opb,16);
- if(ci->time_type[i]<0 || ci->time_type[i]>=VI_TIMEB)goto err_out;
- ci->time_param[i]=_time_P[ci->time_type[i]]->unpack(vi,opb);
- if(!ci->time_param[i])goto err_out;
- }
-
- /* floor backend settings */
- ci->floors=oggpack_read(opb,6)+1;
- /*ci->floor_type=_ogg_malloc(ci->floors*sizeof(*ci->floor_type));*/
- /*ci->floor_param=_ogg_calloc(ci->floors,sizeof(void *));*/
- for(i=0;i<ci->floors;i++){
- ci->floor_type[i]=oggpack_read(opb,16);
- if(ci->floor_type[i]<0 || ci->floor_type[i]>=VI_FLOORB)goto err_out;
- ci->floor_param[i]=_floor_P[ci->floor_type[i]]->unpack(vi,opb);
- if(!ci->floor_param[i])goto err_out;
- }
-
- /* residue backend settings */
- ci->residues=oggpack_read(opb,6)+1;
- /*ci->residue_type=_ogg_malloc(ci->residues*sizeof(*ci->residue_type));*/
- /*ci->residue_param=_ogg_calloc(ci->residues,sizeof(void *));*/
- for(i=0;i<ci->residues;i++){
- ci->residue_type[i]=oggpack_read(opb,16);
- if(ci->residue_type[i]<0 || ci->residue_type[i]>=VI_RESB)goto err_out;
- ci->residue_param[i]=_residue_P[ci->residue_type[i]]->unpack(vi,opb);
- if(!ci->residue_param[i])goto err_out;
- }
-
- /* map backend settings */
- ci->maps=oggpack_read(opb,6)+1;
- /*ci->map_type=_ogg_malloc(ci->maps*sizeof(*ci->map_type));*/
- /*ci->map_param=_ogg_calloc(ci->maps,sizeof(void *));*/
- for(i=0;i<ci->maps;i++){
- ci->map_type[i]=oggpack_read(opb,16);
- if(ci->map_type[i]<0 || ci->map_type[i]>=VI_MAPB)goto err_out;
- ci->map_param[i]=_mapping_P[ci->map_type[i]]->unpack(vi,opb);
- if(!ci->map_param[i])goto err_out;
- }
-
- /* mode settings */
- ci->modes=oggpack_read(opb,6)+1;
- /*vi->mode_param=_ogg_calloc(vi->modes,sizeof(void *));*/
- for(i=0;i<ci->modes;i++){
- ci->mode_param[i]=_ogg_calloc(1,sizeof(*ci->mode_param[i]));
- ci->mode_param[i]->blockflag=oggpack_read(opb,1);
- ci->mode_param[i]->windowtype=oggpack_read(opb,16);
- ci->mode_param[i]->transformtype=oggpack_read(opb,16);
- ci->mode_param[i]->mapping=oggpack_read(opb,8);
-
- if(ci->mode_param[i]->windowtype>=VI_WINDOWB)goto err_out;
- if(ci->mode_param[i]->transformtype>=VI_WINDOWB)goto err_out;
- if(ci->mode_param[i]->mapping>=ci->maps)goto err_out;
- }
-
- if(oggpack_read(opb,1)!=1)goto err_out; /* top level EOP check */
-
- return(0);
- err_out:
- vorbis_info_clear(vi);
- return(OV_EBADHEADER);
-}
-
-/* The Vorbis header is in three packets; the initial small packet in
- the first page that identifies basic parameters, a second packet
- with bitstream comments and a third packet that holds the
- codebook. */
-
-int vorbis_synthesis_headerin(vorbis_info *vi,vorbis_comment *vc,ogg_packet *op){
- oggpack_buffer opb;
-
- if(op){
- oggpack_readinit(&opb,op->packet,op->bytes);
-
- /* Which of the three types of header is this? */
- /* Also verify header-ness, vorbis */
- {
- char buffer[6];
- int packtype=oggpack_read(&opb,8);
- memset(buffer,0,6);
- _v_readstring(&opb,buffer,6);
- if(memcmp(buffer,"vorbis",6)){
- /* not a vorbis header */
- return(OV_ENOTVORBIS);
- }
- switch(packtype){
- case 0x01: /* least significant *bit* is read first */
- if(!op->b_o_s){
- /* Not the initial packet */
- return(OV_EBADHEADER);
- }
- if(vi->rate!=0){
- /* previously initialized info header */
- return(OV_EBADHEADER);
- }
-
- return(_vorbis_unpack_info(vi,&opb));
-
- case 0x03: /* least significant *bit* is read first */
- if(vi->rate==0){
- /* um... we didn't get the initial header */
- return(OV_EBADHEADER);
- }
-
- return(_vorbis_unpack_comment(vc,&opb));
-
- case 0x05: /* least significant *bit* is read first */
- if(vi->rate==0 || vc->vendor==NULL){
- /* um... we didn;t get the initial header or comments yet */
- return(OV_EBADHEADER);
- }
-
- return(_vorbis_unpack_books(vi,&opb));
-
- default:
- /* Not a valid vorbis header type */
- return(OV_EBADHEADER);
- break;
- }
- }
- }
- return(OV_EBADHEADER);
-}
-
-/* pack side **********************************************************/
-
-static int _vorbis_pack_info(oggpack_buffer *opb,vorbis_info *vi){
- codec_setup_info *ci=vi->codec_setup;
- if(!ci)return(OV_EFAULT);
-
- /* preamble */
- oggpack_write(opb,0x01,8);
- _v_writestring(opb,"vorbis", 6);
-
- /* basic information about the stream */
- oggpack_write(opb,0x00,32);
- oggpack_write(opb,vi->channels,8);
- oggpack_write(opb,vi->rate,32);
-
- oggpack_write(opb,vi->bitrate_upper,32);
- oggpack_write(opb,vi->bitrate_nominal,32);
- oggpack_write(opb,vi->bitrate_lower,32);
-
- oggpack_write(opb,ilog2(ci->blocksizes[0]),4);
- oggpack_write(opb,ilog2(ci->blocksizes[1]),4);
- oggpack_write(opb,1,1);
-
- return(0);
-}
-
-static int _vorbis_pack_comment(oggpack_buffer *opb,vorbis_comment *vc){
- char temp[]="Xiphophorus libVorbis I 20011231";
- int bytes = strlen(temp);
-
- /* preamble */
- oggpack_write(opb,0x03,8);
- _v_writestring(opb,"vorbis", 6);
-
- /* vendor */
- oggpack_write(opb,bytes,32);
- _v_writestring(opb,temp, bytes);
-
- /* comments */
-
- oggpack_write(opb,vc->comments,32);
- if(vc->comments){
- int i;
- for(i=0;i<vc->comments;i++){
- if(vc->user_comments[i]){
- oggpack_write(opb,vc->comment_lengths[i],32);
- _v_writestring(opb,vc->user_comments[i], vc->comment_lengths[i]);
- }else{
- oggpack_write(opb,0,32);
- }
- }
- }
- oggpack_write(opb,1,1);
-
- return(0);
-}
-
-static int _vorbis_pack_books(oggpack_buffer *opb,vorbis_info *vi){
- codec_setup_info *ci=vi->codec_setup;
- int i;
- if(!ci)return(OV_EFAULT);
-
- oggpack_write(opb,0x05,8);
- _v_writestring(opb,"vorbis", 6);
-
- /* books */
- oggpack_write(opb,ci->books-1,8);
- for(i=0;i<ci->books;i++)
- if(vorbis_staticbook_pack(ci->book_param[i],opb))goto err_out;
-
- /* times */
- oggpack_write(opb,ci->times-1,6);
- for(i=0;i<ci->times;i++){
- oggpack_write(opb,ci->time_type[i],16);
- _time_P[ci->time_type[i]]->pack(ci->time_param[i],opb);
- }
-
- /* floors */
- oggpack_write(opb,ci->floors-1,6);
- for(i=0;i<ci->floors;i++){
- oggpack_write(opb,ci->floor_type[i],16);
- _floor_P[ci->floor_type[i]]->pack(ci->floor_param[i],opb);
- }
-
- /* residues */
- oggpack_write(opb,ci->residues-1,6);
- for(i=0;i<ci->residues;i++){
- oggpack_write(opb,ci->residue_type[i],16);
- _residue_P[ci->residue_type[i]]->pack(ci->residue_param[i],opb);
- }
-
- /* maps */
- oggpack_write(opb,ci->maps-1,6);
- for(i=0;i<ci->maps;i++){
- oggpack_write(opb,ci->map_type[i],16);
- _mapping_P[ci->map_type[i]]->pack(vi,ci->map_param[i],opb);
- }
-
- /* modes */
- oggpack_write(opb,ci->modes-1,6);
- for(i=0;i<ci->modes;i++){
- oggpack_write(opb,ci->mode_param[i]->blockflag,1);
- oggpack_write(opb,ci->mode_param[i]->windowtype,16);
- oggpack_write(opb,ci->mode_param[i]->transformtype,16);
- oggpack_write(opb,ci->mode_param[i]->mapping,8);
- }
- oggpack_write(opb,1,1);
-
- return(0);
-err_out:
- return(-1);
-}
-
-int vorbis_commentheader_out(vorbis_comment *vc,
- ogg_packet *op){
-
- oggpack_buffer opb;
-
- oggpack_writeinit(&opb);
- if(_vorbis_pack_comment(&opb,vc)) return OV_EIMPL;
-
- op->packet = _ogg_malloc(oggpack_bytes(&opb));
- memcpy(op->packet, opb.buffer, oggpack_bytes(&opb));
-
- op->bytes=oggpack_bytes(&opb);
- op->b_o_s=0;
- op->e_o_s=0;
- op->granulepos=0;
-
- return 0;
-}
-
-int vorbis_analysis_headerout(vorbis_dsp_state *v,
- vorbis_comment *vc,
- ogg_packet *op,
- ogg_packet *op_comm,
- ogg_packet *op_code){
- int ret=OV_EIMPL;
- vorbis_info *vi=v->vi;
- oggpack_buffer opb;
- backend_lookup_state *b=v->backend_state;
-
- if(!b){
- ret=OV_EFAULT;
- goto err_out;
- }
-
- /* first header packet **********************************************/
-
- oggpack_writeinit(&opb);
- if(_vorbis_pack_info(&opb,vi))goto err_out;
-
- /* build the packet */
- if(b->header)_ogg_free(b->header);
- b->header=_ogg_malloc(oggpack_bytes(&opb));
- memcpy(b->header,opb.buffer,oggpack_bytes(&opb));
- op->packet=b->header;
- op->bytes=oggpack_bytes(&opb);
- op->b_o_s=1;
- op->e_o_s=0;
- op->granulepos=0;
-
- /* second header packet (comments) **********************************/
-
- oggpack_reset(&opb);
- if(_vorbis_pack_comment(&opb,vc))goto err_out;
-
- if(b->header1)_ogg_free(b->header1);
- b->header1=_ogg_malloc(oggpack_bytes(&opb));
- memcpy(b->header1,opb.buffer,oggpack_bytes(&opb));
- op_comm->packet=b->header1;
- op_comm->bytes=oggpack_bytes(&opb);
- op_comm->b_o_s=0;
- op_comm->e_o_s=0;
- op_comm->granulepos=0;
-
- /* third header packet (modes/codebooks) ****************************/
-
- oggpack_reset(&opb);
- if(_vorbis_pack_books(&opb,vi))goto err_out;
-
- if(b->header2)_ogg_free(b->header2);
- b->header2=_ogg_malloc(oggpack_bytes(&opb));
- memcpy(b->header2,opb.buffer,oggpack_bytes(&opb));
- op_code->packet=b->header2;
- op_code->bytes=oggpack_bytes(&opb);
- op_code->b_o_s=0;
- op_code->e_o_s=0;
- op_code->granulepos=0;
-
- oggpack_writeclear(&opb);
- return(0);
- err_out:
- oggpack_writeclear(&opb);
- memset(op,0,sizeof(*op));
- memset(op_comm,0,sizeof(*op_comm));
- memset(op_code,0,sizeof(*op_code));
-
- if(b->header)_ogg_free(b->header);
- if(b->header1)_ogg_free(b->header1);
- if(b->header2)_ogg_free(b->header2);
- b->header=NULL;
- b->header1=NULL;
- b->header2=NULL;
- return(ret);
-}
-
diff --git a/lib/lookup.c b/lib/lookup.c
deleted file mode 100644
index de145de2..00000000
--- a/lib/lookup.c
+++ /dev/null
@@ -1,94 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2002 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: lookup based functions
- last mod: $Id: lookup.c,v 1.9 2002/01/22 08:06:07 xiphmont Exp $
-
- ********************************************************************/
-
-#include <math.h>
-#include "lookup.h"
-#include "lookup_data.h"
-#include "os.h"
-#include "misc.h"
-
-#ifdef FLOAT_LOOKUP
-
-/* interpolated lookup based cos function, domain 0 to PI only */
-float vorbis_coslook(float a){
- double d=a*(.31830989*(float)COS_LOOKUP_SZ);
- int i=vorbis_ftoi(d-.5);
-
- return COS_LOOKUP[i]+ (d-i)*(COS_LOOKUP[i+1]-COS_LOOKUP[i]);
-}
-
-/* interpolated 1./sqrt(p) where .5 <= p < 1. */
-float vorbis_invsqlook(float a){
- double d=a*(2.f*(float)INVSQ_LOOKUP_SZ)-(float)INVSQ_LOOKUP_SZ;
- int i=vorbis_ftoi(d-.5f);
- return INVSQ_LOOKUP[i]+ (d-i)*(INVSQ_LOOKUP[i+1]-INVSQ_LOOKUP[i]);
-}
-
-/* interpolated 1./sqrt(p) where .5 <= p < 1. */
-float vorbis_invsq2explook(int a){
- return INVSQ2EXP_LOOKUP[a-INVSQ2EXP_LOOKUP_MIN];
-}
-
-#include <stdio.h>
-/* interpolated lookup based fromdB function, domain -140dB to 0dB only */
-float vorbis_fromdBlook(float a){
- int i=vorbis_ftoi(a*((float)(-(1<<FROMdB2_SHIFT)))-.5f);
- return (i<0)?1.f:
- ((i>=(FROMdB_LOOKUP_SZ<<FROMdB_SHIFT))?0.f:
- FROMdB_LOOKUP[i>>FROMdB_SHIFT]*FROMdB2_LOOKUP[i&FROMdB2_MASK]);
-}
-
-#endif
-
-#ifdef INT_LOOKUP
-/* interpolated 1./sqrt(p) where .5 <= a < 1. (.100000... to .111111...) in
- 16.16 format
-
- returns in m.8 format */
-long vorbis_invsqlook_i(long a,long e){
- long i=(a&0x7fff)>>(INVSQ_LOOKUP_I_SHIFT-1);
- long d=(a&INVSQ_LOOKUP_I_MASK)<<(16-INVSQ_LOOKUP_I_SHIFT); /* 0.16 */
- long val=INVSQ_LOOKUP_I[i]- /* 1.16 */
- (((INVSQ_LOOKUP_I[i]-INVSQ_LOOKUP_I[i+1])* /* 0.16 */
- d)>>16); /* result 1.16 */
-
- e+=32;
- if(e&1)val=(val*5792)>>13; /* multiply val by 1/sqrt(2) */
- e=(e>>1)-8;
-
- return(val>>e);
-}
-
-/* interpolated lookup based fromdB function, domain -140dB to 0dB only */
-/* a is in n.12 format */
-float vorbis_fromdBlook_i(long a){
- int i=(-a)>>(12-FROMdB2_SHIFT);
- return (i<0)?1.f:
- ((i>=(FROMdB_LOOKUP_SZ<<FROMdB_SHIFT))?0.f:
- FROMdB_LOOKUP[i>>FROMdB_SHIFT]*FROMdB2_LOOKUP[i&FROMdB2_MASK]);
-}
-
-/* interpolated lookup based cos function, domain 0 to PI only */
-/* a is in 0.16 format, where 0==0, 2^^16-1==PI, return 0.14 */
-long vorbis_coslook_i(long a){
- int i=a>>COS_LOOKUP_I_SHIFT;
- int d=a&COS_LOOKUP_I_MASK;
- return COS_LOOKUP_I[i]- ((d*(COS_LOOKUP_I[i]-COS_LOOKUP_I[i+1]))>>
- COS_LOOKUP_I_SHIFT);
-}
-
-#endif
diff --git a/lib/lookup.h b/lib/lookup.h
deleted file mode 100644
index 16a3b5d5..00000000
--- a/lib/lookup.h
+++ /dev/null
@@ -1,32 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: lookup based functions
- last mod: $Id: lookup.h,v 1.6 2001/12/20 01:00:27 segher Exp $
-
- ********************************************************************/
-
-#ifndef _V_LOOKUP_H_
-
-#ifdef FLOAT_LOOKUP
-extern float vorbis_coslook(float a);
-extern float vorbis_invsqlook(float a);
-extern float vorbis_invsq2explook(int a);
-extern float vorbis_fromdBlook(float a);
-#endif
-#ifdef INT_LOOKUP
-extern long vorbis_invsqlook_i(long a,long e);
-extern long vorbis_coslook_i(long a);
-extern float vorbis_fromdBlook_i(long a);
-#endif
-
-#endif
diff --git a/lib/lookup_data.h b/lib/lookup_data.h
deleted file mode 100644
index 08da3687..00000000
--- a/lib/lookup_data.h
+++ /dev/null
@@ -1,189 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: lookup data; generated by lookups.pl; edit there
- last mod: $Id: lookup_data.h,v 1.8 2001/12/20 01:00:27 segher Exp $
-
- ********************************************************************/
-
-#ifndef _V_LOOKUP_DATA_H_
-
-#ifdef FLOAT_LOOKUP
-#define COS_LOOKUP_SZ 128
-static float COS_LOOKUP[COS_LOOKUP_SZ+1]={
- +1.0000000000000f,+0.9996988186962f,+0.9987954562052f,+0.9972904566787f,
- +0.9951847266722f,+0.9924795345987f,+0.9891765099648f,+0.9852776423889f,
- +0.9807852804032f,+0.9757021300385f,+0.9700312531945f,+0.9637760657954f,
- +0.9569403357322f,+0.9495281805930f,+0.9415440651830f,+0.9329927988347f,
- +0.9238795325113f,+0.9142097557035f,+0.9039892931234f,+0.8932243011955f,
- +0.8819212643484f,+0.8700869911087f,+0.8577286100003f,+0.8448535652497f,
- +0.8314696123025f,+0.8175848131516f,+0.8032075314806f,+0.7883464276266f,
- +0.7730104533627f,+0.7572088465065f,+0.7409511253550f,+0.7242470829515f,
- +0.7071067811865f,+0.6895405447371f,+0.6715589548470f,+0.6531728429538f,
- +0.6343932841636f,+0.6152315905806f,+0.5956993044924f,+0.5758081914178f,
- +0.5555702330196f,+0.5349976198871f,+0.5141027441932f,+0.4928981922298f,
- +0.4713967368260f,+0.4496113296546f,+0.4275550934303f,+0.4052413140050f,
- +0.3826834323651f,+0.3598950365350f,+0.3368898533922f,+0.3136817403989f,
- +0.2902846772545f,+0.2667127574749f,+0.2429801799033f,+0.2191012401569f,
- +0.1950903220161f,+0.1709618887603f,+0.1467304744554f,+0.1224106751992f,
- +0.0980171403296f,+0.0735645635997f,+0.0490676743274f,+0.0245412285229f,
- +0.0000000000000f,-0.0245412285229f,-0.0490676743274f,-0.0735645635997f,
- -0.0980171403296f,-0.1224106751992f,-0.1467304744554f,-0.1709618887603f,
- -0.1950903220161f,-0.2191012401569f,-0.2429801799033f,-0.2667127574749f,
- -0.2902846772545f,-0.3136817403989f,-0.3368898533922f,-0.3598950365350f,
- -0.3826834323651f,-0.4052413140050f,-0.4275550934303f,-0.4496113296546f,
- -0.4713967368260f,-0.4928981922298f,-0.5141027441932f,-0.5349976198871f,
- -0.5555702330196f,-0.5758081914178f,-0.5956993044924f,-0.6152315905806f,
- -0.6343932841636f,-0.6531728429538f,-0.6715589548470f,-0.6895405447371f,
- -0.7071067811865f,-0.7242470829515f,-0.7409511253550f,-0.7572088465065f,
- -0.7730104533627f,-0.7883464276266f,-0.8032075314806f,-0.8175848131516f,
- -0.8314696123025f,-0.8448535652497f,-0.8577286100003f,-0.8700869911087f,
- -0.8819212643484f,-0.8932243011955f,-0.9039892931234f,-0.9142097557035f,
- -0.9238795325113f,-0.9329927988347f,-0.9415440651830f,-0.9495281805930f,
- -0.9569403357322f,-0.9637760657954f,-0.9700312531945f,-0.9757021300385f,
- -0.9807852804032f,-0.9852776423889f,-0.9891765099648f,-0.9924795345987f,
- -0.9951847266722f,-0.9972904566787f,-0.9987954562052f,-0.9996988186962f,
- -1.0000000000000f,
-};
-
-#define INVSQ_LOOKUP_SZ 32
-static float INVSQ_LOOKUP[INVSQ_LOOKUP_SZ+1]={
- 1.414213562373f,1.392621247646f,1.371988681140f,1.352246807566f,
- 1.333333333333f,1.315191898443f,1.297771369046f,1.281025230441f,
- 1.264911064067f,1.249390095109f,1.234426799697f,1.219988562661f,
- 1.206045378311f,1.192569588000f,1.179535649239f,1.166919931983f,
- 1.154700538379f,1.142857142857f,1.131370849898f,1.120224067222f,
- 1.109400392450f,1.098884511590f,1.088662107904f,1.078719779941f,
- 1.069044967650f,1.059625885652f,1.050451462878f,1.041511287847f,
- 1.032795558989f,1.024295039463f,1.016001016002f,1.007905261358f,
- 1.000000000000f,
-};
-
-#define INVSQ2EXP_LOOKUP_MIN -32
-#define INVSQ2EXP_LOOKUP_MAX 32
-static float INVSQ2EXP_LOOKUP[INVSQ2EXP_LOOKUP_MAX-\
- INVSQ2EXP_LOOKUP_MIN+1]={
- 65536.f, 46340.95001f, 32768.f, 23170.47501f,
- 16384.f, 11585.2375f, 8192.f, 5792.618751f,
- 4096.f, 2896.309376f, 2048.f, 1448.154688f,
- 1024.f, 724.0773439f, 512.f, 362.038672f,
- 256.f, 181.019336f, 128.f, 90.50966799f,
- 64.f, 45.254834f, 32.f, 22.627417f,
- 16.f, 11.3137085f, 8.f, 5.656854249f,
- 4.f, 2.828427125f, 2.f, 1.414213562f,
- 1.f, 0.7071067812f, 0.5f, 0.3535533906f,
- 0.25f, 0.1767766953f, 0.125f, 0.08838834765f,
- 0.0625f, 0.04419417382f, 0.03125f, 0.02209708691f,
- 0.015625f, 0.01104854346f, 0.0078125f, 0.005524271728f,
- 0.00390625f, 0.002762135864f, 0.001953125f, 0.001381067932f,
- 0.0009765625f, 0.000690533966f, 0.00048828125f, 0.000345266983f,
- 0.000244140625f,0.0001726334915f,0.0001220703125f,8.631674575e-05f,
- 6.103515625e-05f,4.315837288e-05f,3.051757812e-05f,2.157918644e-05f,
- 1.525878906e-05f,
-};
-
-#endif
-
-#define FROMdB_LOOKUP_SZ 35
-#define FROMdB2_LOOKUP_SZ 32
-#define FROMdB_SHIFT 5
-#define FROMdB2_SHIFT 3
-#define FROMdB2_MASK 31
-static float FROMdB_LOOKUP[FROMdB_LOOKUP_SZ]={
- 1.f, 0.6309573445f, 0.3981071706f, 0.2511886432f,
- 0.1584893192f, 0.1f, 0.06309573445f, 0.03981071706f,
- 0.02511886432f, 0.01584893192f, 0.01f, 0.006309573445f,
- 0.003981071706f, 0.002511886432f, 0.001584893192f, 0.001f,
- 0.0006309573445f,0.0003981071706f,0.0002511886432f,0.0001584893192f,
- 0.0001f,6.309573445e-05f,3.981071706e-05f,2.511886432e-05f,
- 1.584893192e-05f, 1e-05f,6.309573445e-06f,3.981071706e-06f,
- 2.511886432e-06f,1.584893192e-06f, 1e-06f,6.309573445e-07f,
- 3.981071706e-07f,2.511886432e-07f,1.584893192e-07f,
-};
-
-static float FROMdB2_LOOKUP[FROMdB2_LOOKUP_SZ]={
- 0.9928302478f, 0.9786445908f, 0.9646616199f, 0.9508784391f,
- 0.9372921937f, 0.92390007f, 0.9106992942f, 0.8976871324f,
- 0.8848608897f, 0.8722179097f, 0.8597555737f, 0.8474713009f,
- 0.835362547f, 0.8234268041f, 0.8116616003f, 0.8000644989f,
- 0.7886330981f, 0.7773650302f, 0.7662579617f, 0.755309592f,
- 0.7445176537f, 0.7338799116f, 0.7233941627f, 0.7130582353f,
- 0.7028699885f, 0.6928273125f, 0.6829281272f, 0.6731703824f,
- 0.6635520573f, 0.6540711597f, 0.6447257262f, 0.6355138211f,
-};
-
-#ifdef INT_LOOKUP
-
-#define INVSQ_LOOKUP_I_SHIFT 10
-#define INVSQ_LOOKUP_I_MASK 1023
-static long INVSQ_LOOKUP_I[64+1]={
- 92682l, 91966l, 91267l, 90583l,
- 89915l, 89261l, 88621l, 87995l,
- 87381l, 86781l, 86192l, 85616l,
- 85051l, 84497l, 83953l, 83420l,
- 82897l, 82384l, 81880l, 81385l,
- 80899l, 80422l, 79953l, 79492l,
- 79039l, 78594l, 78156l, 77726l,
- 77302l, 76885l, 76475l, 76072l,
- 75674l, 75283l, 74898l, 74519l,
- 74146l, 73778l, 73415l, 73058l,
- 72706l, 72359l, 72016l, 71679l,
- 71347l, 71019l, 70695l, 70376l,
- 70061l, 69750l, 69444l, 69141l,
- 68842l, 68548l, 68256l, 67969l,
- 67685l, 67405l, 67128l, 66855l,
- 66585l, 66318l, 66054l, 65794l,
- 65536l,
-};
-
-#define COS_LOOKUP_I_SHIFT 9
-#define COS_LOOKUP_I_MASK 511
-#define COS_LOOKUP_I_SZ 128
-static long COS_LOOKUP_I[COS_LOOKUP_I_SZ+1]={
- 16384l, 16379l, 16364l, 16340l,
- 16305l, 16261l, 16207l, 16143l,
- 16069l, 15986l, 15893l, 15791l,
- 15679l, 15557l, 15426l, 15286l,
- 15137l, 14978l, 14811l, 14635l,
- 14449l, 14256l, 14053l, 13842l,
- 13623l, 13395l, 13160l, 12916l,
- 12665l, 12406l, 12140l, 11866l,
- 11585l, 11297l, 11003l, 10702l,
- 10394l, 10080l, 9760l, 9434l,
- 9102l, 8765l, 8423l, 8076l,
- 7723l, 7366l, 7005l, 6639l,
- 6270l, 5897l, 5520l, 5139l,
- 4756l, 4370l, 3981l, 3590l,
- 3196l, 2801l, 2404l, 2006l,
- 1606l, 1205l, 804l, 402l,
- 0l, -401l, -803l, -1204l,
- -1605l, -2005l, -2403l, -2800l,
- -3195l, -3589l, -3980l, -4369l,
- -4755l, -5138l, -5519l, -5896l,
- -6269l, -6638l, -7004l, -7365l,
- -7722l, -8075l, -8422l, -8764l,
- -9101l, -9433l, -9759l, -10079l,
- -10393l, -10701l, -11002l, -11296l,
- -11584l, -11865l, -12139l, -12405l,
- -12664l, -12915l, -13159l, -13394l,
- -13622l, -13841l, -14052l, -14255l,
- -14448l, -14634l, -14810l, -14977l,
- -15136l, -15285l, -15425l, -15556l,
- -15678l, -15790l, -15892l, -15985l,
- -16068l, -16142l, -16206l, -16260l,
- -16304l, -16339l, -16363l, -16378l,
- -16383l,
-};
-
-#endif
-
-#endif
diff --git a/lib/lookups.pl b/lib/lookups.pl
deleted file mode 100755
index 5fd05b0d..00000000
--- a/lib/lookups.pl
+++ /dev/null
@@ -1,142 +0,0 @@
-#!/usr/bin/perl
-print <<'EOD';
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: lookup data; generated by lookups.pl; edit there
- last mod: $Id: lookups.pl,v 1.6 2001/12/20 01:00:27 segher Exp $
-
- ********************************************************************/
-
-#ifndef _V_LOOKUP_DATA_H_
-
-#ifdef FLOAT_LOOKUP
-EOD
-
-$cos_sz=128;
-$invsq_sz=32;
-$invsq2exp_min=-32;
-$invsq2exp_max=32;
-
-$fromdB_sz=35;
-$fromdB_shift=5;
-$fromdB2_shift=3;
-
-$invsq_i_shift=10;
-$cos_i_shift=9;
-$delta_shift=6;
-
-print "#define COS_LOOKUP_SZ $cos_sz\n";
-print "static float COS_LOOKUP[COS_LOOKUP_SZ+1]={\n";
-
-for($i=0;$i<=$cos_sz;){
- print "\t";
- for($j=0;$j<4 && $i<=$cos_sz;$j++){
- printf "%+.13f,", cos(3.14159265358979323846*($i++)/$cos_sz) ;
- }
- print "\n";
-}
-print "};\n\n";
-
-print "#define INVSQ_LOOKUP_SZ $invsq_sz\n";
-print "static float INVSQ_LOOKUP[INVSQ_LOOKUP_SZ+1]={\n";
-
-for($i=0;$i<=$invsq_sz;){
- print "\t";
- for($j=0;$j<4 && $i<=$invsq_sz;$j++){
- my$indexmap=$i++/$invsq_sz*.5+.5;
- printf "%.12f,", 1./sqrt($indexmap);
- }
- print "\n";
-}
-print "};\n\n";
-
-print "#define INVSQ2EXP_LOOKUP_MIN $invsq2exp_min\n";
-print "#define INVSQ2EXP_LOOKUP_MAX $invsq2exp_max\n";
-print "static float INVSQ2EXP_LOOKUP[INVSQ2EXP_LOOKUP_MAX-\\\n".
- " INVSQ2EXP_LOOKUP_MIN+1]={\n";
-
-for($i=$invsq2exp_min;$i<=$invsq2exp_max;){
- print "\t";
- for($j=0;$j<4 && $i<=$invsq2exp_max;$j++){
- printf "%15.10g,", 2**($i++*-.5);
- }
- print "\n";
-}
-print "};\n\n#endif\n\n";
-
-
-# 0 to -140 dB
-$fromdB2_sz=1<<$fromdB_shift;
-$fromdB_gran=1<<($fromdB_shift-$fromdB2_shift);
-print "#define FROMdB_LOOKUP_SZ $fromdB_sz\n";
-print "#define FROMdB2_LOOKUP_SZ $fromdB2_sz\n";
-print "#define FROMdB_SHIFT $fromdB_shift\n";
-print "#define FROMdB2_SHIFT $fromdB2_shift\n";
-print "#define FROMdB2_MASK ".((1<<$fromdB_shift)-1)."\n";
-
-print "static float FROMdB_LOOKUP[FROMdB_LOOKUP_SZ]={\n";
-
-for($i=0;$i<$fromdB_sz;){
- print "\t";
- for($j=0;$j<4 && $i<$fromdB_sz;$j++){
- printf "%15.10g,", 10**(.05*(-$fromdB_gran*$i++));
- }
- print "\n";
-}
-print "};\n\n";
-
-print "static float FROMdB2_LOOKUP[FROMdB2_LOOKUP_SZ]={\n";
-
-for($i=0;$i<$fromdB2_sz;){
- print "\t";
- for($j=0;$j<4 && $i<$fromdB_sz;$j++){
- printf "%15.10g,", 10**(.05*(-$fromdB_gran/$fromdB2_sz*(.5+$i++)));
- }
- print "\n";
-}
-print "};\n\n#ifdef INT_LOOKUP\n\n";
-
-
-$iisz=0x10000>>$invsq_i_shift;
-print "#define INVSQ_LOOKUP_I_SHIFT $invsq_i_shift\n";
-print "#define INVSQ_LOOKUP_I_MASK ".(0x0ffff>>(16-$invsq_i_shift))."\n";
-print "static long INVSQ_LOOKUP_I[$iisz+1]={\n";
-for($i=0;$i<=$iisz;){
- print "\t";
- for($j=0;$j<4 && $i<=$iisz;$j++){
- my$indexmap=$i++/$iisz*.5+.5;
- printf "%8d,", int(1./sqrt($indexmap)*65536.+.5);
- }
- print "\n";
-}
-print "};\n\n";
-
-$cisz=0x10000>>$cos_i_shift;
-print "#define COS_LOOKUP_I_SHIFT $cos_i_shift\n";
-print "#define COS_LOOKUP_I_MASK ".(0x0ffff>>(16-$cos_i_shift))."\n";
-print "#define COS_LOOKUP_I_SZ $cisz\n";
-print "static long COS_LOOKUP_I[COS_LOOKUP_I_SZ+1]={\n";
-
-for($i=0;$i<=$cisz;){
- print "\t";
- for($j=0;$j<4 && $i<=$cisz;$j++){
- printf "%8d,", int(cos(3.14159265358979323846*($i++)/$cos_sz)*16384.+.5) ;
- }
- print "\n";
-}
-print "};\n\n";
-
-
-print "#endif\n\n#endif\n";
-
-
diff --git a/lib/lpc.c b/lib/lpc.c
deleted file mode 100644
index 7ee4b803..00000000
--- a/lib/lpc.c
+++ /dev/null
@@ -1,200 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: LPC low level routines
- last mod: $Id: lpc.c,v 1.34 2001/12/20 01:00:27 segher Exp $
-
- ********************************************************************/
-
-/* Some of these routines (autocorrelator, LPC coefficient estimator)
- are derived from code written by Jutta Degener and Carsten Bormann;
- thus we include their copyright below. The entirety of this file
- is freely redistributable on the condition that both of these
- copyright notices are preserved without modification. */
-
-/* Preserved Copyright: *********************************************/
-
-/* Copyright 1992, 1993, 1994 by Jutta Degener and Carsten Bormann,
-Technische Universita"t Berlin
-
-Any use of this software is permitted provided that this notice is not
-removed and that neither the authors nor the Technische Universita"t
-Berlin are deemed to have made any representations as to the
-suitability of this software for any purpose nor are held responsible
-for any defects of this software. THERE IS ABSOLUTELY NO WARRANTY FOR
-THIS SOFTWARE.
-
-As a matter of courtesy, the authors request to be informed about uses
-this software has found, about bugs in this software, and about any
-improvements that may be of general interest.
-
-Berlin, 28.11.1994
-Jutta Degener
-Carsten Bormann
-
-*********************************************************************/
-
-#include <stdlib.h>
-#include <string.h>
-#include <math.h>
-#include "os.h"
-#include "smallft.h"
-#include "lpc.h"
-#include "scales.h"
-#include "misc.h"
-
-/* Autocorrelation LPC coeff generation algorithm invented by
- N. Levinson in 1947, modified by J. Durbin in 1959. */
-
-/* Input : n elements of time doamin data
- Output: m lpc coefficients, excitation energy */
-
-float vorbis_lpc_from_data(float *data,float *lpc,int n,int m){
- float *aut=alloca(sizeof(*aut)*(m+1));
- float error;
- int i,j;
-
- /* autocorrelation, p+1 lag coefficients */
-
- j=m+1;
- while(j--){
- double d=0; /* double needed for accumulator depth */
- for(i=j;i<n;i++)d+=data[i]*data[i-j];
- aut[j]=d;
- }
-
- /* Generate lpc coefficients from autocorr values */
-
- error=aut[0];
-
- for(i=0;i<m;i++){
- float r= -aut[i+1];
-
- if(error==0){
- memset(lpc,0,m*sizeof(*lpc));
- return 0;
- }
-
- /* Sum up this iteration's reflection coefficient; note that in
- Vorbis we don't save it. If anyone wants to recycle this code
- and needs reflection coefficients, save the results of 'r' from
- each iteration. */
-
- for(j=0;j<i;j++)r-=lpc[j]*aut[i-j];
- r/=error;
-
- /* Update LPC coefficients and total error */
-
- lpc[i]=r;
- for(j=0;j<i/2;j++){
- float tmp=lpc[j];
- lpc[j]+=r*lpc[i-1-j];
- lpc[i-1-j]+=r*tmp;
- }
- if(i%2)lpc[j]+=lpc[j]*r;
-
- error*=1.f-r*r;
- }
-
- /* we need the error value to know how big an impulse to hit the
- filter with later */
-
- return error;
-}
-
-/* Input : n element envelope spectral curve
- Output: m lpc coefficients, excitation energy */
-
-float vorbis_lpc_from_curve(float *curve,float *lpc,lpc_lookup *l){
- int n=l->ln;
- int m=l->m;
- float *work=alloca(sizeof(*work)*(n+n));
- float fscale=.5f/n;
- int i,j;
-
- /* input is a real curve. make it complex-real */
- /* This mixes phase, but the LPC generation doesn't care. */
- for(i=0;i<n;i++){
- work[i*2]=curve[i]*fscale;
- work[i*2+1]=0;
- }
- work[n*2-1]=curve[n-1]*fscale;
-
- n*=2;
- drft_backward(&l->fft,work);
-
- /* The autocorrelation will not be circular. Shift, else we lose
- most of the power in the edges. */
-
- for(i=0,j=n/2;i<n/2;){
- float temp=work[i];
- work[i++]=work[j];
- work[j++]=temp;
- }
-
- /* we *could* shave speed here by skimping on the edges (thus
- speeding up the autocorrelation in vorbis_lpc_from_data) but we
- don't right now. */
-
- return(vorbis_lpc_from_data(work,lpc,n,m));
-}
-
-void lpc_init(lpc_lookup *l,long mapped, int m){
- memset(l,0,sizeof(*l));
-
- l->ln=mapped;
- l->m=m;
-
- /* we cheat decoding the LPC spectrum via FFTs */
- drft_init(&l->fft,mapped*2);
-
-}
-
-void lpc_clear(lpc_lookup *l){
- if(l){
- drft_clear(&l->fft);
- }
-}
-
-void vorbis_lpc_predict(float *coeff,float *prime,int m,
- float *data,long n){
-
- /* in: coeff[0...m-1] LPC coefficients
- prime[0...m-1] initial values (allocated size of n+m-1)
- out: data[0...n-1] data samples */
-
- long i,j,o,p;
- float y;
- float *work=alloca(sizeof(*work)*(m+n));
-
- if(!prime)
- for(i=0;i<m;i++)
- work[i]=0.f;
- else
- for(i=0;i<m;i++)
- work[i]=prime[i];
-
- for(i=0;i<n;i++){
- y=0;
- o=i;
- p=m;
- for(j=0;j<m;j++)
- y-=work[o++]*coeff[--p];
-
- data[i]=work[o]=y;
- }
-}
-
-
-
-
-
diff --git a/lib/lpc.h b/lib/lpc.h
deleted file mode 100644
index 4651a902..00000000
--- a/lib/lpc.h
+++ /dev/null
@@ -1,43 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: LPC low level routines
- last mod: $Id: lpc.h,v 1.18 2001/12/20 01:00:27 segher Exp $
-
- ********************************************************************/
-
-#ifndef _V_LPC_H_
-#define _V_LPC_H_
-
-#include "vorbis/codec.h"
-#include "smallft.h"
-
-typedef struct lpclook{
- /* en/decode lookups */
- drft_lookup fft;
-
- int ln;
- int m;
-
-} lpc_lookup;
-
-extern void lpc_init(lpc_lookup *l,long mapped, int m);
-extern void lpc_clear(lpc_lookup *l);
-
-/* simple linear scale LPC code */
-extern float vorbis_lpc_from_data(float *data,float *lpc,int n,int m);
-extern float vorbis_lpc_from_curve(float *curve,float *lpc,lpc_lookup *l);
-
-extern void vorbis_lpc_predict(float *coeff,float *prime,int m,
- float *data,long n);
-
-#endif
diff --git a/lib/lsp.c b/lib/lsp.c
deleted file mode 100644
index fe95fc9a..00000000
--- a/lib/lsp.c
+++ /dev/null
@@ -1,457 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: LSP (also called LSF) conversion routines
- last mod: $Id: lsp.c,v 1.20 2001/12/20 01:00:27 segher Exp $
-
- The LSP generation code is taken (with minimal modification and a
- few bugfixes) from "On the Computation of the LSP Frequencies" by
- Joseph Rothweiler <rothwlr@altavista.net>, available at:
-
- http://www2.xtdl.com/~rothwlr/lsfpaper/lsfpage.html
-
- ********************************************************************/
-
-/* Note that the lpc-lsp conversion finds the roots of polynomial with
- an iterative root polisher (CACM algorithm 283). It *is* possible
- to confuse this algorithm into not converging; that should only
- happen with absurdly closely spaced roots (very sharp peaks in the
- LPC f response) which in turn should be impossible in our use of
- the code. If this *does* happen anyway, it's a bug in the floor
- finder; find the cause of the confusion (probably a single bin
- spike or accidental near-float-limit resolution problems) and
- correct it. */
-
-#include <math.h>
-#include <string.h>
-#include <stdlib.h>
-#include "lsp.h"
-#include "os.h"
-#include "misc.h"
-#include "lookup.h"
-#include "scales.h"
-
-/* three possible LSP to f curve functions; the exact computation
- (float), a lookup based float implementation, and an integer
- implementation. The float lookup is likely the optimal choice on
- any machine with an FPU. The integer implementation is *not* fixed
- point (due to the need for a large dynamic range and thus a
- seperately tracked exponent) and thus much more complex than the
- relatively simple float implementations. It's mostly for future
- work on a fully fixed point implementation for processors like the
- ARM family. */
-
-/* undefine both for the 'old' but more precise implementation */
-#undef FLOAT_LOOKUP
-#undef INT_LOOKUP
-
-#ifdef FLOAT_LOOKUP
-#include "lookup.c" /* catch this in the build system; we #include for
- compilers (like gcc) that can't inline across
- modules */
-
-/* side effect: changes *lsp to cosines of lsp */
-void vorbis_lsp_to_curve(float *curve,int *map,int n,int ln,float *lsp,int m,
- float amp,float ampoffset){
- int i;
- float wdel=M_PI/ln;
- vorbis_fpu_control fpu;
-
- vorbis_fpu_setround(&fpu);
- for(i=0;i<m;i++)lsp[i]=vorbis_coslook(lsp[i]);
-
- i=0;
- while(i<n){
- int k=map[i];
- int qexp;
- float p=.7071067812f;
- float q=.7071067812f;
- float w=vorbis_coslook(wdel*k);
- float *ftmp=lsp;
- int c=m>>1;
-
- do{
- q*=ftmp[0]-w;
- p*=ftmp[1]-w;
- ftmp+=2;
- }while(--c);
-
- if(m&1){
- /* odd order filter; slightly assymetric */
- /* the last coefficient */
- q*=ftmp[0]-w;
- q*=q;
- p*=p*(1.f-w*w);
- }else{
- /* even order filter; still symmetric */
- q*=q*(1.f+w);
- p*=p*(1.f-w);
- }
-
- q=frexp(p+q,&qexp);
- q=vorbis_fromdBlook(amp*
- vorbis_invsqlook(q)*
- vorbis_invsq2explook(qexp+m)-
- ampoffset);
-
- do{
- curve[i++]*=q;
- }while(map[i]==k);
- }
- vorbis_fpu_restore(fpu);
-}
-
-#else
-
-#ifdef INT_LOOKUP
-#include "lookup.c" /* catch this in the build system; we #include for
- compilers (like gcc) that can't inline across
- modules */
-
-static int MLOOP_1[64]={
- 0,10,11,11, 12,12,12,12, 13,13,13,13, 13,13,13,13,
- 14,14,14,14, 14,14,14,14, 14,14,14,14, 14,14,14,14,
- 15,15,15,15, 15,15,15,15, 15,15,15,15, 15,15,15,15,
- 15,15,15,15, 15,15,15,15, 15,15,15,15, 15,15,15,15,
-};
-
-static int MLOOP_2[64]={
- 0,4,5,5, 6,6,6,6, 7,7,7,7, 7,7,7,7,
- 8,8,8,8, 8,8,8,8, 8,8,8,8, 8,8,8,8,
- 9,9,9,9, 9,9,9,9, 9,9,9,9, 9,9,9,9,
- 9,9,9,9, 9,9,9,9, 9,9,9,9, 9,9,9,9,
-};
-
-static int MLOOP_3[8]={0,1,2,2,3,3,3,3};
-
-
-/* side effect: changes *lsp to cosines of lsp */
-void vorbis_lsp_to_curve(float *curve,int *map,int n,int ln,float *lsp,int m,
- float amp,float ampoffset){
-
- /* 0 <= m < 256 */
-
- /* set up for using all int later */
- int i;
- int ampoffseti=rint(ampoffset*4096.f);
- int ampi=rint(amp*16.f);
- long *ilsp=alloca(m*sizeof(*ilsp));
- for(i=0;i<m;i++)ilsp[i]=vorbis_coslook_i(lsp[i]/M_PI*65536.f+.5f);
-
- i=0;
- while(i<n){
- int j,k=map[i];
- unsigned long pi=46341; /* 2**-.5 in 0.16 */
- unsigned long qi=46341;
- int qexp=0,shift;
- long wi=vorbis_coslook_i(k*65536/ln);
-
- qi*=labs(ilsp[0]-wi);
- pi*=labs(ilsp[1]-wi);
-
- for(j=3;j<m;j+=2){
- if(!(shift=MLOOP_1[(pi|qi)>>25]))
- if(!(shift=MLOOP_2[(pi|qi)>>19]))
- shift=MLOOP_3[(pi|qi)>>16];
- qi=(qi>>shift)*labs(ilsp[j-1]-wi);
- pi=(pi>>shift)*labs(ilsp[j]-wi);
- qexp+=shift;
- }
- if(!(shift=MLOOP_1[(pi|qi)>>25]))
- if(!(shift=MLOOP_2[(pi|qi)>>19]))
- shift=MLOOP_3[(pi|qi)>>16];
-
- /* pi,qi normalized collectively, both tracked using qexp */
-
- if(m&1){
- /* odd order filter; slightly assymetric */
- /* the last coefficient */
- qi=(qi>>shift)*labs(ilsp[j-1]-wi);
- pi=(pi>>shift)<<14;
- qexp+=shift;
-
- if(!(shift=MLOOP_1[(pi|qi)>>25]))
- if(!(shift=MLOOP_2[(pi|qi)>>19]))
- shift=MLOOP_3[(pi|qi)>>16];
-
- pi>>=shift;
- qi>>=shift;
- qexp+=shift-14*((m+1)>>1);
-
- pi=((pi*pi)>>16);
- qi=((qi*qi)>>16);
- qexp=qexp*2+m;
-
- pi*=(1<<14)-((wi*wi)>>14);
- qi+=pi>>14;
-
- }else{
- /* even order filter; still symmetric */
-
- /* p*=p(1-w), q*=q(1+w), let normalization drift because it isn't
- worth tracking step by step */
-
- pi>>=shift;
- qi>>=shift;
- qexp+=shift-7*m;
-
- pi=((pi*pi)>>16);
- qi=((qi*qi)>>16);
- qexp=qexp*2+m;
-
- pi*=(1<<14)-wi;
- qi*=(1<<14)+wi;
- qi=(qi+pi)>>14;
-
- }
-
-
- /* we've let the normalization drift because it wasn't important;
- however, for the lookup, things must be normalized again. We
- need at most one right shift or a number of left shifts */
-
- if(qi&0xffff0000){ /* checks for 1.xxxxxxxxxxxxxxxx */
- qi>>=1; qexp++;
- }else
- while(qi && !(qi&0x8000)){ /* checks for 0.0xxxxxxxxxxxxxxx or less*/
- qi<<=1; qexp--;
- }
-
- amp=vorbis_fromdBlook_i(ampi* /* n.4 */
- vorbis_invsqlook_i(qi,qexp)-
- /* m.8, m+n<=8 */
- ampoffseti); /* 8.12[0] */
-
- curve[i]*=amp;
- while(map[++i]==k)curve[i]*=amp;
- }
-}
-
-#else
-
-/* old, nonoptimized but simple version for any poor sap who needs to
- figure out what the hell this code does, or wants the other
- fraction of a dB precision */
-
-/* side effect: changes *lsp to cosines of lsp */
-void vorbis_lsp_to_curve(float *curve,int *map,int n,int ln,float *lsp,int m,
- float amp,float ampoffset){
- int i;
- float wdel=M_PI/ln;
- for(i=0;i<m;i++)lsp[i]=2.f*cos(lsp[i]);
-
- i=0;
- while(i<n){
- int j,k=map[i];
- float p=.5f;
- float q=.5f;
- float w=2.f*cos(wdel*k);
- for(j=1;j<m;j+=2){
- q *= w-lsp[j-1];
- p *= w-lsp[j];
- }
- if(j==m){
- /* odd order filter; slightly assymetric */
- /* the last coefficient */
- q*=w-lsp[j-1];
- p*=p*(4.f-w*w);
- q*=q;
- }else{
- /* even order filter; still symmetric */
- p*=p*(2.f-w);
- q*=q*(2.f+w);
- }
-
- q=fromdB(amp/sqrt(p+q)-ampoffset);
-
- curve[i]*=q;
- while(map[++i]==k)curve[i]*=q;
- }
-}
-
-#endif
-#endif
-
-static void cheby(float *g, int ord) {
- int i, j;
-
- g[0] *= .5f;
- for(i=2; i<= ord; i++) {
- for(j=ord; j >= i; j--) {
- g[j-2] -= g[j];
- g[j] += g[j];
- }
- }
-}
-
-static int comp(const void *a,const void *b){
- if(*(float *)a<*(float *)b)
- return(1);
- else
- return(-1);
-}
-
-/* Newton-Raphson-Maehly actually functioned as a decent root finder,
- but there are root sets for which it gets into limit cycles
- (exacerbated by zero suppression) and fails. We can't afford to
- fail, even if the failure is 1 in 100,000,000, so we now use
- Laguerre and later polish with Newton-Raphson (which can then
- afford to fail) */
-
-#define EPSILON 10e-7
-static int Laguerre_With_Deflation(float *a,int ord,float *r){
- int i,m;
- double lastdelta=0.f;
- double *defl=alloca(sizeof(*defl)*(ord+1));
- for(i=0;i<=ord;i++)defl[i]=a[i];
-
- for(m=ord;m>0;m--){
- double new=0.f,delta;
-
- /* iterate a root */
- while(1){
- double p=defl[m],pp=0.f,ppp=0.f,denom;
-
- /* eval the polynomial and its first two derivatives */
- for(i=m;i>0;i--){
- ppp = new*ppp + pp;
- pp = new*pp + p;
- p = new*p + defl[i-1];
- }
-
- /* Laguerre's method */
- denom=(m-1) * ((m-1)*pp*pp - m*p*ppp);
- if(denom<0)
- return(-1); /* complex root! The LPC generator handed us a bad filter */
-
- if(pp>0){
- denom = pp + sqrt(denom);
- if(denom<EPSILON)denom=EPSILON;
- }else{
- denom = pp - sqrt(denom);
- if(denom>-(EPSILON))denom=-(EPSILON);
- }
-
- delta = m*p/denom;
- new -= delta;
-
- if(delta<0.f)delta*=-1;
-
- if(fabs(delta/new)<10e-12)break;
- lastdelta=delta;
- }
-
- r[m-1]=new;
-
- /* forward deflation */
-
- for(i=m;i>0;i--)
- defl[i-1]+=new*defl[i];
- defl++;
-
- }
- return(0);
-}
-
-
-/* for spit-and-polish only */
-static int Newton_Raphson(float *a,int ord,float *r){
- int i, k, count=0;
- double error=1.f;
- double *root=alloca(ord*sizeof(*root));
-
- for(i=0; i<ord;i++) root[i] = r[i];
-
- while(error>1e-20){
- error=0;
-
- for(i=0; i<ord; i++) { /* Update each point. */
- double pp=0.,delta;
- double rooti=root[i];
- double p=a[ord];
- for(k=ord-1; k>= 0; k--) {
-
- pp= pp* rooti + p;
- p = p * rooti + a[k];
- }
-
- delta = p/pp;
- root[i] -= delta;
- error+= delta*delta;
- }
-
- if(count>40)return(-1);
-
- count++;
- }
-
- /* Replaced the original bubble sort with a real sort. With your
- help, we can eliminate the bubble sort in our lifetime. --Monty */
-
- for(i=0; i<ord;i++) r[i] = root[i];
- return(0);
-}
-
-
-/* Convert lpc coefficients to lsp coefficients */
-int vorbis_lpc_to_lsp(float *lpc,float *lsp,int m){
- int order2=(m+1)>>1;
- int g1_order,g2_order;
- float *g1=alloca(sizeof(*g1)*(order2+1));
- float *g2=alloca(sizeof(*g2)*(order2+1));
- float *g1r=alloca(sizeof(*g1r)*(order2+1));
- float *g2r=alloca(sizeof(*g2r)*(order2+1));
- int i;
-
- /* even and odd are slightly different base cases */
- g1_order=(m+1)>>1;
- g2_order=(m) >>1;
-
- /* Compute the lengths of the x polynomials. */
- /* Compute the first half of K & R F1 & F2 polynomials. */
- /* Compute half of the symmetric and antisymmetric polynomials. */
- /* Remove the roots at +1 and -1. */
-
- g1[g1_order] = 1.f;
- for(i=1;i<=g1_order;i++) g1[g1_order-i] = lpc[i-1]+lpc[m-i];
- g2[g2_order] = 1.f;
- for(i=1;i<=g2_order;i++) g2[g2_order-i] = lpc[i-1]-lpc[m-i];
-
- if(g1_order>g2_order){
- for(i=2; i<=g2_order;i++) g2[g2_order-i] += g2[g2_order-i+2];
- }else{
- for(i=1; i<=g1_order;i++) g1[g1_order-i] -= g1[g1_order-i+1];
- for(i=1; i<=g2_order;i++) g2[g2_order-i] += g2[g2_order-i+1];
- }
-
- /* Convert into polynomials in cos(alpha) */
- cheby(g1,g1_order);
- cheby(g2,g2_order);
-
- /* Find the roots of the 2 even polynomials.*/
- if(Laguerre_With_Deflation(g1,g1_order,g1r) ||
- Laguerre_With_Deflation(g2,g2_order,g2r))
- return(-1);
-
- Newton_Raphson(g1,g1_order,g1r); /* if it fails, it leaves g1r alone */
- Newton_Raphson(g2,g2_order,g2r); /* if it fails, it leaves g2r alone */
-
- qsort(g1r,g1_order,sizeof(*g1r),comp);
- qsort(g2r,g2_order,sizeof(*g2r),comp);
-
- for(i=0;i<g1_order;i++)
- lsp[i*2] = acos(g1r[i]);
-
- for(i=0;i<g2_order;i++)
- lsp[i*2+1] = acos(g2r[i]);
- return(0);
-}
diff --git a/lib/lsp.h b/lib/lsp.h
deleted file mode 100644
index 4c1d95c3..00000000
--- a/lib/lsp.h
+++ /dev/null
@@ -1,28 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: LSP (also called LSF) conversion routines
- last mod: $Id: lsp.h,v 1.10 2001/12/20 01:00:27 segher Exp $
-
- ********************************************************************/
-
-
-#ifndef _V_LSP_H_
-#define _V_LSP_H_
-
-extern int vorbis_lpc_to_lsp(float *lpc,float *lsp,int m);
-
-extern void vorbis_lsp_to_curve(float *curve,int *map,int n,int ln,
- float *lsp,int m,
- float amp,float ampoffset);
-
-#endif
diff --git a/lib/mapping0.c b/lib/mapping0.c
deleted file mode 100644
index ef2f346a..00000000
--- a/lib/mapping0.c
+++ /dev/null
@@ -1,701 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: channel mapping 0 implementation
- last mod: $Id: mapping0.c,v 1.43 2001/12/20 01:00:27 segher Exp $
-
- ********************************************************************/
-
-#include <stdlib.h>
-#include <stdio.h>
-#include <string.h>
-#include <math.h>
-#include <ogg/ogg.h>
-#include "vorbis/codec.h"
-#include "codec_internal.h"
-#include "codebook.h"
-#include "registry.h"
-#include "psy.h"
-#include "misc.h"
-
-/* simplistic, wasteful way of doing this (unique lookup for each
- mode/submapping); there should be a central repository for
- identical lookups. That will require minor work, so I'm putting it
- off as low priority.
-
- Why a lookup for each backend in a given mode? Because the
- blocksize is set by the mode, and low backend lookups may require
- parameters from other areas of the mode/mapping */
-
-extern int analysis_noisy;
-
-typedef struct {
- drft_lookup fft_look;
- vorbis_info_mode *mode;
- vorbis_info_mapping0 *map;
-
- vorbis_look_time **time_look;
- vorbis_look_floor **floor_look;
-
- vorbis_look_residue **residue_look;
- vorbis_look_psy *psy_look[2];
-
- vorbis_func_time **time_func;
- vorbis_func_floor **floor_func;
- vorbis_func_residue **residue_func;
-
- int ch;
- long lastframe; /* if a different mode is called, we need to
- invalidate decay */
-} vorbis_look_mapping0;
-
-static vorbis_info_mapping *mapping0_copy_info(vorbis_info_mapping *vm){
- vorbis_info_mapping0 *info=(vorbis_info_mapping0 *)vm;
- vorbis_info_mapping0 *ret=_ogg_malloc(sizeof(*ret));
- memcpy(ret,info,sizeof(*ret));
- return(ret);
-}
-
-static void mapping0_free_info(vorbis_info_mapping *i){
- vorbis_info_mapping0 *info=(vorbis_info_mapping0 *)i;
- if(info){
- memset(info,0,sizeof(*info));
- _ogg_free(info);
- }
-}
-
-static void mapping0_free_look(vorbis_look_mapping *look){
- int i;
- vorbis_look_mapping0 *l=(vorbis_look_mapping0 *)look;
- if(l){
- drft_clear(&l->fft_look);
-
- for(i=0;i<l->map->submaps;i++){
- l->time_func[i]->free_look(l->time_look[i]);
- l->floor_func[i]->free_look(l->floor_look[i]);
- l->residue_func[i]->free_look(l->residue_look[i]);
- }
- if(l->psy_look[1] && l->psy_look[1]!=l->psy_look[0]){
- _vp_psy_clear(l->psy_look[1]);
- _ogg_free(l->psy_look[1]);
- }
- if(l->psy_look[0]){
- _vp_psy_clear(l->psy_look[0]);
- _ogg_free(l->psy_look[0]);
- }
- _ogg_free(l->time_func);
- _ogg_free(l->floor_func);
- _ogg_free(l->residue_func);
- _ogg_free(l->time_look);
- _ogg_free(l->floor_look);
- _ogg_free(l->residue_look);
- memset(l,0,sizeof(*l));
- _ogg_free(l);
- }
-}
-
-static vorbis_look_mapping *mapping0_look(vorbis_dsp_state *vd,vorbis_info_mode *vm,
- vorbis_info_mapping *m){
- int i;
- vorbis_info *vi=vd->vi;
- codec_setup_info *ci=vi->codec_setup;
- vorbis_look_mapping0 *look=_ogg_calloc(1,sizeof(*look));
- vorbis_info_mapping0 *info=look->map=(vorbis_info_mapping0 *)m;
- look->mode=vm;
-
- look->time_look=_ogg_calloc(info->submaps,sizeof(*look->time_look));
- look->floor_look=_ogg_calloc(info->submaps,sizeof(*look->floor_look));
-
- look->residue_look=_ogg_calloc(info->submaps,sizeof(*look->residue_look));
-
- look->time_func=_ogg_calloc(info->submaps,sizeof(*look->time_func));
- look->floor_func=_ogg_calloc(info->submaps,sizeof(*look->floor_func));
- look->residue_func=_ogg_calloc(info->submaps,sizeof(*look->residue_func));
-
- for(i=0;i<info->submaps;i++){
- int timenum=info->timesubmap[i];
- int floornum=info->floorsubmap[i];
- int resnum=info->residuesubmap[i];
-
- look->time_func[i]=_time_P[ci->time_type[timenum]];
- look->time_look[i]=look->time_func[i]->
- look(vd,vm,ci->time_param[timenum]);
- look->floor_func[i]=_floor_P[ci->floor_type[floornum]];
- look->floor_look[i]=look->floor_func[i]->
- look(vd,vm,ci->floor_param[floornum]);
- look->residue_func[i]=_residue_P[ci->residue_type[resnum]];
- look->residue_look[i]=look->residue_func[i]->
- look(vd,vm,ci->residue_param[resnum]);
-
- }
- if(ci->psys && vd->analysisp){
- if(info->psy[0] != info->psy[1]){
-
- int psynum=info->psy[0];
- look->psy_look[0]=_ogg_calloc(1,sizeof(*look->psy_look[0]));
- _vp_psy_init(look->psy_look[0],ci->psy_param[psynum],
- &ci->psy_g_param,
- ci->blocksizes[vm->blockflag]/2,vi->rate);
-
- psynum=info->psy[1];
- look->psy_look[1]=_ogg_calloc(1,sizeof(*look->psy_look[1]));
- _vp_psy_init(look->psy_look[1],ci->psy_param[psynum],
- &ci->psy_g_param,
- ci->blocksizes[vm->blockflag]/2,vi->rate);
- }else{
-
- int psynum=info->psy[0];
- look->psy_look[0]=_ogg_calloc(1,sizeof(*look->psy_look[0]));
- look->psy_look[1]=look->psy_look[0];
- _vp_psy_init(look->psy_look[0],ci->psy_param[psynum],
- &ci->psy_g_param,
- ci->blocksizes[vm->blockflag]/2,vi->rate);
-
- }
- }
-
- look->ch=vi->channels;
-
- if(vd->analysisp)drft_init(&look->fft_look,ci->blocksizes[vm->blockflag]);
- return(look);
-}
-
-static int ilog2(unsigned int v){
- int ret=0;
- while(v>1){
- ret++;
- v>>=1;
- }
- return(ret);
-}
-
-static void mapping0_pack(vorbis_info *vi,vorbis_info_mapping *vm,
- oggpack_buffer *opb){
- int i;
- vorbis_info_mapping0 *info=(vorbis_info_mapping0 *)vm;
-
- /* another 'we meant to do it this way' hack... up to beta 4, we
- packed 4 binary zeros here to signify one submapping in use. We
- now redefine that to mean four bitflags that indicate use of
- deeper features; bit0:submappings, bit1:coupling,
- bit2,3:reserved. This is backward compatable with all actual uses
- of the beta code. */
-
- if(info->submaps>1){
- oggpack_write(opb,1,1);
- oggpack_write(opb,info->submaps-1,4);
- }else
- oggpack_write(opb,0,1);
-
- if(info->coupling_steps>0){
- oggpack_write(opb,1,1);
- oggpack_write(opb,info->coupling_steps-1,8);
-
- for(i=0;i<info->coupling_steps;i++){
- oggpack_write(opb,info->coupling_mag[i],ilog2(vi->channels));
- oggpack_write(opb,info->coupling_ang[i],ilog2(vi->channels));
- }
- }else
- oggpack_write(opb,0,1);
-
- oggpack_write(opb,0,2); /* 2,3:reserved */
-
- /* we don't write the channel submappings if we only have one... */
- if(info->submaps>1){
- for(i=0;i<vi->channels;i++)
- oggpack_write(opb,info->chmuxlist[i],4);
- }
- for(i=0;i<info->submaps;i++){
- oggpack_write(opb,info->timesubmap[i],8);
- oggpack_write(opb,info->floorsubmap[i],8);
- oggpack_write(opb,info->residuesubmap[i],8);
- }
-}
-
-/* also responsible for range checking */
-static vorbis_info_mapping *mapping0_unpack(vorbis_info *vi,oggpack_buffer *opb){
- int i;
- vorbis_info_mapping0 *info=_ogg_calloc(1,sizeof(*info));
- codec_setup_info *ci=vi->codec_setup;
- memset(info,0,sizeof(*info));
-
- if(oggpack_read(opb,1))
- info->submaps=oggpack_read(opb,4)+1;
- else
- info->submaps=1;
-
- if(oggpack_read(opb,1)){
- info->coupling_steps=oggpack_read(opb,8)+1;
-
- for(i=0;i<info->coupling_steps;i++){
- int testM=info->coupling_mag[i]=oggpack_read(opb,ilog2(vi->channels));
- int testA=info->coupling_ang[i]=oggpack_read(opb,ilog2(vi->channels));
-
- if(testM<0 ||
- testA<0 ||
- testM==testA ||
- testM>=vi->channels ||
- testA>=vi->channels) goto err_out;
- }
-
- }
-
- if(oggpack_read(opb,2)>0)goto err_out; /* 2,3:reserved */
-
- if(info->submaps>1){
- for(i=0;i<vi->channels;i++){
- info->chmuxlist[i]=oggpack_read(opb,4);
- if(info->chmuxlist[i]>=info->submaps)goto err_out;
- }
- }
- for(i=0;i<info->submaps;i++){
- info->timesubmap[i]=oggpack_read(opb,8);
- if(info->timesubmap[i]>=ci->times)goto err_out;
- info->floorsubmap[i]=oggpack_read(opb,8);
- if(info->floorsubmap[i]>=ci->floors)goto err_out;
- info->residuesubmap[i]=oggpack_read(opb,8);
- if(info->residuesubmap[i]>=ci->residues)goto err_out;
- }
-
- return info;
-
- err_out:
- mapping0_free_info(info);
- return(NULL);
-}
-
-#include "os.h"
-#include "lpc.h"
-#include "lsp.h"
-#include "envelope.h"
-#include "mdct.h"
-#include "psy.h"
-#include "scales.h"
-
-/* no time mapping implementation for now */
-static long seq=0;
-static int mapping0_forward(vorbis_block *vb,vorbis_look_mapping *l){
- vorbis_dsp_state *vd=vb->vd;
- vorbis_info *vi=vd->vi;
- codec_setup_info *ci=vi->codec_setup;
- backend_lookup_state *b=vb->vd->backend_state;
- bitrate_manager_state *bm=&b->bms;
- vorbis_look_mapping0 *look=(vorbis_look_mapping0 *)l;
- vorbis_info_mapping0 *info=look->map;
- vorbis_info_mode *mode=look->mode;
- vorbis_block_internal *vbi=(vorbis_block_internal *)vb->internal;
- int n=vb->pcmend;
- int i,j;
- float *window=b->window[vb->W][vb->lW][vb->nW][mode->windowtype];
- int *nonzero=alloca(sizeof(*nonzero)*vi->channels);
-
- float *work=_vorbis_block_alloc(vb,n*sizeof(*work));
-
- float global_ampmax=vbi->ampmax;
- float *local_ampmax=alloca(sizeof(*local_ampmax)*vi->channels);
- int blocktype=vbi->blocktype;
-
- /* we differentiate between short and long block types to help the
- masking engine; the window shapes also matter.
- impulse block (a short block in which an impulse occurs)
- padding block (a short block that pads between a transitional
- long block and an impulse block, or vice versa)
- transition block (the wqeird one; a long block with the transition
- window; affects bass/midrange response and that must be
- accounted for in masking)
- long block (run of the mill long block)
- */
-
- for(i=0;i<vi->channels;i++){
- float scale=4.f/n;
- float scale_dB;
-
- /* the following makes things clearer to *me* anyway */
- float *pcm =vb->pcm[i];
- float *fft =work;
- float *logfft =pcm+n/2;
-
- /*float *res =pcm;
- float *mdct =pcm;
- float *codedflr=pcm+n/2;
- float *logmax =work;
- float *logmask =work+n/2;*/
-
- scale_dB=todB(&scale);
- _analysis_output("pcm",seq+i,pcm,n,0,0);
-
- /* window the PCM data */
- for(j=0;j<n;j++)
- fft[j]=pcm[j]*=window[j];
-
- /*_analysis_output("windowed",seq+i,pcm,n,0,0);*/
-
- /* transform the PCM data */
- /* only MDCT right now.... */
- mdct_forward(b->transform[vb->W][0],pcm,pcm);
-
- /* FFT yields more accurate tonal estimation (not phase sensitive) */
- drft_forward(&look->fft_look,fft);
- fft[0]*=scale;
- logfft[0]=todB(fft);
- local_ampmax[i]=logfft[0];
- for(j=1;j<n-1;j+=2){
- float temp=fft[j]*fft[j]+fft[j+1]*fft[j+1];
- temp=logfft[(j+1)>>1]=scale_dB+.5f*todB(&temp);
- if(temp>local_ampmax[i])local_ampmax[i]=temp;
- }
-
- if(local_ampmax[i]>0.f)local_ampmax[i]=0.f;
- if(local_ampmax[i]>global_ampmax)global_ampmax=local_ampmax[i];
-
- _analysis_output("fft",seq+i,logfft,n/2,1,0);
- }
-
- for(i=0;i<vi->channels;i++){
- int submap=info->chmuxlist[i];
-
- /* the following makes things clearer to *me* anyway */
- float *mdct =vb->pcm[i];
- float *res =mdct;
- float *codedflr=mdct+n/2;
- float *logfft =mdct+n/2;
-
- float *logmdct =work;
- float *logmax =mdct+n/2;
- float *logmask =work+n/2;
-
- for(j=0;j<n/2;j++)
- logmdct[j]=todB(mdct+j);
- _analysis_output("mdct",seq+i,logmdct,n/2,1,0);
-
-
- /* perform psychoacoustics; do masking */
- _vp_compute_mask(look->psy_look[blocktype],
- logfft, /* -> logmax */
- logmdct,
- logmask,
- global_ampmax,
- local_ampmax[i],
- bm->avgnoise);
-
- _analysis_output("mask",seq+i,logmask,n/2,1,0);
- /* perform floor encoding */
- nonzero[i]=look->floor_func[submap]->
- forward(vb,look->floor_look[submap],
- mdct,
- logmdct,
- logmask,
- logmax,
-
- codedflr);
-
-
- _vp_remove_floor(look->psy_look[blocktype],
- mdct,
- codedflr,
- res);
-
- /*for(j=0;j<n/2;j++)
- if(fabs(res[j])>1200){
- analysis_noisy=1;
- fprintf(stderr,"%ld ",seq+i);
- }*/
-
- _analysis_output("codedflr",seq+i,codedflr,n/2,1,1);
-
- }
-
- vbi->ampmax=global_ampmax;
-
- /* partition based prequantization and channel coupling */
- /* Steps in prequant and coupling:
-
- classify by |mag| across all pcm vectors
-
- down-couple/down-quantize from perfect residue -> quantized vector
-
- do{
- encode quantized vector; add encoded values to 'so-far' vector
- more? [not yet at bitrate/not yet at target]
- yes{
- down-couple/down-quantize from perfect-'so-far' ->
- quantized vector; when subtracting coupling,
- account for +/- out-of-phase component
- }no{
- break
- }
- }
- done.
-
- quantization in each iteration is done (after circular normalization
- in coupling) using a by-iteration quantization granule value.
- */
-
- {
- float **pcm=vb->pcm;
- float **quantized=alloca(sizeof(*quantized)*vi->channels);
- float **sofar=alloca(sizeof(*sofar)*vi->channels);
-
- long ***classifications=alloca(sizeof(*classifications)*info->submaps);
- float ***qbundle=alloca(sizeof(*qbundle)*info->submaps);
- float ***pcmbundle=alloca(sizeof(*pcmbundle)*info->submaps);
- float ***sobundle=alloca(sizeof(*sobundle)*info->submaps);
- int **zerobundle=alloca(sizeof(*zerobundle)*info->submaps);
- int *chbundle=alloca(sizeof(*chbundle)*info->submaps);
- int chcounter=0;
-
- /* play a little loose with this abstraction */
- int quant_passes=ci->coupling_passes;
-
- for(i=0;i<vi->channels;i++){
- quantized[i]=_vorbis_block_alloc(vb,n*sizeof(*sofar[i]));
- sofar[i]=quantized[i]+n/2;
- memset(sofar[i],0,sizeof(*sofar[i])*n/2);
- }
-
- qbundle[0]=alloca(sizeof(*qbundle[0])*vi->channels);
- pcmbundle[0]=alloca(sizeof(*pcmbundle[0])*vi->channels);
- sobundle[0]=alloca(sizeof(*sobundle[0])*vi->channels);
- zerobundle[0]=alloca(sizeof(*zerobundle[0])*vi->channels);
-
- /* initial down-quantized coupling */
-
- if(info->coupling_steps==0){
- /* this assumes all or nothing coupling right now. it should pass
- through any channels left uncoupled, but it doesn't do that now */
- for(i=0;i<vi->channels;i++){
- float *lpcm=pcm[i];
- float *lqua=quantized[i];
- for(j=0;j<n/2;j++)
- lqua[j]=lpcm[j];
- }
- }else{
- _vp_quantize_couple(look->psy_look[blocktype],
- info,
- pcm,
- sofar,
- quantized,
- nonzero,
- 0);
- }
-
- for(i=0;i<vi->channels;i++)
- _analysis_output("quant",seq+i,quantized[i],n/2,1,0);
-
-
- /* classify, by submap */
-
- for(i=0;i<info->submaps;i++){
- int ch_in_bundle=0;
- qbundle[i]=qbundle[0]+chcounter;
- sobundle[i]=sobundle[0]+chcounter;
- zerobundle[i]=zerobundle[0]+chcounter;
-
- for(j=0;j<vi->channels;j++){
- if(info->chmuxlist[j]==i){
- if(nonzero[j])
- zerobundle[i][ch_in_bundle]=1;
- else
- zerobundle[i][ch_in_bundle]=0;
- qbundle[i][ch_in_bundle]=quantized[j];
- pcmbundle[i][ch_in_bundle]=pcm[j];
- sobundle[i][ch_in_bundle++]=sofar[j];
- }
- }
- chbundle[i]=ch_in_bundle;
- chcounter+=ch_in_bundle;
-
- classifications[i]=look->residue_func[i]->
- class(vb,look->residue_look[i],pcmbundle[i],zerobundle[i],chbundle[i]);
- }
-
- /* actual encoding loop; we pack all the iterations to collect
- management data */
-
- for(i=0;i<quant_passes;){
-
- /* perform residue encoding of this pass's quantized residue
- vector, according residue mapping */
-
- for(j=0;j<info->submaps;j++){
- look->residue_func[j]->
- forward(vb,look->residue_look[j],
- qbundle[j],sobundle[j],zerobundle[j],chbundle[j],
- i,classifications[j],vbi->packet_markers);
-
- }
- i++;
-
- if(i<quant_passes){
- /* down-couple/down-quantize from perfect-'so-far' ->
- new quantized vector */
- if(info->coupling_steps==0){
- /* this assumes all or nothing coupling right now. it should pass
- through any channels left uncoupled, but it doesn't do that now */
- int k;
- for(k=0;k<vi->channels;k++){
- float *lpcm=pcm[k];
- float *lsof=sofar[k];
- float *lqua=quantized[k];
- for(j=0;j<n/2;j++)
- lqua[j]=lpcm[j]-lsof[j];
- }
- }else{
-
- _vp_quantize_couple(look->psy_look[blocktype],
- info,
- pcm,
- sofar,
- quantized,
- nonzero,
- i);
- }
- }
- }
- seq+=vi->channels;
- }
-
- look->lastframe=vb->sequence;
- return(0);
-}
-
-static int mapping0_inverse(vorbis_block *vb,vorbis_look_mapping *l){
- vorbis_dsp_state *vd=vb->vd;
- vorbis_info *vi=vd->vi;
- codec_setup_info *ci=vi->codec_setup;
- backend_lookup_state *b=vd->backend_state;
- vorbis_look_mapping0 *look=(vorbis_look_mapping0 *)l;
- vorbis_info_mapping0 *info=look->map;
- vorbis_info_mode *mode=look->mode;
- int i,j;
- long n=vb->pcmend=ci->blocksizes[vb->W];
-
- float *window=b->window[vb->W][vb->lW][vb->nW][mode->windowtype];
- float **pcmbundle=alloca(sizeof(*pcmbundle)*vi->channels);
- int *zerobundle=alloca(sizeof(*zerobundle)*vi->channels);
-
- int *nonzero =alloca(sizeof(*nonzero)*vi->channels);
- void **floormemo=alloca(sizeof(*floormemo)*vi->channels);
-
- /* time domain information decode (note that applying the
- information would have to happen later; we'll probably add a
- function entry to the harness for that later */
- /* NOT IMPLEMENTED */
-
- /* recover the spectral envelope; store it in the PCM vector for now */
- for(i=0;i<vi->channels;i++){
- int submap=info->chmuxlist[i];
- floormemo[i]=look->floor_func[submap]->
- inverse1(vb,look->floor_look[submap]);
- if(floormemo[i])
- nonzero[i]=1;
- else
- nonzero[i]=0;
- memset(vb->pcm[i],0,sizeof(*vb->pcm[i])*n/2);
- }
-
- /* channel coupling can 'dirty' the nonzero listing */
- for(i=0;i<info->coupling_steps;i++){
- if(nonzero[info->coupling_mag[i]] ||
- nonzero[info->coupling_ang[i]]){
- nonzero[info->coupling_mag[i]]=1;
- nonzero[info->coupling_ang[i]]=1;
- }
- }
-
- /* recover the residue into our working vectors */
- for(i=0;i<info->submaps;i++){
- int ch_in_bundle=0;
- for(j=0;j<vi->channels;j++){
- if(info->chmuxlist[j]==i){
- if(nonzero[j])
- zerobundle[ch_in_bundle]=1;
- else
- zerobundle[ch_in_bundle]=0;
- pcmbundle[ch_in_bundle++]=vb->pcm[j];
- }
- }
-
- look->residue_func[i]->inverse(vb,look->residue_look[i],
- pcmbundle,zerobundle,ch_in_bundle);
- }
-
- /* channel coupling */
- for(i=info->coupling_steps-1;i>=0;i--){
- float *pcmM=vb->pcm[info->coupling_mag[i]];
- float *pcmA=vb->pcm[info->coupling_ang[i]];
-
- for(j=0;j<n/2;j++){
- float mag=pcmM[j];
- float ang=pcmA[j];
-
- if(mag>0)
- if(ang>0){
- pcmM[j]=mag;
- pcmA[j]=mag-ang;
- }else{
- pcmA[j]=mag;
- pcmM[j]=mag+ang;
- }
- else
- if(ang>0){
- pcmM[j]=mag;
- pcmA[j]=mag+ang;
- }else{
- pcmA[j]=mag;
- pcmM[j]=mag-ang;
- }
- }
- }
-
- /* compute and apply spectral envelope */
- for(i=0;i<vi->channels;i++){
- float *pcm=vb->pcm[i];
- int submap=info->chmuxlist[i];
- look->floor_func[submap]->
- inverse2(vb,look->floor_look[submap],floormemo[i],pcm);
- }
-
- /* transform the PCM data; takes PCM vector, vb; modifies PCM vector */
- /* only MDCT right now.... */
- for(i=0;i<vi->channels;i++){
- float *pcm=vb->pcm[i];
- mdct_backward(b->transform[vb->W][0],pcm,pcm);
- }
-
- /* window the data */
- for(i=0;i<vi->channels;i++){
- float *pcm=vb->pcm[i];
- if(nonzero[i])
- for(j=0;j<n;j++)
- pcm[j]*=window[j];
- else
- for(j=0;j<n;j++)
- pcm[j]=0.f;
-
- }
-
- /* all done! */
- return(0);
-}
-
-/* export hooks */
-vorbis_func_mapping mapping0_exportbundle={
- &mapping0_pack,
- &mapping0_unpack,
- &mapping0_look,
- &mapping0_copy_info,
- &mapping0_free_info,
- &mapping0_free_look,
- &mapping0_forward,
- &mapping0_inverse
-};
diff --git a/lib/masking.h b/lib/masking.h
deleted file mode 100644
index 55f41351..00000000
--- a/lib/masking.h
+++ /dev/null
@@ -1,218 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: masking curve data for psychoacoustics
- last mod: $Id: masking.h,v 1.21 2001/12/22 09:40:39 xiphmont Exp $
-
- ********************************************************************/
-
-#ifndef _V_MASKING_H_
-#define _V_MASKING_H_
-
-static float ATH_Bark_dB_lspconservative[]={
- 15, 15, 15, 15, 11, 10, 8, 7, 7, 7,
- 6, 2, 0, 0, -3, -5, -6, -6, -4.5f, 2.5f,
- 10, 15, 15, 15, 15, 15, 15};
-
-/* The below masking curves are straight from the R. Ehmer
- (J. Acoustical Society of America) papers ca 1958-59. I modified
- them slightly as Ehmer does not correct for the Absolute Threshold
- of Hearing, and the low dB portions of the curves are thus highly
- suspect. */
-
-/* Let's all do the Trek thing and just call them 'Ehmer curves' ;-)
- Note these are octaves, not Bark scale. */
-
-#define EHMER_OFFSET 16
-#define EHMER_MAX 56
-
-static float tone_125_40dB_SL[EHMER_MAX]={
- 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
- 20, 18, 16, 14, 12, 11, 9, 7, 5, 3, 2, 0, -2, -4, -6, -8,
- -10, -12, -14, -16, -18, -20, -900, -900, -900,-900,-900,-900,-900,-900,-900,-900,
--900,-900,-900,-900,-900,-900,-900,-900};
-static float tone_125_60dB_SL[EHMER_MAX]={
- 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
- 40, 38, 36, 34, 32, 31, 29, 27, 25, 23, 22, 20, 18, 16, 14, 12,
- 10, 8, 6, 4, 2, 0, -3, -5, -8,-10,-14,-17,-20,-900,-900,-900,
--900,-900,-900,-900,-900,-900,-900,-900};
-static float tone_125_80dB_SL[EHMER_MAX]={
- 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60,
- 60, 58, 56, 54, 52, 51, 49, 47, 45, 43, 42, 40, 38, 36, 34, 32,
- 30, 28, 26, 24, 22, 20, 17, 15, 12, 10, 6, 3, 0, -4, -8,-12,
--900,-900,-900,-900,-900,-900,-900,-900};
-static float tone_125_100dB_SL[EHMER_MAX]={
- 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78,
- 78, 77, 75, 74, 73, 72, 71, 70, 69, 68, 67, 65, 64, 63, 62, 60,
- 58, 57, 55, 54, 52, 50, 48, 46, 44, 42, 40, 38, 36, 34, 31, 29,
- 27, 24, 22, 20, 18, 15, 13, 11};
-
-static float tone_250_40dB_SL[EHMER_MAX]={
--900,-900,-900,-900,-900,-900,-900,-900, -19, -13, -7, -1, 4, 9, 15, 20,
- 22, 23, 22, 19, 18, 18, 16, 13, 9, 7, 3, 1, -1, -3, -6, -8,
- -10, -13, -16, -19,-900,-900,-900,-900, -900,-900,-900,-900,-900,-900,-900,-900,
--900,-900,-900,-900,-900,-900,-900,-900};
-static float tone_250_60dB_SL[EHMER_MAX]={
--900,-900,-900,-900,-900,-900,-900, -10, -5, 1, 7, 13, 19, 25, 30, 33,
- 36, 39, 38, 37, 38, 39, 39, 40, 38, 36, 35, 34, 33, 31, 29, 28,
- 28, 28, 25, 20, 14, 10, 5, 0, -5,-10,-15,-20,-900,-900,-900,-900,
--900,-900,-900,-900,-900,-900,-900,-900};
-static float tone_250_80dB_SL[EHMER_MAX]={
--900,-900,-900,-900,-900,-900,-900, -10, 10, 17, 24, 30, 37, 41, 48, 49,
- 50, 53, 54, 53, 53, 54, 55, 57, 57, 57, 58, 59, 60, 58, 57, 58,
- 59, 58, 57, 54, 52, 50, 49, 47, 46, 47, 46, 44, 43, 42, 41, 40,
- 38, 32, 27, 22, 17, 11, 6, 0};
-/* no data, just interpolated from 80 */
-static float tone_250_100dB_SL[EHMER_MAX]={
--900,-900,-900,-900,-900,-900,-900, -10, 15, 25, 34, 40, 50, 56, 60, 70,
- 70, 73, 74, 73, 73, 74, 75, 77, 77, 77, 78, 79, 80, 78, 77, 78,
- 79, 78, 77, 74, 72, 70, 69, 67, 66, 67, 66, 64, 63, 62, 61, 60,
- 58, 52, 47, 42, 37, 31, 26, 20};
-
-static float tone_500_40dB_SL[EHMER_MAX]={
--900,-900,-900,-900,-900,-900,-900,-900, -900, -20, -14, -8, -2, 4, 10, 17,
- 23, 16, 12, 9, 6, 3, 0, -3, -7, -10, -13, -16, -20,-900,-900,-900,
--900,-900,-900,-900,-900,-900,-900,-900, -900,-900,-900,-900,-900,-900,-900,-900,
--900,-900,-900,-900,-900,-900,-900,-900};
-static float tone_500_60dB_SL[EHMER_MAX]={
--900,-900,-900,-900,-900,-900,-900,-900, -18, -12, -6, 0, 6, 13, 20, 30,
- 39, 34, 31, 29, 29, 27, 24, 21, 18, 16, 13, 8, 6, 3, 1, -1,
- -5, -2, -5, -8, -12, -15, -18,-900, -900,-900,-900,-900,-900,-900,-900,-900,
--900,-900,-900,-900,-900,-900,-900,-900};
-static float tone_500_80dB_SL[EHMER_MAX]={
--900,-900,-900,-900,-900,-900,-900,-900, -900,-16,-10, 0, 10, 20, 32, 43,
- 53, 52, 52, 50, 49, 50, 52, 55, 55, 54, 51, 49, 46, 44, 44, 42,
- 38, 34, 32, 29, 29, 28, 25, 23, 20, 16, 10, 7, 4, 2, -1, -4,
- -7, -10, -15, -20,-900,-900,-900,-900};
-static float tone_500_100dB_SL[EHMER_MAX]={
--900,-900,-900,-900,-900,-900,-900, -10, -7, 2, 10, 19, 27, 35, 55, 56,
- 62, 61, 60, 58, 57, 57, 59, 63, 65, 66, 62, 60, 57, 57, 58, 58,
- 57, 56, 56, 56, 57, 57, 56, 57, 57, 54, 47, 41, 37, 28, 21, 16,
- 10, 3, -3, -8, -13, -18,-900,-900};
-
-static float tone_1000_40dB_SL[EHMER_MAX]={
--900,-900,-900,-900,-900,-900,-900,-900, -900,-900,-900, -20, -10, 0, 9, 20,
- 27, 20, 13, 14, 13, 5, -1, -6, -11, -20,-900,-900,-900,-900,-900,-900,
--900,-900,-900,-900,-900,-900,-900,-900, -900,-900,-900,-900,-900,-900,-900,-900,
--900,-900,-900,-900,-900,-900,-900,-900};
-static float tone_1000_60dB_SL[EHMER_MAX]={
--900,-900,-900,-900,-900,-900,-900,-900, -900,-900,-13,-3, 7, 17, 25, 37,
- 42, 33, 25, 25, 23, 18, 13, 9, 4, -1, -7,-13,-18, -23, -28, -33,
--900,-900,-900,-900,-900,-900,-900,-900, -900,-900,-900,-900,-900,-900,-900,-900,
--900,-900,-900,-900,-900,-900,-900,-900};
-static float tone_1000_80dB_SL[EHMER_MAX]={
--900,-900,-900,-900,-900,-900,-900,-900, -900,-14, -4, 6, 16, 27, 33, 50,
- 59, 57, 47, 41, 40, 43, 47, 48, 47, 42, 39, 37, 37, 36, 35, 32,
- 30, 27, 21, 15, 5, -2, -10, -18, -900,-900,-900,-900,-900,-900,-900,-900,
--900,-900,-900,-900,-900,-900,-900,-900};
-static float tone_1000_100dB_SL[EHMER_MAX]={
--900,-900,-900,-900,-900,-900,-900,-900, -900,-10, 0, 10, 23, 33, 45, 60,
- 70, 72, 55, 49, 43, 40, 44, 54, 59, 58, 49, 43, 52, 57, 57, 58,
- 58, 54, 49, 47, 42, 39, 33, 28, 20, 15, 5, 0, -5,-15,-900,-900,
--900,-900,-900,-900,-900,-900,-900,-900};
-
-static float tone_2000_40dB_SL[EHMER_MAX]={
--900,-900,-900,-900,-900,-900,-900,-900, -900,-900,-900,-900,-900, 5, 12, 20,
- 24, 14, 8, 0, -5,-900,-900,-900, -900,-900,-900,-900,-900,-900,-900,-900,
--900,-900,-900,-900,-900,-900,-900,-900, -900,-900,-900,-900,-900,-900,-900,-900,
--900,-900,-900,-900,-900,-900,-900,-900};
-static float tone_2000_60dB_SL[EHMER_MAX]={
--900,-900,-900,-900,-900,-900,-900,-900, -900,-900,-900,-900, -2, 8, 19, 31,
- 38, 30, 15, 15, 15, 13, 8, 5, -2,-900,-900,-900,-900,-900,-900,-900,
--900,-900,-900,-900,-900,-900,-900,-900, -900,-900,-900,-900,-900,-900,-900,-900,
--900,-900,-900,-900,-900,-900,-900,-900};
-static float tone_2000_80dB_SL[EHMER_MAX]={
--900,-900,-900,-900,-900,-900,-900,-900, -900,-900,-900,-900, 2, 10, 22, 38,
- 52, 51, 40, 30, 28, 30, 33, 37, 37, 35, 31, 26, 20, 15, 10, 5,
- 0,-900,-900,-900,-900,-900,-900,-900, -900,-900,-900,-900,-900,-900,-900,-900,
--900,-900,-900,-900,-900,-900,-900,-900};
-static float tone_2000_100dB_SL[EHMER_MAX]={
--900,-900,-900,-900,-900,-900,-900,-900, -900,-900,-900,-900, 6, 20, 40, 55,
- 66, 60, 53, 40, 35, 31, 34, 42, 58, 48, 43, 45, 52, 57, 50, 42,
- 45, 45, 35, 25, 20, 11, 2,-900, -900,-900,-900,-900,-900,-900,-900,-900,
--900,-900,-900,-900,-900,-900,-900,-900};
-
-static float tone_4000_40dB_SL[EHMER_MAX]={
--900,-900,-900,-900,-900,-900,-900,-900, -900,-900,-900,-900,-900, 2, 4, 18,
- 24, 10, 5, 0, -5,-900,-900,-900, -900,-900,-900,-900,-900,-900,-900,-900,
--900,-900,-900,-900,-900,-900,-900,-900, -900,-900,-900,-900,-900,-900,-900,-900,
--900,-900,-900,-900,-900,-900,-900,-900};
-
-static float tone_4000_60dB_SL[EHMER_MAX]={
--900,-900,-900,-900,-900,-900,-900,-900, -900,-900,-900,-900, -2, 2, 4, 20,
- 38, 30, 22, 15, 10, 5, 0, -10, -900,-900,-900,-900,-900,-900,-900,-900,
--900,-900,-900,-900,-900,-900,-900,-900, -900,-900,-900,-900,-900,-900,-900,-900,
--900,-900,-900,-900,-900,-900,-900,-900};
-
-static float tone_4000_80dB_SL[EHMER_MAX]={
--900,-900,-900,-900,-900,-900,-900,-900, -900,-900,-900,-900, 0, 4, 10, 35,
- 51, 49, 35, 35, 36, 36, 36, 31, 25, 20, 10, 0,-900,-900,-900,-900,
--900,-900,-900,-900,-900,-900,-900,-900, -900,-900,-900,-900,-900,-900,-900,-900,
--900,-900,-900,-900,-900,-900,-900,-900};
-
-static float tone_4000_100dB_SL[EHMER_MAX]={
--900, -5, 1, 3, 5, 8, 10, 12, 14, 20, 26, 28, 32, 36, 41, 51,
- 61, 59, 45, 45, 48, 48, 40, 25, 40, 30, 18, 5, 0, -900,-900,-900,
--900,-900,-900,-900,-900,-900,-900,-900, -900,-900,-900,-900,-900,-900,-900,-900,
--900,-900,-900,-900,-900,-900,-900,-900};
-
-
-/* here the data collected by ehmer is clearly suspect as I have
- several samples that provide counterexamples. the data below is
- derated from Ehmers original numbers */
-
-static float tone_8000_40dB_SL[EHMER_MAX]={
--900,-900,-900,-900,-900,-900,-900,-900, -900,-900,-900,-900, -10, 3, 10, 18,
- 26, 21, 14, 5, 0, 0, 0, 0, 20, 35, 55, 70, 70, 70, 70, 70,
- 70, 70, 70, 70, 70, 70, 70, 70, -900,-900,-900,-900,-900,-900,-900,-900,
--900,-900,-900,-900,-900,-900,-900,-900};
-static float tone_8000_60dB_SL[EHMER_MAX]={
--900,-900,-900,-900,-900,-900,-900,-900, -900,-900,-900,-900, -10, 5, 12, 30,
- 43, 34, 22, 15, 10, 5, 0, 0, 20, 55, 70, 70, 70, 70, 70, 70,
- 70, 70, 70, 70, 70, 70, 70, 70, -900,-900,-900,-900,-900,-900,-900,-900,
- -900,-900,-900,-900,-900,-900,-900,-900};
-static float tone_8000_80dB_SL[EHMER_MAX]={
--900,-900,-900,-900,-900,-900,-900, -10, -1, 2, 6, 10, 13, 19, 25, 35,
- 63, 50, 35, 35, 36, 36, 36, 31, 40, 55, 70, 70, 70, 70, 70, 70,
- 70, 70, 70, 70, 70, 70, 70, 70, -900,-900,-900,-900,-900,-900,-900,-900,
- -900,-900,-900,-900,-900,-900,-900,-900};
-static float tone_8000_100dB_SL[EHMER_MAX]={
- -18, -12, -7, -3, 0, 2, 5, 8, 10, 14, 18, 20, 20, 22, 40, 40,
- 70, 50, 30, 30, 30, 30, 30, 32, 43, 55, 70, 70, 70, 70, 70, 70,
- 70, 70, 70, 70, 70, 70, 70, 70, -900,-900,-900,-900,-900,-900,-900,-900,
- -900,-900,-900,-900,-900,-900,-900,-900};
-
-/* a complete guess, but reasonably conservative and borne out by some
- empirical testing */
-
-static float tone_16000_40dB_SL[EHMER_MAX]={
--900,-900,-900,-900,-900,-900,-900,-900, -900,-900,-900,-900, -10, 3, 10, 18,
- 26, 35, 55, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70,
--900,-900,-900,-900,-900,-900,-900,-900, -900,-900,-900,-900,-900,-900,-900,-900,
--900,-900,-900,-900,-900,-900,-900,-900};
-static float tone_16000_60dB_SL[EHMER_MAX]={
--900,-900,-900,-900,-900,-900,-900,-900, -900,-900,-900,-900, -10, 5, 12, 30,
- 43, 55, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70,
--900,-900,-900,-900,-900,-900,-900,-900, -900,-900,-900,-900,-900,-900,-900,-900,
- -900,-900,-900,-900,-900,-900,-900,-900};
-static float tone_16000_80dB_SL[EHMER_MAX]={
--900,-900,-900,-900,-900,-900,-900, -10, -1, 2, 6, 10, 13, 19, 25, 35,
- 63, 55, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70,
--900,-900,-900,-900,-900,-900,-900,-900, -900,-900,-900,-900,-900,-900,-900,-900,
- -900,-900,-900,-900,-900,-900,-900,-900};
-static float tone_16000_100dB_SL[EHMER_MAX]={
- -18, -12, -7, -3, 0, 2, 5, 8, 10, 14, 18, 20, 20, 22, 40, 40,
- 70, 55, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70,
--900,-900,-900,-900,-900,-900,-900,-900, -900,-900,-900,-900,-900,-900,-900,-900,
- -900,-900,-900,-900,-900,-900,-900,-900};
-
-#endif
diff --git a/lib/mdct.c b/lib/mdct.c
deleted file mode 100644
index e62f68c4..00000000
--- a/lib/mdct.c
+++ /dev/null
@@ -1,569 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2002 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: normalized modified discrete cosine transform
- power of two length transform only [64 <= n ]
- last mod: $Id: mdct.c,v 1.29 2002/01/22 08:06:07 xiphmont Exp $
-
- Original algorithm adapted long ago from _The use of multirate filter
- banks for coding of high quality digital audio_, by T. Sporer,
- K. Brandenburg and B. Edler, collection of the European Signal
- Processing Conference (EUSIPCO), Amsterdam, June 1992, Vol.1, pp
- 211-214
-
- The below code implements an algorithm that no longer looks much like
- that presented in the paper, but the basic structure remains if you
- dig deep enough to see it.
-
- This module DOES NOT INCLUDE code to generate/apply the window
- function. Everybody has their own weird favorite including me... I
- happen to like the properties of y=sin(2PI*sin^2(x)), but others may
- vehemently disagree.
-
- ********************************************************************/
-
-/* this can also be run as an integer transform by uncommenting a
- define in mdct.h; the integerization is a first pass and although
- it's likely stable for Vorbis, the dynamic range is constrained and
- roundoff isn't done (so it's noisy). Consider it functional, but
- only a starting point. There's no point on a machine with an FPU */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <math.h>
-#include "vorbis/codec.h"
-#include "mdct.h"
-#include "os.h"
-#include "misc.h"
-
-/* build lookups for trig functions; also pre-figure scaling and
- some window function algebra. */
-
-void mdct_init(mdct_lookup *lookup,int n){
- int *bitrev=_ogg_malloc(sizeof(*bitrev)*(n/4));
- DATA_TYPE *T=_ogg_malloc(sizeof(*T)*(n+n/4));
-
- int i;
- int n2=n>>1;
- int log2n=lookup->log2n=rint(log((float)n)/log(2.f));
- lookup->n=n;
- lookup->trig=T;
- lookup->bitrev=bitrev;
-
-/* trig lookups... */
-
- for(i=0;i<n/4;i++){
- T[i*2]=FLOAT_CONV(cos((M_PI/n)*(4*i)));
- T[i*2+1]=FLOAT_CONV(-sin((M_PI/n)*(4*i)));
- T[n2+i*2]=FLOAT_CONV(cos((M_PI/(2*n))*(2*i+1)));
- T[n2+i*2+1]=FLOAT_CONV(sin((M_PI/(2*n))*(2*i+1)));
- }
- for(i=0;i<n/8;i++){
- T[n+i*2]=FLOAT_CONV(cos((M_PI/n)*(4*i+2))*.5);
- T[n+i*2+1]=FLOAT_CONV(-sin((M_PI/n)*(4*i+2))*.5);
- }
-
- /* bitreverse lookup... */
-
- {
- int mask=(1<<(log2n-1))-1,i,j;
- int msb=1<<(log2n-2);
- for(i=0;i<n/8;i++){
- int acc=0;
- for(j=0;msb>>j;j++)
- if((msb>>j)&i)acc|=1<<j;
- bitrev[i*2]=((~acc)&mask)-1;
- bitrev[i*2+1]=acc;
-
- }
- }
- lookup->scale=FLOAT_CONV(4.f/n);
-}
-
-/* 8 point butterfly (in place, 4 register) */
-STIN void mdct_butterfly_8(DATA_TYPE *x){
- REG_TYPE r0 = x[6] + x[2];
- REG_TYPE r1 = x[6] - x[2];
- REG_TYPE r2 = x[4] + x[0];
- REG_TYPE r3 = x[4] - x[0];
-
- r0 = x[6] + x[2];
- r1 = x[6] - x[2];
- r2 = x[4] + x[0];
- r3 = x[4] - x[0];
-
- x[6] = r0 + r2;
- x[4] = r0 - r2;
-
- r0 = x[5] - x[1];
- r2 = x[7] - x[3];
- x[0] = r1 + r0;
- x[2] = r1 - r0;
-
- r0 = x[5] + x[1];
- r1 = x[7] + x[3];
- x[3] = r2 + r3;
- x[1] = r2 - r3;
- x[7] = r1 + r0;
- x[5] = r1 - r0;
-
-}
-
-/* 16 point butterfly (in place, 4 register) */
-STIN void mdct_butterfly_16(DATA_TYPE *x){
- REG_TYPE r0 = x[1] - x[9];
- REG_TYPE r1 = x[0] - x[8];
-
- x[8] += x[0];
- x[9] += x[1];
- x[0] = MULT_NORM((r0 + r1) * cPI2_8);
- x[1] = MULT_NORM((r0 - r1) * cPI2_8);
-
- r0 = x[3] - x[11];
- r1 = x[10] - x[2];
- x[10] += x[2];
- x[11] += x[3];
- x[2] = r0;
- x[3] = r1;
-
- r0 = x[12] - x[4];
- r1 = x[13] - x[5];
- x[12] += x[4];
- x[13] += x[5];
- x[4] = MULT_NORM((r0 - r1) * cPI2_8);
- x[5] = MULT_NORM((r0 + r1) * cPI2_8);
-
- r0 = x[14] - x[6];
- r1 = x[15] - x[7];
- x[14] += x[6];
- x[15] += x[7];
- x[6] = r0;
- x[7] = r1;
-
- mdct_butterfly_8(x);
- mdct_butterfly_8(x+8);
-}
-
-/* 32 point butterfly (in place, 4 register) */
-STIN void mdct_butterfly_32(DATA_TYPE *x){
- REG_TYPE r0 = x[30] - x[14];
- REG_TYPE r1 = x[31] - x[15];
-
- x[30] += x[14];
- x[31] += x[15];
- x[14] = r0;
- x[15] = r1;
-
- r0 = x[28] - x[12];
- r1 = x[29] - x[13];
- x[28] += x[12];
- x[29] += x[13];
- x[12] = MULT_NORM( r0 * cPI1_8 - r1 * cPI3_8 );
- x[13] = MULT_NORM( r0 * cPI3_8 + r1 * cPI1_8 );
-
- r0 = x[26] - x[10];
- r1 = x[27] - x[11];
- x[26] += x[10];
- x[27] += x[11];
- x[10] = MULT_NORM(( r0 - r1 ) * cPI2_8);
- x[11] = MULT_NORM(( r0 + r1 ) * cPI2_8);
-
- r0 = x[24] - x[8];
- r1 = x[25] - x[9];
- x[24] += x[8];
- x[25] += x[9];
- x[8] = MULT_NORM( r0 * cPI3_8 - r1 * cPI1_8 );
- x[9] = MULT_NORM( r1 * cPI3_8 + r0 * cPI1_8 );
-
- r0 = x[22] - x[6];
- r1 = x[7] - x[23];
- x[22] += x[6];
- x[23] += x[7];
- x[6] = r1;
- x[7] = r0;
-
- r0 = x[4] - x[20];
- r1 = x[5] - x[21];
- x[20] += x[4];
- x[21] += x[5];
- x[4] = MULT_NORM( r1 * cPI1_8 + r0 * cPI3_8 );
- x[5] = MULT_NORM( r1 * cPI3_8 - r0 * cPI1_8 );
-
- r0 = x[2] - x[18];
- r1 = x[3] - x[19];
- x[18] += x[2];
- x[19] += x[3];
- x[2] = MULT_NORM(( r1 + r0 ) * cPI2_8);
- x[3] = MULT_NORM(( r1 - r0 ) * cPI2_8);
-
- r0 = x[0] - x[16];
- r1 = x[1] - x[17];
- x[16] += x[0];
- x[17] += x[1];
- x[0] = MULT_NORM( r1 * cPI3_8 + r0 * cPI1_8 );
- x[1] = MULT_NORM( r1 * cPI1_8 - r0 * cPI3_8 );
-
- mdct_butterfly_16(x);
- mdct_butterfly_16(x+16);
-
-}
-
-/* N point first stage butterfly (in place, 2 register) */
-STIN void mdct_butterfly_first(DATA_TYPE *T,
- DATA_TYPE *x,
- int points){
-
- DATA_TYPE *x1 = x + points - 8;
- DATA_TYPE *x2 = x + (points>>1) - 8;
- REG_TYPE r0;
- REG_TYPE r1;
-
- do{
-
- r0 = x1[6] - x2[6];
- r1 = x1[7] - x2[7];
- x1[6] += x2[6];
- x1[7] += x2[7];
- x2[6] = MULT_NORM(r1 * T[1] + r0 * T[0]);
- x2[7] = MULT_NORM(r1 * T[0] - r0 * T[1]);
-
- r0 = x1[4] - x2[4];
- r1 = x1[5] - x2[5];
- x1[4] += x2[4];
- x1[5] += x2[5];
- x2[4] = MULT_NORM(r1 * T[5] + r0 * T[4]);
- x2[5] = MULT_NORM(r1 * T[4] - r0 * T[5]);
-
- r0 = x1[2] - x2[2];
- r1 = x1[3] - x2[3];
- x1[2] += x2[2];
- x1[3] += x2[3];
- x2[2] = MULT_NORM(r1 * T[9] + r0 * T[8]);
- x2[3] = MULT_NORM(r1 * T[8] - r0 * T[9]);
-
- r0 = x1[0] - x2[0];
- r1 = x1[1] - x2[1];
- x1[0] += x2[0];
- x1[1] += x2[1];
- x2[0] = MULT_NORM(r1 * T[13] + r0 * T[12]);
- x2[1] = MULT_NORM(r1 * T[12] - r0 * T[13]);
-
- x1-=8;
- x2-=8;
- T+=16;
-
- }while(x2>=x);
-}
-
-/* N/stage point generic N stage butterfly (in place, 2 register) */
-STIN void mdct_butterfly_generic(DATA_TYPE *T,
- DATA_TYPE *x,
- int points,
- int trigint){
-
- DATA_TYPE *x1 = x + points - 8;
- DATA_TYPE *x2 = x + (points>>1) - 8;
- REG_TYPE r0;
- REG_TYPE r1;
-
- do{
-
- r0 = x1[6] - x2[6];
- r1 = x1[7] - x2[7];
- x1[6] += x2[6];
- x1[7] += x2[7];
- x2[6] = MULT_NORM(r1 * T[1] + r0 * T[0]);
- x2[7] = MULT_NORM(r1 * T[0] - r0 * T[1]);
-
- T+=trigint;
-
- r0 = x1[4] - x2[4];
- r1 = x1[5] - x2[5];
- x1[4] += x2[4];
- x1[5] += x2[5];
- x2[4] = MULT_NORM(r1 * T[1] + r0 * T[0]);
- x2[5] = MULT_NORM(r1 * T[0] - r0 * T[1]);
-
- T+=trigint;
-
- r0 = x1[2] - x2[2];
- r1 = x1[3] - x2[3];
- x1[2] += x2[2];
- x1[3] += x2[3];
- x2[2] = MULT_NORM(r1 * T[1] + r0 * T[0]);
- x2[3] = MULT_NORM(r1 * T[0] - r0 * T[1]);
-
- T+=trigint;
-
- r0 = x1[0] - x2[0];
- r1 = x1[1] - x2[1];
- x1[0] += x2[0];
- x1[1] += x2[1];
- x2[0] = MULT_NORM(r1 * T[1] + r0 * T[0]);
- x2[1] = MULT_NORM(r1 * T[0] - r0 * T[1]);
-
- T+=trigint;
- x1-=8;
- x2-=8;
-
- }while(x2>=x);
-}
-
-STIN void mdct_butterflies(mdct_lookup *init,
- DATA_TYPE *x,
- int points){
-
- DATA_TYPE *T=init->trig;
- int stages=init->log2n-5;
- int i,j;
-
- if(--stages>0){
- mdct_butterfly_first(T,x,points);
- }
-
- for(i=1;--stages>0;i++){
- for(j=0;j<(1<<i);j++)
- mdct_butterfly_generic(T,x+(points>>i)*j,points>>i,4<<i);
- }
-
- for(j=0;j<points;j+=32)
- mdct_butterfly_32(x+j);
-
-}
-
-void mdct_clear(mdct_lookup *l){
- if(l){
- if(l->trig)_ogg_free(l->trig);
- if(l->bitrev)_ogg_free(l->bitrev);
- memset(l,0,sizeof(*l));
- }
-}
-
-STIN void mdct_bitreverse(mdct_lookup *init,
- DATA_TYPE *x){
- int n = init->n;
- int *bit = init->bitrev;
- DATA_TYPE *w0 = x;
- DATA_TYPE *w1 = x = w0+(n>>1);
- DATA_TYPE *T = init->trig+n;
-
- do{
- DATA_TYPE *x0 = x+bit[0];
- DATA_TYPE *x1 = x+bit[1];
-
- REG_TYPE r0 = x0[1] - x1[1];
- REG_TYPE r1 = x0[0] + x1[0];
- REG_TYPE r2 = MULT_NORM(r1 * T[0] + r0 * T[1]);
- REG_TYPE r3 = MULT_NORM(r1 * T[1] - r0 * T[0]);
-
- w1 -= 4;
-
- r0 = HALVE(x0[1] + x1[1]);
- r1 = HALVE(x0[0] - x1[0]);
-
- w0[0] = r0 + r2;
- w1[2] = r0 - r2;
- w0[1] = r1 + r3;
- w1[3] = r3 - r1;
-
- x0 = x+bit[2];
- x1 = x+bit[3];
-
- r0 = x0[1] - x1[1];
- r1 = x0[0] + x1[0];
- r2 = MULT_NORM(r1 * T[2] + r0 * T[3]);
- r3 = MULT_NORM(r1 * T[3] - r0 * T[2]);
-
- r0 = HALVE(x0[1] + x1[1]);
- r1 = HALVE(x0[0] - x1[0]);
-
- w0[2] = r0 + r2;
- w1[0] = r0 - r2;
- w0[3] = r1 + r3;
- w1[1] = r3 - r1;
-
- T += 4;
- bit += 4;
- w0 += 4;
-
- }while(w0<w1);
-}
-
-void mdct_backward(mdct_lookup *init, DATA_TYPE *in, DATA_TYPE *out){
- int n=init->n;
- int n2=n>>1;
- int n4=n>>2;
-
- /* rotate */
-
- DATA_TYPE *iX = in+n2-7;
- DATA_TYPE *oX = out+n2+n4;
- DATA_TYPE *T = init->trig+n4;
-
- do{
- oX -= 4;
- oX[0] = MULT_NORM(-iX[2] * T[3] - iX[0] * T[2]);
- oX[1] = MULT_NORM (iX[0] * T[3] - iX[2] * T[2]);
- oX[2] = MULT_NORM(-iX[6] * T[1] - iX[4] * T[0]);
- oX[3] = MULT_NORM (iX[4] * T[1] - iX[6] * T[0]);
- iX -= 8;
- T += 4;
- }while(iX>=in);
-
- iX = in+n2-8;
- oX = out+n2+n4;
- T = init->trig+n4;
-
- do{
- T -= 4;
- oX[0] = MULT_NORM (iX[4] * T[3] + iX[6] * T[2]);
- oX[1] = MULT_NORM (iX[4] * T[2] - iX[6] * T[3]);
- oX[2] = MULT_NORM (iX[0] * T[1] + iX[2] * T[0]);
- oX[3] = MULT_NORM (iX[0] * T[0] - iX[2] * T[1]);
- iX -= 8;
- oX += 4;
- }while(iX>=in);
-
- mdct_butterflies(init,out+n2,n2);
- mdct_bitreverse(init,out);
-
- /* roatate + window */
-
- {
- DATA_TYPE *oX1=out+n2+n4;
- DATA_TYPE *oX2=out+n2+n4;
- DATA_TYPE *iX =out;
- T =init->trig+n2;
-
- do{
- oX1-=4;
-
- oX1[3] = MULT_NORM (iX[0] * T[1] - iX[1] * T[0]);
- oX2[0] = -MULT_NORM (iX[0] * T[0] + iX[1] * T[1]);
-
- oX1[2] = MULT_NORM (iX[2] * T[3] - iX[3] * T[2]);
- oX2[1] = -MULT_NORM (iX[2] * T[2] + iX[3] * T[3]);
-
- oX1[1] = MULT_NORM (iX[4] * T[5] - iX[5] * T[4]);
- oX2[2] = -MULT_NORM (iX[4] * T[4] + iX[5] * T[5]);
-
- oX1[0] = MULT_NORM (iX[6] * T[7] - iX[7] * T[6]);
- oX2[3] = -MULT_NORM (iX[6] * T[6] + iX[7] * T[7]);
-
- oX2+=4;
- iX += 8;
- T += 8;
- }while(iX<oX1);
-
- iX=out+n2+n4;
- oX1=out+n4;
- oX2=oX1;
-
- do{
- oX1-=4;
- iX-=4;
-
- oX2[0] = -(oX1[3] = iX[3]);
- oX2[1] = -(oX1[2] = iX[2]);
- oX2[2] = -(oX1[1] = iX[1]);
- oX2[3] = -(oX1[0] = iX[0]);
-
- oX2+=4;
- }while(oX2<iX);
-
- iX=out+n2+n4;
- oX1=out+n2+n4;
- oX2=out+n2;
- do{
- oX1-=4;
- oX1[0]= iX[3];
- oX1[1]= iX[2];
- oX1[2]= iX[1];
- oX1[3]= iX[0];
- iX+=4;
- }while(oX1>oX2);
- }
-}
-
-void mdct_forward(mdct_lookup *init, DATA_TYPE *in, DATA_TYPE *out){
- int n=init->n;
- int n2=n>>1;
- int n4=n>>2;
- int n8=n>>3;
- DATA_TYPE *w=alloca(n*sizeof(*w)); /* forward needs working space */
- DATA_TYPE *w2=w+n2;
-
- /* rotate */
-
- /* window + rotate + step 1 */
-
- REG_TYPE r0;
- REG_TYPE r1;
- DATA_TYPE *x0=in+n2+n4;
- DATA_TYPE *x1=x0+1;
- DATA_TYPE *T=init->trig+n2;
-
- int i=0;
-
- for(i=0;i<n8;i+=2){
- x0 -=4;
- T-=2;
- r0= x0[2] + x1[0];
- r1= x0[0] + x1[2];
- w2[i]= MULT_NORM(r1*T[1] + r0*T[0]);
- w2[i+1]= MULT_NORM(r1*T[0] - r0*T[1]);
- x1 +=4;
- }
-
- x1=in+1;
-
- for(;i<n2-n8;i+=2){
- T-=2;
- x0 -=4;
- r0= x0[2] - x1[0];
- r1= x0[0] - x1[2];
- w2[i]= MULT_NORM(r1*T[1] + r0*T[0]);
- w2[i+1]= MULT_NORM(r1*T[0] - r0*T[1]);
- x1 +=4;
- }
-
- x0=in+n;
-
- for(;i<n2;i+=2){
- T-=2;
- x0 -=4;
- r0= -x0[2] - x1[0];
- r1= -x0[0] - x1[2];
- w2[i]= MULT_NORM(r1*T[1] + r0*T[0]);
- w2[i+1]= MULT_NORM(r1*T[0] - r0*T[1]);
- x1 +=4;
- }
-
-
- mdct_butterflies(init,w+n2,n2);
- mdct_bitreverse(init,w);
-
- /* roatate + window */
-
- T=init->trig+n2;
- x0=out+n2;
-
- for(i=0;i<n4;i++){
- x0--;
- out[i] =MULT_NORM((w[0]*T[0]+w[1]*T[1])*init->scale);
- x0[0] =MULT_NORM((w[0]*T[1]-w[1]*T[0])*init->scale);
- w+=2;
- T+=2;
- }
-}
-
diff --git a/lib/mdct.h b/lib/mdct.h
deleted file mode 100644
index d5caa5f1..00000000
--- a/lib/mdct.h
+++ /dev/null
@@ -1,79 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: modified discrete cosine transform prototypes
- last mod: $Id: mdct.h,v 1.19 2001/12/20 01:00:29 segher Exp $
-
- ********************************************************************/
-
-#ifndef _OGG_mdct_H_
-#define _OGG_mdct_H_
-
-#include "vorbis/codec.h"
-
-/*#define MDCT_INTEGERIZED <- be warned there could be some hurt left here*/
-#ifdef MDCT_INTEGERIZED
-
-#define DATA_TYPE int
-#define REG_TYPE register int
-#define TRIGBITS 14
-#define cPI3_8 6270
-#define cPI2_8 11585
-#define cPI1_8 15137
-
-#define FLOAT_CONV(x) ((int)((x)*(1<<TRIGBITS)+.5))
-#define MULT_NORM(x) ((x)>>TRIGBITS)
-#define HALVE(x) ((x)>>1)
-
-#else
-
-#define DATA_TYPE float
-#define REG_TYPE float
-#define cPI3_8 .38268343236508977175F
-#define cPI2_8 .70710678118654752441F
-#define cPI1_8 .92387953251128675613F
-
-#define FLOAT_CONV(x) (x)
-#define MULT_NORM(x) (x)
-#define HALVE(x) ((x)*.5f)
-
-#endif
-
-
-typedef struct {
- int n;
- int log2n;
-
- DATA_TYPE *trig;
- int *bitrev;
-
- DATA_TYPE scale;
-} mdct_lookup;
-
-extern void mdct_init(mdct_lookup *lookup,int n);
-extern void mdct_clear(mdct_lookup *l);
-extern void mdct_forward(mdct_lookup *init, DATA_TYPE *in, DATA_TYPE *out);
-extern void mdct_backward(mdct_lookup *init, DATA_TYPE *in, DATA_TYPE *out);
-
-#endif
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/lib/misc.c b/lib/misc.c
deleted file mode 100644
index ab3f0cea..00000000
--- a/lib/misc.c
+++ /dev/null
@@ -1,213 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2002 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************/
-
-#define HEAD_ALIGN 32
-#include <pthread.h>
-#include <stdlib.h>
-#include <string.h>
-#include <stdio.h>
-#include "vorbis/codec.h"
-#define MISC_C
-#include "misc.h"
-#include <sys/time.h>
-
-static pthread_mutex_t memlock=PTHREAD_MUTEX_INITIALIZER;
-static void **pointers=NULL;
-static long *insertlist=NULL; /* We can't embed this in the pointer list;
- a pointer can have any value... */
-
-static char **files=NULL;
-static long *file_bytes=NULL;
-static int filecount=0;
-
-static int ptop=0;
-static int palloced=0;
-static int pinsert=0;
-
-typedef struct {
- char *file;
- long line;
- long ptr;
- long bytes;
-} head;
-
-long global_bytes=0;
-long start_time=-1;
-
-static void *_insert(void *ptr,long bytes,char *file,long line){
- ((head *)ptr)->file=file;
- ((head *)ptr)->line=line;
- ((head *)ptr)->ptr=pinsert;
- ((head *)ptr)->bytes=bytes-HEAD_ALIGN;
-
- pthread_mutex_lock(&memlock);
- if(pinsert>=palloced){
- palloced+=64;
- if(pointers){
- pointers=(void **)realloc(pointers,sizeof(void **)*palloced);
- insertlist=(long *)realloc(insertlist,sizeof(long *)*palloced);
- }else{
- pointers=(void **)malloc(sizeof(void **)*palloced);
- insertlist=(long *)malloc(sizeof(long *)*palloced);
- }
- }
-
- pointers[pinsert]=ptr;
-
- if(pinsert==ptop)
- pinsert=++ptop;
- else
- pinsert=insertlist[pinsert];
-
-#ifdef _VDBG_GRAPHFILE
- {
- FILE *out;
- struct timeval tv;
- static struct timezone tz;
- int i;
- char buffer[80];
- gettimeofday(&tv,&tz);
-
- for(i=0;i<filecount;i++)
- if(!strcmp(file,files[i]))break;
-
- if(i==filecount){
- filecount++;
- if(!files){
- files=malloc(filecount*sizeof(*files));
- file_bytes=malloc(filecount*sizeof(*file_bytes));
- }else{
- files=realloc(files,filecount*sizeof(*files));
- file_bytes=realloc(file_bytes,filecount*sizeof(*file_bytes));
- }
- files[i]=strdup(file);
- file_bytes[i]=0;
- }
-
- file_bytes[i]+=bytes-HEAD_ALIGN;
-
- if(start_time==-1)start_time=(tv.tv_sec*1000)+(tv.tv_usec/1000);
-
- snprintf(buffer,80,"%s%s",file,_VDBG_GRAPHFILE);
- out=fopen(buffer,"a");
- fprintf(out,"%ld, %ld\n",-start_time+(tv.tv_sec*1000)+(tv.tv_usec/1000),
- file_bytes[i]-(bytes-HEAD_ALIGN));
- fprintf(out,"%ld, %ld # FILE %s LINE %ld\n",
- -start_time+(tv.tv_sec*1000)+(tv.tv_usec/1000),
- file_bytes[i],file,line);
- fclose(out);
-
- out=fopen(_VDBG_GRAPHFILE,"a");
- fprintf(out,"%ld, %ld\n",-start_time+(tv.tv_sec*1000)+(tv.tv_usec/1000),
- global_bytes);
- fprintf(out,"%ld, %ld\n",-start_time+(tv.tv_sec*1000)+(tv.tv_usec/1000),
- global_bytes+(bytes-HEAD_ALIGN));
- fclose(out);
- }
-#endif
-
- global_bytes+=(bytes-HEAD_ALIGN);
-
- pthread_mutex_unlock(&memlock);
- return(ptr+HEAD_ALIGN);
-}
-
-static void _ripremove(void *ptr){
- int insert;
- pthread_mutex_lock(&memlock);
-
-#ifdef _VDBG_GRAPHFILE
- {
- FILE *out=fopen(_VDBG_GRAPHFILE,"a");
- struct timeval tv;
- static struct timezone tz;
- char buffer[80];
- char *file =((head *)ptr)->file;
- long bytes =((head *)ptr)->bytes;
- int i;
-
- gettimeofday(&tv,&tz);
- fprintf(out,"%ld, %ld\n",-start_time+(tv.tv_sec*1000)+(tv.tv_usec/1000),
- global_bytes);
- fprintf(out,"%ld, %ld\n",-start_time+(tv.tv_sec*1000)+(tv.tv_usec/1000),
- global_bytes-((head *)ptr)->bytes);
- fclose(out);
-
- for(i=0;i<filecount;i++)
- if(!strcmp(file,files[i]))break;
-
- snprintf(buffer,80,"%s%s",file,_VDBG_GRAPHFILE);
- out=fopen(buffer,"a");
- fprintf(out,"%ld, %ld\n",-start_time+(tv.tv_sec*1000)+(tv.tv_usec/1000),
- file_bytes[i]);
- fprintf(out,"%ld, %ld\n",-start_time+(tv.tv_sec*1000)+(tv.tv_usec/1000),
- file_bytes[i]-bytes);
- fclose(out);
-
- file_bytes[i]-=bytes;
-
- }
-#endif
-
- global_bytes-=((head *)ptr)->bytes;
-
- insert=((head *)ptr)->ptr;
- insertlist[insert]=pinsert;
- pinsert=insert;
-
- if(pointers[insert]==NULL){
- fprintf(stderr,"DEBUGGING MALLOC ERROR: freeing previously freed memory\n");
- fprintf(stderr,"\t%s %ld\n",((head *)ptr)->file,((head *)ptr)->line);
- }
-
- if(global_bytes<0){
- fprintf(stderr,"DEBUGGING MALLOC ERROR: freeing unmalloced memory\n");
- }
-
- pointers[insert]=NULL;
- pthread_mutex_unlock(&memlock);
-}
-
-void _VDBG_dump(void){
- int i;
- pthread_mutex_lock(&memlock);
- for(i=0;i<ptop;i++){
- head *ptr=pointers[i];
- if(ptr)
- fprintf(stderr,"unfreed bytes from %s:%ld\n",
- ptr->file,ptr->line);
- }
-
- pthread_mutex_unlock(&memlock);
-}
-
-extern void *_VDBG_malloc(void *ptr,long bytes,char *file,long line){
- bytes+=HEAD_ALIGN;
- if(ptr){
- ptr-=HEAD_ALIGN;
- _ripremove(ptr);
- ptr=realloc(ptr,bytes);
- }else{
- ptr=malloc(bytes);
- memset(ptr,0,bytes);
- }
- return _insert(ptr,bytes,file,line);
-}
-
-extern void _VDBG_free(void *ptr,char *file,long line){
- if(ptr){
- ptr-=HEAD_ALIGN;
- _ripremove(ptr);
- free(ptr);
- }
-}
-
diff --git a/lib/misc.h b/lib/misc.h
deleted file mode 100644
index ddcfd741..00000000
--- a/lib/misc.h
+++ /dev/null
@@ -1,49 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2002 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: miscellaneous prototypes
- last mod: $Id: misc.h,v 1.11 2002/01/22 08:06:07 xiphmont Exp $
-
- ********************************************************************/
-
-#ifndef _V_RANDOM_H_
-#define _V_RANDOM_H_
-#include "vorbis/codec.h"
-
-extern void *_vorbis_block_alloc(vorbis_block *vb,long bytes);
-extern void _vorbis_block_ripcord(vorbis_block *vb);
-extern void _analysis_output(char *base,int i,float *v,int n,int bark,int dB);
-
-#ifdef DEBUG_MALLOC
-
-#define _VDBG_GRAPHFILE "malloc.m"
-extern void *_VDBG_malloc(void *ptr,long bytes,char *file,long line);
-extern void _VDBG_free(void *ptr,char *file,long line);
-
-#ifndef MISC_C
-#undef _ogg_malloc
-#undef _ogg_calloc
-#undef _ogg_realloc
-#undef _ogg_free
-
-#define _ogg_malloc(x) _VDBG_malloc(NULL,(x),__FILE__,__LINE__)
-#define _ogg_calloc(x,y) _VDBG_malloc(NULL,(x)*(y),__FILE__,__LINE__)
-#define _ogg_realloc(x,y) _VDBG_malloc((x),(y),__FILE__,__LINE__)
-#define _ogg_free(x) _VDBG_free((x),__FILE__,__LINE__)
-#endif
-#endif
-
-#endif
-
-
-
-
diff --git a/lib/modes/.cvsignore b/lib/modes/.cvsignore
deleted file mode 100644
index 282522db..00000000
--- a/lib/modes/.cvsignore
+++ /dev/null
@@ -1,2 +0,0 @@
-Makefile
-Makefile.in
diff --git a/lib/modes/Makefile.am b/lib/modes/Makefile.am
deleted file mode 100644
index 803fd232..00000000
--- a/lib/modes/Makefile.am
+++ /dev/null
@@ -1,5 +0,0 @@
-## Process this file with automake to produce Makefile.in
-
-AUTOMAKE_OPTIONS = foreign
-
-EXTRA_DIST = floor_44.h psych_44.h residue_44.h
diff --git a/lib/modes/floor_44.h b/lib/modes/floor_44.h
deleted file mode 100644
index 655ac99d..00000000
--- a/lib/modes/floor_44.h
+++ /dev/null
@@ -1,184 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: key floor settings for 44.1/48kHz
- last mod: $Id: floor_44.h,v 1.2 2001/12/12 09:45:55 xiphmont Exp $
-
- ********************************************************************/
-
-#include "vorbis/codec.h"
-#include "backends.h"
-
-#include "books/floor/line_128x7_class1.vqh"
-#include "books/floor/line_128x7_class2.vqh"
-
-#include "books/floor/line_128x7_0sub0.vqh"
-#include "books/floor/line_128x7_1sub1.vqh"
-#include "books/floor/line_128x7_1sub2.vqh"
-#include "books/floor/line_128x7_1sub3.vqh"
-#include "books/floor/line_128x7_2sub1.vqh"
-#include "books/floor/line_128x7_2sub2.vqh"
-#include "books/floor/line_128x7_2sub3.vqh"
-
-#include "books/floor/line_128x9_class1.vqh"
-#include "books/floor/line_128x9_class2.vqh"
-
-#include "books/floor/line_128x9_0sub0.vqh"
-#include "books/floor/line_128x9_1sub1.vqh"
-#include "books/floor/line_128x9_1sub2.vqh"
-#include "books/floor/line_128x9_1sub3.vqh"
-#include "books/floor/line_128x9_2sub1.vqh"
-#include "books/floor/line_128x9_2sub2.vqh"
-#include "books/floor/line_128x9_2sub3.vqh"
-
-#include "books/floor/line_128x19_class1.vqh"
-#include "books/floor/line_128x19_class2.vqh"
-
-#include "books/floor/line_128x19_0sub0.vqh"
-#include "books/floor/line_128x19_1sub1.vqh"
-#include "books/floor/line_128x19_1sub2.vqh"
-#include "books/floor/line_128x19_1sub3.vqh"
-#include "books/floor/line_128x19_2sub1.vqh"
-#include "books/floor/line_128x19_2sub2.vqh"
-#include "books/floor/line_128x19_2sub3.vqh"
-
-#include "books/floor/line_1024x31_class0.vqh"
-#include "books/floor/line_1024x31_class1.vqh"
-#include "books/floor/line_1024x31_class2.vqh"
-#include "books/floor/line_1024x31_class3.vqh"
-
-#include "books/floor/line_1024x31_0sub0.vqh"
-#include "books/floor/line_1024x31_0sub1.vqh"
-#include "books/floor/line_1024x31_1sub0.vqh"
-#include "books/floor/line_1024x31_1sub1.vqh"
-#include "books/floor/line_1024x31_2sub1.vqh"
-#include "books/floor/line_1024x31_2sub2.vqh"
-#include "books/floor/line_1024x31_2sub3.vqh"
-#include "books/floor/line_1024x31_3sub1.vqh"
-#include "books/floor/line_1024x31_3sub2.vqh"
-#include "books/floor/line_1024x31_3sub3.vqh"
-
-static static_codebook *_floor_44_128x7_books[]={
- &_huff_book_line_128x7_class1,
- &_huff_book_line_128x7_class2,
-
- &_huff_book_line_128x7_0sub0,
- &_huff_book_line_128x7_1sub1,
- &_huff_book_line_128x7_1sub2,
- &_huff_book_line_128x7_1sub3,
- &_huff_book_line_128x7_2sub1,
- &_huff_book_line_128x7_2sub2,
- &_huff_book_line_128x7_2sub3,
-};
-static static_codebook *_floor_44_128x9_books[]={
- &_huff_book_line_128x9_class1,
- &_huff_book_line_128x9_class2,
-
- &_huff_book_line_128x9_0sub0,
- &_huff_book_line_128x9_1sub1,
- &_huff_book_line_128x9_1sub2,
- &_huff_book_line_128x9_1sub3,
- &_huff_book_line_128x9_2sub1,
- &_huff_book_line_128x9_2sub2,
- &_huff_book_line_128x9_2sub3,
-};
-static static_codebook *_floor_44_128x19_books[]={
- &_huff_book_line_128x19_class1,
- &_huff_book_line_128x19_class2,
-
- &_huff_book_line_128x19_0sub0,
- &_huff_book_line_128x19_1sub1,
- &_huff_book_line_128x19_1sub2,
- &_huff_book_line_128x19_1sub3,
- &_huff_book_line_128x19_2sub1,
- &_huff_book_line_128x19_2sub2,
- &_huff_book_line_128x19_2sub3,
-};
-
-static static_codebook **_floor_44_128_books[3]={
- _floor_44_128x7_books,
- _floor_44_128x9_books,
- _floor_44_128x19_books,
-};
-
-static static_codebook *_floor_44_1024x31_books[]={
- &_huff_book_line_1024x31_class0,
- &_huff_book_line_1024x31_class1,
- &_huff_book_line_1024x31_class2,
- &_huff_book_line_1024x31_class3,
-
- &_huff_book_line_1024x31_0sub0,
- &_huff_book_line_1024x31_0sub1,
- &_huff_book_line_1024x31_1sub0,
- &_huff_book_line_1024x31_1sub1,
- &_huff_book_line_1024x31_2sub1,
- &_huff_book_line_1024x31_2sub2,
- &_huff_book_line_1024x31_2sub3,
- &_huff_book_line_1024x31_3sub1,
- &_huff_book_line_1024x31_3sub2,
- &_huff_book_line_1024x31_3sub3,
-};
-
-static static_codebook **_floor_44_1024_books[1]={
- _floor_44_1024x31_books
-};
-
-static vorbis_info_floor1 _floor_44_128[3]={
- {
- 3,{0,1,2},{1,3,3},{0,2,2},{-1,0,1},
- {{2},{-1,3,4,5},{-1,6,7,8}},
- 4,{0,128, 7, 2,1,4, 23,13,45},
-
- 60,30,500,
- 999,999,0,18.,
- 8,70,
- -1 /* lowpass! */
- },
-
- {
- 3,{0,1,2},{1,4,4},{0,2,2},{-1,0,1},
- {{2},{-1,3,4,5},{-1,6,7,8}},
- 4,{0,128, 13, 4,2,7,1, 44,30,62,20},
-
- 60,30,500,
- 999,999,0,18.,
- 8,70,
- -1 /* lowpass! */
- },
-
-
- {
- 6,{0,1,1,1,2,2},{4,3,3},{0,2,2},{-1,0,1},
- {{2},{-1,3,4,5},{-1,6,7,8}},
- 2,{0,128, 6,17,30,58, 2,1,4, 11,8,14, 23,20,26, 41,35,48, 84,69,103},
-
- 60,30,500,
- 999,999,1,18.,
- 8,70,
- -1 /* lowpass */
- }
-};
-
-static vorbis_info_floor1 _floor_44_1024[1]={
- {
- 10,{0,1,2,2,2,2,2, 3,3,3},{3,4,3,3},{1,1,2,2},{0,1,2,3},
- {{4,5},{6,7},{-1,8,9,10},{-1,11,12,13}},
- 2,{0,1024, 88,31,243, 14,54,143,460, 6,3,10, 22,18,26, 41,36,47,
- 69,61,78, 112,99,126, 185,162,211, 329,282,387, 672,553,825},
-
- 60,30,400,
- 20,8,1,18.,
- 20,600,
- -1 /* lowpass */
- }
-};
-
diff --git a/lib/modes/psych_44.h b/lib/modes/psych_44.h
deleted file mode 100644
index 7001416a..00000000
--- a/lib/modes/psych_44.h
+++ /dev/null
@@ -1,647 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: key psychoacoustic settings for 44.1/48kHz
- last mod: $Id: psych_44.h,v 1.7 2001/12/22 09:40:40 xiphmont Exp $
-
- ********************************************************************/
-
-
-/* preecho trigger settings *****************************************/
-
-static vorbis_info_psy_global _psy_global_44[3]={
-
- {8, /* lines per eighth octave */
- /*{990.f,990.f,990.f,990.f}, {-990.f,-990.f,-990.f,-990.f}, -90.f,
- {0.f,0.f,0.f,0.f}, {-0.f,-0.f,-0.f,-0.f}, -90.f,*/
- {30.f,30.f,30.f,34.f}, {-990.f,-990.f,-990.f,-990.f}, -90.f,
- -6.f, 0,
- },
- {8, /* lines per eighth octave */
- /*{990.f,990.f,990.f,990.f}, {-990.f,-990.f,-990.f,-990.f}, -90.f,*/
- {26.f,26.f,26.f,30.f}, {-90.f,-90.f,-90.f,-90.f}, -90.f,
- -6.f, 0,
- },
- {8, /* lines per eighth octave */
- {26.f,26.f,26.f,30.f}, {-26.f,-26.f,-26.f,-30.f}, -90.f,
- -6.f, 0,
- }
-};
-
-/* noise compander lookups * low, mid, high quality ****************/
-
-static float _psy_compand_44_short[3][NOISE_COMPAND_LEVELS]={
- /* sub-mode Z */
- {
- 0.f, 1.f, 2.f, 3.f, 4.f, 5.f, 6.f, 7.f, /* 7dB */
- 8.f, 9.f,10.f,11.f,12.f,13.f,14.f, 15.f, /* 15dB */
- 16.f,17.f,18.f,19.f,20.f,21.f,22.f, 23.f, /* 23dB */
- 24.f,25.f,26.f,27.f,28.f,29.f,30.f, 31.f, /* 31dB */
- 32.f,33.f,34.f,35.f,36.f,37.f,38.f, 39.f, /* 39dB */
- },
- /* mode_Z nominal */
- {
- 0.f, 1.f, 2.f, 3.f, 4.f, 5.f, 6.f, 6.f, /* 7dB */
- 7.f, 7.f, 7.f, 7.f, 6.f, 6.f, 6.f, 7.f, /* 15dB */
- 7.f, 8.f, 9.f,10.f,11.f,12.f,13.f, 14.f, /* 23dB */
- 15.f,16.f,17.f,17.f,17.f,18.f,18.f, 19.f, /* 31dB */
- 19.f,19.f,20.f,21.f,22.f,23.f,24.f, 25.f, /* 39dB */
- },
- /* mode A */
- {
- 0.f, 1.f, 2.f, 3.f, 4.f, 5.f, 5.f, 5.f, /* 7dB */
- 6.f, 6.f, 6.f, 5.f, 4.f, 4.f, 4.f, 4.f, /* 15dB */
- 4.f, 4.f, 5.f, 5.f, 5.f, 6.f, 6.f, 6.f, /* 23dB */
- 7.f, 7.f, 7.f, 8.f, 8.f, 8.f, 9.f, 10.f, /* 31dB */
- 11.f,12.f,13.f,14.f,15.f,16.f,17.f, 18.f, /* 39dB */
- }
-};
-
-static float _psy_compand_44[3][NOISE_COMPAND_LEVELS]={
- /* sub-mode Z */
- {
- 0.f, 1.f, 2.f, 3.f, 4.f, 5.f, 6.f, 7.f, /* 7dB */
- 8.f, 9.f,10.f,11.f,12.f,13.f,14.f, 15.f, /* 15dB */
- 16.f,17.f,18.f,19.f,20.f,21.f,22.f, 23.f, /* 23dB */
- 24.f,25.f,26.f,27.f,28.f,29.f,30.f, 31.f, /* 31dB */
- 32.f,33.f,34.f,35.f,36.f,37.f,38.f, 39.f, /* 39dB */
- },
- /* mode_Z nominal */
- {
- 0.f, 1.f, 2.f, 3.f, 4.f, 5.f, 6.f, 7.f, /* 7dB */
- 8.f, 9.f,10.f,11.f,12.f,12.f,13.f, 13.f, /* 15dB */
- 13.f,14.f,14.f,14.f,15.f,15.f,15.f, 15.f, /* 23dB */
- 16.f,16.f,17.f,17.f,17.f,18.f,18.f, 19.f, /* 31dB */
- 19.f,19.f,20.f,21.f,22.f,23.f,24.f, 25.f, /* 39dB */
- },
- /* mode A */
- {
- 0.f, 1.f, 2.f, 3.f, 4.f, 5.f, 6.f, 7.f, /* 7dB */
- 8.f, 8.f, 7.f, 6.f, 5.f, 4.f, 4.f, 4.f, /* 15dB */
- 4.f, 4.f, 5.f, 5.f, 5.f, 6.f, 6.f, 6.f, /* 23dB */
- 7.f, 7.f, 7.f, 8.f, 8.f, 8.f, 9.f, 10.f, /* 31dB */
- 11.f,12.f,13.f,14.f,15.f,16.f,17.f, 18.f, /* 39dB */
- }
-};
-
-/* tonal masking curve level adjustments *************************/
-static vp_adjblock _vp_tonemask_adj_longblock[6]={
- /* adjust for mode zero */
- {{
- { 10, 10, 5, }, /*63*/
- { 10, 10, 5, },
- { 10, 10, 5, }, /* 125 */
- { 10, 10, 5, },
- { 10, 10, 5, }, /* 250 */
- { 10, 10, 5, },
- { 10, 10, 5, }, /* 500 */
- { 10, 10, 5, },
- { 10, 10, 5, }, /* 1000 */
- { 10, 10, 5, },
-
- { 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10}, /* 2000 */
- { 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10},
- { 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10}, /* 4000 */
- { 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10},
- { 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10}, /* 8000 */
- { 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10},
- { 16, 16, 14, 12, 12, 15, 15, 15, 15, 15, 10}, /* 16000 */
- }},
-
- /* adjust for mode two */
- {{
- { 10, 10, 5, }, /*63*/
- { 10, 10, 5, },
- { 10, 10, 5, }, /* 125 */
- { 10, 10, 5, },
- { 10, 10, 5, }, /* 250 */
- { 10, 10, 5, },
- { 10, 10, 5, }, /* 500 */
- { 10, 10, 5, },
- { 10, 10, 5, }, /* 1000 */
- { 10, 10, 5, },
-
- { 0, }, /* 2000 */
- { 0, },
- { 10, 5, 5, }, /* 4000 */
- { 10, 10, 5, },
- { 10, 10, 7, 5, }, /* 8000 */
- { 10, 10, 7, 7, 5, 5, 10, 10, 10, 5, },
- { 16, 16, 14, 8, 8, 8, 10, 10, 10, 5, }, /* 16000 */
- }},
-
- /* adjust for mode four */
- {{
- { 10, 5, 5, }, /*63*/
- { 10, 5, 5, },
- { 10, 5, 5, }, /* 125 */
- { 10, 5, 5, },
- { 10, 5, 5, }, /* 250 */
- { 10, 5, 5, },
- { 10, 5, 5, }, /* 500 */
- { 10, 5, 5, },
- { 10, 5, 5, }, /* 1000 */
- { 10, 5, 5, },
-
- { 0, }, /* 2000 */
- { 0, },
- { 0, }, /* 4000 */
- { 10, 5, 5, },
- { 10, 10, 7, 5, }, /* 8000 */
- { 10, 10, 7, 5, 5, 5, 10, 10, 10, 5, },
- { 16, 16, 14, 8, 8, 8, 10, 10, 10, 5, }, /* 16000 */
- }},
-
- /* adjust for mode six */
- {{
- { 10, 5, 5, }, /*63*/
- { 10, 5, 5, },
- { 10, 5, 5, }, /* 125 */
- { 10, 5, 5, },
- { 10, 5, 5, }, /* 250 */
- { 10, 5, 5, },
- { 10, 5, 5, }, /* 500 */
- { 10, 5, 5, },
- { 10, 5, 5, }, /* 1000 */
- { 10, 5, 5, },
-
- { 0, }, /* 2000 */
- { 0, },
- { 0, }, /* 4000 */
- { 10, 5, 5, },
- { 10, 10, 7, 5, }, /* 8000 */
- { 10, 10, 7, 5, 5, 5, 5, 5, 5, },
- { 12, 10, 10, 5, 5, 5, 5, 5, 5, }, /* 16000 */
- }},
-
- /* adjust for mode eight */
- {{
- { 0, }, /*63*/
- { 0, },
- { 0, }, /* 125 */
- { 0, },
- { 0, }, /* 250 */
- { 0, },
- { 0, }, /* 500 */
- { 0, },
- { 0, }, /* 1000 */
- { 0, },
-
- { 0, }, /* 2000 */
- { 0, },
- { 0, }, /* 4000 */
- { 0, },
- { 0, }, /* 8000 */
- { 0, },
- { 5, 5, 5, 5, 5, 5, 5, }, /* 16000 */
- }},
-
- /* adjust for mode ten */
- {{
- { 0, 0, 0, -5,-15,-15,-15,-15,-15,-15,-15}, /*63*/
- { 0, 0, 0, -5,-15,-15,-15,-15,-15,-15,-15},
- { 0, 0, 0, -5,-15,-15,-15,-15,-15,-15,-15}, /*125*/
- { 0, 0, 0, -5,-15,-15,-15,-15,-15,-15,-15},
- { 0, 0, 0, -5,-15,-15,-15,-15,-15,-15,-15}, /*250*/
- { 0, 0, 0, -5,-15,-15,-15,-15,-15,-15,-15},
- { 0, 0, 0, -5,-15,-15,-15,-15,-15,-15,-15}, /*500*/
- { 0, 0, 0, -5,-15,-15,-15,-15,-15,-15,-15},
- { 0, 0, 0, -5,-15,-15,-15,-15,-15,-15,-15}, /*1000*/
- { 0, 0, 0, -5,-15,-15,-15,-15,-15,-15,-15},
- { 0, 0, 0, -5,-15,-15,-15,-15,-15,-15,-15}, /*2000*/
- { 0, 0, 0, -5,-15,-15,-15,-15,-15,-15,-15},
- { 0, 0, 0, -5,-15,-15,-15,-15,-15,-15,-15}, /*4000*/
- { 0, 0, 0, -5,-15,-15,-15,-15,-15,-15,-15},
- { 0, 0, 0, -5,-15,-15,-15,-15,-15,-15,-15}, /*8000*/
- { 0, 0, 0, -5,-10,-10,-10,-15,-15,-15,-15},
- { 0, 0, 0, 0, 0, -5, -5,-10,-15,-15,-15}, /*16000*/
- }},
-};
-
-static vp_adjblock _vp_tonemask_adj_otherblock[6]={
- /* adjust for mode zero */
- {{
- { 0, 0, 0, 0,-10,-10,-10,-10,-10,-10,-10}, /*63*/
- { 0, 0, 0, 0,-10,-10,-10,-10,-10,-10,-10},
- { 0, 0, 0, 0,-10,-10,-10,-10,-10,-10,-10}, /*125*/
- { 0, 0, 0, 0,-10,-10,-10,-10,-10,-10,-10},
- { 0, 0, 0, 0,-10,-10,-10,-10,-10,-10,-10}, /*250*/
- { 0, 0, 0, 0,-10,-10,-10,-10,-10,-10,-10},
- { 5, 5, 5, 0, -5, -5, -5, -5, -5, -5, -5}, /*500*/
- { 5, 5, 5, 0, -5, -5, -5, -5, -5, -5, -5},
-
- { 5, 5, 5, }, /*1000*/
- { 5, 5, 5, },
-
- { 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10}, /*2000*/
- { 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10},
- { 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10}, /*4000*/
- { 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10},
- { 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10}, /*8000*/
- { 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10},
- { 16, 16, 14, 12, 12, 15, 15, 15, 15, 15, 10}, /*16000*/
- }},
-
- /* adjust for mode two */
- {{
- { 0, 0, 0, 0,-10,-10,-10,-10,-10,-10,-10}, /*63*/
- { 0, 0, 0, 0,-10,-10,-10,-10,-10,-10,-10},
- { 0, 0, 0, 0,-10,-10,-10,-10,-10,-10,-10}, /*125*/
- { 0, 0, 0, 0,-10,-10,-10,-10,-10,-10,-10},
- { 0, 0, 0, 0,-10,-10,-10,-10,-10,-10,-10}, /*250*/
- { 0, 0, 0, 0,-10,-10,-10,-10,-10,-10,-10},
- { 5, 5, 5, 0, -5, -5, -5, -5, -5, -5, -5}, /*500*/
- { 5, 5, 5, 0, -5, -5, -5, -5, -5, -5, -5},
-
- { 10, 10, 5, }, /* 1000 */
- { 10, 10, 5, },
-
- { 0, }, /* 2000 */
- { 0, },
- { 0, }, /* 4000 */
- { 10, 5, 5, },
- { 10, 10, 7, 5, }, /* 8000 */
- { 10, 10, 7, 7, 5, 5, 10, 10, 10, 5, },
- { 16, 16, 14, 8, 8, 8, 10, 10, 10, 5, }, /* 16000 */
- }},
-
- /* adjust for mode four */
- {{
- { 0, 0, 0, -5,-15,-15,-15,-15,-15,-15,-15}, /*63*/
- { 0, 0, 0, -5,-15,-15,-15,-15,-15,-15,-15},
- { 0, 0, 0, -5,-15,-15,-15,-15,-15,-15,-15}, /*125*/
- { 0, 0, 0, -5,-15,-15,-15,-15,-15,-15,-15},
- { 0, 0, 0, -5,-15,-15,-15,-15,-15,-15,-15}, /*250*/
- { 0, 0, 0, -5,-15,-15,-15,-15,-15,-15,-15},
- { 0, 0, 0, -5,-15,-15,-15,-15,-15,-15,-15}, /*500*/
- { 0, 0, 0, -5,-15,-15,-15,-15,-15,-15,-15},
-
- { 5, 5, 5, }, /* 1000 */
- { 5, 5, 5, },
-
- { 0, }, /* 2000 */
- { 0, },
- { 0, }, /* 4000 */
- { 10, 5, 5, },
- { 10, 10, 7, 5, }, /* 8000 */
- { 10, 10, 7, 5, 5, 5, 10, 10, 10, 5, },
- { 16, 16, 14, 8, 8, 8, 10, 10, 10, 5, }, /* 16000 */
- }},
-
- /* adjust for mode six */
- {{
- { 0, 0, 0, -5,-15,-15,-15,-15,-15,-15,-15}, /*63*/
- { 0, 0, 0, -5,-15,-15,-15,-15,-15,-15,-15},
- { 0, 0, 0, -5,-15,-15,-15,-15,-15,-15,-15}, /*125*/
- { 0, 0, 0, -5,-15,-15,-15,-15,-15,-15,-15},
- { 0, 0, 0, -5,-15,-15,-15,-15,-15,-15,-15}, /*250*/
- { 0, 0, 0, -5,-15,-15,-15,-15,-15,-15,-15},
- { 0, 0, 0, -5,-15,-15,-15,-15,-15,-15,-15}, /*500*/
- { 0, 0, 0, -5,-15,-15,-15,-15,-15,-15,-15},
-
- { 5, 5, 5, }, /* 1000 */
- { 5, 5, 5, },
-
- { 0, }, /* 2000 */
- { 0, },
- { 0, }, /* 4000 */
- { 10, 5, 5, },
- { 10, 10, 7, 5, }, /* 8000 */
- { 10, 10, 7, 5, 5, 5, 5, 5, 5, },
- { 12, 10, 10, 5, 5, 5, 5, 5, 5, }, /* 16000 */
- }},
-
- /* adjust for mode eight */
- {{
- {-10,-10,-10,-15,-15,-15,-15,-20,-20,-20,-20}, /*63*/
- {-10,-10,-10,-15,-15,-15,-15,-20,-20,-20,-20},
- {-10,-10,-10,-15,-15,-15,-15,-20,-20,-20,-20}, /*125*/
- {-10,-10,-10,-15,-15,-15,-15,-20,-20,-20,-20},
- {-10,-10,-10,-15,-15,-15,-15,-20,-20,-20,-20}, /*250*/
- {-10,-10,-10,-15,-15,-15,-15,-20,-20,-20,-20},
- {-10,-10,-10,-15,-15,-15,-15,-20,-20,-20,-20}, /*500*/
- {-10,-10,-10,-15,-15,-15,-15,-20,-20,-20,-20},
-
- { 0,-10,-10,-15,-15,-15,-15,-15,-15,-15,-15},
- { 0,-10,-10,-15,-15,-15,-15,-15,-15,-15,-15},
-
- { 0, }, /* 2000 */
- { 0, },
- { 0, }, /* 4000 */
- { 0, },
- { 0, }, /* 8000 */
- { 0, },
- { 5, 5, 5, 5, 5, 5, 5, }, /* 16000 */
- }},
-
- /* adjust for mode ten */
- {{
- { 0, 0, 0, -5,-15,-20,-20,-20,-20,-20,-20}, /*63*/
- { 0, 0, 0, -5,-15,-20,-20,-20,-20,-20,-20},
- { 0, 0, 0, -5,-15,-20,-20,-20,-20,-20,-20}, /*125*/
- { 0, 0, 0, -5,-15,-20,-20,-20,-20,-20,-20},
- { 0, 0, 0, -5,-15,-20,-20,-20,-20,-20,-20}, /*250*/
- { 0, 0, 0, -5,-15,-20,-20,-20,-20,-20,-20},
- { 0, 0, 0, -5,-15,-20,-20,-20,-20,-20,-20}, /*500*/
- { 0, 0, 0, -5,-15,-20,-20,-20,-20,-20,-20},
- { 0, 0, 0, -5,-15,-20,-20,-20,-20,-20,-20}, /*1000*/
- { 0, 0, 0, -5,-15,-20,-20,-20,-20,-20,-20},
- { 0, 0, 0, -5,-15,-15,-15,-15,-15,-15,-15}, /*2000*/
- { 0, 0, 0, -5,-15,-15,-15,-15,-15,-15,-15},
- { 0, 0, 0, -5,-15,-15,-15,-15,-15,-15,-15}, /*4000*/
- { 0, 0, 0, -5,-15,-15,-15,-15,-15,-15,-15},
- { 0, 0, 0, -5,-15,-15,-15,-15,-15,-15,-15}, /*8000*/
- { 0, 0, 0, -5,-10,-10,-10,-15,-15,-15,-15},
- { 0, 0, 0, 0, 0, -5, -5,-10,-15,-15,-15}, /*16000*/
- }},
-};
-
-static vp_adjblock _vp_peakguard[6]={
- /* zero */
- {{
- {-14,-16,-18,-19,-24,-24,-24,-24,-24,-24,-24},/*63*/
- {-14,-16,-18,-19,-24,-24,-24,-24,-24,-24,-24},
- {-14,-16,-18,-19,-24,-24,-24,-24,-24,-24,-24},/*125*/
- {-14,-16,-18,-19,-24,-24,-24,-24,-24,-24,-24},
- {-14,-16,-18,-19,-24,-24,-24,-24,-24,-24,-24},/*250*/
- {-14,-16,-18,-19,-24,-24,-24,-24,-24,-24,-24},
- {-10,-10,-10,-10,-16,-16,-18,-20,-22,-24,-24},/*500*/
- {-10,-10,-10,-10,-14,-14,-16,-20,-22,-24,-24},
- {-10,-10,-10,-10,-14,-14,-16,-20,-22,-24,-24},/*1000*/
- {-10,-10,-10,-10,-14,-14,-16,-20,-22,-24,-24},
- {-10,-10,-10,-10,-14,-14,-16,-20,-22,-24,-24},/*2000*/
- {-10,-10,-10,-12,-16,-16,-16,-20,-22,-24,-24},
- {-10,-10,-10,-12,-16,-16,-16,-20,-22,-24,-24},/*4000*/
- {-10,-10,-10,-12,-12,-14,-16,-18,-22,-24,-24},
- {-10,-10,-10,-10,-10,-14,-16,-18,-22,-24,-24},/*8000*/
- {-10,-10,-10,-10,-10,-14,-16,-18,-22,-24,-24},
- {-10,-10,-10,-10,-10,-12,-16,-18,-22,-24,-24},/*16000*/
- }},
- /* two */
- {{
- {-14,-20,-20,-20,-26,-30,-30,-30,-30,-30,-30},/*63*/
- {-14,-20,-20,-20,-26,-30,-30,-30,-30,-30,-30},
- {-14,-20,-20,-20,-26,-30,-30,-30,-30,-30,-30},/*125*/
- {-14,-20,-20,-20,-26,-30,-30,-30,-30,-30,-30},
- {-14,-20,-20,-20,-26,-30,-30,-30,-30,-30,-30},/*250*/
- {-14,-20,-20,-20,-26,-30,-30,-30,-30,-30,-30},
- {-14,-20,-20,-20,-26,-30,-30,-30,-30,-30,-30},/*500*/
- {-10,-10,-10,-10,-14,-14,-14,-20,-26,-30,-30},
- {-10,-10,-10,-10,-14,-14,-14,-20,-22,-30,-30},/*1000*/
- {-10,-10,-10,-10,-14,-14,-16,-20,-22,-30,-30},
- {-10,-10,-10,-10,-14,-14,-16,-20,-22,-30,-30},/*2000*/
- {-10,-10,-10,-10,-14,-14,-16,-20,-22,-30,-30},
- {-10,-10,-10,-10,-14,-14,-16,-20,-22,-30,-30},/*4000*/
- {-10,-10,-10,-10,-10,-11,-12,-13,-22,-30,-30},
- {-10,-10,-10,-10,-10,-11,-12,-13,-22,-30,-30},/*8000*/
- {-10,-10,-10,-10,-10,-10,-10,-11,-22,-30,-30},
- {-10,-10,-10,-10,-10,-10,-10,-10,-20,-30,-30},/*16000*/
- }},
- /* four */
- {{
- {-14,-20,-20,-20,-26,-32,-32,-32,-32,-32,-40},/*63*/
- {-14,-20,-20,-20,-26,-32,-32,-32,-32,-32,-40},
- {-14,-20,-20,-20,-26,-32,-32,-32,-32,-32,-40},/*125*/
- {-14,-20,-20,-20,-20,-20,-20,-30,-32,-32,-40},
- {-14,-20,-20,-20,-20,-20,-20,-30,-32,-32,-40},/*250*/
- {-14,-20,-20,-20,-20,-20,-20,-24,-32,-32,-40},
- {-14,-20,-20,-20,-20,-20,-20,-24,-32,-32,-40},/*500*/
- {-10,-10,-10,-10,-14,-16,-20,-24,-26,-32,-40},
- {-10,-10,-10,-10,-14,-16,-20,-24,-22,-32,-40},/*1000*/
- {-10,-10,-10,-10,-14,-16,-20,-24,-22,-32,-40},
- {-10,-10,-10,-10,-14,-16,-20,-24,-22,-32,-40},/*2000*/
- {-10,-10,-10,-10,-14,-16,-20,-24,-22,-32,-40},
- {-10,-10,-10,-10,-14,-14,-16,-20,-22,-32,-40},/*4000*/
- {-10,-10,-10,-10,-10,-11,-12,-13,-22,-32,-40},
- {-10,-10,-10,-10,-10,-11,-12,-13,-22,-32,-40},/*8000*/
- {-10,-10,-10,-10,-10,-10,-10,-11,-22,-32,-40},
- {-10,-10,-10,-10,-10,-10,-10,-10,-20,-32,-40},/*16000*/
- }},
- /* six */
- {{
- {-14,-20,-20,-20,-26,-32,-32,-32,-32,-32,-40},/*63*/
- {-14,-20,-20,-20,-26,-32,-32,-32,-32,-32,-40},
- {-14,-20,-20,-20,-26,-32,-32,-32,-32,-32,-40},/*125*/
- {-14,-20,-20,-20,-26,-32,-32,-32,-32,-32,-40},
- {-14,-20,-20,-20,-26,-32,-32,-32,-32,-32,-40},/*250*/
- {-14,-20,-20,-20,-26,-32,-32,-32,-32,-32,-40},
- {-14,-20,-20,-20,-26,-32,-32,-32,-32,-32,-40},/*500*/
- {-14,-14,-14,-16,-20,-22,-24,-24,-28,-32,-40},
- {-14,-14,-14,-16,-20,-22,-24,-24,-28,-32,-40},/*1000*/
- {-14,-14,-14,-16,-20,-22,-24,-24,-28,-32,-40},
- {-14,-14,-16,-20,-24,-26,-26,-28,-30,-32,-40},/*2000*/
- {-14,-14,-16,-20,-24,-26,-26,-28,-30,-32,-40},
- {-14,-14,-16,-20,-24,-26,-26,-28,-30,-32,-40},/*4000*/
- {-14,-14,-14,-20,-22,-22,-24,-24,-26,-32,-40},
- {-14,-14,-14,-18,-20,-20,-24,-24,-24,-32,-40},/*8000*/
- {-14,-14,-14,-18,-20,-20,-24,-24,-24,-32,-40},
- {-14,-14,-14,-18,-20,-20,-22,-24,-24,-32,-40},/*16000*/
- }},
- /* eight */
- {{
- {-14,-20,-24,-26,-32,-34,-36,-38,-40,-40,-40},/*63*/
- {-14,-20,-24,-26,-32,-34,-36,-38,-40,-40,-40},/*88*/
- {-14,-20,-24,-26,-32,-34,-36,-38,-40,-40,-40},/*125*/
- {-14,-20,-24,-26,-32,-34,-36,-38,-40,-40,-40},/*170*/
- {-14,-20,-24,-26,-32,-34,-36,-38,-40,-40,-40},/*250*/
- {-14,-20,-24,-26,-32,-34,-36,-38,-40,-40,-40},/*350*/
- {-14,-20,-24,-26,-32,-34,-36,-38,-40,-40,-40},/*500*/
- {-14,-20,-24,-26,-32,-34,-36,-38,-40,-40,-40},/*700*/
- {-14,-20,-24,-26,-32,-34,-36,-38,-40,-40,-40},/*1000*/
- {-14,-20,-24,-26,-32,-34,-36,-38,-40,-40,-40},/*1400*/
- {-14,-20,-24,-26,-32,-34,-36,-38,-40,-40,-40},/*2000*/
- {-14,-20,-24,-26,-32,-34,-36,-38,-40,-40,-40},/*2800*/
- {-14,-20,-24,-26,-32,-34,-36,-38,-40,-40,-40},/*4000*/
- {-14,-20,-24,-26,-32,-34,-36,-38,-40,-40,-40},/*5600*/
- {-14,-20,-24,-26,-32,-34,-36,-38,-40,-40,-40},/*8000*/
- {-14,-20,-24,-26,-32,-34,-36,-38,-40,-40,-40},/*11500*/
- {-14,-20,-24,-26,-32,-34,-36,-38,-40,-40,-40},/*16600*/
- }},
- /* ten */
- {{
- {-14,-20,-24,-26,-32,-34,-36,-38,-40,-44,-46},/*63*/
- {-14,-20,-24,-26,-32,-34,-36,-38,-40,-44,-46},/*88*/
- {-14,-20,-24,-26,-32,-34,-36,-38,-40,-44,-46},/*125*/
- {-14,-20,-24,-26,-32,-34,-36,-38,-40,-44,-46},/*170*/
- {-14,-20,-24,-26,-32,-34,-36,-38,-40,-44,-46},/*250*/
- {-14,-20,-24,-26,-32,-34,-36,-38,-40,-44,-46},/*350*/
- {-14,-20,-24,-26,-32,-34,-36,-38,-40,-44,-46},/*500*/
- {-14,-20,-24,-26,-32,-34,-36,-38,-40,-44,-46},/*700*/
- {-14,-20,-24,-26,-32,-34,-36,-38,-40,-44,-46},/*1000*/
- {-14,-20,-24,-26,-32,-34,-36,-38,-40,-44,-46},/*1400*/
- {-14,-20,-24,-26,-32,-34,-36,-38,-40,-44,-46},/*2000*/
- {-14,-20,-24,-26,-32,-34,-36,-38,-40,-44,-46},/*2800*/
- {-14,-20,-24,-26,-32,-34,-36,-38,-40,-44,-46},/*4000*/
- {-14,-20,-24,-26,-32,-34,-36,-38,-40,-44,-46},/*5600*/
- {-14,-20,-24,-26,-32,-34,-36,-38,-40,-44,-46},/*8000*/
- {-14,-20,-24,-26,-32,-34,-36,-38,-40,-44,-46},/*11500*/
- {-14,-20,-24,-26,-32,-34,-36,-38,-40,-44,-46},/*16600*/
- }}
-};
-
-static int _psy_noisebias_long[11][17]={
- /*63 125 250 500 1k 2k 4k 8k 16k*/
- {-20,-20,-18,-18,-18,-16,-14, -8, -6, -2, 0, 2, 3, 3, 4, 4, 10},
- {-20,-20,-20,-20,-20,-20,-20,-10, -6, -2, -2, -2, 1, 1, 2, 2, 4},
- {-20,-20,-20,-20,-20,-20,-20,-10, -6, -2, -3, -3, -1, -1, 0, 1, 2},
- {-20,-20,-20,-20,-20,-20,-20,-10, -6, -2, -3, -3, -1, -1, 0, 1, 2},
- {-20,-20,-20,-20,-20,-20,-20,-10, -6, -3, -4, -4, -2, -1, 0, 0, 2},
-
- {-20,-20,-20,-20,-20,-20,-20,-18,-10, -4, -6, -6, -3, -2, -2, -2, 0},
- {-24,-24,-24,-24,-24,-24,-24,-18,-14, -8, -8, -8, -7, -7, -6, -6, -4},
- {-24,-24,-24,-24,-24,-24,-24,-18,-14,-14,-16,-16,-14,-12,-10,-10, -8},
-
- {-24,-24,-24,-24,-24,-24,-24,-20,-20,-20,-20,-20,-16,-16,-14,-14,-10},
- {-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-24,-24,-24,-24},
- {-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-46},
-};
-
-static int _psy_noisebias_impulse[11][17]={
- /*63 125 250 500 1k 2k 4k 8k 16k*/
- {-20,-20,-20,-20,-20,-18,-14,-10,-10, -2, 2, 2, 2, 2, 2, 3, 6},
- {-30,-30,-30,-30,-26,-22,-20,-14,-10, -4, -4, -4, -2, -2, -2, -2, 2},
- {-30,-30,-30,-30,-26,-22,-20,-14,-10, -6, -6, -6, -4, -4, -4, -2, 0},
- {-30,-30,-30,-30,-30,-24,-20,-14,-10, -6, -6, -6, -4, -4, -4, -2, -2},
- {-30,-30,-30,-30,-30,-24,-20,-14,-10, -6, -8, -8, -6, -6, -6, -4, -2},
-
- {-30,-30,-30,-30,-30,-30,-24,-20,-10,-12,-14,-14,-10, -9, -8, -6, -4},
- {-34,-34,-34,-34,-30,-30,-24,-20,-14,-14,-16,-16,-14,-12,-10,-10, -8},
- {-34,-34,-34,-34,-30,-30,-30,-24,-20,-20,-20,-20,-20,-18,-16,-16,-14},
-
- {-34,-34,-34,-34,-30,-30,-30,-30,-30,-26,-26,-26,-26,-22,-20,-20,-16},
- {-40,-40,-40,-40,-40,-40,-40,-40,-40,-36,-36,-36,-36,-36,-36,-30,-30},
- {-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50},
-};
-
-static int _psy_noisebias_other[11][17]={
- /*63 125 250 500 1k 2k 4k 8k 16k*/
- {-20,-20,-20,-20,-20,-18,-14,-10, -6, -2, 2, 2, 3, 3, 4, 4, 10},
- {-26,-26,-26,-26,-26,-22,-20,-14,-10, -2, -2, -2, 1, 1, 2, 2, 4},
- {-30,-30,-30,-30,-26,-22,-20,-14,-10, -2, -3, -3, -1, -1, 0, 1, 2},
- {-30,-30,-30,-30,-26,-22,-20,-14,-10, -4, -3, -3, -1, -1, 0, 1, 2},
- {-30,-30,-30,-30,-26,-22,-20,-14,-10, -4, -4, -4, -2, -1, 0, 0, 2},
-
- {-30,-30,-30,-30,-30,-30,-24,-20,-10, -4, -6, -6, -3, -2, -2, -2, 0},
- {-34,-34,-34,-34,-30,-30,-24,-20,-14, -8, -8, -8, -7, -7, -6, -6, -4},
- {-34,-34,-34,-34,-30,-30,-24,-20,-14,-14,-16,-16,-14,-12,-10,-10, -8},
-
- {-34,-34,-34,-34,-30,-30,-30,-20,-20,-20,-20,-20,-16,-16,-14,-14,-10},
- {-40,-40,-40,-40,-40,-40,-40,-30,-30,-30,-30,-30,-30,-24,-24,-24,-24},
- {-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-46},
-};
-
-static int _psy_noiseguards_short[33]={
- 2,2,-1,
- 4,4,-1,
- 4,4,15,
- 4,4,15,
- 4,4,15,
- 4,4,15,
- 4,4,15,
- 4,4,15,
- 4,4,15,
- 4,4,15,
- 4,4,15,
-};
-static int _psy_noiseguards_long[33]={
- 10,10,100,
- 10,10,100,
- 10,10,100,
- 10,10,100,
- 10,10,100,
- 10,10,100,
- 10,10,100,
- 10,10,100,
- 10,10,100,
- 10,10,100,
- 10,10,100,
-};
-
-static double _psy_tone_masteratt[11]={
- 3.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,
-};
-
-static double _psy_tone_masterguard[11]={
- -18.,-24.,-24.,-24.,-26.,-40.,-40.,-40.,-45.,-45.,-45.,
-};
-
-static double _psy_tone_suppress[11]={
- -10.,-20.,-20.,-20.,-30.,-30.,-40.,-40.,-45.,-45.,-45.,
-};
-
-static double _psy_tone_0dB[11]={
- 95.,95.,95.,95.,95.,105.,105.,105.,105.,105.,105.,
-};
-
-static double _psy_noise_suppress[11]={
- -0.,-24.,-24.,-24.,-24.,-30.,-40.,-40.,-45.,-45.,-45.,
-};
-
-static int _psy_ehmer_bandlimit[11]={
- 0,0,0,0,4,4,30,30,30,30,30,
-};
-
-static vorbis_info_psy _psy_info_template={
- {-1},-110.,-140.,
- /* tonemask att,guard,suppr,curves peakattp,curvelimitp,peaksettings*/
- 0.f, -40.f,-40.f, {{{0.}}}, 1, 0, {{{0.}}},
-
- /*noisemaskp,supp, low/high window, low/hi guard, minimum */
- 1, -0.f, .5f, .5f, 0,0,0,
- {-1},{-1},105.f,{{-1,-1,{{-1,-1,-1,-1}}}}
-};
-
-/* ath ****************/
-
-static double _psy_ath_floater[11]={
- -100.,-100.,-100.,-100.,-100.,-100.,-105.,-105.,-105.,-110.,-120.,
-};
-
-static double _psy_ath_abs[11]={
- -110.,-110.,-120.,-140.,-140.,-140.,-140.,-140.,-140.,-140.,-150.,
-};
-
-static float ATH_Bark_dB[][27]={
- {
- 0.f, 15.f, 15.f, 15.f, 11.f, 10.f, 8.f, 7.f, 7.f, 7.f,
- 6.f, 2.f, 0.f, 0.f, -2.f, -5.f, -6.f, -6.f, -4.f, 4.f,
- 14.f, 20.f, 19.f, 17.f, 30.f, 60.f, 70.f,
- },
- {
- 0.f, 15.f, 15.f, 15.f, 11.f, 10.f, 8.f, 7.f, 7.f, 7.f,
- 6.f, 2.f, 0.f, 0.f, -2.f, -5.f, -6.f, -6.f, -4.f, 0.f,
- 2.f, 6.f, 5.f, 5.f, 15.f, 30.f, 50.f,
- },
- {
- 0.f, 15.f, 15.f, 15.f, 11.f, 10.f, 8.f, 7.f, 7.f, 7.f,
- 6.f, 2.f, 0.f, 0.f, -3.f, -5.f, -6.f, -6.f, -4.5f, -4.f,
- 2.f, 6.f, 5.f, 5.f, 15.f, 20.f, 40.f,
- }
-};
-
-/* stereo ****************/
-static int _psy_stereo_point_dB_44[11]={3, 3, 2, 2, 1, 0, 0, 0, 0, 0, 0};
-static double _psy_stereo_point_kHz_44[2][11]={
- {4., 6., 6., 6., 10., 6., 6., 4., 4., 4., 4.},
- {6., 6., 6., 10., 10., 6., 6., 4., 4., 4., 4.}
-};
-
-/* lowpass **************/
-static double _psy_lowpass_44[11]={
- 15.1,15.8,16.5,17.9,20.5,48.,999.,999.,999.,999.,999.
-};
-
-/* management noise offset */
-
-static double _bm_max_noise_offset[11]={
- 1.,2.,3.,3.,4.,4.,4.,4.,4.,4.,4.
-};
diff --git a/lib/modes/residue_44.h b/lib/modes/residue_44.h
deleted file mode 100644
index b99c91bc..00000000
--- a/lib/modes/residue_44.h
+++ /dev/null
@@ -1,1406 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: toplevel residue templates for 32/44.1/48kHz
- last mod: $Id: residue_44.h,v 1.11 2001/12/23 11:53:54 xiphmont Exp $
-
- ********************************************************************/
-
-#include "vorbis/codec.h"
-#include "backends.h"
-
-static bitrate_manager_info _bm_44_default={
- /* progressive coding and bitrate controls */
- 4.,.0,
- 2., 0, 0,
- 0, 0,
-
- 4.0,2.3, -9999, .02,
-
- 3.2,5.0,
- 0.,0.
-};
-
-/***** residue backends *********************************************/
-
-/* the books used depend on stereo-or-not, but the residue setup below
- can apply to coupled or not. These templates are for a first pass;
- a last pass is mechanically added in vorbisenc for residue backfill
- at 1/3 and 1/9, as well as an optional middle pass for stereo
- backfill */
-
-/* 0 1 2 4 26 1 2 4 26 +
- 0 0 0 0
-
- 0 1 2 3 4 5 6 7 8 9
- 1 . . .
- 2 . . .
- 4 . . . . . . .
-
- 0 4 4 4 3 4 4 4 3 7 */
-static vorbis_info_residue0 _residue_44_low={
- 0,-1, -1, 8,-1,
- {0},
- {-1},
- {9999, 9999, 9999, 9999, 9999, 9999, 9999},
- { .5, 1.5, 2.5, 4.5, 26.5, 1.5, 4.5},
- {0},
- { 99, -1, -1, -1, -1, 99, 99}
-};
-/* 26 doesn't cascade well; use 28 instead */
-static vorbis_info_residue0 _residue_44_low_un={
- 0,-1, -1, 8,-1,
- {0},
- {-1},
- {9999, 9999, 9999, 9999, 9999, 9999, 9999},
- { .5, 1.5, 2.5, 4.5, 28.5, 1.5, 4.5},
- {0},
- { 99, -1, -1, -1, -1, 99, 99}
-};
-
-/* 0 1 2 4 1 2 4 16 42 +
- 0 0 0
-
- 0 1 2 3 4 5 6 7 8 9
- 1 . . .
- 2 . . .
- 4 . . . . . . .
-
- 0 4 4 4 4 4 4 3 3 7 */
-static vorbis_info_residue0 _residue_44_mid={
- 0,-1, -1, 10,-1,
- /* 0 1 2 3 4 5 6 7 8 9 */
- {0},
- {-1},
- {9999, 9999, 9999, 9999, 9999, 9999, 9999, 9999, 9999},
- { .5, 1.5, 1.5, 2.5, 2.5, 4.5, 4.5, 16.5, 42.5},
- {0},
- { 99, -1, 99, -1, 99, -1, 99, 99, 99}
-};
-
-
-/* 0 8 42 1 2 4 8 16 56 +
- 0 0 0
-
- 0 1 2 3 4 5 6 7 8 9
- 1 . . . .
- 2 . . . .
- 4 . . . . . .
-
- 0 4 3 4 4 4 4 3 3 7 */
-static vorbis_info_residue0 _residue_44_high={
- 0,-1, -1, 10,-1,
- /* 0 1 2 3 4 5 6 7 8 9 */
- {0},
- {-1},
- {9999, 9999, 9999, 9999, 9999, 9999, 9999, 9999, 9999},
- { .5, 8.5, 42.5, 1.5, 2.5, 4.5, 8.5, 16.5, 56.5},
- {0},
- { 99, -1, -1, 99, 99, 99, 99, 99, 99}
-};
-/* 56 doesn't cascade well; use 59 */
-static vorbis_info_residue0 _residue_44_high_un={
- 0,-1, -1, 10,-1,
- /* 0 1 2 3 4 5 6 7 8 9 */
- {0},
- {-1},
- {9999, 9999, 9999, 9999, 9999, 9999, 9999, 9999, 9999},
- { .5, 8.5, 42.5, 1.5, 2.5, 4.5, 8.5, 16.5, 59.5},
- {0},
- { 99, -1, -1, 99, 99, 99, 99, 99, 99}
-};
-
-#include "books/coupled/_44c0_short.vqh"
-#include "books/coupled/_44c0_long.vqh"
-
-#include "books/coupled/_44c0_s0_p1_0.vqh"
-#include "books/coupled/_44c0_s0_p2_0.vqh"
-#include "books/coupled/_44c0_s0_p3_0.vqh"
-#include "books/coupled/_44c0_s0_p4_0.vqh"
-#include "books/coupled/_44c0_s0_p4_1.vqh"
-#include "books/coupled/_44c0_s0_p5_0.vqh"
-#include "books/coupled/_44c0_s1_p5_0.vqh"
-#include "books/coupled/_44c0_s0_p6_0.vqh"
-#include "books/coupled/_44c0_s1_p6_0.vqh"
-#include "books/coupled/_44c0_s2_p6_0.vqh"
-#include "books/coupled/_44c0_s0_p7_0.vqh"
-#include "books/coupled/_44c0_s0_p7_1.vqh"
-#include "books/coupled/_44c0_s0_p7_2.vqh"
-#include "books/coupled/_44c0_s1_p7_0.vqh"
-#include "books/coupled/_44c0_s1_p7_1.vqh"
-#include "books/coupled/_44c0_s1_p7_2.vqh"
-#include "books/coupled/_44c0_s2_p7_0.vqh"
-#include "books/coupled/_44c0_s2_p7_1.vqh"
-#include "books/coupled/_44c0_s2_p7_2.vqh"
-#include "books/coupled/_44c0_s3_p7_0.vqh"
-#include "books/coupled/_44c0_s3_p7_1.vqh"
-#include "books/coupled/_44c0_s3_p7_2.vqh"
-
-#include "books/coupled/_44c0_s1_p5_s0.vqh"
-#include "books/coupled/_44c0_s1_p6_s0.vqh"
-#include "books/coupled/_44c0_s1_p7_s0.vqh"
-#include "books/coupled/_44c0_s2_p6_s0.vqh"
-#include "books/coupled/_44c0_s2_p7_s0.vqh"
-#include "books/coupled/_44c0_s3_p7_s0.vqh"
-
-#include "books/coupled/_44c0_s0_p0_r0.vqh"
-#include "books/coupled/_44c0_s0_pN_r0.vqh"
-#include "books/coupled/_44c0_s1_pS_r0.vqh"
-#include "books/coupled/_44c0_s0_p0_r1.vqh"
-#include "books/coupled/_44c0_s0_pN_r1.vqh"
-#include "books/coupled/_44c0_s1_pS_r1.vqh"
-
-#include "books/coupled/_44c1_short.vqh"
-#include "books/coupled/_44c1_long.vqh"
-
-#include "books/coupled/_44c1_s0_p1_0.vqh"
-#include "books/coupled/_44c1_s0_p2_0.vqh"
-#include "books/coupled/_44c1_s0_p3_0.vqh"
-#include "books/coupled/_44c1_s0_p4_0.vqh"
-#include "books/coupled/_44c1_s0_p4_1.vqh"
-#include "books/coupled/_44c1_s0_p5_0.vqh"
-#include "books/coupled/_44c1_s1_p5_0.vqh"
-#include "books/coupled/_44c1_s0_p6_0.vqh"
-#include "books/coupled/_44c1_s1_p6_0.vqh"
-#include "books/coupled/_44c1_s2_p6_0.vqh"
-#include "books/coupled/_44c1_s0_p7_0.vqh"
-#include "books/coupled/_44c1_s0_p7_1.vqh"
-#include "books/coupled/_44c1_s0_p7_2.vqh"
-#include "books/coupled/_44c1_s1_p7_0.vqh"
-#include "books/coupled/_44c1_s1_p7_1.vqh"
-#include "books/coupled/_44c1_s1_p7_2.vqh"
-#include "books/coupled/_44c1_s2_p7_0.vqh"
-#include "books/coupled/_44c1_s2_p7_1.vqh"
-#include "books/coupled/_44c1_s2_p7_2.vqh"
-#include "books/coupled/_44c1_s3_p7_0.vqh"
-#include "books/coupled/_44c1_s3_p7_1.vqh"
-#include "books/coupled/_44c1_s3_p7_2.vqh"
-
-#include "books/coupled/_44c2_short.vqh"
-#include "books/coupled/_44c2_long.vqh"
-
-#include "books/coupled/_44c2_s0_p1_0.vqh"
-#include "books/coupled/_44c2_s0_p2_0.vqh"
-#include "books/coupled/_44c2_s0_p3_0.vqh"
-#include "books/coupled/_44c2_s0_p4_0.vqh"
-#include "books/coupled/_44c2_s0_p4_1.vqh"
-#include "books/coupled/_44c2_s0_p5_0.vqh"
-#include "books/coupled/_44c2_s1_p5_0.vqh"
-#include "books/coupled/_44c2_s0_p6_0.vqh"
-#include "books/coupled/_44c2_s1_p6_0.vqh"
-#include "books/coupled/_44c2_s2_p6_0.vqh"
-#include "books/coupled/_44c2_s0_p7_0.vqh"
-#include "books/coupled/_44c2_s0_p7_1.vqh"
-#include "books/coupled/_44c2_s0_p7_2.vqh"
-#include "books/coupled/_44c2_s1_p7_0.vqh"
-#include "books/coupled/_44c2_s1_p7_1.vqh"
-#include "books/coupled/_44c2_s1_p7_2.vqh"
-#include "books/coupled/_44c2_s2_p7_0.vqh"
-#include "books/coupled/_44c2_s2_p7_1.vqh"
-#include "books/coupled/_44c2_s2_p7_2.vqh"
-#include "books/coupled/_44c2_s3_p7_0.vqh"
-#include "books/coupled/_44c2_s3_p7_1.vqh"
-#include "books/coupled/_44c2_s3_p7_2.vqh"
-
-
-#include "books/coupled/_44c3_short.vqh"
-#include "books/coupled/_44c3_long.vqh"
-
-#include "books/coupled/_44c3_s0_p1_0.vqh"
-#include "books/coupled/_44c3_s0_p2_0.vqh"
-#include "books/coupled/_44c3_s0_p3_0.vqh"
-#include "books/coupled/_44c3_s0_p4_0.vqh"
-#include "books/coupled/_44c3_s0_p4_1.vqh"
-#include "books/coupled/_44c3_s0_p5_0.vqh"
-#include "books/coupled/_44c3_s1_p5_0.vqh"
-#include "books/coupled/_44c3_s0_p6_0.vqh"
-#include "books/coupled/_44c3_s1_p6_0.vqh"
-#include "books/coupled/_44c3_s2_p6_0.vqh"
-#include "books/coupled/_44c3_s0_p7_0.vqh"
-#include "books/coupled/_44c3_s0_p7_1.vqh"
-#include "books/coupled/_44c3_s0_p7_2.vqh"
-#include "books/coupled/_44c3_s1_p7_0.vqh"
-#include "books/coupled/_44c3_s1_p7_1.vqh"
-#include "books/coupled/_44c3_s1_p7_2.vqh"
-#include "books/coupled/_44c3_s2_p7_0.vqh"
-#include "books/coupled/_44c3_s2_p7_1.vqh"
-#include "books/coupled/_44c3_s2_p7_2.vqh"
-#include "books/coupled/_44c3_s3_p7_0.vqh"
-#include "books/coupled/_44c3_s3_p7_1.vqh"
-#include "books/coupled/_44c3_s3_p7_2.vqh"
-
-#include "books/coupled/_44c4_short.vqh"
-#include "books/coupled/_44c4_long.vqh"
-
-#include "books/coupled/_44c4_s0_p1_0.vqh"
-#include "books/coupled/_44c4_s0_p2_0.vqh"
-#include "books/coupled/_44c4_s1_p2_0.vqh"
-#include "books/coupled/_44c4_s0_p3_0.vqh"
-#include "books/coupled/_44c4_s0_p4_0.vqh"
-#include "books/coupled/_44c4_s1_p4_0.vqh"
-#include "books/coupled/_44c4_s0_p5_0.vqh"
-#include "books/coupled/_44c4_s0_p6_0.vqh"
-#include "books/coupled/_44c4_s1_p6_0.vqh"
-#include "books/coupled/_44c4_s2_p6_0.vqh"
-#include "books/coupled/_44c4_s0_p7_0.vqh"
-#include "books/coupled/_44c4_s0_p7_1.vqh"
-#include "books/coupled/_44c4_s1_p7_0.vqh"
-#include "books/coupled/_44c4_s1_p7_1.vqh"
-#include "books/coupled/_44c4_s2_p7_0.vqh"
-#include "books/coupled/_44c4_s2_p7_1.vqh"
-#include "books/coupled/_44c4_s3_p7_0.vqh"
-#include "books/coupled/_44c4_s3_p7_1.vqh"
-#include "books/coupled/_44c4_s0_p8_0.vqh"
-#include "books/coupled/_44c4_s0_p8_1.vqh"
-#include "books/coupled/_44c4_s1_p8_0.vqh"
-#include "books/coupled/_44c4_s1_p8_1.vqh"
-#include "books/coupled/_44c4_s2_p8_0.vqh"
-#include "books/coupled/_44c4_s2_p8_1.vqh"
-#include "books/coupled/_44c4_s3_p8_0.vqh"
-#include "books/coupled/_44c4_s3_p8_1.vqh"
-#include "books/coupled/_44c4_s0_p9_0.vqh"
-#include "books/coupled/_44c4_s0_p9_1.vqh"
-#include "books/coupled/_44c4_s0_p9_2.vqh"
-#include "books/coupled/_44c4_s1_p9_0.vqh"
-#include "books/coupled/_44c4_s1_p9_1.vqh"
-#include "books/coupled/_44c4_s1_p9_2.vqh"
-#include "books/coupled/_44c4_s2_p9_0.vqh"
-#include "books/coupled/_44c4_s2_p9_1.vqh"
-#include "books/coupled/_44c4_s2_p9_2.vqh"
-#include "books/coupled/_44c4_s3_p9_0.vqh"
-#include "books/coupled/_44c4_s3_p9_1.vqh"
-#include "books/coupled/_44c4_s3_p9_2.vqh"
-
-#include "books/coupled/_44c4_s1_p2_s0.vqh"
-#include "books/coupled/_44c4_s1_p4_s0.vqh"
-#include "books/coupled/_44c4_s1_p6_s0.vqh"
-#include "books/coupled/_44c4_s1_p7_s0.vqh"
-#include "books/coupled/_44c4_s1_p8_s0.vqh"
-#include "books/coupled/_44c4_s1_p9_s0.vqh"
-
-#include "books/coupled/_44c4_s2_p6_s0.vqh"
-#include "books/coupled/_44c4_s2_p7_s0.vqh"
-#include "books/coupled/_44c4_s2_p8_s0.vqh"
-#include "books/coupled/_44c4_s2_p9_s0.vqh"
-
-#include "books/coupled/_44c4_s3_p9_s0.vqh"
-
-#include "books/coupled/_44c4_s0_p0_r0.vqh"
-#include "books/coupled/_44c4_s0_p0_r1.vqh"
-#include "books/coupled/_44c4_s0_pN_r0.vqh"
-#include "books/coupled/_44c4_s0_pN_r1.vqh"
-#include "books/coupled/_44c4_s1_pS_r0.vqh"
-#include "books/coupled/_44c4_s1_pS_r1.vqh"
-
-#include "books/coupled/_44c5_short.vqh"
-#include "books/coupled/_44c5_long.vqh"
-
-#include "books/coupled/_44c5_s0_p1_0.vqh"
-#include "books/coupled/_44c5_s0_p2_0.vqh"
-#include "books/coupled/_44c5_s1_p2_0.vqh"
-#include "books/coupled/_44c5_s0_p3_0.vqh"
-#include "books/coupled/_44c5_s0_p4_0.vqh"
-#include "books/coupled/_44c5_s1_p4_0.vqh"
-#include "books/coupled/_44c5_s0_p5_0.vqh"
-#include "books/coupled/_44c5_s0_p6_0.vqh"
-#include "books/coupled/_44c5_s1_p6_0.vqh"
-#include "books/coupled/_44c5_s2_p6_0.vqh"
-#include "books/coupled/_44c5_s0_p7_0.vqh"
-#include "books/coupled/_44c5_s0_p7_1.vqh"
-#include "books/coupled/_44c5_s1_p7_0.vqh"
-#include "books/coupled/_44c5_s1_p7_1.vqh"
-#include "books/coupled/_44c5_s2_p7_0.vqh"
-#include "books/coupled/_44c5_s2_p7_1.vqh"
-#include "books/coupled/_44c5_s3_p7_0.vqh"
-#include "books/coupled/_44c5_s3_p7_1.vqh"
-#include "books/coupled/_44c5_s0_p8_0.vqh"
-#include "books/coupled/_44c5_s0_p8_1.vqh"
-#include "books/coupled/_44c5_s1_p8_0.vqh"
-#include "books/coupled/_44c5_s1_p8_1.vqh"
-#include "books/coupled/_44c5_s2_p8_0.vqh"
-#include "books/coupled/_44c5_s2_p8_1.vqh"
-#include "books/coupled/_44c5_s3_p8_0.vqh"
-#include "books/coupled/_44c5_s3_p8_1.vqh"
-#include "books/coupled/_44c5_s0_p9_0.vqh"
-#include "books/coupled/_44c5_s0_p9_1.vqh"
-#include "books/coupled/_44c5_s0_p9_2.vqh"
-#include "books/coupled/_44c5_s1_p9_0.vqh"
-#include "books/coupled/_44c5_s1_p9_1.vqh"
-#include "books/coupled/_44c5_s1_p9_2.vqh"
-#include "books/coupled/_44c5_s2_p9_0.vqh"
-#include "books/coupled/_44c5_s2_p9_1.vqh"
-#include "books/coupled/_44c5_s2_p9_2.vqh"
-#include "books/coupled/_44c5_s3_p9_0.vqh"
-#include "books/coupled/_44c5_s3_p9_1.vqh"
-#include "books/coupled/_44c5_s3_p9_2.vqh"
-
-#include "books/coupled/_44c6_short.vqh"
-#include "books/coupled/_44c6_long.vqh"
-
-#include "books/coupled/_44c6_s0_p1_0.vqh"
-#include "books/coupled/_44c6_s0_p2_0.vqh"
-#include "books/coupled/_44c6_s1_p2_0.vqh"
-#include "books/coupled/_44c6_s0_p3_0.vqh"
-#include "books/coupled/_44c6_s0_p4_0.vqh"
-#include "books/coupled/_44c6_s1_p4_0.vqh"
-#include "books/coupled/_44c6_s0_p5_0.vqh"
-#include "books/coupled/_44c6_s0_p6_0.vqh"
-#include "books/coupled/_44c6_s1_p6_0.vqh"
-#include "books/coupled/_44c6_s2_p6_0.vqh"
-#include "books/coupled/_44c6_s0_p7_0.vqh"
-#include "books/coupled/_44c6_s0_p7_1.vqh"
-#include "books/coupled/_44c6_s1_p7_0.vqh"
-#include "books/coupled/_44c6_s1_p7_1.vqh"
-#include "books/coupled/_44c6_s2_p7_0.vqh"
-#include "books/coupled/_44c6_s2_p7_1.vqh"
-#include "books/coupled/_44c6_s3_p7_0.vqh"
-#include "books/coupled/_44c6_s3_p7_1.vqh"
-#include "books/coupled/_44c6_s0_p8_0.vqh"
-#include "books/coupled/_44c6_s0_p8_1.vqh"
-#include "books/coupled/_44c6_s1_p8_0.vqh"
-#include "books/coupled/_44c6_s1_p8_1.vqh"
-#include "books/coupled/_44c6_s2_p8_0.vqh"
-#include "books/coupled/_44c6_s2_p8_1.vqh"
-#include "books/coupled/_44c6_s3_p8_0.vqh"
-#include "books/coupled/_44c6_s3_p8_1.vqh"
-#include "books/coupled/_44c6_s0_p9_0.vqh"
-#include "books/coupled/_44c6_s0_p9_1.vqh"
-#include "books/coupled/_44c6_s0_p9_2.vqh"
-#include "books/coupled/_44c6_s1_p9_0.vqh"
-#include "books/coupled/_44c6_s1_p9_1.vqh"
-#include "books/coupled/_44c6_s1_p9_2.vqh"
-#include "books/coupled/_44c6_s2_p9_0.vqh"
-#include "books/coupled/_44c6_s2_p9_1.vqh"
-#include "books/coupled/_44c6_s2_p9_2.vqh"
-#include "books/coupled/_44c6_s3_p9_0.vqh"
-#include "books/coupled/_44c6_s3_p9_1.vqh"
-#include "books/coupled/_44c6_s3_p9_2.vqh"
-
-#include "books/coupled/_44c7_short.vqh"
-#include "books/coupled/_44c7_long.vqh"
-
-#include "books/coupled/_44c7_s0_p1_0.vqh"
-#include "books/coupled/_44c7_s0_p1_1.vqh"
-#include "books/coupled/_44c7_s0_p2_0.vqh"
-#include "books/coupled/_44c7_s0_p2_1.vqh"
-#include "books/coupled/_44c7_s0_p3_0.vqh"
-#include "books/coupled/_44c7_s0_p4_0.vqh"
-#include "books/coupled/_44c7_s0_p5_0.vqh"
-#include "books/coupled/_44c7_s0_p6_0.vqh"
-#include "books/coupled/_44c7_s0_p6_1.vqh"
-#include "books/coupled/_44c7_s0_p7_0.vqh"
-#include "books/coupled/_44c7_s0_p7_1.vqh"
-#include "books/coupled/_44c7_s0_p8_0.vqh"
-#include "books/coupled/_44c7_s0_p8_1.vqh"
-#include "books/coupled/_44c7_s0_p9_0.vqh"
-#include "books/coupled/_44c7_s0_p9_1.vqh"
-#include "books/coupled/_44c7_s0_p9_2.vqh"
-
-#include "books/coupled/_44c7_s0_p0_r0.vqh"
-#include "books/coupled/_44c7_s0_p0_r1.vqh"
-#include "books/coupled/_44c7_s0_pN_r0.vqh"
-#include "books/coupled/_44c7_s0_pN_r1.vqh"
-
-#include "books/coupled/_44c8_short.vqh"
-#include "books/coupled/_44c8_long.vqh"
-
-#include "books/coupled/_44c8_s0_p1_0.vqh"
-#include "books/coupled/_44c8_s0_p1_1.vqh"
-#include "books/coupled/_44c8_s0_p2_0.vqh"
-#include "books/coupled/_44c8_s0_p2_1.vqh"
-#include "books/coupled/_44c8_s0_p3_0.vqh"
-#include "books/coupled/_44c8_s0_p4_0.vqh"
-#include "books/coupled/_44c8_s0_p5_0.vqh"
-#include "books/coupled/_44c8_s0_p6_0.vqh"
-#include "books/coupled/_44c8_s0_p6_1.vqh"
-#include "books/coupled/_44c8_s0_p7_0.vqh"
-#include "books/coupled/_44c8_s0_p7_1.vqh"
-#include "books/coupled/_44c8_s0_p8_0.vqh"
-#include "books/coupled/_44c8_s0_p8_1.vqh"
-#include "books/coupled/_44c8_s0_p9_0.vqh"
-#include "books/coupled/_44c8_s0_p9_1.vqh"
-#include "books/coupled/_44c8_s0_p9_2.vqh"
-
-#include "books/coupled/_44c9_short.vqh"
-#include "books/coupled/_44c9_long.vqh"
-
-#include "books/coupled/_44c9_s0_p1_0.vqh"
-#include "books/coupled/_44c9_s0_p1_1.vqh"
-#include "books/coupled/_44c9_s0_p2_0.vqh"
-#include "books/coupled/_44c9_s0_p2_1.vqh"
-#include "books/coupled/_44c9_s0_p3_0.vqh"
-#include "books/coupled/_44c9_s0_p4_0.vqh"
-#include "books/coupled/_44c9_s0_p5_0.vqh"
-#include "books/coupled/_44c9_s0_p6_0.vqh"
-#include "books/coupled/_44c9_s0_p6_1.vqh"
-#include "books/coupled/_44c9_s0_p7_0.vqh"
-#include "books/coupled/_44c9_s0_p7_1.vqh"
-#include "books/coupled/_44c9_s0_p8_0.vqh"
-#include "books/coupled/_44c9_s0_p8_1.vqh"
-#include "books/coupled/_44c9_s0_p9_0.vqh"
-#include "books/coupled/_44c9_s0_p9_1.vqh"
-#include "books/coupled/_44c9_s0_p9_2.vqh"
-
-/* residue backfill is entered in the template array as if stereo
- backfill is not in use. It's up to vorbisenc to make the
- appropriate index adjustment */
-static vorbis_residue_template _residue_template_44_stereo[11]={
- /* mode 0; 64-ish */
- {{&_residue_44_low, &_residue_44_low},
- {&_huff_book__44c0_short,&_huff_book__44c0_long},
- /* mostly temporary entries pending training */
- { {{0},{0,0,&_44c0_s0_p1_0},{0,0,&_44c0_s0_p2_0},{0,0,&_44c0_s0_p3_0},
- {&_44c0_s0_p4_0,&_44c0_s0_p4_1},{0,0,&_44c0_s0_p5_0},{0,0,&_44c0_s0_p6_0},
- {&_44c0_s0_p7_0,&_44c0_s0_p7_1,&_44c0_s0_p7_2}}, /* lossless stereo */
- {{0},{0,0,&_44c0_s0_p1_0},{0,0,&_44c0_s0_p2_0},{0,0,&_44c0_s0_p3_0},
- {&_44c0_s0_p4_0,&_44c0_s0_p4_1},{0,0,&_44c0_s1_p5_0},{0,0,&_44c0_s1_p6_0},
- {&_44c0_s1_p7_0,&_44c0_s1_p7_1,&_44c0_s1_p7_2}}, /* 6dB (2.5) stereo */
- {{0},{0,0,&_44c0_s0_p1_0},{0,0,&_44c0_s0_p2_0},{0,0,&_44c0_s0_p3_0},
- {&_44c0_s0_p4_0,&_44c0_s0_p4_1},{0,0,&_44c0_s1_p5_0},{0,0,&_44c0_s2_p6_0},
- {&_44c0_s2_p7_0,&_44c0_s2_p7_1,&_44c0_s2_p7_2}}, /* 12dB (4.5) stereo */
- {{0},{0,0,&_44c0_s0_p1_0},{0,0,&_44c0_s0_p2_0},{0,0,&_44c0_s0_p3_0},
- {&_44c0_s0_p4_0,&_44c0_s0_p4_1},{0,0,&_44c0_s1_p5_0},{0,0,&_44c0_s2_p6_0},
- {&_44c0_s3_p7_0,&_44c0_s3_p7_1,&_44c0_s3_p7_2}}, /* 18dB (8.5) stereo */
- {{0}}, /* 24dB (16.5) stereo */
- },
- { {0}, /* lossless stereo */
- {0,0,0,0,0,&_44c0_s1_p5_s0,&_44c0_s1_p6_s0,&_44c0_s1_p7_s0}, /* 6dB (2.5) stereo */
- {0,0,0,0,0,0,&_44c0_s2_p6_s0,&_44c0_s2_p7_s0}, /* 12dB (4.5) stereo */
- {0,0,0,0,0,0,0,&_44c0_s3_p7_s0}, /* 18dB (8.5) stereo */
- {0},
- },
- {
- {{&_44c0_s0_p0_r0,&_44c0_s0_p0_r1},
- {&_44c0_s0_pN_r0,&_44c0_s0_pN_r1},
- {&_44c0_s0_pN_r0,&_44c0_s0_pN_r1},
- {&_44c0_s0_pN_r0,&_44c0_s0_pN_r1},
- {&_44c0_s0_pN_r0,&_44c0_s0_pN_r1},
- {&_44c0_s0_pN_r0,&_44c0_s0_pN_r1},
- {&_44c0_s0_pN_r0,&_44c0_s0_pN_r1},
- {&_44c0_s0_pN_r0,&_44c0_s0_pN_r1}}, /* lossless stereo */
- {{&_44c0_s0_p0_r0,&_44c0_s0_p0_r1},
- {&_44c0_s0_pN_r0,&_44c0_s0_pN_r1},
- {&_44c0_s0_pN_r0,&_44c0_s0_pN_r1},
- {&_44c0_s0_pN_r0,&_44c0_s0_pN_r1},
- {&_44c0_s0_pN_r0,&_44c0_s0_pN_r1},
- {&_44c0_s1_pS_r0,&_44c0_s1_pS_r1},
- {&_44c0_s0_pN_r0,&_44c0_s0_pN_r1},
- {&_44c0_s0_pN_r0,&_44c0_s0_pN_r1}}, /* 6dB (2.5) stereo */
- {{&_44c0_s0_p0_r0,&_44c0_s0_p0_r1},
- {&_44c0_s0_pN_r0,&_44c0_s0_pN_r1},
- {&_44c0_s0_pN_r0,&_44c0_s0_pN_r1},
- {&_44c0_s0_pN_r0,&_44c0_s0_pN_r1},
- {&_44c0_s0_pN_r0,&_44c0_s0_pN_r1},
- {&_44c0_s1_pS_r0,&_44c0_s1_pS_r1},
- {&_44c0_s1_pS_r0,&_44c0_s1_pS_r1},
- {&_44c0_s0_pN_r0,&_44c0_s0_pN_r1}}, /* 12dB (4.5) stereo */
- {{&_44c0_s0_p0_r0,&_44c0_s0_p0_r1},
- {&_44c0_s0_pN_r0,&_44c0_s0_pN_r1},
- {&_44c0_s0_pN_r0,&_44c0_s0_pN_r1},
- {&_44c0_s0_pN_r0,&_44c0_s0_pN_r1},
- {&_44c0_s0_pN_r0,&_44c0_s0_pN_r1},
- {&_44c0_s1_pS_r0,&_44c0_s1_pS_r1},
- {&_44c0_s1_pS_r0,&_44c0_s1_pS_r1},
- {&_44c0_s0_pN_r0,&_44c0_s0_pN_r1}}, /* 18dB (8.5) stereo */
- {{0}}, /* 24dB (16.5) stereo */
- },
- },
- /* mode 1; 80-ish */
- {{&_residue_44_low, &_residue_44_low},
- {&_huff_book__44c1_short,&_huff_book__44c1_long},
- /* mostly temporary entries pending training */
- { {{0},{0,0,&_44c1_s0_p1_0},{0,0,&_44c1_s0_p2_0},{0,0,&_44c1_s0_p3_0},
- {&_44c1_s0_p4_0,&_44c1_s0_p4_1},{0,0,&_44c1_s0_p5_0},{0,0,&_44c1_s0_p6_0},
- {&_44c1_s0_p7_0,&_44c1_s0_p7_1,&_44c1_s0_p7_2}}, /* lossless stereo */
- {{0},{0,0,&_44c1_s0_p1_0},{0,0,&_44c1_s0_p2_0},{0,0,&_44c1_s0_p3_0},
- {&_44c1_s0_p4_0,&_44c1_s0_p4_1},{0,0,&_44c1_s1_p5_0},{0,0,&_44c1_s1_p6_0},
- {&_44c1_s1_p7_0,&_44c1_s1_p7_1,&_44c1_s1_p7_2}}, /* 6dB (2.5) stereo */
- {{0},{0,0,&_44c1_s0_p1_0},{0,0,&_44c1_s0_p2_0},{0,0,&_44c1_s0_p3_0},
- {&_44c1_s0_p4_0,&_44c1_s0_p4_1},{0,0,&_44c1_s1_p5_0},{0,0,&_44c1_s2_p6_0},
- {&_44c1_s2_p7_0,&_44c1_s2_p7_1,&_44c1_s2_p7_2}}, /* 12dB (4.5) stereo */
- {{0},{0,0,&_44c1_s0_p1_0},{0,0,&_44c1_s0_p2_0},{0,0,&_44c1_s0_p3_0},
- {&_44c1_s0_p4_0,&_44c1_s0_p4_1},{0,0,&_44c1_s1_p5_0},{0,0,&_44c1_s2_p6_0},
- {&_44c1_s3_p7_0,&_44c1_s3_p7_1,&_44c1_s3_p7_2}}, /* 18dB (8.5) stereo */
- {{0}}, /* 24dB (16.5) stereo */
- },
- { {0}, /* lossless stereo */
- {0,0,0,0,0,&_44c0_s1_p5_s0,&_44c0_s1_p6_s0,&_44c0_s1_p7_s0}, /* 6dB (2.5) stereo */
- {0,0,0,0,0,0,&_44c0_s2_p6_s0,&_44c0_s2_p7_s0}, /* 12dB (4.5) stereo */
- {0,0,0,0,0,0,0,&_44c0_s3_p7_s0}, /* 18dB (8.5) stereo */
- {0},
- },
- {
- {{&_44c0_s0_p0_r0,&_44c0_s0_p0_r1},
- {&_44c0_s0_pN_r0,&_44c0_s0_pN_r1},
- {&_44c0_s0_pN_r0,&_44c0_s0_pN_r1},
- {&_44c0_s0_pN_r0,&_44c0_s0_pN_r1},
- {&_44c0_s0_pN_r0,&_44c0_s0_pN_r1},
- {&_44c0_s0_pN_r0,&_44c0_s0_pN_r1},
- {&_44c0_s0_pN_r0,&_44c0_s0_pN_r1},
- {&_44c0_s0_pN_r0,&_44c0_s0_pN_r1}}, /* lossless stereo */
- {{&_44c0_s0_p0_r0,&_44c0_s0_p0_r1},
- {&_44c0_s0_pN_r0,&_44c0_s0_pN_r1},
- {&_44c0_s0_pN_r0,&_44c0_s0_pN_r1},
- {&_44c0_s0_pN_r0,&_44c0_s0_pN_r1},
- {&_44c0_s0_pN_r0,&_44c0_s0_pN_r1},
- {&_44c0_s1_pS_r0,&_44c0_s1_pS_r1},
- {&_44c0_s0_pN_r0,&_44c0_s0_pN_r1},
- {&_44c0_s0_pN_r0,&_44c0_s0_pN_r1}}, /* 6dB (2.5) stereo */
- {{&_44c0_s0_p0_r0,&_44c0_s0_p0_r1},
- {&_44c0_s0_pN_r0,&_44c0_s0_pN_r1},
- {&_44c0_s0_pN_r0,&_44c0_s0_pN_r1},
- {&_44c0_s0_pN_r0,&_44c0_s0_pN_r1},
- {&_44c0_s0_pN_r0,&_44c0_s0_pN_r1},
- {&_44c0_s1_pS_r0,&_44c0_s1_pS_r1},
- {&_44c0_s1_pS_r0,&_44c0_s1_pS_r1},
- {&_44c0_s0_pN_r0,&_44c0_s0_pN_r1}}, /* 12dB (4.5) stereo */
- {{&_44c0_s0_p0_r0,&_44c0_s0_p0_r1},
- {&_44c0_s0_pN_r0,&_44c0_s0_pN_r1},
- {&_44c0_s0_pN_r0,&_44c0_s0_pN_r1},
- {&_44c0_s0_pN_r0,&_44c0_s0_pN_r1},
- {&_44c0_s0_pN_r0,&_44c0_s0_pN_r1},
- {&_44c0_s1_pS_r0,&_44c0_s1_pS_r1},
- {&_44c0_s1_pS_r0,&_44c0_s1_pS_r1},
- {&_44c0_s0_pN_r0,&_44c0_s0_pN_r1}}, /* 18dB (8.5) stereo */
- {{0}}, /* 24dB (16.5) stereo */
- },
- },
- /* mode 2; 96-ish */
- {{&_residue_44_low, &_residue_44_low},
- {&_huff_book__44c2_short,&_huff_book__44c2_long},
- /* mostly temporary entries pending training */
- { {{0},{0,0,&_44c2_s0_p1_0},{0,0,&_44c2_s0_p2_0},{0,0,&_44c2_s0_p3_0},
- {&_44c2_s0_p4_0,&_44c2_s0_p4_1},{0,0,&_44c2_s0_p5_0},{0,0,&_44c2_s0_p6_0},
- {&_44c2_s0_p7_0,&_44c2_s0_p7_1,&_44c2_s0_p7_2}}, /* lossless stereo */
- {{0},{0,0,&_44c2_s0_p1_0},{0,0,&_44c2_s0_p2_0},{0,0,&_44c2_s0_p3_0},
- {&_44c2_s0_p4_0,&_44c2_s0_p4_1},{0,0,&_44c2_s1_p5_0},{0,0,&_44c2_s1_p6_0},
- {&_44c2_s1_p7_0,&_44c2_s1_p7_1,&_44c2_s1_p7_2}}, /* 6dB (2.5) stereo */
- {{0},{0,0,&_44c2_s0_p1_0},{0,0,&_44c2_s0_p2_0},{0,0,&_44c2_s0_p3_0},
- {&_44c2_s0_p4_0,&_44c2_s0_p4_1},{0,0,&_44c2_s1_p5_0},{0,0,&_44c2_s2_p6_0},
- {&_44c2_s2_p7_0,&_44c2_s2_p7_1,&_44c2_s2_p7_2}}, /* 12dB (4.5) stereo */
- {{0},{0,0,&_44c2_s0_p1_0},{0,0,&_44c2_s0_p2_0},{0,0,&_44c2_s0_p3_0},
- {&_44c2_s0_p4_0,&_44c2_s0_p4_1},{0,0,&_44c2_s1_p5_0},{0,0,&_44c2_s2_p6_0},
- {&_44c2_s3_p7_0,&_44c2_s3_p7_1,&_44c2_s3_p7_2}}, /* 18dB (8.5) stereo */
- {{0}}, /* 24dB (16.5) stereo */
- },
- { {0}, /* lossless stereo */
- {0,0,0,0,0,&_44c0_s1_p5_s0,&_44c0_s1_p6_s0,&_44c0_s1_p7_s0}, /* 6dB (2.5) stereo */
- {0,0,0,0,0,0,&_44c0_s2_p6_s0,&_44c0_s2_p7_s0}, /* 12dB (4.5) stereo */
- {0,0,0,0,0,0,0,&_44c0_s3_p7_s0}, /* 18dB (8.5) stereo */
- {0},
- },
- {
- {{&_44c0_s0_p0_r0,&_44c0_s0_p0_r1},
- {&_44c0_s0_pN_r0,&_44c0_s0_pN_r1},
- {&_44c0_s0_pN_r0,&_44c0_s0_pN_r1},
- {&_44c0_s0_pN_r0,&_44c0_s0_pN_r1},
- {&_44c0_s0_pN_r0,&_44c0_s0_pN_r1},
- {&_44c0_s0_pN_r0,&_44c0_s0_pN_r1},
- {&_44c0_s0_pN_r0,&_44c0_s0_pN_r1},
- {&_44c0_s0_pN_r0,&_44c0_s0_pN_r1}}, /* lossless stereo */
- {{&_44c0_s0_p0_r0,&_44c0_s0_p0_r1},
- {&_44c0_s0_pN_r0,&_44c0_s0_pN_r1},
- {&_44c0_s0_pN_r0,&_44c0_s0_pN_r1},
- {&_44c0_s0_pN_r0,&_44c0_s0_pN_r1},
- {&_44c0_s0_pN_r0,&_44c0_s0_pN_r1},
- {&_44c0_s1_pS_r0,&_44c0_s1_pS_r1},
- {&_44c0_s0_pN_r0,&_44c0_s0_pN_r1},
- {&_44c0_s0_pN_r0,&_44c0_s0_pN_r1}}, /* 6dB (2.5) stereo */
- {{&_44c0_s0_p0_r0,&_44c0_s0_p0_r1},
- {&_44c0_s0_pN_r0,&_44c0_s0_pN_r1},
- {&_44c0_s0_pN_r0,&_44c0_s0_pN_r1},
- {&_44c0_s0_pN_r0,&_44c0_s0_pN_r1},
- {&_44c0_s0_pN_r0,&_44c0_s0_pN_r1},
- {&_44c0_s1_pS_r0,&_44c0_s1_pS_r1},
- {&_44c0_s1_pS_r0,&_44c0_s1_pS_r1},
- {&_44c0_s0_pN_r0,&_44c0_s0_pN_r1}}, /* 12dB (4.5) stereo */
- {{&_44c0_s0_p0_r0,&_44c0_s0_p0_r1},
- {&_44c0_s0_pN_r0,&_44c0_s0_pN_r1},
- {&_44c0_s0_pN_r0,&_44c0_s0_pN_r1},
- {&_44c0_s0_pN_r0,&_44c0_s0_pN_r1},
- {&_44c0_s0_pN_r0,&_44c0_s0_pN_r1},
- {&_44c0_s1_pS_r0,&_44c0_s1_pS_r1},
- {&_44c0_s1_pS_r0,&_44c0_s1_pS_r1},
- {&_44c0_s0_pN_r0,&_44c0_s0_pN_r1}}, /* 18dB (8.5) stereo */
- {{0}}, /* 24dB (16.5) stereo */
- },
- },
- /* mode 3; 112-ish */
- {{&_residue_44_low, &_residue_44_low},
- {&_huff_book__44c3_short,&_huff_book__44c3_long},
- /* mostly temporary entries pending training */
- { {{0},{0,0,&_44c3_s0_p1_0},{0,0,&_44c3_s0_p2_0},{0,0,&_44c3_s0_p3_0},
- {&_44c3_s0_p4_0,&_44c3_s0_p4_1},{0,0,&_44c3_s0_p5_0},{0,0,&_44c3_s0_p6_0},
- {&_44c3_s0_p7_0,&_44c3_s0_p7_1,&_44c3_s0_p7_2}}, /* lossless stereo */
- {{0},{0,0,&_44c3_s0_p1_0},{0,0,&_44c3_s0_p2_0},{0,0,&_44c3_s0_p3_0},
- {&_44c3_s0_p4_0,&_44c3_s0_p4_1},{0,0,&_44c3_s1_p5_0},{0,0,&_44c3_s1_p6_0},
- {&_44c3_s1_p7_0,&_44c3_s1_p7_1,&_44c3_s1_p7_2}}, /* 6dB (2.5) stereo */
- {{0},{0,0,&_44c3_s0_p1_0},{0,0,&_44c3_s0_p2_0},{0,0,&_44c3_s0_p3_0},
- {&_44c3_s0_p4_0,&_44c3_s0_p4_1},{0,0,&_44c3_s1_p5_0},{0,0,&_44c3_s2_p6_0},
- {&_44c3_s2_p7_0,&_44c3_s2_p7_1,&_44c3_s2_p7_2}}, /* 12dB (4.5) stereo */
- {{0},{0,0,&_44c3_s0_p1_0},{0,0,&_44c3_s0_p2_0},{0,0,&_44c3_s0_p3_0},
- {&_44c3_s0_p4_0,&_44c3_s0_p4_1},{0,0,&_44c3_s1_p5_0},{0,0,&_44c3_s2_p6_0},
- {&_44c3_s3_p7_0,&_44c3_s3_p7_1,&_44c3_s3_p7_2}}, /* 18dB (8.5) stereo */
- {{0}}, /* 24dB (16.5) stereo */
- },
- { {0}, /* lossless stereo */
- {0,0,0,0,0,&_44c0_s1_p5_s0,&_44c0_s1_p6_s0,&_44c0_s1_p7_s0}, /* 6dB (2.5) stereo */
- {0,0,0,0,0,0,&_44c0_s2_p6_s0,&_44c0_s2_p7_s0}, /* 12dB (4.5) stereo */
- {0,0,0,0,0,0,0,&_44c0_s3_p7_s0}, /* 18dB (8.5) stereo */
- {0},
- },
- {
- {{&_44c0_s0_p0_r0,&_44c0_s0_p0_r1},
- {&_44c0_s0_pN_r0,&_44c0_s0_pN_r1},
- {&_44c0_s0_pN_r0,&_44c0_s0_pN_r1},
- {&_44c0_s0_pN_r0,&_44c0_s0_pN_r1},
- {&_44c0_s0_pN_r0,&_44c0_s0_pN_r1},
- {&_44c0_s0_pN_r0,&_44c0_s0_pN_r1},
- {&_44c0_s0_pN_r0,&_44c0_s0_pN_r1},
- {&_44c0_s0_pN_r0,&_44c0_s0_pN_r1}}, /* lossless stereo */
- {{&_44c0_s0_p0_r0,&_44c0_s0_p0_r1},
- {&_44c0_s0_pN_r0,&_44c0_s0_pN_r1},
- {&_44c0_s0_pN_r0,&_44c0_s0_pN_r1},
- {&_44c0_s0_pN_r0,&_44c0_s0_pN_r1},
- {&_44c0_s0_pN_r0,&_44c0_s0_pN_r1},
- {&_44c0_s1_pS_r0,&_44c0_s1_pS_r1},
- {&_44c0_s0_pN_r0,&_44c0_s0_pN_r1},
- {&_44c0_s0_pN_r0,&_44c0_s0_pN_r1}}, /* 6dB (2.5) stereo */
- {{&_44c0_s0_p0_r0,&_44c0_s0_p0_r1},
- {&_44c0_s0_pN_r0,&_44c0_s0_pN_r1},
- {&_44c0_s0_pN_r0,&_44c0_s0_pN_r1},
- {&_44c0_s0_pN_r0,&_44c0_s0_pN_r1},
- {&_44c0_s0_pN_r0,&_44c0_s0_pN_r1},
- {&_44c0_s1_pS_r0,&_44c0_s1_pS_r1},
- {&_44c0_s1_pS_r0,&_44c0_s1_pS_r1},
- {&_44c0_s0_pN_r0,&_44c0_s0_pN_r1}}, /* 12dB (4.5) stereo */
- {{&_44c0_s0_p0_r0,&_44c0_s0_p0_r1},
- {&_44c0_s0_pN_r0,&_44c0_s0_pN_r1},
- {&_44c0_s0_pN_r0,&_44c0_s0_pN_r1},
- {&_44c0_s0_pN_r0,&_44c0_s0_pN_r1},
- {&_44c0_s0_pN_r0,&_44c0_s0_pN_r1},
- {&_44c0_s1_pS_r0,&_44c0_s1_pS_r1},
- {&_44c0_s1_pS_r0,&_44c0_s1_pS_r1},
- {&_44c0_s0_pN_r0,&_44c0_s0_pN_r1}}, /* 18dB (8.5) stereo */
- {{0}}, /* 24dB (16.5) stereo */
- },
- },
-
- /* mode 4; 128-ish */
- {{&_residue_44_mid, &_residue_44_mid},
- {&_huff_book__44c4_short,&_huff_book__44c4_long},
- {
- {{0},{0,0,&_44c4_s0_p1_0},{0,0,&_44c4_s0_p2_0},{0,0,&_44c4_s0_p3_0},
- {0,0,&_44c4_s0_p4_0},{0,0,&_44c4_s0_p5_0},{0,0,&_44c4_s0_p6_0},
- {&_44c4_s0_p7_0,&_44c4_s0_p7_1},{&_44c4_s0_p8_0,&_44c4_s0_p8_1},
- {&_44c4_s0_p9_0,&_44c4_s0_p9_1,&_44c4_s0_p9_2}},
- {{0},{0,0,&_44c4_s0_p1_0},{0,0,&_44c4_s1_p2_0},{0,0,&_44c4_s0_p3_0},
- {0,0,&_44c4_s1_p4_0},{0,0,&_44c4_s0_p5_0},{0,0,&_44c4_s1_p6_0},
- {&_44c4_s1_p7_0,&_44c4_s1_p7_1},{&_44c4_s1_p8_0,&_44c4_s1_p8_1},
- {&_44c4_s1_p9_0,&_44c4_s1_p9_1,&_44c4_s1_p9_2}},
- {{0},{0,0,&_44c4_s0_p1_0},{0,0,&_44c4_s1_p2_0},{0,0,&_44c4_s0_p3_0},
- {0,0,&_44c4_s1_p4_0},{0,0,&_44c4_s0_p5_0},{0,0,&_44c4_s2_p6_0},
- {&_44c4_s2_p7_0,&_44c4_s2_p7_1},{&_44c4_s2_p8_0,&_44c4_s2_p8_1},
- {&_44c4_s2_p9_0,&_44c4_s2_p9_1,&_44c4_s2_p9_2}},
- {{0},{0,0,&_44c4_s0_p1_0},{0,0,&_44c4_s1_p2_0},{0,0,&_44c4_s0_p3_0},
- {0,0,&_44c4_s1_p4_0},{0,0,&_44c4_s0_p5_0},{0,0,&_44c4_s2_p6_0},
- {&_44c4_s3_p7_0,&_44c4_s3_p7_1},{&_44c4_s3_p8_0,&_44c4_s3_p8_1},
- {&_44c4_s3_p9_0,&_44c4_s3_p9_1,&_44c4_s3_p9_2}},
- {{0}}, /* 24dB (16.5) stereo */
- },
-
- { {0}, /* lossless stereo */
- {0,0,&_44c4_s1_p2_s0,0,&_44c4_s1_p4_s0,0,&_44c4_s1_p6_s0,&_44c4_s1_p7_s0,
- &_44c4_s1_p8_s0,&_44c4_s1_p9_s0}, /* (2.5) stereo */
- {0,0,0,0,0,0,&_44c4_s2_p6_s0,&_44c4_s2_p7_s0,&_44c4_s2_p8_s0,
- &_44c4_s2_p9_s0}, /* (4.5) stereo */
- {0,0,0,0,0,0,0,&_44c4_s3_p9_s0,&_44c4_s3_p9_s0,&_44c4_s3_p9_s0}, /* (8.5) stereo */
- {0},
- },
- {
- {{&_44c4_s0_p0_r0,&_44c4_s0_p0_r1},
- {&_44c4_s0_pN_r0,&_44c4_s0_pN_r1},
- {&_44c4_s0_pN_r0,&_44c4_s0_pN_r1},
- {&_44c4_s0_pN_r0,&_44c4_s0_pN_r1},
- {&_44c4_s0_pN_r0,&_44c4_s0_pN_r1},
- {&_44c4_s0_pN_r0,&_44c4_s0_pN_r1},
- {&_44c4_s0_pN_r0,&_44c4_s0_pN_r1},
- {&_44c4_s0_pN_r0,&_44c4_s0_pN_r1},
- {&_44c4_s0_pN_r0,&_44c4_s0_pN_r1},
- {&_44c4_s0_pN_r0,&_44c4_s0_pN_r1}}, /* lossless stereo */
- {{&_44c4_s0_p0_r0,&_44c4_s0_p0_r1},
- {&_44c4_s0_pN_r0,&_44c4_s0_pN_r1},
- {&_44c4_s1_pS_r0,&_44c4_s1_pS_r1},
- {&_44c4_s0_pN_r0,&_44c4_s0_pN_r1},
- {&_44c4_s1_pS_r0,&_44c4_s1_pS_r1},
- {&_44c4_s0_pN_r0,&_44c4_s0_pN_r1},
- {&_44c4_s0_pN_r0,&_44c4_s0_pN_r1},
- {&_44c4_s0_pN_r0,&_44c4_s0_pN_r1},
- {&_44c4_s0_pN_r0,&_44c4_s0_pN_r1},
- {&_44c4_s0_pN_r0,&_44c4_s0_pN_r1}}, /* 6dB stereo */
- {{&_44c4_s0_p0_r0,&_44c4_s0_p0_r1},
- {&_44c4_s0_pN_r0,&_44c4_s0_pN_r1},
- {&_44c4_s1_pS_r0,&_44c4_s1_pS_r1},
- {&_44c4_s0_pN_r0,&_44c4_s0_pN_r1},
- {&_44c4_s1_pS_r0,&_44c4_s1_pS_r1},
- {&_44c4_s0_pN_r0,&_44c4_s0_pN_r1},
- {&_44c4_s1_pS_r0,&_44c4_s1_pS_r1},
- {&_44c4_s0_pN_r0,&_44c4_s0_pN_r1},
- {&_44c4_s0_pN_r0,&_44c4_s0_pN_r1},
- {&_44c4_s0_pN_r0,&_44c4_s0_pN_r1}}, /* 12dB stereo */
- {{&_44c4_s0_p0_r0,&_44c4_s0_p0_r1},
- {&_44c4_s0_pN_r0,&_44c4_s0_pN_r1},
- {&_44c4_s1_pS_r0,&_44c4_s1_pS_r1},
- {&_44c4_s0_pN_r0,&_44c4_s0_pN_r1},
- {&_44c4_s1_pS_r0,&_44c4_s1_pS_r1},
- {&_44c4_s0_pN_r0,&_44c4_s0_pN_r1},
- {&_44c4_s1_pS_r0,&_44c4_s1_pS_r1},
- {&_44c4_s0_pN_r0,&_44c4_s0_pN_r1},
- {&_44c4_s0_pN_r0,&_44c4_s0_pN_r1},
- {&_44c4_s0_pN_r0,&_44c4_s0_pN_r1}}, /* 18dB stereo */
- {{&_44c4_s0_p0_r0,&_44c4_s0_p0_r1},
- {&_44c4_s0_pN_r0,&_44c4_s0_pN_r1},
- {&_44c4_s1_pS_r0,&_44c4_s1_pS_r1},
- {&_44c4_s0_pN_r0,&_44c4_s0_pN_r1},
- {&_44c4_s1_pS_r0,&_44c4_s1_pS_r1},
- {&_44c4_s0_pN_r0,&_44c4_s0_pN_r1},
- {&_44c4_s1_pS_r0,&_44c4_s1_pS_r1},
- {&_44c4_s0_pN_r0,&_44c4_s0_pN_r1},
- {&_44c4_s0_pN_r0,&_44c4_s0_pN_r1},
- {&_44c4_s0_pN_r0,&_44c4_s0_pN_r1}}, /* 24dB stereo */
- },
- },
- /* mode 5; 160-ish */
- {{&_residue_44_mid, &_residue_44_mid},
- {&_huff_book__44c5_short,&_huff_book__44c5_long},
- {
- {{0},{0,0,&_44c5_s0_p1_0},{0,0,&_44c5_s0_p2_0},{0,0,&_44c5_s0_p3_0},
- {0,0,&_44c5_s0_p4_0},{0,0,&_44c5_s0_p5_0},{0,0,&_44c5_s0_p6_0},
- {&_44c5_s0_p7_0,&_44c5_s0_p7_1},{&_44c5_s0_p8_0,&_44c5_s0_p8_1},
- {&_44c5_s0_p9_0,&_44c5_s0_p9_1,&_44c5_s0_p9_2}},
- {{0},{0,0,&_44c5_s0_p1_0},{0,0,&_44c5_s1_p2_0},{0,0,&_44c5_s0_p3_0},
- {0,0,&_44c5_s1_p4_0},{0,0,&_44c5_s0_p5_0},{0,0,&_44c5_s1_p6_0},
- {&_44c5_s1_p7_0,&_44c5_s1_p7_1},{&_44c5_s1_p8_0,&_44c5_s1_p8_1},
- {&_44c5_s1_p9_0,&_44c5_s1_p9_1,&_44c5_s1_p9_2}},
- {{0},{0,0,&_44c5_s0_p1_0},{0,0,&_44c5_s1_p2_0},{0,0,&_44c5_s0_p3_0},
- {0,0,&_44c5_s1_p4_0},{0,0,&_44c5_s0_p5_0},{0,0,&_44c5_s2_p6_0},
- {&_44c5_s2_p7_0,&_44c5_s2_p7_1},{&_44c5_s2_p8_0,&_44c5_s2_p8_1},
- {&_44c5_s2_p9_0,&_44c5_s2_p9_1,&_44c5_s2_p9_2}},
- {{0},{0,0,&_44c5_s0_p1_0},{0,0,&_44c5_s1_p2_0},{0,0,&_44c5_s0_p3_0},
- {0,0,&_44c5_s1_p4_0},{0,0,&_44c5_s0_p5_0},{0,0,&_44c5_s2_p6_0},
- {&_44c5_s3_p7_0,&_44c5_s3_p7_1},{&_44c5_s3_p8_0,&_44c5_s3_p8_1},
- {&_44c5_s3_p9_0,&_44c5_s3_p9_1,&_44c5_s3_p9_2}},
- {{0}}, /* 24dB (16.5) stereo */
- },
-
- { {0}, /* lossless stereo */
- {0,0,&_44c4_s1_p2_s0,0,&_44c4_s1_p4_s0,0,&_44c4_s1_p6_s0,&_44c4_s1_p7_s0,
- &_44c4_s1_p8_s0,&_44c4_s1_p9_s0}, /* (2.5) stereo */
- {0,0,0,0,0,0,&_44c4_s2_p6_s0,&_44c4_s2_p7_s0,&_44c4_s2_p8_s0,
- &_44c4_s2_p9_s0}, /* (4.5) stereo */
- {0,0,0,0,0,0,0,&_44c4_s3_p9_s0,&_44c4_s3_p9_s0,&_44c4_s3_p9_s0}, /* (8.5) stereo */
- {0},
- },
- {
- {{&_44c4_s0_p0_r0,&_44c4_s0_p0_r1},
- {&_44c4_s0_pN_r0,&_44c4_s0_pN_r1},
- {&_44c4_s0_pN_r0,&_44c4_s0_pN_r1},
- {&_44c4_s0_pN_r0,&_44c4_s0_pN_r1},
- {&_44c4_s0_pN_r0,&_44c4_s0_pN_r1},
- {&_44c4_s0_pN_r0,&_44c4_s0_pN_r1},
- {&_44c4_s0_pN_r0,&_44c4_s0_pN_r1},
- {&_44c4_s0_pN_r0,&_44c4_s0_pN_r1},
- {&_44c4_s0_pN_r0,&_44c4_s0_pN_r1},
- {&_44c4_s0_pN_r0,&_44c4_s0_pN_r1}}, /* lossless stereo */
- {{&_44c4_s0_p0_r0,&_44c4_s0_p0_r1},
- {&_44c4_s0_pN_r0,&_44c4_s0_pN_r1},
- {&_44c4_s1_pS_r0,&_44c4_s1_pS_r1},
- {&_44c4_s0_pN_r0,&_44c4_s0_pN_r1},
- {&_44c4_s1_pS_r0,&_44c4_s1_pS_r1},
- {&_44c4_s0_pN_r0,&_44c4_s0_pN_r1},
- {&_44c4_s0_pN_r0,&_44c4_s0_pN_r1},
- {&_44c4_s0_pN_r0,&_44c4_s0_pN_r1},
- {&_44c4_s0_pN_r0,&_44c4_s0_pN_r1},
- {&_44c4_s0_pN_r0,&_44c4_s0_pN_r1}}, /* 6dB stereo */
- {{&_44c4_s0_p0_r0,&_44c4_s0_p0_r1},
- {&_44c4_s0_pN_r0,&_44c4_s0_pN_r1},
- {&_44c4_s1_pS_r0,&_44c4_s1_pS_r1},
- {&_44c4_s0_pN_r0,&_44c4_s0_pN_r1},
- {&_44c4_s1_pS_r0,&_44c4_s1_pS_r1},
- {&_44c4_s0_pN_r0,&_44c4_s0_pN_r1},
- {&_44c4_s1_pS_r0,&_44c4_s1_pS_r1},
- {&_44c4_s0_pN_r0,&_44c4_s0_pN_r1},
- {&_44c4_s0_pN_r0,&_44c4_s0_pN_r1},
- {&_44c4_s0_pN_r0,&_44c4_s0_pN_r1}}, /* 12dB stereo */
- {{&_44c4_s0_p0_r0,&_44c4_s0_p0_r1},
- {&_44c4_s0_pN_r0,&_44c4_s0_pN_r1},
- {&_44c4_s1_pS_r0,&_44c4_s1_pS_r1},
- {&_44c4_s0_pN_r0,&_44c4_s0_pN_r1},
- {&_44c4_s1_pS_r0,&_44c4_s1_pS_r1},
- {&_44c4_s0_pN_r0,&_44c4_s0_pN_r1},
- {&_44c4_s1_pS_r0,&_44c4_s1_pS_r1},
- {&_44c4_s0_pN_r0,&_44c4_s0_pN_r1},
- {&_44c4_s0_pN_r0,&_44c4_s0_pN_r1},
- {&_44c4_s0_pN_r0,&_44c4_s0_pN_r1}}, /* 18dB stereo */
- {{&_44c4_s0_p0_r0,&_44c4_s0_p0_r1},
- {&_44c4_s0_pN_r0,&_44c4_s0_pN_r1},
- {&_44c4_s1_pS_r0,&_44c4_s1_pS_r1},
- {&_44c4_s0_pN_r0,&_44c4_s0_pN_r1},
- {&_44c4_s1_pS_r0,&_44c4_s1_pS_r1},
- {&_44c4_s0_pN_r0,&_44c4_s0_pN_r1},
- {&_44c4_s1_pS_r0,&_44c4_s1_pS_r1},
- {&_44c4_s0_pN_r0,&_44c4_s0_pN_r1},
- {&_44c4_s0_pN_r0,&_44c4_s0_pN_r1},
- {&_44c4_s0_pN_r0,&_44c4_s0_pN_r1}}, /* 24dB stereo */
- },
- },
- /* mode 6; 192-ish */
- {{&_residue_44_mid, &_residue_44_mid},
- {&_huff_book__44c6_short,&_huff_book__44c6_long},
- {
- {{0},{0,0,&_44c6_s0_p1_0},{0,0,&_44c6_s0_p2_0},{0,0,&_44c6_s0_p3_0},
- {0,0,&_44c6_s0_p4_0},{0,0,&_44c6_s0_p5_0},{0,0,&_44c6_s0_p6_0},
- {&_44c6_s0_p7_0,&_44c6_s0_p7_1},{&_44c6_s0_p8_0,&_44c6_s0_p8_1},
- {&_44c6_s0_p9_0,&_44c6_s0_p9_1,&_44c6_s0_p9_2}},
- {{0},{0,0,&_44c6_s0_p1_0},{0,0,&_44c6_s1_p2_0},{0,0,&_44c6_s0_p3_0},
- {0,0,&_44c6_s1_p4_0},{0,0,&_44c6_s0_p5_0},{0,0,&_44c6_s1_p6_0},
- {&_44c6_s1_p7_0,&_44c6_s1_p7_1},{&_44c6_s1_p8_0,&_44c6_s1_p8_1},
- {&_44c6_s1_p9_0,&_44c6_s1_p9_1,&_44c6_s1_p9_2}},
- {{0},{0,0,&_44c6_s0_p1_0},{0,0,&_44c6_s1_p2_0},{0,0,&_44c6_s0_p3_0},
- {0,0,&_44c6_s1_p4_0},{0,0,&_44c6_s0_p5_0},{0,0,&_44c6_s2_p6_0},
- {&_44c6_s2_p7_0,&_44c6_s2_p7_1},{&_44c6_s2_p8_0,&_44c6_s2_p8_1},
- {&_44c6_s2_p9_0,&_44c6_s2_p9_1,&_44c6_s2_p9_2}},
- {{0},{0,0,&_44c6_s0_p1_0},{0,0,&_44c6_s1_p2_0},{0,0,&_44c6_s0_p3_0},
- {0,0,&_44c6_s1_p4_0},{0,0,&_44c6_s0_p5_0},{0,0,&_44c6_s2_p6_0},
- {&_44c6_s3_p7_0,&_44c6_s3_p7_1},{&_44c6_s3_p8_0,&_44c6_s3_p8_1},
- {&_44c6_s3_p9_0,&_44c6_s3_p9_1,&_44c6_s3_p9_2}},
- {{0}}, /* 24dB (16.5) stereo */
- },
-
- { {0}, /* lossless stereo */
- {0,0,&_44c4_s1_p2_s0,0,&_44c4_s1_p4_s0,0,&_44c4_s1_p6_s0,&_44c4_s1_p7_s0,
- &_44c4_s1_p8_s0,&_44c4_s1_p9_s0}, /* (2.5) stereo */
- {0,0,0,0,0,0,&_44c4_s2_p6_s0,&_44c4_s2_p7_s0,&_44c4_s2_p8_s0,
- &_44c4_s2_p9_s0}, /* (4.5) stereo */
- {0,0,0,0,0,0,0,&_44c4_s3_p9_s0,&_44c4_s3_p9_s0,&_44c4_s3_p9_s0}, /* (8.5) stereo */
- {0},
- },
- {
- {{&_44c4_s0_p0_r0,&_44c4_s0_p0_r1},
- {&_44c4_s0_pN_r0,&_44c4_s0_pN_r1},
- {&_44c4_s0_pN_r0,&_44c4_s0_pN_r1},
- {&_44c4_s0_pN_r0,&_44c4_s0_pN_r1},
- {&_44c4_s0_pN_r0,&_44c4_s0_pN_r1},
- {&_44c4_s0_pN_r0,&_44c4_s0_pN_r1},
- {&_44c4_s0_pN_r0,&_44c4_s0_pN_r1},
- {&_44c4_s0_pN_r0,&_44c4_s0_pN_r1},
- {&_44c4_s0_pN_r0,&_44c4_s0_pN_r1},
- {&_44c4_s0_pN_r0,&_44c4_s0_pN_r1}}, /* lossless stereo */
- {{&_44c4_s0_p0_r0,&_44c4_s0_p0_r1},
- {&_44c4_s0_pN_r0,&_44c4_s0_pN_r1},
- {&_44c4_s1_pS_r0,&_44c4_s1_pS_r1},
- {&_44c4_s0_pN_r0,&_44c4_s0_pN_r1},
- {&_44c4_s1_pS_r0,&_44c4_s1_pS_r1},
- {&_44c4_s0_pN_r0,&_44c4_s0_pN_r1},
- {&_44c4_s0_pN_r0,&_44c4_s0_pN_r1},
- {&_44c4_s0_pN_r0,&_44c4_s0_pN_r1},
- {&_44c4_s0_pN_r0,&_44c4_s0_pN_r1},
- {&_44c4_s0_pN_r0,&_44c4_s0_pN_r1}}, /* 6dB stereo */
- {{&_44c4_s0_p0_r0,&_44c4_s0_p0_r1},
- {&_44c4_s0_pN_r0,&_44c4_s0_pN_r1},
- {&_44c4_s1_pS_r0,&_44c4_s1_pS_r1},
- {&_44c4_s0_pN_r0,&_44c4_s0_pN_r1},
- {&_44c4_s1_pS_r0,&_44c4_s1_pS_r1},
- {&_44c4_s0_pN_r0,&_44c4_s0_pN_r1},
- {&_44c4_s1_pS_r0,&_44c4_s1_pS_r1},
- {&_44c4_s0_pN_r0,&_44c4_s0_pN_r1},
- {&_44c4_s0_pN_r0,&_44c4_s0_pN_r1},
- {&_44c4_s0_pN_r0,&_44c4_s0_pN_r1}}, /* 12dB stereo */
- {{&_44c4_s0_p0_r0,&_44c4_s0_p0_r1},
- {&_44c4_s0_pN_r0,&_44c4_s0_pN_r1},
- {&_44c4_s1_pS_r0,&_44c4_s1_pS_r1},
- {&_44c4_s0_pN_r0,&_44c4_s0_pN_r1},
- {&_44c4_s1_pS_r0,&_44c4_s1_pS_r1},
- {&_44c4_s0_pN_r0,&_44c4_s0_pN_r1},
- {&_44c4_s1_pS_r0,&_44c4_s1_pS_r1},
- {&_44c4_s0_pN_r0,&_44c4_s0_pN_r1},
- {&_44c4_s0_pN_r0,&_44c4_s0_pN_r1},
- {&_44c4_s0_pN_r0,&_44c4_s0_pN_r1}}, /* 18dB stereo */
- {{&_44c4_s0_p0_r0,&_44c4_s0_p0_r1},
- {&_44c4_s0_pN_r0,&_44c4_s0_pN_r1},
- {&_44c4_s1_pS_r0,&_44c4_s1_pS_r1},
- {&_44c4_s0_pN_r0,&_44c4_s0_pN_r1},
- {&_44c4_s1_pS_r0,&_44c4_s1_pS_r1},
- {&_44c4_s0_pN_r0,&_44c4_s0_pN_r1},
- {&_44c4_s1_pS_r0,&_44c4_s1_pS_r1},
- {&_44c4_s0_pN_r0,&_44c4_s0_pN_r1},
- {&_44c4_s0_pN_r0,&_44c4_s0_pN_r1},
- {&_44c4_s0_pN_r0,&_44c4_s0_pN_r1}}, /* 24dB stereo */
- },
- },
-
- /* mode 7; 224-ish */
- {{&_residue_44_high, &_residue_44_high},
- {&_huff_book__44c7_short,&_huff_book__44c7_long},
- { {{0},{&_44c7_s0_p1_0,&_44c7_s0_p1_1},
- {&_44c7_s0_p2_0,&_44c7_s0_p2_1},
- {0,0,&_44c7_s0_p3_0},{0,0,&_44c7_s0_p4_0},{0,0,&_44c7_s0_p5_0},
- {&_44c7_s0_p6_0,&_44c7_s0_p6_1},
- {&_44c7_s0_p7_0,&_44c7_s0_p7_1},
- {&_44c7_s0_p8_0,&_44c7_s0_p8_1},
- {&_44c7_s0_p9_0,&_44c7_s0_p9_1,&_44c7_s0_p9_2}},
- {{0}}, /* 6dB (2.5) stereo */
- {{0}}, /* 12dB (4.5) stereo */
- {{0}}, /* 18dB (8.5) stereo */
- {{0}}, /* 24dB (16.5) stereo */
- },
- { {0}, /* lossless stereo */
- {0}, /* 6dB (2.5) stereo */
- {0}, /* 12dB (4.5) stereo */
- {0}, /* 18dB (8.5) stereo */
- {0},
- /*{0,0,0,0,0,0,0,0,&44c0_s4_s8,&44c0_s4_s9},*/ /* 24dB (16.5) stereo */
- },
- {
- {{&_44c7_s0_p0_r0,&_44c7_s0_p0_r1},
- {&_44c7_s0_pN_r0,&_44c7_s0_pN_r1},
- {&_44c7_s0_pN_r0,&_44c7_s0_pN_r1},
- {&_44c7_s0_pN_r0,&_44c7_s0_pN_r1},
- {&_44c7_s0_pN_r0,&_44c7_s0_pN_r1},
- {&_44c7_s0_pN_r0,&_44c7_s0_pN_r1},
- {&_44c7_s0_pN_r0,&_44c7_s0_pN_r1},
- {&_44c7_s0_pN_r0,&_44c7_s0_pN_r1},
- {&_44c7_s0_pN_r0,&_44c7_s0_pN_r1},
- {&_44c7_s0_pN_r0,&_44c7_s0_pN_r1}}, /* lossless stereo */
- {{0}}, /* 6dB (2.5) stereo */
- {{0}}, /* 12dB (4.5) stereo */
- {{0}}, /* 18dB (8.5) stereo */
- /*{{&44c0_s0_r0_0,&44c0_s0_r0_1},{&44c0_s0_r1_0,&44c0_s0_r1_1},
- {&44c0_s0_r2_0,&44c0_s0_r2_1},{&44c0_s0_r3_0,&44c0_s0_r3_1},
- {&44c0_s0_r4_0,&44c0_s0_r4_1},{&44c0_s1_r5_0,&44c0_s1_r5_1},
- {&44c0_s1_r6_0,&44c0_s1_r6_1},{&44c0_s2_r7_0,&44c0_s2_r7_1},
- {&44c0_s4_r8_0,&44c0_s3_r8_1},{&44c0_s4_r9_0,&44c0_s3_r9_1}},*/ /* 18dB (8.5) stereo */
- {{0}}, /* 24dB (16.5) stereo */
- },
- },
-
- /* mode 8; 256-ish */
- {{&_residue_44_high, &_residue_44_high},
- {&_huff_book__44c8_short,&_huff_book__44c8_long},
- { {{0},{&_44c8_s0_p1_0,&_44c8_s0_p1_1},
- {&_44c8_s0_p2_0,&_44c8_s0_p2_1},
- {0,0,&_44c8_s0_p3_0},{0,0,&_44c8_s0_p4_0},{0,0,&_44c8_s0_p5_0},
- {&_44c8_s0_p6_0,&_44c8_s0_p6_1},
- {&_44c8_s0_p7_0,&_44c8_s0_p7_1},
- {&_44c8_s0_p8_0,&_44c8_s0_p8_1},
- {&_44c8_s0_p9_0,&_44c8_s0_p9_1,&_44c8_s0_p9_2}},
- {{0}}, /* 6dB (2.5) stereo */
- {{0}}, /* 12dB (4.5) stereo */
- {{0}}, /* 18dB (8.5) stereo */
- {{0}}, /* 24dB (16.5) stereo */
- },
- { {0}, /* lossless stereo */
- {0}, /* 6dB (2.5) stereo */
- {0}, /* 12dB (4.5) stereo */
- {0}, /* 18dB (8.5) stereo */
- {0},
- /*{0,0,0,0,0,0,0,0,&44c0_s4_s8,&44c0_s4_s9},*/ /* 24dB (16.5) stereo */
- },
- {
- {{&_44c7_s0_p0_r0,&_44c7_s0_p0_r1},
- {&_44c7_s0_pN_r0,&_44c7_s0_pN_r1},
- {&_44c7_s0_pN_r0,&_44c7_s0_pN_r1},
- {&_44c7_s0_pN_r0,&_44c7_s0_pN_r1},
- {&_44c7_s0_pN_r0,&_44c7_s0_pN_r1},
- {&_44c7_s0_pN_r0,&_44c7_s0_pN_r1},
- {&_44c7_s0_pN_r0,&_44c7_s0_pN_r1},
- {&_44c7_s0_pN_r0,&_44c7_s0_pN_r1},
- {&_44c7_s0_pN_r0,&_44c7_s0_pN_r1},
- {&_44c7_s0_pN_r0,&_44c7_s0_pN_r1}}, /* lossless stereo */
- {{0}}, /* 6dB (2.5) stereo */
- {{0}}, /* 12dB (4.5) stereo */
- {{0}}, /* 18dB (8.5) stereo */
- /*{{&44c0_s0_r0_0,&44c0_s0_r0_1},{&44c0_s0_r1_0,&44c0_s0_r1_1},
- {&44c0_s0_r2_0,&44c0_s0_r2_1},{&44c0_s0_r3_0,&44c0_s0_r3_1},
- {&44c0_s0_r4_0,&44c0_s0_r4_1},{&44c0_s1_r5_0,&44c0_s1_r5_1},
- {&44c0_s1_r6_0,&44c0_s1_r6_1},{&44c0_s2_r7_0,&44c0_s2_r7_1},
- {&44c0_s4_r8_0,&44c0_s3_r8_1},{&44c0_s4_r9_0,&44c0_s3_r9_1}},*/ /* 18dB (8.5) stereo */
- {{0}}, /* 24dB (16.5) stereo */
- },
- },
- /* mode 9; 320-ish */
- {{&_residue_44_high, &_residue_44_high},
- {&_huff_book__44c9_short,&_huff_book__44c9_long},
- { {{0},{&_44c9_s0_p1_0,&_44c9_s0_p1_1},
- {&_44c9_s0_p2_0,&_44c9_s0_p2_1},
- {0,0,&_44c9_s0_p3_0},{0,0,&_44c9_s0_p4_0},{0,0,&_44c9_s0_p5_0},
- {&_44c9_s0_p6_0,&_44c9_s0_p6_1},
- {&_44c9_s0_p7_0,&_44c9_s0_p7_1},
- {&_44c9_s0_p8_0,&_44c9_s0_p8_1},
- {&_44c9_s0_p9_0,&_44c9_s0_p9_1,&_44c9_s0_p9_2}},
- {{0}}, /* 6dB (2.5) stereo */
- {{0}}, /* 12dB (4.5) stereo */
- {{0}}, /* 18dB (8.5) stereo */
- {{0}}, /* 24dB (16.5) stereo */
- },
- { {0}, /* lossless stereo */
- {0}, /* 6dB (2.5) stereo */
- {0}, /* 12dB (4.5) stereo */
- {0}, /* 18dB (8.5) stereo */
- {0},
- /*{0,0,0,0,0,0,0,0,&44c0_s4_s8,&44c0_s4_s9},*/ /* 24dB (16.5) stereo */
- },
- {
- {{&_44c7_s0_p0_r0,&_44c7_s0_p0_r1},
- {&_44c7_s0_pN_r0,&_44c7_s0_pN_r1},
- {&_44c7_s0_pN_r0,&_44c7_s0_pN_r1},
- {&_44c7_s0_pN_r0,&_44c7_s0_pN_r1},
- {&_44c7_s0_pN_r0,&_44c7_s0_pN_r1},
- {&_44c7_s0_pN_r0,&_44c7_s0_pN_r1},
- {&_44c7_s0_pN_r0,&_44c7_s0_pN_r1},
- {&_44c7_s0_pN_r0,&_44c7_s0_pN_r1},
- {&_44c7_s0_pN_r0,&_44c7_s0_pN_r1},
- {&_44c7_s0_pN_r0,&_44c7_s0_pN_r1}}, /* lossless stereo */
- {{0}}, /* 6dB (2.5) stereo */
- {{0}}, /* 12dB (4.5) stereo */
- {{0}}, /* 18dB (8.5) stereo */
- /*{{&44c0_s0_r0_0,&44c0_s0_r0_1},{&44c0_s0_r1_0,&44c0_s0_r1_1},
- {&44c0_s0_r2_0,&44c0_s0_r2_1},{&44c0_s0_r3_0,&44c0_s0_r3_1},
- {&44c0_s0_r4_0,&44c0_s0_r4_1},{&44c0_s1_r5_0,&44c0_s1_r5_1},
- {&44c0_s1_r6_0,&44c0_s1_r6_1},{&44c0_s2_r7_0,&44c0_s2_r7_1},
- {&44c0_s4_r8_0,&44c0_s3_r8_1},{&44c0_s4_r9_0,&44c0_s3_r9_1}},*/ /* 18dB (8.5) stereo */
- {{0}}, /* 24dB (16.5) stereo */
- },
- }
-
-};
-
-#include "books/uncoupled/_44u0_p1_0.vqh"
-#include "books/uncoupled/_44u0_p2_0.vqh"
-#include "books/uncoupled/_44u0_p3_0.vqh"
-#include "books/uncoupled/_44u0_p4_0.vqh"
-#include "books/uncoupled/_44u0_p4_1.vqh"
-#include "books/uncoupled/_44u0_p5_0.vqh"
-#include "books/uncoupled/_44u0_p6_0.vqh"
-#include "books/uncoupled/_44u0_p7_0.vqh"
-#include "books/uncoupled/_44u0_p7_1.vqh"
-#include "books/uncoupled/_44u0_p7_2.vqh"
-
-#include "books/uncoupled/_44u0_p0_r0.vqh"
-#include "books/uncoupled/_44u0_p1_r0.vqh"
-
-#include "books/uncoupled/_44u0_p0_r1.vqh"
-#include "books/uncoupled/_44u0_p1_r1.vqh"
-
-#include "books/uncoupled/_44u4_p1_0.vqh"
-#include "books/uncoupled/_44u4_p2_0.vqh"
-#include "books/uncoupled/_44u4_p3_0.vqh"
-#include "books/uncoupled/_44u4_p4_0.vqh"
-#include "books/uncoupled/_44u4_p5_0.vqh"
-#include "books/uncoupled/_44u4_p6_0.vqh"
-#include "books/uncoupled/_44u4_p7_0.vqh"
-#include "books/uncoupled/_44u4_p7_1.vqh"
-#include "books/uncoupled/_44u4_p8_0.vqh"
-#include "books/uncoupled/_44u4_p8_1.vqh"
-#include "books/uncoupled/_44u4_p9_0.vqh"
-#include "books/uncoupled/_44u4_p9_1.vqh"
-#include "books/uncoupled/_44u4_p9_2.vqh"
-
-#include "books/uncoupled/_44u4_p0_r0.vqh"
-#include "books/uncoupled/_44u4_p1_r0.vqh"
-
-#include "books/uncoupled/_44u4_p0_r1.vqh"
-#include "books/uncoupled/_44u4_p1_r1.vqh"
-
-#include "books/uncoupled/_44u7_p1_0.vqh"
-#include "books/uncoupled/_44u7_p2_0.vqh"
-#include "books/uncoupled/_44u7_p2_1.vqh"
-#include "books/uncoupled/_44u7_p3_0.vqh"
-#include "books/uncoupled/_44u7_p4_0.vqh"
-#include "books/uncoupled/_44u7_p5_0.vqh"
-#include "books/uncoupled/_44u7_p6_0.vqh"
-#include "books/uncoupled/_44u7_p7_0.vqh"
-#include "books/uncoupled/_44u7_p7_1.vqh"
-#include "books/uncoupled/_44u7_p8_0.vqh"
-#include "books/uncoupled/_44u7_p8_1.vqh"
-#include "books/uncoupled/_44u7_p9_0.vqh"
-#include "books/uncoupled/_44u7_p9_1.vqh"
-#include "books/uncoupled/_44u7_p9_2.vqh"
-
-#include "books/uncoupled/_44u7_p0_r0.vqh"
-#include "books/uncoupled/_44u7_p1_r0.vqh"
-
-#include "books/uncoupled/_44u7_p0_r1.vqh"
-#include "books/uncoupled/_44u7_p1_r1.vqh"
-
-
-static vorbis_residue_template _residue_template_44_uncoupled[11]={
- /* mode 0; 40/c-ish */
- {{&_residue_44_low_un, &_residue_44_low_un},
- {&_huff_book__44c0_short,&_huff_book__44c0_long},
- { {{0},
- {0,0,&_44u0_p1_0},
- {0,0,&_44u0_p2_0},
- {0,0,&_44u0_p3_0},
- {&_44u0_p4_0,&_44u0_p4_1},
- {0,0,&_44u0_p5_0},
- {0,0,&_44u0_p6_0},
- {&_44u0_p7_0,&_44u0_p7_1,&_44u0_p7_2}},
- },
- { {0} }, /* no stereo backfill in uncoupled modes */
- { {{&_44u0_p0_r0,&_44u0_p0_r1},
- {&_44u0_p1_r0,&_44u0_p1_r1},
- {&_44u0_p1_r0,&_44u0_p1_r1},
- {&_44u0_p1_r0,&_44u0_p1_r1},
- {&_44u0_p1_r0,&_44u0_p1_r1},
- {&_44u0_p1_r0,&_44u0_p1_r1},
- {&_44u0_p1_r0,&_44u0_p1_r1},
- {&_44u0_p1_r0,&_44u0_p1_r1}},
- }
- },
- /* mode 1; 50-ish */
- {{&_residue_44_low_un, &_residue_44_low_un},
- {&_huff_book__44c1_short,&_huff_book__44c1_long},
- { {{0},
- {0,0,&_44u0_p1_0},
- {0,0,&_44u0_p2_0},
- {0,0,&_44u0_p3_0},
- {&_44u0_p4_0,&_44u0_p4_1},
- {0,0,&_44u0_p5_0},
- {0,0,&_44u0_p6_0},
- {&_44u0_p7_0,&_44u0_p7_1,&_44u0_p7_2}},
- },
- { {0} }, /* no stereo backfill in uncoupled modes */
- { {{&_44u0_p0_r0,&_44u0_p0_r1},
- {&_44u0_p1_r0,&_44u0_p1_r1},
- {&_44u0_p1_r0,&_44u0_p1_r1},
- {&_44u0_p1_r0,&_44u0_p1_r1},
- {&_44u0_p1_r0,&_44u0_p1_r1},
- {&_44u0_p1_r0,&_44u0_p1_r1},
- {&_44u0_p1_r0,&_44u0_p1_r1},
- {&_44u0_p1_r0,&_44u0_p1_r1}},
- }
- },
- /* mode 2; 60-ish */
- {{&_residue_44_low_un, &_residue_44_low_un},
- {&_huff_book__44c2_short,&_huff_book__44c2_long},
- { {{0},
- {0,0,&_44u0_p1_0},
- {0,0,&_44u0_p2_0},
- {0,0,&_44u0_p3_0},
- {&_44u0_p4_0,&_44u0_p4_1},
- {0,0,&_44u0_p5_0},
- {0,0,&_44u0_p6_0},
- {&_44u0_p7_0,&_44u0_p7_1,&_44u0_p7_2}},
- },
- { {0} }, /* no stereo backfill in uncoupled modes */
- { {{&_44u0_p0_r0,&_44u0_p0_r1},
- {&_44u0_p1_r0,&_44u0_p1_r1},
- {&_44u0_p1_r0,&_44u0_p1_r1},
- {&_44u0_p1_r0,&_44u0_p1_r1},
- {&_44u0_p1_r0,&_44u0_p1_r1},
- {&_44u0_p1_r0,&_44u0_p1_r1},
- {&_44u0_p1_r0,&_44u0_p1_r1},
- {&_44u0_p1_r0,&_44u0_p1_r1}},
- }
- },
- /* mode 3; 70-ish */
- {{&_residue_44_low_un, &_residue_44_low_un},
- {&_huff_book__44c3_short,&_huff_book__44c3_long},
- { {{0},
- {0,0,&_44u0_p1_0},
- {0,0,&_44u0_p2_0},
- {0,0,&_44u0_p3_0},
- {&_44u0_p4_0,&_44u0_p4_1},
- {0,0,&_44u0_p5_0},
- {0,0,&_44u0_p6_0},
- {&_44u0_p7_0,&_44u0_p7_1,&_44u0_p7_2}},
- },
- { {0} }, /* no stereo backfill in uncoupled modes */
- { {{&_44u0_p0_r0,&_44u0_p0_r1},
- {&_44u0_p1_r0,&_44u0_p1_r1},
- {&_44u0_p1_r0,&_44u0_p1_r1},
- {&_44u0_p1_r0,&_44u0_p1_r1},
- {&_44u0_p1_r0,&_44u0_p1_r1},
- {&_44u0_p1_r0,&_44u0_p1_r1},
- {&_44u0_p1_r0,&_44u0_p1_r1},
- {&_44u0_p1_r0,&_44u0_p1_r1}},
- }
- },
- /* mode 4; 80-ish */
- {{&_residue_44_mid, &_residue_44_mid},
- {&_huff_book__44c4_short,&_huff_book__44c4_long},
- { {{0},
- {0,0,&_44u4_p1_0},
- {0,0,&_44u4_p2_0},
- {0,0,&_44u4_p3_0},
- {0,0,&_44u4_p4_0},
- {0,0,&_44u4_p5_0},
- {0,0,&_44u4_p6_0},
- {&_44u4_p7_0,&_44u4_p7_1},
- {&_44u4_p8_0,&_44u4_p8_1},
- {&_44u4_p9_0,&_44u4_p9_1,&_44u4_p9_2}},
- },
- { {0} }, /* no stereo backfill in uncoupled modes */
- { {{&_44u4_p0_r0,&_44u4_p0_r1},
- {&_44u4_p1_r0,&_44u4_p1_r1},
- {&_44u4_p1_r0,&_44u4_p1_r1},
- {&_44u4_p1_r0,&_44u4_p1_r1},
- {&_44u4_p1_r0,&_44u4_p1_r1},
- {&_44u4_p1_r0,&_44u4_p1_r1},
- {&_44u4_p1_r0,&_44u4_p1_r1},
- {&_44u4_p1_r0,&_44u4_p1_r1},
- {&_44u4_p1_r0,&_44u4_p1_r1},
- {&_44u4_p1_r0,&_44u4_p1_r1}},
- }
- },
- /* mode 5; 90-ish */
- {{&_residue_44_mid, &_residue_44_mid},
- {&_huff_book__44c5_short,&_huff_book__44c5_long},
- { {{0},
- {0,0,&_44u4_p1_0},
- {0,0,&_44u4_p2_0},
- {0,0,&_44u4_p3_0},
- {0,0,&_44u4_p4_0},
- {0,0,&_44u4_p5_0},
- {0,0,&_44u4_p6_0},
- {&_44u4_p7_0,&_44u4_p7_1},
- {&_44u4_p8_0,&_44u4_p8_1},
- {&_44u4_p9_0,&_44u4_p9_1,&_44u4_p9_2}},
- },
- { {0} }, /* no stereo backfill in uncoupled modes */
- { {{&_44u4_p0_r0,&_44u4_p0_r1},
- {&_44u4_p1_r0,&_44u4_p1_r1},
- {&_44u4_p1_r0,&_44u4_p1_r1},
- {&_44u4_p1_r0,&_44u4_p1_r1},
- {&_44u4_p1_r0,&_44u4_p1_r1},
- {&_44u4_p1_r0,&_44u4_p1_r1},
- {&_44u4_p1_r0,&_44u4_p1_r1},
- {&_44u4_p1_r0,&_44u4_p1_r1},
- {&_44u4_p1_r0,&_44u4_p1_r1},
- {&_44u4_p1_r0,&_44u4_p1_r1}},
- }
- },
- /* mode 6; 100-ish */
- {{&_residue_44_mid, &_residue_44_mid},
- {&_huff_book__44c6_short,&_huff_book__44c6_long},
- { {{0},
- {0,0,&_44u4_p1_0},
- {0,0,&_44u4_p2_0},
- {0,0,&_44u4_p3_0},
- {0,0,&_44u4_p4_0},
- {0,0,&_44u4_p5_0},
- {0,0,&_44u4_p6_0},
- {&_44u4_p7_0,&_44u4_p7_1},
- {&_44u4_p8_0,&_44u4_p8_1},
- {&_44u4_p9_0,&_44u4_p9_1,&_44u4_p9_2}},
- },
- { {0} }, /* no stereo backfill in uncoupled modes */
- { {{&_44u4_p0_r0,&_44u4_p0_r1},
- {&_44u4_p1_r0,&_44u4_p1_r1},
- {&_44u4_p1_r0,&_44u4_p1_r1},
- {&_44u4_p1_r0,&_44u4_p1_r1},
- {&_44u4_p1_r0,&_44u4_p1_r1},
- {&_44u4_p1_r0,&_44u4_p1_r1},
- {&_44u4_p1_r0,&_44u4_p1_r1},
- {&_44u4_p1_r0,&_44u4_p1_r1},
- {&_44u4_p1_r0,&_44u4_p1_r1},
- {&_44u4_p1_r0,&_44u4_p1_r1}},
- }
- },
- /* mode 7 */
- {{&_residue_44_high_un, &_residue_44_high_un},
- {&_huff_book__44c7_short,&_huff_book__44c7_long},
- { {{0},
- {0,0,&_44u7_p1_0},
- {&_44u7_p2_0,&_44u7_p2_1},
- {0,0,&_44u7_p3_0},
- {0,0,&_44u7_p4_0},
- {0,0,&_44u7_p5_0},
- {0,0,&_44u7_p6_0},
- {&_44u7_p7_0,&_44u7_p7_1},
- {&_44u7_p8_0,&_44u7_p8_1},
- {&_44u7_p9_0,&_44u7_p9_1,&_44u7_p9_2}},
- },
- { {0} }, /* no stereo backfill in uncoupled modes */
- { {{&_44u7_p0_r0,&_44u7_p0_r1},
- {&_44u7_p1_r0,&_44u7_p1_r1},
- {&_44u7_p1_r0,&_44u7_p1_r1},
- {&_44u7_p1_r0,&_44u7_p1_r1},
- {&_44u7_p1_r0,&_44u7_p1_r1},
- {&_44u7_p1_r0,&_44u7_p1_r1},
- {&_44u7_p1_r0,&_44u7_p1_r1},
- {&_44u7_p1_r0,&_44u7_p1_r1},
- {&_44u7_p1_r0,&_44u7_p1_r1},
- {&_44u7_p1_r0,&_44u7_p1_r1}},
- }
- },
- /* mode 8 */
- {{&_residue_44_high_un, &_residue_44_high_un},
- {&_huff_book__44c8_short,&_huff_book__44c8_long},
- { {{0},
- {0,0,&_44u7_p1_0},
- {&_44u7_p2_0,&_44u7_p2_1},
- {0,0,&_44u7_p3_0},
- {0,0,&_44u7_p4_0},
- {0,0,&_44u7_p5_0},
- {0,0,&_44u7_p6_0},
- {&_44u7_p7_0,&_44u7_p7_1},
- {&_44u7_p8_0,&_44u7_p8_1},
- {&_44u7_p9_0,&_44u7_p9_1,&_44u7_p9_2}},
- },
- { {0} }, /* no stereo backfill in uncoupled modes */
- { {{&_44u7_p0_r0,&_44u7_p0_r1},
- {&_44u7_p1_r0,&_44u7_p1_r1},
- {&_44u7_p1_r0,&_44u7_p1_r1},
- {&_44u7_p1_r0,&_44u7_p1_r1},
- {&_44u7_p1_r0,&_44u7_p1_r1},
- {&_44u7_p1_r0,&_44u7_p1_r1},
- {&_44u7_p1_r0,&_44u7_p1_r1},
- {&_44u7_p1_r0,&_44u7_p1_r1},
- {&_44u7_p1_r0,&_44u7_p1_r1},
- {&_44u7_p1_r0,&_44u7_p1_r1}},
- }
- },
- /* mode 9 */
- {{&_residue_44_high_un, &_residue_44_high_un},
- {&_huff_book__44c9_short,&_huff_book__44c9_long},
- { {{0},
- {0,0,&_44u7_p1_0},
- {&_44u7_p2_0,&_44u7_p2_1},
- {0,0,&_44u7_p3_0},
- {0,0,&_44u7_p4_0},
- {0,0,&_44u7_p5_0},
- {0,0,&_44u7_p6_0},
- {&_44u7_p7_0,&_44u7_p7_1},
- {&_44u7_p8_0,&_44u7_p8_1},
- {&_44u7_p9_0,&_44u7_p9_1,&_44u7_p9_2}},
- },
- { {0} }, /* no stereo backfill in uncoupled modes */
- { {{&_44u7_p0_r0,&_44u7_p0_r1},
- {&_44u7_p1_r0,&_44u7_p1_r1},
- {&_44u7_p1_r0,&_44u7_p1_r1},
- {&_44u7_p1_r0,&_44u7_p1_r1},
- {&_44u7_p1_r0,&_44u7_p1_r1},
- {&_44u7_p1_r0,&_44u7_p1_r1},
- {&_44u7_p1_r0,&_44u7_p1_r1},
- {&_44u7_p1_r0,&_44u7_p1_r1},
- {&_44u7_p1_r0,&_44u7_p1_r1},
- {&_44u7_p1_r0,&_44u7_p1_r1}},
- }
- },
-};
-
-
-
-
-
diff --git a/lib/os.h b/lib/os.h
deleted file mode 100644
index a6d179e3..00000000
--- a/lib/os.h
+++ /dev/null
@@ -1,163 +0,0 @@
-#ifndef _OS_H
-#define _OS_H
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: #ifdef jail to whip a few platforms into the UNIX ideal.
- last mod: $Id: os.h,v 1.28 2001/12/19 01:08:14 xiphmont Exp $
-
- ********************************************************************/
-
-#include <math.h>
-#include <ogg/os_types.h>
-
-#ifndef _V_IFDEFJAIL_H_
-# define _V_IFDEFJAIL_H_
-
-# ifdef __GNUC__
-# define STIN static __inline__
-# elif _WIN32
-# define STIN static __inline
-#else
-# define STIN static
-#endif
-
-#ifndef M_PI
-# define M_PI (3.1415926536f)
-#endif
-
-#ifdef _WIN32
-# include <malloc.h>
-# define rint(x) (floor((x)+0.5f))
-# define NO_FLOAT_MATH_LIB
-# define FAST_HYPOT(a, b) sqrt((a)*(a) + (b)*(b))
-#endif
-
-#ifdef HAVE_SQRTF
-# define sqrt sqrtf
-#endif
-#ifdef HAVE_LOGF
-# define log logf
-#endif
-#ifdef HAVE_EXPF
-# define exp expf
-#endif
-#ifdef HAVE_ACOSF
-# define acos acosf
-#endif
-#ifdef HAVE_ATANF
-# define atan atanf
-#endif
-#ifdef HAVE_FREXPF
-# define frexp frexpf
-#endif
-#ifdef HAVE_RINTF
-# define rint rintf
-#endif
-
-#ifndef FAST_HYPOT
-# define FAST_HYPOT hypot
-#endif
-
-#endif
-
-#ifdef HAVE_ALLOCA_H
-# include <alloca.h>
-#endif
-
-#ifdef USE_MEMORY_H
-# include <memory.h>
-#endif
-
-#ifndef min
-# define min(x,y) ((x)>(y)?(y):(x))
-#endif
-
-#ifndef max
-# define max(x,y) ((x)<(y)?(y):(x))
-#endif
-
-#if defined(__i386__) && defined(__GNUC__) && !defined(__BEOS__)
-# define VORBIS_FPU_CONTROL
-/* both GCC and MSVC are kinda stupid about rounding/casting to int.
- Because of encapsulation constraints (GCC can't see inside the asm
- block and so we end up doing stupid things like a store/load that
- is collectively a noop), we do it this way */
-
-/* we must set up the fpu before this works!! */
-
-typedef ogg_int16_t vorbis_fpu_control;
-
-static inline void vorbis_fpu_setround(vorbis_fpu_control *fpu){
- ogg_int16_t ret;
- ogg_int16_t temp;
- __asm__ __volatile__("fnstcw %0\n\t"
- "movw %0,%%dx\n\t"
- "orw $62463,%%dx\n\t"
- "movw %%dx,%1\n\t"
- "fldcw %1\n\t":"=m"(ret):"m"(temp): "dx");
- *fpu=ret;
-}
-
-static inline void vorbis_fpu_restore(vorbis_fpu_control fpu){
- __asm__ __volatile__("fldcw %0":: "m"(fpu));
-}
-
-/* assumes the FPU is in round mode! */
-static inline int vorbis_ftoi(double f){ /* yes, double! Otherwise,
- we get extra fst/fld to
- truncate precision */
- int i;
- __asm__("fistl %0": "=m"(i) : "t"(f));
- return(i);
-}
-#endif
-
-
-#if defined(_WIN32) && !defined(__GNUC__)
-# define VORBIS_FPU_CONTROL
-
-typedef ogg_int16_t vorbis_fpu_control;
-
-static __inline int vorbis_ftoi(double f){
- int i;
- __asm{
- fld f
- fistp i
- }
- return i;
-}
-
-static __inline void vorbis_fpu_setround(vorbis_fpu_control *fpu){
-}
-
-static __inline void vorbis_fpu_restore(vorbis_fpu_control fpu){
-}
-
-#endif
-
-
-#ifndef VORBIS_FPU_CONTROL
-
-typedef int vorbis_fpu_control;
-
-static int vorbis_ftoi(double f){
- return (int)(f+.5);
-}
-
-/* We don't have special code for this compiler/arch, so do it the slow way */
-# define vorbis_fpu_setround(vorbis_fpu_control) {}
-# define vorbis_fpu_restore(vorbis_fpu_control) {}
-
-#endif
-
-#endif /* _OS_H */
diff --git a/lib/psy.c b/lib/psy.c
deleted file mode 100644
index 0fdda526..00000000
--- a/lib/psy.c
+++ /dev/null
@@ -1,1008 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: psychoacoustics not including preecho
- last mod: $Id: psy.c,v 1.64 2001/12/22 09:40:39 xiphmont Exp $
-
- ********************************************************************/
-
-#include <stdlib.h>
-#include <math.h>
-#include <string.h>
-#include "vorbis/codec.h"
-#include "codec_internal.h"
-
-#include "masking.h"
-#include "psy.h"
-#include "os.h"
-#include "lpc.h"
-#include "smallft.h"
-#include "scales.h"
-#include "misc.h"
-
-#define NEGINF -9999.f
-
-/* Why Bark scale for encoding but not masking computation? Because
- masking has a strong harmonic dependency */
-
-vorbis_look_psy_global *_vp_global_look(vorbis_info *vi){
- codec_setup_info *ci=vi->codec_setup;
- vorbis_info_psy_global *gi=&ci->psy_g_param;
- vorbis_look_psy_global *look=_ogg_calloc(1,sizeof(*look));
-
- look->channels=vi->channels;
-
- look->ampmax=-9999.;
- look->gi=gi;
- return(look);
-}
-
-void _vp_global_free(vorbis_look_psy_global *look){
- if(look){
- memset(look,0,sizeof(*look));
- _ogg_free(look);
- }
-}
-
-void _vi_gpsy_free(vorbis_info_psy_global *i){
- if(i){
- memset(i,0,sizeof(*i));
- _ogg_free(i);
- }
-}
-
-void _vi_psy_free(vorbis_info_psy *i){
- if(i){
- memset(i,0,sizeof(*i));
- _ogg_free(i);
- }
-}
-
-vorbis_info_psy *_vi_psy_copy(vorbis_info_psy *i){
- vorbis_info_psy *ret=_ogg_malloc(sizeof(*ret));
- memcpy(ret,i,sizeof(*ret));
- return(ret);
-}
-
-/* Set up decibel threshold slopes on a Bark frequency scale */
-/* ATH is the only bit left on a Bark scale. No reason to change it
- right now */
-static void set_curve(float *ref,float *c,int n, float crate){
- int i,j=0;
-
- for(i=0;i<MAX_BARK-1;i++){
- int endpos=rint(fromBARK((float)(i+1))*2*n/crate);
- float base=ref[i];
- if(j<endpos){
- float delta=(ref[i+1]-base)/(endpos-j);
- for(;j<endpos && j<n;j++){
- c[j]=base;
- base+=delta;
- }
- }
- }
-}
-
-static void min_curve(float *c,
- float *c2){
- int i;
- for(i=0;i<EHMER_MAX;i++)if(c2[i]<c[i])c[i]=c2[i];
-}
-static void max_curve(float *c,
- float *c2){
- int i;
- for(i=0;i<EHMER_MAX;i++)if(c2[i]>c[i])c[i]=c2[i];
-}
-
-static void attenuate_curve(float *c,float att){
- int i;
- for(i=0;i<EHMER_MAX;i++)
- c[i]+=att;
-}
-
-static void interp_curve(float *c,float *c1,float *c2,float del){
- int i;
- for(i=0;i<EHMER_MAX;i++)
- c[i]=c2[i]*del+c1[i]*(1.f-del);
-}
-
-extern int analysis_noisy;
-static void setup_curve(float **c,
- int band,
- float *curveatt_dB){
- int i,j;
- float ath[EHMER_MAX];
- float tempc[P_LEVELS][EHMER_MAX];
- float *ATH=ATH_Bark_dB_lspconservative; /* just for limiting here */
-
- memcpy(c[0]+2,c[4]+2,sizeof(*c[0])*EHMER_MAX);
- memcpy(c[2]+2,c[4]+2,sizeof(*c[2])*EHMER_MAX);
-
- /* we add back in the ATH to avoid low level curves falling off to
- -infinity and unnecessarily cutting off high level curves in the
- curve limiting (last step). But again, remember... a half-band's
- settings must be valid over the whole band, and it's better to
- mask too little than too much, so be pessimistical. */
-
- for(i=0;i<EHMER_MAX;i++){
- float oc_min=band*.5+(i-EHMER_OFFSET)*.125;
- float oc_max=band*.5+(i-EHMER_OFFSET+1)*.125;
- float bark=toBARK(fromOC(oc_min));
- int ibark=floor(bark);
- float del=bark-ibark;
- float ath_min,ath_max;
-
- if(ibark<26)
- ath_min=ATH[ibark]*(1.f-del)+ATH[ibark+1]*del;
- else
- ath_min=ATH[25];
-
- bark=toBARK(fromOC(oc_max));
- ibark=floor(bark);
- del=bark-ibark;
-
- if(ibark<26)
- ath_max=ATH[ibark]*(1.f-del)+ATH[ibark+1]*del;
- else
- ath_max=ATH[25];
-
- ath[i]=min(ath_min,ath_max);
- }
-
- /* The c array comes in as dB curves at 20 40 60 80 100 dB.
- interpolate intermediate dB curves */
- for(i=1;i<P_LEVELS;i+=2){
- interp_curve(c[i]+2,c[i-1]+2,c[i+1]+2,.5);
- }
-
- /* normalize curves so the driving amplitude is 0dB */
- /* make temp curves with the ATH overlayed */
- for(i=0;i<P_LEVELS;i++){
- attenuate_curve(c[i]+2,curveatt_dB[i]);
- memcpy(tempc[i],ath,EHMER_MAX*sizeof(*tempc[i]));
- attenuate_curve(tempc[i],-i*10.f);
- max_curve(tempc[i],c[i]+2);
- }
-
- /* Now limit the louder curves.
-
- the idea is this: We don't know what the playback attenuation
- will be; 0dB SL moves every time the user twiddles the volume
- knob. So that means we have to use a single 'most pessimal' curve
- for all masking amplitudes, right? Wrong. The *loudest* sound
- can be in (we assume) a range of ...+100dB] SL. However, sounds
- 20dB down will be in a range ...+80], 40dB down is from ...+60],
- etc... */
-
- for(j=1;j<P_LEVELS;j++){
- min_curve(tempc[j],tempc[j-1]);
- min_curve(c[j]+2,tempc[j]);
- }
-
- /* add fenceposts */
- for(j=0;j<P_LEVELS;j++){
-
- for(i=0;i<EHMER_OFFSET;i++)
- if(c[j][i+2]>-200.f)break;
- c[j][0]=i;
-
- for(i=EHMER_MAX-1;i>EHMER_OFFSET+1;i--)
- if(c[j][i+2]>-200.f)
- break;
- c[j][1]=i;
-
- }
-}
-
-void _vp_psy_init(vorbis_look_psy *p,vorbis_info_psy *vi,
- vorbis_info_psy_global *gi,int n,long rate){
- long i,j,k,lo=-99,hi=0;
- long maxoc;
- memset(p,0,sizeof(*p));
-
-
- p->eighth_octave_lines=gi->eighth_octave_lines;
- p->shiftoc=rint(log(gi->eighth_octave_lines*8.f)/log(2.f))-1;
-
- p->firstoc=toOC(.25f*rate/n)*(1<<(p->shiftoc+1))-gi->eighth_octave_lines;
- maxoc=toOC((n*.5f-.25f)*rate/n)*(1<<(p->shiftoc+1))+.5f;
- p->total_octave_lines=maxoc-p->firstoc+1;
-
- if(vi->ath)
- p->ath=_ogg_malloc(n*sizeof(*p->ath));
- p->octave=_ogg_malloc(n*sizeof(*p->octave));
- p->bark=_ogg_malloc(n*sizeof(*p->bark));
- p->vi=vi;
- p->n=n;
- p->rate=rate;
-
- /* set up the lookups for a given blocksize and sample rate */
- if(vi->ath)
- set_curve(vi->ath, p->ath,n,(float)rate);
- for(i=0;i<n;i++){
- float bark=toBARK(rate/(2*n)*i);
-
- for(;lo+vi->noisewindowlomin<i &&
- toBARK(rate/(2*n)*lo)<(bark-vi->noisewindowlo);lo++);
-
- for(;hi<n && (hi<i+vi->noisewindowhimin ||
- toBARK(rate/(2*n)*hi)<(bark+vi->noisewindowhi));hi++);
-
- p->bark[i]=(lo<<16)+hi;
-
- }
-
- for(i=0;i<n;i++)
- p->octave[i]=toOC((i*.5f+.25f)*rate/n)*(1<<(p->shiftoc+1))+.5f;
-
- p->tonecurves=_ogg_malloc(P_BANDS*sizeof(*p->tonecurves));
- p->noisethresh=_ogg_malloc(n*sizeof(*p->noisethresh));
- p->noiseoffset=_ogg_malloc(n*sizeof(*p->noiseoffset));
- for(i=0;i<P_BANDS;i++)
- p->tonecurves[i]=_ogg_malloc(P_LEVELS*sizeof(*p->tonecurves[i]));
-
- for(i=0;i<P_BANDS;i++)
- for(j=0;j<P_LEVELS;j++)
- p->tonecurves[i][j]=_ogg_malloc((EHMER_MAX+2)*sizeof(*p->tonecurves[i][j]));
-
-
- /* OK, yeah, this was a silly way to do it */
- memcpy(p->tonecurves[0][4]+2,tone_125_40dB_SL,sizeof(*p->tonecurves[0][4])*EHMER_MAX);
- memcpy(p->tonecurves[0][6]+2,tone_125_60dB_SL,sizeof(*p->tonecurves[0][6])*EHMER_MAX);
- memcpy(p->tonecurves[0][8]+2,tone_125_80dB_SL,sizeof(*p->tonecurves[0][8])*EHMER_MAX);
- memcpy(p->tonecurves[0][10]+2,tone_125_100dB_SL,sizeof(*p->tonecurves[0][10])*EHMER_MAX);
-
- memcpy(p->tonecurves[2][4]+2,tone_125_40dB_SL,sizeof(*p->tonecurves[2][4])*EHMER_MAX);
- memcpy(p->tonecurves[2][6]+2,tone_125_60dB_SL,sizeof(*p->tonecurves[2][6])*EHMER_MAX);
- memcpy(p->tonecurves[2][8]+2,tone_125_80dB_SL,sizeof(*p->tonecurves[2][8])*EHMER_MAX);
- memcpy(p->tonecurves[2][10]+2,tone_125_100dB_SL,sizeof(*p->tonecurves[2][10])*EHMER_MAX);
-
- memcpy(p->tonecurves[4][4]+2,tone_250_40dB_SL,sizeof(*p->tonecurves[4][4])*EHMER_MAX);
- memcpy(p->tonecurves[4][6]+2,tone_250_60dB_SL,sizeof(*p->tonecurves[4][6])*EHMER_MAX);
- memcpy(p->tonecurves[4][8]+2,tone_250_80dB_SL,sizeof(*p->tonecurves[4][8])*EHMER_MAX);
- memcpy(p->tonecurves[4][10]+2,tone_250_100dB_SL,sizeof(*p->tonecurves[4][10])*EHMER_MAX);
-
- memcpy(p->tonecurves[6][4]+2,tone_500_40dB_SL,sizeof(*p->tonecurves[6][4])*EHMER_MAX);
- memcpy(p->tonecurves[6][6]+2,tone_500_60dB_SL,sizeof(*p->tonecurves[6][6])*EHMER_MAX);
- memcpy(p->tonecurves[6][8]+2,tone_500_80dB_SL,sizeof(*p->tonecurves[6][8])*EHMER_MAX);
- memcpy(p->tonecurves[6][10]+2,tone_500_100dB_SL,sizeof(*p->tonecurves[6][10])*EHMER_MAX);
-
- memcpy(p->tonecurves[8][4]+2,tone_1000_40dB_SL,sizeof(*p->tonecurves[8][4])*EHMER_MAX);
- memcpy(p->tonecurves[8][6]+2,tone_1000_60dB_SL,sizeof(*p->tonecurves[8][6])*EHMER_MAX);
- memcpy(p->tonecurves[8][8]+2,tone_1000_80dB_SL,sizeof(*p->tonecurves[8][8])*EHMER_MAX);
- memcpy(p->tonecurves[8][10]+2,tone_1000_100dB_SL,sizeof(*p->tonecurves[8][10])*EHMER_MAX);
-
- memcpy(p->tonecurves[10][4]+2,tone_2000_40dB_SL,sizeof(*p->tonecurves[10][4])*EHMER_MAX);
- memcpy(p->tonecurves[10][6]+2,tone_2000_60dB_SL,sizeof(*p->tonecurves[10][6])*EHMER_MAX);
- memcpy(p->tonecurves[10][8]+2,tone_2000_80dB_SL,sizeof(*p->tonecurves[10][8])*EHMER_MAX);
- memcpy(p->tonecurves[10][10]+2,tone_2000_100dB_SL,sizeof(*p->tonecurves[10][10])*EHMER_MAX);
-
- memcpy(p->tonecurves[12][4]+2,tone_4000_40dB_SL,sizeof(*p->tonecurves[12][4])*EHMER_MAX);
- memcpy(p->tonecurves[12][6]+2,tone_4000_60dB_SL,sizeof(*p->tonecurves[12][6])*EHMER_MAX);
- memcpy(p->tonecurves[12][8]+2,tone_4000_80dB_SL,sizeof(*p->tonecurves[12][8])*EHMER_MAX);
- memcpy(p->tonecurves[12][10]+2,tone_4000_100dB_SL,sizeof(*p->tonecurves[12][10])*EHMER_MAX);
-
- memcpy(p->tonecurves[14][4]+2,tone_8000_40dB_SL,sizeof(*p->tonecurves[14][4])*EHMER_MAX);
- memcpy(p->tonecurves[14][6]+2,tone_8000_60dB_SL,sizeof(*p->tonecurves[14][6])*EHMER_MAX);
- memcpy(p->tonecurves[14][8]+2,tone_8000_80dB_SL,sizeof(*p->tonecurves[14][8])*EHMER_MAX);
- memcpy(p->tonecurves[14][10]+2,tone_8000_100dB_SL,sizeof(*p->tonecurves[14][10])*EHMER_MAX);
-
- memcpy(p->tonecurves[16][4]+2,tone_16000_40dB_SL,sizeof(*p->tonecurves[16][4])*EHMER_MAX);
- memcpy(p->tonecurves[16][6]+2,tone_16000_60dB_SL,sizeof(*p->tonecurves[16][6])*EHMER_MAX);
- memcpy(p->tonecurves[16][8]+2,tone_16000_80dB_SL,sizeof(*p->tonecurves[16][8])*EHMER_MAX);
- memcpy(p->tonecurves[16][10]+2,tone_16000_100dB_SL,sizeof(*p->tonecurves[16][10])*EHMER_MAX);
-
- for(i=0;i<P_BANDS;i+=2)
- for(j=4;j<P_LEVELS;j+=2)
- for(k=2;k<EHMER_MAX+2;k++)
- p->tonecurves[i][j][k]+=vi->tone_masteratt;
-
- /* interpolate curves between */
- for(i=1;i<P_BANDS;i+=2)
- for(j=4;j<P_LEVELS;j+=2){
- memcpy(p->tonecurves[i][j]+2,p->tonecurves[i-1][j]+2,EHMER_MAX*sizeof(*p->tonecurves[i][j]));
- /*interp_curve(p->tonecurves[i][j],
- p->tonecurves[i-1][j],
- p->tonecurves[i+1][j],.5);*/
- min_curve(p->tonecurves[i][j]+2,p->tonecurves[i+1][j]+2);
- }
-
- /* set up the final curves */
- for(i=0;i<P_BANDS;i++)
- setup_curve(p->tonecurves[i],i,vi->toneatt.block[i]);
-
- for(i=0;i<P_LEVELS;i++)
- _analysis_output("curve_63Hz",i,p->tonecurves[0][i]+2,EHMER_MAX,0,0);
- for(i=0;i<P_LEVELS;i++)
- _analysis_output("curve_88Hz",i,p->tonecurves[1][i]+2,EHMER_MAX,0,0);
- for(i=0;i<P_LEVELS;i++)
- _analysis_output("curve_125Hz",i,p->tonecurves[2][i]+2,EHMER_MAX,0,0);
- for(i=0;i<P_LEVELS;i++)
- _analysis_output("curve_170Hz",i,p->tonecurves[3][i]+2,EHMER_MAX,0,0);
- for(i=0;i<P_LEVELS;i++)
- _analysis_output("curve_250Hz",i,p->tonecurves[4][i]+2,EHMER_MAX,0,0);
- for(i=0;i<P_LEVELS;i++)
- _analysis_output("curve_350Hz",i,p->tonecurves[5][i]+2,EHMER_MAX,0,0);
- for(i=0;i<P_LEVELS;i++)
- _analysis_output("curve_500Hz",i,p->tonecurves[6][i]+2,EHMER_MAX,0,0);
- for(i=0;i<P_LEVELS;i++)
- _analysis_output("curve_700Hz",i,p->tonecurves[7][i]+2,EHMER_MAX,0,0);
- for(i=0;i<P_LEVELS;i++)
- _analysis_output("curve_1kHz",i,p->tonecurves[8][i]+2,EHMER_MAX,0,0);
- for(i=0;i<P_LEVELS;i++)
- _analysis_output("curve_1.4Hz",i,p->tonecurves[9][i]+2,EHMER_MAX,0,0);
- for(i=0;i<P_LEVELS;i++)
- _analysis_output("curve_2kHz",i,p->tonecurves[10][i]+2,EHMER_MAX,0,0);
- for(i=0;i<P_LEVELS;i++)
- _analysis_output("curve_2.4kHz",i,p->tonecurves[11][i]+2,EHMER_MAX,0,0);
- for(i=0;i<P_LEVELS;i++)
- _analysis_output("curve_4kHz",i,p->tonecurves[12][i]+2,EHMER_MAX,0,0);
- for(i=0;i<P_LEVELS;i++)
- _analysis_output("curve_5.6kHz",i,p->tonecurves[13][i]+2,EHMER_MAX,0,0);
- for(i=0;i<P_LEVELS;i++)
- _analysis_output("curve_8kHz",i,p->tonecurves[14][i]+2,EHMER_MAX,0,0);
- for(i=0;i<P_LEVELS;i++)
- _analysis_output("curve_11.5kHz",i,p->tonecurves[15][i]+2,EHMER_MAX,0,0);
- for(i=0;i<P_LEVELS;i++)
- _analysis_output("curve_16kHz",i,p->tonecurves[16][i]+2,EHMER_MAX,0,0);
-
- if(vi->curvelimitp){
- /* value limit the tonal masking curves; the peakatt not only
- optionally specifies maximum dynamic depth, but also
- limits the masking curves to a minimum depth */
- for(i=0;i<P_BANDS;i++)
- for(j=0;j<P_LEVELS;j++){
- for(k=2;k<EHMER_OFFSET+2+vi->curvelimitp;k++)
- if(p->tonecurves[i][j][k]> vi->peakatt.block[i][j])
- p->tonecurves[i][j][k]= vi->peakatt.block[i][j];
- else
- break;
- }
- }
-
- for(i=0;i<P_LEVELS;i++)
- _analysis_output("licurve_63Hz",i,p->tonecurves[0][i]+2,EHMER_MAX,0,0);
- for(i=0;i<P_LEVELS;i++)
- _analysis_output("licurve_88Hz",i,p->tonecurves[1][i]+2,EHMER_MAX,0,0);
- for(i=0;i<P_LEVELS;i++)
- _analysis_output("licurve_125Hz",i,p->tonecurves[2][i]+2,EHMER_MAX,0,0);
- for(i=0;i<P_LEVELS;i++)
- _analysis_output("licurve_170Hz",i,p->tonecurves[3][i]+2,EHMER_MAX,0,0);
- for(i=0;i<P_LEVELS;i++)
- _analysis_output("licurve_250Hz",i,p->tonecurves[4][i]+2,EHMER_MAX,0,0);
- for(i=0;i<P_LEVELS;i++)
- _analysis_output("licurve_350Hz",i,p->tonecurves[5][i]+2,EHMER_MAX,0,0);
- for(i=0;i<P_LEVELS;i++)
- _analysis_output("licurve_500Hz",i,p->tonecurves[6][i]+2,EHMER_MAX,0,0);
- for(i=0;i<P_LEVELS;i++)
- _analysis_output("licurve_700Hz",i,p->tonecurves[7][i]+2,EHMER_MAX,0,0);
- for(i=0;i<P_LEVELS;i++)
- _analysis_output("licurve_1kHz",i,p->tonecurves[8][i]+2,EHMER_MAX,0,0);
- for(i=0;i<P_LEVELS;i++)
- _analysis_output("licurve_1.4Hz",i,p->tonecurves[9][i]+2,EHMER_MAX,0,0);
- for(i=0;i<P_LEVELS;i++)
- _analysis_output("licurve_2kHz",i,p->tonecurves[10][i]+2,EHMER_MAX,0,0);
- for(i=0;i<P_LEVELS;i++)
- _analysis_output("licurve_2.4kHz",i,p->tonecurves[11][i]+2,EHMER_MAX,0,0);
- for(i=0;i<P_LEVELS;i++)
- _analysis_output("licurve_4kHz",i,p->tonecurves[12][i]+2,EHMER_MAX,0,0);
- for(i=0;i<P_LEVELS;i++)
- _analysis_output("licurve_5.6kHz",i,p->tonecurves[13][i]+2,EHMER_MAX,0,0);
- for(i=0;i<P_LEVELS;i++)
- _analysis_output("licurve_8kHz",i,p->tonecurves[14][i]+2,EHMER_MAX,0,0);
- for(i=0;i<P_LEVELS;i++)
- _analysis_output("licurve_11.5kHz",i,p->tonecurves[15][i]+2,EHMER_MAX,0,0);
- for(i=0;i<P_LEVELS;i++)
- _analysis_output("licurve_16kHz",i,p->tonecurves[16][i]+2,EHMER_MAX,0,0);
-
- if(vi->peakattp) /* we limit maximum depth only optionally */
- for(i=0;i<P_BANDS;i++)
- for(j=0;j<P_LEVELS;j++)
- if(p->tonecurves[i][j][EHMER_OFFSET+2]< vi->peakatt.block[i][j])
- p->tonecurves[i][j][EHMER_OFFSET+2]= vi->peakatt.block[i][j];
-
- for(i=0;i<P_LEVELS;i++)
- _analysis_output("pcurve_63Hz",i,p->tonecurves[0][i]+2,EHMER_MAX,0,0);
- for(i=0;i<P_LEVELS;i++)
- _analysis_output("pcurve_88Hz",i,p->tonecurves[1][i]+2,EHMER_MAX,0,0);
- for(i=0;i<P_LEVELS;i++)
- _analysis_output("pcurve_125Hz",i,p->tonecurves[2][i]+2,EHMER_MAX,0,0);
- for(i=0;i<P_LEVELS;i++)
- _analysis_output("pcurve_170Hz",i,p->tonecurves[3][i]+2,EHMER_MAX,0,0);
- for(i=0;i<P_LEVELS;i++)
- _analysis_output("pcurve_250Hz",i,p->tonecurves[4][i]+2,EHMER_MAX,0,0);
- for(i=0;i<P_LEVELS;i++)
- _analysis_output("pcurve_350Hz",i,p->tonecurves[5][i]+2,EHMER_MAX,0,0);
- for(i=0;i<P_LEVELS;i++)
- _analysis_output("pcurve_500Hz",i,p->tonecurves[6][i]+2,EHMER_MAX,0,0);
- for(i=0;i<P_LEVELS;i++)
- _analysis_output("pcurve_700Hz",i,p->tonecurves[7][i]+2,EHMER_MAX,0,0);
- for(i=0;i<P_LEVELS;i++)
- _analysis_output("pcurve_1kHz",i,p->tonecurves[8][i]+2,EHMER_MAX,0,0);
- for(i=0;i<P_LEVELS;i++)
- _analysis_output("pcurve_1.4Hz",i,p->tonecurves[9][i]+2,EHMER_MAX,0,0);
- for(i=0;i<P_LEVELS;i++)
- _analysis_output("pcurve_2kHz",i,p->tonecurves[10][i]+2,EHMER_MAX,0,0);
- for(i=0;i<P_LEVELS;i++)
- _analysis_output("pcurve_2.4kHz",i,p->tonecurves[11][i]+2,EHMER_MAX,0,0);
- for(i=0;i<P_LEVELS;i++)
- _analysis_output("pcurve_4kHz",i,p->tonecurves[12][i]+2,EHMER_MAX,0,0);
- for(i=0;i<P_LEVELS;i++)
- _analysis_output("pcurve_5.6kHz",i,p->tonecurves[13][i]+2,EHMER_MAX,0,0);
- for(i=0;i<P_LEVELS;i++)
- _analysis_output("pcurve_8kHz",i,p->tonecurves[14][i]+2,EHMER_MAX,0,0);
- for(i=0;i<P_LEVELS;i++)
- _analysis_output("pcurve_11.5kHz",i,p->tonecurves[15][i]+2,EHMER_MAX,0,0);
- for(i=0;i<P_LEVELS;i++)
- _analysis_output("pcurve_16kHz",i,p->tonecurves[16][i]+2,EHMER_MAX,0,0);
-
- /* but guarding is mandatory */
- for(i=0;i<P_BANDS;i++)
- for(j=0;j<P_LEVELS;j++)
- if(p->tonecurves[i][j][EHMER_OFFSET+2]< vi->tone_guard)
- p->tonecurves[i][j][EHMER_OFFSET+2]= vi->tone_guard;
-
- for(i=0;i<P_LEVELS;i++)
- _analysis_output("fcurve_63Hz",i,p->tonecurves[0][i]+2,EHMER_MAX,0,0);
- for(i=0;i<P_LEVELS;i++)
- _analysis_output("fcurve_88Hz",i,p->tonecurves[1][i]+2,EHMER_MAX,0,0);
- for(i=0;i<P_LEVELS;i++)
- _analysis_output("fcurve_125Hz",i,p->tonecurves[2][i]+2,EHMER_MAX,0,0);
- for(i=0;i<P_LEVELS;i++)
- _analysis_output("fcurve_170Hz",i,p->tonecurves[3][i]+2,EHMER_MAX,0,0);
- for(i=0;i<P_LEVELS;i++)
- _analysis_output("fcurve_250Hz",i,p->tonecurves[4][i]+2,EHMER_MAX,0,0);
- for(i=0;i<P_LEVELS;i++)
- _analysis_output("fcurve_350Hz",i,p->tonecurves[5][i]+2,EHMER_MAX,0,0);
- for(i=0;i<P_LEVELS;i++)
- _analysis_output("fcurve_500Hz",i,p->tonecurves[6][i]+2,EHMER_MAX,0,0);
- for(i=0;i<P_LEVELS;i++)
- _analysis_output("fcurve_700Hz",i,p->tonecurves[7][i]+2,EHMER_MAX,0,0);
- for(i=0;i<P_LEVELS;i++)
- _analysis_output("fcurve_1kHz",i,p->tonecurves[8][i]+2,EHMER_MAX,0,0);
- for(i=0;i<P_LEVELS;i++)
- _analysis_output("fcurve_1.4Hz",i,p->tonecurves[9][i]+2,EHMER_MAX,0,0);
- for(i=0;i<P_LEVELS;i++)
- _analysis_output("fcurve_2kHz",i,p->tonecurves[10][i]+2,EHMER_MAX,0,0);
- for(i=0;i<P_LEVELS;i++)
- _analysis_output("fcurve_2.4kHz",i,p->tonecurves[11][i]+2,EHMER_MAX,0,0);
- for(i=0;i<P_LEVELS;i++)
- _analysis_output("fcurve_4kHz",i,p->tonecurves[12][i]+2,EHMER_MAX,0,0);
- for(i=0;i<P_LEVELS;i++)
- _analysis_output("fcurve_5.6kHz",i,p->tonecurves[13][i]+2,EHMER_MAX,0,0);
- for(i=0;i<P_LEVELS;i++)
- _analysis_output("fcurve_8kHz",i,p->tonecurves[14][i]+2,EHMER_MAX,0,0);
- for(i=0;i<P_LEVELS;i++)
- _analysis_output("fcurve_11.5kHz",i,p->tonecurves[15][i]+2,EHMER_MAX,0,0);
- for(i=0;i<P_LEVELS;i++)
- _analysis_output("fcurve_16kHz",i,p->tonecurves[16][i]+2,EHMER_MAX,0,0);
-
- /* set up rolling noise median */
- for(i=0;i<n;i++){
- float halfoc=toOC((i+.5)*rate/(2.*n))*2.;
- int inthalfoc;
- float del;
-
- if(halfoc<0)halfoc=0;
- if(halfoc>=P_BANDS-1)halfoc=P_BANDS-1;
- inthalfoc=(int)halfoc;
- del=halfoc-inthalfoc;
- p->noiseoffset[i]=
- p->vi->noiseoff[inthalfoc]*(1.-del) +
- p->vi->noiseoff[inthalfoc+1]*del;
- }
-
- analysis_noisy=1;
- _analysis_output("noiseoff",0,p->noiseoffset,n,1,0);
- _analysis_output("noisethresh",0,p->noisethresh,n,1,0);
- analysis_noisy=1;
-
-}
-
-void _vp_psy_clear(vorbis_look_psy *p){
- int i,j;
- if(p){
- if(p->ath)_ogg_free(p->ath);
- if(p->octave)_ogg_free(p->octave);
- if(p->bark)_ogg_free(p->bark);
- if(p->tonecurves){
- for(i=0;i<P_BANDS;i++){
- for(j=0;j<P_LEVELS;j++){
- _ogg_free(p->tonecurves[i][j]);
- }
- _ogg_free(p->tonecurves[i]);
- }
- _ogg_free(p->tonecurves);
- }
- _ogg_free(p->noiseoffset);
- _ogg_free(p->noisethresh);
- memset(p,0,sizeof(*p));
- }
-}
-
-/* octave/(8*eighth_octave_lines) x scale and dB y scale */
-static void seed_curve(float *seed,
- const float **curves,
- float amp,
- int oc, int n,
- int linesper,float dBoffset){
- int i,post1;
- int seedptr;
- const float *posts,*curve;
-
- int choice=(int)((amp+dBoffset)*.1f);
- choice=max(choice,0);
- choice=min(choice,P_LEVELS-1);
- posts=curves[choice];
- curve=posts+2;
- post1=(int)posts[1];
- seedptr=oc+(posts[0]-16)*linesper-(linesper>>1);
-
- for(i=posts[0];i<post1;i++){
- if(seedptr>0){
- float lin=amp+curve[i];
- if(seed[seedptr]<lin)seed[seedptr]=lin;
- }
- seedptr+=linesper;
- if(seedptr>=n)break;
- }
-}
-
-static void seed_loop(vorbis_look_psy *p,
- const float ***curves,
- const float *f,
- const float *flr,
- float *seed,
- float specmax){
- vorbis_info_psy *vi=p->vi;
- long n=p->n,i;
- float dBoffset=vi->max_curve_dB-specmax;
-
- /* prime the working vector with peak values */
-
- for(i=0;i<n;i++){
- float max=f[i];
- long oc=p->octave[i];
- while(i+1<n && p->octave[i+1]==oc){
- i++;
- if(f[i]>max)max=f[i];
- }
-
- if(max+6.f>flr[i]){
- oc=oc>>p->shiftoc;
- if(oc>=P_BANDS)oc=P_BANDS-1;
- if(oc<0)oc=0;
- seed_curve(seed,
- curves[oc],
- max,
- p->octave[i]-p->firstoc,
- p->total_octave_lines,
- p->eighth_octave_lines,
- dBoffset);
- }
- }
-}
-
-static void seed_chase(float *seeds, int linesper, long n){
- long *posstack=alloca(n*sizeof(*posstack));
- float *ampstack=alloca(n*sizeof(*ampstack));
- long stack=0;
- long pos=0;
- long i;
-
- for(i=0;i<n;i++){
- if(stack<2){
- posstack[stack]=i;
- ampstack[stack++]=seeds[i];
- }else{
- while(1){
- if(seeds[i]<ampstack[stack-1]){
- posstack[stack]=i;
- ampstack[stack++]=seeds[i];
- break;
- }else{
- if(i<posstack[stack-1]+linesper){
- if(stack>1 && ampstack[stack-1]<=ampstack[stack-2] &&
- i<posstack[stack-2]+linesper){
- /* we completely overlap, making stack-1 irrelevant. pop it */
- stack--;
- continue;
- }
- }
- posstack[stack]=i;
- ampstack[stack++]=seeds[i];
- break;
-
- }
- }
- }
- }
-
- /* the stack now contains only the positions that are relevant. Scan
- 'em straight through */
-
- for(i=0;i<stack;i++){
- long endpos;
- if(i<stack-1 && ampstack[i+1]>ampstack[i]){
- endpos=posstack[i+1];
- }else{
- endpos=posstack[i]+linesper+1; /* +1 is important, else bin 0 is
- discarded in short frames */
- }
- if(endpos>n)endpos=n;
- for(;pos<endpos;pos++)
- seeds[pos]=ampstack[i];
- }
-
- /* there. Linear time. I now remember this was on a problem set I
- had in Grad Skool... I didn't solve it at the time ;-) */
-
-}
-
-/* bleaugh, this is more complicated than it needs to be */
-static void max_seeds(vorbis_look_psy *p,
- float *seed,
- float *flr){
- long n=p->total_octave_lines;
- int linesper=p->eighth_octave_lines;
- long linpos=0;
- long pos;
-
- seed_chase(seed,linesper,n); /* for masking */
-
- pos=p->octave[0]-p->firstoc-(linesper>>1);
- while(linpos+1<p->n){
- float minV=seed[pos];
- long end=((p->octave[linpos]+p->octave[linpos+1])>>1)-p->firstoc;
- if(minV>p->vi->tone_abs_limit)minV=p->vi->tone_abs_limit;
- while(pos+1<=end){
- pos++;
- if((seed[pos]>NEGINF && seed[pos]<minV) || minV==NEGINF)
- minV=seed[pos];
- }
-
- /* seed scale is log. Floor is linear. Map back to it */
- end=pos+p->firstoc;
- for(;linpos<p->n && p->octave[linpos]<=end;linpos++)
- if(flr[linpos]<minV)flr[linpos]=minV;
- }
-
- {
- float minV=seed[p->total_octave_lines-1];
- for(;linpos<p->n;linpos++)
- if(flr[linpos]<minV)flr[linpos]=minV;
- }
-
-}
-
-static void bark_noise_hybridmp(int n,const long *b,
- const float *f,
- float *noise,
- const float offset,
- const int fixed){
- long i,hi=b[0]>>16,lo=b[0]>>16,hif=0,lof=0;
- double xa=0,xb=0;
- double ya=0,yb=0;
- double x2a=0,x2b=0;
- double xya=0,xyb=0;
- double na=0,nb=0;
-
- for(i=0;i<n;i++){
- if(hi<n){
- /* find new lo/hi */
- int bi=b[i]&0xffffL;
- for(;hi<bi;hi++){
- int ii=(hi<0?-hi:hi);
- double bin=(f[ii]<-offset?1.:f[ii]+offset);
- double nn= bin*bin;
- na += nn;
- xa += hi*nn;
- ya += bin*nn;
- x2a += hi*hi*nn;
- xya += hi*bin*nn;
- }
- bi=b[i]>>16;
- for(;lo<bi;lo++){
- int ii=(lo<0?-lo:lo);
- double bin=(f[ii]<-offset?1.:f[ii]+offset);
- double nn= bin*bin;
- na -= nn;
- xa -= lo*nn;
- ya -= bin*nn;
- x2a -= lo*lo*nn;
- xya -= lo*bin*nn;
- }
- }
-
- if(hif<n && fixed>0){
- int bi=i+fixed/2;
- if(bi>n)bi=n;
-
- for(;hif<bi;hif++){
- int ii=(hif<0?-hif:hif);
- double bin=(f[ii]<-offset?1.:f[ii]+offset);
- double nn= bin*bin;
- nb += nn;
- xb += hif*nn;
- yb += bin*nn;
- x2b += hif*hif*nn;
- xyb += hif*bin*nn;
- }
- bi=i-(fixed+1)/2;
- for(;lof<bi;lof++){
- int ii=(lof<0?-lof:lof);
- double bin=(f[ii]<-offset?1.:f[ii]+offset);
- double nn= bin*bin;
- nb -= nn;
- xb -= lof*nn;
- yb -= bin*nn;
- x2b -= lof*lof*nn;
- xyb -= lof*bin*nn;
- }
- }
-
- {
- double va=0.f;
-
- if(na>2){
- double denom=1./(na*x2a-xa*xa);
- double a=(ya*x2a-xya*xa)*denom;
- double b=(na*xya-xa*ya)*denom;
- va=a+b*i;
- }
- if(va<0.)va=0.;
-
- if(fixed>0){
- double vb=0.f;
-
- if(nb>2){
- double denomf=1./(nb*x2b-xb*xb);
- double af=(yb*x2b-xyb*xb)*denomf;
- double bf=(nb*xyb-xb*yb)*denomf;
- vb=af+bf*i;
- }
- if(vb<0.)vb=0.;
- if(va>vb && vb>0.)va=vb;
-
- }
-
- noise[i]=va-offset;
- }
- }
-}
-
-
-void _vp_remove_floor(vorbis_look_psy *p,
- float *mdct,
- float *codedflr,
- float *residue){
- int i,n=p->n;
-
- for(i=0;i<n;i++)
- if(mdct[i]!=0.f)
- residue[i]=mdct[i]/codedflr[i];
- else
- residue[i]=0.f;
-}
-
-
-void _vp_compute_mask(vorbis_look_psy *p,
- float *logfft,
- float *logmdct,
- float *logmask,
- float global_specmax,
- float local_specmax,
- float bitrate_noise_offset){
- int i,n=p->n;
- static int seq=0;
-
- float *seed=alloca(sizeof(*seed)*p->total_octave_lines);
- for(i=0;i<p->total_octave_lines;i++)seed[i]=NEGINF;
-
- /* noise masking */
- if(p->vi->noisemaskp){
- float *work=alloca(n*sizeof(*work));
-
- bark_noise_hybridmp(n,p->bark,logmdct,logmask,
- 140.,-1);
-
- for(i=0;i<n;i++)work[i]=logmdct[i]-logmask[i];
-
- bark_noise_hybridmp(n,p->bark,work,logmask,0.,
- p->vi->noisewindowfixed);
-
- for(i=0;i<n;i++)work[i]=logmdct[i]-work[i];
-
- /* work[i] holds the median line (.5), logmask holds the upper
- envelope line (1.) */
- _analysis_output("noisemedian",seq,work,n,1,0);
-
- for(i=0;i<n;i++)logmask[i]+=work[i];
- _analysis_output("noiseenvelope",seq,logmask,n,1,0);
- for(i=0;i<n;i++)logmask[i]-=work[i];
-
- for(i=0;i<n;i++){
- int dB=logmask[i]+.5;
- if(dB>=NOISE_COMPAND_LEVELS)dB=NOISE_COMPAND_LEVELS-1;
- logmask[i]= work[i]+p->vi->noisecompand[dB]+p->noiseoffset[i]+bitrate_noise_offset;
- if(logmask[i]>p->vi->noisemaxsupp)logmask[i]=p->vi->noisemaxsupp;
- }
- _analysis_output("noise",seq,logmask,n,1,0);
-
- }else{
- for(i=0;i<n;i++)logmask[i]=NEGINF;
- }
-
- /* set the ATH (floating below localmax, not global max by a
- specified att) */
- if(p->vi->ath){
- float att=local_specmax+p->vi->ath_adjatt;
- if(att<p->vi->ath_maxatt)att=p->vi->ath_maxatt;
-
- for(i=0;i<n;i++){
- float av=p->ath[i]+att;
- if(av>logmask[i])logmask[i]=av;
- }
- }
-
- /* tone masking */
- seed_loop(p,(const float ***)p->tonecurves,logfft,logmask,seed,global_specmax);
- max_seeds(p,seed,logmask);
-
- /* doing this here is clean, but we need to find a faster way to do
- it than to just tack it on */
-
- for(i=0;i<n;i++)if(logmdct[i]>=logmask[i])break;
- if(i==n)
- for(i=0;i<n;i++)logmask[i]=NEGINF;
- else
- for(i=0;i<n;i++)
- logfft[i]=max(logmdct[i],logfft[i]);
-
- seq++;
-
-}
-
-float _vp_ampmax_decay(float amp,vorbis_dsp_state *vd){
- vorbis_info *vi=vd->vi;
- codec_setup_info *ci=vi->codec_setup;
- vorbis_info_psy_global *gi=&ci->psy_g_param;
-
- int n=ci->blocksizes[vd->W]/2;
- float secs=(float)n/vi->rate;
-
- amp+=secs*gi->ampmax_att_per_sec;
- if(amp<-9999)amp=-9999;
- return(amp);
-}
-
-static void couple_lossless(float A, float B,
- float granule,float igranule,
- float *mag, float *ang,
- int flip_p){
-
- if(fabs(A)>fabs(B)){
- A=rint(A*igranule)*granule; /* must be done *after* the comparison */
- B=rint(B*igranule)*granule;
-
- *mag=A; *ang=(A>0.f?A-B:B-A);
- }else{
- A=rint(A*igranule)*granule;
- B=rint(B*igranule)*granule;
-
- *mag=B; *ang=(B>0.f?A-B:B-A);
- }
-
- if(flip_p && *ang>fabs(*mag)*1.9999f){
- *ang= -fabs(*mag)*2.f;
- *mag= -*mag;
- }
-}
-
-static void couple_point(float A, float B, float fA, float fB,
- float granule,float igranule,
- float fmag, float *mag, float *ang){
-
- float origmag=FAST_HYPOT(A*fA,B*fB),corr;
-
- if(fmag!=0.f){
-
- if(fabs(A)>fabs(B)){
- *mag=A;
- }else{
- *mag=B;
- }
-
- corr=origmag/FAST_HYPOT(fmag*fA,fmag*fB);
- *mag=rint(*mag*corr*igranule)*granule;
- *ang=0.f;
-
- }else{
- *mag=0.f;
- *ang=0.f;
- }
-}
-
-
-void _vp_quantize_couple(vorbis_look_psy *p,
- vorbis_info_mapping0 *vi,
- float **pcm,
- float **sofar,
- float **quantized,
- int *nonzero,
- int passno){
-
- int i,j,k,n=p->n;
- vorbis_info_psy *info=p->vi;
-
- /* perform any requested channel coupling */
- for(i=0;i<vi->coupling_steps;i++){
- float granulem=info->couple_pass[passno].granulem;
- float igranulem=info->couple_pass[passno].igranulem;
-
- /* make sure coupling a zero and a nonzero channel results in two
- nonzero channels. */
- if(nonzero[vi->coupling_mag[i]] ||
- nonzero[vi->coupling_ang[i]]){
-
- float *pcmM=pcm[vi->coupling_mag[i]];
- float *pcmA=pcm[vi->coupling_ang[i]];
- float *floorM=pcm[vi->coupling_mag[i]]+n;
- float *floorA=pcm[vi->coupling_ang[i]]+n;
- float *sofarM=sofar[vi->coupling_mag[i]];
- float *sofarA=sofar[vi->coupling_ang[i]];
- float *qM=quantized[vi->coupling_mag[i]];
- float *qA=quantized[vi->coupling_ang[i]];
-
- nonzero[vi->coupling_mag[i]]=1;
- nonzero[vi->coupling_ang[i]]=1;
-
- for(j=0,k=0;j<n;k++){
- vp_couple *part=info->couple_pass[passno].couple_pass+k;
- float rqlimit=part->outofphase_requant_limit;
- int flip_p=part->outofphase_redundant_flip_p;
-
- for(;j<part->limit && j<p->n;j++){
- /* partition by partition; k is our by-location partition
- class counter */
- float ang,mag,fmag=max(fabs(pcmM[j]),fabs(pcmA[j]));
-
- if(fmag<part->amppost_point){
- couple_point(pcmM[j],pcmA[j],floorM[j],floorA[j],
- granulem,igranulem,fmag,&mag,&ang);
-
- }else{
- couple_lossless(pcmM[j],pcmA[j],
- granulem,igranulem,&mag,&ang,flip_p);
- }
-
- /* executive decision time: when requantizing and recoupling
- residue in order to progressively encode at finer
- resolution, an out of phase component that originally
- quntized to 2*mag can flip flop magnitude/angle if it
- requantizes to not-quite out of phase. If that happens,
- we opt not to fill in additional resolution (in order to
- simplify the iterative codebook design and
- efficiency). */
-
- qM[j]=mag-sofarM[j];
- qA[j]=ang-sofarA[j];
-
- if(qA[j]<-rqlimit || qA[j]>rqlimit){
- qM[j]=0.f;
- qA[j]=0.f;
- }
- }
- }
- }
- }
-}
diff --git a/lib/psy.h b/lib/psy.h
deleted file mode 100644
index 542062a3..00000000
--- a/lib/psy.h
+++ /dev/null
@@ -1,161 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: random psychoacoustics (not including preecho)
- last mod: $Id: psy.h,v 1.27 2001/12/20 01:00:29 segher Exp $
-
- ********************************************************************/
-
-#ifndef _V_PSY_H_
-#define _V_PSY_H_
-#include "smallft.h"
-
-#include "backends.h"
-
-#ifndef EHMER_MAX
-#define EHMER_MAX 56
-#endif
-
-/* psychoacoustic setup ********************************************/
-#define MAX_BARK 27
-#define P_BANDS 17
-#define P_LEVELS 11
-
-typedef struct vp_couple{
- int limit; /* sample post */
-
- int outofphase_redundant_flip_p;
- float outofphase_requant_limit;
-
- float amppost_point;
-
-} vp_couple;
-
-typedef struct vp_couple_pass{
- float granulem;
- float igranulem;
-
- vp_couple couple_pass[8];
-} vp_couple_pass;
-
-typedef struct vp_attenblock{
- float block[P_BANDS][P_LEVELS];
-} vp_attenblock;
-
-#define NOISE_COMPAND_LEVELS 40
-typedef struct vorbis_info_psy{
- float ath[27];
-
- float ath_adjatt;
- float ath_maxatt;
-
- float tone_masteratt;
- float tone_guard;
- float tone_abs_limit;
- vp_attenblock toneatt;
-
- int peakattp;
- int curvelimitp;
- vp_attenblock peakatt;
-
- int noisemaskp;
- float noisemaxsupp;
- float noisewindowlo;
- float noisewindowhi;
- int noisewindowlomin;
- int noisewindowhimin;
- int noisewindowfixed;
- float noiseoff[P_BANDS];
- float noisecompand[NOISE_COMPAND_LEVELS];
-
- float max_curve_dB;
-
- vp_couple_pass couple_pass[8];
-
-} vorbis_info_psy;
-
-typedef struct{
- int eighth_octave_lines;
-
- /* for block long/short tuning; encode only */
- float preecho_thresh[4];
- float postecho_thresh[4];
- float preecho_minenergy;
-
- float ampmax_att_per_sec;
-
- /* delay caching... how many samples to keep around prior to our
- current block to aid in analysis? */
- int delaycache;
-} vorbis_info_psy_global;
-
-typedef struct {
- float ampmax;
- int channels;
-
- vorbis_info_psy_global *gi;
-} vorbis_look_psy_global;
-
-
-typedef struct {
- int n;
- struct vorbis_info_psy *vi;
-
- float ***tonecurves;
- float *noisethresh;
- float *noiseoffset;
-
- float *ath;
- long *octave; /* in n.ocshift format */
- long *bark;
-
- long firstoc;
- long shiftoc;
- int eighth_octave_lines; /* power of two, please */
- int total_octave_lines;
- long rate; /* cache it */
-} vorbis_look_psy;
-
-extern void _vp_psy_init(vorbis_look_psy *p,vorbis_info_psy *vi,
- vorbis_info_psy_global *gi,int n,long rate);
-extern void _vp_psy_clear(vorbis_look_psy *p);
-extern void *_vi_psy_dup(void *source);
-
-extern void _vi_psy_free(vorbis_info_psy *i);
-extern vorbis_info_psy *_vi_psy_copy(vorbis_info_psy *i);
-
-extern void _vp_remove_floor(vorbis_look_psy *p,
- float *mdct,
- float *codedflr,
- float *residue);
-
-extern void _vp_compute_mask(vorbis_look_psy *p,
- float *fft,
- float *mdct,
- float *mask,
- float global_specmax,
- float local_specmax,
- float bitrate_noise_offset);
-
-extern void _vp_quantize_couple(vorbis_look_psy *p,
- vorbis_info_mapping0 *vi,
- float **pcm,
- float **sofar,
- float **quantized,
- int *nonzero,
- int passno);
-
-extern float _vp_ampmax_decay(float amp,vorbis_dsp_state *vd);
-
-#endif
-
-
diff --git a/lib/psytune.c b/lib/psytune.c
deleted file mode 100644
index 6e5584f8..00000000
--- a/lib/psytune.c
+++ /dev/null
@@ -1,521 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2002 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: simple utility that runs audio through the psychoacoustics
- without encoding
- last mod: $Id: psytune.c,v 1.19 2002/01/22 08:06:07 xiphmont Exp $
-
- ********************************************************************/
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <math.h>
-
-#include "vorbis/codec.h"
-#include "codec_internal.h"
-#include "os.h"
-#include "misc.h"
-#include "psy.h"
-#include "mdct.h"
-#include "smallft.h"
-#include "window.h"
-#include "scales.h"
-#include "lpc.h"
-#include "lsp.h"
-#include "masking.h"
-#include "registry.h"
-
-static vorbis_info_psy_global _psy_set0G={
- 0, /* decaydBpms */
- 8, /* lines per eighth octave */
-
- /* thresh sample period, preecho clamp trigger threshhold, range, minenergy */
- 256, {26.f,26.f,26.f,30.f}, {-90.f,-90.f,-90.f,-90.f}, -90.f,
- -6.f,
-
- 0,
-
- 0.,
- 0.,
-};
-
-static vp_part _vp_part0[]={
- { 1,9e10f, 9e10f, 1.f,9999.f},
- { 9999, .75f, 9e10f, .5f,9999.f},
-/*{ 9999, 1.5f, 9e10f, .5f,9999.f},*/
- { 18,9e10f, 9e10f, .5f, 30.f},
- { 9999,9e10f, 9e10f, .5f, 30.f}
-};
-
-static vp_couple _vp_couple0[]={
- { 1, {9e10f,9e10f,0}, { 0.f, 0.f,0}, { 0.f, 0.f,0}, {0.f,0.f,0}},
- { 18, {9e10f,9e10f,0}, { 0.f, 0.f,0}, { 0.f, 0.f,0}, {0.f,0.f,0}},
- { 9999, {9e10f,9e10f,0}, { 0.f, 9e10f,0}, { 0.f,22.f,1}, {0.f,0.f,0}}
-};
-
-static vorbis_info_psy _psy_set0={
- ATH_Bark_dB_lineaggressive,
-
- -100.f,
- -140.f,
- 6.f, /* floor master att */
-
- /* 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 */
- /* x: 63 88 125 175 250 350 500 700 1k 1.4k 2k 2.8k 4k 5.6k 8k 11.5k 16k Hz */
- /* y: 0 10 20 30 40 50 60 70 80 90 100 dB */
- 1, /* tonemaskp */
- 0.f, /* tone master att */
- /* 0 10 20 30 40 50 60 70 80 90 100 */
- {
- {-999.f,-999.f,-999.f,-999.f,-999.f,-999.f,-999.f,-999.f,-999.f,-999.f,-999.f}, /*63*/
- {-999.f,-999.f,-999.f,-999.f,-999.f,-999.f,-999.f,-999.f,-999.f,-999.f,-999.f}, /*88*/
- {-999.f,-999.f,-999.f,-999.f,-999.f,-999.f,-999.f,-999.f,-999.f,-999.f,-999.f}, /*125*/
-
- {-30.f,-30.f,-35.f,-40.f,-40.f,-50.f,-60.f,-70.f,-80.f,-90.f,-100.f}, /*175*/
- {-30.f,-30.f,-35.f,-40.f,-40.f,-50.f,-60.f,-70.f,-80.f,-90.f,-100.f}, /*250*/
- {-30.f,-30.f,-35.f,-40.f,-40.f,-50.f,-60.f,-70.f,-80.f,-90.f,-100.f}, /*350*/
- {-30.f,-30.f,-35.f,-40.f,-40.f,-50.f,-60.f,-70.f,-80.f,-90.f,-100.f}, /*500*/
- {-30.f,-30.f,-35.f,-40.f,-40.f,-50.f,-60.f,-70.f,-80.f,-90.f,-100.f}, /*700*/
- {-30.f,-30.f,-35.f,-40.f,-40.f,-50.f,-60.f,-70.f,-80.f,-90.f,-100.f}, /*1000*/
- {-30.f,-30.f,-35.f,-40.f,-40.f,-50.f,-60.f,-70.f,-80.f,-90.f,-100.f}, /*1400*/
- {-40.f,-40.f,-40.f,-40.f,-40.f,-50.f,-60.f,-70.f,-80.f,-90.f,-100.f}, /*2000*/
- {-40.f,-40.f,-40.f,-40.f,-40.f,-50.f,-60.f,-70.f,-80.f,-90.f,-100.f}, /*2800*/
- {-40.f,-40.f,-40.f,-40.f,-40.f,-50.f,-60.f,-70.f,-80.f,-90.f,-100.f}, /*4000*/
-
- {-30.f,-35.f,-35.f,-40.f,-40.f,-50.f,-60.f,-70.f,-80.f,-90.f,-100.f}, /*5600*/
-
- {-30.f,-30.f,-33.f,-35.f,-40.f,-50.f,-60.f,-70.f,-80.f,-90.f,-100.f}, /*8000*/
- {-30.f,-30.f,-33.f,-35.f,-40.f,-45.f,-50.f,-60.f,-70.f,-85.f,-100.f}, /*11500*/
- {-24.f,-24.f,-26.f,-32.f,-32.f,-42.f,-50.f,-60.f,-70.f,-85.f,-100.f}, /*16000*/
-
- },
-
- 1,/* peakattp */
- {{-14.f,-20.f,-20.f,-20.f,-26.f,-32.f,-40.f,-40.f,-40.f,-40.f,-40.f},/*63*/
- {-14.f,-20.f,-20.f,-20.f,-26.f,-32.f,-40.f,-40.f,-40.f,-40.f,-40.f},/*88*/
- {-14.f,-20.f,-20.f,-20.f,-26.f,-32.f,-40.f,-40.f,-40.f,-40.f,-40.f},/*125*/
- {-14.f,-20.f,-20.f,-20.f,-26.f,-32.f,-40.f,-40.f,-40.f,-40.f,-40.f},/*175*/
- {-14.f,-20.f,-20.f,-20.f,-26.f,-32.f,-40.f,-40.f,-40.f,-40.f,-40.f},/*250*/
- {-14.f,-20.f,-20.f,-20.f,-26.f,-32.f,-40.f,-40.f,-40.f,-40.f,-40.f},/*350*/
- {-14.f,-20.f,-20.f,-20.f,-26.f,-32.f,-40.f,-40.f,-40.f,-40.f,-40.f},/*500*/
- {-14.f,-20.f,-20.f,-20.f,-26.f,-32.f,-40.f,-40.f,-40.f,-40.f,-40.f},/*700*/
- {-14.f,-20.f,-20.f,-20.f,-26.f,-32.f,-40.f,-40.f,-40.f,-40.f,-40.f},/*1000*/
- {-14.f,-20.f,-20.f,-20.f,-26.f,-32.f,-40.f,-40.f,-40.f,-40.f,-40.f},/*1400*/
- {-14.f,-20.f,-20.f,-20.f,-26.f,-32.f,-40.f,-40.f,-40.f,-40.f,-40.f},/*2000*/
- {-14.f,-20.f,-20.f,-20.f,-26.f,-32.f,-40.f,-40.f,-40.f,-40.f,-40.f},/*2800*/
- {-14.f,-20.f,-20.f,-20.f,-26.f,-32.f,-40.f,-40.f,-40.f,-40.f,-40.f},/*4000*/
- {-10.f,-12.f,-14.f,-16.f,-16.f,-20.f,-24.f,-30.f,-32.f,-40.f,-40.f},/*5600*/
- {-10.f,-12.f,-14.f,-16.f,-16.f,-20.f,-24.f,-30.f,-32.f,-40.f,-40.f},/*8000*/
- {-10.f,-10.f,-10.f,-12.f,-14.f,-18.f,-22.f,-28.f,-32.f,-40.f,-40.f},/*11500*/
- {-10.f,-10.f,-10.f,-12.f,-14.f,-18.f,-22.f,-28.f,-32.f,-40.f,-40.f},/*16000*/
- },
-
- 1,/*noisemaskp */
- -10.f, /* suppress any noise curve over maxspec+n */
- .5f, /* low window */
- .5f, /* high window */
- 10,
- 10,
- 25,
- {.000f, 0.f, /*63*/
- .000f, 0.f, /*88*/
- .000f, 0.f, /*125*/
- .000f, 0.f, /*175*/
- .000f, 0.f, /*250*/
- .000f, 0.f, /*350*/
- .000f, 0.f, /*500*/
- .000f, 0.f, /*700*/
- .000f, 0.f, /*1000*/
- .300f, 0.f, /*1400*/
- .300f, 0.f, /*2000*/
- .300f, 0.f, /*2800*/
- .500f, 0.f, /*4000*/
- .700f, 0.f, /*5600*/
- .850f, 0.f, /*8000*/
- .900f, 0.f, /*11500*/
- .900f, 1.f, /*16000*/
- },
-
- 95.f, /* even decade + 5 is important; saves an rint() later in a
- tight loop) */
- -44.,
-
- 32,
- _vp_part0,_vp_couple0
-};
-
-static vorbis_info_floor1 _floor_set0={1,
- {0},
-
- {32},
- {0},
- {0},
- {{-1}},
-
- 2,
- {0,1024,
-
- 88,31,243,
-
- 14,54,143,460,
-
- 6,3,10, 22,18,26, 41,36,47,
- 69,61,78, 112,99,126, 185,162,211,
- 329,282,387, 672,553,825
- },
-
- 60,30,400,
- 20,8,1,18.,
- 20,600,
- 960};
-
-
-static vorbis_info_mapping0 mapping_info={1,{0,1},{0},{0},{0},0, 1, {0},{1}};
-static codec_setup_info codec_setup0={ {0,0},
- 1,1,1,1,1,0,1,
- {NULL},
- {0},{&mapping_info},
- {0},{NULL},
- {1},{&_floor_set0},
- {2},{NULL},
- {NULL},
- {&_psy_set0},
- &_psy_set0G};
-
-static int noisy=0;
-void analysis(char *base,int i,float *v,int n,int bark,int dB){
- if(noisy){
- int j;
- FILE *of;
- char buffer[80];
- sprintf(buffer,"%s_%d.m",base,i);
- of=fopen(buffer,"w");
-
- for(j=0;j<n;j++){
- if(dB && v[j]==0)
- fprintf(of,"\n\n");
- else{
- if(bark)
- fprintf(of,"%g ",toBARK(22050.f*j/n));
- else
- fprintf(of,"%g ",(float)j);
-
- if(dB){
- fprintf(of,"%g\n",todB(v+j));
- }else{
- fprintf(of,"%g\n",v[j]);
- }
- }
- }
- fclose(of);
- }
-}
-
-long frameno=0;
-
-/****************************************************************/
-
-int main(int argc,char *argv[]){
- int eos=0;
- float nonz=0.f;
- float acc=0.f;
- float tot=0.f;
- float ampmax=-9999,newmax;
- float local_ampmax[2];
-
- int framesize=2048;
- float ampmax_att_per_sec=-6.;
-
- float *pcm[2],*out[2],*window,*flr[2],*mask[2],*work[2];
- signed char *buffer,*buffer2;
- mdct_lookup m_look;
- drft_lookup f_look;
- vorbis_look_psy p_look;
- vorbis_look_psy_global *pg_look;
- vorbis_look_floor *floor_look;
- vorbis_info vi;
- long i,j,k;
-
- int ath=0;
- int decayp=0;
-
- argv++;
- while(*argv){
- if(*argv[0]=='-'){
- /* option */
- if(argv[0][1]=='v'){
- noisy=0;
- }
- }else
- if(*argv[0]=='+'){
- /* option */
- if(argv[0][1]=='v'){
- noisy=1;
- }
- }else
- framesize=atoi(argv[0]);
- argv++;
- }
-
- vi.channels=2;
- vi.codec_setup=&codec_setup0;
-
- pcm[0]=_ogg_malloc(framesize*sizeof(float));
- pcm[1]=_ogg_malloc(framesize*sizeof(float));
- out[0]=_ogg_calloc(framesize/2,sizeof(float));
- out[1]=_ogg_calloc(framesize/2,sizeof(float));
- work[0]=_ogg_calloc(framesize,sizeof(float));
- work[1]=_ogg_calloc(framesize,sizeof(float));
- flr[0]=_ogg_calloc(framesize/2,sizeof(float));
- flr[1]=_ogg_calloc(framesize/2,sizeof(float));
- buffer=_ogg_malloc(framesize*4);
- buffer2=buffer+framesize*2;
- window=_vorbis_window(0,framesize,framesize/2,framesize/2);
- mdct_init(&m_look,framesize);
- drft_init(&f_look,framesize);
- _vp_psy_init(&p_look,&_psy_set0,&_psy_set0G,framesize/2,44100);
- pg_look=_vp_global_look(&vi);
- floor_look=_floor_P[1]->look(NULL,NULL,&_floor_set0);
-
- /* we cheat on the WAV header; we just bypass 44 bytes and never
- verify that it matches 16bit/stereo/44.1kHz. */
-
- fread(buffer,1,44,stdin);
- fwrite(buffer,1,44,stdout);
- memset(buffer,0,framesize*2);
-
- analysis("window",0,window,framesize,0,0);
-
- fprintf(stderr,"Processing for frame size %d...\n",framesize);
-
- while(!eos){
- long bytes=fread(buffer2,1,framesize*2,stdin);
- if(bytes<framesize*2)
- memset(buffer2+bytes,0,framesize*2-bytes);
-
- if(bytes!=0){
- int nonzero[2];
-
- /* uninterleave samples */
- for(i=0;i<framesize;i++){
- pcm[0][i]=((buffer[i*4+1]<<8)|
- (0x00ff&(int)buffer[i*4]))/32768.f;
- pcm[1][i]=((buffer[i*4+3]<<8)|
- (0x00ff&(int)buffer[i*4+2]))/32768.f;
- }
-
- {
- float secs=framesize/44100.;
-
- ampmax+=secs*ampmax_att_per_sec;
- if(ampmax<-9999)ampmax=-9999;
- }
-
- for(i=0;i<2;i++){
- float scale=4.f/framesize;
- float *fft=work[i];
- float *mdct=pcm[i];
- float *logmdct=mdct+framesize/2;
-
- analysis("pre",frameno+i,pcm[i],framesize,0,0);
-
- /* fft and mdct transforms */
- for(j=0;j<framesize;j++)
- fft[j]=pcm[i][j]*=window[j];
-
- drft_forward(&f_look,fft);
-
- local_ampmax[i]=-9999.f;
- fft[0]*=scale;
- fft[0]=todB(fft);
- for(j=1;j<framesize-1;j+=2){
- float temp=scale*FAST_HYPOT(fft[j],fft[j+1]);
- temp=fft[(j+1)>>1]=todB(&temp);
- if(temp>local_ampmax[i])local_ampmax[i]=temp;
- }
- if(local_ampmax[i]>ampmax)ampmax=local_ampmax[i];
-
- mdct_forward(&m_look,pcm[i],mdct);
- for(j=0;j<framesize/2;j++)
- logmdct[j]=todB(mdct+j);
-
- analysis("mdct",frameno+i,logmdct,framesize/2,1,0);
- analysis("fft",frameno+i,fft,framesize/2,1,0);
- }
-
- for(i=0;i<2;i++){
- float amp;
- float *fft=work[i];
- float *logmax=fft;
- float *mdct=pcm[i];
- float *logmdct=mdct+framesize/2;
- float *mask=fft+framesize/2;
-
- /* floor psychoacoustics */
- _vp_compute_mask(&p_look,
- pg_look,
- i,
- fft,
- logmdct,
- mask,
- ampmax,
- local_ampmax[i],
- framesize/2);
-
- analysis("mask",frameno+i,mask,framesize/2,1,0);
-
- {
- vorbis_block vb;
- vorbis_dsp_state vd;
- memset(&vd,0,sizeof(vd));
- vd.vi=&vi;
- vb.vd=&vd;
- vb.pcmend=framesize;
-
- /* floor quantization/application */
- nonzero[i]=_floor_P[1]->forward(&vb,floor_look,
- mdct,
- logmdct,
- mask,
- logmax,
-
- flr[i]);
- }
-
- _vp_remove_floor(&p_look,
- pg_look,
- logmdct,
- mdct,
- flr[i],
- pcm[i],
- local_ampmax[i]);
-
- for(j=0;j<framesize/2;j++)
- if(fabs(pcm[i][j])>1500)
- fprintf(stderr,"%ld ",frameno+i);
-
- analysis("res",frameno+i,pcm[i],framesize/2,1,0);
- analysis("codedflr",frameno+i,flr[i],framesize/2,1,1);
- }
-
- /* residue prequantization */
- _vp_partition_prequant(&p_look,
- &vi,
- pcm,
- nonzero);
-
- for(i=0;i<2;i++)
- analysis("quant",frameno+i,pcm[i],framesize/2,1,0);
-
- /* channel coupling / stereo quantization */
-
- _vp_couple(&p_look,
- &mapping_info,
- pcm,
- nonzero);
-
- for(i=0;i<2;i++)
- analysis("coupled",frameno+i,pcm[i],framesize/2,1,0);
-
- /* decoupling */
- for(i=mapping_info.coupling_steps-1;i>=0;i--){
- float *pcmM=pcm[mapping_info.coupling_mag[i]];
- float *pcmA=pcm[mapping_info.coupling_ang[i]];
-
- for(j=0;j<framesize/2;j++){
- float mag=pcmM[j];
- float ang=pcmA[j];
-
- if(mag>0)
- if(ang>0){
- pcmM[j]=mag;
- pcmA[j]=mag-ang;
- }else{
- pcmA[j]=mag;
- pcmM[j]=mag+ang;
- }
- else
- if(ang>0){
- pcmM[j]=mag;
- pcmA[j]=mag+ang;
- }else{
- pcmA[j]=mag;
- pcmM[j]=mag-ang;
- }
- }
- }
-
- for(i=0;i<2;i++)
- analysis("decoupled",frameno+i,pcm[i],framesize/2,1,0);
-
- for(i=0;i<2;i++){
- float amp;
-
- for(j=0;j<framesize/2;j++)
- pcm[i][j]*=flr[i][j];
-
- analysis("final",frameno+i,pcm[i],framesize/2,1,1);
-
- /* take it back to time */
- mdct_backward(&m_look,pcm[i],pcm[i]);
-
- for(j=0;j<framesize/2;j++)
- out[i][j]+=pcm[i][j]*window[j];
-
- analysis("out",frameno+i,out[i],framesize/2,0,0);
-
-
- }
-
- /* write data. Use the part of buffer we're about to shift out */
- for(i=0;i<2;i++){
- char *ptr=buffer+i*2;
- float *mono=out[i];
- int flag=0;
- for(j=0;j<framesize/2;j++){
- int val=mono[j]*32767.;
- /* might as well guard against clipping */
- if(val>32767){
- if(!flag)fprintf(stderr,"clipping in frame %ld ",frameno+i);
- flag=1;
- val=32767;
- }
- if(val<-32768){
- if(!flag)fprintf(stderr,"clipping in frame %ld ",frameno+i);
- flag=1;
- val=-32768;
- }
- ptr[0]=val&0xff;
- ptr[1]=(val>>8)&0xff;
- ptr+=4;
- }
- }
-
- fprintf(stderr,"*");
- fwrite(buffer,1,framesize*2,stdout);
- memmove(buffer,buffer2,framesize*2);
-
- for(i=0;i<2;i++){
- for(j=0,k=framesize/2;j<framesize/2;j++,k++)
- out[i][j]=pcm[i][k]*window[k];
- }
- frameno+=2;
- }else
- eos=1;
- }
- fprintf(stderr,"average raw bits of entropy: %.03g/sample\n",acc/tot);
- fprintf(stderr,"average nonzero samples: %.03g/%d\n",nonz/tot*framesize/2,
- framesize/2);
- fprintf(stderr,"Done\n\n");
- return 0;
-}
diff --git a/lib/registry-api.h b/lib/registry-api.h
deleted file mode 100644
index 8438a39e..00000000
--- a/lib/registry-api.h
+++ /dev/null
@@ -1,23 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: registry exposure
- last mod: $Id: registry-api.h,v 1.2 2001/12/12 09:45:25 xiphmont Exp $
-
- ********************************************************************/
-
-#ifndef _V_REGAPI_H_
-#define _V_REGAPI_H_
-
-extern void residue_free_info(vorbis_info_residue *r,int type);
-
-#endif
diff --git a/lib/registry.c b/lib/registry.c
deleted file mode 100644
index f1d7b4eb..00000000
--- a/lib/registry.c
+++ /dev/null
@@ -1,60 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: registry for time, floor, res backends and channel mappings
- last mod: $Id: registry.c,v 1.13 2001/12/20 01:00:29 segher Exp $
-
- ********************************************************************/
-
-#include "vorbis/codec.h"
-#include "codec_internal.h"
-#include "registry.h"
-#include "registry-api.h"
-#include "misc.h"
-
-
-/* seems like major overkill now; the backend numbers will grow into
- the infrastructure soon enough */
-
-extern vorbis_func_time time0_exportbundle;
-extern vorbis_func_floor floor0_exportbundle;
-extern vorbis_func_floor floor1_exportbundle;
-extern vorbis_func_residue residue0_exportbundle;
-extern vorbis_func_residue residue1_exportbundle;
-extern vorbis_func_residue residue2_exportbundle;
-extern vorbis_func_mapping mapping0_exportbundle;
-
-vorbis_func_time *_time_P[]={
- &time0_exportbundle,
-};
-
-vorbis_func_floor *_floor_P[]={
- &floor0_exportbundle,
- &floor1_exportbundle,
-};
-
-vorbis_func_residue *_residue_P[]={
- &residue0_exportbundle,
- &residue1_exportbundle,
- &residue2_exportbundle,
-};
-
-vorbis_func_mapping *_mapping_P[]={
- &mapping0_exportbundle,
-};
-
-/* make Windows happy; can't access the registry directly outside of
- libvorbis, and vorbisenc needs a few functions */
-void residue_free_info(vorbis_info_residue *r,int type){
- _residue_P[type]->free_info(r);
-}
-
diff --git a/lib/registry.h b/lib/registry.h
deleted file mode 100644
index fe8b00e6..00000000
--- a/lib/registry.h
+++ /dev/null
@@ -1,39 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: registry for time, floor, res backends and channel mappings
- last mod: $Id: registry.h,v 1.11 2001/12/20 01:00:29 segher Exp $
-
- ********************************************************************/
-
-#ifndef _V_REG_H_
-#define _V_REG_H_
-
-#define VI_TRANSFORMB 1
-#define VI_WINDOWB 1
-#define VI_TIMEB 1
-#define VI_FLOORB 2
-#define VI_RESB 3
-#define VI_MAPB 1
-
-#if defined(_WIN32) && defined(VORBISDLL_IMPORT)
-# define EXTERN __declspec(dllimport) extern
-#else
-# define EXTERN extern
-#endif
-
-EXTERN vorbis_func_time *_time_P[];
-EXTERN vorbis_func_floor *_floor_P[];
-EXTERN vorbis_func_residue *_residue_P[];
-EXTERN vorbis_func_mapping *_mapping_P[];
-
-#endif
diff --git a/lib/res0.c b/lib/res0.c
deleted file mode 100644
index 67019f81..00000000
--- a/lib/res0.c
+++ /dev/null
@@ -1,959 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2002 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: residue backend 0, 1 and 2 implementation
- last mod: $Id: res0.c,v 1.45 2002/01/22 08:06:07 xiphmont Exp $
-
- ********************************************************************/
-
-/* Slow, slow, slow, simpleminded and did I mention it was slow? The
- encode/decode loops are coded for clarity and performance is not
- yet even a nagging little idea lurking in the shadows. Oh and BTW,
- it's slow. */
-
-#include <stdlib.h>
-#include <string.h>
-#include <math.h>
-#include <ogg/ogg.h>
-#include "vorbis/codec.h"
-#include "codec_internal.h"
-#include "registry.h"
-#include "codebook.h"
-#include "misc.h"
-#include "os.h"
-
-#ifdef TRAIN_RES
-#include <stdio.h>
-#endif
-
-typedef struct {
- vorbis_info_residue0 *info;
- int map;
-
- int parts;
- int stages;
- codebook *fullbooks;
- codebook *phrasebook;
- codebook ***partbooks;
-
- int partvals;
- int **decodemap;
-
- long postbits;
- long phrasebits;
- long frames;
-
- int qoffsets[BITTRACK_DIVISOR+1];
-
-#ifdef TRAIN_RES
- long *training_data[8][64];
- float training_max[8][64];
- float training_min[8][64];
- int longp;
- float tmin;
- float tmax;
-#endif
-
-} vorbis_look_residue0;
-
-vorbis_info_residue *res0_copy_info(vorbis_info_residue *vr){
- vorbis_info_residue0 *info=(vorbis_info_residue0 *)vr;
- vorbis_info_residue0 *ret=_ogg_malloc(sizeof(*ret));
- memcpy(ret,info,sizeof(*ret));
- return(ret);
-}
-
-void res0_free_info(vorbis_info_residue *i){
- vorbis_info_residue0 *info=(vorbis_info_residue0 *)i;
- if(info){
- memset(info,0,sizeof(*info));
- _ogg_free(info);
- }
-}
-
-void res0_free_look(vorbis_look_residue *i){
- int j;
- if(i){
-
- vorbis_look_residue0 *look=(vorbis_look_residue0 *)i;
-
-#ifdef TRAIN_RES
- {
- int j,k,l;
- for(j=0;j<look->parts;j++){
- fprintf(stderr,"partition %d: ",j);
- for(k=0;k<8;k++)
- if(look->training_data[k][j]){
- char buffer[80];
- FILE *of;
- codebook *statebook=look->partbooks[j][k];
-
- /* long and short into the same bucket by current convention */
- sprintf(buffer,"res_part%d_pass%d.vqd",j,k);
- of=fopen(buffer,"a");
-
- for(l=0;l<statebook->entries;l++)
- fprintf(of,"%d:%ld\n",l,look->training_data[k][j][l]);
-
- fclose(of);
-
- fprintf(stderr,"%d(%.2f|%.2f) ",k,look->training_min[k][j],look->training_max[k][j]);
-
- _ogg_free(look->training_data[k][j]);
- }
- fprintf(stderr,"\n");
- }
- }
- fprintf(stderr,"min/max residue: %g::%g\n",look->tmin,look->tmax);
-
- fprintf(stderr,"residue bit usage %f:%f (%f total)\n",
- (float)look->phrasebits/look->frames,
- (float)look->postbits/look->frames,
- (float)(look->postbits+look->phrasebits)/look->frames);
-#endif
-
-
- /*vorbis_info_residue0 *info=look->info;
-
- fprintf(stderr,
- "%ld frames encoded in %ld phrasebits and %ld residue bits "
- "(%g/frame) \n",look->frames,look->phrasebits,
- look->resbitsflat,
- (look->phrasebits+look->resbitsflat)/(float)look->frames);
-
- for(j=0;j<look->parts;j++){
- long acc=0;
- fprintf(stderr,"\t[%d] == ",j);
- for(k=0;k<look->stages;k++)
- if((info->secondstages[j]>>k)&1){
- fprintf(stderr,"%ld,",look->resbits[j][k]);
- acc+=look->resbits[j][k];
- }
-
- fprintf(stderr,":: (%ld vals) %1.2fbits/sample\n",look->resvals[j],
- acc?(float)acc/(look->resvals[j]*info->grouping):0);
- }
- fprintf(stderr,"\n");*/
-
- for(j=0;j<look->parts;j++)
- if(look->partbooks[j])_ogg_free(look->partbooks[j]);
- _ogg_free(look->partbooks);
- for(j=0;j<look->partvals;j++)
- _ogg_free(look->decodemap[j]);
- _ogg_free(look->decodemap);
-
- memset(look,0,sizeof(*look));
- _ogg_free(look);
- }
-}
-
-static int ilog(unsigned int v){
- int ret=0;
- while(v){
- ret++;
- v>>=1;
- }
- return(ret);
-}
-
-static int icount(unsigned int v){
- int ret=0;
- while(v){
- ret+=v&1;
- v>>=1;
- }
- return(ret);
-}
-
-
-void res0_pack(vorbis_info_residue *vr,oggpack_buffer *opb){
- vorbis_info_residue0 *info=(vorbis_info_residue0 *)vr;
- int j,acc=0;
- oggpack_write(opb,info->begin,24);
- oggpack_write(opb,info->end,24);
-
- oggpack_write(opb,info->grouping-1,24); /* residue vectors to group and
- code with a partitioned book */
- oggpack_write(opb,info->partitions-1,6); /* possible partition choices */
- oggpack_write(opb,info->groupbook,8); /* group huffman book */
-
- /* secondstages is a bitmask; as encoding progresses pass by pass, a
- bitmask of one indicates this partition class has bits to write
- this pass */
- for(j=0;j<info->partitions;j++){
- if(ilog(info->secondstages[j])>3){
- /* yes, this is a minor hack due to not thinking ahead */
- oggpack_write(opb,info->secondstages[j],3);
- oggpack_write(opb,1,1);
- oggpack_write(opb,info->secondstages[j]>>3,5);
- }else
- oggpack_write(opb,info->secondstages[j],4); /* trailing zero */
- acc+=icount(info->secondstages[j]);
- }
- for(j=0;j<acc;j++)
- oggpack_write(opb,info->booklist[j],8);
-
-}
-
-/* vorbis_info is for range checking */
-vorbis_info_residue *res0_unpack(vorbis_info *vi,oggpack_buffer *opb){
- int j,acc=0;
- vorbis_info_residue0 *info=_ogg_calloc(1,sizeof(*info));
- codec_setup_info *ci=vi->codec_setup;
-
- info->begin=oggpack_read(opb,24);
- info->end=oggpack_read(opb,24);
- info->grouping=oggpack_read(opb,24)+1;
- info->partitions=oggpack_read(opb,6)+1;
- info->groupbook=oggpack_read(opb,8);
-
- for(j=0;j<info->partitions;j++){
- int cascade=oggpack_read(opb,3);
- if(oggpack_read(opb,1))
- cascade|=(oggpack_read(opb,5)<<3);
- info->secondstages[j]=cascade;
-
- acc+=icount(cascade);
- }
- for(j=0;j<acc;j++)
- info->booklist[j]=oggpack_read(opb,8);
-
- if(info->groupbook>=ci->books)goto errout;
- for(j=0;j<acc;j++)
- if(info->booklist[j]>=ci->books)goto errout;
-
- return(info);
- errout:
- res0_free_info(info);
- return(NULL);
-}
-
-vorbis_look_residue *res0_look(vorbis_dsp_state *vd,vorbis_info_mode *vm,
- vorbis_info_residue *vr){
- vorbis_info_residue0 *info=(vorbis_info_residue0 *)vr;
- vorbis_look_residue0 *look=_ogg_calloc(1,sizeof(*look));
- codec_setup_info *ci=vd->vi->codec_setup;
-
- int j,k,acc=0;
- int dim;
- int maxstage=0;
- look->info=info;
- look->map=vm->mapping;
-
- look->parts=info->partitions;
- look->fullbooks=ci->fullbooks;
- look->phrasebook=ci->fullbooks+info->groupbook;
- dim=look->phrasebook->dim;
-
- look->partbooks=_ogg_calloc(look->parts,sizeof(*look->partbooks));
-
- for(j=0;j<look->parts;j++){
- int stages=ilog(info->secondstages[j]);
- if(stages){
- if(stages>maxstage)maxstage=stages;
- look->partbooks[j]=_ogg_calloc(stages,sizeof(*look->partbooks[j]));
- for(k=0;k<stages;k++)
- if(info->secondstages[j]&(1<<k)){
- look->partbooks[j][k]=ci->fullbooks+info->booklist[acc++];
-#ifdef TRAIN_RES
- look->training_data[k][j]=calloc(look->partbooks[j][k]->entries,
- sizeof(***look->training_data));
-#endif
- }
- }
- }
-
- look->partvals=rint(pow((float)look->parts,(float)dim));
- look->stages=maxstage;
- look->decodemap=_ogg_malloc(look->partvals*sizeof(*look->decodemap));
- for(j=0;j<look->partvals;j++){
- long val=j;
- long mult=look->partvals/look->parts;
- look->decodemap[j]=_ogg_malloc(dim*sizeof(*look->decodemap[j]));
- for(k=0;k<dim;k++){
- long deco=val/mult;
- val-=deco*mult;
- mult/=look->parts;
- look->decodemap[j][k]=deco;
- }
- }
-
- {
- int samples_per_partition=info->grouping;
- int n=info->end-info->begin,i;
- int partvals=n/samples_per_partition;
-
- for(i=0;i<BITTRACK_DIVISOR;i++)
- look->qoffsets[i]=partvals*(i+1)/BITTRACK_DIVISOR;
-
- look->qoffsets[i]=9999999;
- }
-
- return(look);
-}
-
-
-#if 0
-/* does not guard against invalid settings; eg, a subn of 16 and a
- subgroup request of 32. Max subn of 128 */
-static int _interleaved_testhack(float *vec,int n,vorbis_look_residue0 *look,
- int auxparts,int auxpartnum){
- vorbis_info_residue0 *info=look->info;
- int i,j=0;
- float max,localmax=0.f;
- float temp[128];
- float entropy[8];
-
- /* setup */
- for(i=0;i<n;i++)temp[i]=fabs(vec[i]);
-
- /* handle case subgrp==1 outside */
- for(i=0;i<n;i++)
- if(temp[i]>localmax)localmax=temp[i];
- max=localmax;
-
- for(i=0;i<n;i++)temp[i]=rint(temp[i]);
-
- while(1){
- entropy[j]=localmax;
- n>>=1;
- if(!n)break;
- j++;
-
- for(i=0;i<n;i++){
- temp[i]+=temp[i+n];
- }
- localmax=0.f;
- for(i=0;i<n;i++)
- if(temp[i]>localmax)localmax=temp[i];
- }
-
- for(i=0;i<auxparts-1;i++)
- if(auxpartnum<info->blimit[i] &&
- entropy[info->subgrp[i]]<=info->entmax[i] &&
- max<=info->ampmax[i])
- break;
-
- return(i);
-}
-#endif
-
-
-static int _testhack(float *vec,int n,vorbis_look_residue0 *look,
- int auxparts,int auxpartnum){
- vorbis_info_residue0 *info=look->info;
- int i;
- float max=0.f;
- float temp[128];
- float entropy=0.f;
-
- /* setup */
- for(i=0;i<n;i++)temp[i]=fabs(vec[i]);
-
- for(i=0;i<n;i++)
- if(temp[i]>max)max=temp[i];
-
- for(i=0;i<n;i++)temp[i]=rint(temp[i]);
-
- for(i=0;i<n;i++)
- entropy+=temp[i];
-
- for(i=0;i<auxparts-1;i++)
- if(auxpartnum<info->blimit[i] &&
- entropy<=info->entmax[i] &&
- max<=info->ampmax[i])
- break;
-
- return(i);
-}
-
-static int _interleaved_encodepart(oggpack_buffer *opb,float *vec, int n,
- codebook *book,long *acc){
- int i,bits=0;
- int dim=book->dim;
- int step=n/dim;
-
- for(i=0;i<step;i++){
- int entry=vorbis_book_besterror(book,vec+i,step,0);
-
-#ifdef TRAIN_RES
- acc[entry]++;
-#endif
-
- bits+=vorbis_book_encode(book,entry,opb);
- }
-
- return(bits);
-}
-
-static int _encodepart(oggpack_buffer *opb,float *vec, int n,
- codebook *book,long *acc){
- int i,bits=0;
- int dim=book->dim;
- int step=n/dim;
-
- for(i=0;i<step;i++){
- int entry=vorbis_book_besterror(book,vec+i*dim,1,0);
-
-#ifdef TRAIN_RES
- acc[entry]++;
-#endif
-
- bits+=vorbis_book_encode(book,entry,opb);
- }
-
- return(bits);
-}
-
-static long **_01class(vorbis_block *vb,vorbis_look_residue *vl,
- float **in,int ch,
- int (*classify)(float *,int,vorbis_look_residue0 *,
- int,int)){
- long i,j;
- vorbis_look_residue0 *look=(vorbis_look_residue0 *)vl;
- vorbis_info_residue0 *info=look->info;
-
- /* move all this setup out later */
- int samples_per_partition=info->grouping;
- int possible_partitions=info->partitions;
- int n=info->end-info->begin;
-
- int partvals=n/samples_per_partition;
- long **partword=_vorbis_block_alloc(vb,ch*sizeof(*partword));
-
- /* we find the partition type for each partition of each
- channel. We'll go back and do the interleaved encoding in a
- bit. For now, clarity */
-
- for(i=0;i<ch;i++){
- partword[i]=_vorbis_block_alloc(vb,n/samples_per_partition*sizeof(*partword[i]));
- memset(partword[i],0,n/samples_per_partition*sizeof(*partword[i]));
- }
-
- for(i=0;i<partvals;i++){
- for(j=0;j<ch;j++)
- /* do the partition decision based on the 'entropy'
- int the block */
- partword[j][i]=
- classify(in[j]+i*samples_per_partition+info->begin,
- samples_per_partition,look,possible_partitions,i);
-
- }
-
-#ifdef TRAIN_RES
- look->longp=vb->W;
- {
- FILE *of;
- char buffer[80];
-
- for(i=0;i<ch;i++){
- sprintf(buffer,"resaux_%s.vqd",(vb->mode?"long":"short"));
- of=fopen(buffer,"a");
- for(j=0;j<partvals;j++)
- fprintf(of,"%ld, ",partword[i][j]);
- fprintf(of,"\n");
- fclose(of);
- }
- }
-#endif
- look->frames++;
-
- return(partword);
-}
-
-static long **_2class(vorbis_block *vb,vorbis_look_residue *vl,
- float **in,int ch,
- int (*classify)(float *,int,vorbis_look_residue0 *,
- int,int)){
- long i,j,k,l;
- vorbis_look_residue0 *look=(vorbis_look_residue0 *)vl;
- vorbis_info_residue0 *info=look->info;
-
- /* move all this setup out later */
- int samples_per_partition=info->grouping;
- int possible_partitions=info->partitions;
- int n=info->end-info->begin;
-
- int partvals=n/samples_per_partition;
- long **partword=_vorbis_block_alloc(vb,sizeof(*partword));
- float *work=alloca(sizeof(*work)*samples_per_partition);
-
-#ifdef TRAIN_RES
- FILE *of;
- char buffer[80];
-#endif
-
- partword[0]=_vorbis_block_alloc(vb,n*ch/samples_per_partition*sizeof(*partword[0]));
- memset(partword[0],0,n*ch/samples_per_partition*sizeof(*partword[0]));
-
- for(i=0,j=0,k=0,l=info->begin;i<partvals;i++){
- for(k=0;k<samples_per_partition;k++){
- work[k]=in[j][l];
- j++;
- if(j>=ch){
- j=0;
- l++;
- }
- }
-
- partword[0][i]=
- classify(work,samples_per_partition,look,possible_partitions,i);
-
-
- }
-
-#ifdef TRAIN_RES
- look->longp=vb->W;
- sprintf(buffer,"resaux_%s.vqd",(vb->mode?"long":"short"));
- of=fopen(buffer,"a");
- for(i=0;i<partvals;i++)
- fprintf(of,"%ld, ",partword[0][i]);
- fprintf(of,"\n");
- fclose(of);
-#endif
-
- look->frames++;
-
- return(partword);
-}
-
-static int _01forward(vorbis_block *vb,vorbis_look_residue *vl,
- float **in,int ch,
- int pass,long **partword,
- int (*encode)(oggpack_buffer *,float *,int,
- codebook *,long *),
- ogg_uint32_t *stats){
- long i,j,k,s;
- vorbis_look_residue0 *look=(vorbis_look_residue0 *)vl;
- vorbis_info_residue0 *info=look->info;
-
- vorbis_dsp_state *vd=vb->vd;
- vorbis_info *vi=vd->vi;
- codec_setup_info *ci=vi->codec_setup;
-
-
- /* move all this setup out later */
- int samples_per_partition=info->grouping;
- int possible_partitions=info->partitions;
- int partitions_per_word=look->phrasebook->dim;
- int n=info->end-info->begin;
-
- int partvals=n/samples_per_partition;
- long resbits[128];
- long resvals[128];
-
-#ifdef TRAIN_RES
- for(i=0;i<ch;i++)
- for(j=info->begin;j<info->end;j++){
- if(in[i][j]>look->tmax)look->tmax=in[i][j];
- if(in[i][j]<look->tmin)look->tmin=in[i][j];
- }
-#endif
-
- memset(resbits,0,sizeof(resbits));
- memset(resvals,0,sizeof(resvals));
-
- /* we code the partition words for each channel, then the residual
- words for a partition per channel until we've written all the
- residual words for that partition word. Then write the next
- partition channel words... */
-
- for(s=(pass==0?0:ci->passlimit[pass-1]);s<ci->passlimit[pass];s++){
- int bin=0;
- ogg_uint32_t *qptr=NULL;
- if(stats)qptr=stats+s*BITTRACK_DIVISOR;
-
- for(i=0;i<partvals;){
-
- /* first we encode a partition codeword for each channel */
- if(s==0){
- for(j=0;j<ch;j++){
- long val=partword[j][i];
- for(k=1;k<partitions_per_word;k++){
- val*=possible_partitions;
- if(i+k<partvals)
- val+=partword[j][i+k];
- }
-
- /* training hack */
- if(val<look->phrasebook->entries)
- look->phrasebits+=vorbis_book_encode(look->phrasebook,val,&vb->opb);
-#ifdef TRAIN_RES
- else
- fprintf(stderr,"!");
-#endif
-
- }
- }
-
- /* now we encode interleaved residual values for the partitions */
- for(k=0;k<partitions_per_word && i<partvals;k++,i++){
- long offset=i*samples_per_partition+info->begin;
-
- if(qptr)while(i>=look->qoffsets[bin])
- qptr[bin++]=oggpack_bits(&vb->opb);
-
- for(j=0;j<ch;j++){
- if(s==0)resvals[partword[j][i]]+=samples_per_partition;
- if(info->secondstages[partword[j][i]]&(1<<s)){
- codebook *statebook=look->partbooks[partword[j][i]][s];
- if(statebook){
- int ret;
- long *accumulator=NULL;
-
-#ifdef TRAIN_RES
- accumulator=look->training_data[s][partword[j][i]];
- {
- int l;
- float *samples=in[j]+offset;
- for(l=0;l<samples_per_partition;l++){
- if(samples[l]<look->training_min[s][partword[j][i]])
- look->training_min[s][partword[j][i]]=samples[l];
- if(samples[l]>look->training_max[s][partword[j][i]])
- look->training_max[s][partword[j][i]]=samples[l];
- }
- }
-#endif
-
- ret=encode(&vb->opb,in[j]+offset,samples_per_partition,
- statebook,accumulator);
-
- look->postbits+=ret;
- resbits[partword[j][i]]+=ret;
- }
- }
- }
- }
- if(qptr)while(i>=look->qoffsets[bin])
- qptr[bin++]=oggpack_bits(&vb->opb);
- }
- }
-
- /*{
- long total=0;
- long totalbits=0;
- fprintf(stderr,"%d :: ",vb->mode);
- for(k=0;k<possible_partitions;k++){
- fprintf(stderr,"%ld/%1.2g, ",resvals[k],(float)resbits[k]/resvals[k]);
- total+=resvals[k];
- totalbits+=resbits[k];
- }
-
- fprintf(stderr,":: %ld:%1.2g\n",total,(double)totalbits/total);
- }*/
- return(0);
-}
-
-/* a truncated packet here just means 'stop working'; it's not an error */
-static int _01inverse(vorbis_block *vb,vorbis_look_residue *vl,
- float **in,int ch,
- long (*decodepart)(codebook *, float *,
- oggpack_buffer *,int)){
-
- long i,j,k,l,s;
- vorbis_look_residue0 *look=(vorbis_look_residue0 *)vl;
- vorbis_info_residue0 *info=look->info;
-
- /* move all this setup out later */
- int samples_per_partition=info->grouping;
- int partitions_per_word=look->phrasebook->dim;
- int n=info->end-info->begin;
-
- int partvals=n/samples_per_partition;
- int partwords=(partvals+partitions_per_word-1)/partitions_per_word;
- int ***partword=alloca(ch*sizeof(*partword));
-
- for(j=0;j<ch;j++)
- partword[j]=_vorbis_block_alloc(vb,partwords*sizeof(*partword[j]));
-
- for(s=0;s<look->stages;s++){
-
- /* each loop decodes on partition codeword containing
- partitions_pre_word partitions */
- for(i=0,l=0;i<partvals;l++){
- if(s==0){
- /* fetch the partition word for each channel */
- for(j=0;j<ch;j++){
- int temp=vorbis_book_decode(look->phrasebook,&vb->opb);
- if(temp==-1)goto eopbreak;
- partword[j][l]=look->decodemap[temp];
- if(partword[j][l]==NULL)goto errout;
- }
- }
-
- /* now we decode residual values for the partitions */
- for(k=0;k<partitions_per_word && i<partvals;k++,i++)
- for(j=0;j<ch;j++){
- long offset=info->begin+i*samples_per_partition;
- if(info->secondstages[partword[j][l][k]]&(1<<s)){
- codebook *stagebook=look->partbooks[partword[j][l][k]][s];
- if(stagebook){
- if(decodepart(stagebook,in[j]+offset,&vb->opb,
- samples_per_partition)==-1)goto eopbreak;
- }
- }
- }
- }
- }
-
- errout:
- eopbreak:
- return(0);
-}
-
-/* residue 0 and 1 are just slight variants of one another. 0 is
- interleaved, 1 is not */
-long **res0_class(vorbis_block *vb,vorbis_look_residue *vl,
- float **in,int *nonzero,int ch){
- /* we encode only the nonzero parts of a bundle */
- int i,used=0;
- for(i=0;i<ch;i++)
- if(nonzero[i])
- in[used++]=in[i];
- if(used)
- /*return(_01class(vb,vl,in,used,_interleaved_testhack));*/
- return(_01class(vb,vl,in,used,_testhack));
- else
- return(0);
-}
-
-int res0_forward(vorbis_block *vb,vorbis_look_residue *vl,
- float **in,float **out,int *nonzero,int ch,
- int pass, long **partword,ogg_uint32_t *stats){
- /* we encode only the nonzero parts of a bundle */
- int i,j,used=0,n=vb->pcmend/2;
- for(i=0;i<ch;i++)
- if(nonzero[i]){
- for(j=0;j<n;j++)
- out[i][j]+=in[i][j];
- in[used++]=in[i];
- }
- if(used){
- int ret=_01forward(vb,vl,in,used,pass,partword,
- _interleaved_encodepart,stats);
- used=0;
- for(i=0;i<ch;i++)
- if(nonzero[i]){
- for(j=0;j<n;j++)
- out[i][j]-=in[used][j];
- used++;
- }
- return(ret);
- }else{
- for(i=0;i<vorbis_bitrate_maxmarkers();i++)
- stats[i]=oggpack_bits(&vb->opb);
-
- return(0);
- }
-}
-
-int res0_inverse(vorbis_block *vb,vorbis_look_residue *vl,
- float **in,int *nonzero,int ch){
- int i,used=0;
- for(i=0;i<ch;i++)
- if(nonzero[i])
- in[used++]=in[i];
- if(used)
- return(_01inverse(vb,vl,in,used,vorbis_book_decodevs_add));
- else
- return(0);
-}
-
-int res1_forward(vorbis_block *vb,vorbis_look_residue *vl,
- float **in,float **out,int *nonzero,int ch,
- int pass, long **partword, ogg_uint32_t *stats){
- int i,j,used=0,n=vb->pcmend/2;
- for(i=0;i<ch;i++)
- if(nonzero[i]){
- for(j=0;j<n;j++)
- out[i][j]+=in[i][j];
- in[used++]=in[i];
- }
-
- if(used){
- int ret=_01forward(vb,vl,in,used,pass,partword,_encodepart,stats);
- used=0;
- for(i=0;i<ch;i++)
- if(nonzero[i]){
- for(j=0;j<n;j++)
- out[i][j]-=in[used][j];
- used++;
- }
- return(ret);
- }else{
- for(i=0;i<vorbis_bitrate_maxmarkers();i++)
- stats[i]=oggpack_bits(&vb->opb);
-
- return(0);
- }
-}
-
-long **res1_class(vorbis_block *vb,vorbis_look_residue *vl,
- float **in,int *nonzero,int ch){
- int i,used=0;
- for(i=0;i<ch;i++)
- if(nonzero[i])
- in[used++]=in[i];
- if(used)
- return(_01class(vb,vl,in,used,_testhack));
- else
- return(0);
-}
-
-int res1_inverse(vorbis_block *vb,vorbis_look_residue *vl,
- float **in,int *nonzero,int ch){
- int i,used=0;
- for(i=0;i<ch;i++)
- if(nonzero[i])
- in[used++]=in[i];
- if(used)
- return(_01inverse(vb,vl,in,used,vorbis_book_decodev_add));
- else
- return(0);
-}
-
-long **res2_class(vorbis_block *vb,vorbis_look_residue *vl,
- float **in,int *nonzero,int ch){
- int i,used=0;
- for(i=0;i<ch;i++)
- if(nonzero[i])
- in[used++]=in[i];
- if(used)
- return(_2class(vb,vl,in,used,_testhack));
- else
- return(0);
-}
-
-/* res2 is slightly more different; all the channels are interleaved
- into a single vector and encoded. */
-
-int res2_forward(vorbis_block *vb,vorbis_look_residue *vl,
- float **in,float **out,int *nonzero,int ch,
- int pass,long **partword,ogg_uint32_t *stats){
- long i,j,k,n=vb->pcmend/2,used=0;
-
- /* don't duplicate the code; use a working vector hack for now and
- reshape ourselves into a single channel res1 */
- /* ugly; reallocs for each coupling pass :-( */
- float *work=_vorbis_block_alloc(vb,ch*n*sizeof(*work));
- for(i=0;i<ch;i++){
- float *pcm=in[i];
- if(nonzero[i])used++;
- for(j=0,k=i;j<n;j++,k+=ch)
- work[k]=pcm[j];
- }
-
- if(used){
- int ret=_01forward(vb,vl,&work,1,pass,partword,_encodepart,stats);
- /* update the sofar vector */
- for(i=0;i<ch;i++){
- float *pcm=in[i];
- float *sofar=out[i];
- for(j=0,k=i;j<n;j++,k+=ch)
- sofar[j]+=pcm[j]-work[k];
-
- }
- return(ret);
- }else{
- for(i=0;i<vorbis_bitrate_maxmarkers();i++)
- stats[i]=oggpack_bits(&vb->opb);
-
- return(0);
- }
-}
-
-/* duplicate code here as speed is somewhat more important */
-int res2_inverse(vorbis_block *vb,vorbis_look_residue *vl,
- float **in,int *nonzero,int ch){
- long i,k,l,s;
- vorbis_look_residue0 *look=(vorbis_look_residue0 *)vl;
- vorbis_info_residue0 *info=look->info;
-
- /* move all this setup out later */
- int samples_per_partition=info->grouping;
- int partitions_per_word=look->phrasebook->dim;
- int n=info->end-info->begin;
-
- int partvals=n/samples_per_partition;
- int partwords=(partvals+partitions_per_word-1)/partitions_per_word;
- int **partword=_vorbis_block_alloc(vb,partwords*sizeof(*partword));
-
- for(i=0;i<ch;i++)if(nonzero[i])break;
- if(i==ch)return(0); /* no nonzero vectors */
-
- for(s=0;s<look->stages;s++){
- for(i=0,l=0;i<partvals;l++){
-
- if(s==0){
- /* fetch the partition word */
- int temp=vorbis_book_decode(look->phrasebook,&vb->opb);
- if(temp==-1)goto eopbreak;
- partword[l]=look->decodemap[temp];
- if(partword[l]==NULL)goto errout;
- }
-
- /* now we decode residual values for the partitions */
- for(k=0;k<partitions_per_word && i<partvals;k++,i++)
- if(info->secondstages[partword[l][k]]&(1<<s)){
- codebook *stagebook=look->partbooks[partword[l][k]][s];
-
- if(stagebook){
- if(vorbis_book_decodevv_add(stagebook,in,
- i*samples_per_partition+info->begin,ch,
- &vb->opb,samples_per_partition)==-1)
- goto eopbreak;
- }
- }
- }
- }
-
- errout:
- eopbreak:
- return(0);
-}
-
-
-vorbis_func_residue residue0_exportbundle={
- &res0_pack,
- &res0_unpack,
- &res0_look,
- &res0_copy_info,
- &res0_free_info,
- &res0_free_look,
- &res0_class,
- &res0_forward,
- &res0_inverse
-};
-
-vorbis_func_residue residue1_exportbundle={
- &res0_pack,
- &res0_unpack,
- &res0_look,
- &res0_copy_info,
- &res0_free_info,
- &res0_free_look,
- &res1_class,
- &res1_forward,
- &res1_inverse
-};
-
-vorbis_func_residue residue2_exportbundle={
- &res0_pack,
- &res0_unpack,
- &res0_look,
- &res0_copy_info,
- &res0_free_info,
- &res0_free_look,
- &res2_class,
- &res2_forward,
- &res2_inverse
-};
diff --git a/lib/scales.h b/lib/scales.h
deleted file mode 100644
index a4197d93..00000000
--- a/lib/scales.h
+++ /dev/null
@@ -1,132 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: linear scale -> dB, Bark and Mel scales
- last mod: $Id: scales.h,v 1.18 2001/12/22 05:17:11 segher Exp $
-
- ********************************************************************/
-
-#ifndef _V_SCALES_H_
-#define _V_SCALES_H_
-
-#include <math.h>
-#include "os.h"
-
-/* 20log10(x) */
-#ifdef VORBIS_IEEE_FLOAT32
-static float todB_LOOKUP[256]={
- -140.277330f, -139.633636f, -139.034372f, -138.473797f,
- -137.450747f, -136.535597f, -135.707743f, -134.951972f,
- -134.256730f, -133.613036f, -133.013772f, -132.453198f,
- -131.430147f, -130.514997f, -129.687144f, -128.931372f,
- -128.236130f, -127.592437f, -126.993172f, -126.432598f,
- -125.409547f, -124.494397f, -123.666544f, -122.910772f,
- -122.215530f, -121.571837f, -120.972572f, -120.411998f,
- -119.388947f, -118.473797f, -117.645944f, -116.890173f,
- -116.194930f, -115.551237f, -114.951972f, -114.391398f,
- -113.368347f, -112.453198f, -111.625344f, -110.869573f,
- -110.174331f, -109.530637f, -108.931372f, -108.370798f,
- -107.347748f, -106.432598f, -105.604744f, -104.848973f,
- -104.153731f, -103.510037f, -102.910773f, -102.350198f,
- -101.327148f, -100.411998f, -99.584144f, -98.828373f,
- -98.133131f, -97.489437f, -96.890173f, -96.329598f,
- -95.306548f, -94.391398f, -93.563544f, -92.807773f,
- -92.112531f, -91.468837f, -90.869573f, -90.308998f,
- -89.285948f, -88.370798f, -87.542944f, -86.787173f,
- -86.091931f, -85.448237f, -84.848973f, -84.288398f,
- -83.265348f, -82.350198f, -81.522344f, -80.766573f,
- -80.071331f, -79.427637f, -78.828373f, -78.267799f,
- -77.244748f, -76.329598f, -75.501745f, -74.745973f,
- -74.050731f, -73.407038f, -72.807773f, -72.247199f,
- -71.224148f, -70.308998f, -69.481145f, -68.725373f,
- -68.030131f, -67.386438f, -66.787173f, -66.226599f,
- -65.203548f, -64.288399f, -63.460545f, -62.704774f,
- -62.009531f, -61.365838f, -60.766573f, -60.205999f,
- -59.182948f, -58.267799f, -57.439945f, -56.684174f,
- -55.988932f, -55.345238f, -54.745973f, -54.185399f,
- -53.162349f, -52.247199f, -51.419345f, -50.663574f,
- -49.968332f, -49.324638f, -48.725374f, -48.164799f,
- -47.141749f, -46.226599f, -45.398745f, -44.642974f,
- -43.947732f, -43.304038f, -42.704774f, -42.144199f,
- -41.121149f, -40.205999f, -39.378145f, -38.622374f,
- -37.927132f, -37.283438f, -36.684174f, -36.123599f,
- -35.100549f, -34.185399f, -33.357545f, -32.601774f,
- -31.906532f, -31.262838f, -30.663574f, -30.102999f,
- -29.079949f, -28.164799f, -27.336945f, -26.581174f,
- -25.885932f, -25.242238f, -24.642974f, -24.082400f,
- -23.059349f, -22.144199f, -21.316346f, -20.560574f,
- -19.865332f, -19.221639f, -18.622374f, -18.061800f,
- -17.038749f, -16.123599f, -15.295746f, -14.539974f,
- -13.844732f, -13.201039f, -12.601774f, -12.041200f,
- -11.018149f, -10.103000f, -9.275146f, -8.519375f,
- -7.824132f, -7.180439f, -6.581174f, -6.020600f,
- -4.997549f, -4.082400f, -3.254546f, -2.498775f,
- -1.803533f, -1.159839f, -0.560574f, 0.000000f,
- 1.023050f, 1.938200f, 2.766054f, 3.521825f,
- 4.217067f, 4.860761f, 5.460025f, 6.020600f,
- 7.043650f, 7.958800f, 8.786654f, 9.542425f,
- 10.237667f, 10.881361f, 11.480625f, 12.041200f,
- 13.064250f, 13.979400f, 14.807254f, 15.563025f,
- 16.258267f, 16.901961f, 17.501225f, 18.061800f,
- 19.084850f, 20.000000f, 20.827854f, 21.583625f,
- 22.278867f, 22.922561f, 23.521825f, 24.082400f,
- 25.105450f, 26.020600f, 26.848453f, 27.604225f,
- 28.299467f, 28.943161f, 29.542425f, 30.102999f,
- 31.126050f, 32.041200f, 32.869053f, 33.624825f,
- 34.320067f, 34.963760f, 35.563025f, 36.123599f,
- 37.146650f, 38.061800f, 38.889653f, 39.645424f,
- 40.340667f, 40.984360f, 41.583625f, 42.144199f,
- 43.167250f, 44.082399f, 44.910253f, 45.666024f,
- 46.361266f, 47.004960f, 47.604225f, 48.164799f,
- 49.187850f, 50.102999f, 50.930853f, 51.686624f
-};
-
-static float todB(const float *x){
- ogg_int32_t *i=(ogg_int32_t *)x;
- ogg_int32_t temp=((*i&0x7fffffff)-0x33cfffff)>>20;
- if(temp<0)return -400.f;
- return(todB_LOOKUP[temp]);
-}
-
-#define todB_nn(x) todB(x)
-
-#else
-
-#define todB(x) (*(x)==0?-400.f:log(*(x)**(x))*4.34294480f)
-#define todB_nn(x) (*(x)==0.f?-400.f:log(*(x))*8.6858896f)
-
-#endif
-
-#define fromdB(x) (exp((x)*.11512925f))
-
-/* The bark scale equations are approximations, since the original
- table was somewhat hand rolled. The below are chosen to have the
- best possible fit to the rolled tables, thus their somewhat odd
- appearance (these are more accurate and over a longer range than
- the oft-quoted bark equations found in the texts I have). The
- approximations are valid from 0 - 30kHz (nyquist) or so.
-
- all f in Hz, z in Bark */
-
-#define toBARK(n) (13.1f*atan(.00074f*(n))+2.24f*atan((n)*(n)*1.85e-8f)+1e-4f*(n))
-#define fromBARK(z) (102.f*(z)-2.f*pow(z,2.f)+.4f*pow(z,3.f)+pow(1.46f,z)-1.f)
-#define toMEL(n) (log(1.f+(n)*.001f)*1442.695f)
-#define fromMEL(m) (1000.f*exp((m)/1442.695f)-1000.f)
-
-/* Frequency to octave. We arbitrarily declare 63.5 Hz to be octave
- 0.0 */
-
-#define toOC(n) (log(n)*1.442695f-5.965784f)
-#define fromOC(o) (exp(((o)+5.965784f)*.693147f))
-
-#endif
-
diff --git a/lib/sharedbook.c b/lib/sharedbook.c
deleted file mode 100644
index 263e0e2a..00000000
--- a/lib/sharedbook.c
+++ /dev/null
@@ -1,743 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2002 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: basic shared codebook operations
- last mod: $Id: sharedbook.c,v 1.27 2002/01/22 08:06:07 xiphmont Exp $
-
- ********************************************************************/
-
-#include <stdlib.h>
-#include <math.h>
-#include <string.h>
-#include <ogg/ogg.h>
-#include "os.h"
-#include "misc.h"
-#include "vorbis/codec.h"
-#include "codebook.h"
-#include "scales.h"
-
-/**** pack/unpack helpers ******************************************/
-int _ilog(unsigned int v){
- int ret=0;
- while(v){
- ret++;
- v>>=1;
- }
- return(ret);
-}
-
-/* 32 bit float (not IEEE; nonnormalized mantissa +
- biased exponent) : neeeeeee eeemmmmm mmmmmmmm mmmmmmmm
- Why not IEEE? It's just not that important here. */
-
-#define VQ_FEXP 10
-#define VQ_FMAN 21
-#define VQ_FEXP_BIAS 768 /* bias toward values smaller than 1. */
-
-/* doesn't currently guard under/overflow */
-long _float32_pack(float val){
- int sign=0;
- long exp;
- long mant;
- if(val<0){
- sign=0x80000000;
- val= -val;
- }
- exp= floor(log(val)/log(2.f));
- mant=rint(ldexp(val,(VQ_FMAN-1)-exp));
- exp=(exp+VQ_FEXP_BIAS)<<VQ_FMAN;
-
- return(sign|exp|mant);
-}
-
-float _float32_unpack(long val){
- double mant=val&0x1fffff;
- int sign=val&0x80000000;
- long exp =(val&0x7fe00000L)>>VQ_FMAN;
- if(sign)mant= -mant;
- return(ldexp(mant,exp-(VQ_FMAN-1)-VQ_FEXP_BIAS));
-}
-
-/* given a list of word lengths, generate a list of codewords. Works
- for length ordered or unordered, always assigns the lowest valued
- codewords first. Extended to handle unused entries (length 0) */
-ogg_uint32_t *_make_words(long *l,long n,long sparsecount){
- long i,j,count=0;
- ogg_uint32_t marker[33];
- ogg_uint32_t *r=_ogg_malloc((sparsecount?sparsecount:n)*sizeof(*r));
- memset(marker,0,sizeof(marker));
-
- for(i=0;i<n;i++){
- long length=l[i];
- if(length>0){
- ogg_uint32_t entry=marker[length];
-
- /* when we claim a node for an entry, we also claim the nodes
- below it (pruning off the imagined tree that may have dangled
- from it) as well as blocking the use of any nodes directly
- above for leaves */
-
- /* update ourself */
- if(length<32 && (entry>>length)){
- /* error condition; the lengths must specify an overpopulated tree */
- _ogg_free(r);
- return(NULL);
- }
- r[count++]=entry;
-
- /* Look to see if the next shorter marker points to the node
- above. if so, update it and repeat. */
- {
- for(j=length;j>0;j--){
-
- if(marker[j]&1){
- /* have to jump branches */
- if(j==1)
- marker[1]++;
- else
- marker[j]=marker[j-1]<<1;
- break; /* invariant says next upper marker would already
- have been moved if it was on the same path */
- }
- marker[j]++;
- }
- }
-
- /* prune the tree; the implicit invariant says all the longer
- markers were dangling from our just-taken node. Dangle them
- from our *new* node. */
- for(j=length+1;j<33;j++)
- if((marker[j]>>1) == entry){
- entry=marker[j];
- marker[j]=marker[j-1]<<1;
- }else
- break;
- }else
- if(sparsecount==0)count++;
- }
-
- /* bitreverse the words because our bitwise packer/unpacker is LSb
- endian */
- for(i=0,count=0;i<n;i++){
- ogg_uint32_t temp=0;
- for(j=0;j<l[i];j++){
- temp<<=1;
- temp|=(r[count]>>j)&1;
- }
-
- if(sparsecount){
- if(l[i])
- r[count++]=temp;
- }else
- r[count++]=temp;
- }
-
- return(r);
-}
-
-/* there might be a straightforward one-line way to do the below
- that's portable and totally safe against roundoff, but I haven't
- thought of it. Therefore, we opt on the side of caution */
-long _book_maptype1_quantvals(const static_codebook *b){
- long vals=floor(pow((float)b->entries,1.f/b->dim));
-
- /* the above *should* be reliable, but we'll not assume that FP is
- ever reliable when bitstream sync is at stake; verify via integer
- means that vals really is the greatest value of dim for which
- vals^b->bim <= b->entries */
- /* treat the above as an initial guess */
- while(1){
- long acc=1;
- long acc1=1;
- int i;
- for(i=0;i<b->dim;i++){
- acc*=vals;
- acc1*=vals+1;
- }
- if(acc<=b->entries && acc1>b->entries){
- return(vals);
- }else{
- if(acc>b->entries){
- vals--;
- }else{
- vals++;
- }
- }
- }
-}
-
-/* unpack the quantized list of values for encode/decode ***********/
-/* we need to deal with two map types: in map type 1, the values are
- generated algorithmically (each column of the vector counts through
- the values in the quant vector). in map type 2, all the values came
- in in an explicit list. Both value lists must be unpacked */
-float *_book_unquantize(const static_codebook *b,int n,int *sparsemap){
- long j,k,count=0;
- if(b->maptype==1 || b->maptype==2){
- int quantvals;
- float mindel=_float32_unpack(b->q_min);
- float delta=_float32_unpack(b->q_delta);
- float *r=_ogg_calloc(n*b->dim,sizeof(*r));
-
- /* maptype 1 and 2 both use a quantized value vector, but
- different sizes */
- switch(b->maptype){
- case 1:
- /* most of the time, entries%dimensions == 0, but we need to be
- well defined. We define that the possible vales at each
- scalar is values == entries/dim. If entries%dim != 0, we'll
- have 'too few' values (values*dim<entries), which means that
- we'll have 'left over' entries; left over entries use zeroed
- values (and are wasted). So don't generate codebooks like
- that */
- quantvals=_book_maptype1_quantvals(b);
- for(j=0;j<b->entries;j++){
- if((sparsemap && b->lengthlist[j]) || !sparsemap){
- float last=0.f;
- int indexdiv=1;
- for(k=0;k<b->dim;k++){
- int index= (j/indexdiv)%quantvals;
- float val=b->quantlist[index];
- val=fabs(val)*delta+mindel+last;
- if(b->q_sequencep)last=val;
- if(sparsemap)
- r[sparsemap[count]*b->dim+k]=val;
- else
- r[count*b->dim+k]=val;
- indexdiv*=quantvals;
- }
- count++;
- }
-
- }
- break;
- case 2:
- for(j=0;j<b->entries;j++){
- if((sparsemap && b->lengthlist[j]) || !sparsemap){
- float last=0.f;
-
- for(k=0;k<b->dim;k++){
- float val=b->quantlist[j*b->dim+k];
- val=fabs(val)*delta+mindel+last;
- if(b->q_sequencep)last=val;
- if(sparsemap)
- r[sparsemap[count]*b->dim+k]=val;
- else
- r[count*b->dim+k]=val;
- }
- count++;
- }
- }
- break;
- }
-
- return(r);
- }
- return(NULL);
-}
-
-void vorbis_staticbook_clear(static_codebook *b){
- if(b->allocedp){
- if(b->quantlist)_ogg_free(b->quantlist);
- if(b->lengthlist)_ogg_free(b->lengthlist);
- if(b->nearest_tree){
- _ogg_free(b->nearest_tree->ptr0);
- _ogg_free(b->nearest_tree->ptr1);
- _ogg_free(b->nearest_tree->p);
- _ogg_free(b->nearest_tree->q);
- memset(b->nearest_tree,0,sizeof(*b->nearest_tree));
- _ogg_free(b->nearest_tree);
- }
- if(b->thresh_tree){
- _ogg_free(b->thresh_tree->quantthresh);
- _ogg_free(b->thresh_tree->quantmap);
- memset(b->thresh_tree,0,sizeof(*b->thresh_tree));
- _ogg_free(b->thresh_tree);
- }
-
- memset(b,0,sizeof(*b));
- }
-}
-
-void vorbis_staticbook_destroy(static_codebook *b){
- if(b->allocedp){
- vorbis_staticbook_clear(b);
- _ogg_free(b);
- }
-}
-
-void vorbis_book_clear(codebook *b){
- /* static book is not cleared; we're likely called on the lookup and
- the static codebook belongs to the info struct */
- if(b->valuelist)_ogg_free(b->valuelist);
- if(b->codelist)_ogg_free(b->codelist);
-
- if(b->dec_index)_ogg_free(b->dec_index);
- if(b->dec_codelengths)_ogg_free(b->dec_codelengths);
- if(b->dec_firsttable)_ogg_free(b->dec_firsttable);
-
- memset(b,0,sizeof(*b));
-}
-
-int vorbis_book_init_encode(codebook *c,const static_codebook *s){
-
- memset(c,0,sizeof(*c));
- c->c=s;
- c->entries=s->entries;
- c->used_entries=s->entries;
- c->dim=s->dim;
- c->codelist=_make_words(s->lengthlist,s->entries,0);
- c->valuelist=_book_unquantize(s,s->entries,NULL);
-
- return(0);
-}
-
-static ogg_uint32_t bitreverse(ogg_uint32_t x){
- x= ((x>>16)&0x0000ffffUL) | ((x<<16)&0xffff0000UL);
- x= ((x>> 8)&0x00ff00ffUL) | ((x<< 8)&0xff00ff00UL);
- x= ((x>> 4)&0x0f0f0f0fUL) | ((x<< 4)&0xf0f0f0f0UL);
- x= ((x>> 2)&0x33333333UL) | ((x<< 2)&0xccccccccUL);
- return((x>> 1)&0x55555555UL) | ((x<< 1)&0xaaaaaaaaUL);
-}
-
-static int sort32a(const void *a,const void *b){
- return ( (**(ogg_uint32_t **)a>**(ogg_uint32_t **)b)<<1)-1;
-}
-
-/* decode codebook arrangement is more heavily optimized than encode */
-int vorbis_book_init_decode(codebook *c,const static_codebook *s){
- int i,j,n=0,tabn;
- int *sortindex;
- memset(c,0,sizeof(*c));
-
- /* count actually used entries */
- for(i=0;i<s->entries;i++)
- if(s->lengthlist[i]>0)
- n++;
-
- c->entries=s->entries;
- c->used_entries=n;
- c->dim=s->dim;
-
- /* two different remappings go on here.
-
- First, we collapse the likely sparse codebook down only to
- actually represented values/words. This collapsing needs to be
- indexed as map-valueless books are used to encode original entry
- positions as integers.
-
- Second, we reorder all vectors, including the entry index above,
- by sorted bitreversed codeword to allow treeless decode. */
-
- {
- /* perform sort */
- ogg_uint32_t *codes=_make_words(s->lengthlist,s->entries,c->used_entries);
- ogg_uint32_t **codep=alloca(sizeof(*codep)*n);
-
- if(codes==NULL)goto err_out;
-
- for(i=0;i<n;i++){
- codes[i]=bitreverse(codes[i]);
- codep[i]=codes+i;
- }
-
- qsort(codep,n,sizeof(*codep),sort32a);
-
- sortindex=alloca(n*sizeof(*sortindex));
- c->codelist=_ogg_malloc(n*sizeof(*c->codelist));
- /* the index is a reverse index */
- for(i=0;i<n;i++){
- int position=codep[i]-codes;
- sortindex[position]=i;
- }
-
- for(i=0;i<n;i++)
- c->codelist[sortindex[i]]=codes[i];
- _ogg_free(codes);
- }
-
- c->valuelist=_book_unquantize(s,n,sortindex);
- c->dec_index=_ogg_malloc(n*sizeof(*c->dec_index));
-
- for(n=0,i=0;i<s->entries;i++)
- if(s->lengthlist[i]>0)
- c->dec_index[sortindex[n++]]=i;
-
- c->dec_codelengths=_ogg_malloc(n*sizeof(*c->dec_codelengths));
- for(n=0,i=0;i<s->entries;i++)
- if(s->lengthlist[i]>0)
- c->dec_codelengths[sortindex[n++]]=s->lengthlist[i];
-
- c->dec_firsttablen=_ilog(c->used_entries)-4; /* this is magic */
- if(c->dec_firsttablen<5)c->dec_firsttablen=5;
- if(c->dec_firsttablen>8)c->dec_firsttablen=8;
-
- tabn=1<<c->dec_firsttablen;
- c->dec_firsttable=_ogg_calloc(tabn,sizeof(*c->dec_firsttable));
- c->dec_maxlength=0;
-
- for(i=0;i<n;i++){
- if(c->dec_maxlength<c->dec_codelengths[i])
- c->dec_maxlength=c->dec_codelengths[i];
- if(c->dec_codelengths[i]<=c->dec_firsttablen){
- ogg_uint32_t orig=bitreverse(c->codelist[i]);
- for(j=0;j<(1<<(c->dec_firsttablen-c->dec_codelengths[i]));j++)
- c->dec_firsttable[orig|(j<<c->dec_codelengths[i])]=i+1;
- }
- }
-
- /* now fill in 'unused' entries in the firsttable with hi/lo search
- hints for the non-direct-hits */
- {
- ogg_uint32_t mask=0xfffffffeUL<<(31-c->dec_firsttablen);
- long lo=0,hi=0;
-
- for(i=0;i<tabn;i++){
- ogg_uint32_t word=i<<(32-c->dec_firsttablen);
- if(c->dec_firsttable[bitreverse(word)]==0){
- while((lo+1)<n && c->codelist[lo+1]<=word)lo++;
- while( hi<n && word>=(c->codelist[hi]&mask))hi++;
-
- /* we only actually have 15 bits per hint to play with here.
- In order to overflow gracefully (nothing breaks, efficiency
- just drops), encode as the difference from the extremes. */
- {
- unsigned long loval=lo;
- unsigned long hival=n-hi;
-
- if(loval>0x7fff)loval=0x7fff;
- if(hival>0x7fff)hival=0x7fff;
- c->dec_firsttable[bitreverse(word)]=
- 0x80000000UL | (loval<<15) | hival;
- }
- }
- }
- }
-
-
- return(0);
- err_out:
- vorbis_book_clear(c);
- return(-1);
-}
-
-static float _dist(int el,float *ref, float *b,int step){
- int i;
- float acc=0.f;
- for(i=0;i<el;i++){
- float val=(ref[i]-b[i*step]);
- acc+=val*val;
- }
- return(acc);
-}
-
-int _best(codebook *book, float *a, int step){
- encode_aux_nearestmatch *nt=book->c->nearest_tree;
- encode_aux_threshmatch *tt=book->c->thresh_tree;
- encode_aux_pigeonhole *pt=book->c->pigeon_tree;
- int dim=book->dim;
- int ptr=0,k,o;
- /*int savebest=-1;
- float saverr;*/
-
- /* do we have a threshhold encode hint? */
- if(tt){
- int index=0;
- /* find the quant val of each scalar */
- for(k=0,o=step*(dim-1);k<dim;k++,o-=step){
- int i;
- /* linear search the quant list for now; it's small and although
- with > ~8 entries, it would be faster to bisect, this would be
- a misplaced optimization for now */
- for(i=0;i<tt->threshvals-1;i++)
- if(a[o]<tt->quantthresh[i])break;
-
- index=(index*tt->quantvals)+tt->quantmap[i];
- }
- /* regular lattices are easy :-) */
- if(book->c->lengthlist[index]>0) /* is this unused? If so, we'll
- use a decision tree after all
- and fall through*/
- return(index);
- }
-
- /* do we have a pigeonhole encode hint? */
- if(pt){
- const static_codebook *c=book->c;
- int i,besti=-1;
- float best=0.f;
- int entry=0;
-
- /* dealing with sequentialness is a pain in the ass */
- if(c->q_sequencep){
- int pv;
- long mul=1;
- float qlast=0;
- for(k=0,o=0;k<dim;k++,o+=step){
- pv=(int)((a[o]-qlast-pt->min)/pt->del);
- if(pv<0 || pv>=pt->mapentries)break;
- entry+=pt->pigeonmap[pv]*mul;
- mul*=pt->quantvals;
- qlast+=pv*pt->del+pt->min;
- }
- }else{
- for(k=0,o=step*(dim-1);k<dim;k++,o-=step){
- int pv=(int)((a[o]-pt->min)/pt->del);
- if(pv<0 || pv>=pt->mapentries)break;
- entry=entry*pt->quantvals+pt->pigeonmap[pv];
- }
- }
-
- /* must be within the pigeonholable range; if we quant outside (or
- in an entry that we define no list for), brute force it */
- if(k==dim && pt->fitlength[entry]){
- /* search the abbreviated list */
- long *list=pt->fitlist+pt->fitmap[entry];
- for(i=0;i<pt->fitlength[entry];i++){
- float this=_dist(dim,book->valuelist+list[i]*dim,a,step);
- if(besti==-1 || this<best){
- best=this;
- besti=list[i];
- }
- }
-
- return(besti);
- }
- }
-
- if(nt){
- /* optimized using the decision tree */
- while(1){
- float c=0.f;
- float *p=book->valuelist+nt->p[ptr];
- float *q=book->valuelist+nt->q[ptr];
-
- for(k=0,o=0;k<dim;k++,o+=step)
- c+=(p[k]-q[k])*(a[o]-(p[k]+q[k])*.5);
-
- if(c>0.f) /* in A */
- ptr= -nt->ptr0[ptr];
- else /* in B */
- ptr= -nt->ptr1[ptr];
- if(ptr<=0)break;
- }
- return(-ptr);
- }
-
- /* brute force it! */
- {
- const static_codebook *c=book->c;
- int i,besti=-1;
- float best=0.f;
- float *e=book->valuelist;
- for(i=0;i<book->entries;i++){
- if(c->lengthlist[i]>0){
- float this=_dist(dim,e,a,step);
- if(besti==-1 || this<best){
- best=this;
- besti=i;
- }
- }
- e+=dim;
- }
-
- /*if(savebest!=-1 && savebest!=besti){
- fprintf(stderr,"brute force/pigeonhole disagreement:\n"
- "original:");
- for(i=0;i<dim*step;i+=step)fprintf(stderr,"%g,",a[i]);
- fprintf(stderr,"\n"
- "pigeonhole (entry %d, err %g):",savebest,saverr);
- for(i=0;i<dim;i++)fprintf(stderr,"%g,",
- (book->valuelist+savebest*dim)[i]);
- fprintf(stderr,"\n"
- "bruteforce (entry %d, err %g):",besti,best);
- for(i=0;i<dim;i++)fprintf(stderr,"%g,",
- (book->valuelist+besti*dim)[i]);
- fprintf(stderr,"\n");
- }*/
- return(besti);
- }
-}
-
-/* returns the entry number and *modifies a* to the remainder value ********/
-int vorbis_book_besterror(codebook *book,float *a,int step,int addmul){
- int dim=book->dim,i,o;
- int best=_best(book,a,step);
- switch(addmul){
- case 0:
- for(i=0,o=0;i<dim;i++,o+=step)
- a[o]-=(book->valuelist+best*dim)[i];
- break;
- case 1:
- for(i=0,o=0;i<dim;i++,o+=step){
- float val=(book->valuelist+best*dim)[i];
- if(val==0){
- a[o]=0;
- }else{
- a[o]/=val;
- }
- }
- break;
- }
- return(best);
-}
-
-long vorbis_book_codeword(codebook *book,int entry){
- if(book->c) /* only use with encode; decode optimizations are
- allowed to break this */
- return book->codelist[entry];
- return -1;
-}
-
-long vorbis_book_codelen(codebook *book,int entry){
- if(book->c) /* only use with encode; decode optimizations are
- allowed to break this */
- return book->c->lengthlist[entry];
- return -1;
-}
-
-#ifdef _V_SELFTEST
-
-/* Unit tests of the dequantizer; this stuff will be OK
- cross-platform, I simply want to be sure that special mapping cases
- actually work properly; a bug could go unnoticed for a while */
-
-#include <stdio.h>
-
-/* cases:
-
- no mapping
- full, explicit mapping
- algorithmic mapping
-
- nonsequential
- sequential
-*/
-
-static long full_quantlist1[]={0,1,2,3, 4,5,6,7, 8,3,6,1};
-static long partial_quantlist1[]={0,7,2};
-
-/* no mapping */
-static_codebook test1={
- 4,16,
- NULL,
- 0,
- 0,0,0,0,
- NULL,
- NULL,NULL
-};
-static float *test1_result=NULL;
-
-/* linear, full mapping, nonsequential */
-static_codebook test2={
- 4,3,
- NULL,
- 2,
- -533200896,1611661312,4,0,
- full_quantlist1,
- NULL,NULL
-};
-static float test2_result[]={-3,-2,-1,0, 1,2,3,4, 5,0,3,-2};
-
-/* linear, full mapping, sequential */
-static_codebook test3={
- 4,3,
- NULL,
- 2,
- -533200896,1611661312,4,1,
- full_quantlist1,
- NULL,NULL
-};
-static float test3_result[]={-3,-5,-6,-6, 1,3,6,10, 5,5,8,6};
-
-/* linear, algorithmic mapping, nonsequential */
-static_codebook test4={
- 3,27,
- NULL,
- 1,
- -533200896,1611661312,4,0,
- partial_quantlist1,
- NULL,NULL
-};
-static float test4_result[]={-3,-3,-3, 4,-3,-3, -1,-3,-3,
- -3, 4,-3, 4, 4,-3, -1, 4,-3,
- -3,-1,-3, 4,-1,-3, -1,-1,-3,
- -3,-3, 4, 4,-3, 4, -1,-3, 4,
- -3, 4, 4, 4, 4, 4, -1, 4, 4,
- -3,-1, 4, 4,-1, 4, -1,-1, 4,
- -3,-3,-1, 4,-3,-1, -1,-3,-1,
- -3, 4,-1, 4, 4,-1, -1, 4,-1,
- -3,-1,-1, 4,-1,-1, -1,-1,-1};
-
-/* linear, algorithmic mapping, sequential */
-static_codebook test5={
- 3,27,
- NULL,
- 1,
- -533200896,1611661312,4,1,
- partial_quantlist1,
- NULL,NULL
-};
-static float test5_result[]={-3,-6,-9, 4, 1,-2, -1,-4,-7,
- -3, 1,-2, 4, 8, 5, -1, 3, 0,
- -3,-4,-7, 4, 3, 0, -1,-2,-5,
- -3,-6,-2, 4, 1, 5, -1,-4, 0,
- -3, 1, 5, 4, 8,12, -1, 3, 7,
- -3,-4, 0, 4, 3, 7, -1,-2, 2,
- -3,-6,-7, 4, 1, 0, -1,-4,-5,
- -3, 1, 0, 4, 8, 7, -1, 3, 2,
- -3,-4,-5, 4, 3, 2, -1,-2,-3};
-
-void run_test(static_codebook *b,float *comp){
- float *out=_book_unquantize(b,b->entries,NULL);
- int i;
-
- if(comp){
- if(!out){
- fprintf(stderr,"_book_unquantize incorrectly returned NULL\n");
- exit(1);
- }
-
- for(i=0;i<b->entries*b->dim;i++)
- if(fabs(out[i]-comp[i])>.0001){
- fprintf(stderr,"disagreement in unquantized and reference data:\n"
- "position %d, %g != %g\n",i,out[i],comp[i]);
- exit(1);
- }
-
- }else{
- if(out){
- fprintf(stderr,"_book_unquantize returned a value array: \n"
- " correct result should have been NULL\n");
- exit(1);
- }
- }
-}
-
-int main(){
- /* run the nine dequant tests, and compare to the hand-rolled results */
- fprintf(stderr,"Dequant test 1... ");
- run_test(&test1,test1_result);
- fprintf(stderr,"OK\nDequant test 2... ");
- run_test(&test2,test2_result);
- fprintf(stderr,"OK\nDequant test 3... ");
- run_test(&test3,test3_result);
- fprintf(stderr,"OK\nDequant test 4... ");
- run_test(&test4,test4_result);
- fprintf(stderr,"OK\nDequant test 5... ");
- run_test(&test5,test5_result);
- fprintf(stderr,"OK\n\n");
-
- return(0);
-}
-
-#endif
diff --git a/lib/smallft.c b/lib/smallft.c
deleted file mode 100644
index f3ccb422..00000000
--- a/lib/smallft.c
+++ /dev/null
@@ -1,1254 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: *unnormalized* fft transform
- last mod: $Id: smallft.c,v 1.16 2001/12/20 01:00:30 segher Exp $
-
- ********************************************************************/
-
-/* FFT implementation from OggSquish, minus cosine transforms,
- * minus all but radix 2/4 case. In Vorbis we only need this
- * cut-down version.
- *
- * To do more than just power-of-two sized vectors, see the full
- * version I wrote for NetLib.
- *
- * Note that the packing is a little strange; rather than the FFT r/i
- * packing following R_0, I_n, R_1, I_1, R_2, I_2 ... R_n-1, I_n-1,
- * it follows R_0, R_1, I_1, R_2, I_2 ... R_n-1, I_n-1, I_n like the
- * FORTRAN version
- */
-
-#include <stdlib.h>
-#include <string.h>
-#include <math.h>
-#include "smallft.h"
-#include "misc.h"
-
-static void drfti1(int n, float *wa, int *ifac){
- static int ntryh[4] = { 4,2,3,5 };
- static float tpi = 6.28318530717958648f;
- float arg,argh,argld,fi;
- int ntry=0,i,j=-1;
- int k1, l1, l2, ib;
- int ld, ii, ip, is, nq, nr;
- int ido, ipm, nfm1;
- int nl=n;
- int nf=0;
-
- L101:
- j++;
- if (j < 4)
- ntry=ntryh[j];
- else
- ntry+=2;
-
- L104:
- nq=nl/ntry;
- nr=nl-ntry*nq;
- if (nr!=0) goto L101;
-
- nf++;
- ifac[nf+1]=ntry;
- nl=nq;
- if(ntry!=2)goto L107;
- if(nf==1)goto L107;
-
- for (i=1;i<nf;i++){
- ib=nf-i+1;
- ifac[ib+1]=ifac[ib];
- }
- ifac[2] = 2;
-
- L107:
- if(nl!=1)goto L104;
- ifac[0]=n;
- ifac[1]=nf;
- argh=tpi/n;
- is=0;
- nfm1=nf-1;
- l1=1;
-
- if(nfm1==0)return;
-
- for (k1=0;k1<nfm1;k1++){
- ip=ifac[k1+2];
- ld=0;
- l2=l1*ip;
- ido=n/l2;
- ipm=ip-1;
-
- for (j=0;j<ipm;j++){
- ld+=l1;
- i=is;
- argld=(float)ld*argh;
- fi=0.f;
- for (ii=2;ii<ido;ii+=2){
- fi+=1.f;
- arg=fi*argld;
- wa[i++]=cos(arg);
- wa[i++]=sin(arg);
- }
- is+=ido;
- }
- l1=l2;
- }
-}
-
-static void fdrffti(int n, float *wsave, int *ifac){
-
- if (n == 1) return;
- drfti1(n, wsave+n, ifac);
-}
-
-static void dradf2(int ido,int l1,float *cc,float *ch,float *wa1){
- int i,k;
- float ti2,tr2;
- int t0,t1,t2,t3,t4,t5,t6;
-
- t1=0;
- t0=(t2=l1*ido);
- t3=ido<<1;
- for(k=0;k<l1;k++){
- ch[t1<<1]=cc[t1]+cc[t2];
- ch[(t1<<1)+t3-1]=cc[t1]-cc[t2];
- t1+=ido;
- t2+=ido;
- }
-
- if(ido<2)return;
- if(ido==2)goto L105;
-
- t1=0;
- t2=t0;
- for(k=0;k<l1;k++){
- t3=t2;
- t4=(t1<<1)+(ido<<1);
- t5=t1;
- t6=t1+t1;
- for(i=2;i<ido;i+=2){
- t3+=2;
- t4-=2;
- t5+=2;
- t6+=2;
- tr2=wa1[i-2]*cc[t3-1]+wa1[i-1]*cc[t3];
- ti2=wa1[i-2]*cc[t3]-wa1[i-1]*cc[t3-1];
- ch[t6]=cc[t5]+ti2;
- ch[t4]=ti2-cc[t5];
- ch[t6-1]=cc[t5-1]+tr2;
- ch[t4-1]=cc[t5-1]-tr2;
- }
- t1+=ido;
- t2+=ido;
- }
-
- if(ido%2==1)return;
-
- L105:
- t3=(t2=(t1=ido)-1);
- t2+=t0;
- for(k=0;k<l1;k++){
- ch[t1]=-cc[t2];
- ch[t1-1]=cc[t3];
- t1+=ido<<1;
- t2+=ido;
- t3+=ido;
- }
-}
-
-static void dradf4(int ido,int l1,float *cc,float *ch,float *wa1,
- float *wa2,float *wa3){
- static float hsqt2 = .70710678118654752f;
- int i,k,t0,t1,t2,t3,t4,t5,t6;
- float ci2,ci3,ci4,cr2,cr3,cr4,ti1,ti2,ti3,ti4,tr1,tr2,tr3,tr4;
- t0=l1*ido;
-
- t1=t0;
- t4=t1<<1;
- t2=t1+(t1<<1);
- t3=0;
-
- for(k=0;k<l1;k++){
- tr1=cc[t1]+cc[t2];
- tr2=cc[t3]+cc[t4];
-
- ch[t5=t3<<2]=tr1+tr2;
- ch[(ido<<2)+t5-1]=tr2-tr1;
- ch[(t5+=(ido<<1))-1]=cc[t3]-cc[t4];
- ch[t5]=cc[t2]-cc[t1];
-
- t1+=ido;
- t2+=ido;
- t3+=ido;
- t4+=ido;
- }
-
- if(ido<2)return;
- if(ido==2)goto L105;
-
-
- t1=0;
- for(k=0;k<l1;k++){
- t2=t1;
- t4=t1<<2;
- t5=(t6=ido<<1)+t4;
- for(i=2;i<ido;i+=2){
- t3=(t2+=2);
- t4+=2;
- t5-=2;
-
- t3+=t0;
- cr2=wa1[i-2]*cc[t3-1]+wa1[i-1]*cc[t3];
- ci2=wa1[i-2]*cc[t3]-wa1[i-1]*cc[t3-1];
- t3+=t0;
- cr3=wa2[i-2]*cc[t3-1]+wa2[i-1]*cc[t3];
- ci3=wa2[i-2]*cc[t3]-wa2[i-1]*cc[t3-1];
- t3+=t0;
- cr4=wa3[i-2]*cc[t3-1]+wa3[i-1]*cc[t3];
- ci4=wa3[i-2]*cc[t3]-wa3[i-1]*cc[t3-1];
-
- tr1=cr2+cr4;
- tr4=cr4-cr2;
- ti1=ci2+ci4;
- ti4=ci2-ci4;
-
- ti2=cc[t2]+ci3;
- ti3=cc[t2]-ci3;
- tr2=cc[t2-1]+cr3;
- tr3=cc[t2-1]-cr3;
-
- ch[t4-1]=tr1+tr2;
- ch[t4]=ti1+ti2;
-
- ch[t5-1]=tr3-ti4;
- ch[t5]=tr4-ti3;
-
- ch[t4+t6-1]=ti4+tr3;
- ch[t4+t6]=tr4+ti3;
-
- ch[t5+t6-1]=tr2-tr1;
- ch[t5+t6]=ti1-ti2;
- }
- t1+=ido;
- }
- if(ido&1)return;
-
- L105:
-
- t2=(t1=t0+ido-1)+(t0<<1);
- t3=ido<<2;
- t4=ido;
- t5=ido<<1;
- t6=ido;
-
- for(k=0;k<l1;k++){
- ti1=-hsqt2*(cc[t1]+cc[t2]);
- tr1=hsqt2*(cc[t1]-cc[t2]);
-
- ch[t4-1]=tr1+cc[t6-1];
- ch[t4+t5-1]=cc[t6-1]-tr1;
-
- ch[t4]=ti1-cc[t1+t0];
- ch[t4+t5]=ti1+cc[t1+t0];
-
- t1+=ido;
- t2+=ido;
- t4+=t3;
- t6+=ido;
- }
-}
-
-static void dradfg(int ido,int ip,int l1,int idl1,float *cc,float *c1,
- float *c2,float *ch,float *ch2,float *wa){
-
- static float tpi=6.283185307179586f;
- int idij,ipph,i,j,k,l,ic,ik,is;
- int t0,t1,t2,t3,t4,t5,t6,t7,t8,t9,t10;
- float dc2,ai1,ai2,ar1,ar2,ds2;
- int nbd;
- float dcp,arg,dsp,ar1h,ar2h;
- int idp2,ipp2;
-
- arg=tpi/(float)ip;
- dcp=cos(arg);
- dsp=sin(arg);
- ipph=(ip+1)>>1;
- ipp2=ip;
- idp2=ido;
- nbd=(ido-1)>>1;
- t0=l1*ido;
- t10=ip*ido;
-
- if(ido==1)goto L119;
- for(ik=0;ik<idl1;ik++)ch2[ik]=c2[ik];
-
- t1=0;
- for(j=1;j<ip;j++){
- t1+=t0;
- t2=t1;
- for(k=0;k<l1;k++){
- ch[t2]=c1[t2];
- t2+=ido;
- }
- }
-
- is=-ido;
- t1=0;
- if(nbd>l1){
- for(j=1;j<ip;j++){
- t1+=t0;
- is+=ido;
- t2= -ido+t1;
- for(k=0;k<l1;k++){
- idij=is-1;
- t2+=ido;
- t3=t2;
- for(i=2;i<ido;i+=2){
- idij+=2;
- t3+=2;
- ch[t3-1]=wa[idij-1]*c1[t3-1]+wa[idij]*c1[t3];
- ch[t3]=wa[idij-1]*c1[t3]-wa[idij]*c1[t3-1];
- }
- }
- }
- }else{
-
- for(j=1;j<ip;j++){
- is+=ido;
- idij=is-1;
- t1+=t0;
- t2=t1;
- for(i=2;i<ido;i+=2){
- idij+=2;
- t2+=2;
- t3=t2;
- for(k=0;k<l1;k++){
- ch[t3-1]=wa[idij-1]*c1[t3-1]+wa[idij]*c1[t3];
- ch[t3]=wa[idij-1]*c1[t3]-wa[idij]*c1[t3-1];
- t3+=ido;
- }
- }
- }
- }
-
- t1=0;
- t2=ipp2*t0;
- if(nbd<l1){
- for(j=1;j<ipph;j++){
- t1+=t0;
- t2-=t0;
- t3=t1;
- t4=t2;
- for(i=2;i<ido;i+=2){
- t3+=2;
- t4+=2;
- t5=t3-ido;
- t6=t4-ido;
- for(k=0;k<l1;k++){
- t5+=ido;
- t6+=ido;
- c1[t5-1]=ch[t5-1]+ch[t6-1];
- c1[t6-1]=ch[t5]-ch[t6];
- c1[t5]=ch[t5]+ch[t6];
- c1[t6]=ch[t6-1]-ch[t5-1];
- }
- }
- }
- }else{
- for(j=1;j<ipph;j++){
- t1+=t0;
- t2-=t0;
- t3=t1;
- t4=t2;
- for(k=0;k<l1;k++){
- t5=t3;
- t6=t4;
- for(i=2;i<ido;i+=2){
- t5+=2;
- t6+=2;
- c1[t5-1]=ch[t5-1]+ch[t6-1];
- c1[t6-1]=ch[t5]-ch[t6];
- c1[t5]=ch[t5]+ch[t6];
- c1[t6]=ch[t6-1]-ch[t5-1];
- }
- t3+=ido;
- t4+=ido;
- }
- }
- }
-
-L119:
- for(ik=0;ik<idl1;ik++)c2[ik]=ch2[ik];
-
- t1=0;
- t2=ipp2*idl1;
- for(j=1;j<ipph;j++){
- t1+=t0;
- t2-=t0;
- t3=t1-ido;
- t4=t2-ido;
- for(k=0;k<l1;k++){
- t3+=ido;
- t4+=ido;
- c1[t3]=ch[t3]+ch[t4];
- c1[t4]=ch[t4]-ch[t3];
- }
- }
-
- ar1=1.f;
- ai1=0.f;
- t1=0;
- t2=ipp2*idl1;
- t3=(ip-1)*idl1;
- for(l=1;l<ipph;l++){
- t1+=idl1;
- t2-=idl1;
- ar1h=dcp*ar1-dsp*ai1;
- ai1=dcp*ai1+dsp*ar1;
- ar1=ar1h;
- t4=t1;
- t5=t2;
- t6=t3;
- t7=idl1;
-
- for(ik=0;ik<idl1;ik++){
- ch2[t4++]=c2[ik]+ar1*c2[t7++];
- ch2[t5++]=ai1*c2[t6++];
- }
-
- dc2=ar1;
- ds2=ai1;
- ar2=ar1;
- ai2=ai1;
-
- t4=idl1;
- t5=(ipp2-1)*idl1;
- for(j=2;j<ipph;j++){
- t4+=idl1;
- t5-=idl1;
-
- ar2h=dc2*ar2-ds2*ai2;
- ai2=dc2*ai2+ds2*ar2;
- ar2=ar2h;
-
- t6=t1;
- t7=t2;
- t8=t4;
- t9=t5;
- for(ik=0;ik<idl1;ik++){
- ch2[t6++]+=ar2*c2[t8++];
- ch2[t7++]+=ai2*c2[t9++];
- }
- }
- }
-
- t1=0;
- for(j=1;j<ipph;j++){
- t1+=idl1;
- t2=t1;
- for(ik=0;ik<idl1;ik++)ch2[ik]+=c2[t2++];
- }
-
- if(ido<l1)goto L132;
-
- t1=0;
- t2=0;
- for(k=0;k<l1;k++){
- t3=t1;
- t4=t2;
- for(i=0;i<ido;i++)cc[t4++]=ch[t3++];
- t1+=ido;
- t2+=t10;
- }
-
- goto L135;
-
- L132:
- for(i=0;i<ido;i++){
- t1=i;
- t2=i;
- for(k=0;k<l1;k++){
- cc[t2]=ch[t1];
- t1+=ido;
- t2+=t10;
- }
- }
-
- L135:
- t1=0;
- t2=ido<<1;
- t3=0;
- t4=ipp2*t0;
- for(j=1;j<ipph;j++){
-
- t1+=t2;
- t3+=t0;
- t4-=t0;
-
- t5=t1;
- t6=t3;
- t7=t4;
-
- for(k=0;k<l1;k++){
- cc[t5-1]=ch[t6];
- cc[t5]=ch[t7];
- t5+=t10;
- t6+=ido;
- t7+=ido;
- }
- }
-
- if(ido==1)return;
- if(nbd<l1)goto L141;
-
- t1=-ido;
- t3=0;
- t4=0;
- t5=ipp2*t0;
- for(j=1;j<ipph;j++){
- t1+=t2;
- t3+=t2;
- t4+=t0;
- t5-=t0;
- t6=t1;
- t7=t3;
- t8=t4;
- t9=t5;
- for(k=0;k<l1;k++){
- for(i=2;i<ido;i+=2){
- ic=idp2-i;
- cc[i+t7-1]=ch[i+t8-1]+ch[i+t9-1];
- cc[ic+t6-1]=ch[i+t8-1]-ch[i+t9-1];
- cc[i+t7]=ch[i+t8]+ch[i+t9];
- cc[ic+t6]=ch[i+t9]-ch[i+t8];
- }
- t6+=t10;
- t7+=t10;
- t8+=ido;
- t9+=ido;
- }
- }
- return;
-
- L141:
-
- t1=-ido;
- t3=0;
- t4=0;
- t5=ipp2*t0;
- for(j=1;j<ipph;j++){
- t1+=t2;
- t3+=t2;
- t4+=t0;
- t5-=t0;
- for(i=2;i<ido;i+=2){
- t6=idp2+t1-i;
- t7=i+t3;
- t8=i+t4;
- t9=i+t5;
- for(k=0;k<l1;k++){
- cc[t7-1]=ch[t8-1]+ch[t9-1];
- cc[t6-1]=ch[t8-1]-ch[t9-1];
- cc[t7]=ch[t8]+ch[t9];
- cc[t6]=ch[t9]-ch[t8];
- t6+=t10;
- t7+=t10;
- t8+=ido;
- t9+=ido;
- }
- }
- }
-}
-
-static void drftf1(int n,float *c,float *ch,float *wa,int *ifac){
- int i,k1,l1,l2;
- int na,kh,nf;
- int ip,iw,ido,idl1,ix2,ix3;
-
- nf=ifac[1];
- na=1;
- l2=n;
- iw=n;
-
- for(k1=0;k1<nf;k1++){
- kh=nf-k1;
- ip=ifac[kh+1];
- l1=l2/ip;
- ido=n/l2;
- idl1=ido*l1;
- iw-=(ip-1)*ido;
- na=1-na;
-
- if(ip!=4)goto L102;
-
- ix2=iw+ido;
- ix3=ix2+ido;
- if(na!=0)
- dradf4(ido,l1,ch,c,wa+iw-1,wa+ix2-1,wa+ix3-1);
- else
- dradf4(ido,l1,c,ch,wa+iw-1,wa+ix2-1,wa+ix3-1);
- goto L110;
-
- L102:
- if(ip!=2)goto L104;
- if(na!=0)goto L103;
-
- dradf2(ido,l1,c,ch,wa+iw-1);
- goto L110;
-
- L103:
- dradf2(ido,l1,ch,c,wa+iw-1);
- goto L110;
-
- L104:
- if(ido==1)na=1-na;
- if(na!=0)goto L109;
-
- dradfg(ido,ip,l1,idl1,c,c,c,ch,ch,wa+iw-1);
- na=1;
- goto L110;
-
- L109:
- dradfg(ido,ip,l1,idl1,ch,ch,ch,c,c,wa+iw-1);
- na=0;
-
- L110:
- l2=l1;
- }
-
- if(na==1)return;
-
- for(i=0;i<n;i++)c[i]=ch[i];
-}
-
-static void dradb2(int ido,int l1,float *cc,float *ch,float *wa1){
- int i,k,t0,t1,t2,t3,t4,t5,t6;
- float ti2,tr2;
-
- t0=l1*ido;
-
- t1=0;
- t2=0;
- t3=(ido<<1)-1;
- for(k=0;k<l1;k++){
- ch[t1]=cc[t2]+cc[t3+t2];
- ch[t1+t0]=cc[t2]-cc[t3+t2];
- t2=(t1+=ido)<<1;
- }
-
- if(ido<2)return;
- if(ido==2)goto L105;
-
- t1=0;
- t2=0;
- for(k=0;k<l1;k++){
- t3=t1;
- t5=(t4=t2)+(ido<<1);
- t6=t0+t1;
- for(i=2;i<ido;i+=2){
- t3+=2;
- t4+=2;
- t5-=2;
- t6+=2;
- ch[t3-1]=cc[t4-1]+cc[t5-1];
- tr2=cc[t4-1]-cc[t5-1];
- ch[t3]=cc[t4]-cc[t5];
- ti2=cc[t4]+cc[t5];
- ch[t6-1]=wa1[i-2]*tr2-wa1[i-1]*ti2;
- ch[t6]=wa1[i-2]*ti2+wa1[i-1]*tr2;
- }
- t2=(t1+=ido)<<1;
- }
-
- if(ido%2==1)return;
-
-L105:
- t1=ido-1;
- t2=ido-1;
- for(k=0;k<l1;k++){
- ch[t1]=cc[t2]+cc[t2];
- ch[t1+t0]=-(cc[t2+1]+cc[t2+1]);
- t1+=ido;
- t2+=ido<<1;
- }
-}
-
-static void dradb3(int ido,int l1,float *cc,float *ch,float *wa1,
- float *wa2){
- static float taur = -.5f;
- static float taui = .8660254037844386f;
- int i,k,t0,t1,t2,t3,t4,t5,t6,t7,t8,t9,t10;
- float ci2,ci3,di2,di3,cr2,cr3,dr2,dr3,ti2,tr2;
- t0=l1*ido;
-
- t1=0;
- t2=t0<<1;
- t3=ido<<1;
- t4=ido+(ido<<1);
- t5=0;
- for(k=0;k<l1;k++){
- tr2=cc[t3-1]+cc[t3-1];
- cr2=cc[t5]+(taur*tr2);
- ch[t1]=cc[t5]+tr2;
- ci3=taui*(cc[t3]+cc[t3]);
- ch[t1+t0]=cr2-ci3;
- ch[t1+t2]=cr2+ci3;
- t1+=ido;
- t3+=t4;
- t5+=t4;
- }
-
- if(ido==1)return;
-
- t1=0;
- t3=ido<<1;
- for(k=0;k<l1;k++){
- t7=t1+(t1<<1);
- t6=(t5=t7+t3);
- t8=t1;
- t10=(t9=t1+t0)+t0;
-
- for(i=2;i<ido;i+=2){
- t5+=2;
- t6-=2;
- t7+=2;
- t8+=2;
- t9+=2;
- t10+=2;
- tr2=cc[t5-1]+cc[t6-1];
- cr2=cc[t7-1]+(taur*tr2);
- ch[t8-1]=cc[t7-1]+tr2;
- ti2=cc[t5]-cc[t6];
- ci2=cc[t7]+(taur*ti2);
- ch[t8]=cc[t7]+ti2;
- cr3=taui*(cc[t5-1]-cc[t6-1]);
- ci3=taui*(cc[t5]+cc[t6]);
- dr2=cr2-ci3;
- dr3=cr2+ci3;
- di2=ci2+cr3;
- di3=ci2-cr3;
- ch[t9-1]=wa1[i-2]*dr2-wa1[i-1]*di2;
- ch[t9]=wa1[i-2]*di2+wa1[i-1]*dr2;
- ch[t10-1]=wa2[i-2]*dr3-wa2[i-1]*di3;
- ch[t10]=wa2[i-2]*di3+wa2[i-1]*dr3;
- }
- t1+=ido;
- }
-}
-
-static void dradb4(int ido,int l1,float *cc,float *ch,float *wa1,
- float *wa2,float *wa3){
- static float sqrt2=1.414213562373095f;
- int i,k,t0,t1,t2,t3,t4,t5,t6,t7,t8;
- float ci2,ci3,ci4,cr2,cr3,cr4,ti1,ti2,ti3,ti4,tr1,tr2,tr3,tr4;
- t0=l1*ido;
-
- t1=0;
- t2=ido<<2;
- t3=0;
- t6=ido<<1;
- for(k=0;k<l1;k++){
- t4=t3+t6;
- t5=t1;
- tr3=cc[t4-1]+cc[t4-1];
- tr4=cc[t4]+cc[t4];
- tr1=cc[t3]-cc[(t4+=t6)-1];
- tr2=cc[t3]+cc[t4-1];
- ch[t5]=tr2+tr3;
- ch[t5+=t0]=tr1-tr4;
- ch[t5+=t0]=tr2-tr3;
- ch[t5+=t0]=tr1+tr4;
- t1+=ido;
- t3+=t2;
- }
-
- if(ido<2)return;
- if(ido==2)goto L105;
-
- t1=0;
- for(k=0;k<l1;k++){
- t5=(t4=(t3=(t2=t1<<2)+t6))+t6;
- t7=t1;
- for(i=2;i<ido;i+=2){
- t2+=2;
- t3+=2;
- t4-=2;
- t5-=2;
- t7+=2;
- ti1=cc[t2]+cc[t5];
- ti2=cc[t2]-cc[t5];
- ti3=cc[t3]-cc[t4];
- tr4=cc[t3]+cc[t4];
- tr1=cc[t2-1]-cc[t5-1];
- tr2=cc[t2-1]+cc[t5-1];
- ti4=cc[t3-1]-cc[t4-1];
- tr3=cc[t3-1]+cc[t4-1];
- ch[t7-1]=tr2+tr3;
- cr3=tr2-tr3;
- ch[t7]=ti2+ti3;
- ci3=ti2-ti3;
- cr2=tr1-tr4;
- cr4=tr1+tr4;
- ci2=ti1+ti4;
- ci4=ti1-ti4;
-
- ch[(t8=t7+t0)-1]=wa1[i-2]*cr2-wa1[i-1]*ci2;
- ch[t8]=wa1[i-2]*ci2+wa1[i-1]*cr2;
- ch[(t8+=t0)-1]=wa2[i-2]*cr3-wa2[i-1]*ci3;
- ch[t8]=wa2[i-2]*ci3+wa2[i-1]*cr3;
- ch[(t8+=t0)-1]=wa3[i-2]*cr4-wa3[i-1]*ci4;
- ch[t8]=wa3[i-2]*ci4+wa3[i-1]*cr4;
- }
- t1+=ido;
- }
-
- if(ido%2 == 1)return;
-
- L105:
-
- t1=ido;
- t2=ido<<2;
- t3=ido-1;
- t4=ido+(ido<<1);
- for(k=0;k<l1;k++){
- t5=t3;
- ti1=cc[t1]+cc[t4];
- ti2=cc[t4]-cc[t1];
- tr1=cc[t1-1]-cc[t4-1];
- tr2=cc[t1-1]+cc[t4-1];
- ch[t5]=tr2+tr2;
- ch[t5+=t0]=sqrt2*(tr1-ti1);
- ch[t5+=t0]=ti2+ti2;
- ch[t5+=t0]=-sqrt2*(tr1+ti1);
-
- t3+=ido;
- t1+=t2;
- t4+=t2;
- }
-}
-
-static void dradbg(int ido,int ip,int l1,int idl1,float *cc,float *c1,
- float *c2,float *ch,float *ch2,float *wa){
- static float tpi=6.283185307179586f;
- int idij,ipph,i,j,k,l,ik,is,t0,t1,t2,t3,t4,t5,t6,t7,t8,t9,t10,
- t11,t12;
- float dc2,ai1,ai2,ar1,ar2,ds2;
- int nbd;
- float dcp,arg,dsp,ar1h,ar2h;
- int ipp2;
-
- t10=ip*ido;
- t0=l1*ido;
- arg=tpi/(float)ip;
- dcp=cos(arg);
- dsp=sin(arg);
- nbd=(ido-1)>>1;
- ipp2=ip;
- ipph=(ip+1)>>1;
- if(ido<l1)goto L103;
-
- t1=0;
- t2=0;
- for(k=0;k<l1;k++){
- t3=t1;
- t4=t2;
- for(i=0;i<ido;i++){
- ch[t3]=cc[t4];
- t3++;
- t4++;
- }
- t1+=ido;
- t2+=t10;
- }
- goto L106;
-
- L103:
- t1=0;
- for(i=0;i<ido;i++){
- t2=t1;
- t3=t1;
- for(k=0;k<l1;k++){
- ch[t2]=cc[t3];
- t2+=ido;
- t3+=t10;
- }
- t1++;
- }
-
- L106:
- t1=0;
- t2=ipp2*t0;
- t7=(t5=ido<<1);
- for(j=1;j<ipph;j++){
- t1+=t0;
- t2-=t0;
- t3=t1;
- t4=t2;
- t6=t5;
- for(k=0;k<l1;k++){
- ch[t3]=cc[t6-1]+cc[t6-1];
- ch[t4]=cc[t6]+cc[t6];
- t3+=ido;
- t4+=ido;
- t6+=t10;
- }
- t5+=t7;
- }
-
- if (ido == 1)goto L116;
- if(nbd<l1)goto L112;
-
- t1=0;
- t2=ipp2*t0;
- t7=0;
- for(j=1;j<ipph;j++){
- t1+=t0;
- t2-=t0;
- t3=t1;
- t4=t2;
-
- t7+=(ido<<1);
- t8=t7;
- for(k=0;k<l1;k++){
- t5=t3;
- t6=t4;
- t9=t8;
- t11=t8;
- for(i=2;i<ido;i+=2){
- t5+=2;
- t6+=2;
- t9+=2;
- t11-=2;
- ch[t5-1]=cc[t9-1]+cc[t11-1];
- ch[t6-1]=cc[t9-1]-cc[t11-1];
- ch[t5]=cc[t9]-cc[t11];
- ch[t6]=cc[t9]+cc[t11];
- }
- t3+=ido;
- t4+=ido;
- t8+=t10;
- }
- }
- goto L116;
-
- L112:
- t1=0;
- t2=ipp2*t0;
- t7=0;
- for(j=1;j<ipph;j++){
- t1+=t0;
- t2-=t0;
- t3=t1;
- t4=t2;
- t7+=(ido<<1);
- t8=t7;
- t9=t7;
- for(i=2;i<ido;i+=2){
- t3+=2;
- t4+=2;
- t8+=2;
- t9-=2;
- t5=t3;
- t6=t4;
- t11=t8;
- t12=t9;
- for(k=0;k<l1;k++){
- ch[t5-1]=cc[t11-1]+cc[t12-1];
- ch[t6-1]=cc[t11-1]-cc[t12-1];
- ch[t5]=cc[t11]-cc[t12];
- ch[t6]=cc[t11]+cc[t12];
- t5+=ido;
- t6+=ido;
- t11+=t10;
- t12+=t10;
- }
- }
- }
-
-L116:
- ar1=1.f;
- ai1=0.f;
- t1=0;
- t9=(t2=ipp2*idl1);
- t3=(ip-1)*idl1;
- for(l=1;l<ipph;l++){
- t1+=idl1;
- t2-=idl1;
-
- ar1h=dcp*ar1-dsp*ai1;
- ai1=dcp*ai1+dsp*ar1;
- ar1=ar1h;
- t4=t1;
- t5=t2;
- t6=0;
- t7=idl1;
- t8=t3;
- for(ik=0;ik<idl1;ik++){
- c2[t4++]=ch2[t6++]+ar1*ch2[t7++];
- c2[t5++]=ai1*ch2[t8++];
- }
- dc2=ar1;
- ds2=ai1;
- ar2=ar1;
- ai2=ai1;
-
- t6=idl1;
- t7=t9-idl1;
- for(j=2;j<ipph;j++){
- t6+=idl1;
- t7-=idl1;
- ar2h=dc2*ar2-ds2*ai2;
- ai2=dc2*ai2+ds2*ar2;
- ar2=ar2h;
- t4=t1;
- t5=t2;
- t11=t6;
- t12=t7;
- for(ik=0;ik<idl1;ik++){
- c2[t4++]+=ar2*ch2[t11++];
- c2[t5++]+=ai2*ch2[t12++];
- }
- }
- }
-
- t1=0;
- for(j=1;j<ipph;j++){
- t1+=idl1;
- t2=t1;
- for(ik=0;ik<idl1;ik++)ch2[ik]+=ch2[t2++];
- }
-
- t1=0;
- t2=ipp2*t0;
- for(j=1;j<ipph;j++){
- t1+=t0;
- t2-=t0;
- t3=t1;
- t4=t2;
- for(k=0;k<l1;k++){
- ch[t3]=c1[t3]-c1[t4];
- ch[t4]=c1[t3]+c1[t4];
- t3+=ido;
- t4+=ido;
- }
- }
-
- if(ido==1)goto L132;
- if(nbd<l1)goto L128;
-
- t1=0;
- t2=ipp2*t0;
- for(j=1;j<ipph;j++){
- t1+=t0;
- t2-=t0;
- t3=t1;
- t4=t2;
- for(k=0;k<l1;k++){
- t5=t3;
- t6=t4;
- for(i=2;i<ido;i+=2){
- t5+=2;
- t6+=2;
- ch[t5-1]=c1[t5-1]-c1[t6];
- ch[t6-1]=c1[t5-1]+c1[t6];
- ch[t5]=c1[t5]+c1[t6-1];
- ch[t6]=c1[t5]-c1[t6-1];
- }
- t3+=ido;
- t4+=ido;
- }
- }
- goto L132;
-
- L128:
- t1=0;
- t2=ipp2*t0;
- for(j=1;j<ipph;j++){
- t1+=t0;
- t2-=t0;
- t3=t1;
- t4=t2;
- for(i=2;i<ido;i+=2){
- t3+=2;
- t4+=2;
- t5=t3;
- t6=t4;
- for(k=0;k<l1;k++){
- ch[t5-1]=c1[t5-1]-c1[t6];
- ch[t6-1]=c1[t5-1]+c1[t6];
- ch[t5]=c1[t5]+c1[t6-1];
- ch[t6]=c1[t5]-c1[t6-1];
- t5+=ido;
- t6+=ido;
- }
- }
- }
-
-L132:
- if(ido==1)return;
-
- for(ik=0;ik<idl1;ik++)c2[ik]=ch2[ik];
-
- t1=0;
- for(j=1;j<ip;j++){
- t2=(t1+=t0);
- for(k=0;k<l1;k++){
- c1[t2]=ch[t2];
- t2+=ido;
- }
- }
-
- if(nbd>l1)goto L139;
-
- is= -ido-1;
- t1=0;
- for(j=1;j<ip;j++){
- is+=ido;
- t1+=t0;
- idij=is;
- t2=t1;
- for(i=2;i<ido;i+=2){
- t2+=2;
- idij+=2;
- t3=t2;
- for(k=0;k<l1;k++){
- c1[t3-1]=wa[idij-1]*ch[t3-1]-wa[idij]*ch[t3];
- c1[t3]=wa[idij-1]*ch[t3]+wa[idij]*ch[t3-1];
- t3+=ido;
- }
- }
- }
- return;
-
- L139:
- is= -ido-1;
- t1=0;
- for(j=1;j<ip;j++){
- is+=ido;
- t1+=t0;
- t2=t1;
- for(k=0;k<l1;k++){
- idij=is;
- t3=t2;
- for(i=2;i<ido;i+=2){
- idij+=2;
- t3+=2;
- c1[t3-1]=wa[idij-1]*ch[t3-1]-wa[idij]*ch[t3];
- c1[t3]=wa[idij-1]*ch[t3]+wa[idij]*ch[t3-1];
- }
- t2+=ido;
- }
- }
-}
-
-static void drftb1(int n, float *c, float *ch, float *wa, int *ifac){
- int i,k1,l1,l2;
- int na;
- int nf,ip,iw,ix2,ix3,ido,idl1;
-
- nf=ifac[1];
- na=0;
- l1=1;
- iw=1;
-
- for(k1=0;k1<nf;k1++){
- ip=ifac[k1 + 2];
- l2=ip*l1;
- ido=n/l2;
- idl1=ido*l1;
- if(ip!=4)goto L103;
- ix2=iw+ido;
- ix3=ix2+ido;
-
- if(na!=0)
- dradb4(ido,l1,ch,c,wa+iw-1,wa+ix2-1,wa+ix3-1);
- else
- dradb4(ido,l1,c,ch,wa+iw-1,wa+ix2-1,wa+ix3-1);
- na=1-na;
- goto L115;
-
- L103:
- if(ip!=2)goto L106;
-
- if(na!=0)
- dradb2(ido,l1,ch,c,wa+iw-1);
- else
- dradb2(ido,l1,c,ch,wa+iw-1);
- na=1-na;
- goto L115;
-
- L106:
- if(ip!=3)goto L109;
-
- ix2=iw+ido;
- if(na!=0)
- dradb3(ido,l1,ch,c,wa+iw-1,wa+ix2-1);
- else
- dradb3(ido,l1,c,ch,wa+iw-1,wa+ix2-1);
- na=1-na;
- goto L115;
-
- L109:
-/* The radix five case can be translated later..... */
-/* if(ip!=5)goto L112;
-
- ix2=iw+ido;
- ix3=ix2+ido;
- ix4=ix3+ido;
- if(na!=0)
- dradb5(ido,l1,ch,c,wa+iw-1,wa+ix2-1,wa+ix3-1,wa+ix4-1);
- else
- dradb5(ido,l1,c,ch,wa+iw-1,wa+ix2-1,wa+ix3-1,wa+ix4-1);
- na=1-na;
- goto L115;
-
- L112:*/
- if(na!=0)
- dradbg(ido,ip,l1,idl1,ch,ch,ch,c,c,wa+iw-1);
- else
- dradbg(ido,ip,l1,idl1,c,c,c,ch,ch,wa+iw-1);
- if(ido==1)na=1-na;
-
- L115:
- l1=l2;
- iw+=(ip-1)*ido;
- }
-
- if(na==0)return;
-
- for(i=0;i<n;i++)c[i]=ch[i];
-}
-
-void drft_forward(drft_lookup *l,float *data){
- if(l->n==1)return;
- drftf1(l->n,data,l->trigcache,l->trigcache+l->n,l->splitcache);
-}
-
-void drft_backward(drft_lookup *l,float *data){
- if (l->n==1)return;
- drftb1(l->n,data,l->trigcache,l->trigcache+l->n,l->splitcache);
-}
-
-void drft_init(drft_lookup *l,int n){
- l->n=n;
- l->trigcache=_ogg_calloc(3*n,sizeof(*l->trigcache));
- l->splitcache=_ogg_calloc(32,sizeof(*l->splitcache));
- fdrffti(n, l->trigcache, l->splitcache);
-}
-
-void drft_clear(drft_lookup *l){
- if(l){
- if(l->trigcache)_ogg_free(l->trigcache);
- if(l->splitcache)_ogg_free(l->splitcache);
- memset(l,0,sizeof(*l));
- }
-}
diff --git a/lib/smallft.h b/lib/smallft.h
deleted file mode 100644
index cfe5821d..00000000
--- a/lib/smallft.h
+++ /dev/null
@@ -1,34 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: fft transform
- last mod: $Id: smallft.h,v 1.11 2001/12/20 01:00:30 segher Exp $
-
- ********************************************************************/
-
-#ifndef _V_SMFT_H_
-#define _V_SMFT_H_
-
-#include "vorbis/codec.h"
-
-typedef struct {
- int n;
- float *trigcache;
- int *splitcache;
-} drft_lookup;
-
-extern void drft_forward(drft_lookup *l,float *data);
-extern void drft_backward(drft_lookup *l,float *data);
-extern void drft_init(drft_lookup *l,int n);
-extern void drft_clear(drft_lookup *l);
-
-#endif
diff --git a/lib/synthesis.c b/lib/synthesis.c
deleted file mode 100644
index 52cf51aa..00000000
--- a/lib/synthesis.c
+++ /dev/null
@@ -1,104 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: single-block PCM synthesis
- last mod: $Id: synthesis.c,v 1.25 2001/12/20 01:00:30 segher Exp $
-
- ********************************************************************/
-
-#include <stdio.h>
-#include <ogg/ogg.h>
-#include "vorbis/codec.h"
-#include "codec_internal.h"
-#include "registry.h"
-#include "misc.h"
-#include "os.h"
-
-int vorbis_synthesis(vorbis_block *vb,ogg_packet *op){
- vorbis_dsp_state *vd=vb->vd;
- backend_lookup_state *b=vd->backend_state;
- vorbis_info *vi=vd->vi;
- codec_setup_info *ci=vi->codec_setup;
- oggpack_buffer *opb=&vb->opb;
- int type,mode,i;
-
- /* first things first. Make sure decode is ready */
- _vorbis_block_ripcord(vb);
- oggpack_readinit(opb,op->packet,op->bytes);
-
- /* Check the packet type */
- if(oggpack_read(opb,1)!=0){
- /* Oops. This is not an audio data packet */
- return(OV_ENOTAUDIO);
- }
-
- /* read our mode and pre/post windowsize */
- mode=oggpack_read(opb,b->modebits);
- if(mode==-1)return(OV_EBADPACKET);
-
- vb->mode=mode;
- vb->W=ci->mode_param[mode]->blockflag;
- if(vb->W){
- vb->lW=oggpack_read(opb,1);
- vb->nW=oggpack_read(opb,1);
- if(vb->nW==-1) return(OV_EBADPACKET);
- }else{
- vb->lW=0;
- vb->nW=0;
- }
-
- /* more setup */
- vb->granulepos=op->granulepos;
- vb->sequence=op->packetno-3; /* first block is third packet */
- vb->eofflag=op->e_o_s;
-
- /* alloc pcm passback storage */
- vb->pcmend=ci->blocksizes[vb->W];
- vb->pcm=_vorbis_block_alloc(vb,sizeof(*vb->pcm)*vi->channels);
- for(i=0;i<vi->channels;i++)
- vb->pcm[i]=_vorbis_block_alloc(vb,vb->pcmend*sizeof(*vb->pcm[i]));
-
- /* unpack_header enforces range checking */
- type=ci->map_type[ci->mode_param[mode]->mapping];
-
- return(_mapping_P[type]->inverse(vb,b->mode[mode]));
-}
-
-long vorbis_packet_blocksize(vorbis_info *vi,ogg_packet *op){
- codec_setup_info *ci=vi->codec_setup;
- oggpack_buffer opb;
- int mode;
-
- oggpack_readinit(&opb,op->packet,op->bytes);
-
- /* Check the packet type */
- if(oggpack_read(&opb,1)!=0){
- /* Oops. This is not an audio data packet */
- return(OV_ENOTAUDIO);
- }
-
- {
- int modebits=0;
- int v=ci->modes;
- while(v>1){
- modebits++;
- v>>=1;
- }
-
- /* read our mode and pre/post windowsize */
- mode=oggpack_read(&opb,modebits);
- }
- if(mode==-1)return(OV_EBADPACKET);
- return(ci->blocksizes[ci->mode_param[mode]->blockflag]);
-}
-
-
diff --git a/lib/time0.c b/lib/time0.c
deleted file mode 100644
index 3d3f1d8f..00000000
--- a/lib/time0.c
+++ /dev/null
@@ -1,55 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: time backend 0 (dummy)
- last mod: $Id: time0.c,v 1.11 2001/12/20 01:00:30 segher Exp $
-
- ********************************************************************/
-
-#include <stdlib.h>
-#include <string.h>
-#include "vorbis/codec.h"
-#include "codec_internal.h"
-#include "registry.h"
-#include "misc.h"
-
-static void time0_pack (vorbis_info_time *i,oggpack_buffer *opb){
-}
-static vorbis_info_time *time0_unpack (vorbis_info *vi,oggpack_buffer *opb){
- return "";
-
-}
-static vorbis_info_time *time0_copy_info (vorbis_info_time *vi){
- return "";
-}
-static vorbis_look_time *time0_look (vorbis_dsp_state *vd,vorbis_info_mode *mi,
- vorbis_info_time *i){
- return "";
-}
-static void time0_free_info(vorbis_info_time *i){
-}
-static void time0_free_look(vorbis_look_time *i){
-}
-static int time0_forward(vorbis_block *vb,vorbis_look_time *i,
- float *in,float *out){
- return(0);
-}
-static int time0_inverse(vorbis_block *vb,vorbis_look_time *i,
- float *in,float *out){
- return(0);
-}
-
-/* export hooks */
-vorbis_func_time time0_exportbundle={
- &time0_pack,&time0_unpack,&time0_look,&time0_copy_info,&time0_free_info,
- &time0_free_look,&time0_forward,&time0_inverse
-};
diff --git a/lib/tone.c b/lib/tone.c
deleted file mode 100644
index daf2f931..00000000
--- a/lib/tone.c
+++ /dev/null
@@ -1,54 +0,0 @@
-#include <stdlib.h>
-#include <stdio.h>
-#include <math.h>
-#include <string.h>
-
-void usage(){
- fprintf(stderr,"tone <frequency_Hz>,[<amplitude>] [<frequency_Hz>,[<amplitude>]...]\n");
- exit(1);
-}
-
-int main (int argc,char *argv[]){
- int i,j;
- double *f;
- double *amp;
-
- if(argc<2)usage();
-
- f=alloca(sizeof(*f)*(argc-1));
- amp=alloca(sizeof(*amp)*(argc-1));
-
- i=0;
- while(argv[i+1]){
- char *pos=strchr(argv[i+1],',');
-
- f[i]=atof(argv[i+1]);
- if(pos)
- amp[i]=atof(pos+1)*32767.f;
- else
- amp[i]=32767.f;
-
- fprintf(stderr,"%g Hz, %g amp\n",f[i],amp[i]);
-
- i++;
- }
-
- for(i=0;i<44100*10;i++){
- float val=0;
- int ival;
- for(j=0;j<argc-1;j++)
- val+=amp[j]*sin(i/44100.f*f[j]*2*M_PI);
- ival=rint(val);
-
- if(ival>32767.f)ival=32767.f;
- if(ival<-32768.f)ival=-32768.f;
-
- fprintf(stdout,"%c%c%c%c",
- (char)(ival&0xff),
- (char)((ival>>8)&0xff),
- (char)(ival&0xff),
- (char)((ival>>8)&0xff));
- }
- return(0);
-}
-
diff --git a/lib/vorbisfile.c b/lib/vorbisfile.c
deleted file mode 100644
index 01855467..00000000
--- a/lib/vorbisfile.c
+++ /dev/null
@@ -1,1532 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2002 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: stdio-based convenience library for opening/seeking/decoding
- last mod: $Id: vorbisfile.c,v 1.55 2002/01/22 08:06:08 xiphmont Exp $
-
- ********************************************************************/
-
-#include <stdlib.h>
-#include <stdio.h>
-#include <errno.h>
-#include <string.h>
-#include <math.h>
-
-#include "vorbis/codec.h"
-#include "vorbis/vorbisfile.h"
-
-#include "os.h"
-#include "misc.h"
-
-/* A 'chained bitstream' is a Vorbis bitstream that contains more than
- one logical bitstream arranged end to end (the only form of Ogg
- multiplexing allowed in a Vorbis bitstream; grouping [parallel
- multiplexing] is not allowed in Vorbis) */
-
-/* A Vorbis file can be played beginning to end (streamed) without
- worrying ahead of time about chaining (see decoder_example.c). If
- we have the whole file, however, and want random access
- (seeking/scrubbing) or desire to know the total length/time of a
- file, we need to account for the possibility of chaining. */
-
-/* We can handle things a number of ways; we can determine the entire
- bitstream structure right off the bat, or find pieces on demand.
- This example determines and caches structure for the entire
- bitstream, but builds a virtual decoder on the fly when moving
- between links in the chain. */
-
-/* There are also different ways to implement seeking. Enough
- information exists in an Ogg bitstream to seek to
- sample-granularity positions in the output. Or, one can seek by
- picking some portion of the stream roughly in the desired area if
- we only want coarse navigation through the stream. */
-
-/*************************************************************************
- * Many, many internal helpers. The intention is not to be confusing;
- * rampant duplication and monolithic function implementation would be
- * harder to understand anyway. The high level functions are last. Begin
- * grokking near the end of the file */
-
-/* read a little more data from the file/pipe into the ogg_sync framer
-*/
-#define CHUNKSIZE 8500 /* a shade over 8k; anyone using pages well
- over 8k gets what they deserve */
-static long _get_data(OggVorbis_File *vf){
- errno=0;
- if(vf->datasource){
- char *buffer=ogg_sync_buffer(&vf->oy,CHUNKSIZE);
- long bytes=(vf->callbacks.read_func)(buffer,1,CHUNKSIZE,vf->datasource);
- if(bytes>0)ogg_sync_wrote(&vf->oy,bytes);
- if(bytes==0 && errno)return(-1);
- return(bytes);
- }else
- return(0);
-}
-
-/* save a tiny smidge of verbosity to make the code more readable */
-static void _seek_helper(OggVorbis_File *vf,long offset){
- if(vf->datasource){
- (vf->callbacks.seek_func)(vf->datasource, offset, SEEK_SET);
- vf->offset=offset;
- ogg_sync_reset(&vf->oy);
- }else{
- /* shouldn't happen unless someone writes a broken callback */
- return;
- }
-}
-
-/* The read/seek functions track absolute position within the stream */
-
-/* from the head of the stream, get the next page. boundary specifies
- if the function is allowed to fetch more data from the stream (and
- how much) or only use internally buffered data.
-
- boundary: -1) unbounded search
- 0) read no additional data; use cached only
- n) search for a new page beginning for n bytes
-
- return: <0) did not find a page (OV_FALSE, OV_EOF, OV_EREAD)
- n) found a page at absolute offset n */
-
-static long _get_next_page(OggVorbis_File *vf,ogg_page *og,int boundary){
- if(boundary>0)boundary+=vf->offset;
- while(1){
- long more;
-
- if(boundary>0 && vf->offset>=boundary)return(OV_FALSE);
- more=ogg_sync_pageseek(&vf->oy,og);
-
- if(more<0){
- /* skipped n bytes */
- vf->offset-=more;
- }else{
- if(more==0){
- /* send more paramedics */
- if(!boundary)return(OV_FALSE);
- {
- long ret=_get_data(vf);
- if(ret==0)return(OV_EOF);
- if(ret<0)return(OV_EREAD);
- }
- }else{
- /* got a page. Return the offset at the page beginning,
- advance the internal offset past the page end */
- long ret=vf->offset;
- vf->offset+=more;
- return(ret);
-
- }
- }
- }
-}
-
-/* find the latest page beginning before the current stream cursor
- position. Much dirtier than the above as Ogg doesn't have any
- backward search linkage. no 'readp' as it will certainly have to
- read. */
-/* returns offset or OV_EREAD, OV_FAULT */
-static long _get_prev_page(OggVorbis_File *vf,ogg_page *og){
- long begin=vf->offset;
- long ret;
- int offset=-1;
-
- while(offset==-1){
- begin-=CHUNKSIZE;
- if(begin<0)
- begin=0;
- _seek_helper(vf,begin);
- while(vf->offset<begin+CHUNKSIZE){
- ret=_get_next_page(vf,og,begin+CHUNKSIZE-vf->offset);
- if(ret==OV_EREAD)return(OV_EREAD);
- if(ret<0){
- break;
- }else{
- offset=ret;
- }
- }
- }
-
- /* we have the offset. Actually snork and hold the page now */
- _seek_helper(vf,offset);
- ret=_get_next_page(vf,og,CHUNKSIZE);
- if(ret<0)
- /* this shouldn't be possible */
- return(OV_EFAULT);
-
- return(offset);
-}
-
-/* finds each bitstream link one at a time using a bisection search
- (has to begin by knowing the offset of the lb's initial page).
- Recurses for each link so it can alloc the link storage after
- finding them all, then unroll and fill the cache at the same time */
-static int _bisect_forward_serialno(OggVorbis_File *vf,
- long begin,
- long searched,
- long end,
- long currentno,
- long m){
- long endsearched=end;
- long next=end;
- ogg_page og;
- long ret;
-
- /* the below guards against garbage seperating the last and
- first pages of two links. */
- while(searched<endsearched){
- long bisect;
-
- if(endsearched-searched<CHUNKSIZE){
- bisect=searched;
- }else{
- bisect=(searched+endsearched)/2;
- }
-
- _seek_helper(vf,bisect);
- ret=_get_next_page(vf,&og,-1);
- if(ret==OV_EREAD)return(OV_EREAD);
- if(ret<0 || ogg_page_serialno(&og)!=currentno){
- endsearched=bisect;
- if(ret>=0)next=ret;
- }else{
- searched=ret+og.header_len+og.body_len;
- }
- }
-
- _seek_helper(vf,next);
- ret=_get_next_page(vf,&og,-1);
- if(ret==OV_EREAD)return(OV_EREAD);
-
- if(searched>=end || ret<0){
- vf->links=m+1;
- vf->offsets=_ogg_malloc((m+2)*sizeof(*vf->offsets));
- vf->offsets[m+1]=searched;
- }else{
- ret=_bisect_forward_serialno(vf,next,vf->offset,
- end,ogg_page_serialno(&og),m+1);
- if(ret==OV_EREAD)return(OV_EREAD);
- }
-
- vf->offsets[m]=begin;
- return(0);
-}
-
-/* uses the local ogg_stream storage in vf; this is important for
- non-streaming input sources */
-static int _fetch_headers(OggVorbis_File *vf,vorbis_info *vi,vorbis_comment *vc,
- long *serialno,ogg_page *og_ptr){
- ogg_page og;
- ogg_packet op;
- int i,ret=0;
-
- if(!og_ptr){
- ret=_get_next_page(vf,&og,CHUNKSIZE);
- if(ret==OV_EREAD)return(OV_EREAD);
- if(ret<0)return OV_ENOTVORBIS;
- og_ptr=&og;
- }
-
- if(serialno)*serialno=ogg_page_serialno(og_ptr);
- ogg_stream_init(&vf->os,ogg_page_serialno(og_ptr));
- vf->ready_state=STREAMSET;
-
- /* extract the initial header from the first page and verify that the
- Ogg bitstream is in fact Vorbis data */
-
- vorbis_info_init(vi);
- vorbis_comment_init(vc);
-
- i=0;
- while(i<3){
- ogg_stream_pagein(&vf->os,og_ptr);
- while(i<3){
- int result=ogg_stream_packetout(&vf->os,&op);
- if(result==0)break;
- if(result==-1){
- ret=OV_EBADHEADER;
- goto bail_header;
- }
- if((ret=vorbis_synthesis_headerin(vi,vc,&op))){
- goto bail_header;
- }
- i++;
- }
- if(i<3)
- if(_get_next_page(vf,og_ptr,CHUNKSIZE)<0){
- ret=OV_EBADHEADER;
- goto bail_header;
- }
- }
- return 0;
-
- bail_header:
- vorbis_info_clear(vi);
- vorbis_comment_clear(vc);
- ogg_stream_clear(&vf->os);
- vf->ready_state=OPENED;
-
- return ret;
-}
-
-/* last step of the OggVorbis_File initialization; get all the
- vorbis_info structs and PCM positions. Only called by the seekable
- initialization (local stream storage is hacked slightly; pay
- attention to how that's done) */
-
-/* this is void and does not propogate errors up because we want to be
- able to open and use damaged bitstreams as well as we can. Just
- watch out for missing information for links in the OggVorbis_File
- struct */
-static void _prefetch_all_headers(OggVorbis_File *vf, long dataoffset){
- ogg_page og;
- int i,ret;
-
- vf->vi=_ogg_realloc(vf->vi,vf->links*sizeof(*vf->vi));
- vf->vc=_ogg_realloc(vf->vc,vf->links*sizeof(*vf->vc));
- vf->dataoffsets=_ogg_malloc(vf->links*sizeof(*vf->dataoffsets));
- vf->pcmlengths=_ogg_malloc(vf->links*sizeof(*vf->pcmlengths));
- vf->serialnos=_ogg_malloc(vf->links*sizeof(*vf->serialnos));
-
- for(i=0;i<vf->links;i++){
- if(i==0){
- /* we already grabbed the initial header earlier. Just set the offset */
- vf->dataoffsets[i]=dataoffset;
- }else{
-
- /* seek to the location of the initial header */
-
- _seek_helper(vf,vf->offsets[i]);
- if(_fetch_headers(vf,vf->vi+i,vf->vc+i,NULL,NULL)<0){
- vf->dataoffsets[i]=-1;
- }else{
- vf->dataoffsets[i]=vf->offset;
- ogg_stream_clear(&vf->os);
- }
- }
-
- /* get the serial number and PCM length of this link. To do this,
- get the last page of the stream */
- {
- long end=vf->offsets[i+1];
- _seek_helper(vf,end);
-
- while(1){
- ret=_get_prev_page(vf,&og);
- if(ret<0){
- /* this should not be possible */
- vorbis_info_clear(vf->vi+i);
- vorbis_comment_clear(vf->vc+i);
- break;
- }
- if(ogg_page_granulepos(&og)!=-1){
- vf->serialnos[i]=ogg_page_serialno(&og);
- vf->pcmlengths[i]=ogg_page_granulepos(&og);
- break;
- }
- vf->offset=ret;
- }
- }
- }
-}
-
-static void _make_decode_ready(OggVorbis_File *vf){
- if(vf->ready_state!=STREAMSET)return;
- if(vf->seekable){
- vorbis_synthesis_init(&vf->vd,vf->vi+vf->current_link);
- }else{
- vorbis_synthesis_init(&vf->vd,vf->vi);
- }
- vorbis_block_init(&vf->vd,&vf->vb);
- vf->ready_state=INITSET;
- return;
-}
-
-static int _open_seekable2(OggVorbis_File *vf){
- long serialno=vf->current_serialno,end;
- long dataoffset=vf->offset;
- ogg_page og;
-
- /* we're partially open and have a first link header state in
- storage in vf */
- /* we can seek, so set out learning all about this file */
- (vf->callbacks.seek_func)(vf->datasource,0,SEEK_END);
- vf->offset=vf->end=(vf->callbacks.tell_func)(vf->datasource);
-
- /* We get the offset for the last page of the physical bitstream.
- Most OggVorbis files will contain a single logical bitstream */
- end=_get_prev_page(vf,&og);
- if(end<0){
- ov_clear(vf);
- return(end);
- }
-
- /* more than one logical bitstream? */
- if(ogg_page_serialno(&og)!=serialno){
-
- /* Chained bitstream. Bisect-search each logical bitstream
- section. Do so based on serial number only */
- if(_bisect_forward_serialno(vf,0,0,end+1,serialno,0)<0){
- ov_clear(vf);
- return(OV_EREAD);
- }
-
- }else{
-
- /* Only one logical bitstream */
- if(_bisect_forward_serialno(vf,0,end,end+1,serialno,0)){
- ov_clear(vf);
- return(OV_EREAD);
- }
-
- }
-
- /* the initial header memory is referenced by vf after; don't free it */
- _prefetch_all_headers(vf,dataoffset);
- return(ov_raw_seek(vf,0));
-}
-
-/* clear out the current logical bitstream decoder */
-static void _decode_clear(OggVorbis_File *vf){
- ogg_stream_clear(&vf->os);
- vorbis_dsp_clear(&vf->vd);
- vorbis_block_clear(&vf->vb);
- vf->ready_state=OPENED;
-
- vf->bittrack=0.f;
- vf->samptrack=0.f;
-}
-
-/* fetch and process a packet. Handles the case where we're at a
- bitstream boundary and dumps the decoding machine. If the decoding
- machine is unloaded, it loads it. It also keeps pcm_offset up to
- date (seek and read both use this. seek uses a special hack with
- readp).
-
- return: <0) error, OV_HOLE (lost packet) or OV_EOF
- 0) need more data (only if readp==0)
- 1) got a packet
-*/
-
-static int _process_packet(OggVorbis_File *vf,int readp){
- ogg_page og;
-
- /* handle one packet. Try to fetch it from current stream state */
- /* extract packets from page */
- while(1){
-
- /* process a packet if we can. If the machine isn't loaded,
- neither is a page */
- if(vf->ready_state==INITSET){
- while(1) {
- ogg_packet op;
- int result=ogg_stream_packetout(&vf->os,&op);
- ogg_int64_t granulepos;
-
- if(result==-1)return(OV_HOLE); /* hole in the data. */
- if(result>0){
- /* got a packet. process it */
- granulepos=op.granulepos;
- if(!vorbis_synthesis(&vf->vb,&op)){ /* lazy check for lazy
- header handling. The
- header packets aren't
- audio, so if/when we
- submit them,
- vorbis_synthesis will
- reject them */
-
- /* suck in the synthesis data and track bitrate */
- {
- int oldsamples=vorbis_synthesis_pcmout(&vf->vd,NULL);
- vorbis_synthesis_blockin(&vf->vd,&vf->vb);
- vf->samptrack+=vorbis_synthesis_pcmout(&vf->vd,NULL)-oldsamples;
- vf->bittrack+=op.bytes*8;
- }
-
- /* update the pcm offset. */
- if(granulepos!=-1 && !op.e_o_s){
- int link=(vf->seekable?vf->current_link:0);
- int i,samples;
-
- /* this packet has a pcm_offset on it (the last packet
- completed on a page carries the offset) After processing
- (above), we know the pcm position of the *last* sample
- ready to be returned. Find the offset of the *first*
-
- As an aside, this trick is inaccurate if we begin
- reading anew right at the last page; the end-of-stream
- granulepos declares the last frame in the stream, and the
- last packet of the last page may be a partial frame.
- So, we need a previous granulepos from an in-sequence page
- to have a reference point. Thus the !op.e_o_s clause
- above */
-
- samples=vorbis_synthesis_pcmout(&vf->vd,NULL);
-
- granulepos-=samples;
- for(i=0;i<link;i++)
- granulepos+=vf->pcmlengths[i];
- vf->pcm_offset=granulepos;
- }
- return(1);
- }
- }
- else
- break;
- }
- }
-
- if(vf->ready_state>=OPENED){
- if(!readp)return(0);
- if(_get_next_page(vf,&og,-1)<0)return(OV_EOF); /* eof.
- leave unitialized */
- /* bitrate tracking; add the header's bytes here, the body bytes
- are done by packet above */
- vf->bittrack+=og.header_len*8;
-
- /* has our decoding just traversed a bitstream boundary? */
- if(vf->ready_state==INITSET){
- if(vf->current_serialno!=ogg_page_serialno(&og)){
- _decode_clear(vf);
-
- if(!vf->seekable){
- vorbis_info_clear(vf->vi);
- vorbis_comment_clear(vf->vc);
- }
- }
- }
- }
-
- /* Do we need to load a new machine before submitting the page? */
- /* This is different in the seekable and non-seekable cases.
-
- In the seekable case, we already have all the header
- information loaded and cached; we just initialize the machine
- with it and continue on our merry way.
-
- In the non-seekable (streaming) case, we'll only be at a
- boundary if we just left the previous logical bitstream and
- we're now nominally at the header of the next bitstream
- */
-
- if(vf->ready_state!=INITSET){
- int link;
-
- if(vf->ready_state<STREAMSET){
- if(vf->seekable){
- vf->current_serialno=ogg_page_serialno(&og);
-
- /* match the serialno to bitstream section. We use this rather than
- offset positions to avoid problems near logical bitstream
- boundaries */
- for(link=0;link<vf->links;link++)
- if(vf->serialnos[link]==vf->current_serialno)break;
- if(link==vf->links)return(OV_EBADLINK); /* sign of a bogus
- stream. error out,
- leave machine
- uninitialized */
-
- vf->current_link=link;
-
- ogg_stream_init(&vf->os,vf->current_serialno);
- ogg_stream_reset(&vf->os);
- vf->ready_state=STREAMSET;
-
- }else{
- /* we're streaming */
- /* fetch the three header packets, build the info struct */
-
- int ret=_fetch_headers(vf,vf->vi,vf->vc,&vf->current_serialno,&og);
- if(ret)return(ret);
- vf->current_link++;
- link=0;
- }
- }
-
- _make_decode_ready(vf);
- }
- ogg_stream_pagein(&vf->os,&og);
- }
-}
-
-static int _fseek64_wrap(FILE *f,ogg_int64_t off,int whence){
- if(f==NULL)return(-1);
- return fseek(f,(int)off,whence);
-}
-
-static int _ov_open1(void *f,OggVorbis_File *vf,char *initial,
- long ibytes, ov_callbacks callbacks){
- long offset=(f?callbacks.seek_func(f,0,SEEK_CUR):-1);
- int ret;
-
- memset(vf,0,sizeof(*vf));
- vf->datasource=f;
- vf->callbacks = callbacks;
-
- /* init the framing state */
- ogg_sync_init(&vf->oy);
-
- /* perhaps some data was previously read into a buffer for testing
- against other stream types. Allow initialization from this
- previously read data (as we may be reading from a non-seekable
- stream) */
- if(initial){
- char *buffer=ogg_sync_buffer(&vf->oy,ibytes);
- memcpy(buffer,initial,ibytes);
- ogg_sync_wrote(&vf->oy,ibytes);
- }
-
- /* can we seek? Stevens suggests the seek test was portable */
- if(offset!=-1)vf->seekable=1;
-
- /* No seeking yet; Set up a 'single' (current) logical bitstream
- entry for partial open */
- vf->links=1;
- vf->vi=_ogg_calloc(vf->links,sizeof(*vf->vi));
- vf->vc=_ogg_calloc(vf->links,sizeof(*vf->vc));
-
- /* Try to fetch the headers, maintaining all the storage */
- if((ret=_fetch_headers(vf,vf->vi,vf->vc,&vf->current_serialno,NULL))<0){
- vf->datasource=NULL;
- ov_clear(vf);
- }else if(vf->ready_state < PARTOPEN)
- vf->ready_state=PARTOPEN;
- return(ret);
-}
-
-static int _ov_open2(OggVorbis_File *vf){
- if(vf->ready_state < OPENED)
- vf->ready_state=OPENED;
- if(vf->seekable){
- int ret=_open_seekable2(vf);
- if(ret){
- vf->datasource=NULL;
- ov_clear(vf);
- }
- return(ret);
- }
- return 0;
-}
-
-
-/* clear out the OggVorbis_File struct */
-int ov_clear(OggVorbis_File *vf){
- if(vf){
- vorbis_block_clear(&vf->vb);
- vorbis_dsp_clear(&vf->vd);
- ogg_stream_clear(&vf->os);
-
- if(vf->vi && vf->links){
- int i;
- for(i=0;i<vf->links;i++){
- vorbis_info_clear(vf->vi+i);
- vorbis_comment_clear(vf->vc+i);
- }
- _ogg_free(vf->vi);
- _ogg_free(vf->vc);
- }
- if(vf->dataoffsets)_ogg_free(vf->dataoffsets);
- if(vf->pcmlengths)_ogg_free(vf->pcmlengths);
- if(vf->serialnos)_ogg_free(vf->serialnos);
- if(vf->offsets)_ogg_free(vf->offsets);
- ogg_sync_clear(&vf->oy);
- if(vf->datasource)(vf->callbacks.close_func)(vf->datasource);
- memset(vf,0,sizeof(*vf));
- }
-#ifdef DEBUG_LEAKS
- _VDBG_dump();
-#endif
- return(0);
-}
-
-/* inspects the OggVorbis file and finds/documents all the logical
- bitstreams contained in it. Tries to be tolerant of logical
- bitstream sections that are truncated/woogie.
-
- return: -1) error
- 0) OK
-*/
-
-int ov_open_callbacks(void *f,OggVorbis_File *vf,char *initial,long ibytes,
- ov_callbacks callbacks){
- int ret=_ov_open1(f,vf,initial,ibytes,callbacks);
- if(ret)return ret;
- return _ov_open2(vf);
-}
-
-int ov_open(FILE *f,OggVorbis_File *vf,char *initial,long ibytes){
- ov_callbacks callbacks = {
- (size_t (*)(void *, size_t, size_t, void *)) fread,
- (int (*)(void *, ogg_int64_t, int)) _fseek64_wrap,
- (int (*)(void *)) fclose,
- (long (*)(void *)) ftell
- };
-
- return ov_open_callbacks((void *)f, vf, initial, ibytes, callbacks);
-}
-
-/* Only partially open the vorbis file; test for Vorbisness, and load
- the headers for the first chain. Do not seek (although test for
- seekability). Use ov_test_open to finish opening the file, else
- ov_clear to close/free it. Same return codes as open. */
-
-int ov_test_callbacks(void *f,OggVorbis_File *vf,char *initial,long ibytes,
- ov_callbacks callbacks)
-{
- return _ov_open1(f,vf,initial,ibytes,callbacks);
-}
-
-int ov_test(FILE *f,OggVorbis_File *vf,char *initial,long ibytes){
- ov_callbacks callbacks = {
- (size_t (*)(void *, size_t, size_t, void *)) fread,
- (int (*)(void *, ogg_int64_t, int)) _fseek64_wrap,
- (int (*)(void *)) fclose,
- (long (*)(void *)) ftell
- };
-
- return ov_test_callbacks((void *)f, vf, initial, ibytes, callbacks);
-}
-
-int ov_test_open(OggVorbis_File *vf){
- if(vf->ready_state!=PARTOPEN)return(OV_EINVAL);
- return _ov_open2(vf);
-}
-
-/* How many logical bitstreams in this physical bitstream? */
-long ov_streams(OggVorbis_File *vf){
- return vf->links;
-}
-
-/* Is the FILE * associated with vf seekable? */
-long ov_seekable(OggVorbis_File *vf){
- return vf->seekable;
-}
-
-/* returns the bitrate for a given logical bitstream or the entire
- physical bitstream. If the file is open for random access, it will
- find the *actual* average bitrate. If the file is streaming, it
- returns the nominal bitrate (if set) else the average of the
- upper/lower bounds (if set) else -1 (unset).
-
- If you want the actual bitrate field settings, get them from the
- vorbis_info structs */
-
-long ov_bitrate(OggVorbis_File *vf,int i){
- if(vf->ready_state<OPENED)return(OV_EINVAL);
- if(i>=vf->links)return(OV_EINVAL);
- if(!vf->seekable && i!=0)return(ov_bitrate(vf,0));
- if(i<0){
- ogg_int64_t bits=0;
- int i;
- for(i=0;i<vf->links;i++)
- bits+=(vf->offsets[i+1]-vf->dataoffsets[i])*8;
- return(rint(bits/ov_time_total(vf,-1)));
- }else{
- if(vf->seekable){
- /* return the actual bitrate */
- return(rint((vf->offsets[i+1]-vf->dataoffsets[i])*8/ov_time_total(vf,i)));
- }else{
- /* return nominal if set */
- if(vf->vi[i].bitrate_nominal>0){
- return vf->vi[i].bitrate_nominal;
- }else{
- if(vf->vi[i].bitrate_upper>0){
- if(vf->vi[i].bitrate_lower>0){
- return (vf->vi[i].bitrate_upper+vf->vi[i].bitrate_lower)/2;
- }else{
- return vf->vi[i].bitrate_upper;
- }
- }
- return(OV_FALSE);
- }
- }
- }
-}
-
-/* returns the actual bitrate since last call. returns -1 if no
- additional data to offer since last call (or at beginning of stream),
- EINVAL if stream is only partially open
-*/
-long ov_bitrate_instant(OggVorbis_File *vf){
- int link=(vf->seekable?vf->current_link:0);
- long ret;
- if(vf->ready_state<OPENED)return(OV_EINVAL);
- if(vf->samptrack==0)return(OV_FALSE);
- ret=vf->bittrack/vf->samptrack*vf->vi[link].rate+.5;
- vf->bittrack=0.f;
- vf->samptrack=0.f;
- return(ret);
-}
-
-/* Guess */
-long ov_serialnumber(OggVorbis_File *vf,int i){
- if(i>=vf->links)return(ov_serialnumber(vf,vf->links-1));
- if(!vf->seekable && i>=0)return(ov_serialnumber(vf,-1));
- if(i<0){
- return(vf->current_serialno);
- }else{
- return(vf->serialnos[i]);
- }
-}
-
-/* returns: total raw (compressed) length of content if i==-1
- raw (compressed) length of that logical bitstream for i==0 to n
- OV_EINVAL if the stream is not seekable (we can't know the length)
- or if stream is only partially open
-*/
-ogg_int64_t ov_raw_total(OggVorbis_File *vf,int i){
- if(vf->ready_state<OPENED)return(OV_EINVAL);
- if(!vf->seekable || i>=vf->links)return(OV_EINVAL);
- if(i<0){
- long acc=0;
- int i;
- for(i=0;i<vf->links;i++)
- acc+=ov_raw_total(vf,i);
- return(acc);
- }else{
- return(vf->offsets[i+1]-vf->offsets[i]);
- }
-}
-
-/* returns: total PCM length (samples) of content if i==-1 PCM length
- (samples) of that logical bitstream for i==0 to n
- OV_EINVAL if the stream is not seekable (we can't know the
- length) or only partially open
-*/
-ogg_int64_t ov_pcm_total(OggVorbis_File *vf,int i){
- if(vf->ready_state<OPENED)return(OV_EINVAL);
- if(!vf->seekable || i>=vf->links)return(OV_EINVAL);
- if(i<0){
- ogg_int64_t acc=0;
- int i;
- for(i=0;i<vf->links;i++)
- acc+=ov_pcm_total(vf,i);
- return(acc);
- }else{
- return(vf->pcmlengths[i]);
- }
-}
-
-/* returns: total seconds of content if i==-1
- seconds in that logical bitstream for i==0 to n
- OV_EINVAL if the stream is not seekable (we can't know the
- length) or only partially open
-*/
-double ov_time_total(OggVorbis_File *vf,int i){
- if(vf->ready_state<OPENED)return(OV_EINVAL);
- if(!vf->seekable || i>=vf->links)return(OV_EINVAL);
- if(i<0){
- double acc=0;
- int i;
- for(i=0;i<vf->links;i++)
- acc+=ov_time_total(vf,i);
- return(acc);
- }else{
- return((float)(vf->pcmlengths[i])/vf->vi[i].rate);
- }
-}
-
-/* seek to an offset relative to the *compressed* data. This also
- scans packets to update the PCM cursor. It will cross a logical
- bitstream boundary, but only if it can't get any packets out of the
- tail of the bitstream we seek to (so no surprises).
-
- returns zero on success, nonzero on failure */
-
-int ov_raw_seek(OggVorbis_File *vf,long pos){
- ogg_stream_state work_os;
-
- if(vf->ready_state<OPENED)return(OV_EINVAL);
- if(!vf->seekable)
- return(OV_ENOSEEK); /* don't dump machine if we can't seek */
-
- if(pos<0 || pos>vf->offsets[vf->links])return(OV_EINVAL);
-
- /* clear out decoding machine state */
- vf->pcm_offset=-1;
- _decode_clear(vf);
-
- _seek_helper(vf,pos);
-
- /* we need to make sure the pcm_offset is set, but we don't want to
- advance the raw cursor past good packets just to get to the first
- with a granulepos. That's not equivalent behavior to beginning
- decoding as immediately after the seek position as possible.
-
- So, a hack. We use two stream states; a local scratch state and
- a the shared vf->os stream state. We use the local state to
- scan, and the shared state as a buffer for later decode.
-
- Unfortuantely, on the last page we still advance to last packet
- because the granulepos on the last page is not necessarily on a
- packet boundary, and we need to make sure the granpos is
- correct.
- */
-
- {
- ogg_page og;
- ogg_packet op;
- int lastblock=0;
- int accblock=0;
- int thisblock;
- int eosflag;
-
- memset(&work_os,0,sizeof(work_os));/* so that it's safe to clear
- it later even if we don't
- init it */
-
- while(1){
- if(vf->ready_state==STREAMSET){
- /* snarf/scan a packet if we can */
- int result=ogg_stream_packetout(&work_os,&op);
-
- if(result>0){
-
- if(vf->vi[vf->current_link].codec_setup)
- thisblock=vorbis_packet_blocksize(vf->vi+vf->current_link,&op);
- if(eosflag)
- ogg_stream_packetout(&vf->os,NULL);
- else
- if(lastblock)accblock+=(lastblock+thisblock)>>2;
-
- if(op.granulepos!=-1){
- int i,link=vf->current_link;
- ogg_int64_t granulepos=op.granulepos;
-
- for(i=0;i<link;i++)
- granulepos+=vf->pcmlengths[i];
- vf->pcm_offset=granulepos-accblock;
- break;
- }
- lastblock=thisblock;
- continue;
- }
- }
-
- if(!lastblock){
- if(_get_next_page(vf,&og,-1)<0){
- vf->pcm_offset=ov_pcm_total(vf,-1);
- break;
- }
- }else{
- /* huh? Bogus stream with packets but no granulepos */
- vf->pcm_offset=-1;
- break;
- }
-
- /* has our decoding just traversed a bitstream boundary? */
- if(vf->ready_state==STREAMSET)
- if(vf->current_serialno!=ogg_page_serialno(&og)){
- _decode_clear(vf); /* clear out stream state */
- ogg_stream_clear(&work_os);
- }
-
- if(vf->ready_state<STREAMSET){
- int link;
-
- vf->current_serialno=ogg_page_serialno(&og);
- for(link=0;link<vf->links;link++)
- if(vf->serialnos[link]==vf->current_serialno)break;
- if(link==vf->links)goto seek_error; /* sign of a bogus stream.
- error out, leave
- machine uninitialized */
- vf->current_link=link;
-
- ogg_stream_init(&vf->os,vf->current_serialno);
- ogg_stream_reset(&vf->os);
- ogg_stream_init(&work_os,vf->current_serialno);
- ogg_stream_reset(&work_os);
- vf->ready_state=STREAMSET;
-
- }
-
- ogg_stream_pagein(&vf->os,&og);
- ogg_stream_pagein(&work_os,&og);
- eosflag=ogg_page_eos(&og);
- }
- }
-
- ogg_stream_clear(&work_os);
- return(0);
-
- seek_error:
- /* dump the machine so we're in a known state */
- vf->pcm_offset=-1;
- ogg_stream_clear(&work_os);
- _decode_clear(vf);
- return OV_EBADLINK;
-}
-
-/* Page granularity seek (faster than sample granularity because we
- don't do the last bit of decode to find a specific sample).
-
- Seek to the last [granule marked] page preceeding the specified pos
- location, such that decoding past the returned point will quickly
- arrive at the requested position. */
-int ov_pcm_seek_page(OggVorbis_File *vf,ogg_int64_t pos){
- int link=-1;
- long ret;
- ogg_int64_t total=ov_pcm_total(vf,-1);
-
- if(vf->ready_state<OPENED)return(OV_EINVAL);
- if(!vf->seekable)return(OV_ENOSEEK);
- if(pos<0 || pos>total)return(OV_EINVAL);
-
- /* which bitstream section does this pcm offset occur in? */
- for(link=vf->links-1;link>=0;link--){
- total-=vf->pcmlengths[link];
- if(pos>=total)break;
- }
-
- /* search within the logical bitstream for the page with the highest
- pcm_pos preceeding (or equal to) pos. There is a danger here;
- missing pages or incorrect frame number information in the
- bitstream could make our task impossible. Account for that (it
- would be an error condition) */
-
- /* new search algorithm by HB (Nicholas Vinen) */
- {
- ogg_int64_t target=pos-total;
- long end=vf->offsets[link+1];
- long begin=vf->offsets[link];
- ogg_int64_t endtime = vf->pcmlengths[link];
- ogg_int64_t begintime = 0;
- long best=begin;
-
- ogg_page og;
- while(begin<end){
- long bisect;
-
- if(end-begin<CHUNKSIZE){
- bisect=begin;
- }else{
- /* take a (pretty decent) guess. */
- bisect=begin +
- (target-begintime)*(end-begin)/(endtime-begintime) - CHUNKSIZE;
- if(bisect<=begin)
- bisect=begin+1;
- }
- _seek_helper(vf,bisect);
-
- while(begin<end){
- ret=_get_next_page(vf,&og,end-bisect);
- if(ret==OV_EREAD) goto seek_error;
- if(ret<0){
- if(bisect<=begin+1)
- end=begin; /* found it */
- else{
- if(bisect==0)goto seek_error;
- bisect-=CHUNKSIZE;
- if(bisect<=begin)bisect=begin+1;
- _seek_helper(vf,bisect);
- }
- }else{
- ogg_int64_t granulepos=ogg_page_granulepos(&og);
- if(granulepos<target){
- best=ret; /* raw offset of packet with granulepos */
- begin=vf->offset; /* raw offset of next page */
- begintime=granulepos;
-
- if(target-begin>44100)break;
- bisect=begin; /* *not* begin + 1 */
- }else{
- if(bisect<=begin+1)
- end=begin; /* found it */
- else{
- if(end==vf->offset){ /* we're pretty close - we'd be stuck in */
- end=ret;
- bisect-=CHUNKSIZE; /* an endless loop otherwise. */
- if(bisect<=begin)bisect=begin+1;
- _seek_helper(vf,bisect);
- }else{
- end=ret;
- endtime=granulepos;
- break;
- }
- }
- }
- }
- }
- }
-
- /* found our page. seek to it, update pcm offset. Easier case than
- raw_seek, don't keep packets preceeding granulepos. */
- {
- ogg_page og;
- ogg_packet op;
- /* clear out decoding machine state */
- _decode_clear(vf);
- /* seek */
- _seek_helper(vf,best);
-
- if(_get_next_page(vf,&og,-1)<0)return(OV_EOF); /* shouldn't happen */
- vf->current_serialno=ogg_page_serialno(&og);
- vf->current_link=link;
-
- ogg_stream_init(&vf->os,vf->current_serialno);
- ogg_stream_reset(&vf->os);
- vf->ready_state=STREAMSET;
- ogg_stream_pagein(&vf->os,&og);
-
- /* pull out all but last packet; the one with granulepos */
- while(1){
- ret=ogg_stream_packetpeek(&vf->os,&op);
- if(ret==0){
- /* !!! the packet finishing this page originated on a
- preceeding page. Keep fetching previous pages until we
- get one with a granulepos or without the 'continued' flag
- set. Then just use raw_seek for simplicity. */
- while(1){
- ret=_get_prev_page(vf,&og);
- if(ret<0)goto seek_error;
- if(ogg_page_granulepos(&og)>-1 ||
- !ogg_page_continued(&og)){
- return ov_raw_seek(vf,ret);
- }
- vf->offset=ret;
- }
- }
- if(ret<0)goto seek_error;
- if(op.granulepos!=-1){
- vf->pcm_offset=op.granulepos+total;
- break;
- }else
- ret=ogg_stream_packetout(&vf->os,NULL);
- }
- }
- }
-
- /* verify result */
- if(vf->pcm_offset>pos || pos>ov_pcm_total(vf,-1)){
- ret=OV_EFAULT;
- goto seek_error;
- }
- return(0);
-
- seek_error:
- /* dump machine so we're in a known state */
- vf->pcm_offset=-1;
- _decode_clear(vf);
- return ret;
-}
-
-/* seek to a sample offset relative to the decompressed pcm stream
- returns zero on success, nonzero on failure */
-
-int ov_pcm_seek(OggVorbis_File *vf,ogg_int64_t pos){
- int thisblock,lastblock=0;
- int ret=ov_pcm_seek_page(vf,pos);
- if(ret<0)return(ret);
-
- /* discard leading packets we don't need for the lapping of the
- position we want; don't decode them */
-
- while(1){
- ogg_packet op;
- ogg_page og;
-
- int ret=ogg_stream_packetpeek(&vf->os,&op);
- if(ret>0){
- thisblock=vorbis_packet_blocksize(vf->vi+vf->current_link,&op);
- if(lastblock)vf->pcm_offset+=(lastblock+thisblock)>>2;
-
- if(vf->pcm_offset+((thisblock+
- vorbis_info_blocksize(vf->vi,1))>>2)>=pos)break;
-
- ogg_stream_packetout(&vf->os,NULL);
-
-
- /* end of logical stream case is hard, especially with exact
- length positioning. */
-
- if(op.granulepos>-1){
- int i;
- /* always believe the stream markers */
- vf->pcm_offset=op.granulepos;
- for(i=0;i<vf->current_link;i++)
- vf->pcm_offset+=vf->pcmlengths[i];
- }
-
- lastblock=thisblock;
-
- }else{
- if(ret<0 && ret!=OV_HOLE)break;
-
- /* suck in a new page */
- if(_get_next_page(vf,&og,-1)<0)break;
- if(vf->current_serialno!=ogg_page_serialno(&og))_decode_clear(vf);
-
- if(vf->ready_state<STREAMSET){
- int link;
-
- vf->current_serialno=ogg_page_serialno(&og);
- for(link=0;link<vf->links;link++)
- if(vf->serialnos[link]==vf->current_serialno)break;
- if(link==vf->links)return(OV_EBADLINK);
- vf->current_link=link;
-
- ogg_stream_init(&vf->os,vf->current_serialno);
- ogg_stream_reset(&vf->os);
- vf->ready_state=STREAMSET;
- lastblock=0;
- }
- ogg_stream_pagein(&vf->os,&og);
- }
- }
-
- /* discard samples until we reach the desired position. Crossing a
- logical bitstream boundary with abandon is OK. */
- _make_decode_ready(vf);
- while(vf->pcm_offset<pos){
- float **pcm;
- long target=pos-vf->pcm_offset;
- long samples=vorbis_synthesis_pcmout(&vf->vd,&pcm);
-
- if(samples>target)samples=target;
- vorbis_synthesis_read(&vf->vd,samples);
- vf->pcm_offset+=samples;
-
- if(samples<target)
- if(_process_packet(vf,1)<=0)
- vf->pcm_offset=ov_pcm_total(vf,-1); /* eof */
- }
- return 0;
-}
-
-/* seek to a playback time relative to the decompressed pcm stream
- returns zero on success, nonzero on failure */
-int ov_time_seek(OggVorbis_File *vf,double seconds){
- /* translate time to PCM position and call ov_pcm_seek */
-
- int link=-1;
- ogg_int64_t pcm_total=ov_pcm_total(vf,-1);
- double time_total=ov_time_total(vf,-1);
-
- if(vf->ready_state<OPENED)return(OV_EINVAL);
- if(!vf->seekable)return(OV_ENOSEEK);
- if(seconds<0 || seconds>time_total)return(OV_EINVAL);
-
- /* which bitstream section does this time offset occur in? */
- for(link=vf->links-1;link>=0;link--){
- pcm_total-=vf->pcmlengths[link];
- time_total-=ov_time_total(vf,link);
- if(seconds>=time_total)break;
- }
-
- /* enough information to convert time offset to pcm offset */
- {
- ogg_int64_t target=pcm_total+(seconds-time_total)*vf->vi[link].rate;
- return(ov_pcm_seek(vf,target));
- }
-}
-
-/* page-granularity version of ov_time_seek
- returns zero on success, nonzero on failure */
-int ov_time_seek_page(OggVorbis_File *vf,double seconds){
- /* translate time to PCM position and call ov_pcm_seek */
-
- int link=-1;
- ogg_int64_t pcm_total=ov_pcm_total(vf,-1);
- double time_total=ov_time_total(vf,-1);
-
- if(vf->ready_state<OPENED)return(OV_EINVAL);
- if(!vf->seekable)return(OV_ENOSEEK);
- if(seconds<0 || seconds>time_total)return(OV_EINVAL);
-
- /* which bitstream section does this time offset occur in? */
- for(link=vf->links-1;link>=0;link--){
- pcm_total-=vf->pcmlengths[link];
- time_total-=ov_time_total(vf,link);
- if(seconds>=time_total)break;
- }
-
- /* enough information to convert time offset to pcm offset */
- {
- ogg_int64_t target=pcm_total+(seconds-time_total)*vf->vi[link].rate;
- return(ov_pcm_seek_page(vf,target));
- }
-}
-
-/* tell the current stream offset cursor. Note that seek followed by
- tell will likely not give the set offset due to caching */
-ogg_int64_t ov_raw_tell(OggVorbis_File *vf){
- if(vf->ready_state<OPENED)return(OV_EINVAL);
- return(vf->offset);
-}
-
-/* return PCM offset (sample) of next PCM sample to be read */
-ogg_int64_t ov_pcm_tell(OggVorbis_File *vf){
- if(vf->ready_state<OPENED)return(OV_EINVAL);
- return(vf->pcm_offset);
-}
-
-/* return time offset (seconds) of next PCM sample to be read */
-double ov_time_tell(OggVorbis_File *vf){
- /* translate time to PCM position and call ov_pcm_seek */
-
- int link=-1;
- ogg_int64_t pcm_total=0;
- double time_total=0.f;
-
- if(vf->ready_state<OPENED)return(OV_EINVAL);
- if(vf->seekable){
- pcm_total=ov_pcm_total(vf,-1);
- time_total=ov_time_total(vf,-1);
-
- /* which bitstream section does this time offset occur in? */
- for(link=vf->links-1;link>=0;link--){
- pcm_total-=vf->pcmlengths[link];
- time_total-=ov_time_total(vf,link);
- if(vf->pcm_offset>=pcm_total)break;
- }
- }
-
- return((double)time_total+(double)(vf->pcm_offset-pcm_total)/vf->vi[link].rate);
-}
-
-/* link: -1) return the vorbis_info struct for the bitstream section
- currently being decoded
- 0-n) to request information for a specific bitstream section
-
- In the case of a non-seekable bitstream, any call returns the
- current bitstream. NULL in the case that the machine is not
- initialized */
-
-vorbis_info *ov_info(OggVorbis_File *vf,int link){
- if(vf->seekable){
- if(link<0)
- if(vf->ready_state>=STREAMSET)
- return vf->vi+vf->current_link;
- else
- return vf->vi;
- else
- if(link>=vf->links)
- return NULL;
- else
- return vf->vi+link;
- }else{
- return vf->vi;
- }
-}
-
-/* grr, strong typing, grr, no templates/inheritence, grr */
-vorbis_comment *ov_comment(OggVorbis_File *vf,int link){
- if(vf->seekable){
- if(link<0)
- if(vf->ready_state>=STREAMSET)
- return vf->vc+vf->current_link;
- else
- return vf->vc;
- else
- if(link>=vf->links)
- return NULL;
- else
- return vf->vc+link;
- }else{
- return vf->vc;
- }
-}
-
-static int host_is_big_endian() {
- ogg_int32_t pattern = 0xfeedface; /* deadbeef */
- unsigned char *bytewise = (unsigned char *)&pattern;
- if (bytewise[0] == 0xfe) return 1;
- return 0;
-}
-
-/* up to this point, everything could more or less hide the multiple
- logical bitstream nature of chaining from the toplevel application
- if the toplevel application didn't particularly care. However, at
- the point that we actually read audio back, the multiple-section
- nature must surface: Multiple bitstream sections do not necessarily
- have to have the same number of channels or sampling rate.
-
- ov_read returns the sequential logical bitstream number currently
- being decoded along with the PCM data in order that the toplevel
- application can take action on channel/sample rate changes. This
- number will be incremented even for streamed (non-seekable) streams
- (for seekable streams, it represents the actual logical bitstream
- index within the physical bitstream. Note that the accessor
- functions above are aware of this dichotomy).
-
- input values: buffer) a buffer to hold packed PCM data for return
- length) the byte length requested to be placed into buffer
- bigendianp) should the data be packed LSB first (0) or
- MSB first (1)
- word) word size for output. currently 1 (byte) or
- 2 (16 bit short)
-
- return values: <0) error/hole in data (OV_HOLE), partial open (OV_EINVAL)
- 0) EOF
- n) number of bytes of PCM actually returned. The
- below works on a packet-by-packet basis, so the
- return length is not related to the 'length' passed
- in, just guaranteed to fit.
-
- *section) set to the logical bitstream number */
-
-long ov_read_float(OggVorbis_File *vf,float ***pcm_channels,int *bitstream){
-
- if(vf->ready_state<OPENED)return(OV_EINVAL);
-
- while(1){
- if(vf->ready_state>=STREAMSET){
- float **pcm;
- long samples=vorbis_synthesis_pcmout(&vf->vd,&pcm);
- if(samples){
- if(pcm_channels)*pcm_channels=pcm;
- vorbis_synthesis_read(&vf->vd,samples);
- vf->pcm_offset+=samples;
- if(bitstream)*bitstream=vf->current_link;
- return samples;
-
- }
- }
-
- /* suck in another packet */
- {
- int ret=_process_packet(vf,1);
- if(ret==OV_EOF)return(0);
- if(ret<=0)return(ret);
- }
-
- }
-}
-
-long ov_read(OggVorbis_File *vf,char *buffer,int length,
- int bigendianp,int word,int sgned,int *bitstream){
- int i,j;
- int host_endian = host_is_big_endian();
-
- float **pcm;
- long samples;
-
- if(vf->ready_state<OPENED)return(OV_EINVAL);
-
- while(1){
- if(vf->ready_state>=STREAMSET){
- samples=vorbis_synthesis_pcmout(&vf->vd,&pcm);
- if(samples)break;
- }
-
- /* suck in another packet */
- {
- int ret=_process_packet(vf,1);
- if(ret==OV_EOF)return(0);
- if(ret<=0)return(ret);
- }
-
- }
-
- if(samples>0){
-
- /* yay! proceed to pack data into the byte buffer */
-
- long channels=ov_info(vf,-1)->channels;
- long bytespersample=word * channels;
- vorbis_fpu_control fpu;
- if(samples>length/bytespersample)samples=length/bytespersample;
-
- /* a tight loop to pack each size */
- {
- int val;
- if(word==1){
- int off=(sgned?0:128);
- vorbis_fpu_setround(&fpu);
- for(j=0;j<samples;j++)
- for(i=0;i<channels;i++){
- val=vorbis_ftoi(pcm[i][j]*128.f);
- if(val>127)val=127;
- else if(val<-128)val=-128;
- *buffer++=val+off;
- }
- vorbis_fpu_restore(fpu);
- }else{
- int off=(sgned?0:32768);
-
- if(host_endian==bigendianp){
- if(sgned){
-
- vorbis_fpu_setround(&fpu);
- for(i=0;i<channels;i++) { /* It's faster in this order */
- float *src=pcm[i];
- short *dest=((short *)buffer)+i;
- for(j=0;j<samples;j++) {
- val=vorbis_ftoi(src[j]*32768.f);
- if(val>32767)val=32767;
- else if(val<-32768)val=-32768;
- *dest=val;
- dest+=channels;
- }
- }
- vorbis_fpu_restore(fpu);
-
- }else{
-
- vorbis_fpu_setround(&fpu);
- for(i=0;i<channels;i++) {
- float *src=pcm[i];
- short *dest=((short *)buffer)+i;
- for(j=0;j<samples;j++) {
- val=vorbis_ftoi(src[j]*32768.f);
- if(val>32767)val=32767;
- else if(val<-32768)val=-32768;
- *dest=val+off;
- dest+=channels;
- }
- }
- vorbis_fpu_restore(fpu);
-
- }
- }else if(bigendianp){
-
- vorbis_fpu_setround(&fpu);
- for(j=0;j<samples;j++)
- for(i=0;i<channels;i++){
- val=vorbis_ftoi(pcm[i][j]*32768.f);
- if(val>32767)val=32767;
- else if(val<-32768)val=-32768;
- val+=off;
- *buffer++=(val>>8);
- *buffer++=(val&0xff);
- }
- vorbis_fpu_restore(fpu);
-
- }else{
- int val;
- vorbis_fpu_setround(&fpu);
- for(j=0;j<samples;j++)
- for(i=0;i<channels;i++){
- val=vorbis_ftoi(pcm[i][j]*32768.f);
- if(val>32767)val=32767;
- else if(val<-32768)val=-32768;
- val+=off;
- *buffer++=(val&0xff);
- *buffer++=(val>>8);
- }
- vorbis_fpu_restore(fpu);
-
- }
- }
- }
-
- vorbis_synthesis_read(&vf->vd,samples);
- vf->pcm_offset+=samples;
- if(bitstream)*bitstream=vf->current_link;
- return(samples*bytespersample);
- }else{
- return(samples);
- }
-}
-
-
-
-
diff --git a/lib/window.c b/lib/window.c
deleted file mode 100644
index 72eff2d3..00000000
--- a/lib/window.c
+++ /dev/null
@@ -1,62 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: window functions
- last mod: $Id: window.c,v 1.15 2001/12/20 01:00:30 segher Exp $
-
- ********************************************************************/
-
-#include <stdlib.h>
-#include <math.h>
-#include "os.h"
-#include "misc.h"
-
-float *_vorbis_window(int type, int window,int left,int right){
- float *ret=_ogg_calloc(window,sizeof(*ret));
-
- switch(type){
- case 0:
- /* The 'vorbis window' (window 0) is sin(sin(x)*sin(x)*2pi) */
- {
- int leftbegin=window/4-left/2;
- int rightbegin=window-window/4-right/2;
- int i;
-
- for(i=0;i<left;i++){
- float x=(i+.5f)/left*M_PI/2.;
- x=sin(x);
- x*=x;
- x*=M_PI/2.f;
- x=sin(x);
- ret[i+leftbegin]=x;
- }
-
- for(i=leftbegin+left;i<rightbegin;i++)
- ret[i]=1.f;
-
- for(i=0;i<right;i++){
- float x=(right-i-.5f)/right*M_PI/2.;
- x=sin(x);
- x*=x;
- x*=M_PI/2.f;
- x=sin(x);
- ret[i+rightbegin]=x;
- }
- }
- break;
- default:
- _ogg_free(ret);
- return(NULL);
- }
- return(ret);
-}
-
diff --git a/lib/window.h b/lib/window.h
deleted file mode 100644
index b4f61a26..00000000
--- a/lib/window.h
+++ /dev/null
@@ -1,23 +0,0 @@
-/********************************************************************
- * *
- * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
- * *
- * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
- * by the XIPHOPHORUS Company http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function: window functions
- last mod: $Id: window.h,v 1.9 2001/12/20 01:00:30 segher Exp $
-
- ********************************************************************/
-
-#ifndef _V_WINDOW_
-#define _V_WINDOW_
-
-extern float *_vorbis_window(int type,int window,int left,int right);
-
-#endif