diff options
Diffstat (limited to 'c/simd-unicode/unicode.h')
-rw-r--r-- | c/simd-unicode/unicode.h | 3038 |
1 files changed, 3038 insertions, 0 deletions
diff --git a/c/simd-unicode/unicode.h b/c/simd-unicode/unicode.h new file mode 100644 index 0000000..7bcc70d --- /dev/null +++ b/c/simd-unicode/unicode.h @@ -0,0 +1,3038 @@ +#ifndef UNICODE_H +#define UNICODE_H + +#include <stdint.h> + +#define CCCBLKSIZ (64) +#define CCCBLKSIZ_LOG2 (6) + +typedef uint_least32_t rune; +typedef uint8_t uprop_ccc_t; + +#define CCC_NR ((uprop_ccc_t)0) /* Not Reordered */ +#define CCC_OV ((uprop_ccc_t)1) /* Overlay */ +#define CCC_HANR ((uprop_ccc_t)6) /* Han Reading */ +#define CCC_NK ((uprop_ccc_t)7) /* Nukta */ +#define CCC_KV ((uprop_ccc_t)8) /* Kana Voicing */ +#define CCC_VR ((uprop_ccc_t)9) /* Virama */ +#define CCC_10 ((uprop_ccc_t)10) /* CCC10 */ +#define CCC_11 ((uprop_ccc_t)11) /* CCC11 */ +#define CCC_12 ((uprop_ccc_t)12) /* CCC12 */ +#define CCC_13 ((uprop_ccc_t)13) /* CCC13 */ +#define CCC_14 ((uprop_ccc_t)14) /* CCC14 */ +#define CCC_15 ((uprop_ccc_t)15) /* CCC15 */ +#define CCC_16 ((uprop_ccc_t)16) /* CCC16 */ +#define CCC_17 ((uprop_ccc_t)17) /* CCC17 */ +#define CCC_18 ((uprop_ccc_t)18) /* CCC18 */ +#define CCC_19 ((uprop_ccc_t)19) /* CCC19 */ +#define CCC_20 ((uprop_ccc_t)20) /* CCC20 */ +#define CCC_21 ((uprop_ccc_t)21) /* CCC21 */ +#define CCC_22 ((uprop_ccc_t)22) /* CCC22 */ +#define CCC_23 ((uprop_ccc_t)23) /* CCC23 */ +#define CCC_24 ((uprop_ccc_t)24) /* CCC24 */ +#define CCC_25 ((uprop_ccc_t)25) /* CCC25 */ +#define CCC_26 ((uprop_ccc_t)26) /* CCC26 */ +#define CCC_27 ((uprop_ccc_t)27) /* CCC27 */ +#define CCC_28 ((uprop_ccc_t)28) /* CCC28 */ +#define CCC_29 ((uprop_ccc_t)29) /* CCC29 */ +#define CCC_30 ((uprop_ccc_t)30) /* CCC30 */ +#define CCC_31 ((uprop_ccc_t)31) /* CCC31 */ +#define CCC_32 ((uprop_ccc_t)32) /* CCC32 */ +#define CCC_33 ((uprop_ccc_t)33) /* CCC33 */ +#define CCC_34 ((uprop_ccc_t)34) /* CCC34 */ +#define CCC_35 ((uprop_ccc_t)35) /* CCC35 */ +#define CCC_36 ((uprop_ccc_t)36) /* CCC36 */ +#define CCC_84 ((uprop_ccc_t)84) /* CCC84 */ +#define CCC_91 ((uprop_ccc_t)91) /* CCC91 */ +#define CCC_103 ((uprop_ccc_t)103) /* CCC103 */ +#define CCC_107 ((uprop_ccc_t)107) /* CCC107 */ +#define CCC_118 ((uprop_ccc_t)118) /* CCC118 */ +#define CCC_122 ((uprop_ccc_t)122) /* CCC122 */ +#define CCC_129 ((uprop_ccc_t)129) /* CCC129 */ +#define CCC_130 ((uprop_ccc_t)130) /* CCC130 */ +#define CCC_132 ((uprop_ccc_t)132) /* CCC132 */ +#define CCC_133 ((uprop_ccc_t)133) /* CCC133 */ +#define CCC_ATBL ((uprop_ccc_t)200) /* Attached Below Left */ +#define CCC_ATB ((uprop_ccc_t)202) /* Attached Below */ +#define CCC_ATA ((uprop_ccc_t)214) /* Attached Above */ +#define CCC_ATAR ((uprop_ccc_t)216) /* Attached Above Right */ +#define CCC_BL ((uprop_ccc_t)218) /* Below Left */ +#define CCC_B ((uprop_ccc_t)220) /* Below */ +#define CCC_BR ((uprop_ccc_t)222) /* Below Right */ +#define CCC_L ((uprop_ccc_t)224) /* Left */ +#define CCC_R ((uprop_ccc_t)226) /* Right */ +#define CCC_AL ((uprop_ccc_t)228) /* Above Left */ +#define CCC_A ((uprop_ccc_t)230) /* Above */ +#define CCC_AR ((uprop_ccc_t)232) /* Above Right */ +#define CCC_DB ((uprop_ccc_t)233) /* Double Below */ +#define CCC_DA ((uprop_ccc_t)234) /* Double Above */ +#define CCC_IS ((uprop_ccc_t)240) /* Iota Subscript */ + +static const uint8_t stage1[] = { + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 0, 0, + 0, 0, 3, 0, 0, 0, 4, 5, 6, 7, 0, 8, 9, 10, 0, 11, + 12, 13, 14, 15, 16, 17, 16, 18, 16, 19, 16, 19, 16, 19, 0, 19, + 16, 20, 16, 19, 21, 19, 0, 22, 23, 24, 25, 26, 27, 28, 29, 30, + 31, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 33, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34, 0, 0, 35, + 0, 0, 36, 0, 37, 0, 0, 0, 38, 39, 40, 41, 42, 43, 44, 45, + 46, 0, 0, 47, 0, 0, 0, 48, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 50, 0, 51, 0, 52, 0, 0, 0, 0, 0, 0, 0, 0, + 53, 0, 54, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 56, 57, 0, 0, 0, 0, + 58, 0, 0, 59, 60, 61, 62, 63, 0, 0, 64, 65, 0, 0, 0, 66, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 69, 0, 0, 0, 70, 0, 71, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 72, 0, 0, 73, 0, 0, 0, 0, + 0, 0, 0, 0, 74, 0, 0, 0, 0, 0, 75, 76, 0, 77, 78, 0, + 0, 79, 80, 0, 81, 62, 0, 82, 83, 0, 0, 84, 85, 86, 0, 0, + 0, 87, 0, 88, 0, 0, 51, 89, 51, 0, 90, 0, 91, 0, 0, 0, + 80, 0, 0, 0, 92, 93, 0, 94, 95, 96, 97, 0, 0, 0, 0, 0, + 51, 0, 0, 0, 0, 98, 99, 0, 0, 0, 0, 0, 0, 100, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 101, 102, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 103, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 104, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 105, 106, 0, 0, 107, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 108, 0, 109, 0, 102, 0, 0, 0, 0, 0, 110, 111, 0, 0, 0, 0, + 0, 0, 0, 112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 113, 0, 114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 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 const uprop_ccc_t stage2[][64] = { + {CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR}, + {CCC_A, CCC_A, CCC_A, CCC_A, + CCC_A, CCC_A, CCC_A, CCC_A, + CCC_A, CCC_A, CCC_A, CCC_A, + CCC_A, CCC_A, CCC_A, CCC_A, + CCC_A, CCC_A, CCC_A, CCC_A, + CCC_A, CCC_AR, CCC_B, CCC_B, + CCC_B, CCC_B, CCC_AR, CCC_ATAR, + CCC_B, CCC_B, CCC_B, CCC_B, + CCC_B, CCC_ATB, CCC_ATB, CCC_B, + CCC_B, CCC_B, CCC_B, CCC_ATB, + CCC_ATB, CCC_B, CCC_B, CCC_B, + CCC_B, CCC_B, CCC_B, CCC_B, + CCC_B, CCC_B, CCC_B, CCC_B, + CCC_OV, CCC_OV, CCC_OV, CCC_OV, + CCC_OV, CCC_B, CCC_B, CCC_B, + CCC_B, CCC_A, CCC_A, CCC_A}, + {CCC_A, CCC_A, CCC_A, CCC_A, + CCC_A, CCC_IS, CCC_A, CCC_B, + CCC_B, CCC_B, CCC_A, CCC_A, + CCC_A, CCC_B, CCC_B, CCC_NR, + CCC_A, CCC_A, CCC_A, CCC_B, + CCC_B, CCC_B, CCC_B, CCC_A, + CCC_AR, CCC_B, CCC_B, CCC_A, + CCC_DB, CCC_DA, CCC_DA, CCC_DB, + CCC_DA, CCC_DA, CCC_DB, CCC_A, + CCC_A, CCC_A, CCC_A, CCC_A, + CCC_A, CCC_A, CCC_A, CCC_A, + CCC_A, CCC_A, CCC_A, CCC_A, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR}, + {CCC_NR, CCC_NR, CCC_NR, CCC_A, + CCC_A, CCC_A, CCC_A, CCC_A, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR}, + {CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_B, CCC_A, CCC_A, + CCC_A, CCC_A, CCC_B, CCC_A, + CCC_A, CCC_A, CCC_BR, CCC_B, + CCC_A, CCC_A, CCC_A, CCC_A, + CCC_A, CCC_A, CCC_B, CCC_B, + CCC_B, CCC_B, CCC_B, CCC_B, + CCC_A, CCC_A, CCC_B, CCC_A, + CCC_A, CCC_BR, CCC_AL, CCC_A, + CCC_10, CCC_11, CCC_12, CCC_13, + CCC_14, CCC_15, CCC_16, CCC_17, + CCC_18, CCC_19, CCC_19, CCC_20, + CCC_21, CCC_22, CCC_NR, CCC_23}, + {CCC_NR, CCC_24, CCC_25, CCC_NR, + CCC_A, CCC_B, CCC_NR, CCC_18, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR}, + {CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_A, CCC_A, CCC_A, CCC_A, + CCC_A, CCC_A, CCC_A, CCC_A, + CCC_30, CCC_31, CCC_32, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR}, + {CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_27, + CCC_28, CCC_29, CCC_30, CCC_31, + CCC_32, CCC_33, CCC_34, CCC_A, + CCC_A, CCC_B, CCC_B, CCC_A, + CCC_A, CCC_A, CCC_A, CCC_A, + CCC_B, CCC_A, CCC_A, CCC_B, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_35, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR}, + {CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_A, CCC_A, + CCC_A, CCC_A, CCC_A, CCC_A, + CCC_A, CCC_NR, CCC_NR, CCC_A, + CCC_A, CCC_A, CCC_A, CCC_B, + CCC_A, CCC_NR, CCC_NR, CCC_A, + CCC_A, CCC_NR, CCC_B, CCC_A, + CCC_A, CCC_B, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR}, + {CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_36, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_A, CCC_B, CCC_A, CCC_A, + CCC_B, CCC_A, CCC_A, CCC_B, + CCC_B, CCC_B, CCC_A, CCC_B, + CCC_B, CCC_A, CCC_B, CCC_A}, + {CCC_A, CCC_A, CCC_B, CCC_A, + CCC_B, CCC_A, CCC_B, CCC_A, + CCC_B, CCC_A, CCC_A, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR}, + {CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_A, + CCC_A, CCC_A, CCC_A, CCC_A, + CCC_A, CCC_A, CCC_B, CCC_A, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_B, CCC_NR, CCC_NR}, + {CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_A, CCC_A, + CCC_A, CCC_A, CCC_NR, CCC_A, + CCC_A, CCC_A, CCC_A, CCC_A, + CCC_A, CCC_A, CCC_A, CCC_A, + CCC_NR, CCC_A, CCC_A, CCC_A, + CCC_NR, CCC_A, CCC_A, CCC_A, + CCC_A, CCC_A, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR}, + {CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_B, CCC_B, CCC_B, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR}, + {CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_A, CCC_B, CCC_B, CCC_B, + CCC_A, CCC_A, CCC_A, CCC_A, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR}, + {CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_A, CCC_A, + CCC_A, CCC_A, CCC_A, CCC_B, + CCC_B, CCC_B, CCC_B, CCC_B, + CCC_A, CCC_A, CCC_A, CCC_A, + CCC_A, CCC_A, CCC_A, CCC_A, + CCC_A, CCC_A, CCC_A, CCC_A, + CCC_A, CCC_A, CCC_NR, CCC_B, + CCC_A, CCC_A, CCC_B, CCC_A, + CCC_A, CCC_B, CCC_A, CCC_A, + CCC_A, CCC_B, CCC_B, CCC_B, + CCC_27, CCC_28, CCC_29, CCC_A, + CCC_A, CCC_A, CCC_B, CCC_A, + CCC_A, CCC_B, CCC_B, CCC_A, + CCC_A, CCC_A, CCC_A, CCC_A}, + {CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NK, CCC_NR, CCC_NR, CCC_NR}, + {CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_VR, CCC_NR, CCC_NR, + CCC_NR, CCC_A, CCC_B, CCC_A, + CCC_A, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR}, + {CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_VR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_A, CCC_NR}, + {CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_VR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR}, + {CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_VR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_84, CCC_91, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR}, + {CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_VR, + CCC_VR, CCC_NR, CCC_NR, CCC_NR}, + {CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_VR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR}, + {CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_103, CCC_103, CCC_VR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR}, + {CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_107, CCC_107, CCC_107, CCC_107, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR}, + {CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_118, CCC_118, CCC_VR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR}, + {CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_122, CCC_122, CCC_122, CCC_122, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR}, + {CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_B, CCC_B, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_B, CCC_NR, CCC_B, + CCC_NR, CCC_ATAR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR}, + {CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_129, CCC_130, CCC_NR, + CCC_132, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_130, CCC_130, + CCC_130, CCC_130, CCC_NR, CCC_NR}, + {CCC_130, CCC_NR, CCC_A, CCC_A, + CCC_VR, CCC_NR, CCC_A, CCC_A, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR}, + {CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_B, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR}, + {CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NK, + CCC_NR, CCC_VR, CCC_VR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR}, + {CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_B, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR}, + {CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_A, CCC_A, CCC_A, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR}, + {CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_VR, CCC_VR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_VR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR}, + {CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_VR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_A, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR}, + {CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_AL, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR}, + {CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_BR, CCC_A, CCC_B, + CCC_NR, CCC_NR, CCC_NR, CCC_NR}, + {CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_A, + CCC_B, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR}, + {CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_VR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_A, CCC_A, CCC_A, + CCC_A, CCC_A, CCC_A, CCC_A, + CCC_A, CCC_NR, CCC_NR, CCC_B}, + {CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_A, CCC_A, CCC_A, CCC_A, + CCC_A, CCC_B, CCC_B, CCC_B, + CCC_B, CCC_B, CCC_B, CCC_A, + CCC_A, CCC_B, CCC_NR, CCC_B}, + {CCC_B, CCC_A, CCC_A, CCC_B, + CCC_B, CCC_A, CCC_A, CCC_A, + CCC_A, CCC_A, CCC_B, CCC_A, + CCC_A, CCC_A, CCC_A, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR}, + {CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NK, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR}, + {CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_VR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_A, + CCC_B, CCC_A, CCC_A, CCC_A, + CCC_A, CCC_A, CCC_A, CCC_A, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR}, + {CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_VR, CCC_VR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR}, + {CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NK, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_VR, CCC_VR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR}, + {CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NK, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR}, + {CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_A, CCC_A, CCC_A, CCC_NR, + CCC_OV, CCC_B, CCC_B, CCC_B, + CCC_B, CCC_B, CCC_A, CCC_A, + CCC_B, CCC_B, CCC_B, CCC_B, + CCC_A, CCC_NR, CCC_OV, CCC_OV, + CCC_OV, CCC_OV, CCC_OV, CCC_OV, + CCC_OV, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_B, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_A, CCC_NR, CCC_NR, CCC_NR, + CCC_A, CCC_A, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR}, + {CCC_A, CCC_A, CCC_B, CCC_A, + CCC_A, CCC_A, CCC_A, CCC_A, + CCC_A, CCC_A, CCC_B, CCC_A, + CCC_A, CCC_DA, CCC_ATA, CCC_B, + CCC_ATB, CCC_A, CCC_A, CCC_A, + CCC_A, CCC_A, CCC_A, CCC_A, + CCC_A, CCC_A, CCC_A, CCC_A, + CCC_A, CCC_A, CCC_A, CCC_A, + CCC_A, CCC_A, CCC_A, CCC_A, + CCC_A, CCC_A, CCC_A, CCC_A, + CCC_A, CCC_A, CCC_A, CCC_A, + CCC_A, CCC_A, CCC_A, CCC_A, + CCC_A, CCC_A, CCC_A, CCC_A, + CCC_A, CCC_A, CCC_AR, CCC_AL, + CCC_AL, CCC_B, CCC_BL, CCC_A, + CCC_DB, CCC_B, CCC_A, CCC_B}, + {CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_A, CCC_A, CCC_OV, CCC_OV, + CCC_A, CCC_A, CCC_A, CCC_A, + CCC_OV, CCC_OV, CCC_OV, CCC_A, + CCC_A, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_A, CCC_NR, CCC_NR, + CCC_NR, CCC_OV, CCC_OV, CCC_A, + CCC_B, CCC_A, CCC_OV, CCC_OV, + CCC_B, CCC_B, CCC_B, CCC_B, + CCC_A, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR}, + {CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_A, + CCC_A, CCC_A, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR}, + {CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_VR}, + {CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_A, CCC_A, CCC_A, CCC_A, + CCC_A, CCC_A, CCC_A, CCC_A, + CCC_A, CCC_A, CCC_A, CCC_A, + CCC_A, CCC_A, CCC_A, CCC_A, + CCC_A, CCC_A, CCC_A, CCC_A, + CCC_A, CCC_A, CCC_A, CCC_A, + CCC_A, CCC_A, CCC_A, CCC_A, + CCC_A, CCC_A, CCC_A, CCC_A}, + {CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_BL, CCC_AL, + CCC_AR, CCC_BR, CCC_L, CCC_L, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR}, + {CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_KV, CCC_KV, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR}, + {CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_A, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_A, CCC_A, CCC_A, CCC_A, + CCC_A, CCC_A, CCC_A, CCC_A, + CCC_A, CCC_A, CCC_NR, CCC_NR}, + {CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_A, CCC_A, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR}, + {CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_A, CCC_A, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR}, + {CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_VR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_VR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR}, + {CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_VR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_A, CCC_A, CCC_A, CCC_A, + CCC_A, CCC_A, CCC_A, CCC_A, + CCC_A, CCC_A, CCC_A, CCC_A, + CCC_A, CCC_A, CCC_A, CCC_A, + CCC_A, CCC_A, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR}, + {CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_B, + CCC_B, CCC_B, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR}, + {CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_VR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR}, + {CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NK, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR}, + {CCC_VR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR}, + {CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_A, CCC_NR, CCC_A, CCC_A, + CCC_B, CCC_NR, CCC_NR, CCC_A, + CCC_A, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_A, CCC_A}, + {CCC_NR, CCC_A, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_VR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR}, + {CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_VR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR}, + {CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_26, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR}, + {CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_A, CCC_A, CCC_A, CCC_A, + CCC_A, CCC_A, CCC_A, CCC_B, + CCC_B, CCC_B, CCC_B, CCC_B, + CCC_B, CCC_B, CCC_A, CCC_A, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR}, + {CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_B, CCC_NR, CCC_NR}, + {CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_B, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR}, + {CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_A, CCC_A, + CCC_A, CCC_A, CCC_A, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR}, + {CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_B, CCC_NR, CCC_A, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_A, CCC_OV, CCC_B, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_VR}, + {CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_A, CCC_B, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR}, + {CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_A, CCC_A, CCC_A, CCC_A, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR}, + {CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_A, + CCC_A, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR}, + {CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_B, CCC_B, CCC_B}, + {CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_B, CCC_B, + CCC_A, CCC_A, CCC_A, CCC_B, + CCC_A, CCC_B, CCC_B, CCC_B, + CCC_B, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR}, + {CCC_NR, CCC_NR, CCC_A, CCC_B, + CCC_A, CCC_B, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR}, + {CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_VR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_VR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_VR}, + {CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_VR, CCC_NK, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR}, + {CCC_A, CCC_A, CCC_A, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_VR, + CCC_VR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR}, + {CCC_VR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NK, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR}, + {CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_VR, CCC_NK, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR}, + {CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NK, CCC_VR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR}, + {CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NK, + CCC_NK, CCC_NR, CCC_NR, CCC_NR}, + {CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_VR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_A, CCC_A, + CCC_A, CCC_A, CCC_A, CCC_A, + CCC_A, CCC_NR, CCC_NR, CCC_NR, + CCC_A, CCC_A, CCC_A, CCC_A, + CCC_A, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR}, + {CCC_NR, CCC_NR, CCC_VR, CCC_NR, + CCC_NR, CCC_NR, CCC_NK, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_A, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR}, + {CCC_NR, CCC_NR, CCC_VR, CCC_NK, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR}, + {CCC_NK, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR}, + {CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_VR, CCC_NK, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR}, + {CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_VR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR}, + {CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_VR, CCC_VR, CCC_NR}, + {CCC_NR, CCC_NR, CCC_NR, CCC_NK, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR}, + {CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_VR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR}, + {CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_VR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR}, + {CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_VR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR}, + {CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_VR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR}, + {CCC_NR, CCC_NR, CCC_NK, CCC_NR, + CCC_VR, CCC_VR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR}, + {CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_VR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR}, + {CCC_NR, CCC_VR, CCC_VR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR}, + {CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_OV, CCC_OV, CCC_OV, CCC_OV, + CCC_OV, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR}, + {CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_A, CCC_A, CCC_A, CCC_A, + CCC_A, CCC_A, CCC_A, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR}, + {CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_HANR, CCC_HANR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR}, + {CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_OV, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR}, + {CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_ATAR, CCC_ATAR, CCC_OV, + CCC_OV, CCC_OV, CCC_NR, CCC_NR, + CCC_NR, CCC_R, CCC_ATAR, CCC_ATAR, + CCC_ATAR, CCC_ATAR, CCC_ATAR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_B, + CCC_B, CCC_B, CCC_B, CCC_B}, + {CCC_B, CCC_B, CCC_B, CCC_NR, + CCC_NR, CCC_A, CCC_A, CCC_A, + CCC_A, CCC_A, CCC_B, CCC_B, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_A, CCC_A, + CCC_A, CCC_A, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR}, + {CCC_NR, CCC_NR, CCC_A, CCC_A, + CCC_A, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR}, + {CCC_A, CCC_A, CCC_A, CCC_A, + CCC_A, CCC_A, CCC_A, CCC_NR, + CCC_A, CCC_A, CCC_A, CCC_A, + CCC_A, CCC_A, CCC_A, CCC_A, + CCC_A, CCC_A, CCC_A, CCC_A, + CCC_A, CCC_A, CCC_A, CCC_A, + CCC_A, CCC_NR, CCC_NR, CCC_A, + CCC_A, CCC_A, CCC_A, CCC_A, + CCC_A, CCC_A, CCC_NR, CCC_A, + CCC_A, CCC_NR, CCC_A, CCC_A, + CCC_A, CCC_A, CCC_A, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR}, + {CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_A, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR}, + {CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_A, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR}, + {CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_A, CCC_A, CCC_A, CCC_A, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR}, + {CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_AR, CCC_AR, CCC_B, CCC_A, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR}, + {CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_B, CCC_B, CCC_B, CCC_B, + CCC_B, CCC_B, CCC_B, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR}, + {CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_A, CCC_A, CCC_A, CCC_A, + CCC_A, CCC_A, CCC_NK, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR, + CCC_NR, CCC_NR, CCC_NR, CCC_NR}, +}; + +#define u8byte1(x) (((x) & 0x80) == 0x00) +#define u8byte2(x) (((x) & 0xE0) == 0xC0) +#define u8byte3(x) (((x) & 0xF0) == 0xE0) +#define u8byte4(x) (((x) & 0xF8) == 0xF0) + +static int +u8tor(rune *ch, const char *s) +{ + if (s[0] == 0) { + *ch = 0; + return 0; + } else if (u8byte1(s[0])) { + *ch = s[0]; + return 1; + } else if (u8byte2(s[0])) { + *ch = ((s[0] & 0x1F) << 6) + | ((s[1] & 0x3F) << 0); + return 2; + } else if (u8byte3(s[0])) { + *ch = ((s[0] & 0x0F) << 12) + | ((s[1] & 0x3F) << 6) + | ((s[2] & 0x3F) << 0); + return 3; + } else if (u8byte4(s[0])) { + *ch = ((s[0] & 0x07) << 18) + | ((s[1] & 0x3F) << 12) + | ((s[2] & 0x3F) << 6) + | ((s[3] & 0x3F) << 0); + return 4; + } + __builtin_unreachable(); +} + +#endif /* !UNICODE_H */ |