diff options
51 files changed, 11382 insertions, 13154 deletions
diff --git a/common/arm/ih264_platform_macros.h b/common/arm/ih264_platform_macros.h index 1f67403..438e240 100644 --- a/common/arm/ih264_platform_macros.h +++ b/common/arm/ih264_platform_macros.h @@ -33,13 +33,11 @@ * ******************************************************************************* */ -#ifndef _IHEVC_PLATFORM_MACROS_H_ -#define _IHEVC_PLATFORM_MACROS_H_ +#ifndef _IH264_PLATFORM_MACROS_H_ +#define _IH264_PLATFORM_MACROS_H_ #ifndef ARMV8 -void ih264_arm_dsb(void); -#define DATA_SYNC() ih264_arm_dsb() static __inline WORD32 CLIP_U8(WORD32 x) { asm("usat %0, #8, %1" : "=r"(x) : "r"(x)); @@ -93,8 +91,9 @@ static __inline UWORD32 ITT_BIG_ENDIAN(UWORD32 x) asm("rev %0, %1" : "=r"(x) : "r"(x)); return x; } +#define NOP(nop_cnt) {UWORD32 nop_i; for (nop_i = 0; nop_i < nop_cnt; nop_i++) asm("nop");} + #else -#define DATA_SYNC() ; #define CLIP_U8(x) CLIP3(0, 255, (x)) #define CLIP_S8(x) CLIP3(-128, 127, (x)) @@ -108,12 +107,19 @@ static __inline UWORD32 ITT_BIG_ENDIAN(UWORD32 x) #define CLIP_U16(x) CLIP3(0, 65535, (x)) #define CLIP_S16(x) CLIP3(-32768, 32767, (x)) -#define ITT_BIG_ENDIAN(x) ((x & 0x000000ff) << 24) | \ - ((x & 0x0000ff00) << 8) | \ - ((x & 0x00ff0000) >> 8) | \ - ((UWORD32)x >> 24); +#define ITT_BIG_ENDIAN(x) __asm__("rev %0, %1" : "=r"(x) : "r"(x)); + +#define NOP(nop_cnt) \ +{ \ + UWORD32 nop_i; \ + for (nop_i = 0; nop_i < nop_cnt; nop_i++) \ + __asm__ __volatile__("mov x0, x0"); \ +} + #endif +#define DATA_SYNC() __sync_synchronize() + #define SHL(x,y) (((y) < 32) ? ((x) << (y)) : 0) #define SHR(x,y) (((y) < 32) ? ((x) >> (y)) : 0) @@ -141,12 +147,8 @@ static INLINE UWORD32 CTZ(UWORD32 u4_word) } } - -#define NOP(nop_cnt) {UWORD32 nop_i; for (nop_i = 0; nop_i < nop_cnt; nop_i++);} - - #define MEM_ALIGN8 __attribute__ ((aligned (8))) #define MEM_ALIGN16 __attribute__ ((aligned (16))) #define MEM_ALIGN32 __attribute__ ((aligned (32))) -#endif /* _IHEVC_PLATFORM_MACROS_H_ */ +#endif /* _IH264_PLATFORM_MACROS_H_ */ diff --git a/common/armv8/ih264_platform_macros.h b/common/armv8/ih264_platform_macros.h index 1f67403..438e240 100644 --- a/common/armv8/ih264_platform_macros.h +++ b/common/armv8/ih264_platform_macros.h @@ -33,13 +33,11 @@ * ******************************************************************************* */ -#ifndef _IHEVC_PLATFORM_MACROS_H_ -#define _IHEVC_PLATFORM_MACROS_H_ +#ifndef _IH264_PLATFORM_MACROS_H_ +#define _IH264_PLATFORM_MACROS_H_ #ifndef ARMV8 -void ih264_arm_dsb(void); -#define DATA_SYNC() ih264_arm_dsb() static __inline WORD32 CLIP_U8(WORD32 x) { asm("usat %0, #8, %1" : "=r"(x) : "r"(x)); @@ -93,8 +91,9 @@ static __inline UWORD32 ITT_BIG_ENDIAN(UWORD32 x) asm("rev %0, %1" : "=r"(x) : "r"(x)); return x; } +#define NOP(nop_cnt) {UWORD32 nop_i; for (nop_i = 0; nop_i < nop_cnt; nop_i++) asm("nop");} + #else -#define DATA_SYNC() ; #define CLIP_U8(x) CLIP3(0, 255, (x)) #define CLIP_S8(x) CLIP3(-128, 127, (x)) @@ -108,12 +107,19 @@ static __inline UWORD32 ITT_BIG_ENDIAN(UWORD32 x) #define CLIP_U16(x) CLIP3(0, 65535, (x)) #define CLIP_S16(x) CLIP3(-32768, 32767, (x)) -#define ITT_BIG_ENDIAN(x) ((x & 0x000000ff) << 24) | \ - ((x & 0x0000ff00) << 8) | \ - ((x & 0x00ff0000) >> 8) | \ - ((UWORD32)x >> 24); +#define ITT_BIG_ENDIAN(x) __asm__("rev %0, %1" : "=r"(x) : "r"(x)); + +#define NOP(nop_cnt) \ +{ \ + UWORD32 nop_i; \ + for (nop_i = 0; nop_i < nop_cnt; nop_i++) \ + __asm__ __volatile__("mov x0, x0"); \ +} + #endif +#define DATA_SYNC() __sync_synchronize() + #define SHL(x,y) (((y) < 32) ? ((x) << (y)) : 0) #define SHR(x,y) (((y) < 32) ? ((x) >> (y)) : 0) @@ -141,12 +147,8 @@ static INLINE UWORD32 CTZ(UWORD32 u4_word) } } - -#define NOP(nop_cnt) {UWORD32 nop_i; for (nop_i = 0; nop_i < nop_cnt; nop_i++);} - - #define MEM_ALIGN8 __attribute__ ((aligned (8))) #define MEM_ALIGN16 __attribute__ ((aligned (16))) #define MEM_ALIGN32 __attribute__ ((aligned (32))) -#endif /* _IHEVC_PLATFORM_MACROS_H_ */ +#endif /* _IH264_PLATFORM_MACROS_H_ */ diff --git a/common/ih264_cabac_tables.c b/common/ih264_cabac_tables.c index 118ca12..835ea33 100644 --- a/common/ih264_cabac_tables.c +++ b/common/ih264_cabac_tables.c @@ -26,15 +26,14 @@ * * @brief * This file contains H264 cabac tables for init contexts, rlps and -* cabac state trasnitions +* cabac state transitions * * @author * Ittiam * * @par List of Tables -* - gau1_ih264_cab_ctxts[] -* - gau1_ih264_next_state[] -* - gau1_ih264_cab_ctxts[][][] +* - gau4_ih264_cabac_table[][] +* - gau1_ih264_cabac_ctxt_init_table[][][] * ****************************************************************************** */ @@ -52,10818 +51,9230 @@ /*****************************************************************************/ /* Extern global definitions */ /*****************************************************************************/ - -/** - ****************************************************************************** - * @brief Table for rangeTabLPS depending on pStateIdx and qCodIRangeIdx - * input : pStateIdx(0-63) and qCodIRangeIdx(0-3) [(Range >> 6) & 0x3] - * output : RLPS - * - * @remarks See Table 9-35 of H264 spec for rangeTabLPS - ****************************************************************************** - */ -const UWORD8 gau1_ih264_cabac_rlps[64][4] = -{ - { 128, 176, 208, 240}, - { 128, 167, 197, 227}, - { 128, 158, 187, 216}, - { 123, 150, 178, 205}, - { 116, 142, 169, 195}, - { 111, 135, 160, 185}, - { 105, 128, 152, 175}, - { 100, 122, 144, 166}, - { 95, 116, 137, 158}, - { 90, 110, 130, 150}, - { 85, 104, 123, 142}, - { 81, 99, 117, 135}, - { 77, 94, 111, 128}, - { 73, 89, 105, 122}, - { 69, 85, 100, 116}, - { 66, 80, 95, 110}, - { 62, 76, 90, 104}, - { 59, 72, 86, 99}, - { 56, 69, 81, 94}, - { 53, 65, 77, 89}, - { 51, 62, 73, 85}, - { 48, 59, 69, 80}, - { 46, 56, 66, 76}, - { 43, 53, 63, 72}, - { 41, 50, 59, 69}, - { 39, 48, 56, 65}, - { 37, 45, 54, 62}, - { 35, 43, 51, 59}, - { 33, 41, 48, 56}, - { 32, 39, 46, 53}, - { 30, 37, 43, 50}, - { 29, 35, 41, 48}, - { 27, 33, 39, 45}, - { 26, 31, 37, 43}, - { 24, 30, 35, 41}, - { 23, 28, 33, 39}, - { 22, 27, 32, 37}, - { 21, 26, 30, 35}, - { 20, 24, 29, 33}, - { 19, 23, 27, 31}, - { 18, 22, 26, 30}, - { 17, 21, 25, 28}, - { 16, 20, 23, 27}, - { 15, 19, 22, 25}, - { 14, 18, 21, 24}, - { 14, 17, 20, 23}, - { 13, 16, 19, 22}, - { 12, 15, 18, 21}, - { 12, 14, 17, 20}, - { 11, 14, 16, 19}, - { 11, 13, 15, 18}, - { 10, 12, 15, 17}, - { 10, 12, 14, 16}, - { 9, 11, 13, 15}, - { 9, 11, 12, 14}, - { 8, 10, 12, 14}, - { 8, 9, 11, 13}, - { 7, 9, 11, 12}, - { 7, 9, 10, 12}, - { 7, 8, 10, 11}, - { 6, 8, 9, 11}, - { 6, 7, 9, 10}, - { 6, 7, 8, 9}, - { 2, 2, 2, 2} -}; - -/** - ****************************************************************************** - * @brief probaility+MPS state transition tables based on cur State and bin - * input : curpState[bits7-2] | curMPS[bit1] | decodedBin[bit0] - * output : nextpState[bits6-1] | nextMPS[bit0] - * @remarks Modified form of Table-9-36 State Transition table in H264 spec - ****************************************************************************** - */ -const UWORD8 gau1_ih264_next_state[64 * 2 * 2] = -{ /*****************************************************************************/ -/* m=0,b=0 | m=0,b=1 | m=1,b=0 | m=1,b=1 */ +/* CABAC TABLES */ /*****************************************************************************/ - 2, 1, 0, 3,/* mps reversal for m=0,b=1 / m=1,b=0 */ - 4, 0, 1, 5, - 6, 2, 3, 7, - 8, 4, 5, 9, - 10, 4, 5, 11, - 12, 8, 9, 13, - 14, 8, 9, 15, - 16, 10, 11, 17, - 18, 12, 13, 19, - 20, 14, 15, 21, - 22, 16, 17, 23, - 24, 18, 19, 25, - 26, 18, 19, 27, - 28, 22, 23, 29, - 30, 22, 23, 31, - 32, 24, 25, 33, - 34, 26, 27, 35, - 36, 26, 27, 37, - 38, 30, 31, 39, - 40, 30, 31, 41, - 42, 32, 33, 43, - 44, 32, 33, 45, - 46, 36, 37, 47, - 48, 36, 37, 49, - 50, 38, 39, 51, - 52, 38, 39, 53, - 54, 42, 43, 55, - 56, 42, 43, 57, - 58, 44, 45, 59, - 60, 44, 45, 61, - 62, 46, 47, 63, - 64, 48, 49, 65, - 66, 48, 49, 67, - 68, 50, 51, 69, - 70, 52, 53, 71, - 72, 52, 53, 73, - 74, 54, 55, 75, - 76, 54, 55, 77, - 78, 56, 57, 79, - 80, 58, 59, 81, - 82, 58, 59, 83, - 84, 60, 61, 85, - 86, 60, 61, 87, - 88, 60, 61, 89, - 90, 62, 63, 91, - 92, 64, 65, 93, - 94, 64, 65, 95, - 96, 66, 67, 97, - 98, 66, 67, 99, - 100, 66, 67, 101, - 102, 68, 69, 103, - 104, 68, 69, 105, - 106, 70, 71, 107, - 108, 70, 71, 109, - 110, 70, 71, 111, - 112, 72, 73, 113, - 114, 72, 73, 115, - 116, 72, 73, 117, - 118, 74, 75, 119, - 120, 74, 75, 121, - 122, 74, 75, 123, - 124, 76, 77, 125, - 124, 76, 77, 125, - 126, 126, 127, 127 -}; - - -/* -****************************************************************************** -* As per H264 standard the cabac initialization of context variables -* are generated using following logic -* (ref: section 9.3.1.1 of ITU-T Rec. H.264 (03/2005)) -* -* The two values assigned to pStateIdx and valMPS during this initialization -* are derived from SliceQPY -* -* Given the two table entries [m, n] (for a given slice type, context index and -* cabac_init_idc), the initialization is specified by the following pseudo-code process -* -* preCtxState = Clip3( 1, 126, ( ( m * Clip3( 0, 51, SliceQPY ) ) >> 4 ) + n ) -* if( preCtxState <= 63 ) { -* pStateIdx = 63 - preCtxState -* valMPS = 0 -* } else { -* pStateIdx = preCtxState - 64 -* valMPS = 1 -* } -****************************************************************************** -*/ +/*combined table :guc_RTAB,NextStateLPS,NextStateMPS + input(combined_state): + bits 0-5: state + bits 6:mps + output + bits 0-7:rangeTabLPS + bits 8-14 :combined_next_state_if_mps + bits 15 -21:combined_next_state_if_lps -/** - ****************************************************************************** - * @brief Init context tables for all combinations of qp and cabac_init_idc - * @remarks Packing format MPS in lsb and pState in bits[1-6] - ****************************************************************************** */ -const UWORD8 gau1_ih264_cab_ctxts[IH264_NUM_CABAC_INIT_IDC_PLUS_ONE][IH264_MAX_QP][IH264_NUM_CABAC_CTXTS] = -{ +const UWORD32 gau4_ih264_cabac_table[128][4] = { + { 2097536, 2097584, 2097616, 2097648 }, - { - /* Context Tables for P, SP, B Slices :: cabac_init_idc = 0, qp = 0 */ - - 124, 18, 21, 124, 18, 21, 125, 81, 20, 18, - 24, 60, 122, 124, 108, 28, 109, 12, 29, 3, - 2, 28, 19, 26, 1, 40, 124, 7, 53, 81, - 125, 81, 7, 29, 3, 2, 45, 63, 4, 36, - 11, 35, 65, 16, 7, 45, 49, 10, 25, 61, - 18, 11, 35, 49, 7, 21, 21, 33, 17, 10, - 44, 0, 0, 0, 39, 45, 67, 17, 44, 2, - 36, 29, 65, 125, 69, 75, 7, 37, 61, 39, - 93, 55, 77, 59, 125, 57, 51, 65, 89, 34, - 3, 12, 59, 21, 57, 47, 125, 18, 6, 8, - 11, 30, 9, 11, 49, 43, 29, 23, 27, 18, - 26, 9, 26, 42, 35, 0, 13, 7, 12, 25, - 56, 1, 4, 56, 76, 78, 68, 54, 59, 19, - 19, 34, 28, 73, 20, 20, 20, 4, 14, 14, - 0, 6, 2, 12, 11, 12, 48, 24, 9, 1, - 4, 0, 26, 48, 38, 22, 30, 6, 8, 8, - 60, 38, 40, 29, 6, 11, 70, 46, 38, 28, - 34, 38, 24, 32, 48, 2, 34, 18, 18, 10, - 0, 24, 12, 20, 22, 16, 36, 54, 20, 37, - 16, 29, 34, 64, 41, 112, 124, 120, 118, 124, - 124, 114, 114, 108, 88, 72, 66, 86, 58, 13, - 7, 8, 7, 66, 62, 56, 68, 64, 50, 40, - 44, 0, 8, 1, 61, 51, 89, 25, 38, 36, - 22, 1, 8, 13, 23, 37, 77, 27, 78, 42, - 30, 16, 8, 15, 39, 47, 111, 10, 68, 54, - 50, 40, 16, 10, 1, 21, 53, 13, 68, 64, - 42, 8, 10, 17, 35, 67, 10, 116, 98, 90, - 72, 46, 10, 13, 31, 43, 124, 85, 85, 47, - 101, 93, 69, 93, 85, 79, 87, 89, 97, 65, - 63, 55, 59, 61, 45, 7, 33, 43, 13, 6, - 10, 4, 26, 26, 28, 18, 44, 34, 24, 28, - 22, 44, 32, 16, 44, 38, 26, 20, 28, 0, - 1, 11, 8, 13, 38, 64, 40, 20, 58, 50, - 22, 46, 62, 38, 50, 26, 12, 40, 104, 98, - 104, 104, 108, 124, 124, 124, 124, 124, 124, 124, - 124, 124, 68, 124, 124, 124, 124, 124, 124, 108, - 74, 72, 12, 37, 23, 67, 123, 124, 124, 124, - 114, 110, 106, 82, 88, 62, 64, 44, 38, 32, - 3, 15, 6, 0, 3, 78, 86, 80, 62, 80, - 78, 46, 62, 68, 42, 12, 20, 4, 45, 46, - 24, 8, 31, 15, 11, 13, 5, 9, 19, 11, - 13, 7, 2, 13, 5, 3, 0, 124, 124, 124, - 124, 124, 120, 108, 72, 8, 5, 56, 42, 36, - 30, 14, 6, 2, 5, 25, 43, 35, 27, 35, - 33, 19, 21, 39, 15, 7, 4, 5, 5, 8, - 8, 124, 124, 124, 124, 122, 114, 92, 58, 2, - }, - - { - /* Context Tables for P, SP, B Slices :: cabac_init_idc = 0, qp = 1 */ - - 124, 18, 21, 124, 18, 21, 123, 77, 22, 20, - 24, 58, 120, 124, 108, 28, 103, 12, 27, 1, - 2, 28, 17, 24, 3, 40, 124, 9, 55, 81, - 121, 77, 7, 27, 1, 2, 43, 59, 6, 36, - 9, 33, 63, 16, 7, 43, 49, 10, 23, 59, - 18, 11, 33, 49, 5, 19, 19, 31, 15, 10, - 44, 0, 0, 0, 37, 45, 67, 15, 44, 2, - 36, 27, 63, 121, 65, 71, 3, 33, 57, 37, - 89, 51, 73, 57, 123, 55, 49, 63, 87, 36, - 1, 14, 57, 19, 55, 45, 121, 18, 6, 8, - 11, 32, 9, 9, 47, 41, 27, 21, 25, 18, - 26, 7, 26, 42, 33, 0, 11, 7, 12, 23, - 56, 1, 4, 56, 74, 78, 68, 54, 57, 17, - 17, 34, 28, 71, 20, 20, 20, 6, 14, 14, - 2, 8, 4, 12, 9, 12, 48, 24, 9, 1, - 4, 0, 26, 46, 38, 22, 30, 8, 10, 8, - 58, 38, 40, 27, 6, 11, 70, 46, 38, 28, - 34, 38, 24, 32, 48, 2, 34, 18, 18, 10, - 0, 24, 12, 20, 22, 16, 36, 54, 20, 35, - 16, 27, 34, 62, 39, 110, 124, 118, 116, 122, - 124, 112, 112, 104, 86, 70, 64, 82, 56, 15, - 7, 8, 7, 64, 60, 54, 66, 62, 48, 38, - 42, 0, 8, 1, 59, 49, 87, 23, 40, 36, - 22, 0, 10, 11, 21, 35, 73, 25, 78, 42, - 30, 16, 10, 13, 37, 45, 107, 10, 70, 56, - 50, 40, 18, 10, 1, 19, 51, 13, 70, 64, - 42, 8, 12, 15, 33, 65, 10, 116, 98, 90, - 72, 46, 10, 11, 29, 41, 124, 83, 83, 45, - 97, 89, 67, 89, 81, 75, 83, 85, 93, 63, - 61, 53, 57, 57, 43, 7, 31, 41, 11, 6, - 10, 4, 26, 26, 26, 16, 44, 34, 26, 28, - 22, 44, 32, 16, 44, 38, 26, 20, 28, 0, - 1, 9, 10, 13, 38, 64, 40, 20, 58, 50, - 24, 46, 60, 38, 50, 26, 12, 38, 104, 98, - 104, 102, 106, 124, 124, 124, 124, 124, 124, 124, - 124, 124, 66, 124, 124, 124, 124, 124, 124, 106, - 72, 70, 12, 35, 21, 63, 117, 124, 124, 124, - 112, 106, 104, 80, 84, 60, 62, 42, 36, 30, - 5, 15, 6, 0, 5, 76, 84, 78, 60, 78, - 76, 44, 60, 66, 40, 10, 18, 2, 45, 46, - 24, 8, 29, 13, 9, 11, 3, 7, 15, 9, - 11, 5, 6, 9, 3, 0, 4, 124, 124, 124, - 124, 124, 116, 102, 68, 4, 3, 58, 44, 38, - 32, 16, 8, 4, 3, 23, 41, 33, 25, 33, - 29, 15, 19, 37, 13, 5, 6, 3, 3, 8, - 8, 124, 124, 124, 124, 116, 108, 86, 52, 1, - }, - - { - /* Context Tables for P, SP, B Slices :: cabac_init_idc = 0, qp = 2 */ - - 124, 18, 21, 124, 18, 21, 119, 75, 22, 20, - 24, 56, 118, 122, 108, 28, 99, 12, 25, 0, - 2, 26, 17, 22, 5, 38, 120, 13, 57, 83, - 115, 75, 7, 25, 0, 2, 43, 57, 6, 34, - 9, 33, 61, 16, 7, 43, 49, 10, 23, 57, - 18, 11, 33, 49, 5, 19, 19, 31, 15, 10, - 44, 0, 0, 0, 35, 45, 67, 15, 42, 2, - 36, 27, 63, 117, 61, 67, 1, 29, 55, 35, - 87, 49, 71, 55, 119, 55, 49, 63, 85, 36, - 1, 14, 55, 19, 53, 45, 119, 18, 6, 8, - 11, 32, 9, 9, 47, 41, 27, 21, 25, 18, - 26, 7, 26, 42, 33, 0, 11, 7, 12, 23, - 54, 1, 4, 54, 72, 76, 66, 52, 55, 17, - 17, 32, 26, 71, 18, 20, 20, 6, 14, 14, - 4, 8, 4, 12, 9, 12, 46, 24, 11, 1, - 4, 1, 26, 44, 38, 22, 28, 8, 10, 8, - 56, 38, 38, 27, 6, 13, 68, 46, 38, 28, - 34, 38, 24, 32, 48, 2, 34, 18, 18, 10, - 0, 24, 12, 20, 22, 16, 34, 52, 18, 35, - 16, 27, 32, 60, 39, 106, 124, 114, 112, 118, - 120, 108, 108, 100, 82, 66, 60, 78, 52, 17, - 7, 8, 9, 62, 58, 52, 64, 58, 46, 36, - 40, 1, 6, 3, 59, 49, 85, 23, 40, 36, - 22, 0, 10, 11, 21, 35, 71, 23, 78, 42, - 30, 16, 10, 13, 35, 43, 103, 10, 70, 56, - 50, 40, 18, 10, 1, 19, 49, 13, 70, 64, - 42, 8, 12, 15, 33, 63, 10, 114, 96, 88, - 70, 46, 10, 11, 29, 41, 124, 81, 81, 43, - 95, 87, 65, 87, 79, 73, 81, 83, 89, 61, - 59, 53, 55, 55, 43, 9, 31, 39, 11, 6, - 8, 4, 24, 24, 24, 14, 42, 34, 26, 28, - 20, 42, 32, 16, 42, 36, 26, 20, 26, 0, - 1, 9, 10, 13, 36, 62, 38, 20, 56, 48, - 24, 44, 58, 38, 50, 24, 10, 34, 102, 96, - 102, 100, 104, 124, 124, 124, 124, 124, 124, 124, - 124, 124, 64, 124, 124, 124, 124, 124, 124, 102, - 70, 68, 12, 33, 21, 61, 113, 120, 120, 124, - 108, 102, 100, 76, 80, 58, 58, 40, 32, 28, - 7, 17, 4, 0, 7, 74, 82, 74, 56, 74, - 72, 42, 56, 62, 38, 8, 16, 0, 47, 44, - 22, 6, 29, 13, 9, 9, 3, 5, 13, 7, - 9, 3, 8, 7, 1, 2, 6, 124, 124, 124, - 124, 120, 110, 96, 62, 0, 3, 58, 44, 38, - 32, 18, 8, 4, 3, 23, 41, 33, 23, 33, - 27, 13, 19, 35, 11, 3, 6, 3, 1, 8, - 8, 124, 124, 124, 120, 110, 100, 78, 46, 7, - }, - - { - /* Context Tables for P, SP, B Slices :: cabac_init_idc = 0, qp = 3 */ - - 124, 18, 21, 124, 18, 21, 115, 71, 24, 20, - 22, 52, 114, 120, 108, 28, 95, 12, 23, 2, - 2, 24, 17, 20, 7, 38, 116, 15, 59, 83, - 109, 73, 7, 23, 2, 2, 41, 55, 8, 34, - 9, 31, 59, 14, 9, 43, 49, 10, 23, 57, - 18, 11, 33, 49, 3, 19, 19, 31, 13, 10, - 44, 0, 0, 0, 35, 45, 67, 13, 40, 2, - 36, 27, 63, 113, 57, 65, 2, 25, 53, 33, - 83, 47, 69, 53, 115, 53, 49, 61, 83, 36, - 1, 14, 55, 19, 53, 43, 115, 18, 4, 6, - 13, 32, 9, 9, 45, 41, 25, 21, 23, 18, - 26, 7, 26, 40, 33, 0, 11, 7, 12, 23, - 52, 1, 4, 52, 70, 74, 64, 50, 55, 15, - 17, 30, 26, 69, 18, 20, 20, 6, 14, 14, - 6, 8, 4, 12, 7, 12, 44, 24, 13, 1, - 4, 1, 24, 42, 38, 22, 26, 8, 10, 8, - 52, 38, 36, 27, 6, 13, 66, 46, 38, 28, - 34, 38, 24, 32, 48, 2, 32, 18, 18, 10, - 0, 22, 10, 18, 20, 14, 32, 50, 18, 35, - 14, 27, 30, 56, 39, 104, 124, 110, 108, 114, - 116, 104, 104, 96, 78, 64, 58, 74, 48, 19, - 7, 8, 9, 60, 56, 50, 60, 56, 42, 34, - 38, 3, 6, 3, 59, 49, 85, 21, 40, 36, - 22, 0, 10, 11, 21, 33, 69, 23, 78, 42, - 30, 16, 12, 11, 33, 41, 99, 10, 70, 56, - 50, 40, 20, 10, 1, 19, 49, 13, 70, 64, - 40, 8, 12, 15, 33, 61, 10, 114, 96, 86, - 68, 46, 10, 11, 27, 39, 124, 79, 79, 43, - 93, 85, 63, 83, 77, 71, 79, 79, 87, 61, - 57, 53, 55, 51, 43, 9, 31, 39, 11, 4, - 8, 4, 22, 22, 22, 12, 42, 32, 26, 26, - 20, 42, 30, 16, 40, 36, 24, 20, 24, 0, - 3, 9, 10, 15, 36, 62, 36, 20, 54, 48, - 24, 42, 56, 36, 48, 22, 10, 32, 100, 94, - 102, 98, 102, 122, 124, 124, 124, 124, 124, 124, - 124, 124, 62, 124, 124, 124, 124, 124, 124, 98, - 68, 66, 12, 31, 21, 59, 109, 116, 116, 124, - 104, 98, 96, 74, 76, 54, 56, 38, 30, 24, - 9, 19, 4, 1, 9, 72, 78, 72, 52, 70, - 68, 38, 54, 58, 34, 6, 12, 3, 49, 42, - 20, 4, 29, 11, 9, 9, 1, 5, 11, 5, - 7, 1, 10, 5, 0, 6, 8, 124, 124, 124, - 124, 116, 104, 90, 56, 3, 1, 60, 46, 40, - 32, 20, 10, 4, 1, 21, 41, 31, 23, 31, - 25, 11, 19, 35, 11, 3, 6, 1, 0, 8, - 8, 124, 124, 124, 114, 104, 92, 70, 38, 11, - }, - - { - /* Context Tables for P, SP, B Slices :: cabac_init_idc = 0, qp = 4 */ - - 124, 18, 21, 124, 18, 21, 113, 69, 24, 20, - 22, 50, 112, 116, 108, 28, 89, 10, 21, 2, - 2, 22, 17, 18, 9, 36, 112, 19, 61, 85, - 103, 71, 7, 21, 2, 2, 41, 53, 8, 32, - 9, 31, 59, 14, 9, 41, 49, 10, 23, 55, - 16, 13, 33, 49, 3, 17, 19, 29, 13, 10, - 44, 0, 0, 0, 33, 47, 67, 13, 38, 2, - 36, 27, 63, 111, 55, 61, 4, 23, 51, 31, - 81, 43, 67, 51, 111, 53, 47, 61, 81, 36, - 1, 14, 53, 19, 51, 43, 113, 16, 4, 6, - 13, 32, 9, 9, 45, 41, 25, 21, 23, 18, - 24, 7, 26, 40, 33, 0, 11, 7, 12, 23, - 52, 3, 4, 52, 68, 72, 62, 48, 53, 15, - 17, 28, 24, 69, 16, 20, 18, 6, 14, 14, - 8, 10, 4, 10, 7, 10, 42, 22, 15, 1, - 4, 3, 24, 40, 36, 20, 26, 10, 10, 8, - 50, 36, 34, 27, 6, 15, 66, 46, 38, 28, - 34, 38, 24, 32, 46, 2, 32, 18, 18, 10, - 1, 22, 10, 18, 20, 14, 32, 48, 16, 35, - 14, 27, 28, 54, 39, 100, 124, 106, 104, 110, - 112, 100, 100, 92, 74, 60, 54, 68, 44, 21, - 7, 6, 11, 58, 54, 48, 58, 52, 40, 32, - 34, 3, 4, 5, 59, 49, 83, 21, 40, 36, - 22, 0, 10, 11, 21, 33, 67, 21, 78, 42, - 30, 16, 12, 11, 33, 41, 95, 10, 70, 56, - 50, 40, 20, 10, 1, 19, 47, 13, 70, 62, - 40, 8, 12, 15, 33, 61, 10, 112, 94, 84, - 66, 46, 10, 11, 27, 39, 124, 77, 77, 41, - 89, 83, 61, 81, 73, 69, 75, 77, 83, 59, - 57, 51, 53, 49, 41, 11, 31, 37, 11, 4, - 6, 2, 20, 20, 20, 10, 40, 32, 26, 26, - 18, 40, 30, 16, 38, 34, 24, 18, 22, 1, - 3, 9, 10, 15, 34, 60, 34, 20, 52, 46, - 24, 40, 54, 36, 48, 20, 8, 28, 98, 94, - 100, 96, 98, 120, 124, 124, 124, 124, 124, 124, - 124, 124, 58, 124, 124, 124, 124, 124, 124, 94, - 66, 62, 12, 29, 19, 57, 105, 114, 112, 120, - 102, 94, 92, 70, 72, 52, 52, 34, 26, 22, - 11, 21, 2, 1, 11, 68, 76, 68, 50, 66, - 64, 36, 50, 54, 32, 4, 10, 5, 49, 40, - 20, 2, 29, 11, 7, 7, 1, 3, 9, 5, - 5, 0, 12, 3, 2, 8, 10, 124, 124, 124, - 122, 110, 98, 84, 50, 9, 1, 60, 46, 40, - 34, 20, 10, 6, 1, 21, 39, 31, 21, 31, - 23, 9, 19, 33, 9, 1, 6, 1, 2, 8, - 8, 124, 124, 122, 108, 98, 84, 62, 32, 17, - }, - - { - /* Context Tables for P, SP, B Slices :: cabac_init_idc = 0, qp = 5 */ - - 124, 18, 21, 124, 18, 21, 109, 65, 24, 20, - 20, 46, 108, 114, 108, 28, 85, 10, 19, 4, - 2, 22, 15, 16, 11, 36, 108, 23, 63, 85, - 97, 67, 7, 19, 4, 2, 41, 51, 8, 32, - 9, 31, 57, 14, 11, 41, 49, 10, 23, 53, - 16, 13, 33, 49, 1, 17, 17, 29, 11, 10, - 44, 0, 0, 0, 33, 47, 67, 11, 36, 2, - 36, 25, 63, 107, 51, 59, 8, 19, 47, 29, - 79, 41, 65, 49, 107, 51, 47, 59, 79, 36, - 1, 14, 53, 19, 51, 41, 109, 16, 4, 6, - 13, 32, 9, 7, 43, 41, 25, 21, 21, 18, - 24, 7, 26, 40, 31, 0, 9, 7, 12, 23, - 50, 3, 4, 50, 66, 72, 60, 46, 51, 13, - 17, 26, 24, 67, 16, 20, 18, 6, 14, 14, - 10, 10, 4, 10, 7, 10, 40, 22, 17, 1, - 4, 3, 22, 38, 36, 20, 24, 10, 10, 8, - 48, 36, 32, 27, 6, 15, 64, 46, 38, 28, - 34, 38, 24, 32, 46, 2, 32, 18, 18, 10, - 1, 22, 10, 16, 20, 14, 30, 46, 16, 35, - 12, 27, 26, 52, 39, 98, 122, 104, 102, 106, - 108, 96, 96, 88, 70, 56, 50, 64, 42, 23, - 7, 6, 11, 56, 52, 46, 56, 50, 36, 30, - 32, 5, 4, 5, 59, 49, 83, 21, 40, 36, - 22, 0, 10, 9, 19, 31, 65, 21, 78, 42, - 30, 16, 12, 9, 31, 39, 91, 10, 70, 56, - 50, 40, 20, 10, 1, 19, 45, 13, 72, 62, - 38, 8, 12, 15, 33, 59, 10, 112, 92, 82, - 64, 46, 10, 11, 27, 37, 124, 75, 75, 39, - 87, 81, 59, 79, 71, 67, 73, 73, 79, 57, - 55, 51, 53, 47, 41, 11, 29, 35, 11, 2, - 6, 2, 20, 18, 18, 8, 38, 30, 26, 24, - 18, 40, 30, 16, 36, 32, 24, 18, 20, 1, - 3, 9, 10, 15, 32, 60, 34, 20, 50, 44, - 24, 38, 52, 34, 46, 18, 6, 24, 96, 92, - 100, 94, 96, 116, 124, 124, 124, 124, 124, 124, - 124, 124, 56, 124, 124, 124, 124, 124, 122, 90, - 64, 60, 12, 27, 19, 55, 101, 110, 110, 116, - 98, 90, 88, 68, 68, 50, 48, 32, 22, 18, - 13, 23, 2, 1, 13, 66, 72, 64, 46, 64, - 62, 32, 48, 52, 28, 2, 8, 7, 51, 40, - 18, 0, 27, 9, 7, 7, 0, 1, 7, 3, - 3, 2, 16, 1, 4, 10, 14, 124, 124, 124, - 116, 106, 92, 78, 44, 13, 1, 62, 48, 42, - 34, 22, 10, 6, 0, 19, 39, 31, 19, 29, - 21, 7, 17, 31, 9, 1, 6, 0, 4, 8, - 8, 124, 124, 116, 102, 92, 78, 54, 24, 23, - }, - - { - /* Context Tables for P, SP, B Slices :: cabac_init_idc = 0, qp = 6 */ - - 124, 18, 23, 124, 18, 23, 105, 63, 26, 20, - 20, 44, 106, 112, 108, 28, 81, 10, 19, 6, - 2, 20, 15, 14, 13, 34, 106, 25, 65, 87, - 91, 65, 7, 19, 6, 2, 39, 49, 10, 30, - 7, 29, 55, 12, 11, 41, 49, 10, 21, 53, - 16, 13, 31, 49, 1, 17, 17, 29, 11, 10, - 44, 0, 0, 0, 31, 47, 67, 11, 36, 0, - 36, 25, 61, 103, 47, 55, 10, 15, 45, 27, - 75, 39, 63, 49, 105, 51, 47, 59, 79, 38, - 1, 14, 51, 17, 49, 41, 107, 16, 2, 4, - 15, 32, 9, 7, 43, 41, 23, 21, 21, 18, - 24, 5, 26, 38, 31, 0, 9, 7, 12, 23, - 48, 3, 4, 48, 64, 70, 60, 46, 51, 13, - 17, 26, 22, 67, 14, 20, 18, 6, 14, 14, - 10, 10, 4, 10, 5, 10, 38, 22, 17, 3, - 4, 5, 22, 36, 36, 20, 22, 10, 10, 8, - 44, 36, 30, 27, 6, 17, 62, 46, 36, 28, - 34, 38, 24, 32, 46, 2, 30, 18, 16, 10, - 1, 20, 8, 16, 18, 12, 28, 44, 14, 35, - 12, 25, 24, 48, 39, 94, 118, 100, 98, 102, - 104, 92, 92, 84, 66, 54, 48, 60, 38, 25, - 7, 6, 13, 54, 50, 44, 52, 46, 34, 28, - 30, 7, 2, 7, 59, 49, 81, 19, 40, 36, - 22, 2, 10, 9, 19, 31, 63, 19, 76, 42, - 30, 16, 14, 9, 29, 37, 87, 10, 72, 56, - 50, 40, 22, 10, 1, 17, 45, 13, 72, 62, - 38, 8, 12, 13, 31, 57, 10, 110, 92, 80, - 64, 46, 10, 9, 25, 37, 124, 75, 73, 39, - 85, 79, 57, 75, 69, 65, 71, 71, 77, 57, - 53, 51, 51, 43, 41, 13, 29, 35, 11, 2, - 4, 2, 18, 16, 16, 6, 38, 30, 26, 24, - 16, 38, 28, 16, 36, 32, 22, 18, 20, 1, - 5, 9, 10, 17, 32, 58, 32, 18, 48, 44, - 26, 38, 50, 34, 46, 18, 6, 22, 94, 90, - 98, 92, 94, 114, 124, 124, 124, 124, 124, 124, - 124, 122, 54, 124, 124, 124, 124, 124, 118, 86, - 62, 58, 12, 25, 19, 51, 95, 106, 106, 112, - 94, 86, 84, 64, 64, 46, 46, 30, 20, 16, - 15, 25, 0, 3, 15, 64, 70, 62, 42, 60, - 58, 30, 44, 48, 26, 1, 4, 11, 53, 38, - 16, 1, 27, 9, 7, 5, 0, 1, 3, 1, - 1, 4, 18, 2, 6, 14, 16, 124, 124, 120, - 112, 100, 88, 72, 40, 17, 0, 62, 48, 42, - 34, 24, 12, 6, 0, 19, 39, 29, 19, 29, - 19, 5, 17, 31, 7, 0, 6, 0, 6, 8, - 8, 124, 124, 112, 96, 84, 70, 48, 18, 27, - }, - - { - /* Context Tables for P, SP, B Slices :: cabac_init_idc = 0, qp = 7 */ - - 124, 18, 23, 124, 18, 23, 101, 59, 26, 20, - 18, 40, 102, 108, 108, 28, 75, 8, 17, 6, - 2, 18, 15, 12, 15, 34, 102, 29, 67, 87, - 85, 63, 7, 17, 6, 2, 39, 47, 10, 30, - 7, 29, 55, 12, 13, 39, 49, 10, 21, 51, - 14, 13, 31, 49, 0, 15, 17, 27, 9, 10, - 44, 0, 0, 0, 31, 47, 67, 9, 34, 0, - 36, 25, 61, 101, 43, 53, 14, 11, 43, 25, - 73, 35, 61, 47, 101, 49, 45, 57, 77, 38, - 1, 14, 51, 17, 49, 39, 103, 14, 2, 4, - 15, 32, 9, 7, 41, 41, 23, 21, 19, 18, - 22, 5, 26, 38, 31, 0, 9, 7, 12, 23, - 48, 3, 4, 48, 62, 68, 58, 44, 49, 11, - 17, 24, 22, 65, 14, 20, 16, 6, 14, 14, - 12, 12, 4, 10, 5, 10, 36, 22, 19, 3, - 4, 5, 20, 34, 34, 20, 22, 12, 10, 8, - 42, 34, 28, 27, 6, 17, 62, 46, 36, 28, - 34, 38, 24, 32, 46, 2, 30, 18, 16, 10, - 1, 20, 8, 14, 18, 12, 28, 42, 14, 35, - 10, 25, 22, 46, 39, 92, 114, 96, 94, 98, - 100, 88, 88, 80, 62, 50, 44, 54, 34, 27, - 7, 4, 13, 52, 48, 42, 50, 44, 30, 26, - 28, 7, 2, 7, 59, 49, 81, 19, 40, 36, - 22, 2, 10, 9, 19, 29, 61, 19, 76, 42, - 30, 16, 14, 7, 27, 37, 83, 10, 72, 56, - 50, 40, 22, 10, 1, 17, 43, 13, 72, 60, - 36, 8, 12, 13, 31, 57, 10, 110, 90, 78, - 62, 46, 10, 9, 25, 35, 124, 73, 71, 37, - 81, 77, 55, 73, 65, 63, 67, 67, 73, 55, - 51, 49, 51, 41, 39, 13, 29, 33, 11, 0, - 4, 0, 16, 14, 14, 4, 36, 28, 26, 22, - 16, 38, 28, 16, 34, 30, 22, 16, 18, 1, - 5, 9, 10, 17, 30, 58, 30, 18, 46, 42, - 26, 36, 48, 32, 44, 16, 4, 18, 92, 90, - 98, 90, 90, 110, 124, 124, 124, 124, 124, 124, - 124, 118, 50, 124, 124, 124, 124, 124, 112, 82, - 60, 56, 12, 23, 17, 49, 91, 104, 102, 108, - 92, 82, 80, 62, 60, 44, 42, 26, 16, 12, - 17, 27, 0, 3, 17, 60, 66, 58, 40, 56, - 54, 26, 42, 44, 22, 3, 2, 13, 53, 36, - 16, 3, 27, 7, 5, 5, 2, 0, 1, 0, - 0, 6, 20, 4, 8, 16, 18, 124, 122, 116, - 106, 96, 82, 66, 34, 21, 0, 64, 50, 44, - 36, 26, 12, 8, 2, 17, 37, 29, 17, 27, - 17, 3, 17, 29, 7, 0, 6, 2, 8, 8, - 8, 124, 124, 106, 90, 78, 62, 40, 10, 33, - }, - - { - /* Context Tables for P, SP, B Slices :: cabac_init_idc = 0, qp = 8 */ - - 124, 16, 23, 124, 16, 23, 99, 57, 26, 20, - 18, 38, 100, 106, 108, 28, 71, 8, 15, 8, - 2, 16, 15, 10, 19, 32, 98, 33, 69, 89, - 81, 61, 7, 15, 8, 2, 39, 45, 10, 28, - 7, 29, 53, 10, 13, 39, 51, 10, 21, 51, - 14, 15, 31, 49, 0, 15, 17, 27, 9, 10, - 44, 0, 0, 0, 29, 49, 67, 9, 32, 0, - 36, 25, 61, 97, 41, 49, 16, 9, 41, 23, - 71, 33, 59, 45, 97, 49, 45, 57, 75, 38, - 1, 14, 49, 17, 47, 39, 101, 14, 0, 2, - 17, 32, 9, 7, 41, 41, 23, 21, 19, 16, - 22, 5, 26, 36, 31, 0, 9, 7, 10, 23, - 46, 5, 4, 46, 58, 66, 56, 42, 49, 11, - 17, 22, 20, 65, 12, 18, 16, 6, 14, 14, - 14, 12, 4, 8, 5, 8, 34, 20, 21, 3, - 4, 7, 20, 32, 34, 18, 20, 12, 10, 8, - 38, 34, 26, 27, 6, 19, 60, 44, 36, 28, - 34, 36, 22, 32, 44, 0, 28, 18, 16, 8, - 3, 18, 6, 14, 16, 10, 26, 40, 12, 35, - 10, 25, 20, 42, 39, 88, 110, 92, 90, 94, - 94, 84, 84, 76, 58, 46, 40, 50, 30, 29, - 7, 4, 15, 50, 44, 38, 46, 40, 28, 22, - 24, 9, 0, 9, 59, 49, 79, 19, 40, 36, - 22, 2, 10, 9, 19, 29, 59, 17, 76, 42, - 30, 16, 14, 7, 27, 35, 81, 10, 72, 56, - 50, 38, 22, 10, 1, 17, 43, 13, 72, 60, - 36, 8, 12, 13, 31, 55, 10, 108, 88, 76, - 60, 44, 10, 9, 25, 35, 124, 71, 69, 37, - 79, 75, 55, 71, 63, 61, 65, 65, 71, 55, - 51, 49, 49, 39, 39, 15, 29, 33, 11, 0, - 2, 0, 14, 12, 10, 2, 34, 28, 26, 22, - 14, 36, 26, 14, 32, 28, 20, 16, 16, 3, - 7, 9, 10, 19, 28, 56, 28, 18, 44, 40, - 26, 34, 46, 32, 44, 14, 2, 14, 90, 88, - 96, 86, 88, 108, 124, 124, 124, 124, 124, 124, - 124, 112, 48, 124, 124, 124, 124, 122, 108, 78, - 56, 52, 12, 23, 17, 47, 87, 100, 98, 104, - 88, 76, 76, 58, 56, 40, 38, 24, 12, 10, - 19, 29, 1, 5, 19, 58, 64, 54, 36, 52, - 50, 24, 38, 40, 20, 5, 1, 17, 55, 34, - 14, 5, 27, 7, 5, 3, 2, 0, 0, 0, - 2, 8, 22, 6, 10, 18, 20, 122, 118, 112, - 102, 90, 76, 60, 28, 27, 0, 64, 50, 44, - 36, 26, 12, 8, 2, 17, 37, 29, 17, 27, - 15, 1, 17, 29, 5, 2, 6, 2, 8, 8, - 6, 124, 122, 102, 84, 72, 54, 32, 4, 39, - }, - - { - /* Context Tables for P, SP, B Slices :: cabac_init_idc = 0, qp = 9 */ - - 124, 16, 23, 124, 16, 23, 95, 55, 28, 20, - 18, 36, 98, 104, 108, 28, 67, 8, 13, 10, - 2, 16, 13, 8, 21, 30, 94, 35, 71, 91, - 75, 57, 7, 13, 10, 2, 37, 43, 12, 26, - 7, 27, 51, 10, 13, 39, 51, 10, 21, 49, - 14, 15, 31, 49, 0, 15, 15, 27, 9, 10, - 44, 0, 0, 0, 27, 49, 67, 9, 30, 0, - 36, 23, 61, 93, 37, 45, 18, 5, 37, 21, - 67, 31, 55, 43, 93, 49, 45, 57, 73, 38, - 1, 14, 47, 17, 45, 37, 99, 14, 0, 2, - 17, 32, 9, 5, 39, 39, 21, 21, 19, 16, - 22, 5, 26, 36, 29, 0, 7, 7, 10, 21, - 44, 5, 4, 44, 56, 66, 54, 40, 47, 11, - 15, 20, 18, 65, 10, 18, 16, 8, 14, 14, - 16, 12, 4, 8, 3, 8, 34, 20, 23, 3, - 4, 9, 20, 30, 34, 18, 18, 12, 10, 8, - 36, 34, 26, 27, 6, 21, 58, 44, 36, 28, - 34, 36, 22, 32, 44, 0, 28, 18, 16, 8, - 3, 18, 6, 14, 16, 10, 24, 40, 12, 35, - 10, 25, 18, 40, 39, 84, 108, 90, 88, 90, - 90, 82, 82, 72, 54, 44, 38, 46, 28, 31, - 7, 4, 17, 48, 42, 36, 44, 38, 26, 20, - 22, 11, 1, 11, 59, 47, 77, 17, 42, 36, - 22, 2, 12, 7, 17, 27, 57, 15, 76, 42, - 30, 16, 16, 7, 25, 33, 77, 10, 72, 56, - 50, 38, 24, 10, 1, 17, 41, 13, 74, 60, - 36, 8, 14, 13, 31, 53, 10, 108, 88, 76, - 58, 44, 10, 9, 23, 33, 124, 69, 67, 35, - 77, 71, 53, 67, 61, 57, 63, 63, 67, 53, - 49, 49, 47, 35, 39, 17, 27, 31, 11, 0, - 0, 0, 14, 10, 8, 0, 34, 28, 26, 22, - 14, 34, 26, 14, 30, 28, 20, 16, 14, 3, - 7, 7, 12, 19, 28, 54, 28, 18, 44, 40, - 26, 32, 44, 32, 44, 12, 2, 12, 90, 86, - 94, 84, 86, 106, 120, 120, 124, 124, 124, 124, - 124, 108, 46, 124, 124, 124, 124, 116, 104, 76, - 54, 50, 12, 21, 17, 45, 83, 96, 96, 100, - 84, 72, 74, 56, 52, 38, 36, 22, 10, 8, - 21, 29, 1, 5, 21, 56, 62, 52, 32, 50, - 48, 22, 36, 38, 18, 7, 3, 19, 57, 34, - 12, 5, 25, 7, 5, 1, 4, 2, 2, 2, - 4, 10, 26, 8, 12, 22, 24, 120, 116, 108, - 98, 84, 70, 54, 22, 31, 2, 64, 50, 46, - 36, 28, 14, 8, 4, 15, 37, 27, 15, 27, - 13, 2, 15, 27, 3, 4, 6, 4, 10, 8, - 6, 124, 118, 98, 80, 66, 48, 24, 1, 43, - }, - - { - /* Context Tables for P, SP, B Slices :: cabac_init_idc = 0, qp = 10 */ - - 124, 16, 23, 124, 16, 23, 91, 51, 28, 20, - 16, 32, 94, 100, 108, 28, 61, 6, 11, 10, - 2, 14, 13, 6, 23, 30, 90, 39, 73, 91, - 69, 55, 7, 11, 10, 2, 37, 41, 12, 26, - 7, 27, 51, 10, 15, 37, 51, 10, 21, 47, - 12, 15, 31, 49, 2, 13, 15, 25, 7, 10, - 44, 0, 0, 0, 27, 49, 67, 7, 28, 0, - 36, 23, 61, 91, 33, 43, 22, 1, 35, 19, - 65, 27, 53, 41, 89, 47, 43, 55, 71, 38, - 1, 14, 47, 17, 45, 37, 95, 12, 0, 2, - 17, 32, 9, 5, 39, 39, 21, 21, 17, 16, - 20, 5, 26, 36, 29, 0, 7, 7, 10, 21, - 44, 5, 4, 44, 54, 64, 52, 38, 45, 9, - 15, 18, 18, 63, 10, 18, 14, 8, 14, 14, - 18, 14, 4, 8, 3, 8, 32, 20, 25, 3, - 4, 9, 18, 28, 32, 18, 18, 14, 10, 8, - 34, 32, 24, 27, 6, 21, 58, 44, 36, 28, - 34, 36, 22, 32, 44, 0, 28, 18, 16, 8, - 3, 18, 6, 12, 16, 10, 24, 38, 10, 35, - 8, 25, 16, 38, 39, 82, 104, 86, 84, 86, - 86, 78, 78, 68, 50, 40, 34, 40, 24, 33, - 7, 2, 17, 46, 40, 34, 42, 34, 22, 18, - 20, 11, 1, 11, 59, 47, 77, 17, 42, 36, - 22, 2, 12, 7, 17, 27, 55, 15, 76, 42, - 30, 16, 16, 5, 23, 33, 73, 10, 72, 56, - 50, 38, 24, 10, 1, 17, 39, 13, 74, 58, - 34, 8, 14, 13, 31, 53, 10, 106, 86, 74, - 56, 44, 10, 9, 23, 33, 124, 67, 65, 33, - 73, 69, 51, 65, 57, 55, 59, 59, 63, 51, - 47, 47, 47, 33, 37, 17, 27, 29, 11, 1, - 0, 1, 12, 8, 6, 1, 32, 26, 26, 20, - 12, 34, 26, 14, 28, 26, 20, 14, 12, 3, - 7, 7, 12, 19, 26, 54, 26, 18, 42, 38, - 26, 30, 42, 30, 42, 10, 0, 8, 88, 86, - 94, 82, 82, 102, 116, 116, 124, 124, 124, 124, - 124, 104, 42, 118, 124, 118, 124, 112, 98, 72, - 52, 48, 12, 19, 15, 43, 79, 94, 92, 96, - 82, 68, 70, 52, 48, 36, 32, 18, 6, 4, - 23, 31, 3, 5, 23, 52, 58, 48, 30, 46, - 44, 18, 32, 34, 14, 9, 5, 21, 57, 32, - 12, 7, 25, 5, 3, 1, 4, 4, 4, 4, - 6, 12, 28, 10, 14, 24, 26, 120, 112, 104, - 92, 80, 64, 48, 16, 35, 2, 66, 52, 46, - 38, 30, 14, 10, 4, 15, 35, 27, 13, 25, - 11, 4, 15, 25, 3, 4, 6, 4, 12, 8, - 6, 124, 114, 92, 74, 60, 40, 16, 9, 49, - }, - - { - /* Context Tables for P, SP, B Slices :: cabac_init_idc = 0, qp = 11 */ - - 124, 16, 25, 124, 16, 25, 87, 49, 30, 20, - 16, 30, 92, 98, 108, 28, 57, 6, 11, 12, - 2, 12, 13, 4, 25, 28, 88, 41, 75, 93, - 63, 53, 7, 11, 12, 2, 35, 39, 14, 24, - 5, 25, 49, 8, 15, 37, 51, 10, 19, 47, - 12, 15, 29, 49, 2, 13, 15, 25, 7, 10, - 44, 0, 0, 0, 25, 49, 67, 7, 28, 1, - 36, 23, 59, 87, 29, 39, 24, 2, 33, 17, - 61, 25, 51, 41, 87, 47, 43, 55, 71, 40, - 1, 14, 45, 15, 43, 35, 93, 12, 1, 0, - 19, 32, 9, 5, 37, 39, 19, 21, 17, 16, - 20, 3, 26, 34, 29, 0, 7, 7, 10, 21, - 42, 5, 4, 42, 52, 62, 52, 38, 45, 9, - 15, 18, 16, 63, 8, 18, 14, 8, 14, 14, - 18, 14, 4, 8, 1, 8, 30, 20, 25, 5, - 4, 11, 18, 26, 32, 18, 16, 14, 10, 8, - 30, 32, 22, 27, 6, 23, 56, 44, 34, 28, - 34, 36, 22, 32, 44, 0, 26, 18, 14, 8, - 3, 16, 4, 12, 14, 8, 22, 36, 10, 35, - 8, 23, 14, 34, 39, 78, 100, 82, 80, 82, - 82, 74, 74, 64, 46, 38, 32, 36, 20, 35, - 7, 2, 19, 44, 38, 32, 38, 32, 20, 16, - 18, 13, 3, 13, 59, 47, 75, 15, 42, 36, - 22, 4, 12, 7, 17, 25, 53, 13, 74, 42, - 30, 16, 18, 5, 21, 31, 69, 10, 74, 56, - 50, 38, 26, 10, 1, 15, 39, 13, 74, 58, - 34, 8, 14, 11, 29, 51, 10, 106, 86, 72, - 56, 44, 10, 7, 21, 31, 124, 67, 63, 33, - 71, 67, 49, 61, 55, 53, 57, 57, 61, 51, - 45, 47, 45, 29, 37, 19, 27, 29, 11, 1, - 1, 1, 10, 6, 4, 3, 32, 26, 26, 20, - 12, 32, 24, 14, 28, 26, 18, 14, 12, 3, - 9, 7, 12, 21, 26, 52, 24, 16, 40, 38, - 28, 30, 40, 30, 42, 10, 0, 6, 86, 84, - 92, 80, 80, 100, 112, 112, 122, 120, 124, 124, - 120, 98, 40, 114, 124, 112, 124, 106, 94, 68, - 50, 46, 12, 17, 15, 39, 73, 90, 88, 92, - 78, 64, 66, 50, 44, 32, 30, 16, 4, 2, - 25, 33, 3, 7, 25, 50, 56, 46, 26, 42, - 40, 16, 30, 30, 12, 13, 9, 25, 59, 30, - 10, 9, 25, 5, 3, 0, 6, 4, 8, 6, - 8, 14, 30, 14, 16, 28, 28, 118, 110, 100, - 88, 74, 60, 42, 12, 39, 4, 66, 52, 48, - 38, 32, 16, 10, 6, 13, 35, 25, 13, 25, - 9, 6, 15, 25, 1, 6, 6, 6, 14, 8, - 6, 124, 110, 88, 68, 52, 32, 10, 15, 53, - }, - - { - /* Context Tables for P, SP, B Slices :: cabac_init_idc = 0, qp = 12 */ - - 124, 16, 25, 124, 16, 25, 85, 45, 30, 20, - 14, 26, 88, 96, 108, 28, 53, 6, 9, 14, - 2, 10, 13, 2, 27, 28, 84, 45, 77, 93, - 57, 51, 7, 9, 14, 2, 35, 37, 14, 24, - 5, 25, 47, 8, 17, 37, 51, 10, 19, 45, - 12, 17, 29, 49, 4, 13, 15, 25, 5, 10, - 44, 0, 0, 0, 25, 51, 67, 5, 26, 1, - 36, 23, 59, 83, 27, 37, 28, 4, 31, 15, - 59, 23, 49, 39, 83, 45, 43, 53, 69, 40, - 1, 14, 45, 15, 43, 35, 89, 12, 1, 0, - 19, 32, 9, 5, 37, 39, 19, 21, 15, 16, - 20, 3, 26, 34, 29, 0, 7, 7, 10, 21, - 40, 7, 4, 40, 50, 60, 50, 36, 43, 7, - 15, 16, 16, 61, 8, 18, 14, 8, 14, 14, - 20, 14, 4, 6, 1, 6, 28, 18, 27, 5, - 4, 11, 16, 24, 32, 16, 14, 14, 10, 8, - 28, 32, 20, 27, 6, 23, 54, 44, 34, 28, - 34, 36, 22, 32, 42, 0, 26, 18, 14, 8, - 5, 16, 4, 10, 14, 8, 20, 34, 8, 35, - 6, 23, 12, 32, 39, 76, 96, 78, 76, 78, - 78, 70, 70, 60, 42, 34, 28, 32, 16, 37, - 7, 2, 19, 42, 36, 30, 36, 28, 16, 14, - 14, 15, 3, 13, 59, 47, 75, 15, 42, 36, - 22, 4, 12, 7, 17, 25, 51, 13, 74, 42, - 30, 16, 18, 3, 21, 29, 65, 10, 74, 56, - 50, 38, 26, 10, 1, 15, 37, 13, 74, 58, - 32, 8, 14, 11, 29, 49, 10, 104, 84, 70, - 54, 44, 10, 7, 21, 31, 124, 65, 61, 31, - 69, 65, 47, 59, 53, 51, 55, 53, 57, 49, - 45, 47, 45, 27, 37, 19, 27, 27, 11, 3, - 1, 1, 8, 4, 2, 5, 30, 24, 26, 18, - 10, 32, 24, 14, 26, 24, 18, 14, 10, 5, - 9, 7, 12, 21, 24, 52, 22, 16, 38, 36, - 28, 28, 38, 28, 40, 8, 1, 2, 84, 82, - 92, 78, 78, 96, 108, 108, 118, 114, 124, 124, - 114, 94, 38, 108, 124, 106, 116, 100, 88, 64, - 48, 42, 12, 15, 15, 37, 69, 86, 84, 88, - 74, 60, 62, 46, 40, 30, 26, 14, 0, 1, - 27, 35, 5, 7, 27, 48, 52, 42, 22, 38, - 36, 12, 26, 26, 8, 15, 11, 27, 61, 28, - 8, 11, 25, 3, 3, 0, 6, 6, 10, 6, - 10, 16, 32, 16, 18, 30, 30, 118, 106, 96, - 82, 70, 54, 36, 6, 45, 4, 68, 54, 48, - 38, 32, 16, 10, 6, 13, 35, 25, 11, 23, - 7, 8, 15, 23, 1, 6, 6, 6, 16, 8, - 6, 122, 106, 82, 62, 46, 24, 2, 23, 59, - }, - - { - /* Context Tables for P, SP, B Slices :: cabac_init_idc = 0, qp = 13 */ - - 124, 16, 25, 124, 16, 25, 81, 43, 30, 20, - 14, 24, 86, 92, 108, 28, 47, 4, 7, 14, - 2, 10, 11, 0, 29, 26, 80, 49, 79, 95, - 51, 47, 7, 7, 14, 2, 35, 35, 14, 22, - 5, 25, 47, 8, 17, 35, 51, 10, 19, 43, - 10, 17, 29, 49, 4, 11, 13, 23, 5, 10, - 44, 0, 0, 0, 23, 51, 67, 5, 24, 1, - 36, 21, 59, 81, 23, 33, 30, 8, 27, 13, - 57, 19, 47, 37, 79, 45, 41, 53, 67, 40, - 1, 14, 43, 15, 41, 33, 87, 10, 1, 0, - 19, 32, 9, 3, 35, 39, 19, 21, 15, 16, - 18, 3, 26, 34, 27, 0, 5, 7, 10, 21, - 40, 7, 4, 40, 48, 60, 48, 34, 41, 7, - 15, 14, 14, 61, 6, 18, 12, 8, 14, 14, - 22, 16, 4, 6, 1, 6, 26, 18, 29, 5, - 4, 13, 16, 22, 30, 16, 14, 16, 10, 8, - 26, 30, 18, 27, 6, 25, 54, 44, 34, 28, - 34, 36, 22, 32, 42, 0, 26, 18, 14, 8, - 5, 16, 4, 10, 14, 8, 20, 32, 8, 35, - 6, 23, 10, 30, 39, 72, 92, 76, 74, 74, - 74, 66, 66, 56, 38, 30, 24, 26, 14, 39, - 7, 0, 21, 40, 34, 28, 34, 26, 14, 12, - 12, 15, 5, 15, 59, 47, 73, 15, 42, 36, - 22, 4, 12, 5, 15, 23, 49, 11, 74, 42, - 30, 16, 18, 3, 19, 29, 61, 10, 74, 56, - 50, 38, 26, 10, 1, 15, 35, 13, 76, 56, - 32, 8, 14, 11, 29, 49, 10, 104, 82, 68, - 52, 44, 10, 7, 21, 29, 124, 63, 59, 29, - 65, 63, 45, 57, 49, 49, 51, 51, 53, 47, - 43, 45, 43, 25, 35, 21, 25, 25, 11, 3, - 3, 3, 8, 2, 0, 7, 28, 24, 26, 18, - 10, 30, 24, 14, 24, 22, 18, 12, 8, 5, - 9, 7, 12, 21, 22, 50, 22, 16, 36, 34, - 28, 26, 36, 28, 40, 6, 3, 1, 82, 82, - 90, 76, 74, 94, 104, 104, 114, 110, 124, 122, - 108, 90, 34, 102, 124, 100, 108, 96, 84, 60, - 46, 40, 12, 13, 13, 35, 65, 84, 82, 84, - 72, 56, 58, 44, 36, 28, 22, 10, 3, 3, - 29, 37, 5, 7, 29, 44, 50, 38, 20, 36, - 34, 10, 24, 24, 6, 17, 13, 29, 61, 28, - 8, 13, 23, 3, 1, 2, 8, 8, 12, 8, - 12, 18, 36, 18, 20, 32, 34, 116, 102, 92, - 78, 64, 48, 30, 0, 49, 4, 68, 54, 50, - 40, 34, 16, 12, 8, 11, 33, 25, 9, 23, - 5, 10, 13, 21, 0, 8, 6, 8, 18, 8, - 6, 118, 102, 78, 56, 40, 18, 5, 29, 65, - }, - - { - /* Context Tables for P, SP, B Slices :: cabac_init_idc = 0, qp = 14 */ - - 122, 16, 25, 122, 16, 25, 77, 39, 32, 20, - 12, 20, 82, 90, 108, 28, 43, 4, 5, 16, - 2, 8, 11, 1, 31, 26, 76, 51, 81, 95, - 45, 45, 7, 5, 16, 2, 33, 33, 16, 22, - 5, 23, 45, 6, 19, 35, 51, 10, 19, 43, - 10, 17, 29, 49, 6, 11, 13, 23, 3, 10, - 44, 0, 0, 0, 23, 51, 67, 3, 22, 1, - 36, 21, 59, 77, 19, 31, 34, 12, 25, 11, - 53, 17, 45, 35, 75, 43, 41, 51, 65, 40, - 1, 14, 43, 15, 41, 33, 83, 10, 3, 1, - 21, 32, 9, 3, 35, 39, 17, 21, 13, 16, - 18, 3, 26, 32, 27, 0, 5, 7, 10, 21, - 38, 7, 4, 38, 46, 58, 46, 32, 41, 5, - 15, 12, 14, 59, 6, 18, 12, 8, 14, 14, - 24, 16, 4, 6, 0, 6, 24, 18, 31, 5, - 4, 13, 14, 20, 30, 16, 12, 16, 10, 8, - 22, 30, 16, 27, 6, 25, 52, 44, 34, 28, - 34, 36, 22, 32, 42, 0, 24, 18, 14, 8, - 5, 14, 2, 8, 12, 6, 18, 30, 6, 35, - 4, 23, 8, 26, 39, 70, 88, 72, 70, 70, - 70, 62, 62, 52, 34, 28, 22, 22, 10, 41, - 7, 0, 21, 38, 32, 26, 30, 22, 10, 10, - 10, 17, 5, 15, 59, 47, 73, 13, 42, 36, - 22, 4, 12, 5, 15, 23, 47, 11, 74, 42, - 30, 16, 20, 1, 17, 27, 57, 10, 74, 56, - 50, 38, 28, 10, 1, 15, 35, 13, 76, 56, - 30, 8, 14, 11, 29, 47, 10, 102, 82, 66, - 50, 44, 10, 7, 19, 29, 124, 61, 57, 29, - 63, 61, 43, 53, 47, 47, 49, 47, 51, 47, - 41, 45, 43, 21, 35, 21, 25, 25, 11, 5, - 3, 3, 6, 0, 1, 9, 28, 22, 26, 16, - 8, 30, 22, 14, 22, 22, 16, 12, 6, 5, - 11, 7, 12, 23, 22, 50, 20, 16, 34, 34, - 28, 24, 34, 26, 38, 4, 3, 3, 80, 80, - 90, 74, 72, 90, 100, 100, 110, 104, 120, 118, - 102, 84, 32, 96, 124, 94, 100, 90, 78, 56, - 44, 38, 12, 11, 13, 33, 61, 80, 78, 80, - 68, 52, 54, 40, 32, 24, 20, 8, 5, 7, - 31, 39, 7, 9, 31, 42, 46, 36, 16, 32, - 30, 6, 20, 20, 2, 19, 17, 33, 63, 26, - 6, 15, 23, 1, 1, 2, 8, 8, 14, 10, - 14, 20, 38, 20, 22, 36, 36, 116, 100, 88, - 72, 60, 42, 24, 5, 53, 6, 70, 56, 50, - 40, 36, 18, 12, 8, 11, 33, 23, 9, 21, - 3, 12, 13, 21, 0, 8, 6, 8, 20, 8, - 6, 116, 98, 72, 50, 34, 10, 13, 37, 69, - }, - - { - /* Context Tables for P, SP, B Slices :: cabac_init_idc = 0, qp = 15 */ - - 120, 16, 25, 120, 16, 25, 73, 37, 32, 20, - 12, 18, 80, 88, 108, 28, 39, 4, 3, 18, - 2, 6, 11, 3, 33, 24, 72, 55, 83, 97, - 39, 43, 7, 3, 18, 2, 33, 31, 16, 20, - 5, 23, 43, 6, 19, 35, 51, 10, 19, 41, - 10, 17, 29, 49, 6, 11, 13, 23, 3, 10, - 44, 0, 0, 0, 21, 51, 67, 3, 20, 1, - 36, 21, 59, 73, 15, 27, 36, 16, 23, 9, - 51, 15, 43, 33, 71, 43, 41, 51, 63, 40, - 1, 14, 41, 15, 39, 31, 81, 10, 3, 1, - 21, 32, 9, 3, 33, 39, 17, 21, 13, 16, - 18, 3, 26, 32, 27, 0, 5, 7, 10, 21, - 36, 7, 4, 36, 44, 56, 44, 30, 39, 5, - 15, 10, 12, 59, 4, 18, 12, 8, 14, 14, - 26, 16, 4, 6, 0, 6, 22, 18, 33, 5, - 4, 15, 14, 18, 30, 16, 10, 16, 10, 8, - 20, 30, 14, 27, 6, 27, 50, 44, 34, 28, - 34, 36, 22, 32, 42, 0, 24, 18, 14, 8, - 5, 14, 2, 8, 12, 6, 16, 28, 6, 35, - 4, 23, 6, 24, 39, 66, 84, 68, 66, 66, - 66, 58, 58, 48, 30, 24, 18, 18, 6, 43, - 7, 0, 23, 36, 30, 24, 28, 20, 8, 8, - 8, 19, 7, 17, 59, 47, 71, 13, 42, 36, - 22, 4, 12, 5, 15, 21, 45, 9, 74, 42, - 30, 16, 20, 1, 15, 25, 53, 10, 74, 56, - 50, 38, 28, 10, 1, 15, 33, 13, 76, 56, - 30, 8, 14, 11, 29, 45, 10, 102, 80, 64, - 48, 44, 10, 7, 19, 27, 124, 59, 55, 27, - 61, 59, 41, 51, 45, 45, 47, 45, 47, 45, - 39, 45, 41, 19, 35, 23, 25, 23, 11, 5, - 5, 3, 4, 1, 3, 11, 26, 22, 26, 16, - 8, 28, 22, 14, 20, 20, 16, 12, 4, 5, - 11, 7, 12, 23, 20, 48, 18, 16, 32, 32, - 28, 22, 32, 26, 38, 2, 5, 7, 78, 78, - 88, 72, 70, 88, 96, 96, 106, 100, 114, 112, - 96, 80, 30, 90, 118, 88, 92, 84, 74, 52, - 42, 36, 12, 9, 13, 31, 57, 76, 74, 76, - 64, 48, 50, 38, 28, 22, 16, 6, 9, 9, - 33, 41, 7, 9, 33, 40, 44, 32, 12, 28, - 26, 4, 18, 16, 0, 21, 19, 35, 65, 24, - 4, 17, 23, 1, 1, 4, 10, 10, 16, 12, - 16, 22, 40, 22, 24, 38, 38, 114, 96, 84, - 68, 54, 36, 18, 11, 57, 6, 70, 56, 52, - 40, 38, 18, 12, 10, 9, 33, 23, 7, 21, - 1, 14, 13, 19, 2, 10, 6, 10, 22, 8, - 6, 114, 94, 68, 44, 28, 2, 21, 43, 75, - }, - - { - /* Context Tables for P, SP, B Slices :: cabac_init_idc = 0, qp = 16 */ - - 116, 14, 27, 116, 14, 27, 71, 35, 32, 20, - 10, 14, 76, 84, 106, 28, 35, 2, 3, 18, - 0, 4, 11, 7, 37, 22, 68, 59, 85, 99, - 35, 41, 9, 3, 18, 0, 33, 29, 16, 18, - 5, 23, 43, 4, 21, 35, 53, 10, 19, 41, - 8, 19, 29, 49, 6, 11, 13, 23, 3, 8, - 44, 0, 0, 0, 21, 53, 67, 3, 18, 3, - 36, 21, 59, 71, 13, 25, 38, 18, 21, 7, - 49, 13, 41, 33, 69, 43, 41, 51, 63, 40, - 1, 14, 41, 15, 39, 31, 79, 8, 5, 3, - 23, 32, 9, 3, 33, 39, 17, 21, 13, 14, - 16, 3, 24, 30, 27, 1, 5, 7, 8, 21, - 34, 9, 2, 34, 40, 54, 42, 28, 39, 5, - 15, 8, 10, 59, 2, 16, 10, 8, 14, 14, - 26, 16, 4, 4, 0, 4, 20, 16, 35, 7, - 2, 17, 12, 16, 28, 14, 8, 16, 10, 8, - 16, 28, 12, 27, 6, 29, 48, 42, 32, 28, - 34, 34, 20, 32, 40, 1, 22, 18, 12, 6, - 7, 12, 0, 6, 10, 4, 14, 26, 4, 35, - 2, 23, 4, 20, 39, 62, 80, 64, 62, 62, - 60, 54, 54, 44, 26, 20, 14, 12, 2, 47, - 9, 1, 25, 34, 26, 20, 24, 16, 4, 4, - 4, 21, 9, 19, 59, 47, 71, 13, 42, 36, - 22, 4, 12, 5, 15, 21, 43, 9, 72, 42, - 30, 16, 20, 1, 15, 25, 51, 8, 74, 56, - 48, 36, 28, 10, 1, 15, 33, 13, 76, 54, - 28, 6, 14, 11, 29, 45, 10, 100, 78, 62, - 46, 42, 10, 7, 19, 27, 124, 59, 53, 27, - 59, 57, 41, 49, 43, 43, 45, 43, 45, 45, - 39, 45, 41, 17, 35, 25, 25, 23, 11, 7, - 7, 5, 2, 3, 7, 15, 24, 20, 26, 14, - 6, 26, 20, 12, 18, 18, 14, 10, 2, 7, - 13, 7, 12, 25, 18, 46, 16, 14, 30, 30, - 28, 20, 28, 24, 36, 0, 7, 11, 76, 76, - 86, 68, 66, 84, 92, 92, 100, 94, 108, 106, - 90, 74, 26, 84, 110, 82, 82, 78, 68, 48, - 38, 32, 12, 9, 13, 29, 53, 72, 70, 72, - 60, 42, 46, 34, 22, 18, 12, 2, 13, 13, - 35, 43, 9, 11, 37, 36, 40, 28, 8, 24, - 22, 0, 14, 12, 3, 25, 23, 39, 67, 22, - 2, 19, 23, 1, 1, 4, 10, 10, 18, 12, - 18, 22, 42, 24, 26, 40, 40, 112, 92, 78, - 62, 48, 30, 10, 17, 63, 6, 70, 56, 52, - 40, 38, 18, 12, 10, 9, 33, 23, 7, 21, - 0, 16, 13, 19, 2, 10, 6, 10, 22, 8, - 4, 110, 88, 62, 38, 20, 5, 29, 51, 81, - }, - - { - /* Context Tables for P, SP, B Slices :: cabac_init_idc = 0, qp = 17 */ - - 114, 14, 27, 114, 14, 27, 67, 31, 34, 22, - 10, 12, 74, 82, 106, 28, 29, 2, 1, 20, - 0, 4, 9, 9, 39, 22, 66, 61, 87, 99, - 29, 37, 9, 1, 20, 0, 31, 25, 18, 18, - 3, 21, 41, 4, 21, 33, 53, 10, 17, 39, - 8, 19, 27, 49, 8, 9, 11, 21, 1, 8, - 44, 0, 0, 0, 19, 53, 67, 1, 18, 3, - 36, 19, 57, 67, 9, 21, 42, 22, 17, 5, - 45, 9, 37, 31, 65, 41, 39, 49, 61, 42, - 0, 16, 39, 13, 37, 29, 75, 8, 5, 3, - 23, 34, 9, 1, 31, 37, 15, 19, 11, 14, - 16, 1, 24, 30, 25, 1, 3, 7, 8, 19, - 34, 9, 2, 34, 38, 54, 42, 28, 37, 3, - 13, 8, 10, 57, 2, 16, 10, 10, 14, 14, - 28, 18, 6, 4, 2, 4, 20, 16, 35, 7, - 2, 17, 12, 14, 28, 14, 8, 18, 12, 8, - 14, 28, 12, 25, 6, 29, 48, 42, 32, 28, - 34, 34, 20, 32, 40, 1, 22, 18, 12, 6, - 7, 12, 0, 6, 10, 4, 14, 26, 4, 33, - 2, 21, 4, 18, 37, 60, 78, 62, 60, 58, - 56, 52, 52, 40, 24, 18, 12, 8, 0, 49, - 9, 1, 25, 32, 24, 18, 22, 14, 2, 2, - 2, 21, 9, 19, 57, 45, 69, 11, 44, 36, - 22, 6, 14, 3, 13, 19, 39, 7, 72, 42, - 30, 16, 22, 0, 13, 23, 47, 8, 76, 58, - 48, 36, 30, 10, 1, 13, 31, 13, 78, 54, - 28, 6, 16, 9, 27, 43, 10, 100, 78, 62, - 46, 42, 10, 5, 17, 25, 124, 57, 51, 25, - 55, 53, 39, 45, 39, 39, 41, 39, 41, 43, - 37, 43, 39, 13, 33, 25, 23, 21, 9, 7, - 7, 5, 2, 3, 9, 17, 24, 20, 28, 14, - 6, 26, 20, 12, 18, 18, 14, 10, 2, 7, - 13, 5, 14, 25, 18, 46, 16, 14, 30, 30, - 30, 20, 26, 24, 36, 0, 7, 13, 76, 76, - 86, 66, 64, 82, 88, 88, 96, 90, 104, 102, - 86, 70, 24, 80, 104, 76, 74, 74, 64, 46, - 36, 30, 12, 7, 11, 25, 47, 70, 68, 70, - 58, 38, 44, 32, 18, 16, 10, 0, 15, 15, - 37, 43, 9, 11, 39, 34, 38, 26, 6, 22, - 20, 1, 12, 10, 5, 27, 25, 41, 67, 22, - 2, 19, 21, 0, 0, 6, 12, 12, 22, 14, - 20, 24, 46, 28, 28, 44, 44, 112, 90, 74, - 58, 44, 26, 4, 21, 67, 8, 72, 58, 54, - 42, 40, 20, 14, 12, 7, 31, 21, 5, 19, - 4, 20, 11, 17, 4, 12, 8, 12, 24, 8, - 4, 108, 84, 58, 34, 14, 11, 35, 57, 85, - }, - - { - /* Context Tables for P, SP, B Slices :: cabac_init_idc = 0, qp = 18 */ - - 112, 14, 27, 112, 14, 27, 63, 29, 34, 22, - 10, 10, 72, 80, 106, 28, 25, 2, 0, 22, - 0, 2, 9, 11, 41, 20, 62, 65, 89, 101, - 23, 35, 9, 0, 22, 0, 31, 23, 18, 16, - 3, 21, 39, 4, 21, 33, 53, 10, 17, 37, - 8, 19, 27, 49, 8, 9, 11, 21, 1, 8, - 44, 0, 0, 0, 17, 53, 67, 1, 16, 3, - 36, 19, 57, 63, 5, 17, 44, 26, 15, 3, - 43, 7, 35, 29, 61, 41, 39, 49, 59, 42, - 0, 16, 37, 13, 35, 29, 73, 8, 5, 3, - 23, 34, 9, 1, 31, 37, 15, 19, 11, 14, - 16, 1, 24, 30, 25, 1, 3, 7, 8, 19, - 32, 9, 2, 32, 36, 52, 40, 26, 35, 3, - 13, 6, 8, 57, 0, 16, 10, 10, 14, 14, - 30, 18, 6, 4, 2, 4, 18, 16, 37, 7, - 2, 19, 12, 12, 28, 14, 6, 18, 12, 8, - 12, 28, 10, 25, 6, 31, 46, 42, 32, 28, - 34, 34, 20, 32, 40, 1, 22, 18, 12, 6, - 7, 12, 0, 6, 10, 4, 12, 24, 2, 33, - 2, 21, 2, 16, 37, 56, 74, 58, 56, 54, - 52, 48, 48, 36, 20, 14, 8, 4, 3, 51, - 9, 1, 27, 30, 22, 16, 20, 10, 0, 0, - 0, 23, 11, 21, 57, 45, 67, 11, 44, 36, - 22, 6, 14, 3, 13, 19, 37, 5, 72, 42, - 30, 16, 22, 0, 11, 21, 43, 8, 76, 58, - 48, 36, 30, 10, 1, 13, 29, 13, 78, 54, - 28, 6, 16, 9, 27, 41, 10, 98, 76, 60, - 44, 42, 10, 5, 17, 25, 124, 55, 49, 23, - 53, 51, 37, 43, 37, 37, 39, 37, 37, 41, - 35, 43, 37, 11, 33, 27, 23, 19, 9, 7, - 9, 5, 0, 5, 11, 19, 22, 20, 28, 14, - 4, 24, 20, 12, 16, 16, 14, 10, 0, 7, - 13, 5, 14, 25, 16, 44, 14, 14, 28, 28, - 30, 18, 24, 24, 36, 1, 9, 17, 74, 74, - 84, 64, 62, 80, 84, 84, 92, 86, 98, 96, - 80, 66, 22, 74, 98, 70, 66, 68, 60, 42, - 34, 28, 12, 5, 11, 23, 43, 66, 64, 66, - 54, 34, 40, 28, 14, 14, 6, 1, 19, 17, - 39, 45, 11, 11, 41, 32, 36, 22, 2, 18, - 16, 3, 8, 6, 7, 29, 27, 43, 69, 20, - 0, 21, 21, 0, 0, 8, 12, 14, 24, 16, - 22, 26, 48, 30, 30, 46, 46, 110, 86, 70, - 54, 38, 20, 1, 27, 71, 8, 72, 58, 54, - 42, 42, 20, 14, 12, 7, 31, 21, 3, 19, - 6, 22, 11, 15, 6, 14, 8, 12, 26, 8, - 4, 106, 80, 54, 28, 8, 19, 43, 63, 91, - }, - - { - /* Context Tables for P, SP, B Slices :: cabac_init_idc = 0, qp = 19 */ - - 110, 14, 27, 110, 14, 27, 59, 25, 36, 22, - 8, 6, 68, 78, 106, 28, 21, 2, 2, 24, - 0, 0, 9, 13, 43, 20, 58, 67, 91, 101, - 17, 33, 9, 2, 24, 0, 29, 21, 20, 16, - 3, 19, 37, 2, 23, 33, 53, 10, 17, 37, - 8, 19, 27, 49, 10, 9, 11, 21, 0, 8, - 44, 0, 0, 0, 17, 53, 67, 0, 14, 3, - 36, 19, 57, 59, 1, 15, 48, 30, 13, 1, - 39, 5, 33, 27, 57, 39, 39, 47, 57, 42, - 0, 16, 37, 13, 35, 27, 69, 8, 7, 5, - 25, 34, 9, 1, 29, 37, 13, 19, 9, 14, - 16, 1, 24, 28, 25, 1, 3, 7, 8, 19, - 30, 9, 2, 30, 34, 50, 38, 24, 35, 1, - 13, 4, 8, 55, 0, 16, 10, 10, 14, 14, - 32, 18, 6, 4, 4, 4, 16, 16, 39, 7, - 2, 19, 10, 10, 28, 14, 4, 18, 12, 8, - 8, 28, 8, 25, 6, 31, 44, 42, 32, 28, - 34, 34, 20, 32, 40, 1, 20, 18, 12, 6, - 7, 10, 1, 4, 8, 2, 10, 22, 2, 33, - 0, 21, 0, 12, 37, 54, 70, 54, 52, 50, - 48, 44, 44, 32, 16, 12, 6, 0, 7, 53, - 9, 1, 27, 28, 20, 14, 16, 8, 3, 1, - 1, 25, 11, 21, 57, 45, 67, 9, 44, 36, - 22, 6, 14, 3, 13, 17, 35, 5, 72, 42, - 30, 16, 24, 2, 9, 19, 39, 8, 76, 58, - 48, 36, 32, 10, 1, 13, 29, 13, 78, 54, - 26, 6, 16, 9, 27, 39, 10, 98, 76, 58, - 42, 42, 10, 5, 15, 23, 124, 53, 47, 23, - 51, 49, 35, 39, 35, 35, 37, 33, 35, 41, - 33, 43, 37, 7, 33, 27, 23, 19, 9, 9, - 9, 5, 1, 7, 13, 21, 22, 18, 28, 12, - 4, 24, 18, 12, 14, 16, 12, 10, 1, 7, - 15, 5, 14, 27, 16, 44, 12, 14, 26, 28, - 30, 16, 22, 22, 34, 3, 9, 19, 72, 72, - 84, 62, 60, 76, 80, 80, 88, 80, 94, 92, - 74, 60, 20, 68, 92, 64, 58, 62, 54, 38, - 32, 26, 12, 3, 11, 21, 39, 62, 60, 62, - 50, 30, 36, 26, 10, 10, 4, 3, 21, 21, - 41, 47, 11, 13, 43, 30, 32, 20, 1, 14, - 12, 7, 6, 2, 11, 31, 31, 47, 71, 18, - 1, 23, 21, 2, 0, 8, 14, 14, 26, 18, - 24, 28, 50, 32, 32, 50, 48, 110, 84, 66, - 48, 34, 14, 7, 33, 75, 10, 74, 60, 56, - 42, 44, 22, 14, 14, 5, 31, 19, 3, 17, - 8, 24, 11, 15, 6, 14, 8, 14, 28, 8, - 4, 104, 76, 48, 22, 2, 27, 51, 71, 95, - }, - - { - /* Context Tables for P, SP, B Slices :: cabac_init_idc = 0, qp = 20 */ - - 106, 14, 27, 106, 14, 27, 57, 23, 36, 22, - 8, 4, 66, 74, 106, 28, 15, 0, 4, 24, - 0, 1, 9, 15, 45, 18, 54, 71, 93, 103, - 11, 31, 9, 4, 24, 0, 29, 19, 20, 14, - 3, 19, 37, 2, 23, 31, 53, 10, 17, 35, - 6, 21, 27, 49, 10, 7, 11, 19, 0, 8, - 44, 0, 0, 0, 15, 55, 67, 0, 12, 3, - 36, 19, 57, 57, 0, 11, 50, 32, 11, 0, - 37, 1, 31, 25, 53, 39, 37, 47, 55, 42, - 0, 16, 35, 13, 33, 27, 67, 6, 7, 5, - 25, 34, 9, 1, 29, 37, 13, 19, 9, 14, - 14, 1, 24, 28, 25, 1, 3, 7, 8, 19, - 30, 11, 2, 30, 32, 48, 36, 22, 33, 1, - 13, 2, 6, 55, 1, 16, 8, 10, 14, 14, - 34, 20, 6, 2, 4, 2, 14, 14, 41, 7, - 2, 21, 10, 8, 26, 12, 4, 20, 12, 8, - 6, 26, 6, 25, 6, 33, 44, 42, 32, 28, - 34, 34, 20, 32, 38, 1, 20, 18, 12, 6, - 9, 10, 1, 4, 8, 2, 10, 20, 0, 33, - 0, 21, 1, 10, 37, 50, 66, 50, 48, 46, - 44, 40, 40, 28, 12, 8, 2, 5, 11, 55, - 9, 3, 29, 26, 18, 12, 14, 4, 5, 3, - 5, 25, 13, 23, 57, 45, 65, 9, 44, 36, - 22, 6, 14, 3, 13, 17, 33, 3, 72, 42, - 30, 16, 24, 2, 9, 19, 35, 8, 76, 58, - 48, 36, 32, 10, 1, 13, 27, 13, 78, 52, - 26, 6, 16, 9, 27, 39, 10, 96, 74, 56, - 40, 42, 10, 5, 15, 23, 124, 51, 45, 21, - 47, 47, 33, 37, 31, 33, 33, 31, 31, 39, - 33, 41, 35, 5, 31, 29, 23, 17, 9, 9, - 11, 7, 3, 9, 15, 23, 20, 18, 28, 12, - 2, 22, 18, 12, 12, 14, 12, 8, 3, 9, - 15, 5, 14, 27, 14, 42, 10, 14, 24, 26, - 30, 14, 20, 22, 34, 5, 11, 23, 70, 72, - 82, 60, 56, 74, 76, 76, 84, 76, 88, 86, - 68, 56, 16, 62, 84, 58, 50, 58, 50, 34, - 30, 22, 12, 1, 9, 19, 35, 60, 56, 58, - 48, 26, 32, 22, 6, 8, 0, 7, 25, 23, - 43, 49, 13, 13, 45, 26, 30, 16, 3, 10, - 8, 9, 2, 1, 13, 33, 33, 49, 71, 16, - 1, 25, 21, 2, 2, 10, 14, 16, 28, 18, - 26, 30, 52, 34, 34, 52, 50, 108, 80, 62, - 44, 28, 8, 13, 39, 81, 10, 74, 60, 56, - 44, 44, 22, 16, 14, 5, 29, 19, 1, 17, - 10, 26, 11, 13, 8, 16, 8, 14, 30, 8, - 4, 100, 72, 44, 16, 3, 35, 59, 77, 101, - }, - - { - /* Context Tables for P, SP, B Slices :: cabac_init_idc = 0, qp = 21 */ - - 104, 14, 27, 104, 14, 27, 53, 19, 36, 22, - 6, 0, 62, 72, 106, 28, 11, 0, 6, 26, - 0, 1, 7, 17, 47, 18, 50, 75, 95, 103, - 5, 27, 9, 6, 26, 0, 29, 17, 20, 14, - 3, 19, 35, 2, 25, 31, 53, 10, 17, 33, - 6, 21, 27, 49, 12, 7, 9, 19, 2, 8, - 44, 0, 0, 0, 15, 55, 67, 2, 10, 3, - 36, 17, 57, 53, 4, 9, 54, 36, 7, 2, - 35, 0, 29, 23, 49, 37, 37, 45, 53, 42, - 0, 16, 35, 13, 33, 25, 63, 6, 7, 5, - 25, 34, 9, 0, 27, 37, 13, 19, 7, 14, - 14, 1, 24, 28, 23, 1, 1, 7, 8, 19, - 28, 11, 2, 28, 30, 48, 34, 20, 31, 0, - 13, 0, 6, 53, 1, 16, 8, 10, 14, 14, - 36, 20, 6, 2, 4, 2, 12, 14, 43, 7, - 2, 21, 8, 6, 26, 12, 2, 20, 12, 8, - 4, 26, 4, 25, 6, 33, 42, 42, 32, 28, - 34, 34, 20, 32, 38, 1, 20, 18, 12, 6, - 9, 10, 1, 2, 8, 2, 8, 18, 0, 33, - 1, 21, 3, 8, 37, 48, 62, 48, 46, 42, - 40, 36, 36, 24, 8, 4, 1, 9, 13, 57, - 9, 3, 29, 24, 16, 10, 12, 2, 9, 5, - 7, 27, 13, 23, 57, 45, 65, 9, 44, 36, - 22, 6, 14, 1, 11, 15, 31, 3, 72, 42, - 30, 16, 24, 4, 7, 17, 31, 8, 76, 58, - 48, 36, 32, 10, 1, 13, 25, 13, 80, 52, - 24, 6, 16, 9, 27, 37, 10, 96, 72, 54, - 38, 42, 10, 5, 15, 21, 124, 49, 43, 19, - 45, 45, 31, 35, 29, 31, 31, 27, 27, 37, - 31, 41, 35, 3, 31, 29, 21, 15, 9, 11, - 11, 7, 3, 11, 17, 25, 18, 16, 28, 10, - 2, 22, 18, 12, 10, 12, 12, 8, 5, 9, - 15, 5, 14, 27, 12, 42, 10, 14, 22, 24, - 30, 12, 18, 20, 32, 7, 13, 27, 68, 70, - 82, 58, 54, 70, 72, 72, 80, 70, 82, 82, - 62, 52, 14, 56, 78, 52, 42, 52, 44, 30, - 28, 20, 12, 0, 9, 17, 31, 56, 54, 54, - 44, 22, 28, 20, 2, 6, 3, 9, 29, 27, - 45, 51, 13, 13, 47, 24, 26, 12, 7, 8, - 6, 13, 0, 3, 17, 35, 35, 51, 73, 16, - 3, 27, 19, 4, 2, 10, 16, 18, 30, 20, - 28, 32, 56, 36, 36, 54, 54, 108, 76, 58, - 38, 24, 2, 19, 45, 85, 10, 76, 62, 58, - 44, 46, 22, 16, 16, 3, 29, 19, 0, 15, - 12, 28, 9, 11, 8, 16, 8, 16, 32, 8, - 4, 98, 68, 38, 10, 9, 41, 67, 85, 107, - }, - - { - /* Context Tables for P, SP, B Slices :: cabac_init_idc = 0, qp = 22 */ - - 102, 14, 29, 102, 14, 29, 49, 17, 38, 22, - 6, 1, 60, 70, 106, 28, 7, 0, 6, 28, - 0, 3, 7, 19, 49, 16, 48, 77, 97, 105, - 0, 25, 9, 6, 28, 0, 27, 15, 22, 12, - 1, 17, 33, 0, 25, 31, 53, 10, 15, 33, - 6, 21, 25, 49, 12, 7, 9, 19, 2, 8, - 44, 0, 0, 0, 13, 55, 67, 2, 10, 5, - 36, 17, 55, 49, 8, 5, 56, 40, 5, 4, - 31, 2, 27, 23, 47, 37, 37, 45, 53, 44, - 0, 16, 33, 11, 31, 25, 61, 6, 9, 7, - 27, 34, 9, 0, 27, 37, 11, 19, 7, 14, - 14, 0, 24, 26, 23, 1, 1, 7, 8, 19, - 26, 11, 2, 26, 28, 46, 34, 20, 31, 0, - 13, 0, 4, 53, 3, 16, 8, 10, 14, 14, - 36, 20, 6, 2, 6, 2, 10, 14, 43, 9, - 2, 23, 8, 4, 26, 12, 0, 20, 12, 8, - 0, 26, 2, 25, 6, 35, 40, 42, 30, 28, - 34, 34, 20, 32, 38, 1, 18, 18, 10, 6, - 9, 8, 3, 2, 6, 0, 6, 16, 1, 33, - 1, 19, 5, 4, 37, 44, 58, 44, 42, 38, - 36, 32, 32, 20, 4, 2, 3, 13, 17, 59, - 9, 3, 31, 22, 14, 8, 8, 1, 11, 7, - 9, 29, 15, 25, 57, 45, 63, 7, 44, 36, - 22, 8, 14, 1, 11, 15, 29, 1, 70, 42, - 30, 16, 26, 4, 5, 15, 27, 8, 78, 58, - 48, 36, 34, 10, 1, 11, 25, 13, 80, 52, - 24, 6, 16, 7, 25, 35, 10, 94, 72, 52, - 38, 42, 10, 3, 13, 21, 124, 49, 41, 19, - 43, 43, 29, 31, 27, 29, 29, 25, 25, 37, - 29, 41, 33, 0, 31, 31, 21, 15, 9, 11, - 13, 7, 5, 13, 19, 27, 18, 16, 28, 10, - 0, 20, 16, 12, 10, 12, 10, 8, 5, 9, - 17, 5, 14, 29, 12, 40, 8, 12, 20, 24, - 32, 12, 16, 20, 32, 7, 13, 29, 66, 68, - 80, 56, 52, 68, 68, 68, 76, 66, 78, 76, - 56, 46, 12, 52, 72, 46, 34, 46, 40, 26, - 26, 18, 12, 2, 9, 13, 25, 52, 50, 50, - 40, 18, 24, 16, 1, 2, 5, 11, 31, 29, - 47, 53, 15, 15, 49, 22, 24, 10, 11, 4, - 2, 15, 3, 7, 19, 39, 39, 55, 75, 14, - 5, 29, 19, 4, 2, 12, 16, 18, 34, 22, - 30, 34, 58, 40, 38, 58, 56, 106, 74, 54, - 34, 18, 1, 25, 49, 89, 12, 76, 62, 58, - 44, 48, 24, 16, 16, 3, 29, 17, 0, 15, - 14, 30, 9, 11, 10, 18, 8, 16, 34, 8, - 4, 96, 64, 34, 4, 17, 49, 73, 91, 111, - }, - - { - /* Context Tables for P, SP, B Slices :: cabac_init_idc = 0, qp = 23 */ - - 100, 14, 29, 100, 14, 29, 45, 13, 38, 22, - 4, 5, 56, 66, 106, 28, 1, 1, 8, 28, - 0, 5, 7, 21, 51, 16, 44, 81, 99, 105, - 6, 23, 9, 8, 28, 0, 27, 13, 22, 12, - 1, 17, 33, 0, 27, 29, 53, 10, 15, 31, - 4, 21, 25, 49, 14, 5, 9, 17, 4, 8, - 44, 0, 0, 0, 13, 55, 67, 4, 8, 5, - 36, 17, 55, 47, 12, 3, 60, 44, 3, 6, - 29, 6, 25, 21, 43, 35, 35, 43, 51, 44, - 0, 16, 33, 11, 31, 23, 57, 4, 9, 7, - 27, 34, 9, 0, 25, 37, 11, 19, 5, 14, - 12, 0, 24, 26, 23, 1, 1, 7, 8, 19, - 26, 11, 2, 26, 26, 44, 32, 18, 29, 2, - 13, 1, 4, 51, 3, 16, 6, 10, 14, 14, - 38, 22, 6, 2, 6, 2, 8, 14, 45, 9, - 2, 23, 6, 2, 24, 12, 0, 22, 12, 8, - 1, 24, 0, 25, 6, 35, 40, 42, 30, 28, - 34, 34, 20, 32, 38, 1, 18, 18, 10, 6, - 9, 8, 3, 0, 6, 0, 6, 14, 1, 33, - 3, 19, 7, 2, 37, 42, 54, 40, 38, 34, - 32, 28, 28, 16, 0, 1, 7, 19, 21, 61, - 9, 5, 31, 20, 12, 6, 6, 3, 15, 9, - 11, 29, 15, 25, 57, 45, 63, 7, 44, 36, - 22, 8, 14, 1, 11, 13, 27, 1, 70, 42, - 30, 16, 26, 6, 3, 15, 23, 8, 78, 58, - 48, 36, 34, 10, 1, 11, 23, 13, 80, 50, - 22, 6, 16, 7, 25, 35, 10, 94, 70, 50, - 36, 42, 10, 3, 13, 19, 124, 47, 39, 17, - 39, 41, 27, 29, 23, 27, 25, 21, 21, 35, - 27, 39, 33, 2, 29, 31, 21, 13, 9, 13, - 13, 9, 7, 15, 21, 29, 16, 14, 28, 8, - 0, 20, 16, 12, 8, 10, 10, 6, 7, 9, - 17, 5, 14, 29, 10, 40, 6, 12, 18, 22, - 32, 10, 14, 18, 30, 9, 15, 33, 64, 68, - 80, 54, 48, 64, 64, 64, 72, 60, 72, 72, - 50, 42, 8, 46, 64, 40, 26, 42, 34, 22, - 24, 16, 12, 4, 7, 11, 21, 50, 46, 46, - 38, 14, 20, 14, 5, 0, 9, 15, 35, 33, - 49, 55, 15, 15, 51, 18, 20, 6, 13, 0, - 1, 19, 5, 11, 23, 41, 41, 57, 75, 12, - 5, 31, 19, 6, 4, 12, 18, 20, 36, 24, - 32, 36, 60, 42, 40, 60, 58, 106, 70, 50, - 28, 14, 7, 31, 55, 93, 12, 78, 64, 60, - 46, 50, 24, 18, 18, 1, 27, 17, 2, 13, - 16, 32, 9, 9, 10, 18, 8, 18, 36, 8, - 4, 92, 60, 28, 1, 23, 57, 81, 99, 117, - }, - - { - /* Context Tables for P, SP, B Slices :: cabac_init_idc = 0, qp = 24 */ - - 96, 12, 29, 96, 12, 29, 43, 11, 38, 22, - 4, 7, 54, 64, 106, 28, 2, 1, 10, 30, - 0, 7, 7, 23, 55, 14, 40, 85, 101, 107, - 10, 21, 9, 10, 30, 0, 27, 11, 22, 10, - 1, 17, 31, 1, 27, 29, 55, 10, 15, 31, - 4, 23, 25, 49, 14, 5, 9, 17, 4, 8, - 44, 0, 0, 0, 11, 57, 67, 4, 6, 5, - 36, 17, 55, 43, 14, 0, 62, 46, 1, 8, - 27, 8, 23, 19, 39, 35, 35, 43, 49, 44, - 0, 16, 31, 11, 29, 23, 55, 4, 11, 9, - 29, 34, 9, 0, 25, 37, 11, 19, 5, 12, - 12, 0, 24, 24, 23, 1, 1, 7, 6, 19, - 24, 13, 2, 24, 22, 42, 30, 16, 29, 2, - 13, 3, 2, 51, 5, 14, 6, 10, 14, 14, - 40, 22, 6, 0, 6, 0, 6, 12, 47, 9, - 2, 25, 6, 0, 24, 10, 1, 22, 12, 8, - 5, 24, 1, 25, 6, 37, 38, 40, 30, 28, - 34, 32, 18, 32, 36, 3, 16, 18, 10, 4, - 11, 6, 5, 0, 4, 1, 4, 12, 3, 33, - 3, 19, 9, 1, 37, 38, 50, 36, 34, 30, - 26, 24, 24, 12, 3, 5, 11, 23, 25, 63, - 9, 5, 33, 18, 8, 2, 2, 7, 17, 13, - 15, 31, 17, 27, 57, 45, 61, 7, 44, 36, - 22, 8, 14, 1, 11, 13, 25, 0, 70, 42, - 30, 16, 26, 6, 3, 13, 21, 8, 78, 58, - 48, 34, 34, 10, 1, 11, 23, 13, 80, 50, - 22, 6, 16, 7, 25, 33, 10, 92, 68, 48, - 34, 40, 10, 3, 13, 19, 124, 45, 37, 17, - 37, 39, 27, 27, 21, 25, 23, 19, 19, 35, - 27, 39, 31, 4, 29, 33, 21, 13, 9, 13, - 15, 9, 9, 17, 25, 31, 14, 14, 28, 8, - 1, 18, 14, 10, 6, 8, 8, 6, 9, 11, - 19, 5, 14, 31, 8, 38, 4, 12, 16, 20, - 32, 8, 12, 18, 30, 11, 17, 37, 62, 66, - 78, 50, 46, 62, 60, 60, 66, 56, 66, 66, - 44, 36, 6, 40, 58, 34, 18, 36, 30, 18, - 20, 12, 12, 4, 7, 9, 17, 46, 42, 42, - 34, 8, 16, 10, 9, 3, 13, 17, 39, 35, - 51, 57, 17, 17, 53, 16, 18, 2, 17, 3, - 5, 21, 9, 15, 25, 43, 45, 61, 77, 10, - 7, 33, 19, 6, 4, 14, 18, 20, 38, 24, - 34, 38, 62, 44, 42, 62, 60, 104, 66, 46, - 24, 8, 13, 37, 61, 99, 12, 78, 64, 60, - 46, 50, 24, 18, 18, 1, 27, 17, 2, 13, - 18, 34, 9, 9, 12, 20, 8, 18, 36, 8, - 2, 90, 56, 24, 7, 29, 65, 89, 105, 123, - }, - - { - /* Context Tables for P, SP, B Slices :: cabac_init_idc = 0, qp = 25 */ - - 94, 12, 29, 94, 12, 29, 39, 9, 40, 22, - 4, 9, 52, 62, 106, 28, 6, 1, 12, 32, - 0, 7, 5, 25, 57, 12, 36, 87, 103, 109, - 16, 17, 9, 12, 32, 0, 25, 9, 24, 8, - 1, 15, 29, 1, 27, 29, 55, 10, 15, 29, - 4, 23, 25, 49, 14, 5, 7, 17, 4, 8, - 44, 0, 0, 0, 9, 57, 67, 4, 4, 5, - 36, 15, 55, 39, 18, 4, 64, 50, 2, 10, - 23, 10, 19, 17, 35, 35, 35, 43, 47, 44, - 0, 16, 29, 11, 27, 21, 53, 4, 11, 9, - 29, 34, 9, 2, 23, 35, 9, 19, 5, 12, - 12, 0, 24, 24, 21, 1, 0, 7, 6, 17, - 22, 13, 2, 22, 20, 42, 28, 14, 27, 2, - 11, 5, 0, 51, 7, 14, 6, 12, 14, 14, - 42, 22, 6, 0, 8, 0, 6, 12, 49, 9, - 2, 27, 6, 1, 24, 10, 3, 22, 12, 8, - 7, 24, 1, 25, 6, 39, 36, 40, 30, 28, - 34, 32, 18, 32, 36, 3, 16, 18, 10, 4, - 11, 6, 5, 0, 4, 1, 2, 12, 3, 33, - 3, 19, 11, 3, 37, 34, 48, 34, 32, 26, - 22, 22, 22, 8, 7, 7, 13, 27, 27, 65, - 9, 5, 35, 16, 6, 0, 0, 9, 19, 15, - 17, 33, 19, 29, 57, 43, 59, 5, 46, 36, - 22, 8, 16, 0, 9, 11, 23, 2, 70, 42, - 30, 16, 28, 6, 1, 11, 17, 8, 78, 58, - 48, 34, 36, 10, 1, 11, 21, 13, 82, 50, - 22, 6, 18, 7, 25, 31, 10, 92, 68, 48, - 32, 40, 10, 3, 11, 17, 124, 43, 35, 15, - 35, 35, 25, 23, 19, 21, 21, 17, 15, 33, - 25, 39, 29, 8, 29, 35, 19, 11, 9, 13, - 17, 9, 9, 19, 27, 33, 14, 14, 28, 8, - 1, 16, 14, 10, 4, 8, 8, 6, 11, 11, - 19, 3, 16, 31, 8, 36, 4, 12, 16, 20, - 32, 6, 10, 18, 30, 13, 17, 39, 62, 64, - 76, 48, 44, 60, 56, 56, 62, 52, 62, 60, - 40, 32, 4, 34, 52, 28, 10, 30, 26, 16, - 18, 10, 12, 6, 7, 7, 13, 42, 40, 38, - 30, 4, 14, 8, 13, 5, 15, 19, 41, 37, - 53, 57, 17, 17, 55, 14, 16, 0, 21, 5, - 7, 23, 11, 17, 27, 45, 47, 63, 79, 10, - 9, 33, 17, 6, 4, 16, 20, 22, 40, 26, - 36, 40, 66, 46, 44, 66, 64, 102, 64, 42, - 20, 2, 19, 43, 67, 103, 14, 78, 64, 62, - 46, 52, 26, 18, 20, 0, 27, 15, 4, 13, - 20, 38, 7, 7, 14, 22, 8, 20, 38, 8, - 2, 88, 52, 20, 11, 35, 71, 97, 111, 125, - }, - - { - /* Context Tables for P, SP, B Slices :: cabac_init_idc = 0, qp = 26 */ - - 92, 12, 29, 92, 12, 29, 35, 5, 40, 22, - 2, 13, 48, 58, 106, 28, 12, 3, 14, 32, - 0, 9, 5, 27, 59, 12, 32, 91, 105, 109, - 22, 15, 9, 14, 32, 0, 25, 7, 24, 8, - 1, 15, 29, 1, 29, 27, 55, 10, 15, 27, - 2, 23, 25, 49, 16, 3, 7, 15, 6, 8, - 44, 0, 0, 0, 9, 57, 67, 6, 2, 5, - 36, 15, 55, 37, 22, 6, 68, 54, 4, 12, - 21, 14, 17, 15, 31, 33, 33, 41, 45, 44, - 0, 16, 29, 11, 27, 21, 49, 2, 11, 9, - 29, 34, 9, 2, 23, 35, 9, 19, 3, 12, - 10, 0, 24, 24, 21, 1, 0, 7, 6, 17, - 22, 13, 2, 22, 18, 40, 26, 12, 25, 4, - 11, 7, 0, 49, 7, 14, 4, 12, 14, 14, - 44, 24, 6, 0, 8, 0, 4, 12, 51, 9, - 2, 27, 4, 3, 22, 10, 3, 24, 12, 8, - 9, 22, 3, 25, 6, 39, 36, 40, 30, 28, - 34, 32, 18, 32, 36, 3, 16, 18, 10, 4, - 11, 6, 5, 1, 4, 1, 2, 10, 5, 33, - 5, 19, 13, 5, 37, 32, 44, 30, 28, 22, - 18, 18, 18, 4, 11, 11, 17, 33, 31, 67, - 9, 7, 35, 14, 4, 1, 1, 13, 23, 17, - 19, 33, 19, 29, 57, 43, 59, 5, 46, 36, - 22, 8, 16, 0, 9, 11, 21, 2, 70, 42, - 30, 16, 28, 8, 0, 11, 13, 8, 78, 58, - 48, 34, 36, 10, 1, 11, 19, 13, 82, 48, - 20, 6, 18, 7, 25, 31, 10, 90, 66, 46, - 30, 40, 10, 3, 11, 17, 124, 41, 33, 13, - 31, 33, 23, 21, 15, 19, 17, 13, 11, 31, - 23, 37, 29, 10, 27, 35, 19, 9, 9, 15, - 17, 11, 11, 21, 29, 35, 12, 12, 28, 6, - 3, 16, 14, 10, 2, 6, 8, 4, 13, 11, - 19, 3, 16, 31, 6, 36, 2, 12, 14, 18, - 32, 4, 8, 16, 28, 15, 19, 43, 60, 64, - 76, 46, 40, 56, 52, 52, 58, 46, 56, 56, - 34, 28, 0, 28, 44, 22, 2, 26, 20, 12, - 16, 8, 12, 8, 5, 5, 9, 40, 36, 34, - 28, 0, 10, 4, 17, 7, 19, 23, 45, 41, - 55, 59, 19, 17, 57, 10, 12, 3, 23, 9, - 11, 27, 15, 21, 31, 47, 49, 65, 79, 8, - 9, 35, 17, 8, 6, 16, 20, 24, 42, 28, - 38, 42, 68, 48, 46, 68, 66, 102, 60, 38, - 14, 1, 25, 49, 73, 107, 14, 80, 66, 62, - 48, 54, 26, 20, 20, 0, 25, 15, 6, 11, - 22, 40, 7, 5, 14, 22, 8, 20, 40, 8, - 2, 84, 48, 14, 17, 41, 79, 105, 119, 125, - }, - - { - /* Context Tables for P, SP, B Slices :: cabac_init_idc = 0, qp = 27 */ - - 90, 12, 31, 90, 12, 31, 31, 3, 42, 22, - 2, 15, 46, 56, 106, 28, 16, 3, 14, 34, - 0, 11, 5, 29, 61, 10, 30, 93, 107, 111, - 28, 13, 9, 14, 34, 0, 23, 5, 26, 6, - 0, 13, 27, 3, 29, 27, 55, 10, 13, 27, - 2, 23, 23, 49, 16, 3, 7, 15, 6, 8, - 44, 0, 0, 0, 7, 57, 67, 6, 2, 7, - 36, 15, 53, 33, 26, 10, 70, 58, 6, 14, - 17, 16, 15, 15, 29, 33, 33, 41, 45, 46, - 0, 16, 27, 9, 25, 19, 47, 2, 13, 11, - 31, 34, 9, 2, 21, 35, 7, 19, 3, 12, - 10, 2, 24, 22, 21, 1, 0, 7, 6, 17, - 20, 13, 2, 20, 16, 38, 26, 12, 25, 4, - 11, 7, 1, 49, 9, 14, 4, 12, 14, 14, - 44, 24, 6, 0, 10, 0, 2, 12, 51, 11, - 2, 29, 4, 5, 22, 10, 5, 24, 12, 8, - 13, 22, 5, 25, 6, 41, 34, 40, 28, 28, - 34, 32, 18, 32, 36, 3, 14, 18, 8, 4, - 11, 4, 7, 1, 2, 3, 0, 8, 5, 33, - 5, 17, 15, 9, 37, 28, 40, 26, 24, 18, - 14, 14, 14, 0, 15, 13, 19, 37, 35, 69, - 9, 7, 37, 12, 2, 3, 5, 15, 25, 19, - 21, 35, 21, 31, 57, 43, 57, 3, 46, 36, - 22, 10, 16, 0, 9, 9, 19, 4, 68, 42, - 30, 16, 30, 8, 2, 9, 9, 8, 80, 58, - 48, 34, 38, 10, 1, 9, 19, 13, 82, 48, - 20, 6, 18, 5, 23, 29, 10, 90, 66, 44, - 30, 40, 10, 1, 9, 15, 124, 41, 31, 13, - 29, 31, 21, 17, 13, 17, 15, 11, 9, 31, - 21, 37, 27, 14, 27, 37, 19, 9, 9, 15, - 19, 11, 13, 23, 31, 37, 12, 12, 28, 6, - 3, 14, 12, 10, 2, 6, 6, 4, 13, 11, - 21, 3, 16, 33, 6, 34, 0, 10, 12, 18, - 34, 4, 6, 16, 28, 15, 19, 45, 58, 62, - 74, 44, 38, 54, 48, 48, 54, 42, 52, 50, - 28, 22, 1, 24, 38, 16, 5, 20, 16, 8, - 14, 6, 12, 10, 5, 1, 3, 36, 32, 30, - 24, 3, 6, 2, 21, 11, 21, 25, 47, 43, - 57, 61, 19, 19, 59, 8, 10, 5, 27, 13, - 15, 29, 17, 25, 33, 51, 53, 69, 81, 6, - 11, 37, 17, 8, 6, 18, 22, 24, 46, 30, - 40, 44, 70, 52, 48, 72, 68, 100, 58, 34, - 10, 7, 29, 55, 77, 111, 16, 80, 66, 64, - 48, 56, 28, 20, 22, 2, 25, 13, 6, 11, - 24, 42, 7, 5, 16, 24, 8, 22, 42, 8, - 2, 82, 44, 10, 23, 49, 87, 111, 125, 125, - }, - - { - /* Context Tables for P, SP, B Slices :: cabac_init_idc = 0, qp = 28 */ - - 86, 12, 31, 86, 12, 31, 29, 0, 42, 22, - 0, 19, 42, 54, 106, 28, 20, 3, 16, 36, - 0, 13, 5, 31, 63, 10, 26, 97, 109, 111, - 34, 11, 9, 16, 36, 0, 23, 3, 26, 6, - 0, 13, 25, 3, 31, 27, 55, 10, 13, 25, - 2, 25, 23, 49, 18, 3, 7, 15, 8, 8, - 44, 0, 0, 0, 7, 59, 67, 8, 0, 7, - 36, 15, 53, 29, 28, 12, 74, 60, 8, 16, - 15, 18, 13, 13, 25, 31, 33, 39, 43, 46, - 0, 16, 27, 9, 25, 19, 43, 2, 13, 11, - 31, 34, 9, 2, 21, 35, 7, 19, 1, 12, - 10, 2, 24, 22, 21, 1, 0, 7, 6, 17, - 18, 15, 2, 18, 14, 36, 24, 10, 23, 6, - 11, 9, 1, 47, 9, 14, 4, 12, 14, 14, - 46, 24, 6, 1, 10, 1, 0, 10, 53, 11, - 2, 29, 2, 7, 22, 8, 7, 24, 12, 8, - 15, 22, 7, 25, 6, 41, 32, 40, 28, 28, - 34, 32, 18, 32, 34, 3, 14, 18, 8, 4, - 13, 4, 7, 3, 2, 3, 1, 6, 7, 33, - 7, 17, 17, 11, 37, 26, 36, 22, 20, 14, - 10, 10, 10, 3, 19, 17, 23, 41, 39, 71, - 9, 7, 37, 10, 0, 5, 7, 19, 29, 21, - 25, 37, 21, 31, 57, 43, 57, 3, 46, 36, - 22, 10, 16, 0, 9, 9, 17, 4, 68, 42, - 30, 16, 30, 10, 2, 7, 5, 8, 80, 58, - 48, 34, 38, 10, 1, 9, 17, 13, 82, 48, - 18, 6, 18, 5, 23, 27, 10, 88, 64, 42, - 28, 40, 10, 1, 9, 15, 124, 39, 29, 11, - 27, 29, 19, 15, 11, 15, 13, 7, 5, 29, - 21, 37, 27, 16, 27, 37, 19, 7, 9, 17, - 19, 11, 15, 25, 33, 39, 10, 10, 28, 4, - 5, 14, 12, 10, 0, 4, 6, 4, 15, 13, - 21, 3, 16, 33, 4, 34, 1, 10, 10, 16, - 34, 2, 4, 14, 26, 17, 21, 49, 56, 60, - 74, 42, 36, 50, 44, 44, 50, 36, 46, 46, - 22, 18, 3, 18, 32, 10, 13, 14, 10, 4, - 12, 2, 12, 12, 5, 0, 0, 32, 28, 26, - 20, 7, 2, 1, 25, 13, 25, 27, 51, 47, - 59, 63, 21, 19, 61, 6, 6, 9, 31, 17, - 19, 33, 21, 29, 37, 53, 55, 71, 83, 4, - 13, 39, 17, 10, 6, 18, 22, 26, 48, 30, - 42, 46, 72, 54, 50, 74, 70, 100, 54, 30, - 4, 11, 35, 61, 83, 117, 16, 82, 68, 64, - 48, 56, 28, 20, 22, 2, 25, 13, 8, 9, - 26, 44, 7, 3, 16, 24, 8, 22, 44, 8, - 2, 80, 40, 4, 29, 55, 95, 119, 125, 125, - }, - - { - /* Context Tables for P, SP, B Slices :: cabac_init_idc = 0, qp = 29 */ - - 84, 12, 31, 84, 12, 31, 25, 2, 42, 22, - 0, 21, 40, 50, 106, 28, 26, 5, 18, 36, - 0, 13, 3, 33, 65, 8, 22, 101, 111, 113, - 40, 7, 9, 18, 36, 0, 23, 1, 26, 4, - 0, 13, 25, 3, 31, 25, 55, 10, 13, 23, - 0, 25, 23, 49, 18, 1, 5, 13, 8, 8, - 44, 0, 0, 0, 5, 59, 67, 8, 1, 7, - 36, 13, 53, 27, 32, 16, 76, 64, 12, 18, - 13, 22, 11, 11, 21, 31, 31, 39, 41, 46, - 0, 16, 25, 9, 23, 17, 41, 0, 13, 11, - 31, 34, 9, 4, 19, 35, 7, 19, 1, 12, - 8, 2, 24, 22, 19, 1, 2, 7, 6, 17, - 18, 15, 2, 18, 12, 36, 22, 8, 21, 6, - 11, 11, 3, 47, 11, 14, 2, 12, 14, 14, - 48, 26, 6, 1, 10, 1, 1, 10, 55, 11, - 2, 31, 2, 9, 20, 8, 7, 26, 12, 8, - 17, 20, 9, 25, 6, 43, 32, 40, 28, 28, - 34, 32, 18, 32, 34, 3, 14, 18, 8, 4, - 13, 4, 7, 3, 2, 3, 1, 4, 7, 33, - 7, 17, 19, 13, 37, 22, 32, 20, 18, 10, - 6, 6, 6, 7, 23, 21, 27, 47, 41, 73, - 9, 9, 39, 8, 1, 7, 9, 21, 31, 23, - 27, 37, 23, 33, 57, 43, 55, 3, 46, 36, - 22, 10, 16, 2, 7, 7, 15, 6, 68, 42, - 30, 16, 30, 10, 4, 7, 1, 8, 80, 58, - 48, 34, 38, 10, 1, 9, 15, 13, 84, 46, - 18, 6, 18, 5, 23, 27, 10, 88, 62, 40, - 26, 40, 10, 1, 9, 13, 124, 37, 27, 9, - 23, 27, 17, 13, 7, 13, 9, 5, 1, 27, - 19, 35, 25, 18, 25, 39, 17, 5, 9, 17, - 21, 13, 15, 27, 35, 41, 8, 10, 28, 4, - 5, 12, 12, 10, 1, 2, 6, 2, 17, 13, - 21, 3, 16, 33, 2, 32, 1, 10, 8, 14, - 34, 0, 2, 14, 26, 19, 23, 53, 54, 60, - 72, 40, 32, 48, 40, 40, 46, 32, 40, 40, - 16, 14, 7, 12, 24, 4, 21, 10, 6, 0, - 10, 0, 12, 14, 3, 2, 4, 30, 26, 22, - 18, 11, 1, 3, 29, 15, 29, 31, 55, 49, - 61, 65, 21, 19, 63, 2, 4, 13, 33, 19, - 21, 35, 23, 31, 39, 55, 57, 73, 83, 4, - 13, 41, 15, 10, 8, 20, 24, 28, 50, 32, - 44, 48, 76, 56, 52, 76, 74, 98, 50, 26, - 0, 17, 41, 67, 89, 121, 16, 82, 68, 66, - 50, 58, 28, 22, 24, 4, 23, 13, 10, 9, - 28, 46, 5, 1, 18, 26, 8, 24, 46, 8, - 2, 76, 36, 0, 35, 61, 101, 125, 125, 125, - }, - - { - /* Context Tables for P, SP, B Slices :: cabac_init_idc = 0, qp = 30 */ - - 82, 12, 31, 82, 12, 31, 21, 6, 44, 22, - 1, 25, 36, 48, 106, 28, 30, 5, 20, 38, - 0, 15, 3, 35, 67, 8, 18, 103, 113, 113, - 46, 5, 9, 20, 38, 0, 21, 0, 28, 4, - 0, 11, 23, 5, 33, 25, 55, 10, 13, 23, - 0, 25, 23, 49, 20, 1, 5, 13, 10, 8, - 44, 0, 0, 0, 5, 59, 67, 10, 3, 7, - 36, 13, 53, 23, 36, 18, 80, 68, 14, 20, - 9, 24, 9, 9, 17, 29, 31, 37, 39, 46, - 0, 16, 25, 9, 23, 17, 37, 0, 15, 13, - 33, 34, 9, 4, 19, 35, 5, 19, 0, 12, - 8, 2, 24, 20, 19, 1, 2, 7, 6, 17, - 16, 15, 2, 16, 10, 34, 20, 6, 21, 8, - 11, 13, 3, 45, 11, 14, 2, 12, 14, 14, - 50, 26, 6, 1, 12, 1, 3, 10, 57, 11, - 2, 31, 0, 11, 20, 8, 9, 26, 12, 8, - 21, 20, 11, 25, 6, 43, 30, 40, 28, 28, - 34, 32, 18, 32, 34, 3, 12, 18, 8, 4, - 13, 2, 9, 5, 0, 5, 3, 2, 9, 33, - 9, 17, 21, 17, 37, 20, 28, 16, 14, 6, - 2, 2, 2, 11, 27, 23, 29, 51, 45, 75, - 9, 9, 39, 6, 3, 9, 13, 25, 35, 25, - 29, 39, 23, 33, 57, 43, 55, 1, 46, 36, - 22, 10, 16, 2, 7, 7, 13, 6, 68, 42, - 30, 16, 32, 12, 6, 5, 2, 8, 80, 58, - 48, 34, 40, 10, 1, 9, 15, 13, 84, 46, - 16, 6, 18, 5, 23, 25, 10, 86, 62, 38, - 24, 40, 10, 1, 7, 13, 124, 35, 25, 9, - 21, 25, 15, 9, 5, 11, 7, 1, 0, 27, - 17, 35, 25, 22, 25, 39, 17, 5, 9, 19, - 21, 13, 17, 29, 37, 43, 8, 8, 28, 2, - 7, 12, 10, 10, 3, 2, 4, 2, 19, 13, - 23, 3, 16, 35, 2, 32, 3, 10, 6, 14, - 34, 1, 0, 12, 24, 21, 23, 55, 52, 58, - 72, 38, 30, 44, 36, 36, 42, 26, 36, 36, - 10, 8, 9, 6, 18, 1, 29, 4, 0, 3, - 8, 1, 12, 16, 3, 4, 8, 26, 22, 18, - 14, 15, 5, 7, 33, 19, 31, 33, 57, 53, - 63, 67, 23, 21, 65, 0, 0, 15, 37, 23, - 25, 39, 27, 35, 43, 57, 61, 77, 85, 2, - 15, 43, 15, 12, 8, 20, 24, 28, 52, 34, - 46, 50, 78, 58, 54, 80, 76, 98, 48, 22, - 5, 21, 47, 73, 95, 125, 18, 84, 70, 66, - 50, 60, 30, 22, 24, 4, 23, 11, 10, 7, - 30, 48, 5, 1, 18, 26, 8, 24, 48, 8, - 2, 74, 32, 5, 41, 67, 109, 125, 125, 125, - }, - - { - /* Context Tables for P, SP, B Slices :: cabac_init_idc = 0, qp = 31 */ - - 80, 12, 31, 80, 12, 31, 17, 8, 44, 22, - 1, 27, 34, 46, 106, 28, 34, 5, 22, 40, - 0, 17, 3, 37, 69, 6, 14, 107, 115, 115, - 52, 3, 9, 22, 40, 0, 21, 2, 28, 2, - 0, 11, 21, 5, 33, 25, 55, 10, 13, 21, - 0, 25, 23, 49, 20, 1, 5, 13, 10, 8, - 44, 0, 0, 0, 3, 59, 67, 10, 5, 7, - 36, 13, 53, 19, 40, 22, 82, 72, 16, 22, - 7, 26, 7, 7, 13, 29, 31, 37, 37, 46, - 0, 16, 23, 9, 21, 15, 35, 0, 15, 13, - 33, 34, 9, 4, 17, 35, 5, 19, 0, 12, - 8, 2, 24, 20, 19, 1, 2, 7, 6, 17, - 14, 15, 2, 14, 8, 32, 18, 4, 19, 8, - 11, 15, 5, 45, 13, 14, 2, 12, 14, 14, - 52, 26, 6, 1, 12, 1, 5, 10, 59, 11, - 2, 33, 0, 13, 20, 8, 11, 26, 12, 8, - 23, 20, 13, 25, 6, 45, 28, 40, 28, 28, - 34, 32, 18, 32, 34, 3, 12, 18, 8, 4, - 13, 2, 9, 5, 0, 5, 5, 0, 9, 33, - 9, 17, 23, 19, 37, 16, 24, 12, 10, 2, - 1, 1, 1, 15, 31, 27, 33, 55, 49, 77, - 9, 9, 41, 4, 5, 11, 15, 27, 37, 27, - 31, 41, 25, 35, 57, 43, 53, 1, 46, 36, - 22, 10, 16, 2, 7, 5, 11, 8, 68, 42, - 30, 16, 32, 12, 8, 3, 6, 8, 80, 58, - 48, 34, 40, 10, 1, 9, 13, 13, 84, 46, - 16, 6, 18, 5, 23, 23, 10, 86, 60, 36, - 22, 40, 10, 1, 7, 11, 124, 33, 23, 7, - 19, 23, 13, 7, 3, 9, 5, 0, 4, 25, - 15, 35, 23, 24, 25, 41, 17, 3, 9, 19, - 23, 13, 19, 31, 39, 45, 6, 8, 28, 2, - 7, 10, 10, 10, 5, 0, 4, 2, 21, 13, - 23, 3, 16, 35, 0, 30, 5, 10, 4, 12, - 34, 3, 1, 12, 24, 23, 25, 59, 50, 56, - 70, 36, 28, 42, 32, 32, 38, 22, 30, 30, - 4, 4, 11, 0, 12, 7, 37, 1, 3, 7, - 6, 3, 12, 18, 3, 6, 12, 22, 18, 14, - 10, 19, 9, 9, 37, 21, 35, 35, 61, 55, - 65, 69, 23, 21, 67, 1, 1, 19, 41, 27, - 29, 41, 29, 39, 45, 59, 63, 79, 87, 0, - 17, 45, 15, 12, 8, 22, 26, 30, 54, 36, - 48, 52, 80, 60, 56, 82, 78, 96, 44, 18, - 9, 27, 53, 79, 101, 125, 18, 84, 70, 68, - 50, 62, 30, 22, 26, 6, 23, 11, 12, 7, - 32, 50, 5, 0, 20, 28, 8, 26, 50, 8, - 2, 72, 28, 9, 47, 73, 117, 125, 125, 125, - }, - - { - /* Context Tables for P, SP, B Slices :: cabac_init_idc = 0, qp = 32 */ - - 76, 10, 33, 76, 10, 33, 15, 10, 44, 22, - 3, 31, 30, 42, 104, 28, 38, 7, 22, 40, - 1, 19, 3, 41, 73, 4, 10, 111, 117, 117, - 56, 1, 11, 22, 40, 1, 21, 4, 28, 0, - 0, 11, 21, 7, 35, 25, 57, 10, 13, 21, - 1, 27, 23, 49, 20, 1, 5, 13, 10, 6, - 44, 0, 0, 0, 3, 61, 67, 10, 7, 9, - 36, 13, 53, 17, 42, 24, 84, 74, 18, 24, - 5, 28, 5, 7, 11, 29, 31, 37, 37, 46, - 0, 16, 23, 9, 21, 15, 33, 1, 17, 15, - 35, 34, 9, 4, 17, 35, 5, 19, 0, 10, - 6, 2, 22, 18, 19, 3, 2, 7, 4, 17, - 12, 17, 0, 12, 4, 30, 16, 2, 19, 8, - 11, 17, 7, 45, 15, 12, 0, 12, 14, 14, - 52, 26, 6, 3, 12, 3, 7, 8, 61, 13, - 0, 35, 1, 15, 18, 6, 13, 26, 12, 8, - 27, 18, 15, 25, 6, 47, 26, 38, 26, 28, - 34, 30, 16, 32, 32, 5, 10, 18, 6, 2, - 15, 0, 11, 7, 1, 7, 7, 1, 11, 33, - 11, 17, 25, 23, 37, 12, 20, 8, 6, 1, - 7, 5, 5, 19, 35, 31, 37, 61, 53, 81, - 11, 11, 43, 2, 9, 15, 19, 31, 41, 31, - 35, 43, 27, 37, 57, 43, 53, 1, 46, 36, - 22, 10, 16, 2, 7, 5, 9, 8, 66, 42, - 30, 16, 32, 12, 8, 3, 8, 6, 80, 58, - 46, 32, 40, 10, 1, 9, 13, 13, 84, 44, - 14, 4, 18, 5, 23, 23, 10, 84, 58, 34, - 20, 38, 10, 1, 7, 11, 124, 33, 21, 7, - 17, 21, 13, 5, 1, 7, 3, 2, 6, 25, - 15, 35, 23, 26, 25, 43, 17, 3, 9, 21, - 25, 15, 21, 33, 43, 49, 4, 6, 28, 0, - 9, 8, 8, 8, 7, 1, 2, 0, 23, 15, - 25, 3, 16, 37, 1, 28, 7, 8, 2, 10, - 34, 5, 5, 10, 22, 25, 27, 63, 48, 54, - 68, 32, 24, 38, 28, 28, 32, 16, 24, 24, - 1, 1, 15, 5, 4, 13, 47, 7, 9, 11, - 2, 7, 12, 18, 3, 8, 16, 18, 14, 10, - 6, 25, 13, 13, 43, 25, 39, 39, 65, 59, - 67, 71, 25, 23, 71, 5, 5, 23, 45, 31, - 33, 45, 33, 43, 49, 63, 67, 83, 89, 1, - 19, 47, 15, 12, 8, 22, 26, 30, 56, 36, - 50, 52, 82, 62, 58, 84, 80, 94, 40, 12, - 15, 33, 59, 87, 107, 125, 18, 84, 70, 68, - 50, 62, 30, 22, 26, 6, 23, 11, 12, 7, - 34, 52, 5, 0, 20, 28, 8, 26, 50, 8, - 0, 68, 22, 15, 53, 81, 125, 125, 125, 125, - }, - - { - /* Context Tables for P, SP, B Slices :: cabac_init_idc = 0, qp = 33 */ - - 74, 10, 33, 74, 10, 33, 11, 14, 46, 24, - 3, 33, 28, 40, 104, 28, 44, 7, 24, 42, - 1, 19, 1, 43, 75, 4, 8, 113, 119, 117, - 62, 2, 11, 24, 42, 1, 19, 8, 30, 0, - 2, 9, 19, 7, 35, 23, 57, 10, 11, 19, - 1, 27, 21, 49, 22, 0, 3, 11, 12, 6, - 44, 0, 0, 0, 1, 61, 67, 12, 7, 9, - 36, 11, 51, 13, 46, 28, 88, 78, 22, 26, - 1, 32, 1, 5, 7, 27, 29, 35, 35, 48, - 2, 18, 21, 7, 19, 13, 29, 1, 17, 15, - 35, 36, 9, 6, 15, 33, 3, 17, 2, 10, - 6, 4, 22, 18, 17, 3, 4, 7, 4, 15, - 12, 17, 0, 12, 2, 30, 16, 2, 17, 10, - 9, 17, 7, 43, 15, 12, 0, 14, 14, 14, - 54, 28, 8, 3, 14, 3, 7, 8, 61, 13, - 0, 35, 1, 17, 18, 6, 13, 28, 14, 8, - 29, 18, 15, 23, 6, 47, 26, 38, 26, 28, - 34, 30, 16, 32, 32, 5, 10, 18, 6, 2, - 15, 0, 11, 7, 1, 7, 7, 1, 11, 31, - 11, 15, 25, 25, 35, 10, 18, 6, 4, 5, - 11, 7, 7, 23, 37, 33, 39, 65, 55, 83, - 11, 11, 43, 0, 11, 17, 21, 33, 43, 33, - 37, 43, 27, 37, 55, 41, 51, 0, 48, 36, - 22, 12, 18, 4, 5, 3, 5, 10, 66, 42, - 30, 16, 34, 14, 10, 1, 12, 6, 82, 60, - 46, 32, 42, 10, 1, 7, 11, 13, 86, 44, - 14, 4, 20, 3, 21, 21, 10, 84, 58, 34, - 20, 38, 10, 0, 5, 9, 124, 31, 19, 5, - 13, 17, 11, 1, 2, 3, 0, 6, 10, 23, - 13, 33, 21, 30, 23, 43, 15, 1, 7, 21, - 25, 15, 21, 33, 45, 51, 4, 6, 30, 0, - 9, 8, 8, 8, 7, 1, 2, 0, 23, 15, - 25, 1, 18, 37, 1, 28, 7, 8, 2, 10, - 36, 5, 7, 10, 22, 25, 27, 65, 48, 54, - 68, 30, 22, 36, 24, 24, 28, 12, 20, 20, - 5, 5, 17, 9, 1, 19, 55, 11, 13, 13, - 0, 9, 12, 20, 1, 12, 22, 16, 12, 8, - 4, 29, 15, 15, 47, 27, 41, 41, 67, 61, - 69, 71, 25, 23, 73, 7, 7, 25, 47, 33, - 35, 47, 35, 45, 51, 65, 69, 85, 89, 1, - 19, 47, 13, 14, 10, 24, 28, 32, 60, 38, - 52, 54, 86, 66, 60, 88, 84, 94, 38, 8, - 19, 37, 63, 93, 111, 125, 20, 86, 72, 70, - 52, 64, 32, 24, 28, 8, 21, 9, 14, 5, - 38, 56, 3, 2, 22, 30, 10, 28, 52, 8, - 0, 66, 18, 19, 57, 87, 125, 125, 125, 125, - }, - - { - /* Context Tables for P, SP, B Slices :: cabac_init_idc = 0, qp = 34 */ - - 72, 10, 33, 72, 10, 33, 7, 16, 46, 24, - 3, 35, 26, 38, 104, 28, 48, 7, 26, 44, - 1, 21, 1, 45, 77, 2, 4, 117, 121, 119, - 68, 4, 11, 26, 44, 1, 19, 10, 30, 1, - 2, 9, 17, 7, 35, 23, 57, 10, 11, 17, - 1, 27, 21, 49, 22, 0, 3, 11, 12, 6, - 44, 0, 0, 0, 0, 61, 67, 12, 9, 9, - 36, 11, 51, 9, 50, 32, 90, 82, 24, 28, - 0, 34, 0, 3, 3, 27, 29, 35, 33, 48, - 2, 18, 19, 7, 17, 13, 27, 1, 17, 15, - 35, 36, 9, 6, 15, 33, 3, 17, 2, 10, - 6, 4, 22, 18, 17, 3, 4, 7, 4, 15, - 10, 17, 0, 10, 0, 28, 14, 0, 15, 10, - 9, 19, 9, 43, 17, 12, 0, 14, 14, 14, - 56, 28, 8, 3, 14, 3, 9, 8, 63, 13, - 0, 37, 1, 19, 18, 6, 15, 28, 14, 8, - 31, 18, 17, 23, 6, 49, 24, 38, 26, 28, - 34, 30, 16, 32, 32, 5, 10, 18, 6, 2, - 15, 0, 11, 7, 1, 7, 9, 3, 13, 31, - 11, 15, 27, 27, 35, 6, 14, 2, 0, 9, - 15, 11, 11, 27, 41, 37, 43, 69, 59, 85, - 11, 11, 45, 1, 13, 19, 23, 37, 45, 35, - 39, 45, 29, 39, 55, 41, 49, 0, 48, 36, - 22, 12, 18, 4, 5, 3, 3, 12, 66, 42, - 30, 16, 34, 14, 12, 0, 16, 6, 82, 60, - 46, 32, 42, 10, 1, 7, 9, 13, 86, 44, - 14, 4, 20, 3, 21, 19, 10, 82, 56, 32, - 18, 38, 10, 0, 5, 9, 124, 29, 17, 3, - 11, 15, 9, 0, 4, 1, 2, 8, 14, 21, - 11, 33, 19, 32, 23, 45, 15, 0, 7, 21, - 27, 15, 23, 35, 47, 53, 2, 6, 30, 0, - 11, 6, 8, 8, 9, 3, 2, 0, 25, 15, - 25, 1, 18, 37, 3, 26, 9, 8, 0, 8, - 36, 7, 9, 10, 22, 27, 29, 69, 46, 52, - 66, 28, 20, 34, 20, 20, 24, 8, 14, 14, - 11, 9, 19, 15, 7, 25, 63, 17, 17, 17, - 1, 11, 12, 22, 1, 14, 26, 12, 8, 4, - 0, 33, 19, 19, 51, 29, 45, 43, 71, 63, - 71, 73, 27, 23, 75, 9, 9, 29, 51, 37, - 39, 49, 39, 49, 53, 67, 71, 87, 91, 3, - 21, 49, 13, 14, 10, 26, 28, 34, 62, 40, - 54, 56, 88, 68, 62, 90, 86, 92, 34, 4, - 23, 43, 69, 99, 117, 125, 20, 86, 72, 70, - 52, 66, 32, 24, 28, 8, 21, 9, 16, 5, - 40, 58, 3, 4, 24, 32, 10, 28, 54, 8, - 0, 64, 14, 23, 63, 93, 125, 125, 125, 125, - }, - - { - /* Context Tables for P, SP, B Slices :: cabac_init_idc = 0, qp = 35 */ - - 70, 10, 33, 70, 10, 33, 3, 20, 48, 24, - 5, 39, 22, 36, 104, 28, 52, 7, 28, 46, - 1, 23, 1, 47, 79, 2, 0, 119, 123, 119, - 74, 6, 11, 28, 46, 1, 17, 12, 32, 1, - 2, 7, 15, 9, 37, 23, 57, 10, 11, 17, - 1, 27, 21, 49, 24, 0, 3, 11, 14, 6, - 44, 0, 0, 0, 0, 61, 67, 14, 11, 9, - 36, 11, 51, 5, 54, 34, 94, 86, 26, 30, - 4, 36, 2, 1, 0, 25, 29, 33, 31, 48, - 2, 18, 19, 7, 17, 11, 23, 1, 19, 17, - 37, 36, 9, 6, 13, 33, 1, 17, 4, 10, - 6, 4, 22, 16, 17, 3, 4, 7, 4, 15, - 8, 17, 0, 8, 1, 26, 12, 1, 15, 12, - 9, 21, 9, 41, 17, 12, 0, 14, 14, 14, - 58, 28, 8, 3, 16, 3, 11, 8, 65, 13, - 0, 37, 3, 21, 18, 6, 17, 28, 14, 8, - 35, 18, 19, 23, 6, 49, 22, 38, 26, 28, - 34, 30, 16, 32, 32, 5, 8, 18, 6, 2, - 15, 1, 13, 9, 3, 9, 11, 5, 13, 31, - 13, 15, 29, 31, 35, 4, 10, 1, 3, 13, - 19, 15, 15, 31, 45, 39, 45, 73, 63, 87, - 11, 11, 45, 3, 15, 21, 27, 39, 49, 37, - 41, 47, 29, 39, 55, 41, 49, 2, 48, 36, - 22, 12, 18, 4, 5, 1, 1, 12, 66, 42, - 30, 16, 36, 16, 14, 2, 20, 6, 82, 60, - 46, 32, 44, 10, 1, 7, 9, 13, 86, 44, - 12, 4, 20, 3, 21, 17, 10, 82, 56, 30, - 16, 38, 10, 0, 3, 7, 124, 27, 15, 3, - 9, 13, 7, 4, 6, 0, 4, 12, 16, 21, - 9, 33, 19, 36, 23, 45, 15, 0, 7, 23, - 27, 15, 25, 37, 49, 55, 2, 4, 30, 1, - 11, 6, 6, 8, 11, 3, 0, 0, 27, 15, - 27, 1, 18, 39, 3, 26, 11, 8, 1, 8, - 36, 9, 11, 8, 20, 29, 29, 71, 44, 50, - 66, 26, 18, 30, 16, 16, 20, 2, 10, 10, - 17, 15, 21, 21, 13, 31, 71, 23, 23, 21, - 3, 13, 12, 24, 1, 16, 30, 8, 4, 0, - 3, 37, 23, 21, 55, 33, 47, 45, 73, 67, - 73, 75, 27, 25, 77, 11, 13, 31, 55, 41, - 43, 53, 41, 53, 57, 69, 75, 91, 93, 5, - 23, 51, 13, 16, 10, 26, 30, 34, 64, 42, - 56, 58, 90, 70, 64, 94, 88, 92, 32, 0, - 29, 47, 75, 105, 123, 125, 22, 88, 74, 72, - 52, 68, 34, 24, 30, 10, 21, 7, 16, 3, - 42, 60, 3, 4, 24, 32, 10, 30, 56, 8, - 0, 62, 10, 29, 69, 99, 125, 125, 125, 125, - }, - - { - /* Context Tables for P, SP, B Slices :: cabac_init_idc = 0, qp = 36 */ - - 66, 10, 33, 66, 10, 33, 1, 22, 48, 24, - 5, 41, 20, 32, 104, 28, 58, 9, 30, 46, - 1, 25, 1, 49, 81, 0, 3, 123, 125, 121, - 80, 8, 11, 30, 46, 1, 17, 14, 32, 3, - 2, 7, 15, 9, 37, 21, 57, 10, 11, 15, - 3, 29, 21, 49, 24, 2, 3, 9, 14, 6, - 44, 0, 0, 0, 2, 63, 67, 14, 13, 9, - 36, 11, 51, 3, 56, 38, 96, 88, 28, 32, - 6, 40, 4, 0, 4, 25, 27, 33, 29, 48, - 2, 18, 17, 7, 15, 11, 21, 3, 19, 17, - 37, 36, 9, 6, 13, 33, 1, 17, 4, 10, - 4, 4, 22, 16, 17, 3, 4, 7, 4, 15, - 8, 19, 0, 8, 3, 24, 10, 3, 13, 12, - 9, 23, 11, 41, 19, 12, 1, 14, 14, 14, - 60, 30, 8, 5, 16, 5, 13, 6, 67, 13, - 0, 39, 3, 23, 16, 4, 17, 30, 14, 8, - 37, 16, 21, 23, 6, 51, 22, 38, 26, 28, - 34, 30, 16, 32, 30, 5, 8, 18, 6, 2, - 17, 1, 13, 9, 3, 9, 11, 7, 15, 31, - 13, 15, 31, 33, 35, 0, 6, 5, 7, 17, - 23, 19, 19, 35, 49, 43, 49, 79, 67, 89, - 11, 13, 47, 5, 17, 23, 29, 43, 51, 39, - 45, 47, 31, 41, 55, 41, 47, 2, 48, 36, - 22, 12, 18, 4, 5, 1, 0, 14, 66, 42, - 30, 16, 36, 16, 14, 2, 24, 6, 82, 60, - 46, 32, 44, 10, 1, 7, 7, 13, 86, 42, - 12, 4, 20, 3, 21, 17, 10, 80, 54, 28, - 14, 38, 10, 0, 3, 7, 124, 25, 13, 1, - 5, 11, 5, 6, 10, 2, 8, 14, 20, 19, - 9, 31, 17, 38, 21, 47, 15, 2, 7, 23, - 29, 17, 27, 39, 51, 57, 0, 4, 30, 1, - 13, 4, 6, 8, 13, 5, 0, 1, 29, 17, - 27, 1, 18, 39, 5, 24, 13, 8, 3, 6, - 36, 11, 13, 8, 20, 31, 31, 75, 42, 50, - 64, 24, 14, 28, 12, 12, 16, 1, 4, 4, - 23, 19, 25, 27, 21, 37, 79, 27, 27, 25, - 5, 17, 12, 26, 0, 18, 34, 6, 0, 3, - 5, 41, 27, 25, 59, 35, 51, 49, 77, 69, - 75, 77, 29, 25, 79, 15, 15, 35, 57, 45, - 47, 55, 45, 57, 59, 71, 77, 93, 93, 7, - 23, 53, 13, 16, 12, 28, 30, 36, 66, 42, - 58, 60, 92, 72, 66, 96, 90, 90, 28, 3, - 33, 53, 81, 111, 125, 125, 22, 88, 74, 72, - 54, 68, 34, 26, 30, 10, 19, 7, 18, 3, - 44, 62, 3, 6, 26, 34, 10, 30, 58, 8, - 0, 58, 6, 33, 75, 105, 125, 125, 125, 125, - }, - - { - /* Context Tables for P, SP, B Slices :: cabac_init_idc = 0, qp = 37 */ - - 64, 10, 33, 64, 10, 33, 2, 26, 48, 24, - 7, 45, 16, 30, 104, 28, 62, 9, 32, 48, - 1, 25, 0, 51, 83, 0, 7, 125, 125, 121, - 86, 12, 11, 32, 48, 1, 17, 16, 32, 3, - 2, 7, 13, 9, 39, 21, 57, 10, 11, 13, - 3, 29, 21, 49, 26, 2, 1, 9, 16, 6, - 44, 0, 0, 0, 2, 63, 67, 16, 15, 9, - 36, 9, 51, 0, 60, 40, 100, 92, 32, 34, - 8, 42, 6, 2, 8, 23, 27, 31, 27, 48, - 2, 18, 17, 7, 15, 9, 17, 3, 19, 17, - 37, 36, 9, 8, 11, 33, 1, 17, 6, 10, - 4, 4, 22, 16, 15, 3, 6, 7, 4, 15, - 6, 19, 0, 6, 5, 24, 8, 5, 11, 14, - 9, 25, 11, 39, 19, 12, 1, 14, 14, 14, - 62, 30, 8, 5, 16, 5, 15, 6, 69, 13, - 0, 39, 5, 25, 16, 4, 19, 30, 14, 8, - 39, 16, 23, 23, 6, 51, 20, 38, 26, 28, - 34, 30, 16, 32, 30, 5, 8, 18, 6, 2, - 17, 1, 13, 11, 3, 9, 13, 9, 15, 31, - 15, 15, 33, 35, 35, 1, 2, 7, 9, 21, - 27, 23, 23, 39, 53, 47, 53, 83, 69, 91, - 11, 13, 47, 7, 19, 25, 31, 45, 55, 41, - 47, 49, 31, 41, 55, 41, 47, 2, 48, 36, - 22, 12, 18, 6, 3, 0, 2, 14, 66, 42, - 30, 16, 36, 18, 16, 4, 28, 6, 82, 60, - 46, 32, 44, 10, 1, 7, 5, 13, 88, 42, - 10, 4, 20, 3, 21, 15, 10, 80, 52, 26, - 12, 38, 10, 0, 3, 5, 124, 23, 11, 0, - 3, 9, 3, 8, 12, 4, 10, 18, 24, 17, - 7, 31, 17, 40, 21, 47, 13, 4, 7, 25, - 29, 17, 27, 41, 53, 59, 1, 2, 30, 3, - 13, 4, 6, 8, 15, 7, 0, 1, 31, 17, - 27, 1, 18, 39, 7, 24, 13, 8, 5, 4, - 36, 13, 15, 6, 18, 33, 33, 79, 40, 48, - 64, 22, 12, 24, 8, 8, 12, 7, 1, 0, - 29, 23, 27, 33, 27, 43, 87, 33, 33, 29, - 7, 19, 12, 28, 0, 20, 38, 2, 1, 7, - 9, 45, 31, 27, 63, 37, 55, 51, 81, 73, - 77, 79, 29, 25, 81, 17, 19, 39, 61, 47, - 49, 59, 47, 59, 63, 73, 79, 95, 95, 7, - 25, 55, 11, 18, 12, 28, 32, 38, 68, 44, - 60, 62, 96, 74, 68, 98, 94, 90, 24, 7, - 39, 57, 87, 117, 125, 125, 22, 90, 76, 74, - 54, 70, 34, 26, 32, 12, 19, 7, 20, 1, - 46, 64, 1, 8, 26, 34, 10, 32, 60, 8, - 0, 56, 2, 39, 81, 111, 125, 125, 125, 125, - }, - - { - /* Context Tables for P, SP, B Slices :: cabac_init_idc = 0, qp = 38 */ - - 62, 10, 35, 62, 10, 35, 6, 28, 50, 24, - 7, 47, 14, 28, 104, 28, 66, 9, 32, 50, - 1, 27, 0, 53, 85, 1, 9, 125, 125, 123, - 92, 14, 11, 32, 50, 1, 15, 18, 34, 5, - 4, 5, 11, 11, 39, 21, 57, 10, 9, 13, - 3, 29, 19, 49, 26, 2, 1, 9, 16, 6, - 44, 0, 0, 0, 4, 63, 67, 16, 15, 11, - 36, 9, 49, 4, 64, 44, 102, 96, 34, 36, - 12, 44, 8, 2, 10, 23, 27, 31, 27, 50, - 2, 18, 15, 5, 13, 9, 15, 3, 21, 19, - 39, 36, 9, 8, 11, 33, 0, 17, 6, 10, - 4, 6, 22, 14, 15, 3, 6, 7, 4, 15, - 4, 19, 0, 4, 7, 22, 8, 5, 11, 14, - 9, 25, 13, 39, 21, 12, 1, 14, 14, 14, - 62, 30, 8, 5, 18, 5, 17, 6, 69, 15, - 0, 41, 5, 27, 16, 4, 21, 30, 14, 8, - 43, 16, 25, 23, 6, 53, 18, 38, 24, 28, - 34, 30, 16, 32, 30, 5, 6, 18, 4, 2, - 17, 3, 15, 11, 5, 11, 15, 11, 17, 31, - 15, 13, 35, 39, 35, 5, 1, 11, 13, 25, - 31, 27, 27, 43, 57, 49, 55, 87, 73, 93, - 11, 13, 49, 9, 21, 27, 35, 49, 57, 43, - 49, 51, 33, 43, 55, 41, 45, 4, 48, 36, - 22, 14, 18, 6, 3, 0, 4, 16, 64, 42, - 30, 16, 38, 18, 18, 6, 32, 6, 84, 60, - 46, 32, 46, 10, 1, 5, 5, 13, 88, 42, - 10, 4, 20, 1, 19, 13, 10, 78, 52, 24, - 12, 38, 10, 2, 1, 5, 124, 23, 9, 0, - 1, 7, 1, 12, 14, 6, 12, 20, 26, 17, - 5, 31, 15, 44, 21, 49, 13, 4, 7, 25, - 31, 17, 29, 43, 55, 61, 1, 2, 30, 3, - 15, 2, 4, 8, 15, 7, 1, 1, 31, 17, - 29, 1, 18, 41, 7, 22, 15, 6, 7, 4, - 38, 13, 17, 6, 18, 33, 33, 81, 38, 46, - 62, 20, 10, 22, 4, 4, 8, 11, 5, 5, - 35, 29, 29, 37, 33, 49, 95, 39, 37, 33, - 9, 21, 12, 30, 0, 24, 44, 1, 5, 11, - 13, 49, 35, 31, 67, 41, 57, 53, 83, 75, - 79, 81, 31, 27, 83, 19, 21, 41, 65, 51, - 53, 61, 51, 63, 65, 77, 83, 99, 97, 9, - 27, 57, 11, 18, 12, 30, 32, 38, 72, 46, - 62, 64, 98, 78, 70, 102, 96, 88, 22, 11, - 43, 63, 91, 123, 125, 125, 24, 90, 76, 74, - 54, 72, 36, 26, 32, 12, 19, 5, 20, 1, - 48, 66, 1, 8, 28, 36, 10, 32, 62, 8, - 0, 54, 1, 43, 87, 119, 125, 125, 125, 125, - }, - - { - /* Context Tables for P, SP, B Slices :: cabac_init_idc = 0, qp = 39 */ - - 60, 10, 35, 60, 10, 35, 10, 32, 50, 24, - 9, 51, 10, 24, 104, 28, 72, 11, 34, 50, - 1, 29, 0, 55, 87, 1, 13, 125, 125, 123, - 98, 16, 11, 34, 50, 1, 15, 20, 34, 5, - 4, 5, 11, 11, 41, 19, 57, 10, 9, 11, - 5, 29, 19, 49, 28, 4, 1, 7, 18, 6, - 44, 0, 0, 0, 4, 63, 67, 18, 17, 11, - 36, 9, 49, 6, 68, 46, 106, 100, 36, 38, - 14, 48, 10, 4, 14, 21, 25, 29, 25, 50, - 2, 18, 15, 5, 13, 7, 11, 5, 21, 19, - 39, 36, 9, 8, 9, 33, 0, 17, 8, 10, - 2, 6, 22, 14, 15, 3, 6, 7, 4, 15, - 4, 19, 0, 4, 9, 20, 6, 7, 9, 16, - 9, 27, 13, 37, 21, 12, 3, 14, 14, 14, - 64, 32, 8, 5, 18, 5, 19, 6, 71, 15, - 0, 41, 7, 29, 14, 4, 21, 32, 14, 8, - 45, 14, 27, 23, 6, 53, 18, 38, 24, 28, - 34, 30, 16, 32, 30, 5, 6, 18, 4, 2, - 17, 3, 15, 13, 5, 11, 15, 13, 17, 31, - 17, 13, 37, 41, 35, 7, 5, 15, 17, 29, - 35, 31, 31, 47, 61, 53, 59, 93, 77, 95, - 11, 15, 49, 11, 23, 29, 37, 51, 61, 45, - 51, 51, 33, 43, 55, 41, 45, 4, 48, 36, - 22, 14, 18, 6, 3, 2, 6, 16, 64, 42, - 30, 16, 38, 20, 20, 6, 36, 6, 84, 60, - 46, 32, 46, 10, 1, 5, 3, 13, 88, 40, - 8, 4, 20, 1, 19, 13, 10, 78, 50, 22, - 10, 38, 10, 2, 1, 3, 124, 21, 7, 2, - 2, 5, 0, 14, 18, 8, 16, 24, 30, 15, - 3, 29, 15, 46, 19, 49, 13, 6, 7, 27, - 31, 19, 31, 45, 57, 63, 3, 0, 30, 5, - 15, 2, 4, 8, 17, 9, 1, 3, 33, 17, - 29, 1, 18, 41, 9, 22, 17, 6, 9, 2, - 38, 15, 19, 4, 16, 35, 35, 85, 36, 46, - 62, 18, 6, 18, 0, 0, 4, 17, 11, 9, - 41, 33, 33, 43, 41, 55, 103, 43, 43, 37, - 11, 23, 12, 32, 2, 26, 48, 3, 9, 15, - 15, 53, 39, 33, 71, 43, 61, 57, 87, 79, - 81, 83, 31, 27, 85, 23, 25, 45, 67, 55, - 57, 65, 53, 67, 69, 79, 85, 101, 97, 11, - 27, 59, 11, 20, 14, 30, 34, 40, 74, 48, - 64, 66, 100, 80, 72, 104, 98, 88, 18, 15, - 49, 67, 97, 125, 125, 125, 24, 92, 78, 76, - 56, 74, 36, 28, 34, 14, 17, 5, 22, 0, - 50, 68, 1, 10, 28, 36, 10, 34, 64, 8, - 0, 50, 5, 49, 93, 125, 125, 125, 125, 125, - }, - - { - /* Context Tables for P, SP, B Slices :: cabac_init_idc = 0, qp = 40 */ - - 56, 8, 35, 56, 8, 35, 12, 34, 50, 24, - 9, 53, 8, 22, 104, 28, 76, 11, 36, 52, - 1, 31, 0, 57, 91, 3, 17, 125, 125, 125, - 102, 18, 11, 36, 52, 1, 15, 22, 34, 7, - 4, 5, 9, 13, 41, 19, 59, 10, 9, 11, - 5, 31, 19, 49, 28, 4, 1, 7, 18, 6, - 44, 0, 0, 0, 6, 65, 67, 18, 19, 11, - 36, 9, 49, 10, 70, 50, 108, 102, 38, 40, - 16, 50, 12, 6, 18, 21, 25, 29, 23, 50, - 2, 18, 13, 5, 11, 7, 9, 5, 23, 21, - 41, 36, 9, 8, 9, 33, 0, 17, 8, 8, - 2, 6, 22, 12, 15, 3, 6, 7, 2, 15, - 2, 21, 0, 2, 13, 18, 4, 9, 9, 16, - 9, 29, 15, 37, 23, 10, 3, 14, 14, 14, - 66, 32, 8, 7, 18, 7, 21, 4, 73, 15, - 0, 43, 7, 31, 14, 2, 23, 32, 14, 8, - 49, 14, 29, 23, 6, 55, 16, 36, 24, 28, - 34, 28, 14, 32, 28, 7, 4, 18, 4, 0, - 19, 5, 17, 13, 7, 13, 17, 15, 19, 31, - 17, 13, 39, 45, 35, 11, 9, 19, 21, 33, - 41, 35, 35, 51, 65, 57, 63, 97, 81, 97, - 11, 15, 51, 13, 27, 33, 41, 55, 63, 49, - 55, 53, 35, 45, 55, 41, 43, 4, 48, 36, - 22, 14, 18, 6, 3, 2, 8, 18, 64, 42, - 30, 16, 38, 20, 20, 8, 38, 6, 84, 60, - 46, 30, 46, 10, 1, 5, 3, 13, 88, 40, - 8, 4, 20, 1, 19, 11, 10, 76, 48, 20, - 8, 36, 10, 2, 1, 3, 124, 19, 5, 2, - 4, 3, 0, 16, 20, 10, 18, 26, 32, 15, - 3, 29, 13, 48, 19, 51, 13, 6, 7, 27, - 33, 19, 33, 47, 61, 65, 5, 0, 30, 5, - 17, 0, 2, 6, 19, 11, 3, 3, 35, 19, - 31, 1, 18, 43, 11, 20, 19, 6, 11, 0, - 38, 17, 21, 4, 16, 37, 37, 89, 34, 44, - 60, 14, 4, 16, 3, 3, 1, 21, 17, 15, - 47, 39, 35, 49, 47, 61, 111, 49, 47, 41, - 15, 27, 12, 32, 2, 28, 52, 7, 13, 19, - 19, 59, 43, 37, 75, 47, 65, 59, 91, 81, - 83, 85, 33, 29, 87, 25, 27, 49, 71, 59, - 61, 67, 57, 71, 71, 81, 89, 105, 99, 13, - 29, 61, 11, 20, 14, 32, 34, 40, 76, 48, - 66, 68, 102, 82, 74, 106, 100, 86, 14, 19, - 53, 73, 103, 125, 125, 125, 24, 92, 78, 76, - 56, 74, 36, 28, 34, 14, 17, 5, 22, 0, - 52, 70, 1, 10, 30, 38, 10, 34, 64, 8, - 1, 48, 9, 53, 99, 125, 125, 125, 125, 125, - }, - - { - /* Context Tables for P, SP, B Slices :: cabac_init_idc = 0, qp = 41 */ - - 54, 8, 35, 54, 8, 35, 16, 36, 52, 24, - 9, 55, 6, 20, 104, 28, 80, 11, 38, 54, - 1, 31, 2, 59, 93, 5, 21, 125, 125, 125, - 108, 22, 11, 38, 54, 1, 13, 24, 36, 9, - 4, 3, 7, 13, 41, 19, 59, 10, 9, 9, - 5, 31, 19, 49, 28, 4, 0, 7, 18, 6, - 44, 0, 0, 0, 8, 65, 67, 18, 21, 11, - 36, 7, 49, 14, 74, 54, 110, 106, 42, 42, - 20, 52, 16, 8, 22, 21, 25, 29, 21, 50, - 2, 18, 11, 5, 9, 5, 7, 5, 23, 21, - 41, 36, 9, 10, 7, 31, 2, 17, 8, 8, - 2, 6, 22, 12, 13, 3, 8, 7, 2, 13, - 0, 21, 0, 0, 15, 18, 2, 11, 7, 16, - 7, 31, 17, 37, 25, 10, 3, 16, 14, 14, - 68, 32, 8, 7, 20, 7, 21, 4, 75, 15, - 0, 45, 7, 33, 14, 2, 25, 32, 14, 8, - 51, 14, 29, 23, 6, 57, 14, 36, 24, 28, - 34, 28, 14, 32, 28, 7, 4, 18, 4, 0, - 19, 5, 17, 13, 7, 13, 19, 15, 19, 31, - 17, 13, 41, 47, 35, 15, 11, 21, 23, 37, - 45, 37, 37, 55, 69, 59, 65, 101, 83, 99, - 11, 15, 53, 15, 29, 35, 43, 57, 65, 51, - 57, 55, 37, 47, 55, 39, 41, 6, 50, 36, - 22, 14, 20, 8, 1, 4, 10, 20, 64, 42, - 30, 16, 40, 20, 22, 10, 42, 6, 84, 60, - 46, 30, 48, 10, 1, 5, 1, 13, 90, 40, - 8, 4, 22, 1, 19, 9, 10, 76, 48, 20, - 6, 36, 10, 2, 0, 1, 124, 17, 3, 4, - 6, 0, 2, 20, 22, 14, 20, 28, 36, 13, - 1, 29, 11, 52, 19, 53, 11, 8, 7, 27, - 35, 19, 33, 49, 63, 67, 5, 0, 30, 5, - 17, 1, 2, 6, 21, 11, 3, 3, 37, 19, - 31, 0, 20, 43, 11, 18, 19, 6, 11, 0, - 38, 19, 23, 4, 16, 39, 37, 91, 34, 42, - 58, 12, 2, 14, 7, 7, 5, 25, 21, 21, - 51, 43, 37, 55, 53, 67, 119, 55, 51, 43, - 17, 29, 12, 34, 2, 30, 56, 11, 15, 23, - 23, 63, 45, 39, 79, 49, 67, 61, 93, 83, - 85, 85, 33, 29, 89, 27, 29, 51, 75, 61, - 63, 69, 59, 73, 73, 83, 91, 107, 101, 13, - 31, 61, 9, 20, 14, 34, 36, 42, 78, 50, - 68, 70, 106, 84, 76, 110, 104, 84, 12, 23, - 57, 79, 109, 125, 125, 125, 26, 92, 78, 78, - 56, 76, 38, 28, 36, 16, 17, 3, 24, 0, - 54, 74, 0, 12, 32, 40, 10, 36, 66, 8, - 1, 46, 13, 57, 103, 125, 125, 125, 125, 125, - }, - - { - /* Context Tables for P, SP, B Slices :: cabac_init_idc = 0, qp = 42 */ - - 52, 8, 35, 52, 8, 35, 20, 40, 52, 24, - 11, 59, 2, 16, 104, 28, 86, 13, 40, 54, - 1, 33, 2, 61, 95, 5, 25, 125, 125, 125, - 114, 24, 11, 40, 54, 1, 13, 26, 36, 9, - 4, 3, 7, 13, 43, 17, 59, 10, 9, 7, - 7, 31, 19, 49, 30, 6, 0, 5, 20, 6, - 44, 0, 0, 0, 8, 65, 67, 20, 23, 11, - 36, 7, 49, 16, 78, 56, 114, 110, 44, 44, - 22, 56, 18, 10, 26, 19, 23, 27, 19, 50, - 2, 18, 11, 5, 9, 5, 3, 7, 23, 21, - 41, 36, 9, 10, 7, 31, 2, 17, 10, 8, - 0, 6, 22, 12, 13, 3, 8, 7, 2, 13, - 0, 21, 0, 0, 17, 16, 0, 13, 5, 18, - 7, 33, 17, 35, 25, 10, 5, 16, 14, 14, - 70, 34, 8, 7, 20, 7, 23, 4, 77, 15, - 0, 45, 9, 35, 12, 2, 25, 34, 14, 8, - 53, 12, 31, 23, 6, 57, 14, 36, 24, 28, - 34, 28, 14, 32, 28, 7, 4, 18, 4, 0, - 19, 5, 17, 15, 7, 13, 19, 17, 21, 31, - 19, 13, 43, 49, 35, 17, 15, 25, 27, 41, - 49, 41, 41, 59, 73, 63, 69, 107, 87, 101, - 11, 17, 53, 17, 31, 37, 45, 61, 69, 53, - 59, 55, 37, 47, 55, 39, 41, 6, 50, 36, - 22, 14, 20, 8, 1, 4, 12, 20, 64, 42, - 30, 16, 40, 22, 24, 10, 46, 6, 84, 60, - 46, 30, 48, 10, 1, 5, 0, 13, 90, 38, - 6, 4, 22, 1, 19, 9, 10, 74, 46, 18, - 4, 36, 10, 2, 0, 1, 124, 15, 1, 6, - 10, 2, 4, 22, 26, 16, 24, 32, 40, 11, - 0, 27, 11, 54, 17, 53, 11, 10, 7, 29, - 35, 21, 35, 51, 65, 69, 7, 1, 30, 7, - 19, 1, 2, 6, 23, 13, 3, 5, 39, 19, - 31, 0, 20, 43, 13, 18, 21, 6, 13, 1, - 38, 21, 25, 2, 14, 41, 39, 95, 32, 42, - 58, 10, 1, 10, 11, 11, 9, 31, 27, 25, - 57, 47, 41, 61, 61, 73, 125, 59, 57, 47, - 19, 31, 12, 36, 4, 32, 60, 13, 19, 27, - 25, 67, 49, 43, 83, 51, 71, 65, 97, 87, - 87, 87, 35, 29, 91, 31, 33, 55, 77, 65, - 67, 73, 63, 77, 77, 85, 93, 109, 101, 15, - 31, 63, 9, 22, 16, 34, 36, 44, 80, 52, - 70, 72, 108, 86, 78, 112, 106, 84, 8, 27, - 63, 83, 115, 125, 125, 125, 26, 94, 80, 78, - 58, 78, 38, 30, 36, 16, 15, 3, 26, 2, - 56, 76, 0, 14, 32, 40, 10, 36, 68, 8, - 1, 42, 17, 63, 109, 125, 125, 125, 125, 125, - }, - - { - /* Context Tables for P, SP, B Slices :: cabac_init_idc = 0, qp = 43 */ - - 50, 8, 37, 50, 8, 37, 24, 42, 54, 24, - 11, 61, 0, 14, 104, 28, 90, 13, 40, 56, - 1, 35, 2, 63, 97, 7, 27, 125, 125, 125, - 120, 26, 11, 40, 56, 1, 11, 28, 38, 11, - 6, 1, 5, 15, 43, 17, 59, 10, 7, 7, - 7, 31, 17, 49, 30, 6, 0, 5, 20, 6, - 44, 0, 0, 0, 10, 65, 67, 20, 23, 13, - 36, 7, 47, 20, 82, 60, 116, 114, 46, 46, - 26, 58, 20, 10, 28, 19, 23, 27, 19, 52, - 2, 18, 9, 3, 7, 3, 1, 7, 25, 23, - 43, 36, 9, 10, 5, 31, 4, 17, 10, 8, - 0, 8, 22, 10, 13, 3, 8, 7, 2, 13, - 1, 21, 0, 1, 19, 14, 0, 13, 5, 18, - 7, 33, 19, 35, 27, 10, 5, 16, 14, 14, - 70, 34, 8, 7, 22, 7, 25, 4, 77, 17, - 0, 47, 9, 37, 12, 2, 27, 34, 14, 8, - 57, 12, 33, 23, 6, 59, 12, 36, 22, 28, - 34, 28, 14, 32, 28, 7, 2, 18, 2, 0, - 19, 7, 19, 15, 9, 15, 21, 19, 21, 31, - 19, 11, 45, 53, 35, 21, 19, 29, 31, 45, - 53, 45, 45, 63, 77, 65, 71, 111, 91, 103, - 11, 17, 55, 19, 33, 39, 49, 63, 71, 55, - 61, 57, 39, 49, 55, 39, 39, 8, 50, 36, - 22, 16, 20, 8, 1, 6, 14, 22, 62, 42, - 30, 16, 42, 22, 26, 12, 50, 6, 86, 60, - 46, 30, 50, 10, 1, 3, 0, 13, 90, 38, - 6, 4, 22, 0, 17, 7, 10, 74, 46, 16, - 4, 36, 10, 4, 2, 0, 124, 15, 0, 6, - 12, 4, 6, 26, 28, 18, 26, 34, 42, 11, - 2, 27, 9, 58, 17, 55, 11, 10, 7, 29, - 37, 21, 37, 53, 67, 71, 7, 1, 30, 7, - 19, 3, 0, 6, 23, 13, 5, 5, 39, 19, - 33, 0, 20, 45, 13, 16, 23, 4, 15, 1, - 40, 21, 27, 2, 14, 41, 39, 97, 30, 40, - 56, 8, 3, 8, 15, 15, 13, 35, 31, 31, - 63, 53, 43, 65, 67, 79, 125, 65, 61, 51, - 21, 33, 12, 38, 4, 36, 66, 17, 23, 31, - 29, 71, 53, 45, 87, 55, 73, 67, 99, 89, - 89, 89, 35, 31, 93, 33, 35, 57, 81, 69, - 71, 75, 65, 81, 79, 89, 97, 113, 103, 17, - 33, 65, 9, 22, 16, 36, 38, 44, 84, 54, - 72, 74, 110, 90, 80, 116, 108, 82, 6, 31, - 67, 89, 119, 125, 125, 125, 28, 94, 80, 80, - 58, 80, 40, 30, 38, 18, 15, 1, 26, 2, - 58, 78, 0, 14, 34, 42, 10, 38, 70, 8, - 1, 40, 21, 67, 115, 125, 125, 125, 125, 125, - }, - - { - /* Context Tables for P, SP, B Slices :: cabac_init_idc = 0, qp = 44 */ - - 46, 8, 37, 46, 8, 37, 26, 46, 54, 24, - 13, 65, 3, 12, 104, 28, 94, 13, 42, 58, - 1, 37, 2, 65, 99, 7, 31, 125, 125, 125, - 124, 28, 11, 42, 58, 1, 11, 30, 38, 11, - 6, 1, 3, 15, 45, 17, 59, 10, 7, 5, - 7, 33, 17, 49, 32, 6, 0, 5, 22, 6, - 44, 0, 0, 0, 10, 67, 67, 22, 25, 13, - 36, 7, 47, 24, 84, 62, 120, 116, 48, 48, - 28, 60, 22, 12, 32, 17, 23, 25, 17, 52, - 2, 18, 9, 3, 7, 3, 2, 7, 25, 23, - 43, 36, 9, 10, 5, 31, 4, 17, 12, 8, - 0, 8, 22, 10, 13, 3, 8, 7, 2, 13, - 3, 23, 0, 3, 21, 12, 1, 15, 3, 20, - 7, 35, 19, 33, 27, 10, 5, 16, 14, 14, - 72, 34, 8, 9, 22, 9, 27, 2, 79, 17, - 0, 47, 11, 39, 12, 0, 29, 34, 14, 8, - 59, 12, 35, 23, 6, 59, 10, 36, 22, 28, - 34, 28, 14, 32, 26, 7, 2, 18, 2, 0, - 21, 7, 19, 17, 9, 15, 23, 21, 23, 31, - 21, 11, 47, 55, 35, 23, 23, 33, 35, 49, - 57, 49, 49, 67, 81, 69, 75, 115, 95, 105, - 11, 17, 55, 21, 35, 41, 51, 67, 75, 57, - 65, 59, 39, 49, 55, 39, 39, 8, 50, 36, - 22, 16, 20, 8, 1, 6, 16, 22, 62, 42, - 30, 16, 42, 24, 26, 14, 54, 6, 86, 60, - 46, 30, 50, 10, 1, 3, 2, 13, 90, 38, - 4, 4, 22, 0, 17, 5, 10, 72, 44, 14, - 2, 36, 10, 4, 2, 0, 124, 13, 2, 8, - 14, 6, 8, 28, 30, 20, 28, 38, 46, 9, - 2, 27, 9, 60, 17, 55, 11, 12, 7, 31, - 37, 21, 39, 55, 69, 73, 9, 3, 30, 9, - 21, 3, 0, 6, 25, 15, 5, 5, 41, 21, - 33, 0, 20, 45, 15, 16, 25, 4, 17, 3, - 40, 23, 29, 0, 12, 43, 41, 101, 28, 38, - 56, 6, 5, 4, 19, 19, 17, 41, 37, 35, - 69, 57, 45, 71, 73, 85, 125, 71, 67, 55, - 23, 37, 12, 40, 4, 38, 70, 21, 27, 35, - 33, 75, 57, 49, 91, 57, 77, 69, 103, 93, - 91, 91, 37, 31, 95, 35, 39, 61, 85, 73, - 75, 79, 69, 85, 83, 91, 99, 115, 105, 19, - 35, 67, 9, 24, 16, 36, 38, 46, 86, 54, - 74, 76, 112, 92, 82, 118, 110, 82, 2, 35, - 73, 93, 125, 125, 125, 125, 28, 96, 82, 80, - 58, 80, 40, 30, 38, 18, 15, 1, 28, 4, - 60, 80, 0, 16, 34, 42, 10, 38, 72, 8, - 1, 38, 25, 73, 121, 125, 125, 125, 125, 125, - }, - - { - /* Context Tables for P, SP, B Slices :: cabac_init_idc = 0, qp = 45 */ - - 44, 8, 37, 44, 8, 37, 30, 48, 54, 24, - 13, 67, 5, 8, 104, 28, 100, 15, 44, 58, - 1, 37, 4, 67, 101, 9, 35, 125, 125, 125, - 124, 32, 11, 44, 58, 1, 11, 32, 38, 13, - 6, 1, 3, 15, 45, 15, 59, 10, 7, 3, - 9, 33, 17, 49, 32, 8, 2, 3, 22, 6, - 44, 0, 0, 0, 12, 67, 67, 22, 27, 13, - 36, 5, 47, 26, 88, 66, 122, 120, 52, 50, - 30, 64, 24, 14, 36, 17, 21, 25, 15, 52, - 2, 18, 7, 3, 5, 1, 4, 9, 25, 23, - 43, 36, 9, 12, 3, 31, 4, 17, 12, 8, - 1, 8, 22, 10, 11, 3, 10, 7, 2, 13, - 3, 23, 0, 3, 23, 12, 3, 17, 1, 20, - 7, 37, 21, 33, 29, 10, 7, 16, 14, 14, - 74, 36, 8, 9, 22, 9, 29, 2, 81, 17, - 0, 49, 11, 41, 10, 0, 29, 36, 14, 8, - 61, 10, 37, 23, 6, 61, 10, 36, 22, 28, - 34, 28, 14, 32, 26, 7, 2, 18, 2, 0, - 21, 7, 19, 17, 9, 15, 23, 23, 23, 31, - 21, 11, 49, 57, 35, 27, 27, 35, 37, 53, - 61, 53, 53, 71, 85, 73, 79, 121, 97, 107, - 11, 19, 57, 23, 37, 43, 53, 69, 77, 59, - 67, 59, 41, 51, 55, 39, 37, 8, 50, 36, - 22, 16, 20, 10, 0, 8, 18, 24, 62, 42, - 30, 16, 42, 24, 28, 14, 58, 6, 86, 60, - 46, 30, 50, 10, 1, 3, 4, 13, 92, 36, - 4, 4, 22, 0, 17, 5, 10, 72, 42, 12, - 0, 36, 10, 4, 2, 2, 124, 11, 4, 10, - 18, 8, 10, 30, 34, 22, 32, 40, 50, 7, - 4, 25, 7, 62, 15, 57, 9, 14, 7, 31, - 39, 23, 39, 57, 71, 75, 11, 3, 30, 9, - 21, 5, 0, 6, 27, 17, 5, 7, 43, 21, - 33, 0, 20, 45, 17, 14, 25, 4, 19, 5, - 40, 25, 31, 0, 12, 45, 43, 105, 26, 38, - 54, 4, 9, 2, 23, 23, 21, 45, 43, 41, - 75, 61, 49, 77, 81, 91, 125, 75, 71, 59, - 25, 39, 12, 42, 6, 40, 74, 23, 29, 39, - 35, 79, 61, 51, 95, 59, 81, 73, 107, 95, - 93, 93, 37, 31, 97, 39, 41, 65, 87, 75, - 77, 81, 71, 87, 85, 93, 101, 117, 105, 19, - 35, 69, 7, 24, 18, 38, 40, 48, 88, 56, - 76, 78, 116, 94, 84, 120, 114, 80, 1, 39, - 77, 99, 125, 125, 125, 125, 28, 96, 82, 82, - 60, 82, 40, 32, 40, 20, 13, 1, 30, 4, - 62, 82, 2, 18, 36, 44, 10, 40, 74, 8, - 1, 34, 29, 77, 125, 125, 125, 125, 125, 125, - }, - - { - /* Context Tables for P, SP, B Slices :: cabac_init_idc = 0, qp = 46 */ - - 42, 8, 37, 42, 8, 37, 34, 52, 56, 24, - 15, 71, 9, 6, 104, 28, 104, 15, 46, 60, - 1, 39, 4, 69, 103, 9, 39, 125, 125, 125, - 124, 34, 11, 46, 60, 1, 9, 34, 40, 13, - 6, 0, 1, 17, 47, 15, 59, 10, 7, 3, - 9, 33, 17, 49, 34, 8, 2, 3, 24, 6, - 44, 0, 0, 0, 12, 67, 67, 24, 29, 13, - 36, 5, 47, 30, 92, 68, 124, 124, 54, 52, - 34, 66, 26, 16, 40, 15, 21, 23, 13, 52, - 2, 18, 7, 3, 5, 1, 8, 9, 27, 25, - 45, 36, 9, 12, 3, 31, 6, 17, 14, 8, - 1, 8, 22, 8, 11, 3, 10, 7, 2, 13, - 5, 23, 0, 5, 25, 10, 5, 19, 1, 22, - 7, 39, 21, 31, 29, 10, 7, 16, 14, 14, - 76, 36, 8, 9, 24, 9, 31, 2, 83, 17, - 0, 49, 13, 43, 10, 0, 31, 36, 14, 8, - 65, 10, 39, 23, 6, 61, 8, 36, 22, 28, - 34, 28, 14, 32, 26, 7, 0, 18, 2, 0, - 21, 9, 21, 19, 11, 17, 25, 25, 25, 31, - 23, 11, 51, 61, 35, 29, 31, 39, 41, 57, - 65, 57, 57, 75, 89, 75, 81, 125, 101, 109, - 11, 19, 57, 25, 39, 45, 57, 73, 81, 61, - 69, 61, 41, 51, 55, 39, 37, 10, 50, 36, - 22, 16, 20, 10, 0, 8, 20, 24, 62, 42, - 30, 16, 44, 26, 30, 16, 62, 6, 86, 60, - 46, 30, 52, 10, 1, 3, 4, 13, 92, 36, - 2, 4, 22, 0, 17, 3, 10, 70, 42, 10, - 1, 36, 10, 4, 4, 2, 124, 9, 6, 10, - 20, 10, 12, 34, 36, 24, 34, 44, 52, 7, - 6, 25, 7, 66, 15, 57, 9, 14, 7, 33, - 39, 23, 41, 59, 73, 77, 11, 5, 30, 11, - 23, 5, 1, 6, 29, 17, 7, 7, 45, 21, - 35, 0, 20, 47, 17, 14, 27, 4, 21, 5, - 40, 27, 33, 1, 10, 47, 43, 107, 24, 36, - 54, 2, 11, 1, 27, 27, 25, 51, 47, 45, - 81, 67, 51, 83, 87, 97, 125, 81, 77, 63, - 27, 41, 12, 44, 6, 42, 78, 27, 33, 43, - 39, 83, 65, 55, 99, 63, 83, 75, 109, 99, - 95, 95, 39, 33, 99, 41, 45, 67, 91, 79, - 81, 85, 75, 91, 89, 95, 105, 121, 107, 21, - 37, 71, 7, 26, 18, 38, 40, 48, 90, 58, - 78, 80, 118, 96, 86, 124, 116, 80, 3, 43, - 83, 103, 125, 125, 125, 125, 30, 98, 84, 82, - 60, 84, 42, 32, 40, 20, 13, 0, 30, 6, - 64, 84, 2, 18, 36, 44, 10, 40, 76, 8, - 1, 32, 33, 83, 125, 125, 125, 125, 125, 125, - }, - - { - /* Context Tables for P, SP, B Slices :: cabac_init_idc = 0, qp = 47 */ - - 40, 8, 37, 40, 8, 37, 38, 54, 56, 24, - 15, 73, 11, 4, 104, 28, 108, 15, 48, 62, - 1, 41, 4, 71, 105, 11, 43, 125, 125, 125, - 124, 36, 11, 48, 62, 1, 9, 36, 40, 15, - 6, 0, 0, 17, 47, 15, 59, 10, 7, 1, - 9, 33, 17, 49, 34, 8, 2, 3, 24, 6, - 44, 0, 0, 0, 14, 67, 67, 24, 31, 13, - 36, 5, 47, 34, 96, 72, 124, 124, 56, 54, - 36, 68, 28, 18, 44, 15, 21, 23, 11, 52, - 2, 18, 5, 3, 3, 0, 10, 9, 27, 25, - 45, 36, 9, 12, 1, 31, 6, 17, 14, 8, - 1, 8, 22, 8, 11, 3, 10, 7, 2, 13, - 7, 23, 0, 7, 27, 8, 7, 21, 0, 22, - 7, 41, 23, 31, 31, 10, 7, 16, 14, 14, - 78, 36, 8, 9, 24, 9, 33, 2, 85, 17, - 0, 51, 13, 45, 10, 0, 33, 36, 14, 8, - 67, 10, 41, 23, 6, 63, 6, 36, 22, 28, - 34, 28, 14, 32, 26, 7, 0, 18, 2, 0, - 21, 9, 21, 19, 11, 17, 27, 27, 25, 31, - 23, 11, 53, 63, 35, 33, 35, 43, 45, 61, - 69, 61, 61, 79, 93, 79, 85, 125, 105, 111, - 11, 19, 59, 27, 41, 47, 59, 75, 83, 63, - 71, 63, 43, 53, 55, 39, 35, 10, 50, 36, - 22, 16, 20, 10, 0, 10, 22, 26, 62, 42, - 30, 16, 44, 26, 32, 18, 66, 6, 86, 60, - 46, 30, 52, 10, 1, 3, 6, 13, 92, 36, - 2, 4, 22, 0, 17, 1, 10, 70, 40, 8, - 3, 36, 10, 4, 4, 4, 124, 7, 8, 12, - 22, 12, 14, 36, 38, 26, 36, 46, 56, 5, - 8, 25, 5, 68, 15, 59, 9, 16, 7, 33, - 41, 23, 43, 61, 75, 79, 13, 5, 30, 11, - 23, 7, 1, 6, 31, 19, 7, 7, 47, 21, - 35, 0, 20, 47, 19, 12, 29, 4, 23, 7, - 40, 29, 35, 1, 10, 49, 45, 111, 22, 34, - 52, 0, 13, 3, 31, 31, 29, 55, 53, 51, - 87, 71, 53, 89, 93, 103, 125, 87, 81, 67, - 29, 43, 12, 46, 6, 44, 82, 31, 37, 47, - 43, 87, 69, 57, 103, 65, 87, 77, 113, 101, - 97, 97, 39, 33, 101, 43, 47, 71, 95, 83, - 85, 87, 77, 95, 91, 97, 107, 123, 109, 23, - 39, 73, 7, 26, 18, 40, 42, 50, 92, 60, - 80, 82, 120, 98, 88, 124, 118, 78, 7, 47, - 87, 109, 125, 125, 125, 125, 30, 98, 84, 84, - 60, 86, 42, 32, 42, 22, 13, 0, 32, 6, - 66, 86, 2, 20, 38, 46, 10, 42, 78, 8, - 1, 30, 37, 87, 125, 125, 125, 125, 125, 125, - }, - - { - /* Context Tables for P, SP, B Slices :: cabac_init_idc = 0, qp = 48 */ - - 36, 6, 39, 36, 6, 39, 40, 56, 56, 24, - 17, 77, 15, 0, 102, 28, 112, 17, 48, 62, - 3, 43, 4, 75, 109, 13, 47, 125, 125, 125, - 124, 38, 13, 48, 62, 3, 9, 38, 40, 17, - 6, 0, 0, 19, 49, 15, 61, 10, 7, 1, - 11, 35, 17, 49, 34, 8, 2, 3, 24, 4, - 44, 0, 0, 0, 14, 69, 67, 24, 33, 15, - 36, 5, 47, 36, 98, 74, 124, 124, 58, 56, - 38, 70, 30, 18, 46, 15, 21, 23, 11, 52, - 2, 18, 5, 3, 3, 0, 12, 11, 29, 27, - 47, 36, 9, 12, 1, 31, 6, 17, 14, 6, - 3, 8, 20, 6, 11, 5, 10, 7, 0, 13, - 9, 25, 1, 9, 31, 6, 9, 23, 0, 22, - 7, 43, 25, 31, 33, 8, 9, 16, 14, 14, - 78, 36, 8, 11, 24, 11, 35, 0, 87, 19, - 1, 53, 15, 47, 8, 1, 35, 36, 14, 8, - 71, 8, 43, 23, 6, 65, 4, 34, 20, 28, - 34, 26, 12, 32, 24, 9, 1, 18, 0, 1, - 23, 11, 23, 21, 13, 19, 29, 29, 27, 31, - 25, 11, 55, 67, 35, 37, 39, 47, 49, 65, - 75, 65, 65, 83, 97, 83, 89, 125, 109, 115, - 13, 21, 61, 29, 45, 51, 63, 79, 87, 67, - 75, 65, 45, 55, 55, 39, 35, 10, 50, 36, - 22, 16, 20, 10, 0, 10, 24, 26, 60, 42, - 30, 16, 44, 26, 32, 18, 68, 4, 86, 60, - 44, 28, 52, 10, 1, 3, 6, 13, 92, 34, - 0, 2, 22, 0, 17, 1, 10, 68, 38, 6, - 5, 34, 10, 4, 4, 4, 124, 7, 10, 12, - 24, 14, 14, 38, 40, 28, 38, 48, 58, 5, - 8, 25, 5, 70, 15, 61, 9, 16, 7, 35, - 43, 25, 45, 63, 79, 83, 15, 7, 30, 13, - 25, 9, 3, 4, 33, 21, 9, 9, 49, 23, - 37, 0, 20, 49, 21, 10, 31, 2, 25, 9, - 40, 31, 39, 3, 8, 51, 47, 115, 20, 32, - 50, 3, 17, 7, 35, 35, 35, 61, 59, 57, - 93, 77, 57, 95, 101, 109, 125, 93, 87, 71, - 33, 47, 12, 46, 6, 46, 86, 35, 41, 51, - 47, 93, 73, 61, 109, 69, 91, 81, 117, 105, - 99, 99, 41, 35, 105, 47, 51, 75, 99, 87, - 89, 91, 81, 99, 95, 101, 111, 125, 111, 25, - 41, 75, 7, 26, 18, 40, 42, 50, 94, 60, - 82, 82, 122, 100, 90, 124, 120, 76, 11, 53, - 93, 115, 125, 125, 125, 125, 30, 98, 84, 84, - 60, 86, 42, 32, 42, 22, 13, 0, 32, 6, - 68, 88, 2, 20, 38, 46, 10, 42, 78, 8, - 3, 26, 43, 93, 125, 125, 125, 125, 125, 125, - }, - - { - /* Context Tables for P, SP, B Slices :: cabac_init_idc = 0, qp = 49 */ - - 34, 6, 39, 34, 6, 39, 44, 60, 58, 26, - 17, 79, 17, 1, 102, 28, 118, 17, 50, 64, - 3, 43, 6, 77, 111, 13, 49, 125, 125, 125, - 124, 42, 13, 50, 64, 3, 7, 42, 42, 17, - 8, 2, 2, 19, 49, 13, 61, 10, 5, 0, - 11, 35, 15, 49, 36, 10, 4, 1, 26, 4, - 44, 0, 0, 0, 16, 69, 67, 26, 33, 15, - 36, 3, 45, 40, 102, 78, 124, 124, 62, 58, - 42, 74, 34, 20, 50, 13, 19, 21, 9, 54, - 4, 20, 3, 1, 1, 2, 16, 11, 29, 27, - 47, 38, 9, 14, 0, 29, 8, 15, 16, 6, - 3, 10, 20, 6, 9, 5, 12, 7, 0, 11, - 9, 25, 1, 9, 33, 6, 9, 23, 2, 24, - 5, 43, 25, 29, 33, 8, 9, 18, 14, 14, - 80, 38, 10, 11, 26, 11, 35, 0, 87, 19, - 1, 53, 15, 49, 8, 1, 35, 38, 16, 8, - 73, 8, 43, 21, 6, 65, 4, 34, 20, 28, - 34, 26, 12, 32, 24, 9, 1, 18, 0, 1, - 23, 11, 23, 21, 13, 19, 29, 29, 27, 29, - 25, 9, 55, 69, 33, 39, 41, 49, 51, 69, - 79, 67, 67, 87, 99, 85, 91, 125, 111, 117, - 13, 21, 61, 31, 47, 53, 65, 81, 89, 69, - 77, 65, 45, 55, 53, 37, 33, 12, 52, 36, - 22, 18, 22, 12, 2, 12, 28, 28, 60, 42, - 30, 16, 46, 28, 34, 20, 72, 4, 88, 62, - 44, 28, 54, 10, 1, 1, 8, 13, 94, 34, - 0, 2, 24, 2, 15, 0, 10, 68, 38, 6, - 5, 34, 10, 6, 6, 6, 124, 5, 12, 14, - 28, 18, 16, 42, 44, 32, 42, 52, 62, 3, - 10, 23, 3, 74, 13, 61, 7, 18, 5, 35, - 43, 25, 45, 63, 81, 85, 15, 7, 32, 13, - 25, 9, 3, 4, 33, 21, 9, 9, 49, 23, - 37, 2, 22, 49, 21, 10, 31, 2, 25, 9, - 42, 31, 41, 3, 8, 51, 47, 117, 20, 32, - 50, 5, 19, 9, 39, 39, 39, 65, 63, 61, - 97, 81, 59, 99, 107, 115, 125, 97, 91, 73, - 35, 49, 12, 48, 8, 50, 92, 37, 43, 53, - 49, 97, 75, 63, 113, 71, 93, 83, 119, 107, - 101, 99, 41, 35, 107, 49, 53, 77, 101, 89, - 91, 93, 83, 101, 97, 103, 113, 125, 111, 25, - 41, 75, 5, 28, 20, 42, 44, 52, 98, 62, - 84, 84, 124, 104, 92, 124, 124, 76, 13, 57, - 97, 119, 125, 125, 125, 125, 32, 100, 86, 86, - 62, 88, 44, 34, 44, 24, 11, 2, 34, 8, - 72, 92, 4, 22, 40, 48, 12, 44, 80, 8, - 3, 24, 47, 97, 125, 125, 125, 125, 125, 125, - }, - - { - /* Context Tables for P, SP, B Slices :: cabac_init_idc = 0, qp = 50 */ - - 32, 6, 39, 32, 6, 39, 48, 62, 58, 26, - 17, 81, 19, 3, 102, 28, 122, 17, 52, 66, - 3, 45, 6, 79, 113, 15, 53, 125, 125, 125, - 124, 44, 13, 52, 66, 3, 7, 44, 42, 19, - 8, 2, 4, 19, 49, 13, 61, 10, 5, 2, - 11, 35, 15, 49, 36, 10, 4, 1, 26, 4, - 44, 0, 0, 0, 18, 69, 67, 26, 35, 15, - 36, 3, 45, 44, 106, 82, 124, 124, 64, 60, - 44, 76, 36, 22, 54, 13, 19, 21, 7, 54, - 4, 20, 1, 1, 0, 2, 18, 11, 29, 27, - 47, 38, 9, 14, 0, 29, 8, 15, 16, 6, - 3, 10, 20, 6, 9, 5, 12, 7, 0, 11, - 11, 25, 1, 11, 35, 4, 11, 25, 4, 24, - 5, 45, 27, 29, 35, 8, 9, 18, 14, 14, - 82, 38, 10, 11, 26, 11, 37, 0, 89, 19, - 1, 55, 15, 51, 8, 1, 37, 38, 16, 8, - 75, 8, 45, 21, 6, 67, 2, 34, 20, 28, - 34, 26, 12, 32, 24, 9, 1, 18, 0, 1, - 23, 11, 23, 21, 13, 19, 31, 31, 29, 29, - 25, 9, 57, 71, 33, 43, 45, 53, 55, 73, - 83, 71, 71, 91, 103, 89, 95, 125, 115, 119, - 13, 21, 63, 33, 49, 55, 67, 85, 91, 71, - 79, 67, 47, 57, 53, 37, 31, 12, 52, 36, - 22, 18, 22, 12, 2, 12, 30, 30, 60, 42, - 30, 16, 46, 28, 36, 22, 76, 4, 88, 62, - 44, 28, 54, 10, 1, 1, 10, 13, 94, 34, - 0, 2, 24, 2, 15, 2, 10, 66, 36, 4, - 7, 34, 10, 6, 6, 6, 124, 3, 14, 16, - 30, 20, 18, 44, 46, 34, 44, 54, 66, 1, - 12, 23, 1, 76, 13, 63, 7, 20, 5, 35, - 45, 25, 47, 65, 83, 87, 17, 7, 32, 13, - 27, 11, 3, 4, 35, 23, 9, 9, 51, 23, - 37, 2, 22, 49, 23, 8, 33, 2, 27, 11, - 42, 33, 43, 3, 8, 53, 49, 121, 18, 30, - 48, 7, 21, 11, 43, 43, 43, 69, 69, 67, - 103, 85, 61, 105, 113, 121, 125, 103, 95, 77, - 37, 51, 12, 50, 8, 52, 96, 41, 47, 57, - 53, 101, 79, 67, 117, 73, 97, 85, 123, 109, - 103, 101, 43, 35, 109, 51, 55, 81, 105, 93, - 95, 95, 87, 105, 99, 105, 115, 125, 113, 27, - 43, 77, 5, 28, 20, 44, 44, 54, 100, 64, - 86, 86, 124, 106, 94, 124, 124, 74, 17, 61, - 101, 125, 125, 125, 125, 125, 32, 100, 86, 86, - 62, 90, 44, 34, 44, 24, 11, 2, 36, 8, - 74, 94, 4, 24, 42, 50, 12, 44, 82, 8, - 3, 22, 51, 101, 125, 125, 125, 125, 125, 125, - }, - - { - /* Context Tables for P, SP, B Slices :: cabac_init_idc = 0, qp = 51 */ - - 30, 6, 39, 30, 6, 39, 52, 66, 60, 26, - 19, 85, 23, 5, 102, 28, 124, 17, 54, 68, - 3, 47, 6, 81, 115, 15, 57, 125, 125, 125, - 124, 46, 13, 54, 68, 3, 5, 46, 44, 19, - 8, 4, 6, 21, 51, 13, 61, 10, 5, 2, - 11, 35, 15, 49, 38, 10, 4, 1, 28, 4, - 44, 0, 0, 0, 18, 69, 67, 28, 37, 15, - 36, 3, 45, 48, 110, 84, 124, 124, 66, 62, - 48, 78, 38, 24, 58, 11, 19, 19, 5, 54, - 4, 20, 1, 1, 0, 4, 22, 11, 31, 29, - 49, 38, 9, 14, 2, 29, 10, 15, 18, 6, - 3, 10, 20, 4, 9, 5, 12, 7, 0, 11, - 13, 25, 1, 13, 37, 2, 13, 27, 4, 26, - 5, 47, 27, 27, 35, 8, 9, 18, 14, 14, - 84, 38, 10, 11, 28, 11, 39, 0, 91, 19, - 1, 55, 17, 53, 8, 1, 39, 38, 16, 8, - 79, 8, 47, 21, 6, 67, 0, 34, 20, 28, - 34, 26, 12, 32, 24, 9, 3, 18, 0, 1, - 23, 13, 25, 23, 15, 21, 33, 33, 29, 29, - 27, 9, 59, 75, 33, 45, 49, 57, 59, 77, - 87, 75, 75, 95, 107, 91, 97, 125, 119, 121, - 13, 21, 63, 35, 51, 57, 71, 87, 95, 73, - 81, 69, 47, 57, 53, 37, 31, 14, 52, 36, - 22, 18, 22, 12, 2, 14, 32, 30, 60, 42, - 30, 16, 48, 30, 38, 24, 80, 4, 88, 62, - 44, 28, 56, 10, 1, 1, 10, 13, 94, 34, - 1, 2, 24, 2, 15, 4, 10, 66, 36, 2, - 9, 34, 10, 6, 8, 8, 124, 1, 16, 16, - 32, 22, 20, 48, 48, 36, 46, 58, 68, 1, - 14, 23, 1, 80, 13, 63, 7, 20, 5, 37, - 45, 25, 49, 67, 85, 89, 17, 9, 32, 15, - 27, 11, 5, 4, 37, 23, 11, 9, 53, 23, - 39, 2, 22, 51, 23, 8, 35, 2, 29, 11, - 42, 35, 45, 5, 6, 55, 49, 123, 16, 28, - 48, 9, 23, 15, 47, 47, 47, 75, 73, 71, - 109, 91, 63, 111, 119, 125, 125, 109, 101, 81, - 39, 53, 12, 52, 8, 54, 100, 45, 51, 61, - 57, 105, 83, 69, 121, 77, 99, 87, 125, 113, - 105, 103, 43, 37, 111, 53, 59, 83, 109, 97, - 99, 99, 89, 109, 103, 107, 119, 125, 115, 29, - 45, 79, 5, 30, 20, 44, 46, 54, 102, 66, - 88, 88, 124, 108, 96, 124, 124, 74, 19, 65, - 107, 125, 125, 125, 125, 125, 34, 102, 88, 88, - 62, 92, 46, 34, 46, 26, 11, 4, 36, 10, - 76, 96, 4, 24, 42, 50, 12, 46, 84, 8, - 3, 20, 55, 107, 125, 125, 125, 125, 125, 125, - }, - - }, + { 640, 679, 709, 739 }, - { + { 33664, 33694, 33723, 33752 }, - { - /* Context Tables for P, SP, B Slices :: cabac_init_idc = 1, qp = 0 */ - - 124, 18, 21, 124, 18, 21, 125, 81, 20, 18, - 24, 76, 124, 124, 108, 44, 109, 3, 15, 31, - 22, 26, 13, 18, 58, 82, 124, 122, 54, 11, - 125, 75, 25, 15, 31, 22, 11, 53, 22, 40, - 11, 37, 65, 8, 23, 47, 73, 14, 21, 43, - 8, 35, 45, 63, 5, 27, 13, 45, 17, 4, - 44, 0, 0, 0, 39, 45, 67, 17, 44, 2, - 96, 24, 33, 125, 55, 65, 35, 69, 77, 67, - 111, 71, 93, 77, 125, 33, 51, 61, 57, 48, - 3, 41, 125, 19, 81, 55, 125, 16, 14, 16, - 4, 20, 9, 21, 49, 79, 55, 51, 57, 25, - 47, 93, 83, 29, 97, 71, 125, 125, 125, 125, - 5, 29, 15, 17, 8, 16, 13, 23, 51, 111, - 23, 86, 82, 125, 18, 4, 10, 6, 4, 7, - 41, 21, 3, 22, 12, 4, 11, 13, 16, 15, - 10, 4, 44, 76, 62, 40, 32, 38, 24, 34, - 50, 5, 50, 42, 58, 51, 36, 70, 64, 124, - 124, 96, 124, 124, 124, 124, 124, 124, 124, 124, - 124, 124, 106, 124, 124, 124, 124, 124, 124, 124, - 112, 124, 124, 124, 54, 124, 124, 124, 124, 124, - 124, 124, 124, 124, 124, 124, 106, 90, 76, 44, - 23, 17, 27, 56, 64, 56, 66, 36, 42, 36, - 74, 18, 5, 14, 19, 7, 105, 97, 15, 4, - 20, 5, 27, 33, 41, 47, 125, 75, 48, 20, - 4, 23, 27, 55, 87, 95, 117, 25, 38, 22, - 12, 10, 17, 11, 11, 21, 45, 5, 58, 62, - 64, 22, 16, 7, 19, 51, 22, 118, 110, 110, - 88, 52, 4, 19, 13, 29, 124, 125, 121, 93, - 125, 121, 83, 115, 107, 77, 107, 105, 117, 63, - 73, 63, 95, 101, 51, 33, 37, 43, 35, 17, - 1, 7, 14, 11, 11, 11, 11, 7, 27, 1, - 4, 7, 1, 12, 3, 5, 2, 24, 5, 15, - 23, 13, 17, 6, 52, 32, 56, 52, 44, 44, - 30, 44, 44, 8, 26, 46, 5, 26, 124, 124, - 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, - 124, 124, 108, 124, 124, 124, 124, 124, 124, 124, - 124, 124, 98, 74, 52, 16, 3, 124, 124, 124, - 124, 124, 124, 124, 124, 124, 124, 124, 124, 86, - 66, 38, 30, 28, 36, 82, 82, 84, 86, 70, - 78, 58, 42, 48, 26, 13, 18, 15, 39, 62, - 28, 18, 43, 35, 27, 35, 33, 19, 21, 39, - 15, 7, 4, 5, 5, 8, 8, 124, 124, 124, - 124, 124, 120, 106, 72, 12, 15, 78, 54, 42, - 22, 12, 0, 3, 7, 37, 35, 25, 17, 29, - 17, 9, 13, 25, 5, 2, 12, 4, 6, 18, - 10, 124, 124, 124, 124, 124, 120, 106, 72, 12, - }, - - { - /* Context Tables for P, SP, B Slices :: cabac_init_idc = 1, qp = 1 */ - - 124, 18, 21, 124, 18, 21, 123, 77, 22, 20, - 24, 74, 122, 124, 110, 44, 105, 3, 13, 29, - 22, 26, 11, 18, 56, 80, 122, 116, 50, 13, - 121, 73, 23, 13, 29, 22, 11, 51, 22, 40, - 9, 35, 63, 8, 23, 45, 71, 14, 19, 41, - 8, 33, 43, 61, 3, 25, 13, 43, 15, 4, - 44, 0, 0, 0, 37, 45, 67, 15, 44, 2, - 96, 24, 33, 121, 51, 61, 31, 63, 73, 63, - 107, 67, 89, 73, 121, 33, 49, 59, 55, 48, - 3, 39, 121, 17, 79, 53, 123, 16, 14, 16, - 4, 22, 9, 19, 47, 77, 53, 49, 55, 23, - 45, 89, 79, 27, 93, 67, 117, 117, 119, 121, - 3, 27, 13, 15, 8, 18, 11, 21, 49, 105, - 21, 82, 80, 121, 18, 6, 10, 8, 6, 5, - 37, 19, 1, 22, 12, 4, 9, 11, 14, 13, - 10, 4, 44, 74, 62, 40, 32, 38, 24, 34, - 48, 3, 50, 42, 58, 51, 36, 70, 64, 124, - 124, 94, 124, 124, 124, 122, 124, 124, 124, 124, - 124, 124, 104, 124, 124, 124, 124, 124, 124, 124, - 108, 124, 120, 124, 52, 124, 124, 124, 124, 124, - 124, 124, 124, 124, 124, 122, 104, 88, 74, 42, - 23, 17, 27, 56, 62, 54, 64, 34, 40, 34, - 72, 16, 5, 12, 19, 7, 103, 93, 13, 6, - 20, 3, 25, 31, 39, 45, 121, 71, 50, 22, - 6, 21, 25, 51, 83, 91, 113, 23, 40, 24, - 14, 12, 15, 9, 9, 19, 43, 5, 60, 62, - 64, 22, 18, 5, 19, 49, 22, 118, 110, 108, - 86, 52, 6, 17, 11, 27, 124, 121, 117, 89, - 121, 117, 79, 111, 103, 73, 103, 101, 111, 61, - 71, 61, 91, 97, 49, 31, 35, 41, 33, 15, - 1, 7, 14, 11, 11, 11, 9, 5, 25, 0, - 4, 5, 0, 12, 1, 3, 2, 24, 3, 13, - 21, 11, 15, 6, 50, 32, 54, 52, 44, 44, - 30, 44, 44, 8, 26, 44, 5, 24, 124, 124, - 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, - 124, 124, 104, 124, 124, 124, 124, 124, 124, 124, - 122, 124, 96, 72, 50, 16, 3, 124, 124, 124, - 124, 124, 124, 124, 124, 124, 124, 124, 124, 84, - 64, 36, 30, 28, 34, 80, 80, 82, 82, 68, - 76, 56, 40, 46, 24, 13, 16, 15, 39, 60, - 26, 16, 41, 33, 25, 33, 29, 15, 19, 37, - 13, 5, 6, 3, 3, 8, 8, 124, 124, 124, - 124, 120, 112, 98, 64, 8, 13, 78, 56, 44, - 24, 14, 2, 1, 5, 35, 33, 23, 15, 27, - 15, 7, 11, 23, 3, 4, 12, 6, 8, 18, - 10, 124, 124, 124, 124, 120, 112, 98, 64, 8, - }, - - { - /* Context Tables for P, SP, B Slices :: cabac_init_idc = 1, qp = 2 */ - - 124, 18, 21, 124, 18, 21, 119, 75, 22, 20, - 24, 72, 118, 122, 110, 44, 101, 3, 13, 27, - 22, 24, 11, 16, 52, 78, 116, 108, 44, 17, - 115, 71, 23, 13, 27, 22, 11, 49, 22, 38, - 9, 35, 61, 8, 23, 45, 71, 14, 19, 41, - 8, 33, 43, 61, 3, 25, 13, 43, 15, 4, - 44, 0, 0, 0, 35, 45, 67, 15, 42, 2, - 94, 24, 33, 117, 49, 59, 27, 59, 71, 61, - 103, 65, 87, 71, 117, 33, 49, 59, 55, 48, - 3, 37, 117, 17, 77, 51, 119, 16, 14, 16, - 2, 22, 9, 19, 45, 75, 51, 47, 53, 23, - 43, 87, 77, 25, 91, 65, 107, 109, 113, 115, - 3, 27, 13, 15, 8, 18, 11, 21, 49, 101, - 21, 78, 76, 115, 18, 6, 10, 8, 6, 5, - 33, 17, 1, 22, 12, 4, 7, 9, 12, 13, - 10, 4, 42, 72, 60, 40, 30, 38, 24, 34, - 46, 3, 48, 40, 56, 51, 36, 68, 62, 124, - 124, 92, 120, 124, 124, 118, 124, 124, 124, 124, - 124, 124, 100, 124, 124, 124, 124, 124, 124, 124, - 104, 124, 116, 124, 48, 124, 124, 124, 124, 124, - 124, 124, 124, 124, 124, 118, 100, 84, 70, 38, - 23, 17, 29, 54, 60, 52, 62, 32, 38, 32, - 68, 14, 5, 10, 21, 9, 101, 91, 11, 6, - 20, 3, 23, 29, 37, 43, 117, 69, 50, 22, - 6, 19, 23, 49, 79, 87, 109, 21, 42, 26, - 16, 14, 13, 9, 9, 19, 41, 5, 62, 62, - 62, 22, 18, 5, 19, 49, 22, 118, 108, 106, - 84, 52, 6, 17, 11, 27, 124, 119, 115, 87, - 117, 113, 77, 107, 99, 71, 99, 97, 107, 59, - 69, 61, 89, 93, 49, 31, 35, 39, 33, 15, - 1, 7, 12, 11, 11, 11, 9, 5, 23, 0, - 4, 5, 0, 12, 1, 3, 2, 22, 3, 13, - 21, 11, 13, 4, 48, 32, 52, 50, 42, 42, - 30, 42, 42, 8, 26, 42, 5, 22, 124, 124, - 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, - 124, 124, 100, 124, 124, 124, 124, 124, 124, 124, - 118, 118, 92, 68, 48, 14, 5, 124, 124, 124, - 124, 124, 124, 124, 124, 124, 124, 124, 124, 80, - 60, 32, 28, 26, 30, 78, 78, 78, 78, 64, - 72, 52, 38, 42, 22, 15, 14, 17, 41, 56, - 24, 14, 41, 33, 23, 33, 27, 13, 19, 35, - 11, 3, 6, 3, 1, 8, 8, 124, 124, 124, - 124, 114, 104, 90, 56, 2, 13, 78, 56, 44, - 24, 16, 2, 1, 5, 35, 33, 23, 15, 27, - 13, 5, 11, 23, 3, 4, 12, 6, 10, 18, - 10, 124, 124, 124, 124, 114, 104, 90, 56, 2, - }, - - { - /* Context Tables for P, SP, B Slices :: cabac_init_idc = 1, qp = 3 */ - - 124, 18, 21, 124, 18, 21, 115, 71, 24, 20, - 22, 68, 114, 120, 110, 44, 97, 3, 11, 25, - 22, 24, 11, 16, 50, 76, 112, 102, 40, 19, - 109, 69, 23, 11, 25, 22, 13, 47, 22, 38, - 9, 35, 61, 8, 23, 45, 71, 14, 19, 39, - 8, 33, 41, 61, 3, 25, 13, 43, 15, 4, - 44, 0, 0, 0, 35, 45, 67, 13, 40, 2, - 92, 22, 33, 111, 47, 57, 25, 55, 67, 57, - 99, 61, 85, 69, 113, 33, 49, 57, 55, 48, - 3, 35, 113, 17, 75, 51, 115, 16, 12, 14, - 2, 22, 9, 17, 45, 73, 49, 47, 51, 21, - 41, 83, 73, 25, 89, 63, 97, 99, 107, 109, - 3, 27, 13, 13, 8, 18, 9, 19, 47, 97, - 21, 74, 72, 109, 18, 6, 10, 8, 6, 3, - 31, 15, 1, 22, 12, 4, 7, 7, 10, 13, - 10, 2, 42, 70, 60, 40, 30, 38, 24, 34, - 44, 3, 46, 38, 56, 51, 36, 68, 62, 124, - 124, 90, 116, 124, 124, 114, 124, 124, 124, 124, - 124, 122, 96, 124, 124, 124, 124, 124, 124, 120, - 100, 124, 112, 124, 44, 124, 124, 124, 124, 124, - 124, 124, 124, 124, 124, 114, 96, 80, 68, 34, - 23, 17, 29, 52, 58, 50, 60, 30, 36, 30, - 64, 12, 7, 8, 23, 9, 101, 87, 9, 8, - 20, 3, 21, 29, 37, 43, 113, 67, 50, 22, - 8, 17, 21, 47, 77, 85, 105, 19, 42, 26, - 16, 14, 11, 7, 9, 19, 41, 5, 62, 62, - 60, 22, 18, 5, 19, 47, 22, 116, 108, 104, - 82, 52, 6, 17, 11, 27, 124, 117, 111, 85, - 115, 111, 75, 103, 95, 69, 97, 93, 103, 59, - 67, 59, 87, 89, 47, 31, 35, 39, 31, 15, - 1, 7, 12, 11, 11, 13, 7, 3, 21, 0, - 4, 3, 0, 12, 1, 3, 2, 22, 3, 13, - 21, 11, 13, 2, 46, 32, 50, 48, 40, 42, - 30, 40, 40, 8, 26, 40, 5, 20, 124, 124, - 122, 124, 124, 124, 124, 124, 124, 124, 124, 124, - 124, 124, 96, 124, 124, 124, 124, 124, 124, 124, - 114, 114, 88, 64, 44, 12, 7, 124, 124, 124, - 124, 124, 124, 124, 124, 124, 124, 118, 120, 76, - 56, 30, 26, 24, 28, 74, 74, 74, 74, 62, - 68, 48, 36, 40, 20, 17, 12, 19, 43, 54, - 22, 12, 41, 31, 23, 31, 25, 11, 19, 35, - 11, 3, 6, 1, 0, 8, 8, 124, 124, 124, - 118, 108, 96, 82, 48, 3, 13, 78, 56, 44, - 24, 16, 4, 1, 5, 33, 33, 23, 13, 25, - 11, 3, 11, 21, 3, 4, 12, 6, 10, 18, - 10, 124, 124, 124, 118, 108, 96, 82, 48, 3, - }, - - { - /* Context Tables for P, SP, B Slices :: cabac_init_idc = 1, qp = 4 */ - - 124, 18, 21, 124, 18, 21, 113, 69, 24, 20, - 22, 66, 110, 118, 110, 42, 93, 3, 11, 23, - 20, 22, 11, 14, 46, 74, 106, 94, 34, 23, - 103, 67, 23, 11, 23, 20, 13, 45, 22, 36, - 9, 33, 59, 8, 23, 45, 71, 14, 19, 39, - 8, 33, 41, 59, 3, 25, 13, 43, 13, 4, - 44, 0, 0, 0, 33, 47, 67, 13, 38, 2, - 90, 22, 33, 107, 45, 55, 21, 51, 65, 55, - 97, 59, 81, 67, 109, 33, 47, 57, 55, 48, - 3, 33, 109, 17, 75, 49, 111, 16, 12, 14, - 0, 22, 9, 17, 43, 71, 47, 45, 49, 21, - 41, 81, 71, 23, 87, 61, 87, 91, 101, 103, - 3, 25, 13, 13, 8, 18, 9, 19, 47, 93, - 21, 70, 68, 105, 18, 8, 10, 8, 6, 3, - 27, 13, 0, 20, 12, 4, 5, 7, 8, 13, - 10, 2, 40, 68, 58, 38, 28, 38, 24, 34, - 42, 3, 44, 36, 54, 51, 34, 66, 60, 124, - 124, 88, 112, 124, 124, 110, 124, 124, 124, 124, - 124, 118, 92, 118, 124, 124, 124, 124, 124, 114, - 96, 124, 108, 124, 42, 124, 124, 124, 124, 124, - 124, 124, 124, 124, 120, 110, 92, 76, 64, 30, - 23, 17, 31, 50, 56, 48, 56, 28, 32, 28, - 62, 10, 7, 6, 23, 11, 99, 85, 7, 8, - 20, 1, 21, 27, 35, 41, 109, 63, 50, 24, - 8, 17, 19, 45, 73, 81, 103, 19, 44, 28, - 18, 16, 9, 7, 9, 17, 39, 5, 64, 62, - 60, 20, 18, 5, 19, 47, 22, 116, 106, 102, - 80, 52, 6, 15, 11, 27, 124, 113, 109, 83, - 111, 107, 73, 101, 93, 67, 93, 91, 99, 57, - 65, 59, 85, 87, 47, 31, 35, 37, 31, 15, - 3, 7, 10, 11, 11, 13, 7, 3, 19, 0, - 4, 3, 0, 12, 1, 3, 2, 20, 3, 13, - 21, 11, 11, 0, 44, 32, 48, 48, 38, 40, - 30, 38, 38, 8, 26, 38, 5, 18, 124, 124, - 120, 124, 124, 124, 124, 124, 124, 124, 124, 124, - 124, 124, 92, 124, 124, 124, 124, 124, 124, 124, - 108, 108, 84, 60, 42, 10, 7, 124, 124, 124, - 124, 124, 124, 124, 124, 124, 124, 114, 114, 72, - 52, 26, 24, 24, 24, 72, 72, 72, 70, 58, - 64, 46, 34, 36, 18, 19, 8, 21, 43, 50, - 18, 8, 39, 31, 21, 31, 23, 9, 19, 33, - 9, 1, 6, 1, 2, 8, 8, 124, 124, 124, - 112, 100, 88, 72, 40, 9, 11, 78, 56, 44, - 24, 18, 4, 1, 5, 33, 33, 23, 13, 25, - 11, 1, 11, 21, 1, 6, 12, 6, 12, 18, - 10, 124, 124, 124, 112, 100, 88, 72, 40, 9, - }, - - { - /* Context Tables for P, SP, B Slices :: cabac_init_idc = 1, qp = 5 */ - - 124, 18, 21, 124, 18, 21, 109, 65, 24, 20, - 20, 64, 106, 116, 110, 42, 89, 3, 11, 21, - 20, 22, 11, 12, 42, 72, 102, 88, 30, 27, - 97, 65, 21, 11, 21, 20, 13, 43, 22, 36, - 9, 33, 57, 8, 23, 45, 71, 14, 19, 39, - 8, 33, 39, 59, 3, 25, 13, 43, 13, 4, - 44, 0, 0, 0, 33, 47, 67, 11, 36, 2, - 88, 20, 33, 101, 43, 53, 17, 47, 61, 51, - 93, 55, 79, 65, 103, 33, 47, 55, 53, 48, - 3, 31, 105, 17, 73, 49, 107, 16, 10, 12, - 0, 22, 9, 15, 43, 69, 45, 45, 47, 19, - 39, 77, 67, 21, 83, 59, 77, 83, 95, 97, - 1, 25, 11, 11, 8, 18, 7, 19, 45, 89, - 21, 66, 64, 99, 18, 8, 10, 8, 6, 1, - 25, 11, 0, 20, 12, 4, 5, 5, 6, 11, - 10, 0, 40, 66, 58, 38, 28, 38, 24, 34, - 40, 1, 42, 36, 54, 51, 34, 64, 58, 124, - 124, 86, 110, 124, 124, 106, 124, 124, 124, 124, - 122, 114, 88, 114, 124, 120, 124, 124, 124, 110, - 92, 124, 104, 124, 38, 124, 124, 124, 124, 124, - 124, 124, 124, 122, 116, 106, 88, 74, 60, 26, - 23, 17, 31, 48, 54, 46, 54, 26, 30, 26, - 58, 8, 9, 4, 25, 13, 97, 81, 5, 10, - 20, 1, 19, 27, 35, 39, 105, 61, 50, 24, - 10, 15, 17, 43, 71, 79, 99, 17, 46, 30, - 20, 16, 7, 5, 7, 17, 39, 5, 64, 62, - 58, 20, 18, 5, 19, 45, 22, 114, 104, 100, - 78, 52, 6, 15, 11, 25, 124, 111, 105, 79, - 107, 105, 71, 97, 89, 65, 89, 87, 95, 55, - 63, 57, 83, 83, 47, 31, 33, 37, 29, 15, - 3, 7, 10, 11, 11, 15, 5, 3, 17, 0, - 4, 3, 0, 12, 1, 3, 2, 20, 3, 13, - 21, 11, 11, 1, 42, 32, 46, 46, 38, 38, - 30, 38, 36, 8, 26, 36, 5, 16, 124, 124, - 118, 124, 124, 124, 124, 124, 124, 124, 124, 124, - 124, 124, 88, 124, 124, 124, 124, 124, 124, 122, - 104, 104, 80, 58, 38, 10, 9, 124, 124, 124, - 124, 124, 124, 124, 124, 124, 122, 110, 108, 68, - 48, 24, 24, 22, 20, 70, 68, 68, 66, 54, - 60, 42, 32, 34, 16, 19, 6, 23, 45, 48, - 16, 6, 39, 31, 19, 29, 21, 7, 17, 31, - 9, 1, 6, 0, 4, 8, 8, 124, 124, 118, - 106, 94, 80, 64, 32, 15, 11, 78, 56, 44, - 24, 18, 4, 0, 3, 31, 33, 23, 11, 25, - 9, 0, 11, 21, 1, 6, 12, 8, 12, 18, - 10, 124, 124, 118, 106, 94, 80, 64, 32, 15, - }, - - { - /* Context Tables for P, SP, B Slices :: cabac_init_idc = 1, qp = 6 */ - - 124, 18, 23, 124, 18, 23, 105, 63, 26, 20, - 20, 60, 102, 114, 110, 42, 87, 3, 9, 21, - 20, 20, 9, 12, 40, 68, 96, 80, 24, 29, - 93, 63, 21, 9, 21, 20, 15, 43, 22, 34, - 9, 33, 57, 8, 23, 43, 69, 14, 17, 37, - 8, 31, 39, 59, 3, 25, 13, 43, 13, 4, - 44, 0, 0, 0, 31, 47, 67, 11, 36, 0, - 88, 20, 33, 97, 41, 51, 15, 41, 59, 49, - 89, 53, 77, 63, 99, 33, 47, 55, 53, 48, - 3, 29, 99, 17, 71, 47, 103, 14, 10, 12, - 1, 24, 9, 15, 41, 69, 45, 43, 45, 19, - 37, 75, 65, 21, 81, 57, 67, 73, 89, 91, - 1, 25, 11, 11, 8, 18, 7, 17, 45, 85, - 19, 62, 60, 93, 18, 8, 10, 8, 8, 1, - 21, 9, 0, 20, 12, 4, 3, 3, 4, 11, - 10, 0, 38, 64, 56, 38, 26, 38, 24, 34, - 36, 1, 40, 34, 52, 51, 34, 64, 58, 124, - 124, 84, 106, 124, 124, 102, 124, 124, 124, 124, - 114, 110, 86, 110, 124, 116, 124, 124, 124, 104, - 88, 124, 100, 124, 34, 124, 124, 124, 124, 124, - 124, 124, 124, 118, 112, 100, 84, 70, 58, 24, - 23, 17, 33, 46, 52, 44, 52, 24, 28, 24, - 54, 6, 9, 2, 27, 13, 97, 79, 3, 10, - 20, 1, 17, 25, 33, 39, 101, 59, 52, 24, - 10, 13, 15, 41, 67, 75, 95, 15, 46, 30, - 20, 18, 5, 5, 7, 17, 37, 5, 66, 62, - 56, 20, 18, 5, 19, 45, 20, 114, 104, 98, - 76, 50, 6, 15, 11, 25, 124, 109, 103, 77, - 105, 101, 69, 93, 85, 63, 87, 83, 91, 55, - 61, 57, 81, 79, 45, 31, 33, 35, 29, 15, - 3, 7, 8, 11, 11, 15, 5, 1, 15, 0, - 4, 1, 2, 12, 0, 1, 2, 18, 3, 13, - 21, 11, 9, 3, 40, 32, 44, 44, 36, 38, - 30, 36, 36, 8, 24, 32, 7, 14, 124, 124, - 116, 124, 124, 124, 124, 124, 124, 124, 124, 124, - 124, 124, 84, 124, 124, 124, 124, 124, 124, 116, - 100, 98, 76, 54, 36, 8, 11, 124, 124, 124, - 124, 124, 124, 124, 124, 122, 116, 104, 102, 64, - 46, 20, 22, 20, 18, 66, 66, 64, 62, 52, - 56, 38, 30, 30, 14, 21, 4, 25, 47, 44, - 14, 4, 39, 29, 19, 29, 19, 5, 17, 31, - 7, 0, 6, 0, 6, 8, 8, 124, 124, 114, - 100, 88, 72, 56, 24, 21, 11, 78, 56, 44, - 24, 20, 6, 0, 3, 31, 31, 21, 11, 23, - 7, 2, 9, 19, 1, 6, 12, 8, 14, 18, - 10, 124, 124, 114, 100, 88, 72, 56, 24, 21, - }, - - { - /* Context Tables for P, SP, B Slices :: cabac_init_idc = 1, qp = 7 */ - - 124, 18, 23, 124, 18, 23, 101, 59, 26, 20, - 18, 58, 98, 112, 110, 42, 83, 3, 9, 19, - 18, 20, 9, 10, 36, 66, 92, 74, 20, 33, - 87, 61, 21, 9, 19, 18, 15, 41, 22, 34, - 9, 31, 55, 8, 23, 43, 69, 14, 17, 37, - 8, 31, 37, 57, 3, 25, 13, 43, 11, 4, - 44, 0, 0, 0, 31, 47, 67, 9, 34, 0, - 86, 18, 33, 91, 39, 49, 11, 37, 55, 45, - 87, 49, 73, 61, 95, 33, 45, 53, 53, 48, - 3, 27, 95, 17, 69, 47, 99, 14, 8, 10, - 1, 24, 9, 13, 41, 67, 43, 43, 43, 17, - 35, 71, 61, 19, 79, 55, 57, 65, 83, 85, - 1, 23, 11, 9, 8, 18, 5, 17, 43, 81, - 19, 58, 56, 87, 18, 10, 10, 8, 8, 0, - 19, 7, 2, 18, 12, 4, 3, 3, 2, 11, - 10, 1, 38, 62, 56, 36, 26, 38, 24, 34, - 34, 1, 38, 32, 52, 51, 34, 62, 56, 120, - 124, 82, 102, 124, 124, 98, 124, 122, 124, 124, - 108, 106, 82, 104, 124, 110, 124, 124, 124, 98, - 84, 124, 96, 124, 32, 124, 124, 124, 124, 124, - 124, 124, 124, 114, 106, 96, 80, 66, 54, 20, - 23, 17, 33, 44, 50, 42, 48, 22, 26, 22, - 52, 4, 11, 0, 27, 15, 95, 75, 1, 12, - 20, 0, 17, 25, 33, 37, 97, 55, 52, 26, - 12, 13, 13, 39, 65, 73, 91, 15, 48, 32, - 22, 18, 3, 3, 7, 15, 37, 5, 66, 62, - 56, 18, 18, 5, 19, 43, 20, 112, 102, 96, - 74, 50, 6, 13, 11, 25, 124, 105, 99, 75, - 101, 99, 67, 91, 83, 61, 83, 81, 87, 53, - 59, 55, 79, 75, 45, 31, 33, 35, 27, 15, - 5, 7, 8, 11, 11, 17, 3, 1, 13, 0, - 4, 1, 2, 12, 0, 1, 2, 18, 3, 13, - 21, 11, 9, 5, 38, 32, 42, 44, 34, 36, - 30, 34, 34, 8, 24, 30, 7, 12, 122, 124, - 114, 124, 124, 124, 124, 124, 124, 124, 124, 124, - 124, 124, 80, 124, 124, 124, 124, 124, 124, 112, - 96, 94, 72, 50, 32, 6, 11, 124, 124, 124, - 124, 124, 124, 124, 124, 118, 112, 100, 96, 60, - 42, 18, 20, 20, 14, 64, 62, 62, 58, 48, - 52, 36, 28, 28, 12, 23, 0, 27, 47, 42, - 10, 0, 37, 29, 17, 27, 17, 3, 17, 29, - 7, 0, 6, 2, 8, 8, 8, 124, 124, 108, - 94, 80, 64, 48, 16, 27, 9, 78, 56, 44, - 24, 20, 6, 0, 3, 29, 31, 21, 9, 23, - 5, 4, 9, 19, 0, 8, 12, 8, 14, 18, - 10, 124, 124, 108, 94, 80, 64, 48, 16, 27, - }, - - { - /* Context Tables for P, SP, B Slices :: cabac_init_idc = 1, qp = 8 */ - - 124, 16, 23, 124, 16, 23, 99, 57, 26, 20, - 18, 54, 92, 110, 110, 40, 79, 5, 9, 17, - 18, 18, 9, 8, 32, 64, 86, 66, 14, 37, - 81, 59, 21, 9, 17, 18, 17, 39, 22, 32, - 9, 31, 55, 6, 25, 43, 69, 14, 17, 37, - 8, 31, 37, 57, 3, 25, 13, 43, 11, 4, - 44, 0, 0, 0, 29, 49, 67, 9, 32, 0, - 84, 18, 35, 87, 37, 47, 9, 33, 53, 43, - 83, 47, 71, 59, 91, 33, 45, 53, 53, 48, - 3, 25, 91, 17, 69, 45, 95, 14, 8, 10, - 3, 24, 9, 13, 39, 65, 41, 41, 43, 17, - 35, 69, 59, 19, 77, 53, 49, 57, 77, 81, - 1, 23, 11, 9, 6, 18, 5, 17, 43, 77, - 19, 54, 52, 83, 18, 10, 10, 8, 8, 0, - 15, 7, 2, 18, 10, 4, 1, 1, 1, 11, - 10, 1, 36, 58, 54, 36, 24, 38, 24, 32, - 32, 1, 36, 30, 50, 51, 32, 60, 54, 116, - 124, 78, 98, 124, 124, 92, 124, 118, 124, 124, - 100, 102, 78, 100, 124, 106, 124, 124, 124, 92, - 80, 124, 92, 124, 28, 124, 124, 124, 124, 124, - 124, 124, 120, 110, 102, 92, 76, 62, 50, 16, - 23, 19, 35, 42, 46, 40, 46, 20, 22, 18, - 48, 2, 11, 1, 29, 17, 95, 73, 0, 12, - 20, 0, 15, 23, 31, 37, 93, 53, 52, 26, - 12, 11, 11, 37, 61, 69, 89, 13, 48, 32, - 22, 20, 1, 3, 7, 15, 35, 7, 68, 62, - 54, 18, 18, 5, 19, 43, 20, 112, 100, 94, - 72, 50, 6, 13, 11, 25, 124, 103, 97, 73, - 99, 95, 65, 87, 79, 59, 81, 77, 83, 53, - 59, 55, 77, 73, 45, 31, 33, 33, 27, 15, - 5, 7, 6, 11, 11, 17, 3, 1, 11, 0, - 2, 1, 2, 10, 0, 1, 2, 16, 3, 13, - 21, 11, 7, 7, 36, 32, 38, 42, 32, 34, - 28, 32, 32, 8, 24, 28, 7, 8, 120, 120, - 112, 124, 124, 124, 124, 124, 124, 124, 124, 124, - 124, 120, 76, 124, 124, 124, 124, 124, 124, 106, - 90, 88, 68, 46, 30, 4, 13, 124, 124, 124, - 124, 124, 124, 124, 124, 112, 106, 94, 90, 56, - 38, 14, 18, 18, 10, 60, 60, 58, 54, 44, - 48, 32, 24, 24, 8, 25, 1, 29, 49, 38, - 8, 1, 37, 29, 17, 27, 15, 1, 17, 29, - 5, 2, 6, 2, 8, 8, 6, 124, 120, 102, - 88, 74, 56, 38, 6, 33, 9, 78, 56, 44, - 24, 22, 6, 0, 3, 29, 31, 21, 9, 23, - 5, 4, 9, 19, 0, 8, 12, 8, 16, 18, - 8, 124, 120, 102, 88, 74, 56, 38, 6, 33, - }, - - { - /* Context Tables for P, SP, B Slices :: cabac_init_idc = 1, qp = 9 */ - - 124, 16, 23, 124, 16, 23, 95, 55, 28, 20, - 18, 52, 88, 108, 112, 40, 75, 5, 7, 15, - 18, 16, 9, 8, 30, 62, 82, 58, 8, 39, - 75, 57, 19, 7, 15, 18, 17, 37, 22, 32, - 7, 31, 53, 6, 25, 43, 69, 14, 17, 35, - 8, 31, 37, 57, 3, 25, 13, 41, 11, 4, - 44, 0, 0, 0, 27, 49, 67, 9, 30, 0, - 82, 18, 35, 83, 33, 45, 5, 29, 49, 41, - 79, 43, 69, 55, 85, 33, 45, 53, 51, 48, - 3, 23, 87, 15, 67, 43, 91, 14, 8, 10, - 3, 24, 9, 13, 37, 63, 39, 39, 41, 15, - 33, 67, 55, 17, 73, 51, 39, 47, 69, 75, - 0, 23, 9, 7, 6, 18, 5, 15, 41, 71, - 19, 50, 50, 77, 18, 10, 10, 8, 8, 2, - 11, 5, 2, 18, 10, 4, 0, 0, 3, 9, - 10, 1, 34, 56, 52, 36, 22, 38, 24, 32, - 30, 0, 34, 30, 48, 51, 32, 60, 54, 112, - 124, 76, 96, 124, 124, 88, 120, 114, 124, 124, - 94, 98, 74, 96, 124, 102, 124, 124, 124, 88, - 76, 124, 88, 124, 24, 124, 124, 124, 124, 124, - 124, 120, 116, 106, 98, 88, 74, 60, 48, 12, - 23, 19, 35, 42, 44, 38, 44, 18, 20, 16, - 44, 0, 11, 3, 31, 17, 93, 71, 2, 12, - 20, 0, 13, 21, 29, 35, 87, 51, 52, 26, - 12, 9, 9, 35, 57, 65, 85, 11, 50, 34, - 24, 22, 0, 3, 5, 15, 33, 7, 70, 62, - 52, 18, 20, 3, 19, 41, 20, 112, 100, 92, - 70, 50, 6, 13, 11, 23, 124, 101, 95, 69, - 95, 91, 63, 83, 75, 57, 77, 73, 79, 51, - 57, 53, 75, 69, 43, 29, 31, 31, 25, 15, - 5, 7, 4, 11, 11, 17, 3, 0, 9, 2, - 2, 0, 2, 10, 0, 1, 2, 14, 3, 11, - 19, 11, 5, 7, 34, 32, 36, 40, 32, 34, - 28, 32, 30, 8, 24, 26, 7, 6, 118, 118, - 112, 122, 124, 124, 124, 124, 124, 124, 124, 124, - 124, 114, 72, 124, 124, 124, 124, 124, 124, 100, - 86, 84, 66, 44, 28, 4, 15, 124, 124, 124, - 124, 124, 124, 124, 124, 108, 102, 90, 86, 52, - 34, 10, 18, 16, 8, 58, 58, 54, 50, 42, - 46, 28, 22, 20, 6, 25, 3, 29, 51, 34, - 6, 3, 37, 27, 15, 27, 13, 2, 15, 27, - 3, 4, 6, 4, 10, 8, 6, 124, 116, 98, - 82, 68, 48, 30, 1, 39, 9, 78, 56, 46, - 26, 24, 8, 2, 1, 29, 31, 21, 9, 21, - 3, 6, 9, 17, 0, 8, 12, 10, 18, 18, - 8, 124, 116, 98, 82, 68, 48, 30, 1, 39, - }, - - { - /* Context Tables for P, SP, B Slices :: cabac_init_idc = 1, qp = 10 */ - - 124, 16, 23, 124, 16, 23, 91, 51, 28, 20, - 16, 50, 84, 106, 112, 40, 71, 5, 7, 13, - 16, 16, 9, 6, 26, 60, 76, 52, 4, 43, - 69, 55, 19, 7, 13, 16, 17, 35, 22, 30, - 7, 29, 51, 6, 25, 43, 69, 14, 17, 35, - 8, 31, 35, 55, 3, 25, 13, 41, 9, 4, - 44, 0, 0, 0, 27, 49, 67, 7, 28, 0, - 80, 16, 35, 77, 31, 43, 1, 25, 47, 37, - 77, 41, 65, 53, 81, 33, 43, 51, 51, 48, - 3, 21, 83, 15, 65, 43, 87, 14, 6, 8, - 5, 24, 9, 11, 37, 61, 37, 39, 39, 15, - 31, 63, 53, 15, 71, 49, 29, 39, 63, 69, - 0, 21, 9, 7, 6, 18, 3, 15, 41, 67, - 19, 46, 46, 71, 18, 12, 10, 8, 8, 2, - 9, 3, 4, 16, 10, 4, 0, 0, 5, 9, - 10, 3, 34, 54, 52, 34, 22, 38, 24, 32, - 28, 0, 32, 28, 48, 51, 32, 58, 52, 108, - 124, 74, 92, 124, 124, 84, 114, 110, 124, 124, - 86, 94, 70, 90, 122, 96, 124, 124, 124, 82, - 72, 116, 84, 124, 22, 124, 124, 124, 124, 124, - 120, 116, 112, 102, 92, 84, 70, 56, 44, 8, - 23, 19, 37, 40, 42, 36, 40, 16, 18, 14, - 42, 1, 13, 5, 31, 19, 91, 67, 4, 14, - 20, 2, 13, 21, 29, 33, 83, 47, 52, 28, - 14, 9, 7, 33, 55, 63, 81, 11, 52, 36, - 26, 22, 2, 1, 5, 13, 33, 7, 70, 62, - 52, 16, 20, 3, 19, 41, 20, 110, 98, 90, - 68, 50, 6, 11, 11, 23, 124, 97, 91, 67, - 91, 89, 61, 81, 73, 55, 73, 71, 75, 49, - 55, 53, 73, 65, 43, 29, 31, 31, 25, 15, - 7, 7, 4, 11, 11, 19, 1, 0, 7, 2, - 2, 0, 2, 10, 0, 1, 2, 14, 3, 11, - 19, 11, 5, 9, 32, 32, 34, 40, 30, 32, - 28, 30, 28, 8, 24, 24, 7, 4, 116, 116, - 110, 118, 120, 124, 124, 124, 124, 124, 124, 124, - 124, 110, 68, 124, 124, 124, 124, 124, 124, 96, - 82, 78, 62, 40, 24, 2, 15, 124, 124, 124, - 124, 124, 124, 124, 124, 104, 96, 86, 80, 48, - 30, 8, 16, 16, 4, 56, 54, 52, 46, 38, - 42, 26, 20, 18, 4, 27, 7, 31, 51, 32, - 2, 7, 35, 27, 13, 25, 11, 4, 15, 25, - 3, 4, 6, 4, 12, 8, 6, 124, 112, 92, - 76, 60, 40, 22, 9, 45, 7, 78, 56, 46, - 26, 24, 8, 2, 1, 27, 31, 21, 7, 21, - 1, 8, 9, 17, 2, 10, 12, 10, 18, 18, - 8, 124, 112, 92, 76, 60, 40, 22, 9, 45, - }, - - { - /* Context Tables for P, SP, B Slices :: cabac_init_idc = 1, qp = 11 */ - - 124, 16, 25, 124, 16, 25, 87, 49, 30, 20, - 16, 46, 80, 104, 112, 40, 69, 5, 5, 13, - 16, 14, 7, 6, 24, 56, 72, 44, 1, 45, - 65, 53, 19, 5, 13, 16, 19, 35, 22, 30, - 7, 29, 51, 6, 25, 41, 67, 14, 15, 33, - 8, 29, 35, 55, 3, 25, 13, 41, 9, 4, - 44, 0, 0, 0, 25, 49, 67, 7, 28, 1, - 80, 16, 35, 73, 29, 41, 0, 19, 43, 35, - 73, 37, 63, 51, 77, 33, 43, 51, 51, 48, - 3, 19, 77, 15, 63, 41, 83, 12, 6, 8, - 5, 26, 9, 11, 35, 61, 37, 37, 37, 13, - 29, 61, 49, 15, 69, 47, 19, 29, 57, 63, - 0, 21, 9, 5, 6, 18, 3, 13, 39, 63, - 17, 42, 42, 65, 18, 12, 10, 8, 10, 4, - 5, 1, 4, 16, 10, 4, 2, 2, 7, 9, - 10, 3, 32, 52, 50, 34, 20, 38, 24, 32, - 24, 0, 30, 26, 46, 51, 32, 58, 52, 104, - 124, 72, 88, 122, 124, 80, 110, 106, 124, 124, - 80, 90, 68, 86, 114, 92, 124, 124, 124, 76, - 68, 110, 80, 124, 18, 124, 124, 124, 124, 124, - 116, 110, 108, 98, 88, 78, 66, 52, 42, 6, - 23, 19, 37, 38, 40, 34, 38, 14, 16, 12, - 38, 3, 13, 7, 33, 19, 91, 65, 6, 14, - 20, 2, 11, 19, 27, 33, 79, 45, 54, 28, - 14, 7, 5, 31, 51, 59, 77, 9, 52, 36, - 26, 24, 4, 1, 5, 13, 31, 7, 72, 62, - 50, 16, 20, 3, 19, 39, 18, 110, 98, 88, - 66, 48, 6, 11, 11, 23, 124, 95, 89, 65, - 89, 85, 59, 77, 69, 53, 71, 67, 71, 49, - 53, 51, 71, 61, 41, 29, 31, 29, 23, 15, - 7, 7, 2, 11, 11, 19, 1, 2, 5, 2, - 2, 2, 4, 10, 2, 0, 2, 12, 3, 11, - 19, 11, 3, 11, 30, 32, 32, 38, 28, 32, - 28, 28, 28, 8, 22, 20, 9, 2, 112, 114, - 108, 116, 116, 124, 124, 124, 124, 124, 124, 124, - 124, 104, 64, 124, 124, 124, 124, 124, 124, 90, - 78, 74, 58, 36, 22, 0, 17, 124, 124, 124, - 124, 124, 124, 120, 118, 98, 92, 80, 74, 44, - 28, 4, 14, 14, 2, 52, 52, 48, 42, 36, - 38, 22, 18, 14, 2, 29, 9, 33, 53, 28, - 0, 9, 35, 25, 13, 25, 9, 6, 15, 25, - 1, 6, 6, 6, 14, 8, 6, 124, 108, 88, - 70, 54, 32, 14, 17, 51, 7, 78, 56, 46, - 26, 26, 10, 2, 1, 27, 29, 19, 7, 19, - 0, 10, 7, 15, 2, 10, 12, 10, 20, 18, - 8, 124, 108, 88, 70, 54, 32, 14, 17, 51, - }, - - { - /* Context Tables for P, SP, B Slices :: cabac_init_idc = 1, qp = 12 */ - - 124, 16, 25, 124, 16, 25, 85, 45, 30, 20, - 14, 44, 76, 102, 112, 38, 65, 5, 5, 11, - 16, 14, 7, 4, 20, 54, 66, 38, 5, 49, - 59, 51, 19, 5, 11, 16, 19, 33, 22, 28, - 7, 29, 49, 6, 25, 41, 67, 14, 15, 33, - 8, 29, 33, 55, 3, 25, 13, 41, 9, 4, - 44, 0, 0, 0, 25, 51, 67, 5, 26, 1, - 78, 14, 35, 67, 27, 39, 4, 15, 41, 31, - 69, 35, 61, 49, 73, 33, 43, 49, 51, 48, - 3, 17, 73, 15, 63, 41, 79, 12, 4, 6, - 7, 26, 9, 9, 35, 59, 35, 37, 35, 13, - 29, 57, 47, 13, 67, 45, 9, 21, 51, 57, - 0, 21, 9, 5, 6, 18, 1, 13, 39, 59, - 17, 38, 38, 61, 18, 12, 10, 8, 10, 4, - 3, 0, 4, 16, 10, 4, 2, 4, 9, 9, - 10, 5, 32, 50, 50, 34, 20, 38, 24, 32, - 22, 0, 28, 24, 46, 51, 30, 56, 50, 100, - 124, 70, 84, 118, 120, 76, 104, 102, 124, 124, - 72, 86, 64, 82, 108, 86, 116, 124, 124, 70, - 64, 102, 76, 124, 14, 124, 124, 124, 124, 124, - 112, 106, 104, 94, 84, 74, 62, 48, 38, 2, - 23, 19, 39, 36, 38, 32, 36, 12, 12, 10, - 34, 5, 15, 9, 35, 21, 89, 61, 8, 16, - 20, 2, 9, 19, 27, 31, 75, 43, 54, 28, - 16, 5, 3, 29, 49, 57, 75, 7, 54, 38, - 28, 24, 6, 0, 5, 13, 31, 7, 72, 62, - 48, 16, 20, 3, 19, 39, 18, 108, 96, 86, - 64, 48, 6, 11, 11, 23, 124, 93, 85, 63, - 85, 83, 57, 73, 65, 51, 67, 63, 67, 47, - 51, 51, 69, 59, 41, 29, 31, 29, 23, 15, - 7, 7, 2, 11, 11, 21, 0, 2, 3, 2, - 2, 2, 4, 10, 2, 0, 2, 12, 3, 11, - 19, 11, 3, 13, 28, 32, 30, 36, 26, 30, - 28, 26, 26, 8, 22, 18, 9, 0, 110, 112, - 106, 112, 112, 124, 122, 124, 124, 124, 124, 124, - 122, 100, 60, 124, 124, 124, 124, 124, 118, 86, - 72, 68, 54, 32, 18, 1, 19, 124, 124, 124, - 124, 124, 124, 114, 112, 94, 86, 76, 68, 40, - 24, 2, 12, 12, 1, 50, 48, 44, 38, 32, - 34, 18, 16, 12, 0, 31, 11, 35, 55, 26, - 1, 11, 35, 25, 11, 23, 7, 8, 15, 23, - 1, 6, 6, 6, 16, 8, 6, 122, 104, 82, - 64, 48, 24, 4, 25, 57, 7, 78, 56, 46, - 26, 26, 10, 2, 1, 25, 29, 19, 5, 19, - 0, 12, 7, 15, 2, 10, 12, 10, 20, 18, - 8, 122, 104, 82, 64, 48, 24, 4, 25, 57, - }, - - { - /* Context Tables for P, SP, B Slices :: cabac_init_idc = 1, qp = 13 */ - - 124, 16, 25, 124, 16, 25, 81, 43, 30, 20, - 14, 42, 72, 100, 112, 38, 61, 5, 5, 9, - 14, 12, 7, 2, 16, 52, 62, 30, 11, 53, - 53, 49, 17, 5, 9, 14, 19, 31, 22, 28, - 7, 27, 47, 6, 25, 41, 67, 14, 15, 33, - 8, 29, 33, 53, 3, 25, 13, 41, 7, 4, - 44, 0, 0, 0, 23, 51, 67, 5, 24, 1, - 76, 14, 35, 63, 25, 37, 8, 11, 37, 29, - 67, 31, 57, 47, 67, 33, 41, 49, 49, 48, - 3, 15, 69, 15, 61, 39, 75, 12, 4, 6, - 7, 26, 9, 9, 33, 57, 33, 35, 33, 11, - 27, 55, 43, 11, 63, 43, 0, 13, 45, 51, - 2, 19, 7, 3, 6, 18, 1, 13, 37, 55, - 17, 34, 34, 55, 18, 14, 10, 8, 10, 6, - 0, 2, 6, 14, 10, 4, 4, 4, 11, 7, - 10, 5, 30, 48, 48, 32, 18, 38, 24, 32, - 20, 2, 26, 24, 44, 51, 30, 54, 48, 96, - 124, 68, 82, 114, 116, 72, 100, 98, 124, 124, - 66, 82, 60, 76, 102, 82, 110, 124, 124, 66, - 60, 96, 72, 124, 12, 124, 124, 124, 122, 120, - 108, 102, 100, 90, 78, 70, 58, 46, 34, 1, - 23, 19, 39, 34, 36, 30, 32, 10, 10, 8, - 32, 7, 15, 11, 35, 23, 87, 59, 10, 16, - 20, 4, 9, 17, 25, 29, 71, 39, 54, 30, - 16, 5, 1, 27, 45, 53, 71, 7, 56, 40, - 30, 26, 8, 0, 3, 11, 29, 7, 74, 62, - 48, 14, 20, 3, 19, 37, 18, 108, 94, 84, - 62, 48, 6, 9, 11, 21, 124, 89, 83, 59, - 81, 79, 55, 71, 63, 49, 63, 61, 63, 45, - 49, 49, 67, 55, 41, 29, 29, 27, 21, 15, - 9, 7, 0, 11, 11, 21, 0, 2, 1, 2, - 2, 2, 4, 10, 2, 0, 2, 10, 3, 11, - 19, 11, 1, 15, 26, 32, 28, 36, 26, 28, - 28, 26, 24, 8, 22, 16, 9, 1, 108, 110, - 104, 108, 108, 124, 118, 122, 124, 118, 124, 124, - 116, 94, 56, 124, 124, 124, 124, 118, 112, 80, - 68, 64, 50, 30, 16, 1, 19, 124, 124, 124, - 124, 118, 118, 110, 106, 90, 82, 72, 62, 36, - 20, 1, 12, 12, 5, 48, 46, 42, 34, 28, - 30, 16, 14, 8, 1, 31, 15, 37, 55, 22, - 5, 15, 33, 25, 9, 23, 5, 10, 13, 21, - 0, 8, 6, 8, 18, 8, 6, 120, 100, 76, - 58, 40, 16, 3, 33, 63, 5, 78, 56, 46, - 26, 28, 10, 4, 0, 25, 29, 19, 5, 19, - 2, 14, 7, 15, 4, 12, 12, 12, 22, 18, - 8, 120, 100, 76, 58, 40, 16, 3, 33, 63, - }, - - { - /* Context Tables for P, SP, B Slices :: cabac_init_idc = 1, qp = 14 */ - - 122, 16, 25, 122, 16, 25, 77, 39, 32, 20, - 12, 38, 68, 98, 112, 38, 57, 5, 3, 7, - 14, 12, 7, 2, 14, 50, 56, 24, 15, 55, - 47, 47, 17, 3, 7, 14, 21, 29, 22, 26, - 7, 27, 47, 6, 25, 41, 67, 14, 15, 31, - 8, 29, 31, 53, 3, 25, 13, 41, 7, 4, - 44, 0, 0, 0, 23, 51, 67, 3, 22, 1, - 74, 12, 35, 57, 23, 35, 10, 7, 35, 25, - 63, 29, 55, 45, 63, 33, 41, 47, 49, 48, - 3, 13, 65, 15, 59, 39, 71, 12, 2, 4, - 9, 26, 9, 7, 33, 55, 31, 35, 31, 11, - 25, 51, 41, 11, 61, 41, 10, 3, 39, 45, - 2, 19, 7, 3, 6, 18, 0, 11, 37, 51, - 17, 30, 30, 49, 18, 14, 10, 8, 10, 6, - 2, 4, 6, 14, 10, 4, 4, 6, 13, 7, - 10, 7, 30, 46, 48, 32, 18, 38, 24, 32, - 18, 2, 24, 22, 44, 51, 30, 54, 48, 92, - 122, 66, 78, 110, 110, 68, 94, 94, 124, 124, - 58, 78, 56, 72, 96, 76, 104, 122, 124, 60, - 56, 88, 68, 124, 8, 120, 124, 120, 116, 114, - 104, 98, 96, 86, 74, 66, 54, 42, 32, 5, - 23, 19, 41, 32, 34, 28, 30, 8, 8, 6, - 28, 9, 17, 13, 37, 23, 87, 55, 12, 18, - 20, 4, 7, 17, 25, 29, 67, 37, 54, 30, - 18, 3, 0, 25, 43, 51, 67, 5, 56, 40, - 30, 26, 10, 2, 3, 11, 29, 7, 74, 62, - 46, 14, 20, 3, 19, 37, 18, 106, 94, 82, - 60, 48, 6, 9, 11, 21, 124, 87, 79, 57, - 79, 77, 53, 67, 59, 47, 61, 57, 59, 45, - 47, 49, 65, 51, 39, 29, 29, 27, 21, 15, - 9, 7, 0, 11, 11, 23, 2, 4, 0, 2, - 2, 4, 4, 10, 2, 0, 2, 10, 3, 11, - 19, 11, 1, 17, 24, 32, 26, 34, 24, 28, - 28, 24, 22, 8, 22, 14, 9, 3, 106, 108, - 102, 106, 104, 120, 114, 118, 118, 114, 124, 120, - 110, 90, 52, 124, 124, 124, 124, 110, 106, 76, - 64, 58, 46, 26, 12, 3, 21, 124, 124, 124, - 120, 112, 114, 104, 100, 84, 76, 66, 56, 32, - 16, 3, 10, 10, 7, 44, 42, 38, 30, 26, - 26, 12, 12, 6, 3, 33, 17, 39, 57, 20, - 7, 17, 33, 23, 9, 21, 3, 12, 13, 21, - 0, 8, 6, 8, 20, 8, 6, 118, 96, 72, - 52, 34, 8, 11, 41, 69, 5, 78, 56, 46, - 26, 28, 12, 4, 0, 23, 29, 19, 3, 17, - 4, 16, 7, 13, 4, 12, 12, 12, 22, 18, - 8, 118, 96, 72, 52, 34, 8, 11, 41, 69, - }, - - { - /* Context Tables for P, SP, B Slices :: cabac_init_idc = 1, qp = 15 */ - - 120, 16, 25, 120, 16, 25, 73, 37, 32, 20, - 12, 36, 64, 96, 112, 38, 53, 5, 3, 5, - 14, 10, 7, 0, 10, 48, 52, 16, 21, 59, - 41, 45, 17, 3, 5, 14, 21, 27, 22, 26, - 7, 27, 45, 6, 25, 41, 67, 14, 15, 31, - 8, 29, 31, 53, 3, 25, 13, 41, 7, 4, - 44, 0, 0, 0, 21, 51, 67, 3, 20, 1, - 72, 12, 35, 53, 21, 33, 14, 3, 31, 23, - 59, 25, 53, 43, 59, 33, 41, 47, 49, 48, - 3, 11, 61, 15, 57, 37, 67, 12, 2, 4, - 9, 26, 9, 7, 31, 53, 29, 33, 29, 9, - 23, 49, 37, 9, 59, 39, 20, 4, 33, 39, - 2, 19, 7, 1, 6, 18, 0, 11, 35, 47, - 17, 26, 26, 43, 18, 14, 10, 8, 10, 8, - 6, 6, 6, 14, 10, 4, 6, 8, 15, 7, - 10, 7, 28, 44, 46, 32, 16, 38, 24, 32, - 16, 2, 22, 20, 42, 51, 30, 52, 46, 88, - 116, 64, 74, 106, 106, 64, 90, 90, 124, 124, - 52, 74, 52, 68, 90, 72, 98, 114, 124, 54, - 52, 82, 64, 124, 4, 116, 124, 116, 112, 110, - 100, 94, 92, 82, 70, 62, 50, 38, 28, 9, - 23, 19, 41, 30, 32, 26, 28, 6, 6, 4, - 24, 11, 17, 15, 39, 25, 85, 53, 14, 18, - 20, 4, 5, 15, 23, 27, 63, 35, 54, 30, - 18, 1, 2, 23, 39, 47, 63, 3, 58, 42, - 32, 28, 12, 2, 3, 11, 27, 7, 76, 62, - 44, 14, 20, 3, 19, 35, 18, 106, 92, 80, - 58, 48, 6, 9, 11, 21, 124, 85, 77, 55, - 75, 73, 51, 63, 55, 45, 57, 53, 55, 43, - 45, 47, 63, 47, 39, 29, 29, 25, 19, 15, - 9, 7, 1, 11, 11, 23, 2, 4, 2, 2, - 2, 4, 4, 10, 2, 0, 2, 8, 3, 11, - 19, 11, 0, 19, 22, 32, 24, 32, 22, 26, - 28, 22, 20, 8, 22, 12, 9, 5, 104, 106, - 100, 102, 100, 116, 110, 114, 114, 108, 122, 114, - 104, 84, 48, 124, 124, 124, 124, 104, 100, 70, - 60, 54, 42, 22, 10, 5, 23, 124, 124, 124, - 116, 106, 108, 100, 94, 80, 72, 62, 50, 28, - 12, 7, 8, 8, 11, 42, 40, 34, 26, 22, - 22, 8, 10, 2, 5, 35, 19, 41, 59, 16, - 9, 19, 33, 23, 7, 21, 1, 14, 13, 19, - 2, 10, 6, 10, 22, 8, 6, 116, 92, 66, - 46, 28, 0, 19, 49, 75, 5, 78, 56, 46, - 26, 30, 12, 4, 0, 23, 29, 19, 3, 17, - 6, 18, 7, 13, 4, 12, 12, 12, 24, 18, - 8, 116, 92, 66, 46, 28, 0, 19, 49, 75, - }, - - { - /* Context Tables for P, SP, B Slices :: cabac_init_idc = 1, qp = 16 */ - - 116, 14, 27, 116, 14, 27, 71, 35, 32, 20, - 10, 32, 58, 94, 112, 36, 51, 7, 3, 5, - 12, 8, 7, 1, 6, 44, 46, 8, 27, 63, - 37, 45, 17, 3, 5, 12, 23, 27, 22, 24, - 7, 27, 45, 4, 27, 41, 67, 12, 15, 31, - 8, 29, 31, 53, 3, 25, 15, 41, 7, 4, - 44, 0, 0, 0, 21, 53, 67, 3, 18, 3, - 70, 10, 37, 49, 19, 31, 16, 0, 29, 21, - 57, 23, 51, 41, 55, 33, 41, 47, 49, 48, - 3, 11, 57, 15, 57, 37, 65, 10, 0, 2, - 11, 26, 9, 7, 31, 53, 29, 33, 29, 9, - 23, 47, 35, 9, 57, 37, 28, 12, 27, 35, - 2, 19, 7, 1, 4, 18, 0, 11, 35, 43, - 17, 22, 22, 39, 18, 14, 10, 8, 10, 8, - 8, 6, 6, 12, 8, 4, 6, 8, 19, 7, - 10, 9, 26, 40, 44, 30, 14, 38, 24, 30, - 12, 2, 20, 18, 40, 51, 28, 50, 44, 82, - 108, 60, 70, 100, 100, 58, 84, 86, 110, 124, - 44, 68, 48, 62, 82, 66, 90, 104, 118, 48, - 48, 74, 60, 124, 0, 110, 118, 110, 106, 104, - 94, 88, 86, 78, 64, 56, 46, 34, 24, 13, - 23, 21, 43, 28, 28, 22, 24, 2, 2, 0, - 20, 13, 19, 17, 41, 27, 85, 51, 14, 18, - 20, 4, 5, 15, 23, 27, 59, 33, 54, 30, - 18, 1, 2, 21, 37, 45, 61, 3, 58, 42, - 32, 28, 14, 2, 3, 11, 27, 9, 76, 60, - 42, 12, 20, 3, 19, 35, 16, 104, 90, 76, - 56, 46, 6, 9, 11, 21, 124, 83, 75, 53, - 73, 71, 49, 61, 53, 43, 55, 51, 51, 43, - 45, 47, 61, 45, 39, 29, 29, 25, 19, 15, - 11, 9, 3, 11, 13, 25, 2, 4, 4, 2, - 0, 4, 4, 8, 2, 0, 2, 6, 3, 11, - 19, 11, 0, 21, 20, 32, 20, 30, 20, 24, - 26, 20, 18, 8, 20, 8, 11, 9, 100, 102, - 98, 98, 96, 110, 104, 108, 108, 102, 116, 108, - 96, 78, 44, 124, 124, 122, 120, 96, 92, 64, - 54, 48, 38, 18, 6, 7, 25, 118, 120, 120, - 110, 100, 102, 94, 86, 74, 66, 56, 44, 24, - 8, 11, 6, 6, 15, 38, 36, 30, 20, 18, - 18, 4, 6, 1, 9, 37, 23, 43, 61, 12, - 13, 23, 33, 23, 7, 21, 0, 16, 13, 19, - 2, 10, 6, 10, 22, 8, 4, 112, 88, 60, - 38, 20, 7, 29, 59, 81, 5, 78, 56, 46, - 26, 30, 12, 4, 0, 23, 29, 19, 3, 17, - 6, 18, 7, 13, 4, 12, 12, 12, 24, 16, - 6, 112, 88, 60, 38, 20, 7, 29, 59, 81, - }, - - { - /* Context Tables for P, SP, B Slices :: cabac_init_idc = 1, qp = 17 */ - - 114, 14, 27, 114, 14, 27, 67, 31, 34, 22, - 10, 30, 54, 92, 114, 36, 47, 7, 1, 3, - 12, 8, 5, 1, 4, 42, 42, 2, 31, 65, - 31, 43, 15, 1, 3, 12, 23, 25, 22, 24, - 5, 25, 43, 4, 27, 39, 65, 12, 13, 29, - 8, 27, 29, 51, 1, 23, 15, 39, 5, 4, - 44, 0, 0, 0, 19, 53, 67, 1, 18, 3, - 70, 10, 37, 43, 15, 27, 20, 6, 25, 17, - 53, 19, 47, 37, 49, 33, 39, 45, 47, 48, - 3, 9, 51, 13, 55, 35, 61, 10, 0, 2, - 11, 28, 9, 5, 29, 51, 27, 31, 27, 7, - 21, 43, 31, 7, 53, 33, 38, 22, 19, 29, - 4, 17, 5, 0, 4, 20, 2, 9, 33, 37, - 15, 18, 20, 33, 18, 16, 10, 10, 12, 10, - 12, 8, 8, 12, 8, 4, 8, 10, 21, 5, - 10, 9, 26, 38, 44, 30, 14, 38, 24, 30, - 10, 4, 20, 18, 40, 51, 28, 50, 44, 78, - 102, 58, 68, 96, 96, 54, 80, 82, 98, 124, - 38, 64, 46, 58, 76, 62, 84, 96, 110, 44, - 44, 68, 56, 124, 1, 106, 114, 106, 102, 100, - 90, 84, 82, 74, 60, 52, 44, 32, 22, 15, - 23, 21, 43, 28, 26, 20, 22, 0, 0, 1, - 18, 15, 19, 19, 41, 27, 83, 47, 16, 20, - 20, 6, 3, 13, 21, 25, 53, 29, 56, 32, - 20, 0, 4, 17, 33, 41, 57, 1, 60, 44, - 34, 30, 16, 4, 1, 9, 25, 9, 78, 60, - 42, 12, 22, 1, 19, 33, 16, 104, 90, 74, - 54, 46, 8, 7, 9, 19, 124, 79, 71, 49, - 69, 67, 45, 57, 49, 39, 51, 47, 45, 41, - 43, 45, 57, 41, 37, 27, 27, 23, 17, 13, - 11, 9, 3, 11, 13, 25, 4, 6, 6, 4, - 0, 6, 6, 8, 4, 2, 2, 6, 1, 9, - 17, 9, 2, 21, 18, 32, 18, 30, 20, 24, - 26, 20, 18, 8, 20, 6, 11, 11, 98, 100, - 98, 96, 94, 106, 100, 104, 104, 98, 112, 104, - 90, 74, 40, 122, 120, 114, 112, 90, 86, 60, - 50, 44, 36, 16, 4, 7, 25, 114, 116, 116, - 106, 96, 98, 90, 80, 70, 62, 52, 40, 22, - 6, 13, 6, 6, 17, 36, 34, 28, 16, 16, - 16, 2, 4, 3, 11, 37, 25, 43, 61, 10, - 15, 25, 31, 21, 5, 19, 4, 20, 11, 17, - 4, 12, 8, 12, 24, 8, 4, 110, 84, 56, - 32, 14, 15, 37, 67, 85, 3, 78, 58, 48, - 28, 32, 14, 6, 2, 21, 27, 17, 1, 15, - 8, 20, 5, 11, 6, 14, 12, 14, 26, 16, - 6, 110, 84, 56, 32, 14, 15, 37, 67, 85, - }, - - { - /* Context Tables for P, SP, B Slices :: cabac_init_idc = 1, qp = 18 */ - - 112, 14, 27, 112, 14, 27, 63, 29, 34, 22, - 10, 28, 50, 90, 114, 36, 43, 7, 1, 1, - 12, 6, 5, 3, 0, 40, 36, 5, 37, 69, - 25, 41, 15, 1, 1, 12, 23, 23, 22, 22, - 5, 25, 41, 4, 27, 39, 65, 12, 13, 29, - 8, 27, 29, 51, 1, 23, 15, 39, 5, 4, - 44, 0, 0, 0, 17, 53, 67, 1, 16, 3, - 68, 10, 37, 39, 13, 25, 24, 10, 23, 15, - 49, 17, 45, 35, 45, 33, 39, 45, 47, 48, - 3, 7, 47, 13, 53, 33, 57, 10, 0, 2, - 13, 28, 9, 5, 27, 49, 25, 29, 25, 7, - 19, 41, 29, 5, 51, 31, 48, 30, 13, 23, - 4, 17, 5, 0, 4, 20, 2, 9, 33, 33, - 15, 14, 16, 27, 18, 16, 10, 10, 12, 10, - 16, 10, 8, 12, 8, 4, 10, 12, 23, 5, - 10, 9, 24, 36, 42, 30, 12, 38, 24, 30, - 8, 4, 18, 16, 38, 51, 28, 48, 42, 74, - 96, 56, 64, 92, 92, 50, 76, 78, 86, 124, - 30, 60, 42, 54, 70, 58, 78, 88, 102, 38, - 40, 62, 52, 124, 5, 102, 110, 102, 98, 96, - 86, 80, 78, 70, 56, 48, 40, 28, 18, 19, - 23, 21, 45, 26, 24, 18, 20, 1, 1, 3, - 14, 17, 19, 21, 43, 29, 81, 45, 18, 20, - 20, 6, 1, 11, 19, 23, 49, 27, 56, 32, - 20, 2, 6, 15, 29, 37, 53, 0, 62, 46, - 36, 32, 18, 4, 1, 9, 23, 9, 80, 60, - 40, 12, 22, 1, 19, 33, 16, 104, 88, 72, - 52, 46, 8, 7, 9, 19, 124, 77, 69, 47, - 65, 63, 43, 53, 45, 37, 47, 43, 41, 39, - 41, 45, 55, 37, 37, 27, 27, 21, 17, 13, - 11, 9, 5, 11, 13, 25, 4, 6, 8, 4, - 0, 6, 6, 8, 4, 2, 2, 4, 1, 9, - 17, 9, 4, 23, 16, 32, 16, 28, 18, 22, - 26, 18, 16, 8, 20, 4, 11, 13, 96, 98, - 96, 92, 90, 102, 96, 100, 100, 92, 106, 98, - 84, 68, 36, 114, 112, 106, 102, 84, 80, 54, - 46, 38, 32, 12, 2, 9, 27, 110, 112, 110, - 102, 90, 92, 84, 74, 66, 56, 48, 34, 18, - 2, 17, 4, 4, 21, 34, 32, 24, 12, 12, - 12, 1, 2, 7, 13, 39, 27, 45, 63, 6, - 17, 27, 31, 21, 3, 19, 6, 22, 11, 15, - 6, 14, 8, 12, 26, 8, 4, 108, 80, 50, - 26, 8, 23, 45, 75, 91, 3, 78, 58, 48, - 28, 34, 14, 6, 2, 21, 27, 17, 1, 15, - 10, 22, 5, 11, 6, 14, 12, 14, 28, 16, - 6, 108, 80, 50, 26, 8, 23, 45, 75, 91, - }, - - { - /* Context Tables for P, SP, B Slices :: cabac_init_idc = 1, qp = 19 */ - - 110, 14, 27, 110, 14, 27, 59, 25, 36, 22, - 8, 24, 46, 88, 114, 36, 39, 7, 0, 0, - 12, 6, 5, 3, 1, 38, 32, 11, 41, 71, - 19, 39, 15, 0, 0, 12, 25, 21, 22, 22, - 5, 25, 41, 4, 27, 39, 65, 12, 13, 27, - 8, 27, 27, 51, 1, 23, 15, 39, 5, 4, - 44, 0, 0, 0, 17, 53, 67, 0, 14, 3, - 66, 8, 37, 33, 11, 23, 26, 14, 19, 11, - 45, 13, 43, 33, 41, 33, 39, 43, 47, 48, - 3, 5, 43, 13, 51, 33, 53, 10, 1, 0, - 13, 28, 9, 3, 27, 47, 23, 29, 23, 5, - 17, 37, 25, 5, 49, 29, 58, 40, 7, 17, - 4, 17, 5, 2, 4, 20, 4, 7, 31, 29, - 15, 10, 12, 21, 18, 16, 10, 10, 12, 12, - 18, 12, 8, 12, 8, 4, 10, 14, 25, 5, - 10, 11, 24, 34, 42, 30, 12, 38, 24, 30, - 6, 4, 16, 14, 38, 51, 28, 48, 42, 70, - 90, 54, 60, 88, 86, 46, 70, 74, 72, 124, - 24, 56, 38, 50, 64, 52, 72, 80, 94, 32, - 36, 54, 48, 124, 9, 98, 106, 98, 92, 90, - 82, 76, 74, 66, 52, 44, 36, 24, 16, 23, - 23, 21, 45, 24, 22, 16, 18, 3, 3, 5, - 10, 19, 21, 23, 45, 29, 81, 41, 20, 22, - 20, 6, 0, 11, 19, 23, 45, 25, 56, 32, - 22, 4, 8, 13, 27, 35, 49, 2, 62, 46, - 36, 32, 20, 6, 1, 9, 23, 9, 80, 60, - 38, 12, 22, 1, 19, 31, 16, 102, 88, 70, - 50, 46, 8, 7, 9, 19, 124, 75, 65, 45, - 63, 61, 41, 49, 41, 35, 45, 39, 37, 39, - 39, 43, 53, 33, 35, 27, 27, 21, 15, 13, - 11, 9, 5, 11, 13, 27, 6, 8, 10, 4, - 0, 8, 6, 8, 4, 2, 2, 4, 1, 9, - 17, 9, 4, 25, 14, 32, 14, 26, 16, 22, - 26, 16, 14, 8, 20, 2, 11, 15, 94, 96, - 94, 90, 86, 98, 92, 96, 94, 88, 100, 92, - 78, 64, 32, 106, 104, 98, 92, 76, 74, 50, - 42, 34, 28, 8, 1, 11, 29, 106, 106, 106, - 96, 84, 88, 80, 68, 60, 52, 42, 28, 14, - 1, 19, 2, 2, 23, 30, 28, 20, 8, 10, - 8, 5, 0, 9, 15, 41, 29, 47, 65, 4, - 19, 29, 31, 19, 3, 17, 8, 24, 11, 15, - 6, 14, 8, 14, 28, 8, 4, 106, 76, 46, - 20, 2, 31, 53, 83, 97, 3, 78, 58, 48, - 28, 34, 16, 6, 2, 19, 27, 17, 0, 13, - 12, 24, 5, 9, 6, 14, 12, 14, 28, 16, - 6, 106, 76, 46, 20, 2, 31, 53, 83, 97, - }, - - { - /* Context Tables for P, SP, B Slices :: cabac_init_idc = 1, qp = 20 */ - - 106, 14, 27, 106, 14, 27, 57, 23, 36, 22, - 8, 22, 42, 86, 114, 34, 35, 7, 0, 2, - 10, 4, 5, 5, 5, 36, 26, 19, 47, 75, - 13, 37, 15, 0, 2, 10, 25, 19, 22, 20, - 5, 23, 39, 4, 27, 39, 65, 12, 13, 27, - 8, 27, 27, 49, 1, 23, 15, 39, 3, 4, - 44, 0, 0, 0, 15, 55, 67, 0, 12, 3, - 64, 8, 37, 29, 9, 21, 30, 18, 17, 9, - 43, 11, 39, 31, 37, 33, 37, 43, 47, 48, - 3, 3, 39, 13, 51, 31, 49, 10, 1, 0, - 15, 28, 9, 3, 25, 45, 21, 27, 21, 5, - 17, 35, 23, 3, 47, 27, 68, 48, 1, 11, - 4, 15, 5, 2, 4, 20, 4, 7, 31, 25, - 15, 6, 8, 17, 18, 18, 10, 10, 12, 12, - 22, 14, 10, 10, 8, 4, 12, 14, 27, 5, - 10, 11, 22, 32, 40, 28, 10, 38, 24, 30, - 4, 4, 14, 12, 36, 51, 26, 46, 40, 66, - 82, 52, 56, 84, 82, 42, 66, 70, 60, 124, - 16, 52, 34, 44, 58, 48, 64, 70, 86, 26, - 32, 48, 44, 124, 11, 94, 102, 92, 88, 86, - 78, 72, 70, 62, 46, 40, 32, 20, 12, 27, - 23, 21, 47, 22, 20, 14, 14, 5, 7, 7, - 8, 21, 21, 25, 45, 31, 79, 39, 22, 22, - 20, 8, 0, 9, 17, 21, 41, 21, 56, 34, - 22, 4, 10, 11, 23, 31, 47, 2, 64, 48, - 38, 34, 22, 6, 1, 7, 21, 9, 82, 60, - 38, 10, 22, 1, 19, 31, 16, 102, 86, 68, - 48, 46, 8, 5, 9, 19, 124, 71, 63, 43, - 59, 57, 39, 47, 39, 33, 41, 37, 33, 37, - 37, 43, 51, 31, 35, 27, 27, 19, 15, 13, - 13, 9, 7, 11, 13, 27, 6, 8, 12, 4, - 0, 8, 6, 8, 4, 2, 2, 2, 1, 9, - 17, 9, 6, 27, 12, 32, 12, 26, 14, 20, - 26, 14, 12, 8, 20, 0, 11, 17, 92, 94, - 92, 86, 82, 94, 88, 90, 90, 82, 94, 86, - 72, 58, 28, 96, 96, 90, 82, 70, 66, 44, - 36, 28, 24, 4, 3, 13, 29, 100, 102, 100, - 92, 78, 82, 74, 62, 56, 46, 38, 22, 10, - 5, 23, 0, 2, 27, 28, 26, 18, 4, 6, - 4, 7, 1, 13, 17, 43, 33, 49, 65, 0, - 23, 33, 29, 19, 1, 17, 10, 26, 11, 13, - 8, 16, 8, 14, 30, 8, 4, 104, 72, 40, - 14, 5, 39, 63, 91, 103, 1, 78, 58, 48, - 28, 36, 16, 6, 2, 19, 27, 17, 0, 13, - 12, 26, 5, 9, 8, 16, 12, 14, 30, 16, - 6, 104, 72, 40, 14, 5, 39, 63, 91, 103, - }, - - { - /* Context Tables for P, SP, B Slices :: cabac_init_idc = 1, qp = 21 */ - - 104, 14, 27, 104, 14, 27, 53, 19, 36, 22, - 6, 20, 38, 84, 114, 34, 31, 7, 0, 4, - 10, 4, 5, 7, 9, 34, 22, 25, 51, 79, - 7, 35, 13, 0, 4, 10, 25, 17, 22, 20, - 5, 23, 37, 4, 27, 39, 65, 12, 13, 27, - 8, 27, 25, 49, 1, 23, 15, 39, 3, 4, - 44, 0, 0, 0, 15, 55, 67, 2, 10, 3, - 62, 6, 37, 23, 7, 19, 34, 22, 13, 5, - 39, 7, 37, 29, 31, 33, 37, 41, 45, 48, - 3, 1, 35, 13, 49, 31, 45, 10, 3, 1, - 15, 28, 9, 1, 25, 43, 19, 27, 19, 3, - 15, 31, 19, 1, 43, 25, 78, 56, 4, 5, - 6, 15, 3, 4, 4, 20, 6, 7, 29, 21, - 15, 2, 4, 11, 18, 18, 10, 10, 12, 14, - 24, 16, 10, 10, 8, 4, 12, 16, 29, 3, - 10, 13, 22, 30, 40, 28, 10, 38, 24, 30, - 2, 6, 12, 12, 36, 51, 26, 44, 38, 62, - 76, 50, 54, 80, 78, 38, 60, 66, 48, 124, - 10, 48, 30, 40, 52, 42, 58, 62, 78, 22, - 28, 40, 40, 124, 15, 90, 98, 88, 84, 82, - 74, 68, 66, 58, 42, 36, 28, 18, 8, 31, - 23, 21, 47, 20, 18, 12, 12, 7, 9, 9, - 4, 23, 23, 27, 47, 33, 77, 35, 24, 24, - 20, 8, 2, 9, 17, 19, 37, 19, 56, 34, - 24, 6, 12, 9, 21, 29, 43, 4, 66, 50, - 40, 34, 24, 8, 0, 7, 21, 9, 82, 60, - 36, 10, 22, 1, 19, 29, 16, 100, 84, 66, - 46, 46, 8, 5, 9, 17, 124, 69, 59, 39, - 55, 55, 37, 43, 35, 31, 37, 33, 29, 35, - 35, 41, 49, 27, 35, 27, 25, 19, 13, 13, - 13, 9, 7, 11, 13, 29, 8, 8, 14, 4, - 0, 8, 6, 8, 4, 2, 2, 2, 1, 9, - 17, 9, 6, 29, 10, 32, 10, 24, 14, 18, - 26, 14, 10, 8, 20, 1, 11, 19, 90, 92, - 90, 82, 78, 90, 84, 86, 84, 76, 88, 80, - 66, 54, 24, 88, 88, 82, 72, 64, 60, 40, - 32, 24, 20, 2, 7, 13, 31, 96, 96, 96, - 88, 72, 76, 70, 56, 52, 42, 34, 16, 6, - 9, 25, 0, 0, 31, 26, 22, 14, 0, 2, - 0, 11, 3, 15, 19, 43, 35, 51, 67, 1, - 25, 35, 29, 19, 0, 15, 12, 28, 9, 11, - 8, 16, 8, 16, 32, 8, 4, 102, 68, 34, - 8, 11, 47, 71, 99, 109, 1, 78, 58, 48, - 28, 36, 16, 8, 4, 17, 27, 17, 2, 13, - 14, 28, 5, 9, 8, 16, 12, 16, 30, 16, - 6, 102, 68, 34, 8, 11, 47, 71, 99, 109, - }, - - { - /* Context Tables for P, SP, B Slices :: cabac_init_idc = 1, qp = 22 */ - - 102, 14, 29, 102, 14, 29, 49, 17, 38, 22, - 6, 16, 34, 82, 114, 34, 29, 7, 2, 4, - 10, 2, 3, 7, 11, 30, 16, 33, 57, 81, - 3, 33, 13, 2, 4, 10, 27, 17, 22, 18, - 5, 23, 37, 4, 27, 37, 63, 12, 11, 25, - 8, 25, 25, 49, 1, 23, 15, 39, 3, 4, - 44, 0, 0, 0, 13, 55, 67, 2, 10, 5, - 62, 6, 37, 19, 5, 17, 36, 28, 11, 3, - 35, 5, 35, 27, 27, 33, 37, 41, 45, 48, - 3, 0, 29, 13, 47, 29, 41, 8, 3, 1, - 17, 30, 9, 1, 23, 43, 19, 25, 17, 3, - 13, 29, 17, 1, 41, 23, 88, 66, 10, 0, - 6, 15, 3, 4, 4, 20, 6, 5, 29, 17, - 13, 1, 0, 5, 18, 18, 10, 10, 14, 14, - 28, 18, 10, 10, 8, 4, 14, 18, 31, 3, - 10, 13, 20, 28, 38, 28, 8, 38, 24, 30, - 1, 6, 10, 10, 34, 51, 26, 44, 38, 58, - 70, 48, 50, 74, 72, 34, 56, 62, 34, 124, - 2, 44, 28, 36, 44, 38, 52, 54, 68, 16, - 24, 34, 36, 124, 19, 86, 94, 84, 78, 76, - 70, 62, 62, 54, 38, 30, 24, 14, 6, 33, - 23, 21, 49, 18, 16, 10, 10, 9, 11, 11, - 0, 25, 23, 29, 49, 33, 77, 33, 26, 24, - 20, 8, 4, 7, 15, 19, 33, 17, 58, 34, - 24, 8, 14, 7, 17, 25, 39, 6, 66, 50, - 40, 36, 26, 8, 0, 7, 19, 9, 84, 60, - 34, 10, 22, 1, 19, 29, 14, 100, 84, 64, - 44, 44, 8, 5, 9, 17, 124, 67, 57, 37, - 53, 51, 35, 39, 31, 29, 35, 29, 25, 35, - 33, 41, 47, 23, 33, 27, 25, 17, 13, 13, - 13, 9, 9, 11, 13, 29, 8, 10, 16, 4, - 0, 10, 8, 8, 6, 4, 2, 0, 1, 9, - 17, 9, 8, 31, 8, 32, 8, 22, 12, 18, - 26, 12, 10, 8, 18, 5, 13, 21, 86, 90, - 88, 80, 74, 86, 80, 82, 80, 72, 82, 76, - 60, 48, 20, 80, 80, 74, 64, 56, 54, 34, - 28, 18, 16, 1, 9, 15, 33, 92, 92, 90, - 82, 66, 72, 64, 50, 46, 36, 28, 10, 2, - 11, 29, 1, 1, 33, 22, 20, 10, 3, 0, - 3, 15, 5, 19, 21, 45, 37, 53, 69, 5, - 27, 37, 29, 17, 0, 15, 14, 30, 9, 11, - 10, 18, 8, 16, 34, 8, 4, 100, 64, 30, - 2, 17, 55, 79, 107, 115, 1, 78, 58, 48, - 28, 38, 18, 8, 4, 17, 25, 15, 2, 11, - 16, 30, 3, 7, 8, 16, 12, 16, 32, 16, - 6, 100, 64, 30, 2, 17, 55, 79, 107, 115, - }, - - { - /* Context Tables for P, SP, B Slices :: cabac_init_idc = 1, qp = 23 */ - - 100, 14, 29, 100, 14, 29, 45, 13, 38, 22, - 4, 14, 30, 80, 114, 34, 25, 7, 2, 6, - 8, 2, 3, 9, 15, 28, 12, 39, 61, 85, - 2, 31, 13, 2, 6, 8, 27, 15, 22, 18, - 5, 21, 35, 4, 27, 37, 63, 12, 11, 25, - 8, 25, 23, 47, 1, 23, 15, 39, 1, 4, - 44, 0, 0, 0, 13, 55, 67, 4, 8, 5, - 60, 4, 37, 13, 3, 15, 40, 32, 7, 0, - 33, 1, 31, 25, 23, 33, 35, 39, 45, 48, - 3, 2, 25, 13, 45, 29, 37, 8, 5, 3, - 17, 30, 9, 0, 23, 41, 17, 25, 15, 1, - 11, 25, 13, 0, 39, 21, 98, 74, 16, 6, - 6, 13, 3, 6, 4, 20, 8, 5, 27, 13, - 13, 5, 3, 0, 18, 20, 10, 10, 14, 16, - 30, 20, 12, 8, 8, 4, 14, 18, 33, 3, - 10, 15, 20, 26, 38, 26, 8, 38, 24, 30, - 3, 6, 8, 8, 34, 51, 26, 42, 36, 54, - 64, 46, 46, 70, 68, 30, 50, 58, 22, 124, - 3, 40, 24, 30, 38, 32, 46, 44, 60, 10, - 20, 26, 32, 124, 21, 82, 90, 80, 74, 72, - 66, 58, 58, 50, 32, 26, 20, 10, 2, 37, - 23, 21, 49, 16, 14, 8, 6, 11, 13, 13, - 1, 27, 25, 31, 49, 35, 75, 29, 28, 26, - 20, 10, 4, 7, 15, 17, 29, 13, 58, 36, - 26, 8, 16, 5, 15, 23, 35, 6, 68, 52, - 42, 36, 28, 10, 0, 5, 19, 9, 84, 60, - 34, 8, 22, 1, 19, 27, 14, 98, 82, 62, - 42, 44, 8, 3, 9, 17, 124, 63, 53, 35, - 49, 49, 33, 37, 29, 27, 31, 27, 21, 33, - 31, 39, 45, 19, 33, 27, 25, 17, 11, 13, - 15, 9, 9, 11, 13, 31, 10, 10, 18, 4, - 0, 10, 8, 8, 6, 4, 2, 0, 1, 9, - 17, 9, 8, 33, 6, 32, 6, 22, 10, 16, - 26, 10, 8, 8, 18, 7, 13, 23, 84, 88, - 86, 76, 70, 82, 76, 76, 74, 66, 76, 70, - 54, 44, 16, 70, 72, 66, 54, 50, 48, 30, - 24, 14, 12, 5, 13, 17, 33, 86, 86, 86, - 78, 60, 66, 60, 44, 42, 32, 24, 4, 1, - 15, 31, 3, 1, 37, 20, 16, 8, 7, 3, - 7, 17, 7, 21, 23, 47, 41, 55, 69, 7, - 31, 41, 27, 17, 2, 13, 16, 32, 9, 9, - 10, 18, 8, 18, 36, 8, 4, 98, 60, 24, - 3, 25, 63, 87, 115, 121, 0, 78, 58, 48, - 28, 38, 18, 8, 4, 15, 25, 15, 4, 11, - 18, 32, 3, 7, 10, 18, 12, 16, 32, 16, - 6, 98, 60, 24, 3, 25, 63, 87, 115, 121, - }, - - { - /* Context Tables for P, SP, B Slices :: cabac_init_idc = 1, qp = 24 */ - - 96, 12, 29, 96, 12, 29, 43, 11, 38, 22, - 4, 10, 24, 78, 114, 32, 21, 9, 2, 8, - 8, 0, 3, 11, 19, 26, 6, 47, 67, 89, - 8, 29, 13, 2, 8, 8, 29, 13, 22, 16, - 5, 21, 35, 2, 29, 37, 63, 12, 11, 25, - 8, 25, 23, 47, 1, 23, 15, 39, 1, 4, - 44, 0, 0, 0, 11, 57, 67, 4, 6, 5, - 58, 4, 39, 9, 1, 13, 42, 36, 5, 2, - 29, 0, 29, 23, 19, 33, 35, 39, 45, 48, - 3, 4, 21, 13, 45, 27, 33, 8, 5, 3, - 19, 30, 9, 0, 21, 39, 15, 23, 15, 1, - 11, 23, 11, 0, 37, 19, 106, 82, 22, 10, - 6, 13, 3, 6, 2, 20, 8, 5, 27, 9, - 13, 9, 7, 4, 18, 20, 10, 10, 14, 16, - 34, 20, 12, 8, 6, 4, 16, 20, 37, 3, - 10, 15, 18, 22, 36, 26, 6, 38, 24, 28, - 5, 6, 6, 6, 32, 51, 24, 40, 34, 50, - 56, 42, 42, 66, 62, 24, 46, 54, 8, 124, - 11, 36, 20, 26, 32, 28, 38, 36, 52, 4, - 16, 20, 28, 124, 25, 78, 84, 74, 68, 66, - 60, 54, 52, 46, 28, 22, 16, 6, 1, 41, - 23, 23, 51, 14, 10, 6, 4, 13, 17, 17, - 5, 29, 25, 33, 51, 37, 75, 27, 30, 26, - 20, 10, 6, 5, 13, 17, 25, 11, 58, 36, - 26, 10, 18, 3, 11, 19, 33, 8, 68, 52, - 42, 38, 30, 10, 0, 5, 17, 11, 86, 60, - 32, 8, 22, 1, 19, 27, 14, 98, 80, 60, - 40, 44, 8, 3, 9, 17, 124, 61, 51, 33, - 47, 45, 31, 33, 25, 25, 29, 23, 17, 33, - 31, 39, 43, 17, 33, 27, 25, 15, 11, 13, - 15, 9, 11, 11, 13, 31, 10, 10, 20, 4, - 1, 10, 8, 6, 6, 4, 2, 1, 1, 9, - 17, 9, 10, 35, 4, 32, 2, 20, 8, 14, - 24, 8, 6, 8, 18, 9, 13, 27, 82, 84, - 84, 72, 66, 78, 72, 72, 70, 60, 70, 64, - 48, 38, 12, 62, 64, 56, 44, 42, 40, 24, - 18, 8, 8, 9, 15, 19, 35, 82, 82, 80, - 72, 54, 60, 54, 38, 36, 26, 18, 1, 5, - 19, 35, 5, 3, 41, 16, 14, 4, 11, 7, - 11, 21, 11, 25, 27, 49, 43, 57, 71, 11, - 33, 43, 27, 17, 2, 13, 18, 34, 9, 9, - 12, 20, 8, 18, 36, 8, 2, 96, 56, 18, - 9, 31, 71, 97, 125, 125, 0, 78, 58, 48, - 28, 40, 18, 8, 4, 15, 25, 15, 4, 11, - 18, 32, 3, 7, 10, 18, 12, 16, 34, 16, - 4, 96, 56, 18, 9, 31, 71, 97, 125, 125, - }, - - { - /* Context Tables for P, SP, B Slices :: cabac_init_idc = 1, qp = 25 */ - - 94, 12, 29, 94, 12, 29, 39, 9, 40, 22, - 4, 8, 20, 76, 116, 32, 17, 9, 4, 10, - 8, 1, 3, 11, 21, 24, 2, 55, 73, 91, - 14, 27, 11, 4, 10, 8, 29, 11, 22, 16, - 3, 21, 33, 2, 29, 37, 63, 12, 11, 23, - 8, 25, 23, 47, 1, 23, 15, 37, 1, 4, - 44, 0, 0, 0, 9, 57, 67, 4, 4, 5, - 56, 4, 39, 5, 2, 11, 46, 40, 1, 4, - 25, 4, 27, 19, 13, 33, 35, 39, 43, 48, - 3, 6, 17, 11, 43, 25, 29, 8, 5, 3, - 19, 30, 9, 0, 19, 37, 13, 21, 13, 0, - 9, 21, 7, 2, 33, 17, 116, 92, 30, 16, - 8, 13, 1, 8, 2, 20, 8, 3, 25, 3, - 13, 13, 9, 10, 18, 20, 10, 10, 14, 18, - 38, 22, 12, 8, 6, 4, 18, 22, 39, 1, - 10, 15, 16, 20, 34, 26, 4, 38, 24, 28, - 7, 8, 4, 6, 30, 51, 24, 40, 34, 46, - 50, 40, 40, 62, 58, 20, 42, 50, 3, 124, - 17, 32, 16, 22, 26, 24, 32, 28, 44, 0, - 12, 14, 24, 124, 29, 74, 80, 70, 64, 62, - 56, 50, 48, 42, 24, 18, 14, 4, 3, 45, - 23, 23, 51, 14, 8, 4, 2, 15, 19, 19, - 9, 31, 25, 35, 53, 37, 73, 25, 32, 26, - 20, 10, 8, 3, 11, 15, 19, 9, 58, 36, - 26, 12, 20, 1, 7, 15, 29, 10, 70, 54, - 44, 40, 32, 10, 2, 5, 15, 11, 88, 60, - 30, 8, 24, 0, 19, 25, 14, 98, 80, 58, - 38, 44, 8, 3, 9, 15, 124, 59, 49, 29, - 43, 41, 29, 29, 21, 23, 25, 19, 13, 31, - 29, 37, 41, 13, 31, 25, 23, 13, 9, 13, - 15, 9, 13, 11, 13, 31, 10, 12, 22, 6, - 1, 12, 8, 6, 6, 4, 2, 3, 1, 7, - 15, 9, 12, 35, 2, 32, 0, 18, 8, 14, - 24, 8, 4, 8, 18, 11, 13, 29, 80, 82, - 84, 70, 62, 74, 68, 68, 66, 56, 64, 58, - 42, 32, 8, 54, 56, 48, 34, 36, 34, 18, - 14, 4, 6, 11, 17, 19, 37, 78, 78, 76, - 68, 50, 56, 50, 32, 32, 22, 14, 5, 9, - 23, 39, 5, 5, 43, 14, 12, 0, 15, 9, - 13, 25, 13, 29, 29, 49, 45, 57, 73, 15, - 35, 45, 27, 15, 4, 13, 20, 38, 7, 7, - 14, 22, 8, 20, 38, 8, 2, 94, 52, 14, - 15, 37, 79, 105, 125, 125, 0, 78, 58, 50, - 30, 42, 20, 10, 6, 15, 25, 15, 4, 9, - 20, 34, 3, 5, 10, 18, 12, 18, 36, 16, - 4, 94, 52, 14, 15, 37, 79, 105, 125, 125, - }, - - { - /* Context Tables for P, SP, B Slices :: cabac_init_idc = 1, qp = 26 */ - - 92, 12, 29, 92, 12, 29, 35, 5, 40, 22, - 2, 6, 16, 74, 116, 32, 13, 9, 4, 12, - 6, 1, 3, 13, 25, 22, 3, 61, 77, 95, - 20, 25, 11, 4, 12, 6, 29, 9, 22, 14, - 3, 19, 31, 2, 29, 37, 63, 12, 11, 23, - 8, 25, 21, 45, 1, 23, 15, 37, 0, 4, - 44, 0, 0, 0, 9, 57, 67, 6, 2, 5, - 54, 2, 39, 0, 4, 9, 50, 44, 0, 8, - 23, 6, 23, 17, 9, 33, 33, 37, 43, 48, - 3, 8, 13, 11, 41, 25, 25, 8, 7, 5, - 21, 30, 9, 2, 19, 35, 11, 21, 11, 0, - 7, 17, 5, 4, 31, 15, 124, 100, 36, 22, - 8, 11, 1, 8, 2, 20, 10, 3, 25, 0, - 13, 17, 13, 16, 18, 22, 10, 10, 14, 18, - 40, 24, 14, 6, 6, 4, 18, 22, 41, 1, - 10, 17, 16, 18, 34, 24, 4, 38, 24, 28, - 9, 8, 2, 4, 30, 51, 24, 38, 32, 42, - 44, 38, 36, 58, 54, 16, 36, 46, 15, 124, - 25, 28, 12, 16, 20, 18, 26, 18, 36, 5, - 8, 6, 20, 124, 31, 70, 76, 66, 60, 58, - 52, 46, 44, 38, 18, 14, 10, 0, 7, 49, - 23, 23, 53, 12, 6, 2, 1, 17, 21, 21, - 11, 33, 27, 37, 53, 39, 71, 21, 34, 28, - 20, 12, 8, 3, 11, 13, 15, 5, 58, 38, - 28, 12, 22, 0, 5, 13, 25, 10, 72, 56, - 46, 40, 34, 12, 2, 3, 15, 11, 88, 60, - 30, 6, 24, 0, 19, 25, 14, 96, 78, 56, - 36, 44, 8, 1, 9, 15, 124, 55, 45, 27, - 39, 39, 27, 27, 19, 21, 21, 17, 9, 29, - 27, 37, 39, 9, 31, 25, 23, 13, 9, 13, - 17, 9, 13, 11, 13, 33, 12, 12, 24, 6, - 1, 12, 8, 6, 6, 4, 2, 3, 1, 7, - 15, 9, 12, 37, 0, 32, 1, 18, 6, 12, - 24, 6, 2, 8, 18, 13, 13, 31, 78, 80, - 82, 66, 58, 70, 64, 62, 60, 50, 58, 52, - 36, 28, 4, 44, 48, 40, 24, 30, 28, 14, - 10, 1, 2, 15, 21, 21, 37, 72, 72, 70, - 64, 44, 50, 44, 26, 28, 16, 10, 11, 13, - 27, 41, 7, 5, 47, 12, 8, 1, 19, 13, - 17, 27, 15, 31, 31, 51, 49, 59, 73, 17, - 39, 49, 25, 15, 6, 11, 22, 40, 7, 5, - 14, 22, 8, 20, 40, 8, 2, 92, 48, 8, - 21, 45, 87, 113, 125, 125, 2, 78, 58, 50, - 30, 42, 20, 10, 6, 13, 25, 15, 6, 9, - 22, 36, 3, 5, 12, 20, 12, 18, 36, 16, - 4, 92, 48, 8, 21, 45, 87, 113, 125, 125, - }, - - { - /* Context Tables for P, SP, B Slices :: cabac_init_idc = 1, qp = 27 */ - - 90, 12, 31, 90, 12, 31, 31, 3, 42, 22, - 2, 2, 12, 72, 116, 32, 11, 9, 6, 12, - 6, 3, 1, 13, 27, 18, 7, 69, 83, 97, - 24, 23, 11, 6, 12, 6, 31, 9, 22, 14, - 3, 19, 31, 2, 29, 35, 61, 12, 9, 21, - 8, 23, 21, 45, 1, 23, 15, 37, 0, 4, - 44, 0, 0, 0, 7, 57, 67, 6, 2, 7, - 54, 2, 39, 4, 6, 7, 52, 50, 4, 10, - 19, 10, 21, 15, 5, 33, 33, 37, 43, 48, - 3, 10, 7, 11, 39, 23, 21, 6, 7, 5, - 21, 32, 9, 2, 17, 35, 11, 19, 9, 2, - 5, 15, 1, 4, 29, 13, 124, 110, 42, 28, - 8, 11, 1, 10, 2, 20, 10, 1, 23, 4, - 11, 21, 17, 22, 18, 22, 10, 10, 16, 20, - 44, 26, 14, 6, 6, 4, 20, 24, 43, 1, - 10, 17, 14, 16, 32, 24, 2, 38, 24, 28, - 13, 8, 0, 2, 28, 51, 24, 38, 32, 38, - 38, 36, 32, 52, 48, 12, 32, 42, 29, 124, - 31, 24, 10, 12, 12, 14, 20, 10, 26, 11, - 4, 0, 16, 124, 35, 66, 72, 62, 54, 52, - 48, 40, 40, 34, 14, 8, 6, 3, 9, 51, - 23, 23, 53, 10, 4, 0, 3, 19, 23, 23, - 15, 35, 27, 39, 55, 39, 71, 19, 36, 28, - 20, 12, 10, 1, 9, 13, 11, 3, 60, 38, - 28, 14, 24, 2, 1, 9, 21, 12, 72, 56, - 46, 42, 36, 12, 2, 3, 13, 11, 90, 60, - 28, 6, 24, 0, 19, 23, 12, 96, 78, 54, - 34, 42, 8, 1, 9, 15, 124, 53, 43, 25, - 37, 35, 25, 23, 15, 19, 19, 13, 5, 29, - 25, 35, 37, 5, 29, 25, 23, 11, 7, 13, - 17, 9, 15, 11, 13, 33, 12, 14, 26, 6, - 1, 14, 10, 6, 8, 6, 2, 5, 1, 7, - 15, 9, 14, 39, 1, 32, 3, 16, 4, 12, - 24, 4, 2, 8, 16, 17, 15, 33, 74, 78, - 80, 64, 54, 66, 60, 58, 56, 46, 52, 48, - 30, 22, 0, 36, 40, 32, 16, 22, 22, 8, - 6, 5, 1, 19, 23, 23, 39, 68, 68, 66, - 58, 38, 46, 40, 20, 22, 12, 4, 17, 17, - 29, 45, 9, 7, 49, 8, 6, 5, 23, 15, - 21, 31, 17, 35, 33, 53, 51, 61, 75, 21, - 41, 51, 25, 13, 6, 11, 24, 42, 7, 5, - 16, 24, 8, 22, 42, 8, 2, 90, 44, 4, - 27, 51, 95, 121, 125, 125, 2, 78, 58, 50, - 30, 44, 22, 10, 6, 13, 23, 13, 6, 7, - 24, 38, 1, 3, 12, 20, 12, 18, 38, 16, - 4, 90, 44, 4, 27, 51, 95, 121, 125, 125, - }, - - { - /* Context Tables for P, SP, B Slices :: cabac_init_idc = 1, qp = 28 */ - - 86, 12, 31, 86, 12, 31, 29, 0, 42, 22, - 0, 0, 8, 70, 116, 30, 7, 9, 6, 14, - 6, 3, 1, 15, 31, 16, 13, 75, 87, 101, - 30, 21, 11, 6, 14, 6, 31, 7, 22, 12, - 3, 19, 29, 2, 29, 35, 61, 12, 9, 21, - 8, 23, 19, 45, 1, 23, 15, 37, 0, 4, - 44, 0, 0, 0, 7, 59, 67, 8, 0, 7, - 52, 0, 39, 10, 8, 5, 56, 54, 6, 14, - 15, 12, 19, 13, 1, 33, 33, 35, 43, 48, - 3, 12, 3, 11, 39, 23, 17, 6, 9, 7, - 23, 32, 9, 4, 17, 33, 9, 19, 7, 2, - 5, 11, 0, 6, 27, 11, 124, 118, 48, 34, - 8, 11, 1, 10, 2, 20, 12, 1, 23, 8, - 11, 25, 21, 26, 18, 22, 10, 10, 16, 20, - 46, 28, 14, 6, 6, 4, 20, 26, 45, 1, - 10, 19, 14, 14, 32, 24, 2, 38, 24, 28, - 15, 8, 1, 0, 28, 51, 22, 36, 30, 34, - 30, 34, 28, 48, 44, 8, 26, 38, 41, 124, - 39, 20, 6, 8, 6, 8, 12, 2, 18, 17, - 0, 7, 12, 124, 39, 62, 68, 56, 50, 48, - 44, 36, 36, 30, 10, 4, 2, 7, 13, 55, - 23, 23, 55, 8, 2, 1, 5, 21, 27, 25, - 19, 37, 29, 41, 57, 41, 69, 15, 38, 30, - 20, 12, 12, 1, 9, 11, 7, 1, 60, 38, - 30, 16, 26, 4, 0, 7, 19, 14, 74, 58, - 48, 42, 38, 14, 2, 3, 13, 11, 90, 60, - 26, 6, 24, 0, 19, 23, 12, 94, 76, 52, - 32, 42, 8, 1, 9, 15, 124, 51, 39, 23, - 33, 33, 23, 19, 11, 17, 15, 9, 1, 27, - 23, 35, 35, 3, 29, 25, 23, 11, 7, 13, - 17, 9, 15, 11, 13, 35, 14, 14, 28, 6, - 1, 14, 10, 6, 8, 6, 2, 5, 1, 7, - 15, 9, 14, 41, 3, 32, 5, 14, 2, 10, - 24, 2, 0, 8, 16, 19, 15, 35, 72, 76, - 78, 60, 50, 62, 56, 54, 50, 40, 46, 42, - 24, 18, 3, 28, 32, 24, 6, 16, 14, 4, - 0, 11, 5, 23, 27, 25, 41, 64, 62, 60, - 54, 32, 40, 34, 14, 18, 6, 0, 23, 21, - 33, 47, 11, 9, 53, 6, 2, 9, 27, 19, - 25, 35, 19, 37, 35, 55, 53, 63, 77, 23, - 43, 53, 25, 13, 8, 9, 26, 44, 7, 3, - 16, 24, 8, 22, 44, 8, 2, 88, 40, 1, - 33, 57, 103, 125, 125, 125, 2, 78, 58, 50, - 30, 44, 22, 10, 6, 11, 23, 13, 8, 7, - 24, 40, 1, 3, 12, 20, 12, 18, 38, 16, - 4, 88, 40, 1, 33, 57, 103, 125, 125, 125, - }, - - { - /* Context Tables for P, SP, B Slices :: cabac_init_idc = 1, qp = 29 */ - - 84, 12, 31, 84, 12, 31, 25, 2, 42, 22, - 0, 1, 4, 68, 116, 30, 3, 9, 6, 16, - 4, 5, 1, 17, 35, 14, 17, 83, 93, 105, - 36, 19, 9, 6, 16, 4, 31, 5, 22, 12, - 3, 17, 27, 2, 29, 35, 61, 12, 9, 21, - 8, 23, 19, 43, 1, 23, 15, 37, 2, 4, - 44, 0, 0, 0, 5, 59, 67, 8, 1, 7, - 50, 0, 39, 14, 10, 3, 60, 58, 10, 16, - 13, 16, 15, 11, 4, 33, 31, 35, 41, 48, - 3, 14, 0, 11, 37, 21, 13, 6, 9, 7, - 23, 32, 9, 4, 15, 31, 7, 17, 5, 4, - 3, 9, 4, 8, 23, 9, 124, 124, 54, 40, - 10, 9, 0, 12, 2, 20, 12, 1, 21, 12, - 11, 29, 25, 32, 18, 24, 10, 10, 16, 22, - 50, 30, 16, 4, 6, 4, 22, 26, 47, 0, - 10, 19, 12, 12, 30, 22, 0, 38, 24, 28, - 17, 10, 3, 0, 26, 51, 22, 34, 28, 30, - 24, 32, 26, 44, 40, 4, 22, 34, 53, 124, - 45, 16, 2, 2, 0, 4, 6, 7, 10, 21, - 3, 13, 8, 124, 41, 58, 64, 52, 46, 44, - 40, 32, 32, 26, 4, 0, 1, 9, 17, 59, - 23, 23, 55, 6, 0, 3, 9, 23, 29, 27, - 21, 39, 29, 43, 57, 43, 67, 13, 40, 30, - 20, 14, 12, 0, 7, 9, 3, 2, 60, 40, - 30, 16, 28, 6, 4, 3, 15, 14, 76, 60, - 50, 44, 40, 14, 4, 1, 11, 11, 92, 60, - 26, 4, 24, 0, 19, 21, 12, 94, 74, 50, - 30, 42, 8, 0, 9, 13, 124, 47, 37, 19, - 29, 29, 21, 17, 9, 15, 11, 7, 2, 25, - 21, 33, 33, 0, 29, 25, 21, 9, 5, 13, - 19, 9, 17, 11, 13, 35, 14, 14, 30, 6, - 1, 14, 10, 6, 8, 6, 2, 7, 1, 7, - 15, 9, 16, 43, 5, 32, 7, 14, 2, 8, - 24, 2, 1, 8, 16, 21, 15, 37, 70, 74, - 76, 56, 46, 58, 52, 48, 46, 34, 40, 36, - 18, 12, 7, 18, 24, 16, 3, 10, 8, 1, - 3, 15, 9, 25, 29, 25, 41, 58, 58, 56, - 50, 26, 34, 30, 8, 14, 2, 3, 29, 25, - 37, 51, 11, 9, 57, 4, 0, 11, 31, 23, - 29, 37, 21, 41, 37, 55, 57, 65, 77, 27, - 47, 57, 23, 13, 10, 9, 28, 46, 5, 1, - 18, 26, 8, 24, 46, 8, 2, 86, 36, 7, - 39, 65, 111, 125, 125, 125, 4, 78, 58, 50, - 30, 46, 22, 12, 8, 11, 23, 13, 8, 7, - 26, 42, 1, 3, 14, 22, 12, 20, 40, 16, - 4, 86, 36, 7, 39, 65, 111, 125, 125, 125, - }, - - { - /* Context Tables for P, SP, B Slices :: cabac_init_idc = 1, qp = 30 */ - - 82, 12, 31, 82, 12, 31, 21, 6, 44, 22, - 1, 5, 0, 66, 116, 30, 0, 9, 8, 18, - 4, 5, 1, 17, 37, 12, 23, 89, 97, 107, - 42, 17, 9, 8, 18, 4, 33, 3, 22, 10, - 3, 17, 27, 2, 29, 35, 61, 12, 9, 19, - 8, 23, 17, 43, 1, 23, 15, 37, 2, 4, - 44, 0, 0, 0, 5, 59, 67, 10, 3, 7, - 48, 1, 39, 20, 12, 1, 62, 62, 12, 20, - 9, 18, 13, 9, 8, 33, 31, 33, 41, 48, - 3, 16, 4, 11, 35, 21, 9, 6, 11, 9, - 25, 32, 9, 6, 15, 29, 5, 17, 3, 4, - 1, 5, 6, 8, 21, 7, 124, 124, 60, 46, - 10, 9, 0, 12, 2, 20, 14, 0, 21, 16, - 11, 33, 29, 38, 18, 24, 10, 10, 16, 22, - 52, 32, 16, 4, 6, 4, 22, 28, 49, 0, - 10, 21, 12, 10, 30, 22, 0, 38, 24, 28, - 19, 10, 5, 1, 26, 51, 22, 34, 28, 26, - 18, 30, 22, 40, 34, 0, 16, 30, 67, 124, - 53, 12, 1, 1, 5, 1, 0, 15, 2, 27, - 7, 21, 4, 124, 45, 54, 60, 48, 40, 38, - 36, 28, 28, 22, 0, 3, 5, 13, 19, 63, - 23, 23, 57, 4, 1, 5, 11, 25, 31, 29, - 25, 41, 31, 45, 59, 43, 67, 9, 42, 32, - 20, 14, 14, 0, 7, 9, 0, 4, 60, 40, - 32, 18, 30, 8, 6, 1, 11, 16, 76, 60, - 50, 44, 42, 16, 4, 1, 11, 11, 92, 60, - 24, 4, 24, 0, 19, 21, 12, 92, 74, 48, - 28, 42, 8, 0, 9, 13, 124, 45, 33, 17, - 27, 27, 19, 13, 5, 13, 9, 3, 6, 25, - 19, 33, 31, 4, 27, 25, 21, 9, 5, 13, - 19, 9, 17, 11, 13, 37, 16, 16, 32, 6, - 1, 16, 10, 6, 8, 6, 2, 7, 1, 7, - 15, 9, 16, 45, 7, 32, 9, 12, 0, 8, - 24, 0, 3, 8, 16, 23, 15, 39, 68, 72, - 74, 54, 42, 54, 48, 44, 40, 30, 34, 30, - 12, 8, 11, 10, 16, 8, 13, 2, 2, 5, - 7, 21, 13, 29, 33, 27, 43, 54, 52, 50, - 44, 20, 30, 24, 2, 8, 3, 9, 35, 29, - 41, 53, 13, 11, 59, 0, 3, 15, 35, 25, - 33, 41, 23, 43, 39, 57, 59, 67, 79, 29, - 49, 59, 23, 11, 10, 7, 30, 48, 5, 1, - 18, 26, 8, 24, 48, 8, 2, 84, 32, 11, - 45, 71, 119, 125, 125, 125, 4, 78, 58, 50, - 30, 46, 24, 12, 8, 9, 23, 13, 10, 5, - 28, 44, 1, 1, 14, 22, 12, 20, 40, 16, - 4, 84, 32, 11, 45, 71, 119, 125, 125, 125, - }, - - { - /* Context Tables for P, SP, B Slices :: cabac_init_idc = 1, qp = 31 */ - - 80, 12, 31, 80, 12, 31, 17, 8, 44, 22, - 1, 7, 3, 64, 116, 30, 4, 9, 8, 20, - 4, 7, 1, 19, 41, 10, 27, 97, 103, 111, - 48, 15, 9, 8, 20, 4, 33, 1, 22, 10, - 3, 17, 25, 2, 29, 35, 61, 12, 9, 19, - 8, 23, 17, 43, 1, 23, 15, 37, 2, 4, - 44, 0, 0, 0, 3, 59, 67, 10, 5, 7, - 46, 1, 39, 24, 14, 0, 66, 66, 16, 22, - 5, 22, 11, 7, 12, 33, 31, 33, 41, 48, - 3, 18, 8, 11, 33, 19, 5, 6, 11, 9, - 25, 32, 9, 6, 13, 27, 3, 15, 1, 6, - 0, 3, 10, 10, 19, 5, 124, 124, 66, 52, - 10, 9, 0, 14, 2, 20, 14, 0, 19, 20, - 11, 37, 33, 44, 18, 24, 10, 10, 16, 24, - 56, 34, 16, 4, 6, 4, 24, 30, 51, 0, - 10, 21, 10, 8, 28, 22, 1, 38, 24, 28, - 21, 10, 7, 3, 24, 51, 22, 32, 26, 22, - 12, 28, 18, 36, 30, 3, 12, 26, 79, 124, - 59, 8, 5, 5, 11, 5, 5, 23, 5, 33, - 11, 27, 0, 124, 49, 50, 56, 44, 36, 34, - 32, 24, 24, 18, 3, 7, 9, 17, 23, 67, - 23, 23, 57, 2, 3, 7, 13, 27, 33, 31, - 29, 43, 31, 47, 61, 45, 65, 7, 44, 32, - 20, 14, 16, 2, 5, 7, 4, 6, 60, 40, - 32, 20, 32, 10, 10, 2, 7, 18, 78, 62, - 52, 46, 44, 16, 4, 1, 9, 11, 94, 60, - 22, 4, 24, 0, 19, 19, 12, 92, 72, 46, - 26, 42, 8, 0, 9, 13, 124, 43, 31, 15, - 23, 23, 17, 9, 1, 11, 5, 0, 10, 23, - 17, 31, 29, 8, 27, 25, 21, 7, 3, 13, - 19, 9, 19, 11, 13, 37, 16, 16, 34, 6, - 1, 16, 10, 6, 8, 6, 2, 9, 1, 7, - 15, 9, 18, 47, 9, 32, 11, 10, 1, 6, - 24, 1, 5, 8, 16, 25, 15, 41, 66, 70, - 72, 50, 38, 50, 44, 40, 36, 24, 28, 24, - 6, 2, 15, 2, 8, 0, 23, 3, 3, 11, - 11, 25, 17, 33, 35, 29, 45, 50, 48, 46, - 40, 14, 24, 20, 3, 4, 7, 13, 41, 33, - 45, 57, 15, 13, 63, 1, 5, 19, 39, 29, - 37, 45, 25, 47, 41, 59, 61, 69, 81, 33, - 51, 61, 23, 11, 12, 7, 32, 50, 5, 0, - 20, 28, 8, 26, 50, 8, 2, 82, 28, 17, - 51, 77, 125, 125, 125, 125, 4, 78, 58, 50, - 30, 48, 24, 12, 8, 9, 23, 13, 10, 5, - 30, 46, 1, 1, 14, 22, 12, 20, 42, 16, - 4, 82, 28, 17, 51, 77, 125, 125, 125, 125, - }, - - { - /* Context Tables for P, SP, B Slices :: cabac_init_idc = 1, qp = 32 */ - - 76, 10, 33, 76, 10, 33, 15, 10, 44, 22, - 3, 11, 9, 62, 116, 28, 6, 11, 8, 20, - 2, 9, 1, 21, 45, 6, 33, 105, 109, 115, - 52, 15, 9, 8, 20, 2, 35, 1, 22, 8, - 3, 17, 25, 0, 31, 35, 61, 10, 9, 19, - 8, 23, 17, 43, 1, 23, 17, 37, 2, 4, - 44, 0, 0, 0, 3, 61, 67, 10, 7, 9, - 44, 3, 41, 28, 16, 2, 68, 70, 18, 24, - 3, 24, 9, 5, 16, 33, 31, 33, 41, 48, - 3, 18, 12, 11, 33, 19, 3, 4, 13, 11, - 27, 32, 9, 6, 13, 27, 3, 15, 1, 6, - 0, 1, 12, 10, 17, 3, 124, 124, 72, 56, - 10, 9, 0, 14, 0, 20, 14, 0, 19, 24, - 11, 41, 37, 48, 18, 24, 10, 10, 16, 24, - 58, 34, 16, 2, 4, 4, 24, 30, 55, 0, - 10, 23, 8, 4, 26, 20, 3, 38, 24, 26, - 25, 10, 9, 5, 22, 51, 20, 30, 24, 16, - 4, 24, 14, 30, 24, 9, 6, 22, 93, 124, - 67, 2, 9, 11, 19, 11, 13, 33, 15, 39, - 15, 35, 3, 124, 53, 44, 50, 38, 30, 28, - 26, 18, 18, 14, 9, 13, 13, 21, 27, 71, - 23, 25, 59, 0, 7, 11, 17, 31, 37, 35, - 33, 45, 33, 49, 63, 47, 65, 5, 44, 32, - 20, 14, 16, 2, 5, 7, 8, 8, 60, 40, - 32, 20, 32, 12, 12, 4, 5, 18, 78, 62, - 52, 46, 46, 16, 4, 1, 9, 13, 94, 58, - 20, 2, 24, 0, 19, 19, 10, 90, 70, 42, - 24, 40, 8, 0, 9, 13, 124, 41, 29, 13, - 21, 21, 15, 7, 0, 9, 3, 2, 14, 23, - 17, 31, 27, 10, 27, 25, 21, 7, 3, 13, - 21, 11, 21, 11, 15, 39, 16, 16, 36, 6, - 3, 16, 10, 4, 8, 6, 2, 11, 1, 7, - 15, 9, 18, 49, 11, 32, 15, 8, 3, 4, - 22, 3, 7, 8, 14, 29, 17, 45, 62, 66, - 70, 46, 34, 44, 38, 34, 30, 18, 22, 18, - 1, 3, 19, 7, 0, 9, 33, 11, 11, 17, - 17, 31, 21, 37, 39, 31, 47, 44, 42, 40, - 34, 8, 18, 14, 11, 1, 13, 19, 47, 37, - 49, 61, 17, 15, 67, 5, 9, 23, 45, 33, - 41, 49, 29, 51, 45, 61, 65, 71, 83, 37, - 55, 65, 23, 11, 12, 7, 34, 52, 5, 0, - 20, 28, 8, 26, 50, 8, 0, 78, 24, 23, - 59, 85, 125, 125, 125, 125, 4, 78, 58, 50, - 30, 48, 24, 12, 8, 9, 23, 13, 10, 5, - 30, 46, 1, 1, 14, 22, 12, 20, 42, 14, - 2, 78, 24, 23, 59, 85, 125, 125, 125, 125, - }, - - { - /* Context Tables for P, SP, B Slices :: cabac_init_idc = 1, qp = 33 */ - - 74, 10, 33, 74, 10, 33, 11, 14, 46, 24, - 3, 13, 13, 60, 118, 28, 10, 11, 10, 22, - 2, 9, 0, 21, 47, 4, 37, 111, 113, 117, - 58, 13, 7, 10, 22, 2, 35, 0, 22, 8, - 1, 15, 23, 0, 31, 33, 59, 10, 7, 17, - 8, 21, 15, 41, 0, 21, 17, 35, 4, 4, - 44, 0, 0, 0, 1, 61, 67, 12, 7, 9, - 44, 3, 41, 34, 20, 6, 72, 76, 22, 28, - 0, 28, 5, 1, 22, 33, 29, 31, 39, 48, - 3, 20, 18, 9, 31, 17, 0, 4, 13, 11, - 27, 34, 9, 8, 11, 25, 1, 13, 0, 8, - 2, 2, 16, 12, 13, 0, 124, 124, 80, 62, - 12, 7, 2, 16, 0, 22, 16, 2, 17, 30, - 9, 45, 39, 54, 18, 26, 10, 12, 18, 26, - 62, 36, 18, 2, 4, 4, 26, 32, 57, 2, - 10, 23, 8, 2, 26, 20, 3, 38, 24, 26, - 27, 12, 9, 5, 22, 51, 20, 30, 24, 12, - 1, 22, 12, 26, 20, 13, 2, 18, 105, 124, - 73, 1, 11, 15, 25, 15, 19, 41, 23, 43, - 19, 41, 7, 124, 55, 40, 46, 34, 26, 24, - 22, 14, 14, 10, 13, 17, 15, 23, 29, 73, - 23, 25, 59, 0, 9, 13, 19, 33, 39, 37, - 35, 47, 33, 51, 63, 47, 63, 1, 46, 34, - 20, 16, 18, 4, 3, 5, 14, 12, 62, 42, - 34, 22, 34, 16, 16, 8, 1, 20, 80, 64, - 54, 48, 48, 18, 6, 0, 7, 13, 96, 58, - 20, 2, 26, 2, 19, 17, 10, 90, 70, 40, - 22, 40, 10, 2, 7, 11, 124, 37, 25, 9, - 17, 17, 11, 3, 4, 5, 0, 6, 20, 21, - 15, 29, 23, 14, 25, 23, 19, 5, 1, 11, - 21, 11, 21, 11, 15, 39, 18, 18, 38, 8, - 3, 18, 12, 4, 10, 8, 2, 11, 0, 5, - 13, 7, 20, 49, 13, 32, 17, 8, 3, 4, - 22, 3, 7, 8, 14, 31, 17, 47, 60, 64, - 70, 44, 32, 40, 34, 30, 26, 14, 18, 14, - 7, 7, 23, 15, 5, 17, 41, 17, 17, 21, - 21, 35, 23, 39, 41, 31, 47, 40, 38, 36, - 30, 4, 14, 10, 17, 5, 17, 23, 51, 39, - 51, 63, 17, 15, 69, 7, 11, 25, 49, 35, - 43, 51, 31, 53, 47, 61, 67, 71, 83, 39, - 57, 67, 21, 9, 14, 5, 38, 56, 3, 2, - 22, 30, 10, 28, 52, 8, 0, 76, 20, 27, - 65, 91, 125, 125, 125, 125, 6, 78, 60, 52, - 32, 50, 26, 14, 10, 7, 21, 11, 12, 3, - 32, 48, 0, 0, 16, 24, 12, 22, 44, 14, - 2, 76, 20, 27, 65, 91, 125, 125, 125, 125, - }, - - { - /* Context Tables for P, SP, B Slices :: cabac_init_idc = 1, qp = 34 */ - - 72, 10, 33, 72, 10, 33, 7, 16, 46, 24, - 3, 15, 17, 58, 118, 28, 14, 11, 10, 24, - 2, 11, 0, 23, 51, 2, 43, 119, 119, 121, - 64, 11, 7, 10, 24, 2, 35, 2, 22, 6, - 1, 15, 21, 0, 31, 33, 59, 10, 7, 17, - 8, 21, 15, 41, 0, 21, 17, 35, 4, 4, - 44, 0, 0, 0, 0, 61, 67, 12, 9, 9, - 42, 3, 41, 38, 22, 8, 76, 80, 24, 30, - 4, 30, 3, 0, 26, 33, 29, 31, 39, 48, - 3, 22, 22, 9, 29, 15, 4, 4, 13, 11, - 29, 34, 9, 8, 9, 23, 0, 11, 2, 8, - 4, 4, 18, 14, 11, 2, 124, 124, 86, 68, - 12, 7, 2, 16, 0, 22, 16, 2, 17, 34, - 9, 49, 43, 60, 18, 26, 10, 12, 18, 26, - 66, 38, 18, 2, 4, 4, 28, 34, 59, 2, - 10, 23, 6, 0, 24, 20, 5, 38, 24, 26, - 29, 12, 11, 7, 20, 51, 20, 28, 22, 8, - 7, 20, 8, 22, 16, 17, 1, 14, 117, 124, - 81, 5, 15, 19, 31, 19, 25, 49, 31, 49, - 23, 47, 11, 124, 59, 36, 42, 30, 22, 20, - 18, 10, 10, 6, 17, 21, 19, 27, 33, 77, - 23, 25, 61, 1, 11, 15, 21, 35, 41, 39, - 39, 49, 33, 53, 65, 49, 61, 0, 48, 34, - 20, 16, 20, 6, 1, 3, 18, 14, 62, 42, - 34, 24, 36, 18, 20, 12, 2, 22, 82, 66, - 56, 50, 50, 18, 6, 0, 5, 13, 98, 58, - 18, 2, 26, 2, 19, 17, 10, 90, 68, 38, - 20, 40, 10, 2, 7, 11, 124, 35, 23, 7, - 13, 13, 9, 0, 8, 3, 4, 10, 24, 19, - 13, 29, 21, 18, 25, 23, 19, 3, 1, 11, - 21, 11, 23, 11, 15, 39, 18, 18, 40, 8, - 3, 18, 12, 4, 10, 8, 2, 13, 0, 5, - 13, 7, 22, 51, 15, 32, 19, 6, 5, 2, - 22, 5, 9, 8, 14, 33, 17, 49, 58, 62, - 68, 40, 28, 36, 30, 26, 22, 8, 12, 8, - 13, 13, 27, 23, 13, 25, 51, 23, 23, 27, - 25, 41, 27, 43, 43, 33, 49, 36, 34, 30, - 26, 1, 8, 4, 23, 9, 23, 27, 57, 43, - 55, 67, 19, 17, 73, 9, 13, 29, 53, 39, - 47, 55, 33, 57, 49, 63, 69, 73, 85, 43, - 59, 69, 21, 9, 16, 5, 40, 58, 3, 4, - 24, 32, 10, 28, 54, 8, 0, 74, 16, 33, - 71, 97, 125, 125, 125, 125, 6, 78, 60, 52, - 32, 52, 26, 14, 10, 7, 21, 11, 12, 3, - 34, 50, 0, 0, 16, 24, 12, 22, 46, 14, - 2, 74, 16, 33, 71, 97, 125, 125, 125, 125, - }, - - { - /* Context Tables for P, SP, B Slices :: cabac_init_idc = 1, qp = 35 */ - - 70, 10, 33, 70, 10, 33, 3, 20, 48, 24, - 5, 19, 21, 56, 118, 28, 18, 11, 12, 26, - 2, 11, 0, 23, 53, 0, 47, 125, 123, 123, - 70, 9, 7, 12, 26, 2, 37, 4, 22, 6, - 1, 15, 21, 0, 31, 33, 59, 10, 7, 15, - 8, 21, 13, 41, 0, 21, 17, 35, 4, 4, - 44, 0, 0, 0, 0, 61, 67, 14, 11, 9, - 40, 5, 41, 44, 24, 10, 78, 84, 28, 34, - 8, 34, 1, 2, 30, 33, 29, 29, 39, 48, - 3, 24, 26, 9, 27, 15, 8, 4, 15, 13, - 29, 34, 9, 10, 9, 21, 2, 11, 4, 10, - 6, 8, 22, 14, 9, 4, 124, 124, 92, 74, - 12, 7, 2, 18, 0, 22, 18, 4, 15, 38, - 9, 53, 47, 66, 18, 26, 10, 12, 18, 28, - 68, 40, 18, 2, 4, 4, 28, 36, 61, 2, - 10, 25, 6, 1, 24, 20, 5, 38, 24, 26, - 31, 12, 13, 9, 20, 51, 20, 28, 22, 4, - 13, 18, 4, 18, 10, 21, 7, 10, 125, 124, - 87, 9, 19, 23, 37, 25, 31, 57, 39, 55, - 27, 55, 15, 124, 63, 32, 38, 26, 16, 14, - 14, 6, 6, 2, 21, 25, 23, 31, 35, 81, - 23, 25, 61, 3, 13, 17, 23, 37, 43, 41, - 43, 51, 35, 55, 67, 49, 61, 4, 50, 36, - 20, 16, 22, 6, 1, 3, 22, 16, 62, 42, - 36, 26, 38, 20, 22, 14, 6, 24, 82, 66, - 56, 50, 52, 20, 6, 0, 5, 13, 98, 58, - 16, 2, 26, 2, 19, 15, 10, 88, 68, 36, - 18, 40, 10, 2, 7, 11, 124, 33, 19, 5, - 11, 11, 7, 4, 12, 1, 6, 14, 28, 19, - 11, 27, 19, 22, 23, 23, 19, 3, 0, 11, - 21, 11, 23, 11, 15, 41, 20, 20, 42, 8, - 3, 20, 12, 4, 10, 8, 2, 13, 0, 5, - 13, 7, 22, 53, 17, 32, 21, 4, 7, 2, - 22, 7, 11, 8, 14, 35, 17, 51, 56, 60, - 66, 38, 24, 32, 26, 22, 16, 4, 6, 2, - 19, 17, 31, 31, 21, 33, 61, 31, 29, 31, - 29, 45, 31, 47, 47, 35, 51, 32, 28, 26, - 20, 7, 4, 0, 29, 15, 27, 33, 63, 47, - 59, 69, 21, 19, 75, 13, 17, 33, 57, 41, - 51, 59, 35, 59, 51, 65, 71, 75, 87, 45, - 61, 71, 21, 7, 16, 3, 42, 60, 3, 4, - 24, 32, 10, 30, 56, 8, 0, 72, 12, 37, - 77, 103, 125, 125, 125, 125, 6, 78, 60, 52, - 32, 52, 28, 14, 10, 5, 21, 11, 14, 1, - 36, 52, 0, 2, 16, 24, 12, 22, 46, 14, - 2, 72, 12, 37, 77, 103, 125, 125, 125, 125, - }, - - { - /* Context Tables for P, SP, B Slices :: cabac_init_idc = 1, qp = 36 */ - - 66, 10, 33, 66, 10, 33, 1, 22, 48, 24, - 5, 21, 25, 54, 118, 26, 22, 11, 12, 28, - 0, 13, 0, 25, 57, 1, 53, 125, 125, 125, - 76, 7, 7, 12, 28, 0, 37, 6, 22, 4, - 1, 13, 19, 0, 31, 33, 59, 10, 7, 15, - 8, 21, 13, 39, 0, 21, 17, 35, 6, 4, - 44, 0, 0, 0, 2, 63, 67, 14, 13, 9, - 38, 5, 41, 48, 26, 12, 82, 88, 30, 36, - 10, 36, 2, 4, 34, 33, 27, 29, 39, 48, - 3, 26, 30, 9, 27, 13, 12, 4, 15, 13, - 31, 34, 9, 10, 7, 19, 4, 9, 6, 10, - 6, 10, 24, 16, 7, 6, 124, 124, 98, 80, - 12, 5, 2, 18, 0, 22, 18, 4, 15, 42, - 9, 57, 51, 70, 18, 28, 10, 12, 18, 28, - 72, 42, 20, 0, 4, 4, 30, 36, 63, 2, - 10, 25, 4, 3, 22, 18, 7, 38, 24, 26, - 33, 12, 15, 11, 18, 51, 18, 26, 20, 0, - 21, 16, 0, 14, 6, 25, 11, 6, 125, 124, - 95, 13, 23, 29, 43, 29, 39, 67, 47, 61, - 31, 61, 19, 124, 65, 28, 34, 20, 12, 10, - 10, 2, 2, 1, 27, 29, 27, 35, 39, 85, - 23, 25, 63, 5, 15, 19, 27, 39, 47, 43, - 45, 53, 35, 57, 67, 51, 59, 6, 52, 36, - 20, 18, 22, 8, 0, 1, 26, 20, 62, 44, - 36, 26, 40, 22, 26, 18, 8, 24, 84, 68, - 58, 52, 54, 20, 6, 2, 3, 13, 100, 58, - 16, 0, 26, 2, 19, 15, 10, 88, 66, 34, - 16, 40, 10, 4, 7, 11, 124, 29, 17, 3, - 7, 7, 5, 6, 14, 0, 10, 16, 32, 17, - 9, 27, 17, 24, 23, 23, 19, 1, 0, 11, - 23, 11, 25, 11, 15, 41, 20, 20, 44, 8, - 3, 20, 12, 4, 10, 8, 2, 15, 0, 5, - 13, 7, 24, 55, 19, 32, 23, 4, 9, 0, - 22, 9, 13, 8, 14, 37, 17, 53, 54, 58, - 64, 34, 20, 28, 22, 16, 12, 1, 0, 3, - 25, 23, 35, 41, 29, 41, 71, 37, 37, 37, - 35, 51, 35, 51, 49, 37, 51, 26, 24, 20, - 16, 13, 1, 5, 35, 19, 33, 37, 69, 51, - 63, 73, 23, 19, 79, 15, 19, 35, 61, 45, - 55, 61, 37, 63, 53, 67, 75, 77, 87, 49, - 65, 75, 19, 7, 18, 3, 44, 62, 3, 6, - 26, 34, 10, 30, 58, 8, 0, 70, 8, 43, - 83, 111, 125, 125, 125, 125, 8, 78, 60, 52, - 32, 54, 28, 14, 10, 5, 21, 11, 14, 1, - 36, 54, 0, 2, 18, 26, 12, 22, 48, 14, - 2, 70, 8, 43, 83, 111, 125, 125, 125, 125, - }, - - { - /* Context Tables for P, SP, B Slices :: cabac_init_idc = 1, qp = 37 */ - - 64, 10, 33, 64, 10, 33, 2, 26, 48, 24, - 7, 23, 29, 52, 118, 26, 26, 11, 12, 30, - 0, 13, 0, 27, 61, 3, 57, 125, 125, 125, - 82, 5, 5, 12, 30, 0, 37, 8, 22, 4, - 1, 13, 17, 0, 31, 33, 59, 10, 7, 15, - 8, 21, 11, 39, 0, 21, 17, 35, 6, 4, - 44, 0, 0, 0, 2, 63, 67, 16, 15, 9, - 36, 7, 41, 54, 28, 14, 86, 92, 34, 40, - 14, 40, 4, 6, 40, 33, 27, 27, 37, 48, - 3, 28, 34, 9, 25, 13, 16, 4, 17, 15, - 31, 34, 9, 12, 7, 17, 6, 9, 8, 12, - 8, 14, 28, 18, 3, 8, 124, 124, 104, 86, - 14, 5, 4, 20, 0, 22, 20, 4, 13, 46, - 9, 61, 55, 76, 18, 28, 10, 12, 18, 30, - 74, 44, 20, 0, 4, 4, 30, 38, 65, 4, - 10, 27, 4, 5, 22, 18, 7, 38, 24, 26, - 35, 14, 17, 11, 18, 51, 18, 24, 18, 3, - 27, 14, 1, 10, 2, 29, 17, 2, 125, 124, - 101, 17, 27, 33, 49, 35, 45, 75, 55, 65, - 35, 69, 23, 124, 69, 24, 30, 16, 8, 6, - 6, 1, 1, 5, 31, 33, 31, 37, 43, 89, - 23, 25, 63, 7, 17, 21, 29, 41, 49, 45, - 49, 55, 37, 59, 69, 53, 57, 10, 54, 38, - 20, 18, 24, 8, 0, 0, 30, 22, 62, 44, - 38, 28, 42, 24, 28, 20, 12, 26, 86, 70, - 60, 52, 56, 22, 8, 2, 3, 13, 100, 58, - 14, 0, 26, 2, 19, 13, 10, 86, 64, 32, - 14, 40, 10, 4, 7, 9, 124, 27, 13, 0, - 3, 5, 3, 10, 18, 2, 14, 20, 36, 15, - 7, 25, 15, 28, 23, 23, 17, 1, 2, 11, - 23, 11, 25, 11, 15, 43, 22, 20, 46, 8, - 3, 20, 12, 4, 10, 8, 2, 15, 0, 5, - 13, 7, 24, 57, 21, 32, 25, 2, 9, 1, - 22, 9, 15, 8, 14, 39, 17, 55, 52, 56, - 62, 30, 16, 24, 18, 12, 6, 7, 5, 9, - 31, 27, 39, 49, 37, 49, 81, 43, 43, 41, - 39, 55, 39, 53, 53, 37, 53, 22, 18, 16, - 12, 19, 7, 9, 41, 23, 37, 41, 75, 55, - 67, 75, 23, 21, 83, 17, 23, 39, 65, 49, - 59, 65, 39, 65, 55, 67, 77, 79, 89, 51, - 67, 77, 19, 7, 20, 1, 46, 64, 1, 8, - 26, 34, 10, 32, 60, 8, 0, 68, 4, 49, - 89, 117, 125, 125, 125, 125, 8, 78, 60, 52, - 32, 54, 28, 16, 12, 3, 21, 11, 16, 1, - 38, 56, 0, 2, 18, 26, 12, 24, 48, 14, - 2, 68, 4, 49, 89, 117, 125, 125, 125, 125, - }, - - { - /* Context Tables for P, SP, B Slices :: cabac_init_idc = 1, qp = 38 */ - - 62, 10, 35, 62, 10, 35, 6, 28, 50, 24, - 7, 27, 33, 50, 118, 26, 28, 11, 14, 30, - 0, 15, 2, 27, 63, 7, 63, 125, 125, 125, - 86, 3, 5, 14, 30, 0, 39, 8, 22, 2, - 1, 13, 17, 0, 31, 31, 57, 10, 5, 13, - 8, 19, 11, 39, 0, 21, 17, 35, 6, 4, - 44, 0, 0, 0, 4, 63, 67, 16, 15, 11, - 36, 7, 41, 58, 30, 16, 88, 98, 36, 42, - 18, 42, 6, 8, 44, 33, 27, 27, 37, 48, - 3, 30, 40, 9, 23, 11, 20, 2, 17, 15, - 33, 36, 9, 12, 5, 17, 6, 7, 10, 12, - 10, 16, 30, 18, 1, 10, 124, 124, 110, 92, - 14, 5, 4, 20, 0, 22, 20, 6, 13, 50, - 7, 65, 59, 82, 18, 28, 10, 12, 20, 30, - 78, 46, 20, 0, 4, 4, 32, 40, 67, 4, - 10, 27, 2, 7, 20, 18, 9, 38, 24, 26, - 39, 14, 19, 13, 16, 51, 18, 24, 18, 7, - 33, 12, 5, 4, 3, 33, 21, 1, 125, 124, - 109, 21, 29, 37, 57, 39, 51, 83, 65, 71, - 39, 75, 27, 124, 73, 20, 26, 12, 2, 0, - 2, 7, 5, 9, 35, 39, 35, 41, 45, 91, - 23, 25, 65, 9, 19, 23, 31, 43, 51, 47, - 53, 57, 37, 61, 71, 53, 57, 12, 56, 38, - 20, 18, 26, 10, 2, 0, 34, 24, 64, 44, - 38, 30, 44, 26, 32, 24, 16, 28, 86, 70, - 60, 54, 58, 22, 8, 2, 1, 13, 102, 58, - 12, 0, 26, 2, 19, 13, 8, 86, 64, 30, - 12, 38, 10, 4, 7, 9, 124, 25, 11, 2, - 1, 1, 1, 14, 22, 4, 16, 24, 40, 15, - 5, 25, 13, 32, 21, 23, 17, 0, 2, 11, - 23, 11, 27, 11, 15, 43, 22, 22, 48, 8, - 3, 22, 14, 4, 12, 10, 2, 17, 0, 5, - 13, 7, 26, 59, 23, 32, 27, 0, 11, 1, - 22, 11, 15, 8, 12, 43, 19, 57, 48, 54, - 60, 28, 12, 20, 14, 8, 2, 11, 11, 13, - 37, 33, 43, 57, 45, 57, 89, 51, 49, 47, - 43, 61, 43, 57, 55, 39, 55, 18, 14, 10, - 6, 25, 11, 15, 47, 29, 43, 47, 81, 59, - 69, 79, 25, 23, 85, 21, 25, 43, 69, 51, - 63, 69, 41, 69, 57, 69, 79, 81, 91, 55, - 69, 79, 19, 5, 20, 1, 48, 66, 1, 8, - 28, 36, 10, 32, 62, 8, 0, 66, 0, 53, - 95, 123, 125, 125, 125, 125, 8, 78, 60, 52, - 32, 56, 30, 16, 12, 3, 19, 9, 16, 0, - 40, 58, 2, 4, 18, 26, 12, 24, 50, 14, - 2, 66, 0, 53, 95, 123, 125, 125, 125, 125, - }, - - { - /* Context Tables for P, SP, B Slices :: cabac_init_idc = 1, qp = 39 */ - - 60, 10, 35, 60, 10, 35, 10, 32, 50, 24, - 9, 29, 37, 48, 118, 26, 32, 11, 14, 32, - 1, 15, 2, 29, 67, 9, 67, 125, 125, 125, - 92, 1, 5, 14, 32, 1, 39, 10, 22, 2, - 1, 11, 15, 0, 31, 31, 57, 10, 5, 13, - 8, 19, 9, 37, 0, 21, 17, 35, 8, 4, - 44, 0, 0, 0, 4, 63, 67, 18, 17, 11, - 34, 9, 41, 64, 32, 18, 92, 102, 40, 46, - 20, 46, 10, 10, 48, 33, 25, 25, 37, 48, - 3, 32, 44, 9, 21, 11, 24, 2, 19, 17, - 33, 36, 9, 14, 5, 15, 8, 7, 12, 14, - 12, 20, 34, 20, 0, 12, 124, 124, 116, 98, - 14, 3, 4, 22, 0, 22, 22, 6, 11, 54, - 7, 69, 63, 88, 18, 30, 10, 12, 20, 32, - 80, 48, 22, 1, 4, 4, 32, 40, 69, 4, - 10, 29, 2, 9, 20, 16, 9, 38, 24, 26, - 41, 14, 21, 15, 16, 51, 18, 22, 16, 11, - 39, 10, 9, 0, 7, 37, 27, 5, 125, 124, - 115, 25, 33, 43, 63, 45, 57, 93, 73, 77, - 43, 83, 31, 124, 75, 16, 22, 8, 1, 3, - 1, 11, 9, 13, 41, 43, 39, 45, 49, 95, - 23, 25, 65, 11, 21, 25, 35, 45, 53, 49, - 55, 59, 39, 63, 71, 55, 55, 16, 58, 40, - 20, 20, 26, 10, 2, 2, 38, 28, 64, 46, - 40, 30, 46, 28, 34, 26, 20, 28, 88, 72, - 62, 54, 60, 24, 8, 4, 1, 13, 102, 58, - 12, 1, 26, 2, 19, 11, 8, 84, 62, 28, - 10, 38, 10, 6, 7, 9, 124, 21, 7, 4, - 2, 0, 0, 16, 24, 6, 20, 26, 44, 13, - 3, 23, 11, 36, 21, 23, 17, 0, 4, 11, - 25, 11, 27, 11, 15, 45, 24, 22, 50, 8, - 3, 22, 14, 4, 12, 10, 2, 17, 0, 5, - 13, 7, 26, 61, 25, 32, 29, 0, 13, 3, - 22, 13, 17, 8, 12, 45, 19, 59, 46, 52, - 58, 24, 8, 16, 10, 2, 3, 17, 17, 19, - 43, 37, 47, 67, 53, 65, 99, 57, 55, 51, - 47, 65, 47, 61, 59, 41, 55, 12, 8, 6, - 2, 31, 17, 19, 53, 33, 47, 51, 87, 63, - 73, 81, 27, 23, 89, 23, 29, 45, 73, 55, - 67, 71, 43, 71, 59, 71, 83, 83, 91, 57, - 73, 83, 17, 5, 22, 0, 50, 68, 1, 10, - 28, 36, 10, 34, 64, 8, 0, 64, 3, 59, - 101, 125, 125, 125, 125, 125, 10, 78, 60, 52, - 32, 56, 30, 16, 12, 1, 19, 9, 18, 0, - 42, 60, 2, 4, 20, 28, 12, 24, 50, 14, - 2, 64, 3, 59, 101, 125, 125, 125, 125, 125, - }, - - { - /* Context Tables for P, SP, B Slices :: cabac_init_idc = 1, qp = 40 */ - - 56, 8, 35, 56, 8, 35, 12, 34, 50, 24, - 9, 33, 43, 46, 118, 24, 36, 13, 14, 34, - 1, 17, 2, 31, 71, 11, 73, 125, 125, 125, - 98, 0, 5, 14, 34, 1, 41, 12, 22, 0, - 1, 11, 15, 1, 33, 31, 57, 10, 5, 13, - 8, 19, 9, 37, 0, 21, 17, 35, 8, 4, - 44, 0, 0, 0, 6, 65, 67, 18, 19, 11, - 32, 9, 43, 68, 34, 20, 94, 106, 42, 48, - 24, 48, 12, 12, 52, 33, 25, 25, 37, 48, - 3, 34, 48, 9, 21, 9, 28, 2, 19, 17, - 35, 36, 9, 14, 3, 13, 10, 5, 12, 14, - 12, 22, 36, 20, 2, 14, 124, 124, 122, 102, - 14, 3, 4, 22, 1, 22, 22, 6, 11, 58, - 7, 73, 67, 92, 18, 30, 10, 12, 20, 32, - 84, 48, 22, 1, 2, 4, 34, 42, 73, 4, - 10, 29, 0, 13, 18, 16, 11, 38, 24, 24, - 43, 14, 23, 17, 14, 51, 16, 20, 14, 15, - 47, 6, 13, 3, 13, 43, 31, 9, 125, 124, - 123, 29, 37, 47, 69, 49, 65, 101, 81, 83, - 47, 89, 35, 124, 79, 12, 16, 2, 7, 9, - 7, 15, 15, 17, 45, 47, 43, 49, 53, 99, - 23, 27, 67, 13, 25, 27, 37, 47, 57, 53, - 59, 61, 39, 65, 73, 57, 55, 18, 60, 40, - 20, 20, 28, 12, 4, 2, 42, 30, 64, 46, - 40, 32, 48, 30, 38, 30, 22, 30, 88, 72, - 62, 56, 62, 24, 8, 4, 0, 15, 104, 58, - 10, 1, 26, 2, 19, 11, 8, 84, 60, 26, - 8, 38, 10, 6, 7, 9, 124, 19, 5, 6, - 4, 4, 2, 20, 28, 8, 22, 30, 48, 13, - 3, 23, 9, 38, 21, 23, 17, 2, 4, 11, - 25, 11, 29, 11, 15, 45, 24, 22, 52, 8, - 5, 22, 14, 2, 12, 10, 2, 19, 0, 5, - 13, 7, 28, 63, 27, 32, 33, 1, 15, 5, - 20, 15, 19, 8, 12, 47, 19, 63, 44, 48, - 56, 20, 4, 12, 6, 1, 7, 23, 23, 25, - 49, 43, 51, 75, 61, 75, 109, 65, 63, 57, - 53, 71, 51, 65, 61, 43, 57, 8, 4, 0, - 3, 37, 23, 25, 59, 39, 53, 57, 93, 67, - 77, 85, 29, 25, 93, 27, 31, 49, 77, 59, - 71, 75, 47, 75, 63, 73, 85, 85, 93, 61, - 75, 85, 17, 5, 22, 0, 52, 70, 1, 10, - 30, 38, 10, 34, 64, 8, 1, 62, 7, 65, - 107, 125, 125, 125, 125, 125, 10, 78, 60, 52, - 32, 58, 30, 16, 12, 1, 19, 9, 18, 0, - 42, 60, 2, 4, 20, 28, 12, 24, 52, 14, - 0, 62, 7, 65, 107, 125, 125, 125, 125, 125, - }, - - { - /* Context Tables for P, SP, B Slices :: cabac_init_idc = 1, qp = 41 */ - - 54, 8, 35, 54, 8, 35, 16, 36, 52, 24, - 9, 35, 47, 44, 120, 24, 40, 13, 16, 36, - 1, 19, 2, 31, 73, 13, 77, 125, 125, 125, - 104, 2, 3, 16, 36, 1, 41, 14, 22, 0, - 0, 11, 13, 1, 33, 31, 57, 10, 5, 11, - 8, 19, 9, 37, 0, 21, 17, 33, 8, 4, - 44, 0, 0, 0, 8, 65, 67, 18, 21, 11, - 30, 9, 43, 72, 38, 22, 98, 110, 46, 50, - 28, 52, 14, 16, 58, 33, 25, 25, 35, 48, - 3, 36, 52, 7, 19, 7, 32, 2, 19, 17, - 35, 36, 9, 14, 1, 11, 12, 3, 14, 16, - 14, 24, 40, 22, 6, 16, 124, 124, 124, 108, - 16, 3, 6, 24, 1, 22, 22, 8, 9, 64, - 7, 77, 69, 98, 18, 30, 10, 12, 20, 34, - 88, 50, 22, 1, 2, 4, 36, 44, 75, 6, - 10, 29, 1, 15, 16, 16, 13, 38, 24, 24, - 45, 16, 25, 17, 12, 51, 16, 20, 14, 19, - 53, 4, 15, 7, 17, 47, 35, 13, 125, 124, - 125, 33, 41, 51, 75, 53, 71, 109, 89, 87, - 51, 95, 39, 124, 83, 8, 12, 1, 11, 13, - 11, 19, 19, 21, 49, 51, 45, 51, 55, 103, - 23, 27, 67, 13, 27, 29, 39, 49, 59, 55, - 63, 63, 39, 67, 75, 57, 53, 20, 62, 40, - 20, 20, 30, 14, 6, 4, 48, 32, 64, 46, - 40, 34, 50, 32, 42, 34, 26, 32, 90, 74, - 64, 58, 64, 24, 10, 4, 2, 15, 106, 58, - 8, 1, 28, 4, 19, 9, 8, 84, 60, 24, - 6, 38, 10, 6, 7, 7, 124, 17, 3, 10, - 8, 8, 4, 24, 32, 10, 26, 34, 52, 11, - 1, 21, 7, 42, 19, 21, 15, 4, 6, 11, - 25, 11, 31, 11, 15, 45, 24, 24, 54, 10, - 5, 24, 14, 2, 12, 10, 2, 21, 0, 3, - 11, 7, 30, 63, 29, 32, 35, 3, 15, 5, - 20, 15, 21, 8, 12, 49, 19, 65, 42, 46, - 56, 18, 0, 8, 2, 5, 11, 27, 29, 31, - 55, 49, 55, 83, 69, 83, 119, 71, 69, 63, - 57, 75, 53, 67, 63, 43, 59, 4, 0, 3, - 7, 41, 27, 29, 65, 43, 57, 61, 97, 71, - 81, 89, 29, 27, 95, 29, 33, 53, 81, 61, - 73, 79, 49, 79, 65, 73, 87, 85, 95, 65, - 77, 87, 17, 3, 24, 0, 54, 74, 0, 12, - 32, 40, 10, 36, 66, 8, 1, 60, 11, 69, - 113, 125, 125, 125, 125, 125, 10, 78, 60, 54, - 34, 60, 32, 18, 14, 1, 19, 9, 18, 2, - 44, 62, 2, 6, 20, 28, 12, 26, 54, 14, - 0, 60, 11, 69, 113, 125, 125, 125, 125, 125, - }, - - { - /* Context Tables for P, SP, B Slices :: cabac_init_idc = 1, qp = 42 */ - - 52, 8, 35, 52, 8, 35, 20, 40, 52, 24, - 11, 37, 51, 42, 120, 24, 44, 13, 16, 38, - 3, 19, 2, 33, 77, 15, 83, 125, 125, 125, - 110, 4, 3, 16, 38, 3, 41, 16, 22, 1, - 0, 9, 11, 1, 33, 31, 57, 10, 5, 11, - 8, 19, 7, 35, 0, 21, 17, 33, 10, 4, - 44, 0, 0, 0, 8, 65, 67, 20, 23, 11, - 28, 11, 43, 78, 40, 24, 102, 114, 48, 54, - 30, 54, 18, 18, 62, 33, 23, 23, 35, 48, - 3, 38, 56, 7, 17, 7, 36, 2, 21, 19, - 37, 36, 9, 16, 1, 9, 14, 3, 16, 16, - 16, 28, 42, 24, 8, 18, 124, 124, 124, 114, - 16, 1, 6, 24, 1, 22, 24, 8, 9, 68, - 7, 81, 73, 104, 18, 32, 10, 12, 20, 34, - 90, 52, 24, 3, 2, 4, 36, 44, 77, 6, - 10, 31, 1, 17, 16, 14, 13, 38, 24, 24, - 47, 16, 27, 19, 12, 51, 16, 18, 12, 23, - 59, 2, 19, 11, 21, 51, 41, 17, 125, 124, - 125, 37, 45, 57, 81, 59, 77, 119, 97, 93, - 55, 103, 43, 124, 85, 4, 8, 5, 15, 17, - 15, 23, 23, 25, 55, 55, 49, 55, 59, 107, - 23, 27, 69, 15, 29, 31, 43, 51, 61, 57, - 65, 65, 41, 69, 75, 59, 51, 24, 64, 42, - 20, 22, 30, 14, 6, 6, 52, 36, 64, 48, - 42, 34, 52, 34, 44, 36, 30, 32, 92, 76, - 66, 58, 66, 26, 10, 6, 2, 15, 106, 58, - 8, 3, 28, 4, 19, 9, 8, 82, 58, 22, - 4, 38, 10, 8, 7, 7, 124, 13, 0, 12, - 12, 10, 6, 26, 34, 12, 30, 36, 56, 9, - 0, 21, 5, 46, 19, 21, 15, 4, 6, 11, - 27, 11, 31, 11, 15, 47, 26, 24, 56, 10, - 5, 24, 14, 2, 12, 10, 2, 21, 0, 3, - 11, 7, 30, 65, 31, 32, 37, 3, 17, 7, - 20, 17, 23, 8, 12, 51, 19, 67, 40, 44, - 54, 14, 3, 4, 1, 11, 17, 33, 35, 37, - 61, 53, 59, 93, 77, 91, 125, 77, 75, 67, - 61, 81, 57, 71, 67, 45, 59, 1, 5, 9, - 11, 47, 33, 35, 71, 47, 63, 65, 103, 75, - 85, 91, 31, 27, 99, 31, 37, 55, 85, 65, - 77, 81, 51, 81, 67, 75, 91, 87, 95, 67, - 81, 91, 15, 3, 26, 2, 56, 76, 0, 14, - 32, 40, 10, 36, 68, 8, 1, 58, 15, 75, - 119, 125, 125, 125, 125, 125, 12, 78, 60, 54, - 34, 60, 32, 18, 14, 0, 19, 9, 20, 2, - 46, 64, 2, 6, 22, 30, 12, 26, 54, 14, - 0, 58, 15, 75, 119, 125, 125, 125, 125, 125, - }, - - { - /* Context Tables for P, SP, B Slices :: cabac_init_idc = 1, qp = 43 */ - - 50, 8, 37, 50, 8, 37, 24, 42, 54, 24, - 11, 41, 55, 40, 120, 24, 46, 13, 18, 38, - 3, 21, 4, 33, 79, 19, 87, 125, 125, 125, - 114, 6, 3, 18, 38, 3, 43, 16, 22, 1, - 0, 9, 11, 1, 33, 29, 55, 10, 3, 9, - 8, 17, 7, 35, 0, 21, 17, 33, 10, 4, - 44, 0, 0, 0, 10, 65, 67, 20, 23, 13, - 28, 11, 43, 82, 42, 26, 104, 120, 52, 56, - 34, 58, 20, 20, 66, 33, 23, 23, 35, 48, - 3, 40, 62, 7, 15, 5, 40, 0, 21, 19, - 37, 38, 9, 16, 0, 9, 14, 1, 18, 18, - 18, 30, 46, 24, 10, 20, 124, 124, 124, 120, - 16, 1, 6, 26, 1, 22, 24, 10, 7, 72, - 5, 85, 77, 110, 18, 32, 10, 12, 22, 36, - 94, 54, 24, 3, 2, 4, 38, 46, 79, 6, - 10, 31, 3, 19, 14, 14, 15, 38, 24, 24, - 51, 16, 29, 21, 10, 51, 16, 18, 12, 27, - 65, 0, 23, 17, 27, 55, 45, 21, 125, 124, - 125, 41, 47, 61, 89, 63, 83, 125, 107, 99, - 59, 109, 47, 124, 89, 0, 4, 9, 21, 23, - 19, 29, 27, 29, 59, 61, 53, 59, 61, 109, - 23, 27, 69, 17, 31, 33, 45, 53, 63, 59, - 69, 67, 41, 71, 77, 59, 51, 26, 66, 42, - 20, 22, 32, 16, 8, 6, 56, 38, 66, 48, - 42, 36, 54, 36, 48, 40, 34, 34, 92, 76, - 66, 60, 68, 26, 10, 6, 4, 15, 108, 58, - 6, 3, 28, 4, 19, 7, 6, 82, 58, 20, - 2, 36, 10, 8, 7, 7, 124, 11, 2, 14, - 14, 14, 8, 30, 38, 14, 32, 40, 60, 9, - 2, 19, 3, 50, 17, 21, 15, 6, 8, 11, - 27, 11, 33, 11, 15, 47, 26, 26, 58, 10, - 5, 26, 16, 2, 14, 12, 2, 23, 0, 3, - 11, 7, 32, 67, 33, 32, 39, 5, 19, 7, - 20, 19, 23, 8, 10, 55, 21, 69, 36, 42, - 52, 12, 7, 0, 5, 15, 21, 37, 41, 41, - 67, 59, 63, 101, 85, 99, 125, 85, 81, 73, - 65, 85, 61, 75, 69, 47, 61, 5, 9, 13, - 17, 53, 37, 39, 77, 53, 67, 71, 109, 79, - 87, 95, 33, 29, 101, 35, 39, 59, 89, 67, - 81, 85, 53, 85, 69, 77, 93, 89, 97, 71, - 83, 93, 15, 1, 26, 2, 58, 78, 0, 14, - 34, 42, 10, 38, 70, 8, 1, 56, 19, 79, - 125, 125, 125, 125, 125, 125, 12, 78, 60, 54, - 34, 62, 34, 18, 14, 0, 17, 7, 20, 4, - 48, 66, 4, 8, 22, 30, 12, 26, 56, 14, - 0, 56, 19, 79, 125, 125, 125, 125, 125, 125, - }, - - { - /* Context Tables for P, SP, B Slices :: cabac_init_idc = 1, qp = 44 */ - - 46, 8, 37, 46, 8, 37, 26, 46, 54, 24, - 13, 43, 59, 38, 120, 22, 50, 13, 18, 40, - 3, 21, 4, 35, 83, 21, 93, 125, 125, 125, - 120, 8, 3, 18, 40, 3, 43, 18, 22, 3, - 0, 9, 9, 1, 33, 29, 55, 10, 3, 9, - 8, 17, 5, 35, 0, 21, 17, 33, 10, 4, - 44, 0, 0, 0, 10, 67, 67, 22, 25, 13, - 26, 13, 43, 88, 44, 28, 108, 124, 54, 60, - 38, 60, 22, 22, 70, 33, 23, 21, 35, 48, - 3, 42, 66, 7, 15, 5, 44, 0, 23, 21, - 39, 38, 9, 18, 0, 7, 16, 1, 20, 18, - 18, 34, 48, 26, 12, 22, 124, 124, 124, 124, - 16, 1, 6, 26, 1, 22, 26, 10, 7, 76, - 5, 89, 81, 114, 18, 32, 10, 12, 22, 36, - 96, 56, 24, 3, 2, 4, 38, 48, 81, 6, - 10, 33, 3, 21, 14, 14, 15, 38, 24, 24, - 53, 16, 31, 23, 10, 51, 14, 16, 10, 31, - 73, 1, 27, 21, 31, 59, 51, 25, 125, 124, - 125, 45, 51, 65, 95, 69, 91, 125, 115, 105, - 63, 117, 51, 124, 93, 3, 0, 15, 25, 27, - 23, 33, 31, 33, 63, 65, 57, 63, 65, 113, - 23, 27, 71, 19, 33, 35, 47, 55, 67, 61, - 73, 69, 43, 73, 79, 61, 49, 30, 68, 44, - 20, 22, 34, 16, 8, 8, 60, 40, 66, 48, - 44, 38, 56, 38, 50, 42, 36, 36, 94, 78, - 68, 60, 70, 28, 10, 6, 4, 15, 108, 58, - 4, 3, 28, 4, 19, 7, 6, 80, 56, 18, - 0, 36, 10, 8, 7, 7, 124, 9, 6, 16, - 18, 16, 10, 34, 42, 16, 36, 44, 64, 7, - 4, 19, 1, 52, 17, 21, 15, 6, 8, 11, - 27, 11, 33, 11, 15, 49, 28, 26, 60, 10, - 5, 26, 16, 2, 14, 12, 2, 23, 0, 3, - 11, 7, 32, 69, 35, 32, 41, 7, 21, 9, - 20, 21, 25, 8, 10, 57, 21, 71, 34, 40, - 50, 8, 11, 3, 9, 19, 27, 43, 47, 47, - 73, 63, 67, 109, 93, 107, 125, 91, 89, 77, - 71, 91, 65, 79, 73, 49, 63, 9, 15, 19, - 21, 59, 43, 45, 83, 57, 73, 75, 115, 83, - 91, 97, 35, 31, 105, 37, 43, 63, 93, 71, - 85, 89, 55, 87, 71, 79, 95, 91, 99, 73, - 85, 95, 15, 1, 28, 4, 60, 80, 0, 16, - 34, 42, 10, 38, 72, 8, 1, 54, 23, 85, - 125, 125, 125, 125, 125, 125, 12, 78, 60, 54, - 34, 62, 34, 18, 14, 2, 17, 7, 22, 4, - 48, 68, 4, 8, 22, 30, 12, 26, 56, 14, - 0, 54, 23, 85, 125, 125, 125, 125, 125, 125, - }, - - { - /* Context Tables for P, SP, B Slices :: cabac_init_idc = 1, qp = 45 */ - - 44, 8, 37, 44, 8, 37, 30, 48, 54, 24, - 13, 45, 63, 36, 120, 22, 54, 13, 18, 42, - 5, 23, 4, 37, 87, 23, 97, 125, 125, 125, - 124, 10, 1, 18, 42, 5, 43, 20, 22, 3, - 0, 7, 7, 1, 33, 29, 55, 10, 3, 9, - 8, 17, 5, 33, 0, 21, 17, 33, 12, 4, - 44, 0, 0, 0, 12, 67, 67, 22, 27, 13, - 24, 13, 43, 92, 46, 30, 112, 124, 58, 62, - 40, 64, 26, 24, 76, 33, 21, 21, 33, 48, - 3, 44, 70, 7, 13, 3, 48, 0, 23, 21, - 39, 38, 9, 18, 2, 5, 18, 0, 22, 20, - 20, 36, 52, 28, 16, 24, 124, 124, 124, 124, - 18, 0, 8, 28, 1, 22, 26, 10, 5, 80, - 5, 93, 85, 120, 18, 34, 10, 12, 22, 38, - 100, 58, 26, 5, 2, 4, 40, 48, 83, 8, - 10, 33, 5, 23, 12, 12, 17, 38, 24, 24, - 55, 18, 33, 23, 8, 51, 14, 14, 8, 35, - 79, 3, 29, 25, 35, 63, 55, 29, 125, 124, - 125, 49, 55, 71, 101, 73, 97, 125, 123, 109, - 67, 123, 55, 124, 95, 7, 3, 19, 29, 31, - 27, 37, 35, 37, 69, 69, 61, 65, 69, 117, - 23, 27, 71, 21, 35, 37, 51, 57, 69, 63, - 75, 71, 43, 75, 79, 63, 47, 32, 70, 44, - 20, 24, 34, 18, 10, 10, 64, 44, 66, 50, - 44, 38, 58, 40, 54, 46, 40, 36, 96, 80, - 70, 62, 72, 28, 12, 8, 6, 15, 110, 58, - 4, 5, 28, 4, 19, 5, 6, 80, 54, 16, - 1, 36, 10, 10, 7, 5, 124, 5, 8, 20, - 22, 20, 12, 36, 44, 18, 40, 46, 68, 5, - 6, 17, 0, 56, 17, 21, 13, 8, 10, 11, - 29, 11, 35, 11, 15, 49, 28, 26, 62, 10, - 5, 26, 16, 2, 14, 12, 2, 25, 0, 3, - 11, 7, 34, 71, 37, 32, 43, 7, 21, 11, - 20, 21, 27, 8, 10, 59, 21, 73, 32, 38, - 48, 4, 15, 7, 13, 25, 31, 49, 53, 53, - 79, 69, 71, 119, 101, 115, 125, 97, 95, 83, - 75, 95, 69, 81, 75, 49, 63, 15, 19, 23, - 25, 65, 49, 49, 89, 61, 77, 79, 121, 87, - 95, 101, 35, 31, 109, 39, 45, 65, 97, 75, - 89, 91, 57, 91, 73, 79, 99, 93, 99, 77, - 89, 99, 13, 1, 30, 4, 62, 82, 2, 18, - 36, 44, 10, 40, 74, 8, 1, 52, 27, 91, - 125, 125, 125, 125, 125, 125, 14, 78, 60, 54, - 34, 64, 34, 20, 16, 2, 17, 7, 22, 4, - 50, 70, 4, 8, 24, 32, 12, 28, 58, 14, - 0, 52, 27, 91, 125, 125, 125, 125, 125, 125, - }, - - { - /* Context Tables for P, SP, B Slices :: cabac_init_idc = 1, qp = 46 */ - - 42, 8, 37, 42, 8, 37, 34, 52, 56, 24, - 15, 49, 67, 34, 120, 22, 58, 13, 20, 44, - 5, 23, 4, 37, 89, 25, 103, 125, 125, 125, - 124, 12, 1, 20, 44, 5, 45, 22, 22, 5, - 0, 7, 7, 1, 33, 29, 55, 10, 3, 7, - 8, 17, 3, 33, 0, 21, 17, 33, 12, 4, - 44, 0, 0, 0, 12, 67, 67, 24, 29, 13, - 22, 15, 43, 98, 48, 32, 114, 124, 60, 66, - 44, 66, 28, 26, 80, 33, 21, 19, 33, 48, - 3, 46, 74, 7, 11, 3, 52, 0, 25, 23, - 41, 38, 9, 20, 2, 3, 20, 0, 24, 20, - 22, 40, 54, 28, 18, 26, 124, 124, 124, 124, - 18, 0, 8, 28, 1, 22, 28, 12, 5, 84, - 5, 97, 89, 124, 18, 34, 10, 12, 22, 38, - 102, 60, 26, 5, 2, 4, 40, 50, 85, 8, - 10, 35, 5, 25, 12, 12, 17, 38, 24, 24, - 57, 18, 35, 25, 8, 51, 14, 14, 8, 39, - 85, 5, 33, 29, 41, 67, 61, 33, 125, 124, - 125, 53, 59, 75, 107, 79, 103, 125, 125, 115, - 71, 125, 59, 124, 99, 11, 7, 23, 35, 37, - 31, 41, 39, 41, 73, 73, 65, 69, 71, 121, - 23, 27, 73, 23, 37, 39, 53, 59, 71, 65, - 79, 73, 45, 77, 81, 63, 47, 36, 72, 46, - 20, 24, 36, 18, 10, 10, 68, 46, 66, 50, - 46, 40, 60, 42, 56, 48, 44, 38, 96, 80, - 70, 62, 74, 30, 12, 8, 6, 15, 110, 58, - 2, 5, 28, 4, 19, 5, 6, 78, 54, 14, - 3, 36, 10, 10, 7, 5, 124, 3, 12, 22, - 24, 22, 14, 40, 48, 20, 42, 50, 72, 5, - 8, 17, 2, 60, 15, 21, 13, 8, 10, 11, - 29, 11, 35, 11, 15, 51, 30, 28, 64, 10, - 5, 28, 16, 2, 14, 12, 2, 25, 0, 3, - 11, 7, 34, 73, 39, 32, 45, 9, 23, 11, - 20, 23, 29, 8, 10, 61, 21, 75, 30, 36, - 46, 2, 19, 11, 17, 29, 37, 53, 59, 59, - 85, 73, 75, 125, 109, 123, 125, 105, 101, 87, - 79, 101, 73, 85, 79, 51, 65, 19, 25, 29, - 31, 71, 53, 55, 95, 67, 83, 85, 125, 91, - 99, 103, 37, 33, 111, 43, 49, 69, 101, 77, - 93, 95, 59, 93, 75, 81, 101, 95, 101, 79, - 91, 101, 13, 0, 30, 6, 64, 84, 2, 18, - 36, 44, 10, 40, 76, 8, 1, 50, 31, 95, - 125, 125, 125, 125, 125, 125, 14, 78, 60, 54, - 34, 64, 36, 20, 16, 4, 17, 7, 24, 6, - 52, 72, 4, 10, 24, 32, 12, 28, 58, 14, - 0, 50, 31, 95, 125, 125, 125, 125, 125, 125, - }, - - { - /* Context Tables for P, SP, B Slices :: cabac_init_idc = 1, qp = 47 */ - - 40, 8, 37, 40, 8, 37, 38, 54, 56, 24, - 15, 51, 71, 32, 120, 22, 62, 13, 20, 46, - 5, 25, 4, 39, 93, 27, 107, 125, 125, 125, - 124, 14, 1, 20, 46, 5, 45, 24, 22, 5, - 0, 7, 5, 1, 33, 29, 55, 10, 3, 7, - 8, 17, 3, 33, 0, 21, 17, 33, 12, 4, - 44, 0, 0, 0, 14, 67, 67, 24, 31, 13, - 20, 15, 43, 102, 50, 34, 118, 124, 64, 68, - 48, 70, 30, 28, 84, 33, 21, 19, 33, 48, - 3, 48, 78, 7, 9, 1, 56, 0, 25, 23, - 41, 38, 9, 20, 4, 1, 22, 2, 26, 22, - 24, 42, 58, 30, 20, 28, 124, 124, 124, 124, - 18, 0, 8, 30, 1, 22, 28, 12, 3, 88, - 5, 101, 93, 124, 18, 34, 10, 12, 22, 40, - 106, 62, 26, 5, 2, 4, 42, 52, 87, 8, - 10, 35, 7, 27, 10, 12, 19, 38, 24, 24, - 59, 18, 37, 27, 6, 51, 14, 12, 6, 43, - 91, 7, 37, 33, 45, 71, 65, 37, 125, 124, - 125, 57, 63, 79, 113, 83, 109, 125, 125, 121, - 75, 125, 63, 124, 103, 15, 11, 27, 39, 41, - 35, 45, 43, 45, 77, 77, 69, 73, 75, 125, - 23, 27, 73, 25, 39, 41, 55, 61, 73, 67, - 83, 75, 45, 79, 83, 65, 45, 38, 74, 46, - 20, 24, 38, 20, 12, 12, 72, 48, 66, 50, - 46, 42, 62, 44, 60, 52, 48, 40, 98, 82, - 72, 64, 76, 30, 12, 8, 8, 15, 112, 58, - 0, 5, 28, 4, 19, 3, 6, 78, 52, 12, - 5, 36, 10, 10, 7, 5, 124, 1, 14, 24, - 28, 26, 16, 44, 52, 22, 46, 54, 76, 3, - 10, 15, 4, 64, 15, 21, 13, 10, 12, 11, - 29, 11, 37, 11, 15, 51, 30, 28, 66, 10, - 5, 28, 16, 2, 14, 12, 2, 27, 0, 3, - 11, 7, 36, 75, 41, 32, 47, 11, 25, 13, - 20, 25, 31, 8, 10, 63, 21, 77, 28, 34, - 44, 1, 23, 15, 21, 33, 41, 59, 65, 65, - 91, 79, 79, 125, 117, 125, 125, 111, 107, 93, - 83, 105, 77, 89, 81, 53, 67, 23, 29, 33, - 35, 77, 59, 59, 101, 71, 87, 89, 125, 95, - 103, 107, 39, 35, 115, 45, 51, 73, 105, 81, - 97, 99, 61, 97, 77, 83, 103, 97, 103, 83, - 93, 103, 13, 0, 32, 6, 66, 86, 2, 20, - 38, 46, 10, 42, 78, 8, 1, 48, 35, 101, - 125, 125, 125, 125, 125, 125, 14, 78, 60, 54, - 34, 66, 36, 20, 16, 4, 17, 7, 24, 6, - 54, 74, 4, 10, 24, 32, 12, 28, 60, 14, - 0, 48, 35, 101, 125, 125, 125, 125, 125, 125, - }, - - { - /* Context Tables for P, SP, B Slices :: cabac_init_idc = 1, qp = 48 */ - - 36, 6, 39, 36, 6, 39, 40, 56, 56, 24, - 17, 55, 77, 30, 120, 20, 64, 15, 20, 46, - 7, 27, 4, 41, 97, 31, 113, 125, 125, 125, - 124, 14, 1, 20, 46, 7, 47, 24, 22, 7, - 0, 7, 5, 3, 35, 29, 55, 8, 3, 7, - 8, 17, 3, 33, 0, 21, 19, 33, 12, 4, - 44, 0, 0, 0, 14, 69, 67, 24, 33, 15, - 18, 17, 45, 106, 52, 36, 120, 124, 66, 70, - 50, 72, 32, 30, 88, 33, 21, 19, 33, 48, - 3, 48, 82, 7, 9, 1, 58, 1, 27, 25, - 43, 38, 9, 20, 4, 1, 22, 2, 26, 22, - 24, 44, 60, 30, 22, 30, 124, 124, 124, 124, - 18, 0, 8, 30, 3, 22, 28, 12, 3, 92, - 5, 105, 97, 124, 18, 34, 10, 12, 22, 40, - 108, 62, 26, 7, 0, 4, 42, 52, 91, 8, - 10, 37, 9, 31, 8, 10, 21, 38, 24, 22, - 63, 18, 39, 29, 4, 51, 12, 10, 4, 49, - 99, 11, 41, 39, 51, 77, 71, 41, 125, 124, - 125, 63, 67, 85, 121, 89, 117, 125, 125, 125, - 79, 125, 67, 124, 107, 21, 17, 33, 45, 47, - 41, 51, 49, 49, 83, 83, 73, 77, 79, 125, - 23, 29, 75, 27, 43, 45, 59, 65, 77, 71, - 87, 77, 47, 81, 85, 67, 45, 40, 74, 46, - 20, 24, 38, 20, 12, 12, 76, 50, 66, 50, - 46, 42, 62, 46, 62, 54, 50, 40, 98, 82, - 72, 64, 78, 30, 12, 8, 8, 17, 112, 56, - 1, 7, 28, 4, 19, 3, 4, 76, 50, 8, - 7, 34, 10, 10, 7, 5, 124, 0, 16, 26, - 30, 28, 18, 46, 54, 24, 48, 56, 80, 3, - 10, 15, 6, 66, 15, 21, 13, 10, 12, 11, - 31, 13, 39, 11, 17, 53, 30, 28, 68, 10, - 7, 28, 16, 0, 14, 12, 2, 29, 0, 3, - 11, 7, 36, 77, 43, 32, 51, 13, 27, 15, - 18, 27, 33, 8, 8, 67, 23, 81, 24, 30, - 42, 5, 27, 21, 27, 39, 47, 65, 71, 71, - 99, 85, 83, 125, 125, 125, 125, 119, 115, 99, - 89, 111, 81, 93, 85, 55, 69, 29, 35, 39, - 41, 83, 65, 65, 109, 77, 93, 95, 125, 99, - 107, 111, 41, 37, 119, 49, 55, 77, 111, 85, - 101, 103, 65, 101, 81, 85, 107, 99, 105, 87, - 97, 107, 13, 0, 32, 6, 68, 88, 2, 20, - 38, 46, 10, 42, 78, 8, 3, 44, 39, 107, - 125, 125, 125, 125, 125, 125, 14, 78, 60, 54, - 34, 66, 36, 20, 16, 4, 17, 7, 24, 6, - 54, 74, 4, 10, 24, 32, 12, 28, 60, 12, - 1, 44, 39, 107, 125, 125, 125, 125, 125, 125, - }, - - { - /* Context Tables for P, SP, B Slices :: cabac_init_idc = 1, qp = 49 */ - - 34, 6, 39, 34, 6, 39, 44, 60, 58, 26, - 17, 57, 81, 28, 122, 20, 68, 15, 22, 48, - 7, 27, 6, 41, 99, 33, 117, 125, 125, 125, - 124, 16, 0, 22, 48, 7, 47, 26, 22, 7, - 2, 5, 3, 3, 35, 27, 53, 8, 1, 5, - 8, 15, 1, 31, 2, 19, 19, 31, 14, 4, - 44, 0, 0, 0, 16, 69, 67, 26, 33, 15, - 18, 17, 45, 112, 56, 40, 124, 124, 70, 74, - 54, 76, 36, 34, 94, 33, 19, 17, 31, 48, - 3, 50, 88, 5, 7, 0, 62, 1, 27, 25, - 43, 40, 9, 22, 6, 0, 24, 4, 28, 24, - 26, 48, 64, 32, 26, 34, 124, 124, 124, 124, - 20, 2, 10, 32, 3, 24, 30, 14, 1, 98, - 3, 109, 99, 124, 18, 36, 10, 14, 24, 42, - 112, 64, 28, 7, 0, 4, 44, 54, 93, 10, - 10, 37, 9, 33, 8, 10, 21, 38, 24, 22, - 65, 20, 39, 29, 4, 51, 12, 10, 4, 53, - 105, 13, 43, 43, 55, 81, 75, 45, 125, 124, - 125, 67, 69, 89, 125, 93, 123, 125, 125, 125, - 83, 125, 71, 124, 109, 25, 21, 37, 49, 51, - 45, 55, 53, 53, 87, 87, 75, 79, 81, 125, - 23, 29, 75, 27, 45, 47, 61, 67, 79, 73, - 89, 79, 47, 83, 85, 67, 43, 44, 76, 48, - 20, 26, 40, 22, 14, 14, 82, 54, 68, 52, - 48, 44, 64, 50, 66, 58, 54, 42, 100, 84, - 74, 66, 80, 32, 14, 10, 10, 17, 114, 56, - 1, 7, 30, 6, 19, 1, 4, 76, 50, 6, - 9, 34, 12, 12, 5, 3, 124, 4, 20, 30, - 34, 32, 22, 50, 58, 28, 52, 60, 86, 1, - 12, 13, 10, 70, 13, 19, 11, 12, 14, 9, - 31, 13, 39, 11, 17, 53, 32, 30, 70, 12, - 7, 30, 18, 0, 16, 14, 2, 29, 2, 1, - 9, 5, 38, 77, 45, 32, 53, 13, 27, 15, - 18, 27, 33, 8, 8, 69, 23, 83, 22, 28, - 42, 7, 29, 25, 31, 43, 51, 69, 75, 75, - 105, 89, 87, 125, 125, 125, 125, 125, 121, 103, - 93, 115, 83, 95, 87, 55, 69, 33, 39, 43, - 45, 87, 69, 69, 115, 81, 97, 99, 125, 101, - 109, 113, 41, 37, 121, 51, 57, 79, 115, 87, - 103, 105, 67, 103, 83, 85, 109, 99, 105, 89, - 99, 109, 11, 2, 34, 8, 72, 92, 4, 22, - 40, 48, 12, 44, 80, 8, 3, 42, 43, 111, - 125, 125, 125, 125, 125, 125, 16, 78, 62, 56, - 36, 68, 38, 22, 18, 6, 15, 5, 26, 8, - 56, 76, 6, 12, 26, 34, 12, 30, 62, 12, - 1, 42, 43, 111, 125, 125, 125, 125, 125, 125, - }, - - { - /* Context Tables for P, SP, B Slices :: cabac_init_idc = 1, qp = 50 */ - - 32, 6, 39, 32, 6, 39, 48, 62, 58, 26, - 17, 59, 85, 26, 122, 20, 72, 15, 22, 50, - 7, 29, 6, 43, 103, 35, 123, 125, 125, 125, - 124, 18, 0, 22, 50, 7, 47, 28, 22, 9, - 2, 5, 1, 3, 35, 27, 53, 8, 1, 5, - 8, 15, 1, 31, 2, 19, 19, 31, 14, 4, - 44, 0, 0, 0, 18, 69, 67, 26, 35, 15, - 16, 17, 45, 116, 58, 42, 124, 124, 72, 76, - 58, 78, 38, 36, 98, 33, 19, 17, 31, 48, - 3, 52, 92, 5, 5, 2, 66, 1, 27, 25, - 45, 40, 9, 22, 8, 2, 26, 6, 30, 24, - 28, 50, 66, 34, 28, 36, 124, 124, 124, 124, - 20, 2, 10, 32, 3, 24, 30, 14, 1, 102, - 3, 113, 103, 124, 18, 36, 10, 14, 24, 42, - 116, 66, 28, 7, 0, 4, 46, 56, 95, 10, - 10, 37, 11, 35, 6, 10, 23, 38, 24, 22, - 67, 20, 41, 31, 2, 51, 12, 8, 2, 57, - 111, 15, 47, 47, 59, 85, 79, 49, 125, 124, - 125, 71, 73, 93, 125, 97, 125, 125, 125, 125, - 87, 125, 75, 124, 113, 29, 25, 41, 53, 55, - 49, 59, 57, 57, 91, 91, 79, 83, 85, 125, - 23, 29, 77, 29, 47, 49, 63, 69, 81, 75, - 93, 81, 47, 85, 87, 69, 41, 46, 78, 48, - 20, 26, 42, 24, 16, 16, 86, 56, 68, 52, - 48, 46, 66, 52, 70, 62, 58, 44, 102, 86, - 76, 68, 82, 32, 14, 10, 12, 17, 116, 56, - 3, 7, 30, 6, 19, 1, 4, 76, 48, 4, - 11, 34, 12, 12, 5, 3, 124, 6, 22, 32, - 38, 36, 24, 54, 62, 30, 56, 64, 90, 0, - 14, 13, 12, 74, 13, 19, 11, 14, 14, 9, - 31, 13, 41, 11, 17, 53, 32, 30, 72, 12, - 7, 30, 18, 0, 16, 14, 2, 31, 2, 1, - 9, 5, 40, 79, 47, 32, 55, 15, 29, 17, - 18, 29, 35, 8, 8, 71, 23, 85, 20, 26, - 40, 11, 33, 29, 35, 47, 55, 75, 81, 81, - 111, 95, 91, 125, 125, 125, 125, 125, 125, 109, - 97, 121, 87, 99, 89, 57, 71, 37, 43, 49, - 49, 93, 75, 75, 121, 85, 103, 103, 125, 105, - 113, 117, 43, 39, 125, 53, 59, 83, 119, 91, - 107, 109, 69, 107, 85, 87, 111, 101, 107, 93, - 101, 111, 11, 2, 36, 8, 74, 94, 4, 24, - 42, 50, 12, 44, 82, 8, 3, 40, 47, 117, - 125, 125, 125, 125, 125, 125, 16, 78, 62, 56, - 36, 70, 38, 22, 18, 6, 15, 5, 26, 8, - 58, 78, 6, 12, 26, 34, 12, 30, 64, 12, - 1, 40, 47, 117, 125, 125, 125, 125, 125, 125, - }, - - { - /* Context Tables for P, SP, B Slices :: cabac_init_idc = 1, qp = 51 */ - - 30, 6, 39, 30, 6, 39, 52, 66, 60, 26, - 19, 63, 89, 24, 122, 20, 76, 15, 24, 52, - 7, 29, 6, 43, 105, 37, 125, 125, 125, 125, - 124, 20, 0, 24, 52, 7, 49, 30, 22, 9, - 2, 5, 1, 3, 35, 27, 53, 8, 1, 3, - 8, 15, 0, 31, 2, 19, 19, 31, 14, 4, - 44, 0, 0, 0, 18, 69, 67, 28, 37, 15, - 14, 19, 45, 122, 60, 44, 124, 124, 76, 80, - 62, 82, 40, 38, 102, 33, 19, 15, 31, 48, - 3, 54, 96, 5, 3, 2, 70, 1, 29, 27, - 45, 40, 9, 24, 8, 4, 28, 6, 32, 26, - 30, 54, 70, 34, 30, 38, 124, 124, 124, 124, - 20, 2, 10, 34, 3, 24, 32, 16, 0, 106, - 3, 117, 107, 124, 18, 36, 10, 14, 24, 44, - 118, 68, 28, 7, 0, 4, 46, 58, 97, 10, - 10, 39, 11, 37, 6, 10, 23, 38, 24, 22, - 69, 20, 43, 33, 2, 51, 12, 8, 2, 61, - 117, 17, 51, 51, 65, 89, 85, 53, 125, 124, - 125, 75, 77, 97, 125, 103, 125, 125, 125, 125, - 91, 125, 79, 124, 117, 33, 29, 45, 59, 61, - 53, 63, 61, 61, 95, 95, 83, 87, 87, 125, - 23, 29, 77, 31, 49, 51, 65, 71, 83, 77, - 97, 83, 49, 87, 89, 69, 41, 50, 80, 50, - 20, 26, 44, 24, 16, 16, 90, 58, 68, 52, - 50, 48, 68, 54, 72, 64, 62, 46, 102, 86, - 76, 68, 84, 34, 14, 10, 12, 17, 116, 56, - 5, 7, 30, 6, 19, 0, 4, 74, 48, 2, - 13, 34, 12, 12, 5, 3, 124, 8, 26, 34, - 40, 38, 26, 58, 66, 32, 58, 68, 94, 0, - 16, 11, 14, 78, 11, 19, 11, 14, 16, 9, - 31, 13, 41, 11, 17, 55, 34, 32, 74, 12, - 7, 32, 18, 0, 16, 14, 2, 31, 2, 1, - 9, 5, 40, 81, 49, 32, 57, 17, 31, 17, - 18, 31, 37, 8, 8, 73, 23, 87, 18, 24, - 38, 13, 37, 33, 39, 51, 61, 79, 87, 87, - 117, 99, 95, 125, 125, 125, 125, 125, 125, 113, - 101, 125, 91, 103, 93, 59, 73, 41, 49, 53, - 55, 99, 79, 79, 125, 91, 107, 109, 125, 109, - 117, 119, 45, 41, 125, 57, 63, 87, 123, 93, - 111, 113, 71, 109, 87, 89, 113, 103, 109, 95, - 103, 113, 11, 4, 36, 10, 76, 96, 4, 24, - 42, 50, 12, 46, 84, 8, 3, 38, 51, 121, - 125, 125, 125, 125, 125, 125, 16, 78, 62, 56, - 36, 70, 40, 22, 18, 8, 15, 5, 28, 10, - 60, 80, 6, 14, 26, 34, 12, 30, 64, 12, - 1, 38, 51, 121, 125, 125, 125, 125, 125, 125, - }, - - }, + { 66683, 66710, 66738, 66765 }, - { + { 66932, 66958, 66985, 67011 }, - { - /* Context Tables for P, SP, B Slices :: cabac_init_idc = 2, qp = 0 */ - - 124, 18, 21, 124, 18, 21, 125, 81, 20, 18, - 24, 94, 124, 124, 24, 2, 71, 94, 43, 77, - 12, 12, 19, 12, 46, 106, 124, 124, 42, 67, - 125, 107, 21, 43, 77, 12, 59, 49, 38, 16, - 51, 79, 105, 12, 10, 41, 65, 0, 43, 85, - 0, 23, 53, 75, 16, 31, 23, 67, 26, 6, - 44, 0, 0, 0, 39, 45, 67, 17, 44, 2, - 58, 49, 125, 125, 55, 63, 41, 45, 51, 55, - 125, 25, 79, 53, 125, 33, 25, 41, 29, 16, - 4, 39, 125, 31, 81, 55, 125, 3, 31, 17, - 57, 14, 9, 15, 69, 45, 49, 37, 17, 7, - 17, 51, 11, 8, 5, 12, 15, 15, 10, 21, - 38, 11, 2, 24, 32, 42, 44, 20, 25, 29, - 39, 22, 7, 53, 7, 17, 23, 33, 39, 1, - 64, 1, 61, 23, 0, 21, 56, 72, 55, 3, - 11, 27, 5, 2, 9, 35, 66, 112, 80, 21, - 5, 121, 52, 124, 124, 125, 48, 42, 58, 68, - 64, 52, 42, 46, 60, 40, 54, 32, 16, 10, - 6, 38, 38, 42, 30, 14, 22, 52, 28, 10, - 30, 36, 11, 60, 0, 124, 124, 124, 106, 124, - 124, 124, 124, 92, 76, 68, 60, 96, 86, 19, - 58, 64, 38, 94, 54, 54, 70, 84, 86, 102, - 94, 42, 59, 14, 12, 50, 125, 103, 37, 2, - 20, 8, 43, 51, 61, 57, 125, 73, 12, 7, - 15, 27, 43, 49, 81, 69, 125, 37, 30, 4, - 5, 13, 23, 31, 39, 57, 89, 31, 11, 23, - 10, 10, 29, 39, 35, 71, 35, 50, 2, 10, - 8, 19, 25, 45, 39, 47, 124, 125, 125, 113, - 125, 101, 107, 109, 107, 99, 109, 113, 121, 61, - 77, 71, 85, 125, 57, 12, 45, 61, 55, 27, - 15, 19, 1, 35, 1, 12, 7, 9, 7, 9, - 27, 1, 9, 29, 16, 8, 3, 18, 38, 6, - 13, 25, 45, 13, 1, 13, 16, 14, 11, 3, - 21, 18, 18, 25, 37, 27, 27, 42, 124, 124, - 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, - 124, 124, 104, 124, 124, 124, 124, 124, 124, 96, - 124, 124, 92, 50, 36, 18, 31, 124, 124, 124, - 124, 96, 96, 76, 82, 94, 90, 70, 44, 70, - 32, 2, 64, 74, 78, 80, 94, 66, 68, 44, - 42, 6, 22, 6, 29, 119, 20, 14, 4, 60, - 26, 4, 29, 21, 17, 17, 23, 15, 0, 13, - 23, 17, 7, 20, 8, 22, 9, 124, 124, 124, - 124, 112, 102, 80, 50, 1, 15, 52, 38, 28, - 14, 8, 0, 7, 9, 31, 29, 21, 17, 17, - 23, 15, 0, 13, 23, 17, 7, 20, 8, 22, - 9, 124, 124, 124, 124, 112, 102, 80, 50, 1, - }, - - { - /* Context Tables for P, SP, B Slices :: cabac_init_idc = 2, qp = 1 */ - - 124, 18, 21, 124, 18, 21, 123, 77, 22, 20, - 24, 92, 124, 124, 26, 4, 67, 92, 41, 73, - 12, 12, 15, 12, 44, 104, 124, 120, 38, 67, - 123, 103, 19, 41, 73, 12, 57, 47, 40, 16, - 49, 77, 101, 10, 8, 41, 65, 0, 41, 83, - 0, 23, 51, 73, 16, 29, 21, 65, 28, 6, - 44, 0, 0, 0, 37, 45, 67, 15, 44, 2, - 58, 47, 123, 121, 51, 61, 37, 41, 49, 51, - 123, 23, 75, 51, 121, 33, 25, 41, 29, 18, - 4, 37, 121, 29, 79, 53, 123, 3, 29, 17, - 55, 16, 9, 13, 67, 43, 47, 35, 15, 5, - 15, 49, 9, 10, 5, 12, 13, 13, 10, 19, - 40, 9, 2, 26, 34, 44, 46, 22, 25, 27, - 37, 22, 7, 51, 7, 15, 21, 31, 35, 2, - 66, 2, 57, 23, 1, 19, 58, 74, 55, 3, - 9, 27, 3, 2, 7, 31, 66, 112, 82, 17, - 7, 117, 50, 124, 124, 123, 48, 42, 58, 68, - 64, 52, 42, 46, 60, 40, 54, 32, 16, 10, - 6, 38, 38, 42, 30, 14, 22, 52, 28, 8, - 30, 36, 11, 58, 0, 124, 124, 124, 104, 124, - 124, 124, 124, 90, 74, 64, 58, 92, 84, 21, - 56, 62, 36, 92, 54, 54, 68, 82, 84, 100, - 92, 40, 59, 14, 12, 48, 123, 99, 33, 4, - 20, 8, 41, 49, 59, 55, 123, 69, 14, 5, - 13, 25, 39, 47, 77, 67, 121, 35, 32, 6, - 3, 11, 21, 29, 37, 55, 85, 29, 7, 21, - 12, 10, 27, 37, 33, 69, 33, 52, 4, 12, - 10, 17, 23, 43, 37, 45, 124, 123, 123, 109, - 123, 97, 103, 105, 103, 95, 105, 109, 115, 59, - 75, 69, 83, 119, 55, 10, 43, 59, 53, 25, - 15, 17, 1, 33, 1, 12, 7, 9, 5, 9, - 27, 1, 9, 27, 16, 8, 3, 18, 38, 6, - 13, 23, 41, 13, 1, 11, 16, 14, 11, 3, - 19, 18, 18, 23, 35, 25, 25, 40, 124, 124, - 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, - 124, 124, 100, 124, 124, 124, 124, 124, 124, 94, - 120, 120, 90, 48, 34, 18, 31, 124, 124, 124, - 120, 92, 94, 74, 78, 92, 86, 68, 40, 66, - 30, 0, 62, 72, 74, 78, 92, 64, 66, 42, - 40, 4, 22, 6, 29, 117, 18, 12, 2, 58, - 24, 2, 27, 19, 15, 15, 19, 13, 2, 11, - 19, 15, 5, 22, 10, 24, 7, 124, 124, 124, - 124, 108, 100, 76, 48, 3, 13, 54, 40, 30, - 16, 10, 2, 5, 7, 29, 27, 19, 15, 15, - 19, 13, 2, 11, 19, 15, 5, 22, 10, 24, - 7, 124, 124, 124, 124, 108, 100, 76, 48, 3, - }, - - { - /* Context Tables for P, SP, B Slices :: cabac_init_idc = 2, qp = 2 */ - - 124, 18, 21, 124, 18, 21, 119, 75, 22, 20, - 24, 88, 120, 124, 28, 4, 63, 88, 41, 71, - 12, 12, 13, 10, 42, 102, 120, 114, 34, 69, - 119, 101, 19, 41, 71, 12, 57, 45, 40, 16, - 47, 75, 99, 8, 6, 41, 65, 0, 41, 81, - 0, 23, 51, 73, 16, 29, 21, 63, 28, 6, - 44, 0, 0, 0, 35, 45, 67, 15, 42, 2, - 58, 45, 121, 117, 49, 59, 33, 37, 47, 49, - 119, 21, 73, 49, 117, 35, 25, 41, 29, 18, - 4, 35, 117, 29, 77, 51, 119, 3, 29, 17, - 55, 16, 9, 13, 65, 43, 45, 35, 15, 5, - 15, 47, 7, 10, 5, 12, 13, 13, 10, 19, - 40, 9, 2, 26, 34, 44, 46, 22, 27, 25, - 35, 20, 7, 51, 7, 13, 21, 31, 33, 4, - 68, 6, 53, 25, 3, 19, 58, 74, 57, 3, - 9, 29, 1, 2, 7, 29, 66, 112, 82, 15, - 9, 115, 48, 124, 124, 121, 48, 42, 58, 66, - 62, 52, 42, 46, 58, 38, 52, 32, 16, 10, - 6, 36, 36, 40, 30, 14, 22, 50, 26, 6, - 28, 34, 11, 56, 1, 124, 124, 124, 100, 120, - 124, 124, 124, 88, 70, 60, 54, 88, 80, 23, - 54, 60, 32, 90, 52, 52, 66, 78, 80, 96, - 88, 36, 59, 12, 10, 44, 121, 97, 31, 6, - 20, 8, 39, 47, 57, 53, 119, 67, 16, 3, - 11, 23, 37, 45, 75, 65, 117, 33, 32, 6, - 3, 11, 19, 27, 35, 53, 83, 29, 5, 19, - 12, 10, 25, 35, 33, 67, 31, 52, 6, 12, - 10, 15, 21, 41, 35, 43, 124, 121, 119, 105, - 119, 95, 101, 101, 99, 93, 101, 105, 111, 57, - 73, 67, 81, 113, 55, 8, 43, 57, 51, 25, - 15, 17, 1, 33, 1, 10, 7, 9, 3, 9, - 27, 1, 9, 27, 16, 8, 3, 16, 36, 6, - 13, 23, 39, 15, 1, 9, 14, 14, 11, 3, - 19, 18, 18, 23, 33, 25, 25, 36, 124, 124, - 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, - 124, 124, 96, 124, 124, 124, 124, 124, 122, 90, - 116, 116, 86, 46, 32, 16, 31, 124, 124, 124, - 116, 88, 90, 70, 74, 88, 82, 64, 36, 62, - 26, 1, 60, 70, 70, 74, 88, 60, 62, 40, - 38, 2, 20, 4, 29, 115, 16, 10, 1, 56, - 22, 0, 27, 19, 13, 13, 17, 11, 4, 11, - 17, 13, 3, 22, 12, 26, 5, 124, 124, 124, - 120, 104, 96, 72, 44, 5, 11, 54, 40, 32, - 18, 12, 2, 3, 7, 27, 27, 19, 13, 13, - 17, 11, 4, 11, 17, 13, 3, 22, 12, 26, - 5, 124, 124, 124, 120, 104, 96, 72, 44, 5, - }, - - { - /* Context Tables for P, SP, B Slices :: cabac_init_idc = 2, qp = 3 */ - - 124, 18, 21, 124, 18, 21, 115, 71, 24, 20, - 22, 84, 118, 122, 28, 4, 59, 86, 41, 67, - 12, 10, 11, 8, 40, 100, 116, 106, 30, 71, - 115, 97, 19, 41, 67, 12, 55, 43, 42, 16, - 45, 73, 97, 6, 4, 41, 67, 0, 41, 79, - 0, 25, 51, 73, 16, 29, 21, 61, 30, 6, - 44, 0, 0, 0, 35, 45, 67, 13, 40, 2, - 56, 45, 119, 113, 47, 57, 31, 35, 45, 47, - 115, 19, 71, 47, 113, 37, 25, 41, 29, 20, - 4, 33, 113, 29, 75, 49, 115, 3, 29, 17, - 55, 18, 9, 11, 63, 43, 43, 35, 15, 5, - 13, 45, 7, 10, 5, 12, 13, 13, 10, 19, - 40, 9, 2, 28, 34, 46, 46, 24, 27, 25, - 33, 20, 7, 51, 7, 11, 21, 29, 31, 6, - 70, 8, 49, 25, 5, 17, 58, 74, 59, 3, - 7, 29, 1, 2, 7, 27, 66, 112, 82, 13, - 11, 111, 46, 124, 124, 117, 48, 42, 56, 64, - 62, 50, 40, 46, 58, 36, 50, 32, 16, 10, - 4, 36, 34, 38, 28, 14, 22, 48, 26, 4, - 28, 32, 11, 54, 1, 124, 124, 122, 98, 116, - 124, 124, 124, 86, 66, 56, 52, 84, 76, 27, - 52, 58, 28, 88, 50, 50, 64, 76, 76, 92, - 84, 34, 59, 10, 8, 42, 117, 93, 27, 6, - 20, 8, 37, 45, 55, 51, 115, 65, 18, 1, - 9, 23, 35, 43, 71, 63, 113, 33, 34, 8, - 1, 9, 17, 27, 35, 51, 81, 29, 1, 17, - 12, 10, 23, 35, 33, 65, 29, 54, 8, 14, - 10, 13, 21, 39, 35, 43, 124, 117, 117, 103, - 115, 93, 97, 99, 97, 89, 97, 101, 107, 57, - 71, 67, 79, 107, 55, 6, 43, 55, 49, 25, - 15, 17, 1, 31, 1, 8, 7, 9, 3, 9, - 27, 1, 9, 27, 14, 8, 3, 14, 34, 6, - 13, 23, 37, 17, 1, 7, 12, 14, 11, 3, - 17, 18, 16, 21, 31, 25, 25, 34, 124, 124, - 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, - 124, 124, 92, 124, 124, 124, 124, 124, 118, 86, - 112, 110, 82, 44, 30, 14, 31, 124, 124, 124, - 112, 84, 86, 68, 70, 84, 78, 60, 32, 58, - 22, 3, 58, 68, 66, 72, 84, 58, 58, 36, - 34, 0, 18, 2, 29, 113, 14, 6, 3, 54, - 20, 1, 27, 17, 13, 13, 15, 9, 6, 11, - 15, 11, 1, 24, 14, 26, 3, 124, 124, 124, - 116, 100, 92, 68, 40, 7, 11, 56, 42, 34, - 18, 14, 4, 3, 5, 27, 27, 17, 13, 13, - 15, 9, 6, 11, 15, 11, 1, 24, 14, 26, - 3, 124, 124, 124, 116, 100, 92, 68, 40, 7, - }, - - { - /* Context Tables for P, SP, B Slices :: cabac_init_idc = 2, qp = 4 */ - - 124, 18, 21, 124, 18, 21, 113, 69, 24, 20, - 22, 80, 114, 120, 30, 4, 57, 82, 41, 65, - 10, 10, 9, 6, 36, 96, 112, 100, 24, 73, - 111, 95, 19, 41, 65, 10, 55, 41, 42, 14, - 45, 71, 93, 4, 0, 43, 67, 0, 39, 77, - 1, 25, 51, 73, 16, 29, 21, 61, 30, 6, - 44, 0, 0, 0, 33, 47, 67, 13, 38, 2, - 56, 43, 117, 109, 45, 55, 27, 31, 45, 45, - 111, 17, 69, 45, 107, 37, 27, 41, 31, 20, - 2, 31, 107, 27, 75, 49, 111, 3, 29, 17, - 55, 18, 9, 11, 61, 43, 43, 33, 15, 5, - 13, 43, 5, 10, 7, 10, 13, 13, 10, 19, - 40, 9, 2, 28, 34, 46, 46, 24, 29, 23, - 33, 18, 7, 49, 7, 9, 19, 29, 27, 10, - 72, 12, 45, 27, 7, 17, 60, 74, 61, 3, - 7, 31, 0, 2, 7, 25, 66, 112, 82, 9, - 13, 109, 44, 124, 124, 115, 46, 42, 56, 64, - 60, 50, 40, 46, 56, 34, 48, 30, 16, 10, - 4, 34, 34, 36, 28, 12, 20, 46, 24, 2, - 26, 30, 11, 50, 3, 124, 124, 118, 94, 114, - 124, 124, 124, 84, 62, 50, 48, 80, 72, 29, - 48, 56, 26, 86, 48, 48, 60, 72, 72, 88, - 82, 30, 59, 8, 6, 38, 115, 91, 25, 8, - 20, 8, 35, 43, 53, 51, 111, 61, 20, 1, - 9, 21, 31, 41, 69, 61, 107, 31, 34, 8, - 1, 9, 15, 25, 33, 51, 79, 29, 0, 15, - 12, 10, 21, 33, 33, 63, 27, 54, 10, 14, - 10, 11, 19, 37, 33, 41, 124, 115, 113, 99, - 113, 91, 95, 95, 93, 87, 95, 97, 101, 55, - 69, 65, 77, 101, 53, 4, 41, 53, 49, 25, - 15, 17, 3, 31, 3, 6, 7, 9, 1, 9, - 27, 1, 9, 25, 14, 6, 3, 12, 32, 4, - 13, 23, 35, 19, 3, 7, 12, 12, 11, 3, - 17, 16, 16, 21, 31, 25, 25, 30, 124, 124, - 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, - 124, 124, 88, 124, 124, 124, 124, 124, 114, 82, - 108, 106, 78, 40, 28, 12, 31, 124, 124, 124, - 108, 80, 82, 64, 66, 80, 74, 56, 28, 52, - 20, 7, 56, 66, 60, 68, 82, 54, 54, 34, - 32, 1, 16, 0, 29, 111, 10, 4, 7, 50, - 18, 3, 27, 17, 11, 11, 13, 9, 6, 9, - 13, 9, 0, 24, 16, 28, 3, 124, 124, 120, - 112, 96, 88, 62, 36, 11, 9, 56, 42, 34, - 20, 14, 4, 1, 5, 25, 27, 17, 11, 11, - 13, 9, 6, 9, 13, 9, 0, 24, 16, 28, - 3, 124, 124, 120, 112, 96, 88, 62, 36, 11, - }, - - { - /* Context Tables for P, SP, B Slices :: cabac_init_idc = 2, qp = 5 */ - - 124, 18, 21, 124, 18, 21, 109, 65, 24, 20, - 20, 76, 112, 118, 32, 4, 53, 78, 39, 61, - 10, 10, 7, 4, 34, 94, 108, 94, 20, 73, - 107, 93, 19, 39, 61, 10, 55, 39, 42, 14, - 43, 69, 91, 2, 1, 43, 67, 0, 39, 75, - 1, 25, 51, 73, 16, 27, 21, 59, 32, 6, - 44, 0, 0, 0, 33, 47, 67, 11, 36, 2, - 54, 43, 113, 103, 43, 53, 25, 29, 43, 43, - 107, 15, 67, 43, 103, 39, 27, 41, 31, 20, - 2, 29, 103, 27, 73, 47, 107, 3, 29, 17, - 53, 18, 9, 9, 59, 41, 41, 33, 15, 3, - 11, 41, 5, 10, 7, 10, 11, 13, 10, 19, - 42, 9, 2, 30, 36, 46, 46, 24, 29, 23, - 31, 18, 7, 49, 7, 7, 19, 27, 25, 12, - 74, 14, 41, 27, 9, 15, 60, 74, 63, 3, - 5, 31, 2, 2, 7, 21, 66, 112, 82, 7, - 15, 105, 42, 124, 124, 113, 46, 42, 54, 62, - 60, 50, 38, 46, 56, 32, 46, 30, 16, 10, - 4, 34, 32, 34, 26, 12, 20, 44, 24, 0, - 24, 30, 11, 48, 3, 124, 124, 116, 92, 110, - 124, 124, 124, 82, 58, 46, 46, 76, 68, 31, - 46, 54, 22, 84, 46, 46, 58, 70, 68, 84, - 78, 28, 59, 6, 4, 34, 111, 87, 23, 8, - 20, 8, 33, 41, 51, 49, 107, 59, 22, 0, - 7, 19, 29, 39, 65, 59, 103, 29, 36, 10, - 0, 7, 13, 23, 33, 49, 77, 27, 2, 13, - 12, 10, 19, 33, 31, 61, 25, 54, 12, 14, - 10, 9, 17, 35, 33, 39, 124, 113, 111, 97, - 109, 89, 91, 93, 89, 83, 91, 93, 97, 53, - 67, 63, 75, 95, 53, 2, 41, 51, 47, 25, - 15, 17, 3, 29, 3, 4, 7, 9, 0, 9, - 27, 1, 9, 25, 12, 6, 3, 10, 30, 4, - 13, 23, 33, 19, 3, 5, 10, 12, 11, 3, - 17, 16, 14, 21, 29, 25, 25, 28, 124, 124, - 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, - 124, 124, 84, 124, 124, 124, 124, 124, 110, 80, - 104, 100, 74, 38, 26, 10, 31, 124, 124, 124, - 104, 76, 78, 62, 62, 76, 70, 52, 24, 48, - 16, 9, 54, 64, 56, 66, 78, 52, 50, 32, - 30, 3, 14, 1, 29, 109, 8, 2, 9, 48, - 16, 5, 27, 15, 11, 9, 11, 7, 8, 9, - 11, 7, 2, 26, 18, 28, 1, 124, 124, 116, - 108, 92, 84, 58, 32, 13, 9, 58, 44, 36, - 22, 16, 6, 1, 5, 23, 27, 15, 11, 9, - 11, 7, 8, 9, 11, 7, 2, 26, 18, 28, - 1, 124, 124, 116, 108, 92, 84, 58, 32, 13, - }, - - { - /* Context Tables for P, SP, B Slices :: cabac_init_idc = 2, qp = 6 */ - - 124, 18, 23, 124, 18, 23, 105, 63, 26, 20, - 20, 74, 108, 116, 32, 6, 49, 76, 39, 59, - 10, 8, 5, 2, 32, 92, 106, 86, 16, 75, - 103, 89, 19, 39, 59, 10, 53, 37, 44, 14, - 41, 67, 89, 1, 3, 43, 69, 0, 39, 75, - 1, 27, 49, 73, 14, 27, 21, 57, 32, 6, - 44, 0, 0, 0, 31, 47, 67, 11, 36, 0, - 54, 41, 111, 99, 41, 51, 21, 25, 41, 41, - 103, 13, 65, 43, 99, 41, 27, 41, 31, 22, - 2, 27, 99, 27, 71, 45, 103, 3, 29, 17, - 53, 20, 11, 9, 59, 41, 39, 33, 13, 3, - 11, 39, 3, 10, 7, 10, 11, 13, 10, 19, - 42, 9, 2, 30, 36, 48, 48, 26, 31, 21, - 29, 16, 7, 49, 7, 5, 19, 27, 23, 14, - 74, 18, 39, 29, 11, 15, 60, 74, 63, 5, - 5, 33, 2, 0, 5, 19, 66, 112, 84, 5, - 17, 103, 40, 124, 124, 109, 46, 42, 54, 60, - 58, 48, 38, 44, 54, 32, 46, 30, 14, 10, - 2, 32, 30, 32, 26, 12, 20, 44, 22, 3, - 24, 28, 11, 46, 5, 124, 124, 112, 88, 106, - 124, 124, 124, 78, 54, 42, 42, 72, 64, 35, - 44, 50, 18, 80, 44, 44, 56, 66, 64, 80, - 74, 24, 59, 4, 2, 32, 109, 85, 19, 10, - 20, 8, 31, 41, 51, 47, 105, 57, 24, 2, - 5, 19, 27, 37, 63, 57, 99, 29, 36, 10, - 0, 7, 11, 23, 31, 47, 75, 27, 6, 11, - 12, 10, 19, 31, 31, 61, 25, 56, 12, 16, - 10, 7, 17, 35, 31, 39, 124, 109, 107, 93, - 105, 85, 89, 89, 87, 81, 87, 89, 93, 53, - 65, 63, 75, 89, 53, 0, 41, 51, 45, 25, - 15, 17, 3, 29, 3, 2, 7, 9, 0, 9, - 27, 1, 9, 25, 12, 6, 3, 8, 28, 4, - 13, 23, 31, 21, 3, 3, 8, 12, 11, 3, - 15, 16, 14, 19, 27, 25, 25, 24, 124, 124, - 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, - 124, 124, 80, 124, 124, 124, 124, 124, 104, 76, - 100, 96, 70, 36, 24, 8, 31, 124, 124, 124, - 100, 72, 76, 58, 58, 72, 64, 48, 20, 44, - 12, 11, 52, 60, 52, 62, 74, 48, 46, 28, - 26, 5, 12, 3, 31, 107, 6, 1, 13, 46, - 12, 7, 25, 15, 9, 9, 9, 5, 10, 9, - 9, 5, 4, 26, 20, 30, 0, 124, 124, 112, - 104, 88, 80, 54, 28, 15, 7, 58, 44, 38, - 22, 18, 6, 0, 3, 23, 25, 15, 9, 9, - 9, 5, 10, 9, 9, 5, 4, 26, 20, 30, - 0, 124, 124, 112, 104, 88, 80, 54, 28, 15, - }, - - { - /* Context Tables for P, SP, B Slices :: cabac_init_idc = 2, qp = 7 */ - - 124, 18, 23, 124, 18, 23, 101, 59, 26, 20, - 18, 70, 106, 114, 34, 6, 47, 72, 39, 55, - 8, 8, 3, 0, 30, 90, 102, 80, 10, 77, - 99, 87, 19, 39, 55, 8, 53, 35, 44, 14, - 41, 65, 85, 3, 5, 43, 69, 0, 37, 73, - 3, 27, 49, 73, 14, 27, 21, 55, 34, 6, - 44, 0, 0, 0, 31, 47, 67, 9, 34, 0, - 52, 41, 109, 95, 39, 49, 19, 23, 39, 39, - 99, 11, 63, 41, 93, 41, 29, 41, 33, 22, - 2, 25, 93, 25, 71, 45, 99, 3, 29, 17, - 53, 20, 11, 7, 57, 41, 37, 31, 13, 3, - 9, 37, 3, 10, 9, 10, 11, 13, 10, 19, - 42, 9, 2, 32, 36, 48, 48, 26, 31, 21, - 29, 16, 7, 47, 7, 3, 17, 25, 19, 18, - 76, 20, 35, 29, 13, 13, 62, 74, 65, 5, - 3, 33, 4, 0, 5, 17, 66, 112, 84, 1, - 19, 99, 38, 124, 124, 107, 46, 42, 52, 60, - 58, 48, 36, 44, 54, 30, 44, 30, 14, 10, - 2, 32, 30, 30, 24, 12, 20, 42, 22, 5, - 22, 26, 11, 44, 5, 124, 124, 108, 86, 104, - 124, 124, 124, 76, 50, 38, 40, 68, 60, 37, - 42, 48, 16, 78, 42, 42, 52, 64, 60, 76, - 72, 22, 59, 2, 0, 28, 105, 81, 17, 10, - 20, 8, 29, 39, 49, 47, 101, 53, 26, 4, - 5, 17, 23, 35, 59, 55, 93, 27, 38, 12, - 2, 5, 9, 21, 31, 45, 73, 27, 8, 9, - 12, 10, 17, 31, 31, 59, 23, 56, 14, 16, - 10, 5, 15, 33, 31, 37, 124, 107, 105, 91, - 103, 83, 85, 87, 83, 77, 83, 85, 87, 51, - 63, 61, 73, 83, 51, 1, 39, 49, 43, 25, - 15, 17, 3, 27, 5, 0, 7, 9, 2, 9, - 27, 1, 9, 23, 10, 4, 3, 6, 26, 2, - 13, 23, 29, 23, 5, 1, 8, 10, 11, 3, - 15, 14, 12, 19, 27, 25, 25, 22, 124, 124, - 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, - 124, 124, 76, 124, 124, 124, 124, 124, 100, 72, - 96, 90, 66, 34, 22, 6, 31, 124, 122, 124, - 96, 68, 72, 56, 54, 68, 60, 44, 16, 40, - 10, 15, 50, 58, 48, 60, 72, 46, 42, 26, - 24, 7, 10, 5, 31, 105, 2, 3, 15, 42, - 10, 9, 25, 13, 9, 7, 7, 3, 10, 7, - 7, 3, 6, 28, 22, 30, 0, 124, 120, 108, - 100, 84, 76, 48, 24, 17, 7, 60, 46, 38, - 24, 20, 8, 0, 3, 21, 25, 13, 9, 7, - 7, 3, 10, 7, 7, 3, 6, 28, 22, 30, - 0, 124, 120, 108, 100, 84, 76, 48, 24, 17, - }, - - { - /* Context Tables for P, SP, B Slices :: cabac_init_idc = 2, qp = 8 */ - - 124, 16, 23, 124, 16, 23, 99, 57, 26, 20, - 18, 66, 102, 112, 34, 6, 43, 68, 39, 53, - 8, 6, 1, 1, 26, 86, 98, 72, 6, 79, - 95, 85, 19, 39, 53, 8, 53, 35, 44, 12, - 39, 63, 83, 5, 9, 45, 71, 0, 37, 71, - 3, 29, 49, 73, 14, 27, 21, 55, 34, 6, - 44, 0, 0, 0, 29, 49, 67, 9, 32, 0, - 52, 39, 107, 91, 37, 49, 15, 19, 39, 37, - 95, 11, 61, 39, 89, 43, 29, 43, 33, 22, - 0, 25, 89, 25, 69, 43, 97, 3, 29, 17, - 53, 20, 11, 7, 55, 41, 37, 31, 13, 3, - 9, 35, 1, 10, 9, 8, 11, 13, 8, 19, - 42, 9, 2, 32, 36, 48, 48, 26, 33, 19, - 27, 14, 7, 47, 7, 1, 17, 25, 17, 20, - 78, 24, 31, 31, 15, 13, 62, 74, 67, 5, - 3, 35, 4, 0, 5, 15, 66, 112, 84, 0, - 21, 97, 36, 118, 124, 105, 44, 42, 52, 58, - 56, 46, 36, 44, 52, 28, 42, 28, 14, 8, - 0, 30, 28, 28, 24, 10, 18, 40, 20, 7, - 20, 24, 11, 40, 7, 124, 124, 104, 82, 100, - 120, 124, 124, 74, 46, 32, 36, 62, 56, 41, - 38, 46, 12, 76, 40, 40, 50, 60, 56, 72, - 68, 18, 59, 0, 1, 24, 103, 79, 15, 12, - 20, 8, 29, 37, 47, 45, 97, 51, 26, 4, - 3, 17, 21, 33, 57, 53, 89, 27, 38, 12, - 2, 5, 9, 21, 29, 45, 71, 27, 10, 7, - 12, 10, 15, 29, 31, 57, 21, 56, 16, 16, - 10, 3, 15, 31, 29, 37, 124, 105, 101, 87, - 99, 81, 83, 83, 81, 75, 81, 81, 83, 51, - 61, 61, 71, 77, 51, 3, 39, 47, 43, 25, - 15, 17, 5, 27, 5, 1, 7, 9, 2, 9, - 27, 3, 9, 23, 10, 4, 5, 4, 24, 2, - 15, 23, 27, 25, 5, 1, 6, 10, 11, 5, - 15, 14, 12, 19, 25, 25, 25, 18, 124, 124, - 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, - 124, 122, 72, 124, 124, 124, 124, 122, 96, 68, - 90, 86, 62, 30, 18, 4, 31, 122, 118, 124, - 92, 62, 68, 52, 48, 64, 56, 40, 12, 34, - 6, 17, 46, 56, 42, 56, 68, 42, 38, 22, - 20, 9, 8, 7, 31, 103, 0, 7, 19, 40, - 8, 11, 25, 13, 7, 7, 5, 3, 12, 7, - 5, 3, 8, 28, 22, 32, 2, 122, 116, 104, - 96, 80, 72, 44, 20, 21, 5, 60, 46, 40, - 24, 20, 8, 2, 3, 21, 25, 13, 7, 7, - 5, 3, 12, 7, 5, 3, 8, 28, 22, 32, - 2, 122, 116, 104, 96, 80, 72, 44, 20, 21, - }, - - { - /* Context Tables for P, SP, B Slices :: cabac_init_idc = 2, qp = 9 */ - - 124, 16, 23, 124, 16, 23, 95, 55, 28, 20, - 18, 62, 98, 112, 36, 6, 39, 66, 37, 49, - 8, 6, 0, 1, 24, 84, 94, 66, 2, 79, - 91, 81, 17, 37, 49, 8, 51, 33, 46, 12, - 37, 61, 81, 7, 11, 45, 71, 0, 37, 69, - 3, 29, 49, 73, 14, 25, 19, 53, 34, 6, - 44, 0, 0, 0, 27, 49, 67, 9, 30, 0, - 52, 37, 103, 85, 35, 47, 11, 15, 37, 35, - 91, 9, 57, 37, 85, 45, 29, 43, 33, 24, - 0, 23, 85, 25, 67, 41, 93, 3, 27, 17, - 51, 22, 11, 5, 53, 39, 35, 31, 13, 1, - 7, 33, 0, 10, 9, 8, 9, 11, 8, 19, - 44, 9, 2, 32, 38, 50, 48, 28, 33, 17, - 25, 12, 7, 47, 7, 0, 17, 23, 15, 22, - 80, 28, 27, 33, 17, 11, 62, 76, 69, 5, - 3, 35, 6, 0, 5, 11, 66, 112, 84, 2, - 23, 95, 34, 114, 124, 101, 44, 42, 52, 56, - 56, 46, 36, 44, 52, 26, 40, 28, 14, 8, - 0, 30, 26, 28, 24, 10, 18, 38, 18, 9, - 20, 24, 11, 38, 7, 124, 124, 102, 80, 96, - 116, 124, 124, 72, 42, 28, 34, 58, 54, 43, - 36, 44, 8, 74, 38, 38, 48, 56, 54, 68, - 64, 16, 59, 0, 3, 22, 99, 75, 11, 14, - 20, 8, 27, 35, 45, 43, 93, 49, 28, 6, - 1, 15, 19, 31, 55, 51, 85, 25, 40, 14, - 4, 5, 7, 19, 27, 43, 67, 25, 14, 5, - 14, 10, 13, 27, 29, 55, 19, 58, 18, 18, - 12, 1, 13, 29, 27, 35, 124, 101, 97, 83, - 95, 79, 81, 79, 77, 71, 77, 77, 79, 49, - 59, 59, 69, 69, 51, 5, 39, 45, 41, 23, - 15, 17, 5, 27, 5, 3, 7, 9, 4, 9, - 27, 3, 9, 23, 10, 4, 5, 4, 22, 2, - 15, 21, 23, 25, 5, 0, 4, 10, 11, 5, - 13, 14, 12, 17, 23, 23, 23, 14, 124, 124, - 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, - 124, 116, 68, 124, 124, 124, 124, 116, 92, 66, - 86, 82, 60, 28, 16, 2, 31, 118, 114, 120, - 88, 58, 64, 50, 44, 60, 52, 36, 8, 30, - 2, 19, 44, 54, 38, 54, 64, 40, 34, 20, - 18, 11, 6, 7, 31, 101, 1, 9, 23, 38, - 6, 13, 25, 11, 5, 5, 1, 1, 14, 7, - 3, 1, 10, 30, 24, 34, 4, 120, 114, 100, - 92, 76, 68, 40, 16, 23, 3, 60, 48, 42, - 26, 22, 10, 4, 1, 19, 25, 11, 5, 5, - 1, 1, 14, 7, 3, 1, 10, 30, 24, 34, - 4, 120, 114, 100, 92, 76, 68, 40, 16, 23, - }, - - { - /* Context Tables for P, SP, B Slices :: cabac_init_idc = 2, qp = 10 */ - - 124, 16, 23, 124, 16, 23, 91, 51, 28, 20, - 16, 58, 96, 110, 38, 6, 37, 62, 37, 47, - 6, 6, 2, 3, 22, 82, 90, 60, 3, 81, - 87, 79, 17, 37, 47, 6, 51, 31, 46, 12, - 37, 59, 77, 9, 13, 45, 71, 0, 35, 67, - 5, 29, 49, 73, 14, 25, 19, 51, 36, 6, - 44, 0, 0, 0, 27, 49, 67, 7, 28, 0, - 50, 37, 101, 81, 33, 45, 9, 13, 35, 33, - 87, 7, 55, 35, 79, 45, 31, 43, 35, 24, - 0, 21, 79, 23, 67, 41, 89, 3, 27, 17, - 51, 22, 11, 5, 51, 39, 33, 29, 13, 1, - 7, 31, 0, 10, 11, 8, 9, 11, 8, 19, - 44, 9, 2, 34, 38, 50, 48, 28, 35, 17, - 25, 12, 7, 45, 7, 2, 15, 23, 11, 26, - 82, 30, 23, 33, 19, 11, 64, 76, 71, 5, - 1, 37, 8, 0, 5, 9, 66, 112, 84, 6, - 25, 91, 32, 108, 124, 99, 44, 42, 50, 56, - 54, 46, 34, 44, 50, 24, 38, 28, 14, 8, - 0, 28, 26, 26, 22, 10, 18, 36, 18, 11, - 18, 22, 11, 36, 9, 120, 124, 98, 76, 94, - 112, 124, 124, 70, 38, 24, 30, 54, 50, 45, - 34, 42, 6, 72, 36, 36, 44, 54, 50, 64, - 62, 12, 59, 1, 5, 18, 97, 73, 9, 14, - 20, 8, 25, 33, 43, 43, 89, 45, 30, 8, - 1, 13, 15, 29, 51, 49, 79, 23, 40, 14, - 4, 3, 5, 17, 27, 41, 65, 25, 16, 3, - 14, 10, 11, 27, 29, 53, 17, 58, 20, 18, - 12, 0, 11, 27, 27, 33, 124, 99, 95, 81, - 93, 77, 77, 77, 73, 69, 73, 73, 73, 47, - 57, 57, 67, 63, 49, 7, 37, 43, 39, 23, - 15, 17, 5, 25, 7, 5, 7, 9, 6, 9, - 27, 3, 9, 21, 8, 2, 5, 2, 20, 0, - 15, 21, 21, 27, 7, 2, 4, 8, 11, 5, - 13, 12, 10, 17, 23, 23, 23, 12, 124, 124, - 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, - 124, 112, 64, 124, 124, 124, 124, 110, 88, 62, - 82, 76, 56, 26, 14, 0, 31, 114, 108, 114, - 84, 54, 60, 46, 40, 56, 48, 32, 4, 26, - 0, 23, 42, 52, 34, 50, 62, 36, 30, 18, - 16, 13, 4, 9, 31, 99, 5, 11, 25, 34, - 4, 15, 25, 11, 5, 3, 0, 0, 14, 5, - 1, 0, 12, 30, 26, 34, 4, 120, 110, 96, - 88, 72, 64, 34, 12, 25, 3, 62, 48, 42, - 28, 24, 10, 4, 1, 17, 25, 11, 5, 3, - 0, 0, 14, 5, 1, 0, 12, 30, 26, 34, - 4, 120, 110, 96, 88, 72, 64, 34, 12, 25, - }, - - { - /* Context Tables for P, SP, B Slices :: cabac_init_idc = 2, qp = 11 */ - - 124, 16, 25, 124, 16, 25, 87, 49, 30, 20, - 16, 56, 92, 108, 38, 8, 33, 60, 37, 43, - 6, 4, 4, 5, 20, 80, 88, 52, 7, 83, - 83, 75, 17, 37, 43, 6, 49, 29, 48, 12, - 35, 57, 75, 13, 15, 45, 73, 0, 35, 67, - 5, 31, 47, 73, 12, 25, 19, 49, 36, 6, - 44, 0, 0, 0, 25, 49, 67, 7, 28, 1, - 50, 35, 99, 77, 31, 43, 5, 9, 33, 31, - 83, 5, 53, 35, 75, 47, 31, 43, 35, 26, - 0, 19, 75, 23, 65, 39, 85, 3, 27, 17, - 51, 24, 13, 3, 51, 39, 31, 29, 11, 1, - 5, 29, 2, 10, 11, 8, 9, 11, 8, 19, - 44, 9, 2, 34, 38, 52, 50, 30, 35, 15, - 23, 10, 7, 45, 7, 4, 15, 21, 9, 28, - 82, 34, 21, 35, 21, 9, 64, 76, 71, 7, - 1, 37, 8, 1, 3, 7, 66, 112, 86, 8, - 27, 89, 30, 102, 124, 95, 44, 42, 50, 54, - 54, 44, 34, 42, 50, 24, 38, 28, 12, 8, - 1, 28, 24, 24, 22, 10, 18, 36, 16, 15, - 18, 20, 11, 34, 9, 114, 124, 94, 74, 90, - 108, 124, 122, 66, 34, 20, 28, 50, 46, 49, - 32, 38, 2, 68, 34, 34, 42, 50, 46, 60, - 58, 10, 59, 3, 7, 16, 93, 69, 5, 16, - 20, 8, 23, 33, 43, 41, 87, 43, 32, 10, - 0, 13, 13, 27, 49, 47, 75, 23, 42, 16, - 6, 3, 3, 17, 25, 39, 63, 25, 20, 1, - 14, 10, 11, 25, 29, 53, 17, 60, 20, 20, - 12, 2, 11, 27, 25, 33, 124, 95, 91, 77, - 89, 73, 75, 73, 71, 65, 69, 69, 69, 47, - 55, 57, 67, 57, 49, 9, 37, 43, 37, 23, - 15, 17, 5, 25, 7, 7, 7, 9, 6, 9, - 27, 3, 9, 21, 8, 2, 5, 0, 18, 0, - 15, 21, 19, 29, 7, 4, 2, 8, 11, 5, - 11, 12, 10, 15, 21, 23, 23, 8, 124, 122, - 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, - 124, 106, 60, 124, 124, 124, 124, 106, 82, 58, - 78, 72, 52, 24, 12, 1, 31, 110, 104, 110, - 80, 50, 58, 44, 36, 52, 42, 28, 0, 22, - 3, 25, 40, 48, 30, 48, 58, 34, 26, 14, - 12, 15, 2, 11, 33, 97, 7, 15, 29, 32, - 0, 17, 23, 9, 3, 3, 2, 2, 16, 5, - 0, 2, 14, 32, 28, 36, 6, 118, 106, 92, - 84, 68, 60, 30, 8, 27, 1, 62, 50, 44, - 28, 26, 12, 6, 0, 17, 23, 9, 3, 3, - 2, 2, 16, 5, 0, 2, 14, 32, 28, 36, - 6, 118, 106, 92, 84, 68, 60, 30, 8, 27, - }, - - { - /* Context Tables for P, SP, B Slices :: cabac_init_idc = 2, qp = 12 */ - - 124, 16, 25, 124, 16, 25, 85, 45, 30, 20, - 14, 52, 90, 106, 40, 8, 29, 56, 37, 41, - 6, 4, 6, 7, 16, 76, 84, 46, 11, 85, - 79, 73, 17, 37, 41, 6, 49, 27, 48, 10, - 33, 55, 73, 15, 19, 47, 73, 0, 35, 65, - 5, 31, 47, 73, 12, 25, 19, 49, 38, 6, - 44, 0, 0, 0, 25, 51, 67, 5, 26, 1, - 48, 35, 97, 73, 29, 41, 3, 7, 33, 29, - 79, 3, 51, 33, 71, 49, 31, 43, 35, 26, - 1, 17, 71, 23, 63, 37, 81, 3, 27, 17, - 51, 24, 13, 3, 49, 39, 31, 29, 11, 1, - 5, 27, 2, 10, 11, 6, 9, 11, 8, 19, - 44, 9, 2, 36, 38, 52, 50, 30, 37, 15, - 21, 10, 7, 45, 7, 6, 15, 21, 7, 30, - 84, 36, 17, 35, 23, 9, 64, 76, 73, 7, - 0, 39, 10, 1, 3, 5, 66, 112, 86, 10, - 29, 85, 28, 96, 120, 93, 42, 42, 48, 52, - 52, 44, 32, 42, 48, 22, 36, 26, 12, 8, - 1, 26, 22, 22, 20, 8, 16, 34, 16, 17, - 16, 18, 11, 30, 11, 110, 124, 90, 70, 86, - 104, 124, 116, 64, 30, 14, 24, 46, 42, 51, - 28, 36, 1, 66, 32, 32, 40, 48, 42, 56, - 54, 6, 59, 5, 9, 12, 91, 67, 3, 16, - 20, 8, 21, 31, 41, 39, 83, 41, 34, 10, - 2, 11, 11, 25, 45, 45, 71, 21, 42, 16, - 6, 1, 1, 15, 25, 39, 61, 25, 22, 0, - 14, 10, 9, 25, 29, 51, 15, 60, 22, 20, - 12, 4, 9, 25, 25, 31, 124, 93, 89, 75, - 85, 71, 71, 71, 67, 63, 67, 65, 65, 45, - 53, 55, 65, 51, 49, 11, 37, 41, 37, 23, - 15, 17, 7, 23, 7, 9, 7, 9, 8, 9, - 27, 3, 9, 21, 6, 2, 5, 1, 16, 0, - 15, 21, 17, 31, 7, 4, 0, 8, 11, 5, - 11, 12, 8, 15, 19, 23, 23, 6, 124, 120, - 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, - 124, 100, 56, 124, 124, 124, 124, 100, 78, 54, - 74, 66, 48, 20, 10, 3, 31, 104, 100, 106, - 76, 46, 54, 40, 32, 48, 38, 24, 3, 16, - 7, 27, 38, 46, 24, 44, 54, 30, 22, 12, - 10, 17, 0, 13, 33, 95, 9, 17, 31, 30, - 1, 19, 23, 9, 3, 1, 4, 2, 18, 5, - 2, 4, 16, 32, 30, 36, 8, 118, 102, 88, - 80, 64, 56, 26, 4, 31, 1, 64, 50, 46, - 30, 26, 12, 6, 0, 15, 23, 9, 3, 1, - 4, 2, 18, 5, 2, 4, 16, 32, 30, 36, - 8, 118, 102, 88, 80, 64, 56, 26, 4, 31, - }, - - { - /* Context Tables for P, SP, B Slices :: cabac_init_idc = 2, qp = 13 */ - - 124, 16, 25, 124, 16, 25, 81, 43, 30, 20, - 14, 48, 86, 104, 42, 8, 27, 52, 35, 37, - 4, 4, 8, 9, 14, 74, 80, 40, 17, 85, - 75, 71, 17, 35, 37, 4, 49, 25, 48, 10, - 33, 53, 69, 17, 21, 47, 73, 0, 33, 63, - 7, 31, 47, 73, 12, 23, 19, 47, 38, 6, - 44, 0, 0, 0, 23, 51, 67, 5, 24, 1, - 48, 33, 93, 67, 27, 39, 0, 3, 31, 27, - 75, 1, 49, 31, 65, 49, 33, 43, 37, 26, - 1, 15, 65, 21, 63, 37, 77, 3, 27, 17, - 49, 24, 13, 1, 47, 37, 29, 27, 11, 0, - 3, 25, 4, 10, 13, 6, 7, 11, 8, 19, - 46, 9, 2, 36, 40, 52, 50, 30, 37, 13, - 21, 8, 7, 43, 7, 8, 13, 19, 3, 34, - 86, 40, 13, 37, 25, 7, 66, 76, 75, 7, - 0, 39, 12, 1, 3, 1, 66, 112, 86, 14, - 31, 83, 26, 92, 114, 91, 42, 42, 48, 52, - 52, 44, 32, 42, 48, 20, 34, 26, 12, 8, - 1, 26, 22, 20, 20, 8, 16, 32, 14, 19, - 14, 18, 11, 28, 11, 106, 124, 88, 68, 84, - 100, 124, 112, 62, 26, 10, 22, 42, 38, 53, - 26, 34, 3, 64, 30, 30, 36, 44, 38, 52, - 52, 4, 59, 7, 11, 8, 87, 63, 1, 18, - 20, 8, 19, 29, 39, 39, 79, 37, 36, 12, - 2, 9, 7, 23, 43, 43, 65, 19, 44, 18, - 8, 1, 0, 13, 23, 37, 59, 23, 24, 2, - 14, 10, 7, 23, 27, 49, 13, 60, 24, 20, - 12, 6, 7, 23, 23, 29, 124, 91, 85, 71, - 83, 69, 69, 67, 63, 59, 63, 61, 59, 43, - 51, 53, 63, 45, 47, 13, 35, 39, 35, 23, - 15, 17, 7, 23, 9, 11, 7, 9, 10, 9, - 27, 3, 9, 19, 6, 0, 5, 3, 14, 1, - 15, 21, 15, 31, 9, 6, 0, 6, 11, 5, - 11, 10, 8, 15, 19, 23, 23, 2, 124, 118, - 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, - 120, 96, 52, 124, 124, 124, 124, 94, 74, 52, - 70, 62, 44, 18, 8, 5, 31, 100, 94, 100, - 72, 42, 50, 38, 28, 44, 34, 20, 7, 12, - 9, 31, 36, 44, 20, 42, 52, 28, 18, 10, - 8, 19, 1, 15, 33, 93, 13, 19, 35, 26, - 3, 21, 23, 7, 1, 0, 6, 4, 18, 3, - 4, 6, 18, 34, 32, 38, 8, 116, 98, 84, - 76, 60, 52, 20, 0, 33, 0, 64, 52, 46, - 32, 28, 14, 8, 0, 13, 23, 7, 1, 0, - 6, 4, 18, 3, 4, 6, 18, 34, 32, 38, - 8, 116, 98, 84, 76, 60, 52, 20, 0, 33, - }, - - { - /* Context Tables for P, SP, B Slices :: cabac_init_idc = 2, qp = 14 */ - - 122, 16, 25, 122, 16, 25, 77, 39, 32, 20, - 12, 44, 84, 102, 42, 8, 23, 50, 35, 35, - 4, 2, 10, 11, 12, 72, 76, 32, 21, 87, - 71, 67, 17, 35, 35, 4, 47, 23, 50, 10, - 31, 51, 67, 19, 23, 47, 75, 0, 33, 61, - 7, 33, 47, 73, 12, 23, 19, 45, 40, 6, - 44, 0, 0, 0, 23, 51, 67, 3, 22, 1, - 46, 33, 91, 63, 25, 37, 2, 1, 29, 25, - 71, 0, 47, 29, 61, 51, 33, 43, 37, 28, - 1, 13, 61, 21, 61, 35, 73, 3, 27, 17, - 49, 26, 13, 1, 45, 37, 27, 27, 11, 0, - 3, 23, 4, 10, 13, 6, 7, 11, 8, 19, - 46, 9, 2, 38, 40, 54, 50, 32, 39, 13, - 19, 8, 7, 43, 7, 10, 13, 19, 1, 36, - 88, 42, 9, 37, 27, 7, 66, 76, 77, 7, - 2, 41, 12, 1, 3, 0, 66, 112, 86, 16, - 33, 79, 24, 86, 108, 87, 42, 42, 46, 50, - 50, 42, 30, 42, 46, 18, 32, 26, 12, 8, - 3, 24, 20, 18, 18, 8, 16, 30, 14, 21, - 14, 16, 11, 26, 13, 102, 120, 84, 64, 80, - 96, 124, 106, 60, 22, 6, 18, 38, 34, 57, - 24, 32, 7, 62, 28, 28, 34, 42, 34, 48, - 48, 0, 59, 9, 13, 6, 85, 61, 2, 18, - 20, 8, 17, 27, 37, 37, 75, 35, 38, 14, - 4, 9, 5, 21, 39, 41, 61, 19, 44, 18, - 8, 0, 2, 13, 23, 35, 57, 23, 28, 4, - 14, 10, 5, 23, 27, 47, 11, 62, 26, 22, - 12, 8, 7, 21, 23, 29, 124, 87, 83, 69, - 79, 67, 65, 65, 61, 57, 59, 57, 55, 43, - 49, 53, 61, 39, 47, 15, 35, 37, 33, 23, - 15, 17, 7, 21, 9, 13, 7, 9, 10, 9, - 27, 3, 9, 19, 4, 0, 5, 5, 12, 1, - 15, 21, 13, 33, 9, 8, 1, 6, 11, 5, - 9, 10, 6, 13, 17, 23, 23, 0, 124, 116, - 122, 122, 122, 124, 124, 124, 122, 124, 124, 124, - 114, 90, 48, 124, 120, 118, 120, 88, 70, 48, - 66, 56, 40, 16, 6, 7, 31, 96, 90, 96, - 68, 38, 46, 34, 24, 40, 30, 16, 11, 8, - 13, 33, 34, 42, 16, 38, 48, 24, 14, 6, - 4, 21, 3, 17, 33, 91, 15, 23, 37, 24, - 5, 23, 23, 7, 1, 0, 8, 6, 20, 3, - 6, 8, 20, 34, 34, 38, 10, 116, 94, 80, - 72, 56, 48, 16, 3, 35, 0, 66, 52, 48, - 32, 30, 14, 8, 2, 13, 23, 7, 1, 0, - 8, 6, 20, 3, 6, 8, 20, 34, 34, 38, - 10, 116, 94, 80, 72, 56, 48, 16, 3, 35, - }, - - { - /* Context Tables for P, SP, B Slices :: cabac_init_idc = 2, qp = 15 */ - - 120, 16, 25, 120, 16, 25, 73, 37, 32, 20, - 12, 40, 80, 100, 44, 8, 19, 46, 35, 31, - 4, 2, 12, 13, 10, 70, 72, 26, 25, 89, - 67, 65, 17, 35, 31, 4, 47, 21, 50, 10, - 29, 49, 65, 21, 25, 47, 75, 0, 33, 59, - 7, 33, 47, 73, 12, 23, 19, 43, 40, 6, - 44, 0, 0, 0, 21, 51, 67, 3, 20, 1, - 46, 31, 89, 59, 23, 35, 6, 2, 27, 23, - 67, 2, 45, 27, 57, 53, 33, 43, 37, 28, - 1, 11, 57, 21, 59, 33, 69, 3, 27, 17, - 49, 26, 13, 0, 43, 37, 25, 27, 11, 0, - 1, 21, 6, 10, 13, 6, 7, 11, 8, 19, - 46, 9, 2, 38, 40, 54, 50, 32, 39, 11, - 17, 6, 7, 43, 7, 12, 13, 17, 0, 38, - 90, 46, 5, 39, 29, 5, 66, 76, 79, 7, - 2, 41, 14, 1, 3, 2, 66, 112, 86, 18, - 35, 77, 22, 80, 102, 85, 42, 42, 46, 48, - 50, 42, 30, 42, 46, 16, 30, 26, 12, 8, - 3, 24, 18, 16, 18, 8, 16, 28, 12, 23, - 12, 14, 11, 24, 13, 98, 116, 80, 62, 76, - 92, 118, 102, 58, 18, 2, 16, 34, 30, 59, - 22, 30, 11, 60, 26, 26, 32, 38, 30, 44, - 44, 1, 59, 11, 15, 2, 81, 57, 4, 20, - 20, 8, 15, 25, 35, 35, 71, 33, 40, 16, - 6, 7, 3, 19, 37, 39, 57, 17, 46, 20, - 10, 0, 4, 11, 21, 33, 55, 23, 30, 6, - 14, 10, 3, 21, 27, 45, 9, 62, 28, 22, - 12, 10, 5, 19, 21, 27, 124, 85, 79, 65, - 75, 65, 63, 61, 57, 53, 55, 53, 51, 41, - 47, 51, 59, 33, 47, 17, 35, 35, 31, 23, - 15, 17, 7, 21, 9, 15, 7, 9, 12, 9, - 27, 3, 9, 19, 4, 0, 5, 7, 10, 1, - 15, 21, 11, 35, 9, 10, 3, 6, 11, 5, - 9, 10, 6, 13, 15, 23, 23, 3, 122, 114, - 120, 118, 118, 124, 124, 124, 118, 120, 124, 122, - 108, 84, 44, 122, 114, 110, 110, 82, 66, 44, - 62, 52, 36, 14, 4, 9, 31, 92, 86, 92, - 64, 34, 42, 32, 20, 36, 26, 12, 15, 4, - 17, 35, 32, 40, 12, 36, 44, 22, 10, 4, - 2, 23, 5, 19, 33, 89, 17, 25, 41, 22, - 7, 25, 23, 5, 0, 2, 10, 8, 22, 3, - 8, 10, 22, 36, 36, 40, 12, 114, 90, 76, - 68, 52, 44, 12, 7, 37, 2, 66, 54, 50, - 34, 32, 16, 10, 2, 11, 23, 5, 0, 2, - 10, 8, 22, 3, 8, 10, 22, 36, 36, 40, - 12, 114, 90, 76, 68, 52, 44, 12, 7, 37, - }, - - { - /* Context Tables for P, SP, B Slices :: cabac_init_idc = 2, qp = 16 */ - - 116, 14, 27, 116, 14, 27, 71, 35, 32, 20, - 10, 36, 76, 98, 44, 8, 17, 42, 35, 29, - 2, 0, 14, 15, 6, 66, 68, 18, 31, 91, - 63, 63, 17, 35, 29, 2, 47, 21, 50, 8, - 29, 49, 63, 25, 29, 49, 77, 1, 33, 59, - 9, 35, 47, 73, 10, 23, 19, 43, 40, 4, - 44, 0, 0, 0, 21, 53, 67, 3, 18, 3, - 44, 31, 87, 55, 21, 35, 8, 4, 27, 21, - 65, 2, 43, 27, 53, 55, 35, 45, 39, 28, - 3, 11, 53, 21, 59, 33, 67, 3, 27, 17, - 49, 26, 15, 0, 43, 37, 25, 27, 11, 0, - 1, 19, 6, 10, 15, 4, 7, 11, 6, 19, - 46, 9, 2, 38, 40, 54, 50, 32, 41, 11, - 17, 4, 7, 43, 9, 12, 13, 17, 2, 40, - 90, 48, 3, 41, 33, 5, 66, 76, 81, 9, - 2, 43, 14, 3, 3, 4, 66, 110, 86, 20, - 37, 75, 18, 74, 94, 83, 40, 42, 44, 46, - 48, 40, 28, 40, 44, 14, 28, 24, 10, 6, - 5, 22, 16, 14, 16, 6, 14, 26, 10, 27, - 10, 12, 11, 20, 15, 92, 110, 76, 58, 72, - 86, 110, 96, 54, 14, 3, 12, 28, 26, 63, - 18, 26, 15, 56, 24, 24, 28, 34, 26, 40, - 40, 5, 59, 13, 17, 1, 79, 55, 6, 20, - 20, 8, 15, 25, 35, 35, 69, 31, 40, 16, - 6, 7, 1, 17, 35, 39, 53, 17, 46, 20, - 10, 0, 4, 11, 21, 33, 53, 23, 32, 8, - 14, 8, 3, 21, 27, 45, 9, 62, 28, 22, - 12, 12, 5, 19, 21, 27, 124, 83, 77, 63, - 73, 63, 61, 59, 55, 51, 53, 51, 47, 41, - 47, 51, 59, 27, 47, 21, 35, 35, 31, 23, - 15, 17, 9, 21, 11, 17, 9, 9, 12, 11, - 27, 5, 9, 19, 2, 1, 7, 9, 8, 3, - 17, 21, 9, 37, 11, 10, 5, 4, 11, 7, - 9, 8, 4, 13, 15, 23, 23, 7, 118, 112, - 116, 114, 112, 124, 124, 124, 112, 114, 124, 116, - 100, 78, 40, 114, 106, 102, 98, 76, 60, 40, - 56, 46, 32, 10, 0, 11, 31, 86, 80, 86, - 60, 28, 38, 28, 14, 32, 20, 8, 21, 1, - 21, 39, 28, 36, 6, 32, 40, 18, 6, 0, - 1, 25, 7, 21, 35, 87, 21, 29, 45, 18, - 11, 29, 23, 5, 0, 2, 12, 8, 22, 3, - 10, 10, 24, 36, 36, 40, 12, 112, 86, 72, - 62, 46, 40, 6, 11, 41, 2, 66, 54, 50, - 34, 32, 16, 10, 2, 11, 23, 5, 0, 2, - 12, 8, 22, 3, 10, 10, 24, 36, 36, 40, - 12, 112, 86, 72, 62, 46, 40, 6, 11, 41, - }, - - { - /* Context Tables for P, SP, B Slices :: cabac_init_idc = 2, qp = 17 */ - - 114, 14, 27, 114, 14, 27, 67, 31, 34, 22, - 10, 34, 74, 98, 46, 10, 13, 40, 33, 25, - 2, 0, 18, 15, 4, 64, 66, 12, 35, 91, - 59, 59, 15, 33, 25, 2, 45, 19, 52, 8, - 27, 47, 59, 27, 31, 49, 77, 1, 31, 57, - 9, 35, 45, 71, 10, 21, 17, 41, 42, 4, - 44, 0, 0, 0, 19, 53, 67, 1, 18, 3, - 44, 29, 83, 49, 17, 33, 12, 8, 25, 17, - 61, 4, 39, 25, 47, 55, 35, 45, 39, 30, - 3, 9, 47, 19, 57, 31, 63, 3, 25, 17, - 47, 28, 15, 2, 41, 35, 23, 25, 9, 2, - 0, 17, 8, 12, 15, 4, 5, 9, 6, 17, - 48, 7, 2, 40, 42, 56, 52, 34, 41, 9, - 15, 4, 7, 41, 9, 14, 11, 15, 6, 44, - 92, 52, 0, 41, 35, 3, 68, 78, 81, 9, - 4, 43, 16, 3, 1, 8, 66, 110, 88, 24, - 39, 71, 16, 70, 88, 79, 40, 42, 44, 46, - 48, 40, 28, 40, 44, 14, 28, 24, 10, 6, - 5, 22, 16, 14, 16, 6, 14, 26, 10, 29, - 10, 12, 11, 18, 15, 88, 106, 74, 56, 70, - 82, 104, 92, 52, 12, 7, 10, 24, 24, 65, - 16, 24, 17, 54, 24, 24, 26, 32, 24, 38, - 38, 7, 59, 13, 17, 3, 75, 51, 10, 22, - 20, 8, 13, 23, 33, 33, 65, 27, 42, 18, - 8, 5, 2, 15, 31, 37, 47, 15, 48, 22, - 12, 2, 6, 9, 19, 31, 49, 21, 36, 10, - 16, 8, 1, 19, 25, 43, 7, 64, 30, 24, - 14, 14, 3, 17, 19, 25, 124, 79, 73, 59, - 69, 59, 57, 55, 51, 47, 49, 47, 41, 39, - 45, 49, 57, 19, 45, 23, 33, 33, 29, 21, - 15, 15, 9, 19, 11, 17, 9, 9, 14, 11, - 27, 5, 9, 17, 2, 1, 7, 9, 8, 3, - 17, 19, 5, 37, 11, 12, 5, 4, 11, 7, - 7, 8, 4, 11, 13, 21, 21, 9, 116, 110, - 114, 112, 108, 120, 120, 118, 108, 110, 118, 112, - 94, 74, 36, 108, 100, 96, 88, 72, 56, 38, - 52, 42, 30, 8, 1, 11, 31, 82, 76, 82, - 56, 24, 36, 26, 10, 30, 16, 6, 25, 5, - 23, 41, 26, 34, 2, 30, 38, 16, 4, 1, - 3, 27, 7, 21, 35, 85, 23, 31, 47, 16, - 13, 31, 21, 3, 2, 4, 16, 10, 24, 1, - 14, 12, 26, 38, 38, 42, 14, 112, 84, 70, - 58, 42, 38, 2, 13, 43, 4, 68, 56, 52, - 36, 34, 18, 12, 4, 9, 21, 3, 2, 4, - 16, 10, 24, 1, 14, 12, 26, 38, 38, 42, - 14, 112, 84, 70, 58, 42, 38, 2, 13, 43, - }, - - { - /* Context Tables for P, SP, B Slices :: cabac_init_idc = 2, qp = 18 */ - - 112, 14, 27, 112, 14, 27, 63, 29, 34, 22, - 10, 30, 70, 96, 48, 10, 9, 36, 33, 23, - 2, 0, 20, 17, 2, 62, 62, 6, 39, 93, - 55, 57, 15, 33, 23, 2, 45, 17, 52, 8, - 25, 45, 57, 29, 33, 49, 77, 1, 31, 55, - 9, 35, 45, 71, 10, 21, 17, 39, 42, 4, - 44, 0, 0, 0, 17, 53, 67, 1, 16, 3, - 44, 27, 81, 45, 15, 31, 16, 12, 23, 15, - 57, 6, 37, 23, 43, 57, 35, 45, 39, 30, - 3, 7, 43, 19, 55, 29, 59, 3, 25, 17, - 47, 28, 15, 2, 39, 35, 21, 25, 9, 2, - 0, 15, 10, 12, 15, 4, 5, 9, 6, 17, - 48, 7, 2, 40, 42, 56, 52, 34, 43, 7, - 13, 2, 7, 41, 9, 16, 11, 15, 8, 46, - 94, 56, 4, 43, 37, 3, 68, 78, 83, 9, - 4, 45, 18, 3, 1, 10, 66, 110, 88, 26, - 41, 69, 14, 64, 82, 77, 40, 42, 44, 44, - 46, 40, 28, 40, 42, 12, 26, 24, 10, 6, - 5, 20, 14, 12, 16, 6, 14, 24, 8, 31, - 8, 10, 11, 16, 17, 84, 102, 70, 52, 66, - 78, 98, 88, 50, 8, 11, 6, 20, 20, 67, - 14, 22, 21, 52, 22, 22, 24, 28, 20, 34, - 34, 11, 59, 15, 19, 7, 73, 49, 12, 24, - 20, 8, 11, 21, 31, 31, 61, 25, 44, 20, - 10, 3, 4, 13, 29, 35, 43, 13, 48, 22, - 12, 2, 8, 7, 17, 29, 47, 21, 38, 12, - 16, 8, 0, 17, 25, 41, 5, 64, 32, 24, - 14, 16, 1, 15, 17, 23, 124, 77, 69, 55, - 65, 57, 55, 51, 47, 45, 45, 43, 37, 37, - 43, 47, 55, 13, 45, 25, 33, 31, 27, 21, - 15, 15, 9, 19, 11, 19, 9, 9, 16, 11, - 27, 5, 9, 17, 2, 1, 7, 11, 6, 3, - 17, 19, 3, 39, 11, 14, 7, 4, 11, 7, - 7, 8, 4, 11, 11, 21, 21, 13, 114, 108, - 112, 108, 104, 114, 114, 112, 104, 104, 112, 106, - 88, 68, 32, 100, 92, 88, 78, 66, 52, 34, - 48, 38, 26, 6, 3, 13, 31, 78, 72, 78, - 52, 20, 32, 22, 6, 26, 12, 2, 29, 9, - 27, 43, 24, 32, 1, 26, 34, 12, 0, 3, - 5, 29, 9, 23, 35, 83, 25, 33, 51, 14, - 15, 33, 21, 3, 4, 6, 18, 12, 26, 1, - 16, 14, 28, 38, 40, 44, 16, 110, 80, 66, - 54, 38, 34, 1, 17, 45, 6, 68, 56, 54, - 38, 36, 18, 14, 4, 7, 21, 3, 4, 6, - 18, 12, 26, 1, 16, 14, 28, 38, 40, 44, - 16, 110, 80, 66, 54, 38, 34, 1, 17, 45, - }, - - { - /* Context Tables for P, SP, B Slices :: cabac_init_idc = 2, qp = 19 */ - - 110, 14, 27, 110, 14, 27, 59, 25, 36, 22, - 8, 26, 68, 94, 48, 10, 5, 34, 33, 19, - 2, 1, 22, 19, 0, 60, 58, 1, 43, 95, - 51, 53, 15, 33, 19, 2, 43, 15, 54, 8, - 23, 43, 55, 31, 35, 49, 79, 1, 31, 53, - 9, 37, 45, 71, 10, 21, 17, 37, 44, 4, - 44, 0, 0, 0, 17, 53, 67, 0, 14, 3, - 42, 27, 79, 41, 13, 29, 18, 14, 21, 13, - 53, 8, 35, 21, 39, 59, 35, 45, 39, 32, - 3, 5, 39, 19, 53, 27, 55, 3, 25, 17, - 47, 30, 15, 4, 37, 35, 19, 25, 9, 2, - 2, 13, 10, 12, 15, 4, 5, 9, 6, 17, - 48, 7, 2, 42, 42, 58, 52, 36, 43, 7, - 11, 2, 7, 41, 9, 18, 11, 13, 10, 48, - 96, 58, 8, 43, 39, 1, 68, 78, 85, 9, - 6, 45, 18, 3, 1, 12, 66, 110, 88, 28, - 43, 65, 12, 58, 76, 73, 40, 42, 42, 42, - 46, 38, 26, 40, 42, 10, 24, 24, 10, 6, - 7, 20, 12, 10, 14, 6, 14, 22, 8, 33, - 8, 8, 11, 14, 17, 80, 98, 66, 50, 62, - 74, 92, 82, 48, 4, 15, 4, 16, 16, 71, - 12, 20, 25, 50, 20, 20, 22, 26, 16, 30, - 30, 13, 59, 17, 21, 9, 69, 45, 16, 24, - 20, 8, 9, 19, 29, 29, 57, 23, 46, 22, - 12, 3, 6, 11, 25, 33, 39, 13, 50, 24, - 14, 4, 10, 7, 17, 27, 45, 21, 42, 14, - 16, 8, 2, 17, 25, 39, 3, 66, 34, 26, - 14, 18, 1, 13, 17, 23, 124, 73, 67, 53, - 61, 55, 51, 49, 45, 41, 41, 39, 33, 37, - 41, 47, 53, 7, 45, 27, 33, 29, 25, 21, - 15, 15, 9, 17, 11, 21, 9, 9, 16, 11, - 27, 5, 9, 17, 0, 1, 7, 13, 4, 3, - 17, 19, 1, 41, 11, 16, 9, 4, 11, 7, - 5, 8, 2, 9, 9, 21, 21, 15, 112, 106, - 110, 104, 100, 110, 110, 106, 98, 98, 106, 100, - 82, 62, 28, 92, 86, 80, 68, 60, 48, 30, - 44, 32, 22, 4, 5, 15, 31, 74, 68, 74, - 48, 16, 28, 20, 2, 22, 8, 1, 33, 13, - 31, 45, 22, 30, 5, 24, 30, 10, 3, 7, - 9, 31, 11, 25, 35, 81, 27, 37, 53, 12, - 17, 35, 21, 1, 4, 6, 20, 14, 28, 1, - 18, 16, 30, 40, 42, 44, 18, 110, 76, 62, - 50, 34, 30, 5, 21, 47, 6, 70, 58, 56, - 38, 38, 20, 14, 6, 7, 21, 1, 4, 6, - 20, 14, 28, 1, 18, 16, 30, 40, 42, 44, - 18, 110, 76, 62, 50, 34, 30, 5, 21, 47, - }, - - { - /* Context Tables for P, SP, B Slices :: cabac_init_idc = 2, qp = 20 */ - - 106, 14, 27, 106, 14, 27, 57, 23, 36, 22, - 8, 22, 64, 92, 50, 10, 3, 30, 33, 17, - 0, 1, 24, 21, 3, 56, 54, 7, 49, 97, - 47, 51, 15, 33, 17, 0, 43, 13, 54, 6, - 23, 41, 51, 33, 39, 51, 79, 1, 29, 51, - 11, 37, 45, 71, 10, 21, 17, 37, 44, 4, - 44, 0, 0, 0, 15, 55, 67, 0, 12, 3, - 42, 25, 77, 37, 11, 27, 22, 18, 21, 11, - 49, 10, 33, 19, 33, 59, 37, 45, 41, 32, - 5, 3, 33, 17, 53, 27, 51, 3, 25, 17, - 47, 30, 15, 4, 35, 35, 19, 23, 9, 2, - 2, 11, 12, 12, 17, 2, 5, 9, 6, 17, - 48, 7, 2, 42, 42, 58, 52, 36, 45, 5, - 11, 0, 7, 39, 9, 20, 9, 13, 14, 52, - 98, 62, 12, 45, 41, 1, 70, 78, 87, 9, - 6, 47, 20, 3, 1, 14, 66, 110, 88, 32, - 45, 63, 10, 52, 70, 71, 38, 42, 42, 42, - 44, 38, 26, 40, 40, 8, 22, 22, 10, 6, - 7, 18, 12, 8, 14, 4, 12, 20, 6, 35, - 6, 6, 11, 10, 19, 76, 94, 62, 46, 60, - 70, 84, 78, 46, 0, 21, 0, 12, 12, 73, - 8, 18, 27, 48, 18, 18, 18, 22, 12, 26, - 28, 17, 59, 19, 23, 13, 67, 43, 18, 26, - 20, 8, 7, 17, 27, 29, 53, 19, 48, 22, - 12, 1, 10, 9, 23, 31, 33, 11, 50, 24, - 14, 4, 12, 5, 15, 27, 43, 21, 44, 16, - 16, 8, 4, 15, 25, 37, 1, 66, 36, 26, - 14, 20, 0, 11, 15, 21, 124, 71, 63, 49, - 59, 53, 49, 45, 41, 39, 39, 35, 27, 35, - 39, 45, 51, 1, 43, 29, 31, 27, 25, 21, - 15, 15, 11, 17, 13, 23, 9, 9, 18, 11, - 27, 5, 9, 15, 0, 3, 7, 15, 2, 5, - 17, 19, 0, 43, 13, 16, 9, 2, 11, 7, - 5, 6, 2, 9, 9, 21, 21, 19, 110, 104, - 108, 102, 94, 104, 104, 100, 94, 92, 98, 94, - 74, 58, 24, 84, 78, 72, 58, 54, 44, 26, - 40, 28, 18, 0, 7, 17, 31, 68, 62, 68, - 44, 12, 24, 16, 1, 18, 4, 5, 37, 19, - 33, 49, 20, 28, 11, 20, 28, 6, 7, 9, - 11, 33, 13, 27, 35, 79, 31, 39, 57, 8, - 19, 37, 21, 1, 6, 8, 22, 14, 28, 0, - 20, 18, 32, 40, 44, 46, 18, 108, 72, 58, - 46, 30, 26, 11, 25, 51, 8, 70, 58, 56, - 40, 38, 20, 16, 6, 5, 21, 1, 6, 8, - 22, 14, 28, 0, 20, 18, 32, 40, 44, 46, - 18, 108, 72, 58, 46, 30, 26, 11, 25, 51, - }, - - { - /* Context Tables for P, SP, B Slices :: cabac_init_idc = 2, qp = 21 */ - - 104, 14, 27, 104, 14, 27, 53, 19, 36, 22, - 6, 18, 62, 90, 52, 10, 0, 26, 31, 13, - 0, 1, 26, 23, 5, 54, 50, 13, 53, 97, - 43, 49, 15, 31, 13, 0, 43, 11, 54, 6, - 21, 39, 49, 35, 41, 51, 79, 1, 29, 49, - 11, 37, 45, 71, 10, 19, 17, 35, 46, 4, - 44, 0, 0, 0, 15, 55, 67, 2, 10, 3, - 40, 25, 73, 31, 9, 25, 24, 20, 19, 9, - 45, 12, 31, 17, 29, 61, 37, 45, 41, 32, - 5, 1, 29, 17, 51, 25, 47, 3, 25, 17, - 45, 30, 15, 6, 33, 33, 17, 23, 9, 4, - 4, 9, 12, 12, 17, 2, 3, 9, 6, 17, - 50, 7, 2, 44, 44, 58, 52, 36, 45, 5, - 9, 0, 7, 39, 9, 22, 9, 11, 16, 54, - 100, 64, 16, 45, 43, 0, 70, 78, 89, 9, - 8, 47, 22, 3, 1, 18, 66, 110, 88, 34, - 47, 59, 8, 48, 64, 69, 38, 42, 40, 40, - 44, 38, 24, 40, 40, 6, 20, 22, 10, 6, - 7, 18, 10, 6, 12, 4, 12, 18, 6, 37, - 4, 6, 11, 8, 19, 72, 90, 60, 44, 56, - 66, 78, 72, 44, 3, 25, 1, 8, 8, 75, - 6, 16, 31, 46, 16, 16, 16, 20, 8, 22, - 24, 19, 59, 21, 25, 17, 63, 39, 20, 26, - 20, 8, 5, 15, 25, 27, 49, 17, 50, 24, - 14, 0, 12, 7, 19, 29, 29, 9, 52, 26, - 16, 6, 14, 3, 15, 25, 41, 19, 46, 18, - 16, 8, 6, 15, 23, 35, 0, 66, 38, 26, - 14, 22, 2, 9, 15, 19, 124, 69, 61, 47, - 55, 51, 45, 43, 37, 35, 35, 31, 23, 33, - 37, 43, 49, 4, 43, 31, 31, 25, 23, 21, - 15, 15, 11, 15, 13, 25, 9, 9, 20, 11, - 27, 5, 9, 15, 1, 3, 7, 17, 0, 5, - 17, 19, 2, 43, 13, 18, 11, 2, 11, 7, - 5, 6, 0, 9, 7, 21, 21, 21, 108, 102, - 106, 98, 90, 100, 98, 94, 88, 86, 92, 88, - 68, 52, 20, 76, 72, 64, 48, 48, 40, 24, - 36, 22, 14, 1, 9, 19, 31, 64, 58, 64, - 40, 8, 20, 14, 5, 14, 0, 9, 41, 23, - 37, 51, 18, 26, 15, 18, 24, 4, 11, 11, - 13, 35, 15, 29, 35, 77, 33, 41, 59, 6, - 21, 39, 21, 0, 6, 10, 24, 16, 30, 0, - 22, 20, 34, 42, 46, 46, 20, 108, 68, 54, - 42, 26, 22, 15, 29, 53, 8, 72, 60, 58, - 42, 40, 22, 16, 6, 3, 21, 0, 6, 10, - 24, 16, 30, 0, 22, 20, 34, 42, 46, 46, - 20, 108, 68, 54, 42, 26, 22, 15, 29, 53, - }, - - { - /* Context Tables for P, SP, B Slices :: cabac_init_idc = 2, qp = 22 */ - - 102, 14, 29, 102, 14, 29, 49, 17, 38, 22, - 6, 16, 58, 88, 52, 12, 4, 24, 31, 11, - 0, 3, 28, 25, 7, 52, 48, 21, 57, 99, - 39, 45, 15, 31, 11, 0, 41, 9, 56, 6, - 19, 37, 47, 39, 43, 51, 81, 1, 29, 49, - 11, 39, 43, 71, 8, 19, 17, 33, 46, 4, - 44, 0, 0, 0, 13, 55, 67, 2, 10, 5, - 40, 23, 71, 27, 7, 23, 28, 24, 17, 7, - 41, 14, 29, 17, 25, 63, 37, 45, 41, 34, - 5, 0, 25, 17, 49, 23, 43, 3, 25, 17, - 45, 32, 17, 6, 33, 33, 15, 23, 7, 4, - 4, 7, 14, 12, 17, 2, 3, 9, 6, 17, - 50, 7, 2, 44, 44, 60, 54, 38, 47, 3, - 7, 1, 7, 39, 9, 24, 9, 11, 18, 56, - 100, 68, 18, 47, 45, 0, 70, 78, 89, 11, - 8, 49, 22, 5, 0, 20, 66, 110, 90, 36, - 49, 57, 6, 42, 58, 65, 38, 42, 40, 38, - 42, 36, 24, 38, 38, 6, 20, 22, 8, 6, - 9, 16, 8, 4, 12, 4, 12, 18, 4, 41, - 4, 4, 11, 6, 21, 66, 86, 56, 40, 52, - 62, 72, 68, 40, 7, 29, 5, 4, 4, 79, - 4, 12, 35, 42, 14, 14, 14, 16, 4, 18, - 20, 23, 59, 23, 27, 19, 61, 37, 24, 28, - 20, 8, 3, 15, 25, 25, 47, 15, 52, 26, - 16, 0, 14, 5, 17, 27, 25, 9, 52, 26, - 16, 6, 16, 3, 13, 23, 39, 19, 50, 20, - 16, 8, 6, 13, 23, 35, 0, 68, 38, 28, - 14, 24, 2, 9, 13, 19, 124, 65, 57, 43, - 51, 47, 43, 39, 35, 33, 31, 27, 19, 33, - 35, 43, 49, 10, 43, 33, 31, 25, 21, 21, - 15, 15, 11, 15, 13, 27, 9, 9, 20, 11, - 27, 5, 9, 15, 1, 3, 7, 19, 1, 5, - 17, 19, 4, 45, 13, 20, 13, 2, 11, 7, - 3, 6, 0, 7, 5, 21, 21, 25, 106, 100, - 104, 94, 86, 94, 94, 88, 84, 80, 86, 82, - 62, 46, 16, 70, 64, 56, 38, 44, 34, 20, - 32, 18, 10, 3, 11, 21, 31, 60, 54, 60, - 36, 4, 18, 10, 9, 10, 5, 13, 45, 27, - 41, 53, 16, 22, 19, 14, 20, 0, 15, 15, - 17, 37, 17, 31, 37, 75, 35, 45, 63, 4, - 25, 41, 19, 0, 8, 10, 26, 18, 32, 0, - 24, 22, 36, 42, 48, 48, 22, 106, 64, 50, - 38, 22, 18, 19, 33, 55, 10, 72, 60, 60, - 42, 42, 22, 18, 8, 3, 19, 0, 8, 10, - 26, 18, 32, 0, 24, 22, 36, 42, 48, 48, - 22, 106, 64, 50, 38, 22, 18, 19, 33, 55, - }, - - { - /* Context Tables for P, SP, B Slices :: cabac_init_idc = 2, qp = 23 */ - - 100, 14, 29, 100, 14, 29, 45, 13, 38, 22, - 4, 12, 56, 86, 54, 12, 6, 20, 31, 7, - 1, 3, 30, 27, 9, 50, 44, 27, 63, 101, - 35, 43, 15, 31, 7, 1, 41, 7, 56, 6, - 19, 35, 43, 41, 45, 51, 81, 1, 27, 47, - 13, 39, 43, 71, 8, 19, 17, 31, 48, 4, - 44, 0, 0, 0, 13, 55, 67, 4, 8, 5, - 38, 23, 69, 23, 5, 21, 30, 26, 15, 5, - 37, 16, 27, 15, 19, 63, 39, 45, 43, 34, - 5, 2, 19, 15, 49, 23, 39, 3, 25, 17, - 45, 32, 17, 8, 31, 33, 13, 21, 7, 4, - 6, 5, 14, 12, 19, 2, 3, 9, 6, 17, - 50, 7, 2, 46, 44, 60, 54, 38, 47, 3, - 7, 1, 7, 37, 9, 26, 7, 9, 22, 60, - 102, 70, 22, 47, 47, 2, 72, 78, 91, 11, - 10, 49, 24, 5, 0, 22, 66, 110, 90, 40, - 51, 53, 4, 36, 52, 63, 38, 42, 38, 38, - 42, 36, 22, 38, 38, 4, 18, 22, 8, 6, - 9, 16, 8, 2, 10, 4, 12, 16, 4, 43, - 2, 2, 11, 4, 21, 62, 82, 52, 38, 50, - 58, 66, 62, 38, 11, 33, 7, 0, 0, 81, - 2, 10, 37, 40, 12, 12, 10, 14, 0, 14, - 18, 25, 59, 25, 29, 23, 57, 33, 26, 28, - 20, 8, 1, 13, 23, 25, 43, 11, 54, 28, - 16, 2, 18, 3, 13, 25, 19, 7, 54, 28, - 18, 8, 18, 1, 13, 21, 37, 19, 52, 22, - 16, 8, 8, 13, 23, 33, 2, 68, 40, 28, - 14, 26, 4, 7, 13, 17, 124, 63, 55, 41, - 49, 45, 39, 37, 31, 29, 27, 23, 13, 31, - 33, 41, 47, 16, 41, 35, 29, 23, 19, 21, - 15, 15, 11, 13, 15, 29, 9, 9, 22, 11, - 27, 5, 9, 13, 3, 5, 7, 21, 3, 7, - 17, 19, 6, 47, 15, 22, 13, 0, 11, 7, - 3, 4, 1, 7, 5, 21, 21, 27, 104, 98, - 102, 92, 80, 90, 88, 82, 78, 74, 80, 76, - 56, 42, 12, 62, 58, 48, 28, 38, 30, 16, - 28, 12, 6, 5, 13, 23, 31, 56, 48, 54, - 32, 0, 14, 8, 13, 6, 9, 17, 49, 31, - 43, 57, 14, 20, 23, 12, 18, 1, 19, 17, - 19, 39, 19, 33, 37, 73, 39, 47, 65, 0, - 27, 43, 19, 2, 8, 12, 28, 20, 32, 2, - 26, 24, 38, 44, 50, 48, 22, 106, 60, 46, - 34, 18, 14, 25, 37, 57, 10, 74, 62, 60, - 44, 44, 24, 18, 8, 1, 19, 2, 8, 12, - 28, 20, 32, 2, 26, 24, 38, 44, 50, 48, - 22, 106, 60, 46, 34, 18, 14, 25, 37, 57, - }, - - { - /* Context Tables for P, SP, B Slices :: cabac_init_idc = 2, qp = 24 */ - - 96, 12, 29, 96, 12, 29, 43, 11, 38, 22, - 4, 8, 52, 84, 54, 12, 10, 16, 31, 5, - 1, 5, 32, 29, 13, 46, 40, 35, 67, 103, - 31, 41, 15, 31, 5, 1, 41, 7, 56, 4, - 17, 33, 41, 43, 49, 53, 83, 1, 27, 45, - 13, 41, 43, 71, 8, 19, 17, 31, 48, 4, - 44, 0, 0, 0, 11, 57, 67, 4, 6, 5, - 38, 21, 67, 19, 3, 21, 34, 30, 15, 3, - 33, 16, 25, 13, 15, 65, 39, 47, 43, 34, - 7, 2, 15, 15, 47, 21, 37, 3, 25, 17, - 45, 32, 17, 8, 29, 33, 13, 21, 7, 4, - 6, 3, 16, 12, 19, 0, 3, 9, 4, 17, - 50, 7, 2, 46, 44, 60, 54, 38, 49, 1, - 5, 3, 7, 37, 9, 28, 7, 9, 24, 62, - 104, 74, 26, 49, 49, 2, 72, 78, 93, 11, - 10, 51, 24, 5, 0, 24, 66, 110, 90, 42, - 53, 51, 2, 30, 44, 61, 36, 42, 38, 36, - 40, 34, 22, 38, 36, 2, 16, 20, 8, 4, - 11, 14, 6, 0, 10, 2, 10, 14, 2, 45, - 0, 0, 11, 0, 23, 58, 78, 48, 34, 46, - 52, 58, 58, 36, 15, 39, 11, 5, 3, 85, - 1, 8, 41, 38, 10, 10, 8, 10, 3, 10, - 14, 29, 59, 27, 31, 27, 55, 31, 28, 30, - 20, 8, 1, 11, 21, 23, 39, 9, 54, 28, - 18, 2, 20, 1, 11, 23, 15, 7, 54, 28, - 18, 8, 18, 1, 11, 21, 35, 19, 54, 24, - 16, 8, 10, 11, 23, 31, 4, 68, 42, 28, - 14, 28, 4, 5, 11, 17, 124, 61, 51, 37, - 45, 43, 37, 33, 29, 27, 25, 19, 9, 31, - 31, 41, 45, 22, 41, 37, 29, 21, 19, 21, - 15, 15, 13, 13, 15, 31, 9, 9, 22, 11, - 27, 7, 9, 13, 3, 5, 9, 23, 5, 7, - 19, 19, 8, 49, 15, 22, 15, 0, 11, 9, - 3, 4, 1, 7, 3, 21, 21, 31, 102, 96, - 100, 88, 76, 84, 82, 76, 74, 68, 72, 70, - 48, 36, 8, 54, 50, 40, 18, 32, 26, 12, - 22, 8, 2, 9, 17, 25, 31, 50, 44, 50, - 28, 5, 10, 4, 19, 2, 13, 21, 53, 37, - 47, 59, 10, 18, 29, 8, 14, 5, 23, 21, - 23, 41, 21, 35, 37, 71, 41, 51, 69, 1, - 29, 45, 19, 2, 10, 12, 30, 20, 34, 2, - 28, 24, 40, 44, 50, 50, 24, 104, 56, 42, - 30, 14, 10, 29, 41, 61, 12, 74, 62, 62, - 44, 44, 24, 20, 8, 1, 19, 2, 10, 12, - 30, 20, 34, 2, 28, 24, 40, 44, 50, 50, - 24, 104, 56, 42, 30, 14, 10, 29, 41, 61, - }, - - { - /* Context Tables for P, SP, B Slices :: cabac_init_idc = 2, qp = 25 */ - - 94, 12, 29, 94, 12, 29, 39, 9, 40, 22, - 4, 4, 48, 84, 56, 12, 14, 14, 29, 1, - 1, 5, 34, 29, 15, 44, 36, 41, 71, 103, - 27, 37, 13, 29, 1, 1, 39, 5, 58, 4, - 15, 31, 39, 45, 51, 53, 83, 1, 27, 43, - 13, 41, 43, 71, 8, 17, 15, 29, 48, 4, - 44, 0, 0, 0, 9, 57, 67, 4, 4, 5, - 38, 19, 63, 13, 1, 19, 38, 34, 13, 1, - 29, 18, 21, 11, 11, 67, 39, 47, 43, 36, - 7, 4, 11, 15, 45, 19, 33, 3, 23, 17, - 43, 34, 17, 10, 27, 31, 11, 21, 7, 6, - 8, 1, 18, 12, 19, 0, 1, 7, 4, 17, - 52, 7, 2, 46, 46, 62, 54, 40, 49, 0, - 3, 5, 7, 37, 9, 30, 7, 7, 26, 64, - 106, 78, 30, 51, 51, 4, 72, 80, 95, 11, - 10, 51, 26, 5, 0, 28, 66, 110, 90, 44, - 55, 49, 0, 26, 38, 57, 36, 42, 38, 34, - 40, 34, 22, 38, 36, 0, 14, 20, 8, 4, - 11, 14, 4, 0, 10, 2, 10, 12, 0, 47, - 0, 0, 11, 1, 23, 54, 74, 46, 32, 42, - 48, 52, 54, 34, 19, 43, 13, 9, 5, 87, - 3, 6, 45, 36, 8, 8, 6, 6, 5, 6, - 10, 31, 59, 27, 33, 29, 51, 27, 32, 32, - 20, 8, 0, 9, 19, 21, 35, 7, 56, 30, - 20, 4, 22, 0, 9, 21, 11, 5, 56, 30, - 20, 8, 20, 0, 9, 19, 31, 17, 58, 26, - 18, 8, 12, 9, 21, 29, 6, 70, 44, 30, - 16, 30, 6, 3, 9, 15, 124, 57, 47, 33, - 41, 41, 35, 29, 25, 23, 21, 15, 5, 29, - 29, 39, 43, 30, 41, 39, 29, 19, 17, 19, - 15, 15, 13, 13, 15, 33, 9, 9, 24, 11, - 27, 7, 9, 13, 3, 5, 9, 23, 7, 7, - 19, 17, 12, 49, 15, 24, 17, 0, 11, 9, - 1, 4, 1, 5, 1, 19, 19, 35, 100, 94, - 98, 84, 72, 78, 78, 70, 70, 64, 66, 66, - 42, 30, 4, 46, 44, 34, 8, 26, 22, 10, - 18, 4, 0, 11, 19, 27, 31, 46, 40, 46, - 24, 9, 6, 2, 23, 1, 17, 25, 57, 41, - 51, 61, 8, 16, 33, 6, 10, 7, 27, 23, - 25, 43, 23, 35, 37, 69, 43, 53, 73, 3, - 31, 47, 19, 4, 12, 14, 34, 22, 36, 2, - 30, 26, 42, 46, 52, 52, 26, 102, 54, 38, - 26, 10, 6, 33, 45, 63, 14, 74, 64, 64, - 46, 46, 26, 22, 10, 0, 19, 4, 12, 14, - 34, 22, 36, 2, 30, 26, 42, 46, 52, 52, - 26, 102, 54, 38, 26, 10, 6, 33, 45, 63, - }, - - { - /* Context Tables for P, SP, B Slices :: cabac_init_idc = 2, qp = 26 */ - - 92, 12, 29, 92, 12, 29, 35, 5, 40, 22, - 2, 0, 46, 82, 58, 12, 16, 10, 29, 0, - 3, 5, 36, 31, 17, 42, 32, 47, 77, 105, - 23, 35, 13, 29, 0, 3, 39, 3, 58, 4, - 15, 29, 35, 47, 53, 53, 83, 1, 25, 41, - 15, 41, 43, 71, 8, 17, 15, 27, 50, 4, - 44, 0, 0, 0, 9, 57, 67, 6, 2, 5, - 36, 19, 61, 9, 0, 17, 40, 36, 11, 0, - 25, 20, 19, 9, 5, 67, 41, 47, 45, 36, - 7, 6, 5, 13, 45, 19, 29, 3, 23, 17, - 43, 34, 17, 10, 25, 31, 9, 19, 7, 6, - 8, 0, 18, 12, 21, 0, 1, 7, 4, 17, - 52, 7, 2, 48, 46, 62, 54, 40, 51, 0, - 3, 5, 7, 35, 9, 32, 5, 7, 30, 68, - 108, 80, 34, 51, 53, 4, 74, 80, 97, 11, - 12, 53, 28, 5, 0, 30, 66, 110, 90, 48, - 57, 45, 1, 20, 32, 55, 36, 42, 36, 34, - 38, 34, 20, 38, 34, 1, 12, 20, 8, 4, - 11, 12, 4, 1, 8, 2, 10, 10, 0, 49, - 1, 1, 11, 3, 25, 50, 70, 42, 28, 40, - 44, 46, 48, 32, 23, 47, 17, 13, 9, 89, - 5, 4, 47, 34, 6, 6, 2, 4, 9, 2, - 8, 35, 59, 29, 35, 33, 49, 25, 34, 32, - 20, 8, 2, 7, 17, 21, 31, 3, 58, 32, - 20, 6, 26, 2, 5, 19, 5, 3, 56, 30, - 20, 10, 22, 2, 9, 17, 29, 17, 60, 28, - 18, 8, 14, 9, 21, 27, 8, 70, 46, 30, - 16, 32, 8, 1, 9, 13, 124, 55, 45, 31, - 39, 39, 31, 27, 21, 21, 17, 11, 0, 27, - 27, 37, 41, 36, 39, 41, 27, 17, 15, 19, - 15, 15, 13, 11, 17, 35, 9, 9, 26, 11, - 27, 7, 9, 11, 5, 7, 9, 25, 9, 9, - 19, 17, 14, 51, 17, 26, 17, 1, 11, 9, - 1, 2, 3, 5, 1, 19, 19, 37, 98, 92, - 96, 82, 66, 74, 72, 64, 64, 58, 60, 60, - 36, 26, 0, 38, 36, 26, 1, 20, 18, 6, - 14, 1, 3, 13, 21, 29, 31, 42, 34, 40, - 20, 13, 2, 1, 27, 5, 21, 29, 61, 45, - 53, 65, 6, 14, 37, 2, 8, 11, 31, 25, - 27, 45, 25, 37, 37, 67, 47, 55, 75, 7, - 33, 49, 19, 4, 12, 16, 36, 24, 36, 4, - 32, 28, 44, 46, 54, 52, 26, 102, 50, 34, - 22, 6, 2, 39, 49, 65, 14, 76, 64, 64, - 48, 48, 26, 22, 10, 2, 19, 4, 12, 16, - 36, 24, 36, 4, 32, 28, 44, 46, 54, 52, - 26, 102, 50, 34, 22, 6, 2, 39, 49, 65, - }, - - { - /* Context Tables for P, SP, B Slices :: cabac_init_idc = 2, qp = 27 */ - - 90, 12, 31, 90, 12, 31, 31, 3, 42, 22, - 2, 1, 42, 80, 58, 14, 20, 8, 29, 4, - 3, 7, 38, 33, 19, 40, 30, 55, 81, 107, - 19, 31, 13, 29, 4, 3, 37, 1, 60, 4, - 13, 27, 33, 51, 55, 53, 85, 1, 25, 41, - 15, 43, 41, 71, 6, 17, 15, 25, 50, 4, - 44, 0, 0, 0, 7, 57, 67, 6, 2, 7, - 36, 17, 59, 5, 2, 15, 44, 40, 9, 2, - 21, 22, 17, 9, 1, 69, 41, 47, 45, 38, - 7, 8, 1, 13, 43, 17, 25, 3, 23, 17, - 43, 36, 19, 12, 25, 31, 7, 19, 5, 6, - 10, 2, 20, 12, 21, 0, 1, 7, 4, 17, - 52, 7, 2, 48, 46, 64, 56, 42, 51, 2, - 1, 7, 7, 35, 9, 34, 5, 5, 32, 70, - 108, 84, 36, 53, 55, 6, 74, 80, 97, 13, - 12, 53, 28, 7, 2, 32, 66, 110, 92, 50, - 59, 43, 3, 14, 26, 51, 36, 42, 36, 32, - 38, 32, 20, 36, 34, 1, 12, 20, 6, 4, - 13, 12, 2, 3, 8, 2, 10, 10, 1, 53, - 1, 3, 11, 5, 25, 44, 66, 38, 26, 36, - 40, 40, 44, 28, 27, 51, 19, 17, 13, 93, - 7, 0, 51, 30, 4, 4, 0, 0, 13, 1, - 4, 37, 59, 31, 37, 35, 45, 21, 38, 34, - 20, 8, 4, 7, 17, 19, 29, 1, 60, 34, - 22, 6, 28, 4, 3, 17, 1, 3, 58, 32, - 22, 10, 24, 2, 7, 15, 27, 17, 64, 30, - 18, 8, 14, 7, 21, 27, 8, 72, 46, 32, - 16, 34, 8, 1, 7, 13, 124, 51, 41, 27, - 35, 35, 29, 23, 19, 17, 13, 7, 4, 27, - 25, 37, 41, 42, 39, 43, 27, 17, 13, 19, - 15, 15, 13, 11, 17, 37, 9, 9, 26, 11, - 27, 7, 9, 11, 5, 7, 9, 27, 11, 9, - 19, 17, 16, 53, 17, 28, 19, 1, 11, 9, - 0, 2, 3, 3, 0, 19, 19, 41, 96, 90, - 94, 78, 62, 68, 68, 58, 60, 52, 54, 54, - 30, 20, 3, 32, 30, 18, 11, 16, 12, 2, - 10, 5, 7, 15, 23, 31, 31, 38, 30, 36, - 16, 17, 0, 3, 31, 9, 27, 33, 65, 49, - 57, 67, 4, 10, 41, 0, 4, 13, 35, 29, - 31, 47, 27, 39, 39, 65, 49, 59, 79, 9, - 37, 51, 17, 6, 14, 16, 38, 26, 38, 4, - 34, 30, 46, 48, 56, 54, 28, 100, 46, 30, - 18, 2, 1, 43, 53, 67, 16, 76, 66, 66, - 48, 50, 28, 24, 12, 2, 17, 6, 14, 16, - 38, 26, 38, 4, 34, 30, 46, 48, 56, 54, - 28, 100, 46, 30, 18, 2, 1, 43, 53, 67, - }, - - { - /* Context Tables for P, SP, B Slices :: cabac_init_idc = 2, qp = 28 */ - - 86, 12, 31, 86, 12, 31, 29, 0, 42, 22, - 0, 5, 40, 78, 60, 14, 24, 4, 29, 6, - 3, 7, 40, 35, 23, 36, 26, 61, 85, 109, - 15, 29, 13, 29, 6, 3, 37, 0, 60, 2, - 11, 25, 31, 53, 59, 55, 85, 1, 25, 39, - 15, 43, 41, 71, 6, 17, 15, 25, 52, 4, - 44, 0, 0, 0, 7, 59, 67, 8, 0, 7, - 34, 17, 57, 1, 4, 13, 46, 42, 9, 4, - 17, 24, 15, 7, 2, 71, 41, 47, 45, 38, - 9, 10, 2, 13, 41, 15, 21, 3, 23, 17, - 43, 36, 19, 12, 23, 31, 7, 19, 5, 6, - 10, 4, 20, 12, 21, 1, 1, 7, 4, 17, - 52, 7, 2, 50, 46, 64, 56, 42, 53, 2, - 0, 7, 7, 35, 9, 36, 5, 5, 34, 72, - 110, 86, 40, 53, 57, 6, 74, 80, 99, 13, - 14, 55, 30, 7, 2, 34, 66, 110, 92, 52, - 61, 39, 5, 8, 20, 49, 34, 42, 34, 30, - 36, 32, 18, 36, 32, 3, 10, 18, 6, 4, - 13, 10, 0, 5, 6, 0, 8, 8, 1, 55, - 3, 5, 11, 9, 27, 40, 62, 34, 22, 32, - 36, 32, 38, 26, 31, 57, 23, 21, 17, 95, - 11, 1, 55, 28, 2, 2, 1, 1, 17, 5, - 0, 41, 59, 33, 39, 39, 43, 19, 40, 34, - 20, 8, 6, 5, 15, 17, 25, 0, 62, 34, - 24, 8, 30, 6, 0, 15, 2, 1, 58, 32, - 22, 12, 26, 4, 7, 15, 25, 17, 66, 32, - 18, 8, 16, 7, 21, 25, 10, 72, 48, 32, - 16, 36, 10, 0, 7, 11, 124, 49, 39, 25, - 31, 33, 25, 21, 15, 15, 11, 3, 8, 25, - 23, 35, 39, 48, 39, 45, 27, 15, 13, 19, - 15, 15, 15, 9, 17, 39, 9, 9, 28, 11, - 27, 7, 9, 11, 7, 7, 9, 29, 13, 9, - 19, 17, 18, 55, 17, 28, 21, 1, 11, 9, - 0, 2, 5, 3, 2, 19, 19, 43, 94, 88, - 92, 74, 58, 64, 62, 52, 54, 46, 46, 48, - 22, 14, 7, 24, 22, 10, 21, 10, 8, 1, - 6, 11, 11, 19, 25, 33, 31, 32, 26, 32, - 12, 21, 3, 7, 35, 13, 31, 37, 69, 55, - 61, 69, 2, 8, 47, 3, 0, 17, 39, 31, - 33, 49, 29, 41, 39, 63, 51, 61, 81, 11, - 39, 53, 17, 6, 14, 18, 40, 26, 40, 4, - 36, 32, 48, 48, 58, 54, 30, 100, 42, 26, - 14, 1, 5, 47, 57, 71, 16, 78, 66, 68, - 50, 50, 28, 24, 12, 4, 17, 6, 14, 18, - 40, 26, 40, 4, 36, 32, 48, 48, 58, 54, - 30, 100, 42, 26, 14, 1, 5, 47, 57, 71, - }, - - { - /* Context Tables for P, SP, B Slices :: cabac_init_idc = 2, qp = 29 */ - - 84, 12, 31, 84, 12, 31, 25, 2, 42, 22, - 0, 9, 36, 76, 62, 14, 26, 0, 27, 10, - 5, 7, 42, 37, 25, 34, 22, 67, 91, 109, - 11, 27, 13, 27, 10, 5, 37, 2, 60, 2, - 11, 23, 27, 55, 61, 55, 85, 1, 23, 37, - 17, 43, 41, 71, 6, 15, 15, 23, 52, 4, - 44, 0, 0, 0, 5, 59, 67, 8, 1, 7, - 34, 15, 53, 4, 6, 11, 50, 46, 7, 6, - 13, 26, 13, 5, 8, 71, 43, 47, 47, 38, - 9, 12, 8, 11, 41, 15, 17, 3, 23, 17, - 41, 36, 19, 14, 21, 29, 5, 17, 5, 8, - 12, 6, 22, 12, 23, 1, 0, 7, 4, 17, - 54, 7, 2, 50, 48, 64, 56, 42, 53, 4, - 0, 9, 7, 33, 9, 38, 3, 3, 38, 76, - 112, 90, 44, 55, 59, 8, 76, 80, 101, 13, - 14, 55, 32, 7, 2, 38, 66, 110, 92, 56, - 63, 37, 7, 4, 14, 47, 34, 42, 34, 30, - 36, 32, 18, 36, 32, 5, 8, 18, 6, 4, - 13, 10, 0, 7, 6, 0, 8, 6, 3, 57, - 5, 5, 11, 11, 27, 36, 58, 32, 20, 30, - 32, 26, 34, 24, 35, 61, 25, 25, 21, 97, - 13, 3, 57, 26, 0, 0, 5, 5, 21, 9, - 1, 43, 59, 35, 41, 43, 39, 15, 42, 36, - 20, 8, 8, 3, 13, 17, 21, 4, 64, 36, - 24, 10, 34, 8, 2, 13, 8, 0, 60, 34, - 24, 12, 28, 6, 5, 13, 23, 15, 68, 34, - 18, 8, 18, 5, 19, 23, 12, 72, 50, 32, - 16, 38, 12, 2, 5, 9, 124, 47, 35, 21, - 29, 31, 23, 17, 11, 11, 7, 0, 14, 23, - 21, 33, 37, 54, 37, 47, 25, 13, 11, 19, - 15, 15, 15, 9, 19, 41, 9, 9, 30, 11, - 27, 7, 9, 9, 7, 9, 9, 31, 15, 11, - 19, 17, 20, 55, 19, 30, 21, 3, 11, 9, - 0, 0, 5, 3, 2, 19, 19, 47, 92, 86, - 90, 72, 52, 58, 56, 46, 50, 40, 40, 42, - 16, 10, 11, 16, 16, 2, 31, 4, 4, 3, - 2, 15, 15, 21, 27, 35, 31, 28, 20, 26, - 8, 25, 7, 9, 39, 17, 35, 41, 73, 59, - 63, 73, 0, 6, 51, 5, 1, 19, 43, 33, - 35, 51, 31, 43, 39, 61, 55, 63, 85, 15, - 41, 55, 17, 8, 16, 20, 42, 28, 40, 6, - 38, 34, 50, 50, 60, 56, 30, 98, 38, 22, - 10, 5, 9, 53, 61, 73, 18, 78, 68, 68, - 52, 52, 30, 26, 12, 6, 17, 8, 16, 20, - 42, 28, 40, 6, 38, 34, 50, 50, 60, 56, - 30, 98, 38, 22, 10, 5, 9, 53, 61, 73, - }, - - { - /* Context Tables for P, SP, B Slices :: cabac_init_idc = 2, qp = 30 */ - - 82, 12, 31, 82, 12, 31, 21, 6, 44, 22, - 1, 13, 34, 74, 62, 14, 30, 1, 27, 12, - 5, 9, 44, 39, 27, 32, 18, 75, 95, 111, - 7, 23, 13, 27, 12, 5, 35, 4, 62, 2, - 9, 21, 25, 57, 63, 55, 87, 1, 23, 35, - 17, 45, 41, 71, 6, 15, 15, 21, 54, 4, - 44, 0, 0, 0, 5, 59, 67, 10, 3, 7, - 32, 15, 51, 8, 8, 9, 52, 48, 5, 8, - 9, 28, 11, 3, 12, 73, 43, 47, 47, 40, - 9, 14, 12, 11, 39, 13, 13, 3, 23, 17, - 41, 38, 19, 14, 19, 29, 3, 17, 5, 8, - 12, 8, 22, 12, 23, 1, 0, 7, 4, 17, - 54, 7, 2, 52, 48, 66, 56, 44, 55, 4, - 2, 9, 7, 33, 9, 40, 3, 3, 40, 78, - 114, 92, 48, 55, 61, 8, 76, 80, 103, 13, - 16, 57, 32, 7, 2, 40, 66, 110, 92, 58, - 65, 33, 9, 1, 8, 43, 34, 42, 32, 28, - 34, 30, 16, 36, 30, 7, 6, 18, 6, 4, - 15, 8, 1, 9, 4, 0, 8, 4, 3, 59, - 5, 7, 11, 13, 29, 32, 54, 28, 16, 26, - 28, 20, 28, 22, 39, 65, 29, 29, 25, 101, - 15, 5, 61, 24, 1, 1, 7, 7, 25, 13, - 5, 47, 59, 37, 43, 45, 37, 13, 46, 36, - 20, 8, 10, 1, 11, 15, 17, 6, 66, 38, - 26, 10, 36, 10, 6, 11, 12, 0, 60, 34, - 24, 14, 30, 6, 5, 11, 21, 15, 72, 36, - 18, 8, 20, 5, 19, 21, 14, 74, 52, 34, - 16, 40, 12, 4, 5, 9, 124, 43, 33, 19, - 25, 29, 19, 15, 9, 9, 3, 4, 18, 23, - 19, 33, 35, 60, 37, 49, 25, 11, 9, 19, - 15, 15, 15, 7, 19, 43, 9, 9, 30, 11, - 27, 7, 9, 9, 9, 9, 9, 33, 17, 11, - 19, 17, 22, 57, 19, 32, 23, 3, 11, 9, - 2, 0, 7, 1, 4, 19, 19, 49, 90, 84, - 88, 68, 48, 54, 52, 40, 44, 34, 34, 36, - 10, 4, 15, 8, 8, 5, 41, 1, 0, 7, - 1, 21, 19, 23, 29, 37, 31, 24, 16, 22, - 4, 29, 11, 13, 43, 21, 39, 45, 77, 63, - 67, 75, 1, 4, 55, 9, 5, 23, 47, 37, - 39, 53, 33, 45, 39, 59, 57, 67, 87, 17, - 43, 57, 17, 8, 16, 20, 44, 30, 42, 6, - 40, 36, 52, 50, 62, 56, 32, 98, 34, 18, - 6, 9, 13, 57, 65, 75, 18, 80, 68, 70, - 52, 54, 30, 26, 14, 6, 17, 8, 16, 20, - 44, 30, 42, 6, 40, 36, 52, 50, 62, 56, - 32, 98, 34, 18, 6, 9, 13, 57, 65, 75, - }, - - { - /* Context Tables for P, SP, B Slices :: cabac_init_idc = 2, qp = 31 */ - - 80, 12, 31, 80, 12, 31, 17, 8, 44, 22, - 1, 17, 30, 72, 64, 14, 34, 5, 27, 16, - 5, 9, 46, 41, 29, 30, 14, 81, 99, 113, - 3, 21, 13, 27, 16, 5, 35, 6, 62, 2, - 7, 19, 23, 59, 65, 55, 87, 1, 23, 33, - 17, 45, 41, 71, 6, 15, 15, 19, 54, 4, - 44, 0, 0, 0, 3, 59, 67, 10, 5, 7, - 32, 13, 49, 12, 10, 7, 56, 52, 3, 10, - 5, 30, 9, 1, 16, 75, 43, 47, 47, 40, - 9, 16, 16, 11, 37, 11, 9, 3, 23, 17, - 41, 38, 19, 16, 17, 29, 1, 17, 5, 8, - 14, 10, 24, 12, 23, 1, 0, 7, 4, 17, - 54, 7, 2, 52, 48, 66, 56, 44, 55, 6, - 4, 11, 7, 33, 9, 42, 3, 1, 42, 80, - 116, 96, 52, 57, 63, 10, 76, 80, 105, 13, - 16, 57, 34, 7, 2, 42, 66, 110, 92, 60, - 67, 31, 11, 7, 2, 41, 34, 42, 32, 26, - 34, 30, 16, 36, 30, 9, 4, 18, 6, 4, - 15, 8, 3, 11, 4, 0, 8, 2, 5, 61, - 7, 9, 11, 15, 29, 28, 50, 24, 14, 22, - 24, 14, 24, 20, 43, 69, 31, 33, 29, 103, - 17, 7, 65, 22, 3, 3, 9, 11, 29, 17, - 9, 49, 59, 39, 45, 49, 33, 9, 48, 38, - 20, 8, 12, 0, 9, 13, 13, 8, 68, 40, - 28, 12, 38, 12, 8, 9, 16, 2, 62, 36, - 26, 14, 32, 8, 3, 9, 19, 15, 74, 38, - 18, 8, 22, 3, 19, 19, 16, 74, 54, 34, - 16, 42, 14, 6, 3, 7, 124, 41, 29, 15, - 21, 27, 17, 11, 5, 5, 0, 8, 22, 21, - 17, 31, 33, 66, 37, 51, 25, 9, 7, 19, - 15, 15, 15, 7, 19, 45, 9, 9, 32, 11, - 27, 7, 9, 9, 9, 9, 9, 35, 19, 11, - 19, 17, 24, 59, 19, 34, 25, 3, 11, 9, - 2, 0, 7, 1, 6, 19, 19, 53, 88, 82, - 86, 64, 44, 48, 46, 34, 40, 28, 28, 30, - 4, 1, 19, 0, 2, 13, 51, 7, 3, 11, - 5, 25, 23, 25, 31, 39, 31, 20, 12, 18, - 0, 33, 15, 15, 47, 25, 43, 49, 81, 67, - 71, 77, 3, 2, 59, 11, 9, 25, 51, 39, - 41, 55, 35, 47, 39, 57, 59, 69, 91, 19, - 45, 59, 17, 10, 18, 22, 46, 32, 44, 6, - 42, 38, 54, 52, 64, 58, 34, 96, 30, 14, - 2, 13, 17, 61, 69, 77, 20, 80, 70, 72, - 54, 56, 32, 28, 14, 8, 17, 10, 18, 22, - 46, 32, 44, 6, 42, 38, 54, 52, 64, 58, - 34, 96, 30, 14, 2, 13, 17, 61, 69, 77, - }, - - { - /* Context Tables for P, SP, B Slices :: cabac_init_idc = 2, qp = 32 */ - - 76, 10, 33, 76, 10, 33, 15, 10, 44, 22, - 3, 21, 26, 70, 64, 14, 36, 9, 27, 18, - 7, 11, 48, 43, 33, 26, 10, 89, 105, 115, - 0, 19, 13, 27, 18, 7, 35, 6, 62, 0, - 7, 19, 21, 63, 69, 57, 89, 3, 23, 33, - 19, 47, 41, 71, 4, 15, 15, 19, 54, 2, - 44, 0, 0, 0, 3, 61, 67, 10, 7, 9, - 30, 13, 47, 16, 12, 7, 58, 54, 3, 12, - 3, 30, 7, 1, 20, 77, 45, 49, 49, 40, - 11, 16, 20, 11, 37, 11, 7, 3, 23, 17, - 41, 38, 21, 16, 17, 29, 1, 17, 5, 8, - 14, 12, 24, 12, 25, 3, 0, 7, 2, 17, - 54, 7, 2, 52, 48, 66, 56, 44, 57, 6, - 4, 13, 7, 33, 11, 42, 3, 1, 44, 82, - 116, 98, 54, 59, 67, 10, 76, 80, 107, 15, - 16, 59, 34, 9, 2, 44, 66, 108, 92, 62, - 69, 29, 15, 13, 5, 39, 32, 42, 30, 24, - 32, 28, 14, 34, 28, 11, 2, 16, 4, 2, - 17, 6, 5, 13, 2, 1, 6, 0, 7, 65, - 9, 11, 11, 19, 31, 22, 44, 20, 10, 18, - 18, 6, 18, 16, 47, 75, 35, 39, 33, 107, - 21, 11, 69, 18, 5, 5, 13, 15, 33, 21, - 13, 53, 59, 41, 47, 53, 31, 7, 50, 38, - 20, 8, 12, 0, 9, 13, 11, 10, 68, 40, - 28, 12, 40, 14, 10, 9, 20, 2, 62, 36, - 26, 14, 32, 8, 3, 9, 17, 15, 76, 40, - 18, 6, 22, 3, 19, 19, 16, 74, 54, 34, - 16, 44, 14, 6, 3, 7, 124, 39, 27, 13, - 19, 25, 15, 9, 3, 3, 2, 10, 26, 21, - 17, 31, 33, 72, 37, 55, 25, 9, 7, 19, - 15, 15, 17, 7, 21, 47, 11, 9, 32, 13, - 27, 9, 9, 9, 11, 11, 11, 37, 21, 13, - 21, 17, 26, 61, 21, 34, 27, 5, 11, 11, - 2, 1, 9, 1, 6, 19, 19, 57, 84, 80, - 82, 60, 38, 42, 40, 28, 34, 22, 20, 24, - 3, 7, 23, 7, 5, 21, 63, 13, 9, 15, - 11, 31, 27, 29, 35, 41, 31, 14, 6, 12, - 3, 39, 19, 19, 53, 29, 49, 53, 87, 73, - 75, 81, 7, 1, 65, 15, 13, 29, 55, 43, - 45, 57, 37, 49, 41, 55, 63, 73, 95, 23, - 49, 63, 17, 10, 18, 22, 48, 32, 44, 6, - 44, 38, 56, 52, 64, 58, 34, 94, 26, 10, - 3, 19, 21, 67, 73, 81, 20, 80, 70, 72, - 54, 56, 32, 28, 14, 8, 17, 10, 18, 22, - 48, 32, 44, 6, 44, 38, 56, 52, 64, 58, - 34, 94, 26, 10, 3, 19, 21, 67, 73, 81, - }, - - { - /* Context Tables for P, SP, B Slices :: cabac_init_idc = 2, qp = 33 */ - - 74, 10, 33, 74, 10, 33, 11, 14, 46, 24, - 3, 23, 24, 70, 66, 16, 40, 11, 25, 22, - 7, 11, 52, 43, 35, 24, 8, 95, 109, 115, - 4, 15, 11, 25, 22, 7, 33, 8, 64, 0, - 5, 17, 17, 65, 71, 57, 89, 3, 21, 31, - 19, 47, 39, 69, 4, 13, 13, 17, 56, 2, - 44, 0, 0, 0, 1, 61, 67, 12, 7, 9, - 30, 11, 43, 22, 16, 5, 62, 58, 1, 16, - 0, 32, 3, 0, 26, 77, 45, 49, 49, 42, - 11, 18, 26, 9, 35, 9, 3, 3, 21, 17, - 39, 40, 21, 18, 15, 27, 0, 15, 3, 10, - 16, 14, 26, 14, 25, 3, 2, 5, 2, 15, - 56, 5, 2, 54, 50, 68, 58, 46, 57, 8, - 6, 13, 7, 31, 11, 44, 1, 0, 48, 86, - 118, 102, 58, 59, 69, 12, 78, 82, 107, 15, - 18, 59, 36, 9, 4, 48, 66, 108, 94, 66, - 71, 25, 17, 17, 11, 35, 32, 42, 30, 24, - 32, 28, 14, 34, 28, 11, 2, 16, 4, 2, - 17, 6, 5, 13, 2, 1, 6, 0, 7, 67, - 9, 11, 11, 21, 31, 18, 40, 18, 8, 16, - 14, 0, 14, 14, 49, 79, 37, 43, 35, 109, - 23, 13, 71, 16, 5, 5, 15, 17, 35, 23, - 15, 55, 59, 41, 47, 55, 27, 3, 54, 40, - 20, 8, 14, 2, 7, 11, 7, 14, 70, 42, - 30, 14, 44, 16, 14, 7, 26, 4, 64, 38, - 28, 16, 34, 10, 1, 7, 13, 13, 80, 42, - 20, 6, 24, 1, 17, 17, 18, 76, 56, 36, - 18, 46, 16, 8, 1, 5, 124, 35, 23, 9, - 15, 21, 11, 5, 0, 0, 6, 14, 32, 19, - 15, 29, 31, 80, 35, 57, 23, 7, 5, 17, - 15, 13, 17, 5, 21, 47, 11, 9, 34, 13, - 27, 9, 9, 7, 11, 11, 11, 37, 21, 13, - 21, 15, 30, 61, 21, 36, 27, 5, 11, 11, - 4, 1, 9, 0, 8, 17, 17, 59, 82, 78, - 80, 58, 34, 38, 36, 22, 30, 18, 14, 20, - 9, 11, 27, 13, 11, 27, 73, 17, 13, 17, - 15, 35, 29, 31, 37, 41, 31, 10, 2, 8, - 7, 43, 21, 21, 57, 31, 53, 55, 91, 77, - 77, 83, 9, 3, 69, 17, 15, 31, 57, 45, - 47, 59, 37, 49, 41, 53, 65, 75, 97, 25, - 51, 65, 15, 12, 20, 24, 52, 34, 46, 8, - 48, 40, 58, 54, 66, 60, 36, 94, 24, 8, - 7, 23, 23, 71, 75, 83, 22, 82, 72, 74, - 56, 58, 34, 30, 16, 10, 15, 12, 20, 24, - 52, 34, 46, 8, 48, 40, 58, 54, 66, 60, - 36, 94, 24, 8, 7, 23, 23, 71, 75, 83, - }, - - { - /* Context Tables for P, SP, B Slices :: cabac_init_idc = 2, qp = 34 */ - - 72, 10, 33, 72, 10, 33, 7, 16, 46, 24, - 3, 27, 20, 68, 68, 16, 44, 15, 25, 24, - 7, 11, 54, 45, 37, 22, 4, 101, 113, 117, - 8, 13, 11, 25, 24, 7, 33, 10, 64, 0, - 3, 15, 15, 67, 73, 57, 89, 3, 21, 29, - 19, 47, 39, 69, 4, 13, 13, 15, 56, 2, - 44, 0, 0, 0, 0, 61, 67, 12, 9, 9, - 30, 9, 41, 26, 18, 3, 66, 62, 0, 18, - 4, 34, 1, 2, 30, 79, 45, 49, 49, 42, - 11, 20, 30, 9, 33, 7, 0, 3, 21, 17, - 39, 40, 21, 18, 13, 27, 2, 15, 3, 10, - 16, 16, 28, 14, 25, 3, 2, 5, 2, 15, - 56, 5, 2, 54, 50, 68, 58, 46, 59, 10, - 8, 15, 7, 31, 11, 46, 1, 0, 50, 88, - 120, 106, 62, 61, 71, 12, 78, 82, 109, 15, - 18, 61, 38, 9, 4, 50, 66, 108, 94, 68, - 73, 23, 19, 23, 17, 33, 32, 42, 30, 22, - 30, 28, 14, 34, 26, 13, 0, 16, 4, 2, - 17, 4, 7, 15, 2, 1, 6, 1, 9, 69, - 11, 13, 11, 23, 33, 14, 36, 14, 4, 12, - 10, 5, 10, 12, 53, 83, 41, 47, 39, 111, - 25, 15, 75, 14, 7, 7, 17, 21, 39, 27, - 19, 59, 59, 43, 49, 59, 25, 1, 56, 42, - 20, 8, 16, 4, 5, 9, 3, 16, 72, 44, - 32, 16, 46, 18, 16, 5, 30, 6, 64, 38, - 28, 16, 36, 12, 0, 5, 11, 13, 82, 44, - 20, 6, 26, 0, 17, 15, 20, 76, 58, 36, - 18, 48, 18, 10, 0, 3, 124, 33, 19, 5, - 11, 19, 9, 1, 4, 2, 10, 18, 36, 17, - 13, 27, 29, 86, 35, 59, 23, 5, 3, 17, - 15, 13, 17, 5, 21, 49, 11, 9, 36, 13, - 27, 9, 9, 7, 11, 11, 11, 39, 23, 13, - 21, 15, 32, 63, 21, 38, 29, 5, 11, 11, - 4, 1, 9, 0, 10, 17, 17, 63, 80, 76, - 78, 54, 30, 32, 30, 16, 26, 12, 8, 14, - 15, 17, 31, 21, 19, 35, 83, 23, 17, 21, - 19, 39, 33, 33, 39, 43, 31, 6, 1, 4, - 11, 47, 25, 25, 61, 35, 57, 59, 95, 81, - 81, 85, 11, 5, 73, 21, 19, 35, 61, 47, - 49, 61, 39, 51, 41, 51, 67, 77, 101, 27, - 53, 67, 15, 12, 22, 26, 54, 36, 48, 8, - 50, 42, 60, 54, 68, 62, 38, 92, 20, 4, - 11, 27, 27, 75, 79, 85, 24, 82, 72, 76, - 58, 60, 34, 32, 16, 12, 15, 12, 22, 26, - 54, 36, 48, 8, 50, 42, 60, 54, 68, 62, - 38, 92, 20, 4, 11, 27, 27, 75, 79, 85, - }, - - { - /* Context Tables for P, SP, B Slices :: cabac_init_idc = 2, qp = 35 */ - - 70, 10, 33, 70, 10, 33, 3, 20, 48, 24, - 5, 31, 18, 66, 68, 16, 48, 17, 25, 28, - 7, 13, 56, 47, 39, 20, 0, 109, 117, 119, - 12, 9, 11, 25, 28, 7, 31, 12, 66, 0, - 1, 13, 13, 69, 75, 57, 91, 3, 21, 27, - 19, 49, 39, 69, 4, 13, 13, 13, 58, 2, - 44, 0, 0, 0, 0, 61, 67, 14, 11, 9, - 28, 9, 39, 30, 20, 1, 68, 64, 2, 20, - 8, 36, 0, 4, 34, 81, 45, 49, 49, 44, - 11, 22, 34, 9, 31, 5, 4, 3, 21, 17, - 39, 42, 21, 20, 11, 27, 4, 15, 3, 10, - 18, 18, 28, 14, 25, 3, 2, 5, 2, 15, - 56, 5, 2, 56, 50, 70, 58, 48, 59, 10, - 10, 15, 7, 31, 11, 48, 1, 2, 52, 90, - 122, 108, 66, 61, 73, 14, 78, 82, 111, 15, - 20, 61, 38, 9, 4, 52, 66, 108, 94, 70, - 75, 19, 21, 29, 23, 29, 32, 42, 28, 20, - 30, 26, 12, 34, 26, 15, 1, 16, 4, 2, - 19, 4, 9, 17, 0, 1, 6, 3, 9, 71, - 11, 15, 11, 25, 33, 10, 32, 10, 2, 8, - 6, 11, 4, 10, 57, 87, 43, 51, 43, 115, - 27, 17, 79, 12, 9, 9, 19, 23, 43, 31, - 23, 61, 59, 45, 51, 61, 21, 2, 60, 42, - 20, 8, 18, 6, 3, 7, 0, 18, 74, 46, - 34, 16, 48, 20, 20, 3, 34, 6, 66, 40, - 30, 18, 38, 12, 0, 3, 9, 13, 86, 46, - 20, 6, 28, 0, 17, 13, 22, 78, 60, 38, - 18, 50, 18, 12, 0, 3, 124, 29, 17, 3, - 7, 17, 5, 0, 6, 6, 14, 22, 40, 17, - 11, 27, 27, 92, 35, 61, 23, 3, 1, 17, - 15, 13, 17, 3, 21, 51, 11, 9, 36, 13, - 27, 9, 9, 7, 13, 11, 11, 41, 25, 13, - 21, 15, 34, 65, 21, 40, 31, 5, 11, 11, - 6, 1, 11, 2, 12, 17, 17, 65, 78, 74, - 76, 50, 26, 28, 26, 10, 20, 6, 2, 8, - 21, 23, 35, 29, 25, 43, 93, 29, 21, 25, - 23, 45, 37, 35, 41, 45, 31, 2, 5, 0, - 15, 51, 29, 27, 65, 39, 61, 63, 99, 85, - 85, 87, 13, 7, 77, 23, 23, 37, 65, 51, - 53, 63, 41, 53, 41, 49, 69, 81, 103, 29, - 55, 69, 15, 14, 22, 26, 56, 38, 50, 8, - 52, 44, 62, 56, 70, 62, 40, 92, 16, 0, - 15, 31, 31, 79, 83, 87, 24, 84, 74, 78, - 58, 62, 36, 32, 18, 12, 15, 14, 22, 26, - 56, 38, 50, 8, 52, 44, 62, 56, 70, 62, - 40, 92, 16, 0, 15, 31, 31, 79, 83, 87, - }, - - { - /* Context Tables for P, SP, B Slices :: cabac_init_idc = 2, qp = 36 */ - - 66, 10, 33, 66, 10, 33, 1, 22, 48, 24, - 5, 35, 14, 64, 70, 16, 50, 21, 25, 30, - 9, 13, 58, 49, 43, 16, 3, 115, 123, 121, - 16, 7, 11, 25, 30, 9, 31, 14, 66, 1, - 1, 11, 9, 71, 79, 59, 91, 3, 19, 25, - 21, 49, 39, 69, 4, 13, 13, 13, 58, 2, - 44, 0, 0, 0, 2, 63, 67, 14, 13, 9, - 28, 7, 37, 34, 22, 0, 72, 68, 2, 22, - 12, 38, 2, 6, 40, 81, 47, 49, 51, 44, - 13, 24, 40, 7, 31, 5, 8, 3, 21, 17, - 39, 42, 21, 20, 9, 27, 4, 13, 3, 10, - 18, 20, 30, 14, 27, 5, 2, 5, 2, 15, - 56, 5, 2, 56, 50, 70, 58, 48, 61, 12, - 10, 17, 7, 29, 11, 50, 0, 2, 56, 94, - 124, 112, 70, 63, 75, 14, 80, 82, 113, 15, - 20, 63, 40, 9, 4, 54, 66, 108, 94, 74, - 77, 17, 23, 35, 29, 27, 30, 42, 28, 20, - 28, 26, 12, 34, 24, 17, 3, 14, 4, 2, - 19, 2, 9, 19, 0, 3, 4, 5, 11, 73, - 13, 17, 11, 29, 35, 6, 28, 6, 1, 6, - 2, 19, 0, 8, 61, 93, 47, 55, 47, 117, - 31, 19, 81, 10, 11, 11, 23, 27, 47, 35, - 25, 65, 59, 47, 53, 65, 19, 4, 62, 44, - 20, 8, 20, 8, 1, 7, 4, 22, 76, 46, - 34, 18, 52, 22, 22, 1, 40, 8, 66, 40, - 30, 18, 40, 14, 2, 3, 7, 13, 88, 48, - 20, 6, 30, 2, 17, 11, 24, 78, 62, 38, - 18, 52, 20, 14, 2, 1, 124, 27, 13, 0, - 5, 15, 3, 4, 10, 8, 16, 26, 46, 15, - 9, 25, 25, 98, 33, 63, 21, 1, 1, 17, - 15, 13, 19, 3, 23, 53, 11, 9, 38, 13, - 27, 9, 9, 5, 13, 13, 11, 43, 27, 15, - 21, 15, 36, 67, 23, 40, 31, 7, 11, 11, - 6, 3, 11, 2, 12, 17, 17, 69, 76, 72, - 74, 48, 20, 22, 20, 4, 16, 0, 5, 2, - 29, 27, 39, 37, 33, 51, 103, 35, 25, 29, - 27, 49, 41, 39, 43, 47, 31, 3, 11, 5, - 19, 55, 33, 31, 69, 43, 65, 67, 103, 91, - 87, 91, 15, 9, 83, 27, 25, 41, 69, 53, - 55, 65, 43, 55, 41, 47, 73, 83, 107, 33, - 57, 71, 15, 14, 24, 28, 58, 38, 50, 10, - 54, 46, 64, 56, 72, 64, 40, 90, 12, 3, - 19, 35, 35, 85, 87, 91, 26, 84, 74, 78, - 60, 62, 36, 34, 18, 14, 15, 14, 24, 28, - 58, 38, 50, 10, 54, 46, 64, 56, 72, 64, - 40, 90, 12, 3, 19, 35, 35, 85, 87, 91, - }, - - { - /* Context Tables for P, SP, B Slices :: cabac_init_idc = 2, qp = 37 */ - - 64, 10, 33, 64, 10, 33, 2, 26, 48, 24, - 7, 39, 12, 62, 72, 16, 54, 25, 23, 34, - 9, 13, 60, 51, 45, 14, 7, 121, 125, 121, - 20, 5, 11, 23, 34, 9, 31, 16, 66, 1, - 0, 9, 7, 73, 81, 59, 91, 3, 19, 23, - 21, 49, 39, 69, 4, 11, 13, 11, 60, 2, - 44, 0, 0, 0, 2, 63, 67, 16, 15, 9, - 26, 7, 33, 40, 24, 2, 74, 70, 4, 24, - 16, 40, 4, 8, 44, 83, 47, 49, 51, 44, - 13, 26, 44, 7, 29, 3, 12, 3, 21, 17, - 37, 42, 21, 22, 7, 25, 6, 13, 3, 12, - 20, 22, 30, 14, 27, 5, 4, 5, 2, 15, - 58, 5, 2, 58, 52, 70, 58, 48, 61, 12, - 12, 17, 7, 29, 11, 52, 0, 4, 58, 96, - 124, 114, 74, 63, 77, 16, 80, 82, 115, 15, - 22, 63, 42, 9, 4, 58, 66, 108, 94, 76, - 79, 13, 25, 39, 35, 25, 30, 42, 26, 18, - 28, 26, 10, 34, 24, 19, 5, 14, 4, 2, - 19, 2, 11, 21, 1, 3, 4, 7, 11, 75, - 15, 17, 11, 31, 35, 2, 24, 4, 3, 2, - 1, 25, 5, 6, 65, 97, 49, 59, 51, 119, - 33, 21, 85, 8, 13, 13, 25, 29, 51, 39, - 29, 67, 59, 49, 55, 69, 15, 8, 64, 44, - 20, 8, 22, 10, 0, 5, 8, 24, 78, 48, - 36, 20, 54, 24, 26, 0, 44, 10, 68, 42, - 32, 20, 42, 16, 2, 1, 5, 11, 90, 50, - 20, 6, 32, 2, 15, 9, 26, 78, 64, 38, - 18, 54, 22, 16, 2, 0, 124, 25, 11, 2, - 1, 13, 0, 6, 14, 12, 20, 30, 50, 13, - 7, 23, 23, 104, 33, 65, 21, 0, 0, 17, - 15, 13, 19, 1, 23, 55, 11, 9, 40, 13, - 27, 9, 9, 5, 15, 13, 11, 45, 29, 15, - 21, 15, 38, 67, 23, 42, 33, 7, 11, 11, - 6, 3, 13, 2, 14, 17, 17, 71, 74, 70, - 72, 44, 16, 18, 14, 1, 10, 5, 11, 3, - 35, 33, 43, 45, 39, 59, 113, 41, 29, 31, - 31, 55, 45, 41, 45, 49, 31, 7, 15, 9, - 23, 59, 37, 33, 73, 47, 69, 71, 107, 95, - 91, 93, 17, 11, 87, 29, 29, 43, 73, 55, - 57, 67, 45, 57, 41, 45, 75, 85, 109, 35, - 59, 73, 15, 16, 24, 30, 60, 40, 52, 10, - 56, 48, 66, 58, 74, 64, 42, 90, 8, 7, - 23, 39, 39, 89, 91, 93, 26, 86, 76, 80, - 62, 64, 38, 34, 18, 16, 15, 16, 24, 30, - 60, 40, 52, 10, 56, 48, 66, 58, 74, 64, - 42, 90, 8, 7, 23, 39, 39, 89, 91, 93, - }, - - { - /* Context Tables for P, SP, B Slices :: cabac_init_idc = 2, qp = 38 */ - - 62, 10, 35, 62, 10, 35, 6, 28, 50, 24, - 7, 41, 8, 60, 72, 18, 58, 27, 23, 36, - 9, 15, 62, 53, 47, 12, 9, 125, 125, 123, - 24, 1, 11, 23, 36, 9, 29, 18, 68, 1, - 2, 7, 5, 77, 83, 59, 93, 3, 19, 23, - 21, 51, 37, 69, 2, 11, 13, 9, 60, 2, - 44, 0, 0, 0, 4, 63, 67, 16, 15, 11, - 26, 5, 31, 44, 26, 4, 78, 74, 6, 26, - 20, 42, 6, 8, 48, 85, 47, 49, 51, 46, - 13, 28, 48, 7, 27, 1, 16, 3, 21, 17, - 37, 44, 23, 22, 7, 25, 8, 13, 1, 12, - 20, 24, 32, 14, 27, 5, 4, 5, 2, 15, - 58, 5, 2, 58, 52, 72, 60, 50, 63, 14, - 14, 19, 7, 29, 11, 54, 0, 4, 60, 98, - 124, 118, 76, 65, 79, 16, 80, 82, 115, 17, - 22, 65, 42, 11, 6, 60, 66, 108, 96, 78, - 81, 11, 27, 45, 41, 21, 30, 42, 26, 16, - 26, 24, 10, 32, 22, 19, 5, 14, 2, 2, - 21, 0, 13, 23, 1, 3, 4, 7, 13, 79, - 15, 19, 11, 33, 37, 3, 20, 0, 7, 1, - 5, 31, 9, 2, 69, 101, 53, 63, 55, 123, - 35, 25, 89, 4, 15, 15, 27, 33, 55, 43, - 33, 71, 59, 51, 57, 71, 13, 10, 68, 46, - 20, 8, 24, 10, 0, 3, 10, 26, 80, 50, - 38, 20, 56, 26, 28, 2, 48, 10, 68, 42, - 32, 20, 44, 16, 4, 0, 3, 11, 94, 52, - 20, 6, 32, 4, 15, 9, 26, 80, 64, 40, - 18, 56, 22, 16, 4, 0, 124, 21, 7, 6, - 2, 9, 2, 10, 16, 14, 24, 34, 54, 13, - 5, 23, 23, 110, 33, 67, 21, 0, 2, 17, - 15, 13, 19, 1, 23, 57, 11, 9, 40, 13, - 27, 9, 9, 5, 15, 13, 11, 47, 31, 15, - 21, 15, 40, 69, 23, 44, 35, 7, 11, 11, - 8, 3, 13, 4, 16, 17, 17, 75, 72, 68, - 70, 40, 12, 12, 10, 7, 6, 11, 17, 9, - 41, 39, 47, 51, 47, 67, 123, 45, 35, 35, - 35, 59, 49, 43, 47, 51, 31, 11, 19, 13, - 27, 63, 39, 37, 77, 51, 75, 75, 111, 99, - 95, 95, 19, 15, 91, 33, 33, 47, 77, 59, - 61, 69, 47, 59, 43, 43, 77, 89, 113, 37, - 63, 75, 13, 16, 26, 30, 62, 42, 54, 10, - 58, 50, 68, 58, 76, 66, 44, 88, 4, 11, - 27, 43, 43, 93, 95, 95, 28, 86, 76, 82, - 62, 66, 38, 36, 20, 16, 13, 16, 26, 30, - 62, 42, 54, 10, 58, 50, 68, 58, 76, 66, - 44, 88, 4, 11, 27, 43, 43, 93, 95, 95, - }, - - { - /* Context Tables for P, SP, B Slices :: cabac_init_idc = 2, qp = 39 */ - - 60, 10, 35, 60, 10, 35, 10, 32, 50, 24, - 9, 45, 6, 58, 74, 18, 60, 31, 23, 40, - 11, 15, 64, 55, 49, 10, 13, 125, 125, 125, - 28, 0, 11, 23, 40, 11, 29, 20, 68, 1, - 2, 5, 1, 79, 85, 59, 93, 3, 17, 21, - 23, 51, 37, 69, 2, 11, 13, 7, 62, 2, - 44, 0, 0, 0, 4, 63, 67, 18, 17, 11, - 24, 5, 29, 48, 28, 6, 80, 76, 8, 28, - 24, 44, 8, 10, 54, 85, 49, 49, 53, 46, - 13, 30, 54, 5, 27, 1, 20, 3, 21, 17, - 37, 44, 23, 24, 5, 25, 10, 11, 1, 12, - 22, 26, 32, 14, 29, 5, 4, 5, 2, 15, - 58, 5, 2, 60, 52, 72, 60, 50, 63, 14, - 14, 19, 7, 27, 11, 56, 2, 6, 64, 102, - 124, 120, 80, 65, 81, 18, 82, 82, 117, 17, - 24, 65, 44, 11, 6, 62, 66, 108, 96, 82, - 83, 7, 29, 51, 47, 19, 30, 42, 24, 16, - 26, 24, 8, 32, 22, 21, 7, 14, 2, 2, - 21, 0, 13, 25, 3, 3, 4, 9, 13, 81, - 17, 21, 11, 35, 37, 7, 16, 3, 9, 3, - 9, 37, 15, 0, 73, 105, 55, 67, 59, 125, - 37, 27, 91, 2, 17, 17, 31, 35, 59, 47, - 35, 73, 59, 53, 59, 75, 9, 14, 70, 46, - 20, 8, 26, 12, 2, 3, 14, 30, 82, 52, - 38, 22, 60, 28, 32, 4, 54, 12, 70, 44, - 34, 22, 46, 18, 4, 2, 1, 11, 96, 54, - 20, 6, 34, 4, 15, 7, 28, 80, 66, 40, - 18, 58, 24, 18, 4, 2, 124, 19, 5, 8, - 4, 7, 6, 12, 20, 18, 28, 38, 60, 11, - 3, 21, 21, 116, 31, 69, 19, 2, 4, 17, - 15, 13, 19, 0, 25, 59, 11, 9, 42, 13, - 27, 9, 9, 3, 17, 15, 11, 49, 33, 17, - 21, 15, 42, 71, 25, 46, 35, 9, 11, 11, - 8, 5, 15, 4, 16, 17, 17, 77, 70, 66, - 68, 38, 6, 8, 4, 13, 0, 17, 23, 15, - 47, 43, 51, 59, 53, 75, 125, 51, 39, 39, - 39, 65, 53, 45, 49, 53, 31, 15, 25, 19, - 31, 67, 43, 39, 81, 55, 79, 79, 115, 103, - 97, 99, 21, 17, 95, 35, 35, 49, 81, 61, - 63, 71, 49, 61, 43, 41, 81, 91, 115, 41, - 65, 77, 13, 18, 26, 32, 64, 44, 54, 12, - 60, 52, 70, 60, 78, 66, 44, 88, 0, 15, - 31, 47, 47, 99, 99, 97, 28, 88, 78, 82, - 64, 68, 40, 36, 20, 18, 13, 18, 26, 32, - 64, 44, 54, 12, 60, 52, 70, 60, 78, 66, - 44, 88, 0, 15, 31, 47, 47, 99, 99, 97, - }, - - { - /* Context Tables for P, SP, B Slices :: cabac_init_idc = 2, qp = 40 */ - - 56, 8, 35, 56, 8, 35, 12, 34, 50, 24, - 9, 49, 2, 56, 74, 18, 64, 35, 23, 42, - 11, 17, 66, 57, 53, 6, 17, 125, 125, 125, - 32, 2, 11, 23, 42, 11, 29, 20, 68, 3, - 4, 3, 0, 81, 89, 61, 95, 3, 17, 19, - 23, 53, 37, 69, 2, 11, 13, 7, 62, 2, - 44, 0, 0, 0, 6, 65, 67, 18, 19, 11, - 24, 3, 27, 52, 30, 6, 84, 80, 8, 30, - 28, 44, 10, 12, 58, 87, 49, 51, 53, 46, - 15, 30, 58, 5, 25, 0, 22, 3, 21, 17, - 37, 44, 23, 24, 3, 25, 10, 11, 1, 12, - 22, 28, 34, 14, 29, 7, 4, 5, 0, 15, - 58, 5, 2, 60, 52, 72, 60, 50, 65, 16, - 16, 21, 7, 27, 11, 58, 2, 6, 66, 104, - 124, 124, 84, 67, 83, 18, 82, 82, 119, 17, - 24, 67, 44, 11, 6, 64, 66, 108, 96, 84, - 85, 5, 31, 57, 55, 17, 28, 42, 24, 14, - 24, 22, 8, 32, 20, 23, 9, 12, 2, 0, - 23, 1, 15, 27, 3, 5, 2, 11, 15, 83, - 19, 23, 11, 39, 39, 11, 12, 7, 13, 7, - 15, 45, 19, 1, 77, 111, 59, 73, 63, 125, - 41, 29, 95, 0, 19, 19, 33, 39, 63, 51, - 39, 77, 59, 55, 61, 79, 7, 16, 72, 48, - 20, 8, 26, 14, 4, 1, 18, 32, 82, 52, - 40, 22, 62, 30, 34, 6, 58, 12, 70, 44, - 34, 22, 46, 18, 6, 2, 0, 11, 98, 56, - 20, 6, 36, 6, 15, 5, 30, 80, 68, 40, - 18, 60, 24, 20, 6, 2, 124, 17, 1, 12, - 8, 5, 8, 16, 22, 20, 30, 42, 64, 11, - 1, 21, 19, 122, 31, 71, 19, 4, 4, 17, - 15, 13, 21, 0, 25, 61, 11, 9, 42, 13, - 27, 11, 9, 3, 17, 15, 13, 51, 35, 17, - 23, 15, 44, 73, 25, 46, 37, 9, 11, 13, - 8, 5, 15, 4, 18, 17, 17, 81, 68, 64, - 66, 34, 2, 2, 1, 19, 3, 23, 31, 21, - 55, 49, 55, 67, 61, 83, 125, 57, 43, 43, - 45, 69, 57, 49, 53, 55, 31, 21, 29, 23, - 35, 73, 47, 43, 87, 59, 83, 83, 119, 109, - 101, 101, 25, 19, 101, 39, 39, 53, 85, 65, - 67, 73, 51, 63, 43, 39, 83, 95, 119, 43, - 67, 79, 13, 18, 28, 32, 66, 44, 56, 12, - 62, 52, 72, 60, 78, 68, 46, 86, 3, 19, - 35, 51, 51, 103, 103, 101, 30, 88, 78, 84, - 64, 68, 40, 38, 20, 18, 13, 18, 28, 32, - 66, 44, 56, 12, 62, 52, 72, 60, 78, 68, - 46, 86, 3, 19, 35, 51, 51, 103, 103, 101, - }, - - { - /* Context Tables for P, SP, B Slices :: cabac_init_idc = 2, qp = 41 */ - - 54, 8, 35, 54, 8, 35, 16, 36, 52, 24, - 9, 53, 1, 56, 76, 18, 68, 37, 21, 46, - 11, 17, 68, 57, 55, 4, 21, 125, 125, 125, - 36, 6, 9, 21, 46, 11, 27, 22, 70, 3, - 6, 1, 2, 83, 91, 61, 95, 3, 17, 17, - 23, 53, 37, 69, 2, 9, 11, 5, 62, 2, - 44, 0, 0, 0, 8, 65, 67, 18, 21, 11, - 24, 1, 23, 58, 32, 8, 88, 84, 10, 32, - 32, 46, 14, 14, 62, 89, 49, 51, 53, 48, - 15, 32, 62, 5, 23, 2, 26, 3, 19, 17, - 35, 46, 23, 26, 1, 23, 12, 11, 1, 14, - 24, 30, 36, 14, 29, 7, 6, 3, 0, 15, - 60, 5, 2, 60, 54, 74, 60, 52, 65, 18, - 18, 23, 7, 27, 11, 60, 2, 8, 68, 106, - 124, 124, 88, 69, 85, 20, 82, 84, 121, 17, - 24, 67, 46, 11, 6, 68, 66, 108, 96, 86, - 87, 3, 33, 61, 61, 13, 28, 42, 24, 12, - 24, 22, 8, 32, 20, 25, 11, 12, 2, 0, - 23, 1, 17, 27, 3, 5, 2, 13, 17, 85, - 19, 23, 11, 41, 39, 15, 8, 9, 15, 11, - 19, 51, 23, 3, 81, 115, 61, 77, 65, 125, - 43, 31, 99, 1, 21, 21, 35, 43, 65, 55, - 43, 79, 59, 55, 63, 81, 3, 20, 76, 50, - 20, 8, 28, 16, 6, 0, 22, 34, 84, 54, - 42, 24, 64, 32, 36, 8, 62, 14, 72, 46, - 36, 22, 48, 20, 8, 4, 4, 9, 102, 58, - 22, 6, 38, 8, 13, 3, 32, 82, 70, 42, - 20, 62, 26, 22, 8, 4, 124, 13, 2, 16, - 12, 3, 10, 20, 26, 24, 34, 46, 68, 9, - 0, 19, 17, 124, 31, 73, 19, 6, 6, 15, - 15, 13, 21, 0, 25, 63, 11, 9, 44, 13, - 27, 11, 9, 3, 17, 15, 13, 51, 37, 17, - 23, 13, 48, 73, 25, 48, 39, 9, 11, 13, - 10, 5, 15, 6, 20, 15, 15, 85, 66, 62, - 64, 30, 1, 3, 5, 25, 7, 27, 37, 25, - 61, 55, 59, 75, 67, 89, 125, 63, 47, 45, - 49, 73, 59, 51, 55, 57, 31, 25, 33, 27, - 39, 77, 51, 45, 91, 63, 87, 87, 123, 113, - 105, 103, 27, 21, 105, 41, 43, 55, 89, 67, - 69, 75, 53, 63, 43, 37, 85, 97, 123, 45, - 69, 81, 13, 20, 30, 34, 70, 46, 58, 12, - 64, 54, 74, 62, 80, 70, 48, 84, 5, 23, - 39, 55, 55, 107, 107, 103, 32, 88, 80, 86, - 66, 70, 42, 40, 22, 20, 13, 20, 30, 34, - 70, 46, 58, 12, 64, 54, 74, 62, 80, 70, - 48, 84, 5, 23, 39, 55, 55, 107, 107, 103, - }, - - { - /* Context Tables for P, SP, B Slices :: cabac_init_idc = 2, qp = 42 */ - - 52, 8, 35, 52, 8, 35, 20, 40, 52, 24, - 11, 57, 3, 54, 78, 18, 70, 41, 21, 48, - 13, 17, 70, 59, 57, 2, 25, 125, 125, 125, - 40, 8, 9, 21, 48, 13, 27, 24, 70, 3, - 6, 0, 6, 85, 93, 61, 95, 3, 15, 15, - 25, 53, 37, 69, 2, 9, 11, 3, 64, 2, - 44, 0, 0, 0, 8, 65, 67, 20, 23, 11, - 22, 1, 21, 62, 34, 10, 90, 86, 12, 34, - 36, 48, 16, 16, 68, 89, 51, 51, 55, 48, - 15, 34, 68, 3, 23, 2, 30, 3, 19, 17, - 35, 46, 23, 26, 0, 23, 14, 9, 1, 14, - 24, 32, 36, 14, 31, 7, 6, 3, 0, 15, - 60, 5, 2, 62, 54, 74, 60, 52, 67, 18, - 18, 23, 7, 25, 11, 62, 4, 8, 72, 110, - 124, 124, 92, 69, 87, 20, 84, 84, 123, 17, - 26, 69, 48, 11, 6, 70, 66, 108, 96, 90, - 89, 0, 35, 67, 67, 11, 28, 42, 22, 12, - 22, 22, 6, 32, 18, 27, 13, 12, 2, 0, - 23, 3, 17, 29, 5, 5, 2, 15, 17, 87, - 21, 25, 11, 43, 41, 19, 4, 13, 19, 13, - 23, 57, 29, 5, 85, 119, 65, 81, 69, 125, - 45, 33, 101, 3, 23, 23, 39, 45, 69, 59, - 45, 83, 59, 57, 65, 85, 1, 22, 78, 50, - 20, 8, 30, 18, 8, 0, 26, 38, 86, 56, - 42, 26, 68, 34, 40, 10, 68, 16, 72, 46, - 36, 24, 50, 22, 8, 6, 6, 9, 104, 60, - 22, 6, 40, 8, 13, 1, 34, 82, 72, 42, - 20, 64, 28, 24, 8, 6, 124, 11, 4, 18, - 14, 1, 14, 22, 30, 26, 38, 50, 74, 7, - 2, 17, 15, 124, 29, 75, 17, 8, 8, 15, - 15, 13, 21, 2, 27, 65, 11, 9, 46, 13, - 27, 11, 9, 1, 19, 17, 13, 53, 39, 19, - 23, 13, 50, 75, 27, 50, 39, 11, 11, 13, - 10, 7, 17, 6, 20, 15, 15, 87, 64, 60, - 62, 28, 7, 7, 11, 31, 13, 33, 43, 31, - 67, 59, 63, 83, 75, 97, 125, 69, 51, 49, - 53, 79, 63, 53, 57, 59, 31, 29, 39, 33, - 43, 81, 55, 49, 95, 67, 91, 91, 125, 117, - 107, 107, 29, 23, 109, 45, 45, 59, 93, 69, - 71, 77, 55, 65, 43, 35, 89, 99, 125, 49, - 71, 83, 13, 20, 30, 36, 72, 48, 58, 14, - 66, 56, 76, 62, 82, 70, 48, 84, 9, 27, - 43, 59, 59, 113, 111, 105, 32, 90, 80, 86, - 68, 72, 42, 40, 22, 22, 13, 20, 30, 36, - 72, 48, 58, 14, 66, 56, 76, 62, 82, 70, - 48, 84, 9, 27, 43, 59, 59, 113, 111, 105, - }, - - { - /* Context Tables for P, SP, B Slices :: cabac_init_idc = 2, qp = 43 */ - - 50, 8, 37, 50, 8, 37, 24, 42, 54, 24, - 11, 59, 7, 52, 78, 20, 74, 43, 21, 52, - 13, 19, 72, 61, 59, 0, 27, 125, 125, 125, - 44, 12, 9, 21, 52, 13, 25, 26, 72, 3, - 8, 2, 8, 89, 95, 61, 97, 3, 15, 15, - 25, 55, 35, 69, 0, 9, 11, 1, 64, 2, - 44, 0, 0, 0, 10, 65, 67, 20, 23, 13, - 22, 0, 19, 66, 36, 12, 94, 90, 14, 36, - 40, 50, 18, 16, 72, 91, 51, 51, 55, 50, - 15, 36, 72, 3, 21, 4, 34, 3, 19, 17, - 35, 48, 25, 28, 0, 23, 16, 9, 0, 14, - 26, 34, 38, 14, 31, 7, 6, 3, 0, 15, - 60, 5, 2, 62, 54, 76, 62, 54, 67, 20, - 20, 25, 7, 25, 11, 64, 4, 10, 74, 112, - 124, 124, 94, 71, 89, 22, 84, 84, 123, 19, - 26, 69, 48, 13, 8, 72, 66, 108, 98, 92, - 91, 2, 37, 73, 73, 7, 28, 42, 22, 10, - 22, 20, 6, 30, 18, 27, 13, 12, 0, 0, - 25, 3, 19, 31, 5, 5, 2, 15, 19, 91, - 21, 27, 11, 45, 41, 25, 0, 17, 21, 17, - 27, 63, 33, 9, 89, 123, 67, 85, 73, 125, - 47, 37, 105, 7, 25, 25, 41, 49, 73, 63, - 49, 85, 59, 59, 67, 87, 2, 26, 82, 52, - 20, 8, 32, 18, 8, 2, 28, 40, 88, 58, - 44, 26, 70, 36, 42, 12, 72, 16, 74, 48, - 38, 24, 52, 22, 10, 8, 8, 9, 108, 62, - 22, 6, 40, 10, 13, 1, 34, 84, 72, 44, - 20, 66, 28, 24, 10, 6, 124, 7, 8, 22, - 18, 2, 16, 26, 32, 30, 42, 54, 78, 7, - 4, 17, 15, 124, 29, 77, 17, 8, 10, 15, - 15, 13, 21, 2, 27, 67, 11, 9, 46, 13, - 27, 11, 9, 1, 19, 17, 13, 55, 41, 19, - 23, 13, 52, 77, 27, 52, 41, 11, 11, 13, - 12, 7, 17, 8, 22, 15, 15, 91, 62, 58, - 60, 24, 11, 13, 15, 37, 17, 39, 49, 37, - 73, 65, 67, 89, 81, 105, 125, 73, 57, 53, - 57, 83, 67, 55, 59, 61, 31, 33, 43, 37, - 47, 85, 57, 51, 99, 71, 97, 95, 125, 121, - 111, 109, 31, 27, 113, 47, 49, 61, 97, 73, - 75, 79, 57, 67, 45, 33, 91, 103, 125, 51, - 75, 85, 11, 22, 32, 36, 74, 50, 60, 14, - 68, 58, 78, 64, 84, 72, 50, 82, 13, 31, - 47, 63, 63, 117, 115, 107, 34, 90, 82, 88, - 68, 74, 44, 42, 24, 22, 11, 22, 32, 36, - 74, 50, 60, 14, 68, 58, 78, 64, 84, 72, - 50, 82, 13, 31, 47, 63, 63, 117, 115, 107, - }, - - { - /* Context Tables for P, SP, B Slices :: cabac_init_idc = 2, qp = 44 */ - - 46, 8, 37, 46, 8, 37, 26, 46, 54, 24, - 13, 63, 9, 50, 80, 20, 78, 47, 21, 54, - 13, 19, 74, 63, 63, 3, 31, 125, 125, 125, - 48, 14, 9, 21, 54, 13, 25, 28, 72, 5, - 10, 4, 10, 91, 99, 63, 97, 3, 15, 13, - 25, 55, 35, 69, 0, 9, 11, 1, 66, 2, - 44, 0, 0, 0, 10, 67, 67, 22, 25, 13, - 20, 0, 17, 70, 38, 14, 96, 92, 14, 38, - 44, 52, 20, 18, 76, 93, 51, 51, 55, 50, - 17, 38, 76, 3, 19, 6, 38, 3, 19, 17, - 35, 48, 25, 28, 2, 23, 16, 9, 0, 14, - 26, 36, 38, 14, 31, 9, 6, 3, 0, 15, - 60, 5, 2, 64, 54, 76, 62, 54, 69, 20, - 22, 25, 7, 25, 11, 66, 4, 10, 76, 114, - 124, 124, 98, 71, 91, 22, 84, 84, 125, 19, - 28, 71, 50, 13, 8, 74, 66, 108, 98, 94, - 93, 6, 39, 79, 79, 5, 26, 42, 20, 8, - 20, 20, 4, 30, 16, 29, 15, 10, 0, 0, - 25, 5, 21, 33, 7, 7, 0, 17, 19, 93, - 23, 29, 11, 49, 43, 29, 3, 21, 25, 21, - 31, 71, 39, 11, 93, 125, 71, 89, 77, 125, - 51, 39, 109, 9, 27, 27, 43, 51, 77, 67, - 53, 89, 59, 61, 69, 91, 4, 28, 84, 52, - 20, 8, 34, 20, 10, 4, 32, 42, 90, 58, - 46, 28, 72, 38, 46, 14, 76, 18, 74, 48, - 38, 26, 54, 24, 10, 8, 10, 9, 110, 64, - 22, 6, 42, 10, 13, 0, 36, 84, 74, 44, - 20, 68, 30, 26, 10, 8, 124, 5, 10, 24, - 22, 4, 20, 28, 36, 32, 44, 58, 82, 5, - 6, 15, 13, 124, 29, 79, 17, 10, 10, 15, - 15, 13, 23, 4, 27, 69, 11, 9, 48, 13, - 27, 11, 9, 1, 21, 17, 13, 57, 43, 19, - 23, 13, 54, 79, 27, 52, 43, 11, 11, 13, - 12, 7, 19, 8, 24, 15, 15, 93, 60, 56, - 58, 20, 15, 17, 21, 43, 23, 45, 57, 43, - 81, 71, 71, 97, 89, 113, 125, 79, 61, 57, - 61, 89, 71, 59, 61, 63, 31, 39, 47, 41, - 51, 89, 61, 55, 103, 75, 101, 99, 125, 125, - 115, 111, 33, 29, 119, 51, 53, 65, 101, 75, - 77, 81, 59, 69, 45, 31, 93, 105, 125, 53, - 77, 87, 11, 22, 32, 38, 76, 50, 62, 14, - 70, 60, 80, 64, 86, 72, 52, 82, 17, 35, - 51, 67, 67, 121, 119, 111, 34, 92, 82, 90, - 70, 74, 44, 42, 24, 24, 11, 22, 32, 38, - 76, 50, 62, 14, 70, 60, 80, 64, 86, 72, - 52, 82, 17, 35, 51, 67, 67, 121, 119, 111, - }, - - { - /* Context Tables for P, SP, B Slices :: cabac_init_idc = 2, qp = 45 */ - - 44, 8, 37, 44, 8, 37, 30, 48, 54, 24, - 13, 67, 13, 48, 82, 20, 80, 51, 19, 58, - 15, 19, 76, 65, 65, 5, 35, 125, 125, 125, - 52, 16, 9, 19, 58, 15, 25, 30, 72, 5, - 10, 6, 14, 93, 101, 63, 97, 3, 13, 11, - 27, 55, 35, 69, 0, 7, 11, 0, 66, 2, - 44, 0, 0, 0, 12, 67, 67, 22, 27, 13, - 20, 2, 13, 76, 40, 16, 100, 96, 16, 40, - 48, 54, 22, 20, 82, 93, 53, 51, 57, 50, - 17, 40, 82, 1, 19, 6, 42, 3, 19, 17, - 33, 48, 25, 30, 4, 21, 18, 7, 0, 16, - 28, 38, 40, 14, 33, 9, 8, 3, 0, 15, - 62, 5, 2, 64, 56, 76, 62, 54, 69, 22, - 22, 27, 7, 23, 11, 68, 6, 12, 80, 118, - 124, 124, 102, 73, 93, 24, 86, 84, 125, 19, - 28, 71, 52, 13, 8, 78, 66, 108, 98, 98, - 95, 8, 41, 83, 85, 3, 26, 42, 20, 8, - 20, 20, 4, 30, 16, 31, 17, 10, 0, 0, - 25, 5, 21, 35, 7, 7, 0, 19, 21, 95, - 25, 29, 11, 51, 43, 33, 7, 23, 27, 23, - 35, 77, 43, 13, 97, 125, 73, 93, 81, 125, - 53, 41, 111, 11, 29, 29, 47, 55, 81, 71, - 55, 91, 59, 63, 71, 95, 8, 32, 86, 54, - 20, 8, 36, 22, 12, 4, 36, 46, 92, 60, - 46, 30, 76, 40, 48, 16, 82, 20, 76, 50, - 40, 26, 56, 26, 12, 10, 12, 7, 112, 66, - 22, 6, 44, 12, 11, 2, 38, 84, 76, 44, - 20, 70, 32, 28, 12, 10, 124, 3, 14, 28, - 24, 6, 22, 32, 40, 36, 48, 62, 88, 3, - 8, 13, 11, 124, 27, 81, 15, 12, 12, 15, - 15, 13, 23, 4, 29, 71, 11, 9, 50, 13, - 27, 11, 9, 0, 21, 19, 13, 59, 45, 21, - 23, 13, 56, 79, 29, 54, 43, 13, 11, 13, - 12, 9, 19, 8, 24, 15, 15, 97, 58, 54, - 56, 18, 21, 23, 27, 49, 27, 51, 63, 49, - 87, 75, 75, 105, 95, 121, 125, 85, 65, 59, - 65, 93, 75, 61, 63, 65, 31, 43, 53, 47, - 55, 93, 65, 57, 107, 79, 105, 103, 125, 125, - 117, 115, 35, 31, 123, 53, 55, 67, 105, 77, - 79, 83, 61, 71, 45, 29, 97, 107, 125, 57, - 79, 89, 11, 24, 34, 40, 78, 52, 62, 16, - 72, 62, 82, 66, 88, 74, 52, 80, 21, 39, - 55, 71, 71, 125, 123, 113, 36, 92, 84, 90, - 72, 76, 46, 44, 24, 26, 11, 24, 34, 40, - 78, 52, 62, 16, 72, 62, 82, 66, 88, 74, - 52, 80, 21, 39, 55, 71, 71, 125, 123, 113, - }, - - { - /* Context Tables for P, SP, B Slices :: cabac_init_idc = 2, qp = 46 */ - - 42, 8, 37, 42, 8, 37, 34, 52, 56, 24, - 15, 71, 15, 46, 82, 20, 84, 53, 19, 60, - 15, 21, 78, 67, 67, 7, 39, 125, 125, 125, - 56, 20, 9, 19, 60, 15, 23, 32, 74, 5, - 12, 8, 16, 95, 103, 63, 99, 3, 13, 9, - 27, 57, 35, 69, 0, 7, 11, 2, 68, 2, - 44, 0, 0, 0, 12, 67, 67, 24, 29, 13, - 18, 2, 11, 80, 42, 18, 102, 98, 18, 42, - 52, 56, 24, 22, 86, 95, 53, 51, 57, 52, - 17, 42, 86, 1, 17, 8, 46, 3, 19, 17, - 33, 50, 25, 30, 6, 21, 20, 7, 0, 16, - 28, 40, 40, 14, 33, 9, 8, 3, 0, 15, - 62, 5, 2, 66, 56, 78, 62, 56, 71, 22, - 24, 27, 7, 23, 11, 70, 6, 12, 82, 120, - 124, 124, 106, 73, 95, 24, 86, 84, 125, 19, - 30, 73, 52, 13, 8, 80, 66, 108, 98, 100, - 97, 12, 43, 89, 91, 0, 26, 42, 18, 6, - 18, 18, 2, 30, 14, 33, 19, 10, 0, 0, - 27, 7, 23, 37, 9, 7, 0, 21, 21, 97, - 25, 31, 11, 53, 45, 37, 11, 27, 31, 27, - 39, 83, 49, 15, 101, 125, 77, 97, 85, 125, - 55, 43, 115, 13, 31, 31, 49, 57, 85, 75, - 59, 95, 59, 65, 73, 97, 10, 34, 90, 54, - 20, 8, 38, 24, 14, 6, 40, 48, 94, 62, - 48, 30, 78, 42, 52, 18, 86, 20, 76, 50, - 40, 28, 58, 26, 12, 12, 14, 7, 116, 68, - 22, 6, 46, 12, 11, 4, 40, 86, 78, 46, - 20, 72, 32, 30, 12, 10, 124, 0, 16, 30, - 28, 8, 26, 34, 42, 38, 52, 66, 92, 3, - 10, 13, 9, 124, 27, 83, 15, 14, 14, 15, - 15, 13, 23, 6, 29, 73, 11, 9, 50, 13, - 27, 11, 9, 0, 23, 19, 13, 61, 47, 21, - 23, 13, 58, 81, 29, 56, 45, 13, 11, 13, - 14, 9, 21, 10, 26, 15, 15, 99, 56, 52, - 54, 14, 25, 27, 31, 55, 33, 57, 69, 55, - 93, 81, 79, 113, 103, 125, 125, 91, 69, 63, - 69, 99, 79, 63, 65, 67, 31, 47, 57, 51, - 59, 97, 69, 61, 111, 83, 109, 107, 125, 125, - 121, 117, 37, 33, 125, 57, 59, 71, 109, 81, - 83, 85, 63, 73, 45, 27, 99, 111, 125, 59, - 81, 91, 11, 24, 34, 40, 80, 54, 64, 16, - 74, 64, 84, 66, 90, 74, 54, 80, 25, 43, - 59, 75, 75, 125, 125, 115, 36, 94, 84, 92, - 72, 78, 46, 44, 26, 26, 11, 24, 34, 40, - 80, 54, 64, 16, 74, 64, 84, 66, 90, 74, - 54, 80, 25, 43, 59, 75, 75, 125, 125, 115, - }, - - { - /* Context Tables for P, SP, B Slices :: cabac_init_idc = 2, qp = 47 */ - - 40, 8, 37, 40, 8, 37, 38, 54, 56, 24, - 15, 75, 19, 44, 84, 20, 88, 57, 19, 64, - 15, 21, 80, 69, 69, 9, 43, 125, 125, 125, - 60, 22, 9, 19, 64, 15, 23, 34, 74, 5, - 14, 10, 18, 97, 105, 63, 99, 3, 13, 7, - 27, 57, 35, 69, 0, 7, 11, 4, 68, 2, - 44, 0, 0, 0, 14, 67, 67, 24, 31, 13, - 18, 4, 9, 84, 44, 20, 106, 102, 20, 44, - 56, 58, 26, 24, 90, 97, 53, 51, 57, 52, - 17, 44, 90, 1, 15, 10, 50, 3, 19, 17, - 33, 50, 25, 32, 8, 21, 22, 7, 0, 16, - 30, 42, 42, 14, 33, 9, 8, 3, 0, 15, - 62, 5, 2, 66, 56, 78, 62, 56, 71, 24, - 26, 29, 7, 23, 11, 72, 6, 14, 84, 122, - 124, 124, 110, 75, 97, 26, 86, 84, 125, 19, - 30, 73, 54, 13, 8, 82, 66, 108, 98, 102, - 99, 14, 45, 95, 97, 2, 26, 42, 18, 4, - 18, 18, 2, 30, 14, 35, 21, 10, 0, 0, - 27, 7, 25, 39, 9, 7, 0, 23, 23, 99, - 27, 33, 11, 55, 45, 41, 15, 31, 33, 31, - 43, 89, 53, 17, 105, 125, 79, 101, 89, 125, - 57, 45, 119, 15, 33, 33, 51, 61, 89, 79, - 63, 97, 59, 67, 75, 101, 14, 38, 92, 56, - 20, 8, 40, 26, 16, 8, 44, 50, 96, 64, - 50, 32, 80, 44, 54, 20, 90, 22, 78, 52, - 42, 28, 60, 28, 14, 14, 16, 7, 118, 70, - 22, 6, 48, 14, 11, 6, 42, 86, 80, 46, - 20, 74, 34, 32, 14, 12, 124, 2, 20, 34, - 32, 10, 28, 38, 46, 42, 56, 70, 96, 1, - 12, 11, 7, 124, 27, 85, 15, 16, 16, 15, - 15, 13, 23, 6, 29, 75, 11, 9, 52, 13, - 27, 11, 9, 0, 23, 19, 13, 63, 49, 21, - 23, 13, 60, 83, 29, 58, 47, 13, 11, 13, - 14, 9, 21, 10, 28, 15, 15, 103, 54, 50, - 52, 10, 29, 33, 37, 61, 37, 63, 75, 61, - 99, 87, 83, 121, 109, 125, 125, 97, 73, 67, - 73, 103, 83, 65, 67, 69, 31, 51, 61, 55, - 63, 101, 73, 63, 115, 87, 113, 111, 125, 125, - 125, 119, 39, 35, 125, 59, 63, 73, 113, 83, - 85, 87, 65, 75, 45, 25, 101, 113, 125, 61, - 83, 93, 11, 26, 36, 42, 82, 56, 66, 16, - 76, 66, 86, 68, 92, 76, 56, 78, 29, 47, - 63, 79, 79, 125, 125, 117, 38, 94, 86, 94, - 74, 80, 48, 46, 26, 28, 11, 26, 36, 42, - 82, 56, 66, 16, 76, 66, 86, 68, 92, 76, - 56, 78, 29, 47, 63, 79, 79, 125, 125, 117, - }, - - { - /* Context Tables for P, SP, B Slices :: cabac_init_idc = 2, qp = 48 */ - - 36, 6, 39, 36, 6, 39, 40, 56, 56, 24, - 17, 79, 23, 42, 84, 20, 90, 61, 19, 66, - 17, 23, 82, 71, 73, 13, 47, 125, 125, 125, - 64, 24, 9, 19, 66, 17, 23, 34, 74, 7, - 14, 10, 20, 101, 109, 65, 101, 5, 13, 7, - 29, 59, 35, 69, 1, 7, 11, 4, 68, 0, - 44, 0, 0, 0, 14, 69, 67, 24, 33, 15, - 16, 4, 7, 88, 46, 20, 108, 104, 20, 46, - 58, 58, 28, 24, 94, 99, 55, 53, 59, 52, - 19, 44, 94, 1, 15, 10, 52, 3, 19, 17, - 33, 50, 27, 32, 8, 21, 22, 7, 0, 16, - 30, 44, 42, 14, 35, 11, 8, 3, 1, 15, - 62, 5, 2, 66, 56, 78, 62, 56, 73, 24, - 26, 31, 7, 23, 13, 72, 6, 14, 86, 124, - 124, 124, 112, 77, 101, 26, 86, 84, 125, 21, - 30, 75, 54, 15, 8, 84, 66, 106, 98, 104, - 101, 16, 49, 101, 105, 4, 24, 42, 16, 2, - 16, 16, 0, 28, 12, 37, 23, 8, 1, 1, - 29, 9, 27, 41, 11, 9, 1, 25, 25, 103, - 29, 35, 11, 59, 47, 47, 21, 35, 37, 35, - 49, 97, 59, 21, 109, 125, 83, 107, 93, 125, - 61, 49, 123, 19, 35, 35, 55, 65, 93, 83, - 67, 101, 59, 69, 77, 105, 16, 40, 94, 56, - 20, 8, 40, 26, 16, 8, 46, 52, 96, 64, - 50, 32, 82, 46, 56, 20, 94, 22, 78, 52, - 42, 28, 60, 28, 14, 14, 18, 7, 120, 72, - 22, 4, 48, 14, 11, 6, 42, 86, 80, 46, - 20, 76, 34, 32, 14, 12, 124, 4, 22, 36, - 34, 12, 30, 40, 48, 44, 58, 72, 100, 1, - 12, 11, 7, 124, 27, 89, 15, 16, 16, 15, - 15, 13, 25, 6, 31, 77, 13, 9, 52, 15, - 27, 13, 9, 0, 25, 21, 15, 65, 51, 23, - 25, 13, 62, 85, 31, 58, 49, 15, 11, 15, - 14, 11, 23, 10, 28, 15, 15, 107, 50, 48, - 48, 6, 35, 39, 43, 67, 43, 69, 83, 67, - 107, 93, 87, 125, 117, 125, 125, 103, 79, 71, - 79, 109, 87, 69, 71, 71, 31, 57, 67, 61, - 67, 107, 77, 67, 121, 91, 119, 115, 125, 125, - 125, 123, 43, 39, 125, 63, 67, 77, 117, 87, - 89, 89, 67, 77, 47, 23, 105, 117, 125, 65, - 87, 97, 11, 26, 36, 42, 84, 56, 66, 16, - 78, 66, 88, 68, 92, 76, 56, 76, 33, 51, - 69, 85, 83, 125, 125, 121, 38, 94, 86, 94, - 74, 80, 48, 46, 26, 28, 11, 26, 36, 42, - 84, 56, 66, 16, 78, 66, 88, 68, 92, 76, - 56, 76, 33, 51, 69, 85, 83, 125, 125, 121, - }, - - { - /* Context Tables for P, SP, B Slices :: cabac_init_idc = 2, qp = 49 */ - - 34, 6, 39, 34, 6, 39, 44, 60, 58, 26, - 17, 81, 25, 42, 86, 22, 94, 63, 17, 70, - 17, 23, 86, 71, 75, 15, 49, 125, 125, 125, - 68, 28, 7, 17, 70, 17, 21, 36, 76, 7, - 16, 12, 24, 103, 111, 65, 101, 5, 11, 5, - 29, 59, 33, 67, 1, 5, 9, 6, 70, 0, - 44, 0, 0, 0, 16, 69, 67, 26, 33, 15, - 16, 6, 3, 94, 50, 22, 112, 108, 22, 50, - 62, 60, 32, 26, 100, 99, 55, 53, 59, 54, - 19, 46, 100, 0, 13, 12, 56, 3, 17, 17, - 31, 52, 27, 34, 10, 19, 24, 5, 2, 18, - 32, 46, 44, 16, 35, 11, 10, 1, 1, 13, - 64, 3, 2, 68, 58, 80, 64, 58, 73, 26, - 28, 31, 7, 21, 13, 74, 8, 16, 90, 124, - 124, 124, 116, 77, 103, 28, 88, 86, 125, 21, - 32, 75, 56, 15, 10, 88, 66, 106, 100, 108, - 103, 20, 51, 105, 111, 8, 24, 42, 16, 2, - 16, 16, 0, 28, 12, 37, 23, 8, 1, 1, - 29, 9, 27, 41, 11, 9, 1, 25, 25, 105, - 29, 35, 11, 61, 47, 51, 25, 37, 39, 37, - 53, 103, 63, 23, 111, 125, 85, 111, 95, 125, - 63, 51, 125, 21, 35, 35, 57, 67, 95, 85, - 69, 103, 59, 69, 77, 107, 20, 44, 98, 58, - 20, 8, 42, 28, 18, 10, 50, 56, 98, 66, - 52, 34, 86, 48, 60, 22, 100, 24, 80, 54, - 44, 30, 62, 30, 16, 16, 22, 5, 124, 74, - 24, 4, 50, 16, 9, 8, 44, 88, 82, 48, - 22, 78, 36, 34, 16, 14, 124, 8, 26, 40, - 38, 16, 34, 44, 52, 48, 62, 76, 106, 0, - 14, 9, 5, 124, 25, 91, 13, 18, 18, 13, - 15, 11, 25, 8, 31, 77, 13, 9, 54, 15, - 27, 13, 9, 2, 25, 21, 15, 65, 51, 23, - 25, 11, 66, 85, 31, 60, 49, 15, 11, 15, - 16, 11, 23, 12, 30, 13, 13, 109, 48, 46, - 46, 4, 39, 43, 47, 73, 47, 73, 89, 71, - 113, 97, 91, 125, 123, 125, 125, 107, 83, 73, - 83, 113, 89, 71, 73, 71, 31, 61, 71, 65, - 71, 111, 79, 69, 125, 93, 123, 117, 125, 125, - 125, 125, 45, 41, 125, 65, 69, 79, 119, 89, - 91, 91, 67, 77, 47, 21, 107, 119, 125, 67, - 89, 99, 9, 28, 38, 44, 88, 58, 68, 18, - 82, 68, 90, 70, 94, 78, 58, 76, 35, 53, - 73, 89, 85, 125, 125, 123, 40, 96, 88, 96, - 76, 82, 50, 48, 28, 30, 9, 28, 38, 44, - 88, 58, 68, 18, 82, 68, 90, 70, 94, 78, - 58, 76, 35, 53, 73, 89, 85, 125, 125, 123, - }, - - { - /* Context Tables for P, SP, B Slices :: cabac_init_idc = 2, qp = 50 */ - - 32, 6, 39, 32, 6, 39, 48, 62, 58, 26, - 17, 85, 29, 40, 88, 22, 98, 67, 17, 72, - 17, 23, 88, 73, 77, 17, 53, 125, 125, 125, - 72, 30, 7, 17, 72, 17, 21, 38, 76, 7, - 18, 14, 26, 105, 113, 65, 101, 5, 11, 3, - 29, 59, 33, 67, 1, 5, 9, 8, 70, 0, - 44, 0, 0, 0, 18, 69, 67, 26, 35, 15, - 16, 8, 1, 98, 52, 24, 116, 112, 24, 52, - 66, 62, 34, 28, 104, 101, 55, 53, 59, 54, - 19, 48, 104, 0, 11, 14, 60, 3, 17, 17, - 31, 52, 27, 34, 12, 19, 26, 5, 2, 18, - 32, 48, 46, 16, 35, 11, 10, 1, 1, 13, - 64, 3, 2, 68, 58, 80, 64, 58, 75, 28, - 30, 33, 7, 21, 13, 76, 8, 16, 92, 124, - 124, 124, 120, 79, 105, 28, 88, 86, 125, 21, - 32, 77, 58, 15, 10, 90, 66, 106, 100, 110, - 105, 22, 53, 111, 117, 10, 24, 42, 16, 0, - 14, 16, 0, 28, 10, 39, 25, 8, 1, 1, - 29, 11, 29, 43, 11, 9, 1, 27, 27, 107, - 31, 37, 11, 63, 49, 55, 29, 41, 43, 41, - 57, 109, 67, 25, 115, 125, 89, 115, 99, 125, - 65, 53, 125, 23, 37, 37, 59, 71, 99, 89, - 73, 107, 59, 71, 79, 111, 22, 46, 100, 60, - 20, 8, 44, 30, 20, 12, 54, 58, 100, 68, - 54, 36, 88, 50, 62, 24, 104, 26, 80, 54, - 44, 30, 64, 32, 18, 18, 24, 5, 124, 76, - 24, 4, 52, 18, 9, 10, 46, 88, 84, 48, - 22, 80, 38, 36, 18, 16, 124, 10, 30, 44, - 42, 18, 36, 48, 56, 50, 66, 80, 110, 2, - 16, 7, 3, 124, 25, 93, 13, 20, 20, 13, - 15, 11, 25, 8, 31, 79, 13, 9, 56, 15, - 27, 13, 9, 2, 25, 21, 15, 67, 53, 23, - 25, 11, 68, 87, 31, 62, 51, 15, 11, 15, - 16, 11, 23, 12, 32, 13, 13, 113, 46, 44, - 44, 0, 43, 49, 53, 79, 51, 79, 95, 77, - 119, 103, 95, 125, 125, 125, 125, 113, 87, 77, - 87, 117, 93, 73, 75, 73, 31, 65, 75, 69, - 75, 115, 83, 73, 125, 97, 125, 121, 125, 125, - 125, 125, 47, 43, 125, 69, 73, 83, 123, 91, - 93, 93, 69, 79, 47, 19, 109, 121, 125, 69, - 91, 101, 9, 28, 40, 46, 90, 60, 70, 18, - 84, 70, 92, 70, 96, 80, 60, 74, 39, 57, - 77, 93, 89, 125, 125, 125, 42, 96, 88, 98, - 78, 84, 50, 50, 28, 32, 9, 28, 40, 46, - 90, 60, 70, 18, 84, 70, 92, 70, 96, 80, - 60, 74, 39, 57, 77, 93, 89, 125, 125, 125, - }, - - { - /* Context Tables for P, SP, B Slices :: cabac_init_idc = 2, qp = 51 */ - - 30, 6, 39, 30, 6, 39, 52, 66, 60, 26, - 19, 89, 31, 38, 88, 22, 102, 69, 17, 76, - 17, 25, 90, 75, 79, 19, 57, 125, 125, 125, - 76, 34, 7, 17, 76, 17, 19, 40, 78, 7, - 20, 16, 28, 107, 115, 65, 103, 5, 11, 1, - 29, 61, 33, 67, 1, 5, 9, 10, 72, 0, - 44, 0, 0, 0, 18, 69, 67, 28, 37, 15, - 14, 8, 0, 102, 54, 26, 118, 114, 26, 54, - 70, 64, 36, 30, 108, 103, 55, 53, 59, 56, - 19, 50, 108, 0, 9, 16, 64, 3, 17, 17, - 31, 54, 27, 36, 14, 19, 28, 5, 2, 18, - 34, 50, 46, 16, 35, 11, 10, 1, 1, 13, - 64, 3, 2, 70, 58, 82, 64, 60, 75, 28, - 32, 33, 7, 21, 13, 78, 8, 18, 94, 124, - 124, 124, 124, 79, 107, 30, 88, 86, 125, 21, - 34, 77, 58, 15, 10, 92, 66, 106, 100, 112, - 107, 26, 55, 117, 123, 14, 24, 42, 14, 1, - 14, 14, 1, 28, 10, 41, 27, 8, 1, 1, - 31, 11, 31, 45, 13, 9, 1, 29, 27, 109, - 31, 39, 11, 65, 49, 59, 33, 45, 45, 45, - 61, 115, 73, 27, 119, 125, 91, 119, 103, 125, - 67, 55, 125, 25, 39, 39, 61, 73, 103, 93, - 77, 109, 59, 73, 81, 113, 26, 50, 104, 60, - 20, 8, 46, 32, 22, 14, 58, 60, 102, 70, - 56, 36, 90, 52, 66, 26, 108, 26, 82, 56, - 46, 32, 66, 32, 18, 20, 26, 5, 124, 78, - 24, 4, 54, 18, 9, 12, 48, 90, 86, 50, - 22, 82, 38, 38, 18, 16, 124, 14, 32, 46, - 46, 20, 40, 50, 58, 54, 70, 84, 114, 2, - 18, 7, 1, 124, 25, 95, 13, 22, 22, 13, - 15, 11, 25, 10, 31, 81, 13, 9, 56, 15, - 27, 13, 9, 2, 27, 21, 15, 69, 55, 23, - 25, 11, 70, 89, 31, 64, 53, 15, 11, 15, - 18, 11, 25, 14, 34, 13, 13, 115, 44, 42, - 42, 3, 47, 53, 57, 85, 57, 85, 101, 83, - 125, 109, 99, 125, 125, 125, 125, 119, 91, 81, - 91, 123, 97, 75, 77, 75, 31, 69, 79, 73, - 79, 119, 87, 75, 125, 101, 125, 125, 125, 125, - 125, 125, 49, 45, 125, 71, 77, 85, 125, 95, - 97, 95, 71, 81, 47, 17, 111, 125, 125, 71, - 93, 103, 9, 30, 40, 46, 92, 62, 72, 18, - 86, 72, 94, 72, 98, 80, 62, 74, 43, 61, - 81, 97, 93, 125, 125, 125, 42, 98, 90, 100, - 78, 86, 52, 50, 30, 32, 9, 30, 40, 46, - 92, 62, 72, 18, 86, 72, 94, 72, 98, 80, - 62, 74, 43, 61, 81, 97, 93, 125, 125, 125, - }, - - }, + { 132719, 132743, 132768, 132793 }, + + { 132969, 132992, 133016, 133039 }, + + { 165988, 166010, 166032, 166054 }, + + { 199007, 199028, 199049, 199070 }, + + { 232026, 232046, 232066, 232086 }, + + { 265045, 265064, 265083, 265102 }, + + { 298065, 298083, 298101, 298119 }, + + { 298317, 298334, 298351, 298368 }, + + { 364105, 364121, 364137, 364154 }, + + { 364357, 364373, 364388, 364404 }, + + { 397378, 397392, 397407, 397422 }, + + { 430398, 430412, 430426, 430440 }, + + { 430651, 430664, 430678, 430691 }, + + { 496440, 496453, 496465, 496478 }, + + { 496693, 496705, 496717, 496729 }, + + { 529715, 529726, 529737, 529749 }, + + { 529968, 529979, 529989, 530000 }, + + { 595758, 595768, 595778, 595788 }, + + { 596011, 596021, 596031, 596040 }, + + { 629033, 629042, 629051, 629061 }, + + { 629287, 629296, 629304, 629313 }, + + { 695077, 695085, 695094, 695102 }, + + { 695331, 695339, 695347, 695355 }, + + { 728353, 728361, 728368, 728376 }, + + { 728608, 728615, 728622, 728629 }, + + { 761630, 761637, 761643, 761650 }, + + { 794653, 794659, 794665, 794672 }, + + { 794907, 794913, 794919, 794925 }, + + { 827930, 827935, 827941, 827947 }, + + { 860952, 860958, 860963, 860969 }, + + { 861207, 861212, 861217, 861223 }, + + { 894230, 894235, 894240, 894245 }, + + { 894485, 894490, 894494, 894499 }, + + { 927508, 927512, 927517, 927521 }, + + { 960531, 960535, 960539, 960543 }, + + { 960786, 960790, 960794, 960798 }, + + { 993809, 993813, 993817, 993820 }, + + { 994064, 994068, 994071, 994075 }, + + { 994319, 994323, 994326, 994329 }, + + { 1027342, 1027346, 1027349, 1027352 }, + + { 1060366, 1060369, 1060372, 1060375 }, + + { 1060621, 1060624, 1060627, 1060630 }, + + { 1093644, 1093647, 1093650, 1093653 }, + + { 1093900, 1093902, 1093905, 1093908 }, + + { 1094155, 1094158, 1094160, 1094163 }, + + { 1127179, 1127181, 1127183, 1127186 }, + + { 1127434, 1127436, 1127439, 1127441 }, + + { 1160458, 1160460, 1160462, 1160464 }, + + { 1160713, 1160715, 1160717, 1160719 }, + + { 1160969, 1160971, 1160972, 1160974 }, + + { 1193992, 1193994, 1193996, 1193998 }, + + { 1194248, 1194249, 1194251, 1194253 }, + + { 1194503, 1194505, 1194507, 1194508 }, + + { 1227527, 1227529, 1227530, 1227532 }, + + { 1227783, 1227784, 1227786, 1227787 }, + + { 1228038, 1228040, 1228041, 1228043 }, + + { 1261062, 1261063, 1261065, 1261066 }, + + { 1261062, 1261063, 1261064, 1261065 }, + + { 2080514, 2080514, 2080514, 2080514 }, + + { 16768, 16816, 16848, 16880 }, + + { 2114176, 2114215, 2114245, 2114275 }, + + { 2147200, 2147230, 2147259, 2147288 }, + + { 2180219, 2180246, 2180274, 2180301 }, + + { 2180468, 2180494, 2180521, 2180547 }, + + { 2246255, 2246279, 2246304, 2246329 }, + + { 2246505, 2246528, 2246552, 2246575 }, + + { 2279524, 2279546, 2279568, 2279590 }, + + { 2312543, 2312564, 2312585, 2312606 }, + + { 2345562, 2345582, 2345602, 2345622 }, + + { 2378581, 2378600, 2378619, 2378638 }, + + { 2411601, 2411619, 2411637, 2411655 }, + + { 2411853, 2411870, 2411887, 2411904 }, + + { 2477641, 2477657, 2477673, 2477690 }, + + { 2477893, 2477909, 2477924, 2477940 }, + + { 2510914, 2510928, 2510943, 2510958 }, + + { 2543934, 2543948, 2543962, 2543976 }, + + { 2544187, 2544200, 2544214, 2544227 }, + + { 2609976, 2609989, 2610001, 2610014 }, + + { 2610229, 2610241, 2610253, 2610265 }, + + { 2643251, 2643262, 2643273, 2643285 }, + + { 2643504, 2643515, 2643525, 2643536 }, + + { 2709294, 2709304, 2709314, 2709324 }, + + { 2709547, 2709557, 2709567, 2709576 }, + + { 2742569, 2742578, 2742587, 2742597 }, + + { 2742823, 2742832, 2742840, 2742849 }, + + { 2808613, 2808621, 2808630, 2808638 }, + + { 2808867, 2808875, 2808883, 2808891 }, + + { 2841889, 2841897, 2841904, 2841912 }, + + { 2842144, 2842151, 2842158, 2842165 }, + + { 2875166, 2875173, 2875179, 2875186 }, + + { 2908189, 2908195, 2908201, 2908208 }, + + { 2908443, 2908449, 2908455, 2908461 }, + + { 2941466, 2941471, 2941477, 2941483 }, + + { 2974488, 2974494, 2974499, 2974505 }, + + { 2974743, 2974748, 2974753, 2974759 }, + + { 3007766, 3007771, 3007776, 3007781 }, + + { 3008021, 3008026, 3008030, 3008035 }, + + { 3041044, 3041048, 3041053, 3041057 }, + + { 3074067, 3074071, 3074075, 3074079 }, + + { 3074322, 3074326, 3074330, 3074334 }, + + { 3107345, 3107349, 3107353, 3107356 }, + + { 3107600, 3107604, 3107607, 3107611 }, + + { 3107855, 3107859, 3107862, 3107865 }, + + { 3140878, 3140882, 3140885, 3140888 }, + + { 3173902, 3173905, 3173908, 3173911 }, + + { 3174157, 3174160, 3174163, 3174166 }, + + { 3207180, 3207183, 3207186, 3207189 }, + + { 3207436, 3207438, 3207441, 3207444 }, + + { 3207691, 3207694, 3207696, 3207699 }, + + { 3240715, 3240717, 3240719, 3240722 }, + + { 3240970, 3240972, 3240975, 3240977 }, + + { 3273994, 3273996, 3273998, 3274000 }, + + { 3274249, 3274251, 3274253, 3274255 }, + + { 3274505, 3274507, 3274508, 3274510 }, + + { 3307528, 3307530, 3307532, 3307534 }, + + { 3307784, 3307785, 3307787, 3307789 }, + + { 3308039, 3308041, 3308043, 3308044 }, + + { 3341063, 3341065, 3341066, 3341068 }, + + { 3341319, 3341320, 3341322, 3341323 }, + + { 3341574, 3341576, 3341577, 3341579 }, + + { 3374598, 3374599, 3374601, 3374602 }, + + { 3374598, 3374599, 3374600, 3374601 }, + + { 4194050, 4194050, 4194050, 4194050 }, + + }; + +/*****************************************************************************/ +/* Global Variable Initialization */ +/*****************************************************************************/ +const UWORD8 gau1_ih264_cabac_ctxt_init_table[NUM_CAB_INIT_IDC_PLUS_ONE][QP_RANGE][NUM_CABAC_CTXTS] = + + { + + { + + { + + 62, + 9, 74, 62, 9, 74, 126, 104, 10, 9, 12, 30, 61, 62, + 54, 14, 118, 6, 78, 65, 1, 14, 73, 13, 64, 20, 62, + 67, 90, 104, 126, 104, 67, 78, 65, 1, 86, 95, 2, + 18, 69, 81, 96, 8, 67, 86, 88, 5, 76, 94, 9, 69, + 81, 88, 67, 74, 74, 80, 72, 5, 22, 0, 0, 0, 83, + 86, 97, 72, 22, 1, 18, 78, 96, 126, 98, 101, 67, + 82, 94, 83, 110, 91, 102, 93, 126, 92, 89, 96, + 108, 17, 65, 6, 93, 74, 92, 87, 126, 9, 3, 4, 69, + 15, 68, 69, 88, 85, 78, 75, 77, 9, 13, 68, 13, 21, + 81, 0, 70, 67, 6, 76, 28, 64, 2, 28, 38, 39, 34, + 27, 93, 73, 73, 17, 14, 100, 10, 10, 10, 2, 7, 7, + 0, 3, 1, 6, 69, 6, 24, 12, 68, 64, 2, 0, 13, 24, + 19, 11, 15, 3, 4, 4, 30, 19, 20, 78, 3, 69, 35, + 23, 19, 14, 17, 19, 12, 16, 24, 1, 17, 9, 9, 5, 0, + 12, 6, 10, 11, 8, 18, 27, 10, 82, 8, 78, 17, 32, + 84, 56, 62, 60, 59, 62, 62, 57, 57, 54, 44, 36, + 33, 43, 29, 70, 67, 4, 67, 33, 31, 28, 34, 32, 25, + 20, 22, 0, 4, 64, 94, 89, 108, 76, 19, 18, 11, 64, + 4, 70, 75, 82, 102, 77, 39, 21, 15, 8, 4, 71, 83, + 87, 119, 5, 34, 27, 25, 20, 8, 5, 64, 74, 90, 70, + 34, 32, 21, 4, 5, 72, 81, 97, 5, 58, 49, 45, 36, + 23, 5, 70, 79, 85, 62, 106, 106, 87, 114, 110, 98, + 110, 106, 103, 107, 108, 112, 96, 95, 91, 93, 94, + 86, 67, 80, 85, 70, 3, 5, 2, 13, 13, 14, 9, 22, + 17, 12, 14, 11, 22, 16, 8, 22, 19, 13, 10, 14, 0, + 64, 69, 4, 70, 19, 32, 20, 10, 29, 25, 11, 23, 31, + 19, 25, 13, 6, 20, 52, 49, 52, 52, 54, 62, 62, 62, + 62, 62, 62, 62, 62, 62, 34, 62, 62, 62, 62, 62, + 62, 54, 37, 36, 6, 82, 75, 97, 125, 62, 62, 62, + 57, 55, 53, 41, 44, 31, 32, 22, 19, 16, 65, 71, 3, + 0, 65, 39, 43, 40, 31, 40, 39, 23, 31, 34, 21, 6, + 10, 2, 86, 23, 12, 4, 79, 71, 69, 70, 66, 68, 73, + 69, 70, 67, 1, 70, 66, 65, 0, 62, 62, 62, 62, 62, + 60, 54, 36, 4, 66, 28, 21, 18, 15, 7, 3, 1, 66, + 76, 85, 81, 77, 81, 80, 73, 74, 83, 71, 67, 2, 66, + 66, 4, 4, 62, 62, 62, 62, 61, 57, 46, 29, 1 }, + + { + + 62, + 9, 74, 62, 9, 74, 125, 102, 11, 10, 12, 29, 60, + 62, 54, 14, 115, 6, 77, 64, 1, 14, 72, 12, 65, + 20, 62, 68, 91, 104, 124, 102, 67, 77, 64, 1, + 85, 93, 3, 18, 68, 80, 95, 8, 67, 85, 88, 5, 75, + 93, 9, 69, 80, 88, 66, 73, 73, 79, 71, 5, 22, 0, + 0, 0, 82, 86, 97, 71, 22, 1, 18, 77, 95, 124, + 96, 99, 65, 80, 92, 82, 108, 89, 100, 92, 125, + 91, 88, 95, 107, 18, 64, 7, 92, 73, 91, 86, 124, + 9, 3, 4, 69, 16, 68, 68, 87, 84, 77, 74, 76, 9, + 13, 67, 13, 21, 80, 0, 69, 67, 6, 75, 28, 64, 2, + 28, 37, 39, 34, 27, 92, 72, 72, 17, 14, 99, 10, + 10, 10, 3, 7, 7, 1, 4, 2, 6, 68, 6, 24, 12, 68, + 64, 2, 0, 13, 23, 19, 11, 15, 4, 5, 4, 29, 19, + 20, 77, 3, 69, 35, 23, 19, 14, 17, 19, 12, 16, + 24, 1, 17, 9, 9, 5, 0, 12, 6, 10, 11, 8, 18, 27, + 10, 81, 8, 77, 17, 31, 83, 55, 62, 59, 58, 61, + 62, 56, 56, 52, 43, 35, 32, 41, 28, 71, 67, 4, + 67, 32, 30, 27, 33, 31, 24, 19, 21, 0, 4, 64, + 93, 88, 107, 75, 20, 18, 11, 0, 5, 69, 74, 81, + 100, 76, 39, 21, 15, 8, 5, 70, 82, 86, 117, 5, + 35, 28, 25, 20, 9, 5, 64, 73, 89, 70, 35, 32, + 21, 4, 6, 71, 80, 96, 5, 58, 49, 45, 36, 23, 5, + 69, 78, 84, 62, 105, 105, 86, 112, 108, 97, 108, + 104, 101, 105, 106, 110, 95, 94, 90, 92, 92, 85, + 67, 79, 84, 69, 3, 5, 2, 13, 13, 13, 8, 22, 17, + 13, 14, 11, 22, 16, 8, 22, 19, 13, 10, 14, 0, + 64, 68, 5, 70, 19, 32, 20, 10, 29, 25, 12, 23, + 30, 19, 25, 13, 6, 19, 52, 49, 52, 51, 53, 62, + 62, 62, 62, 62, 62, 62, 62, 62, 33, 62, 62, 62, + 62, 62, 62, 53, 36, 35, 6, 81, 74, 95, 122, 62, + 62, 62, 56, 53, 52, 40, 42, 30, 31, 21, 18, 15, + 66, 71, 3, 0, 66, 38, 42, 39, 30, 39, 38, 22, + 30, 33, 20, 5, 9, 1, 86, 23, 12, 4, 78, 70, 68, + 69, 65, 67, 71, 68, 69, 66, 3, 68, 65, 0, 2, 62, + 62, 62, 62, 62, 58, 51, 34, 2, 65, 29, 22, 19, + 16, 8, 4, 2, 65, 75, 84, 80, 76, 80, 78, 71, 73, + 82, 70, 66, 3, 65, 65, 4, 4, 62, 62, 62, 62, 58, + 54, 43, 26, 64 }, + + { + + 62, + 9, 74, 62, 9, 74, 123, 101, 11, 10, 12, 28, 59, + 61, 54, 14, 113, 6, 76, 0, 1, 13, 72, 11, 66, + 19, 60, 70, 92, 105, 121, 101, 67, 76, 0, 1, 85, + 92, 3, 17, 68, 80, 94, 8, 67, 85, 88, 5, 75, 92, + 9, 69, 80, 88, 66, 73, 73, 79, 71, 5, 22, 0, 0, + 0, 81, 86, 97, 71, 21, 1, 18, 77, 95, 122, 94, + 97, 64, 78, 91, 81, 107, 88, 99, 91, 123, 91, + 88, 95, 106, 18, 64, 7, 91, 73, 90, 86, 123, 9, + 3, 4, 69, 16, 68, 68, 87, 84, 77, 74, 76, 9, 13, + 67, 13, 21, 80, 0, 69, 67, 6, 75, 27, 64, 2, 27, + 36, 38, 33, 26, 91, 72, 72, 16, 13, 99, 9, 10, + 10, 3, 7, 7, 2, 4, 2, 6, 68, 6, 23, 12, 69, 64, + 2, 64, 13, 22, 19, 11, 14, 4, 5, 4, 28, 19, 19, + 77, 3, 70, 34, 23, 19, 14, 17, 19, 12, 16, 24, + 1, 17, 9, 9, 5, 0, 12, 6, 10, 11, 8, 17, 26, 9, + 81, 8, 77, 16, 30, 83, 53, 62, 57, 56, 59, 60, + 54, 54, 50, 41, 33, 30, 39, 26, 72, 67, 4, 68, + 31, 29, 26, 32, 29, 23, 18, 20, 64, 3, 65, 93, + 88, 106, 75, 20, 18, 11, 0, 5, 69, 74, 81, 99, + 75, 39, 21, 15, 8, 5, 70, 81, 85, 115, 5, 35, + 28, 25, 20, 9, 5, 64, 73, 88, 70, 35, 32, 21, 4, + 6, 71, 80, 95, 5, 57, 48, 44, 35, 23, 5, 69, 78, + 84, 62, 104, 104, 85, 111, 107, 96, 107, 103, + 100, 104, 105, 108, 94, 93, 90, 91, 91, 85, 68, + 79, 83, 69, 3, 4, 2, 12, 12, 12, 7, 21, 17, 13, + 14, 10, 21, 16, 8, 21, 18, 13, 10, 13, 0, 64, + 68, 5, 70, 18, 31, 19, 10, 28, 24, 12, 22, 29, + 19, 25, 12, 5, 17, 51, 48, 51, 50, 52, 62, 62, + 62, 62, 62, 62, 62, 62, 62, 32, 62, 62, 62, 62, + 62, 62, 51, 35, 34, 6, 80, 74, 94, 120, 60, 60, + 62, 54, 51, 50, 38, 40, 29, 29, 20, 16, 14, 67, + 72, 2, 0, 67, 37, 41, 37, 28, 37, 36, 21, 28, + 31, 19, 4, 8, 0, 87, 22, 11, 3, 78, 70, 68, 68, + 65, 66, 70, 67, 68, 65, 4, 67, 64, 1, 3, 62, 62, + 62, 62, 60, 55, 48, 31, 0, 65, 29, 22, 19, 16, + 9, 4, 2, 65, 75, 84, 80, 75, 80, 77, 70, 73, 81, + 69, 65, 3, 65, 64, 4, 4, 62, 62, 62, 60, 55, 50, + 39, 23, 67 }, + + { + + 62, + 9, 74, 62, 9, 74, 121, 99, 12, 10, 11, 26, 57, + 60, 54, 14, 111, 6, 75, 1, 1, 12, 72, 10, 67, + 19, 58, 71, 93, 105, 118, 100, 67, 75, 1, 1, 84, + 91, 4, 17, 68, 79, 93, 7, 68, 85, 88, 5, 75, 92, + 9, 69, 80, 88, 65, 73, 73, 79, 70, 5, 22, 0, 0, + 0, 81, 86, 97, 70, 20, 1, 18, 77, 95, 120, 92, + 96, 1, 76, 90, 80, 105, 87, 98, 90, 121, 90, 88, + 94, 105, 18, 64, 7, 91, 73, 90, 85, 121, 9, 2, + 3, 70, 16, 68, 68, 86, 84, 76, 74, 75, 9, 13, + 67, 13, 20, 80, 0, 69, 67, 6, 75, 26, 64, 2, 26, + 35, 37, 32, 25, 91, 71, 72, 15, 13, 98, 9, 10, + 10, 3, 7, 7, 3, 4, 2, 6, 67, 6, 22, 12, 70, 64, + 2, 64, 12, 21, 19, 11, 13, 4, 5, 4, 26, 19, 18, + 77, 3, 70, 33, 23, 19, 14, 17, 19, 12, 16, 24, + 1, 16, 9, 9, 5, 0, 11, 5, 9, 10, 7, 16, 25, 9, + 81, 7, 77, 15, 28, 83, 52, 62, 55, 54, 57, 58, + 52, 52, 48, 39, 32, 29, 37, 24, 73, 67, 4, 68, + 30, 28, 25, 30, 28, 21, 17, 19, 65, 3, 65, 93, + 88, 106, 74, 20, 18, 11, 0, 5, 69, 74, 80, 98, + 75, 39, 21, 15, 8, 6, 69, 80, 84, 113, 5, 35, + 28, 25, 20, 10, 5, 64, 73, 88, 70, 35, 32, 20, + 4, 6, 71, 80, 94, 5, 57, 48, 43, 34, 23, 5, 69, + 77, 83, 62, 103, 103, 85, 110, 106, 95, 105, + 102, 99, 103, 103, 107, 94, 92, 90, 91, 89, 85, + 68, 79, 83, 69, 2, 4, 2, 11, 11, 11, 6, 21, 16, + 13, 13, 10, 21, 15, 8, 20, 18, 12, 10, 12, 0, + 65, 68, 5, 71, 18, 31, 18, 10, 27, 24, 12, 21, + 28, 18, 24, 11, 5, 16, 50, 47, 51, 49, 51, 61, + 62, 62, 62, 62, 62, 62, 62, 62, 31, 62, 62, 62, + 62, 62, 62, 49, 34, 33, 6, 79, 74, 93, 118, 58, + 58, 62, 52, 49, 48, 37, 38, 27, 28, 19, 15, 12, + 68, 73, 2, 64, 68, 36, 39, 36, 26, 35, 34, 19, + 27, 29, 17, 3, 6, 65, 88, 21, 10, 2, 78, 69, 68, + 68, 64, 66, 69, 66, 67, 64, 5, 66, 0, 3, 4, 62, + 62, 62, 62, 58, 52, 45, 28, 65, 64, 30, 23, 20, + 16, 10, 5, 2, 64, 74, 84, 79, 75, 79, 76, 69, + 73, 81, 69, 65, 3, 64, 0, 4, 4, 62, 62, 62, 57, + 52, 46, 35, 19, 69 }, + + { + + 62, + 9, 74, 62, 9, 74, 120, 98, 12, 10, 11, 25, 56, + 58, 54, 14, 108, 5, 74, 1, 1, 11, 72, 9, 68, 18, + 56, 73, 94, 106, 115, 99, 67, 74, 1, 1, 84, 90, + 4, 16, 68, 79, 93, 7, 68, 84, 88, 5, 75, 91, 8, + 70, 80, 88, 65, 72, 73, 78, 70, 5, 22, 0, 0, 0, + 80, 87, 97, 70, 19, 1, 18, 77, 95, 119, 91, 94, + 2, 75, 89, 79, 104, 85, 97, 89, 119, 90, 87, 94, + 104, 18, 64, 7, 90, 73, 89, 85, 120, 8, 2, 3, + 70, 16, 68, 68, 86, 84, 76, 74, 75, 9, 12, 67, + 13, 20, 80, 0, 69, 67, 6, 75, 26, 65, 2, 26, 34, + 36, 31, 24, 90, 71, 72, 14, 12, 98, 8, 10, 9, 3, + 7, 7, 4, 5, 2, 5, 67, 5, 21, 11, 71, 64, 2, 65, + 12, 20, 18, 10, 13, 5, 5, 4, 25, 18, 17, 77, 3, + 71, 33, 23, 19, 14, 17, 19, 12, 16, 23, 1, 16, + 9, 9, 5, 64, 11, 5, 9, 10, 7, 16, 24, 8, 81, 7, + 77, 14, 27, 83, 50, 62, 53, 52, 55, 56, 50, 50, + 46, 37, 30, 27, 34, 22, 74, 67, 3, 69, 29, 27, + 24, 29, 26, 20, 16, 17, 65, 2, 66, 93, 88, 105, + 74, 20, 18, 11, 0, 5, 69, 74, 80, 97, 74, 39, + 21, 15, 8, 6, 69, 80, 84, 111, 5, 35, 28, 25, + 20, 10, 5, 64, 73, 87, 70, 35, 31, 20, 4, 6, 71, + 80, 94, 5, 56, 47, 42, 33, 23, 5, 69, 77, 83, + 62, 102, 102, 84, 108, 105, 94, 104, 100, 98, + 101, 102, 105, 93, 92, 89, 90, 88, 84, 69, 79, + 82, 69, 2, 3, 1, 10, 10, 10, 5, 20, 16, 13, 13, + 9, 20, 15, 8, 19, 17, 12, 9, 11, 64, 65, 68, 5, + 71, 17, 30, 17, 10, 26, 23, 12, 20, 27, 18, 24, + 10, 4, 14, 49, 47, 50, 48, 49, 60, 62, 62, 62, + 62, 62, 62, 62, 62, 29, 62, 62, 62, 62, 62, 62, + 47, 33, 31, 6, 78, 73, 92, 116, 57, 56, 60, 51, + 47, 46, 35, 36, 26, 26, 17, 13, 11, 69, 74, 1, + 64, 69, 34, 38, 34, 25, 33, 32, 18, 25, 27, 16, + 2, 5, 66, 88, 20, 10, 1, 78, 69, 67, 67, 64, 65, + 68, 66, 66, 0, 6, 65, 1, 4, 5, 62, 62, 62, 61, + 55, 49, 42, 25, 68, 64, 30, 23, 20, 17, 10, 5, + 3, 64, 74, 83, 79, 74, 79, 75, 68, 73, 80, 68, + 64, 3, 64, 1, 4, 4, 62, 62, 61, 54, 49, 42, 31, + 16, 72 }, + + { + + 62, + 9, 74, 62, 9, 74, 118, 96, 12, 10, 10, 23, 54, + 57, 54, 14, 106, 5, 73, 2, 1, 11, 71, 8, 69, 18, + 54, 75, 95, 106, 112, 97, 67, 73, 2, 1, 84, 89, + 4, 16, 68, 79, 92, 7, 69, 84, 88, 5, 75, 90, 8, + 70, 80, 88, 64, 72, 72, 78, 69, 5, 22, 0, 0, 0, + 80, 87, 97, 69, 18, 1, 18, 76, 95, 117, 89, 93, + 4, 73, 87, 78, 103, 84, 96, 88, 117, 89, 87, 93, + 103, 18, 64, 7, 90, 73, 89, 84, 118, 8, 2, 3, + 70, 16, 68, 67, 85, 84, 76, 74, 74, 9, 12, 67, + 13, 20, 79, 0, 68, 67, 6, 75, 25, 65, 2, 25, 33, + 36, 30, 23, 89, 70, 72, 13, 12, 97, 8, 10, 9, 3, + 7, 7, 5, 5, 2, 5, 67, 5, 20, 11, 72, 64, 2, 65, + 11, 19, 18, 10, 12, 5, 5, 4, 24, 18, 16, 77, 3, + 71, 32, 23, 19, 14, 17, 19, 12, 16, 23, 1, 16, + 9, 9, 5, 64, 11, 5, 8, 10, 7, 15, 23, 8, 81, 6, + 77, 13, 26, 83, 49, 61, 52, 51, 53, 54, 48, 48, + 44, 35, 28, 25, 32, 21, 75, 67, 3, 69, 28, 26, + 23, 28, 25, 18, 15, 16, 66, 2, 66, 93, 88, 105, + 74, 20, 18, 11, 0, 5, 68, 73, 79, 96, 74, 39, + 21, 15, 8, 6, 68, 79, 83, 109, 5, 35, 28, 25, + 20, 10, 5, 64, 73, 86, 70, 36, 31, 19, 4, 6, 71, + 80, 93, 5, 56, 46, 41, 32, 23, 5, 69, 77, 82, + 62, 101, 101, 83, 107, 104, 93, 103, 99, 97, + 100, 100, 103, 92, 91, 89, 90, 87, 84, 69, 78, + 81, 69, 1, 3, 1, 10, 9, 9, 4, 19, 15, 13, 12, 9, + 20, 15, 8, 18, 16, 12, 9, 10, 64, 65, 68, 5, 71, + 16, 30, 17, 10, 25, 22, 12, 19, 26, 17, 23, 9, + 3, 12, 48, 46, 50, 47, 48, 58, 62, 62, 62, 62, + 62, 62, 62, 62, 28, 62, 62, 62, 62, 62, 61, 45, + 32, 30, 6, 77, 73, 91, 114, 55, 55, 58, 49, 45, + 44, 34, 34, 25, 24, 16, 11, 9, 70, 75, 1, 64, + 70, 33, 36, 32, 23, 32, 31, 16, 24, 26, 14, 1, + 4, 67, 89, 20, 9, 0, 77, 68, 67, 67, 0, 64, 67, + 65, 65, 1, 8, 64, 2, 5, 7, 62, 62, 62, 58, 53, + 46, 39, 22, 70, 64, 31, 24, 21, 17, 11, 5, 3, 0, + 73, 83, 79, 73, 78, 74, 67, 72, 79, 68, 64, 3, + 0, 2, 4, 4, 62, 62, 58, 51, 46, 39, 27, 12, 75 }, + + { + + 62, + 9, 75, 62, 9, 75, 116, 95, 13, 10, 10, 22, 53, + 56, 54, 14, 104, 5, 73, 3, 1, 10, 71, 7, 70, 17, + 53, 76, 96, 107, 109, 96, 67, 73, 3, 1, 83, 88, + 5, 15, 67, 78, 91, 6, 69, 84, 88, 5, 74, 90, 8, + 70, 79, 88, 64, 72, 72, 78, 69, 5, 22, 0, 0, 0, + 79, 87, 97, 69, 18, 0, 18, 76, 94, 115, 87, 91, + 5, 71, 86, 77, 101, 83, 95, 88, 116, 89, 87, 93, + 103, 19, 64, 7, 89, 72, 88, 84, 117, 8, 1, 2, + 71, 16, 68, 67, 85, 84, 75, 74, 74, 9, 12, 66, + 13, 19, 79, 0, 68, 67, 6, 75, 24, 65, 2, 24, 32, + 35, 30, 23, 89, 70, 72, 13, 11, 97, 7, 10, 9, 3, + 7, 7, 5, 5, 2, 5, 66, 5, 19, 11, 72, 65, 2, 66, + 11, 18, 18, 10, 11, 5, 5, 4, 22, 18, 15, 77, 3, + 72, 31, 23, 18, 14, 17, 19, 12, 16, 23, 1, 15, + 9, 8, 5, 64, 10, 4, 8, 9, 6, 14, 22, 7, 81, 6, + 76, 12, 24, 83, 47, 59, 50, 49, 51, 52, 46, 46, + 42, 33, 27, 24, 30, 19, 76, 67, 3, 70, 27, 25, + 22, 26, 23, 17, 14, 15, 67, 1, 67, 93, 88, 104, + 73, 20, 18, 11, 1, 5, 68, 73, 79, 95, 73, 38, + 21, 15, 8, 7, 68, 78, 82, 107, 5, 36, 28, 25, + 20, 11, 5, 64, 72, 86, 70, 36, 31, 19, 4, 6, 70, + 79, 92, 5, 55, 46, 40, 32, 23, 5, 68, 76, 82, + 62, 101, 100, 83, 106, 103, 92, 101, 98, 96, 99, + 99, 102, 92, 90, 89, 89, 85, 84, 70, 78, 81, 69, + 1, 2, 1, 9, 8, 8, 3, 19, 15, 13, 12, 8, 19, 14, + 8, 18, 16, 11, 9, 10, 64, 66, 68, 5, 72, 16, 29, + 16, 9, 24, 22, 13, 19, 25, 17, 23, 9, 3, 11, 47, + 45, 49, 46, 47, 57, 62, 62, 62, 62, 62, 62, 62, + 61, 27, 62, 62, 62, 62, 62, 59, 43, 31, 29, 6, + 76, 73, 89, 111, 53, 53, 56, 47, 43, 42, 32, 32, + 23, 23, 15, 10, 8, 71, 76, 0, 65, 71, 32, 35, + 31, 21, 30, 29, 15, 22, 24, 13, 64, 2, 69, 90, + 19, 8, 64, 77, 68, 67, 66, 0, 64, 65, 64, 64, 2, + 9, 1, 3, 7, 8, 62, 62, 60, 56, 50, 44, 36, 20, + 72, 0, 31, 24, 21, 17, 12, 6, 3, 0, 73, 83, 78, + 73, 78, 73, 66, 72, 79, 67, 0, 3, 0, 3, 4, 4, + 62, 62, 56, 48, 42, 35, 24, 9, 77 }, + + { + + 62, + 9, 75, 62, 9, 75, 114, 93, 13, 10, 9, 20, 51, + 54, 54, 14, 101, 4, 72, 3, 1, 9, 71, 6, 71, 17, + 51, 78, 97, 107, 106, 95, 67, 72, 3, 1, 83, 87, + 5, 15, 67, 78, 91, 6, 70, 83, 88, 5, 74, 89, 7, + 70, 79, 88, 0, 71, 72, 77, 68, 5, 22, 0, 0, 0, + 79, 87, 97, 68, 17, 0, 18, 76, 94, 114, 85, 90, + 7, 69, 85, 76, 100, 81, 94, 87, 114, 88, 86, 92, + 102, 19, 64, 7, 89, 72, 88, 83, 115, 7, 1, 2, + 71, 16, 68, 67, 84, 84, 75, 74, 73, 9, 11, 66, + 13, 19, 79, 0, 68, 67, 6, 75, 24, 65, 2, 24, 31, + 34, 29, 22, 88, 69, 72, 12, 11, 96, 7, 10, 8, 3, + 7, 7, 6, 6, 2, 5, 66, 5, 18, 11, 73, 65, 2, 66, + 10, 17, 17, 10, 11, 6, 5, 4, 21, 17, 14, 77, 3, + 72, 31, 23, 18, 14, 17, 19, 12, 16, 23, 1, 15, + 9, 8, 5, 64, 10, 4, 7, 9, 6, 14, 21, 7, 81, 5, + 76, 11, 23, 83, 46, 57, 48, 47, 49, 50, 44, 44, + 40, 31, 25, 22, 27, 17, 77, 67, 2, 70, 26, 24, + 21, 25, 22, 15, 13, 14, 67, 1, 67, 93, 88, 104, + 73, 20, 18, 11, 1, 5, 68, 73, 78, 94, 73, 38, + 21, 15, 8, 7, 67, 77, 82, 105, 5, 36, 28, 25, + 20, 11, 5, 64, 72, 85, 70, 36, 30, 18, 4, 6, 70, + 79, 92, 5, 55, 45, 39, 31, 23, 5, 68, 76, 81, + 62, 100, 99, 82, 104, 102, 91, 100, 96, 95, 97, + 97, 100, 91, 89, 88, 89, 84, 83, 70, 78, 80, 69, + 0, 2, 0, 8, 7, 7, 2, 18, 14, 13, 11, 8, 19, 14, + 8, 17, 15, 11, 8, 9, 64, 66, 68, 5, 72, 15, 29, + 15, 9, 23, 21, 13, 18, 24, 16, 22, 8, 2, 9, 46, + 45, 49, 45, 45, 55, 62, 62, 62, 62, 62, 62, 62, + 59, 25, 62, 62, 62, 62, 62, 56, 41, 30, 28, 6, + 75, 72, 88, 109, 52, 51, 54, 46, 41, 40, 31, 30, + 22, 21, 13, 8, 6, 72, 77, 0, 65, 72, 30, 33, 29, + 20, 28, 27, 13, 21, 22, 11, 65, 1, 70, 90, 18, + 8, 65, 77, 67, 66, 66, 1, 0, 64, 0, 0, 3, 10, 2, + 4, 8, 9, 62, 61, 58, 53, 48, 41, 33, 17, 74, 0, + 32, 25, 22, 18, 13, 6, 4, 1, 72, 82, 78, 72, 77, + 72, 65, 72, 78, 67, 0, 3, 1, 4, 4, 4, 62, 62, + 53, 45, 39, 31, 20, 5, 80 }, + + { + + 62, + 8, 75, 62, 8, 75, 113, 92, 13, 10, 9, 19, 50, + 53, 54, 14, 99, 4, 71, 4, 1, 8, 71, 5, 73, 16, + 49, 80, 98, 108, 104, 94, 67, 71, 4, 1, 83, 86, + 5, 14, 67, 78, 90, 5, 70, 83, 89, 5, 74, 89, 7, + 71, 79, 88, 0, 71, 72, 77, 68, 5, 22, 0, 0, 0, + 78, 88, 97, 68, 16, 0, 18, 76, 94, 112, 84, 88, + 8, 68, 84, 75, 99, 80, 93, 86, 112, 88, 86, 92, + 101, 19, 64, 7, 88, 72, 87, 83, 114, 7, 0, 1, + 72, 16, 68, 67, 84, 84, 75, 74, 73, 8, 11, 66, + 13, 18, 79, 0, 68, 67, 5, 75, 23, 66, 2, 23, 29, + 33, 28, 21, 88, 69, 72, 11, 10, 96, 6, 9, 8, 3, + 7, 7, 7, 6, 2, 4, 66, 4, 17, 10, 74, 65, 2, 67, + 10, 16, 17, 9, 10, 6, 5, 4, 19, 17, 13, 77, 3, + 73, 30, 22, 18, 14, 17, 18, 11, 16, 22, 0, 14, + 9, 8, 4, 65, 9, 3, 7, 8, 5, 13, 20, 6, 81, 5, + 76, 10, 21, 83, 44, 55, 46, 45, 47, 47, 42, 42, + 38, 29, 23, 20, 25, 15, 78, 67, 2, 71, 25, 22, + 19, 23, 20, 14, 11, 12, 68, 0, 68, 93, 88, 103, + 73, 20, 18, 11, 1, 5, 68, 73, 78, 93, 72, 38, + 21, 15, 8, 7, 67, 77, 81, 104, 5, 36, 28, 25, + 19, 11, 5, 64, 72, 85, 70, 36, 30, 18, 4, 6, 70, + 79, 91, 5, 54, 44, 38, 30, 22, 5, 68, 76, 81, + 62, 99, 98, 82, 103, 101, 91, 99, 95, 94, 96, + 96, 99, 91, 89, 88, 88, 83, 83, 71, 78, 80, 69, + 0, 1, 0, 7, 6, 5, 1, 17, 14, 13, 11, 7, 18, 13, + 7, 16, 14, 10, 8, 8, 65, 67, 68, 5, 73, 14, 28, + 14, 9, 22, 20, 13, 17, 23, 16, 22, 7, 1, 7, 45, + 44, 48, 43, 44, 54, 62, 62, 62, 62, 62, 62, 62, + 56, 24, 62, 62, 62, 62, 61, 54, 39, 28, 26, 6, + 75, 72, 87, 107, 50, 49, 52, 44, 38, 38, 29, 28, + 20, 19, 12, 6, 5, 73, 78, 64, 66, 73, 29, 32, + 27, 18, 26, 25, 12, 19, 20, 10, 66, 64, 72, 91, + 17, 7, 66, 77, 67, 66, 65, 1, 0, 0, 0, 1, 4, 11, + 3, 5, 9, 10, 61, 59, 56, 51, 45, 38, 30, 14, 77, + 0, 32, 25, 22, 18, 13, 6, 4, 1, 72, 82, 78, 72, + 77, 71, 64, 72, 78, 66, 1, 3, 1, 4, 4, 3, 62, + 61, 51, 42, 36, 27, 16, 2, 83 }, + + { + + 62, + 8, 75, 62, 8, 75, 111, 91, 14, 10, 9, 18, 49, + 52, 54, 14, 97, 4, 70, 5, 1, 8, 70, 4, 74, 15, + 47, 81, 99, 109, 101, 92, 67, 70, 5, 1, 82, 85, + 6, 13, 67, 77, 89, 5, 70, 83, 89, 5, 74, 88, 7, + 71, 79, 88, 0, 71, 71, 77, 68, 5, 22, 0, 0, 0, + 77, 88, 97, 68, 15, 0, 18, 75, 94, 110, 82, 86, + 9, 66, 82, 74, 97, 79, 91, 85, 110, 88, 86, 92, + 100, 19, 64, 7, 87, 72, 86, 82, 113, 7, 0, 1, + 72, 16, 68, 66, 83, 83, 74, 74, 73, 8, 11, 66, + 13, 18, 78, 0, 67, 67, 5, 74, 22, 66, 2, 22, 28, + 33, 27, 20, 87, 69, 71, 10, 9, 96, 5, 9, 8, 4, + 7, 7, 8, 6, 2, 4, 65, 4, 17, 10, 75, 65, 2, 68, + 10, 15, 17, 9, 9, 6, 5, 4, 18, 17, 13, 77, 3, + 74, 29, 22, 18, 14, 17, 18, 11, 16, 22, 0, 14, + 9, 8, 4, 65, 9, 3, 7, 8, 5, 12, 20, 6, 81, 5, + 76, 9, 20, 83, 42, 54, 45, 44, 45, 45, 41, 41, + 36, 27, 22, 19, 23, 14, 79, 67, 2, 72, 24, 21, + 18, 22, 19, 13, 10, 11, 69, 64, 69, 93, 87, 102, + 72, 21, 18, 11, 1, 6, 67, 72, 77, 92, 71, 38, + 21, 15, 8, 8, 67, 76, 80, 102, 5, 36, 28, 25, + 19, 12, 5, 64, 72, 84, 70, 37, 30, 18, 4, 7, 70, + 79, 90, 5, 54, 44, 38, 29, 22, 5, 68, 75, 80, + 62, 98, 97, 81, 102, 99, 90, 97, 94, 92, 95, 95, + 97, 90, 88, 88, 87, 81, 83, 72, 77, 79, 69, 0, + 0, 0, 7, 5, 4, 0, 17, 14, 13, 11, 7, 17, 13, 7, + 15, 14, 10, 8, 7, 65, 67, 67, 6, 73, 14, 27, 14, + 9, 22, 20, 13, 16, 22, 16, 22, 6, 1, 6, 45, 43, + 47, 42, 43, 53, 60, 60, 62, 62, 62, 62, 62, 54, + 23, 62, 62, 62, 62, 58, 52, 38, 27, 25, 6, 74, + 72, 86, 105, 48, 48, 50, 42, 36, 37, 28, 26, 19, + 18, 11, 5, 4, 74, 78, 64, 66, 74, 28, 31, 26, + 16, 25, 24, 11, 18, 19, 9, 67, 65, 73, 92, 17, + 6, 66, 76, 67, 66, 64, 2, 1, 1, 1, 2, 5, 13, 4, + 6, 11, 12, 60, 58, 54, 49, 42, 35, 27, 11, 79, + 1, 32, 25, 23, 18, 14, 7, 4, 2, 71, 82, 77, 71, + 77, 70, 1, 71, 77, 65, 2, 3, 2, 5, 4, 3, 62, 59, + 49, 40, 33, 24, 12, 64, 85 }, + + { + + 62, + 8, 75, 62, 8, 75, 109, 89, 14, 10, 8, 16, 47, + 50, 54, 14, 94, 3, 69, 5, 1, 7, 70, 3, 75, 15, + 45, 83, 100, 109, 98, 91, 67, 69, 5, 1, 82, 84, + 6, 13, 67, 77, 89, 5, 71, 82, 89, 5, 74, 87, 6, + 71, 79, 88, 1, 70, 71, 76, 67, 5, 22, 0, 0, 0, + 77, 88, 97, 67, 14, 0, 18, 75, 94, 109, 80, 85, + 11, 64, 81, 73, 96, 77, 90, 84, 108, 87, 85, 91, + 99, 19, 64, 7, 87, 72, 86, 82, 111, 6, 0, 1, 72, + 16, 68, 66, 83, 83, 74, 74, 72, 8, 10, 66, 13, + 18, 78, 0, 67, 67, 5, 74, 22, 66, 2, 22, 27, 32, + 26, 19, 86, 68, 71, 9, 9, 95, 5, 9, 7, 4, 7, 7, + 9, 7, 2, 4, 65, 4, 16, 10, 76, 65, 2, 68, 9, 14, + 16, 9, 9, 7, 5, 4, 17, 16, 12, 77, 3, 74, 29, + 22, 18, 14, 17, 18, 11, 16, 22, 0, 14, 9, 8, 4, + 65, 9, 3, 6, 8, 5, 12, 19, 5, 81, 4, 76, 8, 19, + 83, 41, 52, 43, 42, 43, 43, 39, 39, 34, 25, 20, + 17, 20, 12, 80, 67, 1, 72, 23, 20, 17, 21, 17, + 11, 9, 10, 69, 64, 69, 93, 87, 102, 72, 21, 18, + 11, 1, 6, 67, 72, 77, 91, 71, 38, 21, 15, 8, 8, + 66, 75, 80, 100, 5, 36, 28, 25, 19, 12, 5, 64, + 72, 83, 70, 37, 29, 17, 4, 7, 70, 79, 90, 5, 53, + 43, 37, 28, 22, 5, 68, 75, 80, 62, 97, 96, 80, + 100, 98, 89, 96, 92, 91, 93, 93, 95, 89, 87, 87, + 87, 80, 82, 72, 77, 78, 69, 64, 0, 64, 6, 4, 3, + 64, 16, 13, 13, 10, 6, 17, 13, 7, 14, 13, 10, 7, + 6, 65, 67, 67, 6, 73, 13, 27, 13, 9, 21, 19, 13, + 15, 21, 15, 21, 5, 0, 4, 44, 43, 47, 41, 41, 51, + 58, 58, 62, 62, 62, 62, 62, 52, 21, 59, 62, 59, + 62, 56, 49, 36, 26, 24, 6, 73, 71, 85, 103, 47, + 46, 48, 41, 34, 35, 26, 24, 18, 16, 9, 3, 2, 75, + 79, 65, 66, 75, 26, 29, 24, 15, 23, 22, 9, 16, + 17, 7, 68, 66, 74, 92, 16, 6, 67, 76, 66, 65, + 64, 2, 2, 2, 2, 3, 6, 14, 5, 7, 12, 13, 60, 56, + 52, 46, 40, 32, 24, 8, 81, 1, 33, 26, 23, 19, + 15, 7, 5, 2, 71, 81, 77, 70, 76, 69, 2, 71, 76, + 65, 2, 3, 2, 6, 4, 3, 62, 57, 46, 37, 30, 20, 8, + 68, 88 }, + + { + + 62, + 8, 76, 62, 8, 76, 107, 88, 15, 10, 8, 15, 46, + 49, 54, 14, 92, 3, 69, 6, 1, 6, 70, 2, 76, 14, + 44, 84, 101, 110, 95, 90, 67, 69, 6, 1, 81, 83, + 7, 12, 66, 76, 88, 4, 71, 82, 89, 5, 73, 87, 6, + 71, 78, 88, 1, 70, 71, 76, 67, 5, 22, 0, 0, 0, + 76, 88, 97, 67, 14, 64, 18, 75, 93, 107, 78, 83, + 12, 1, 80, 72, 94, 76, 89, 84, 107, 87, 85, 91, + 99, 20, 64, 7, 86, 71, 85, 81, 110, 6, 64, 0, + 73, 16, 68, 66, 82, 83, 73, 74, 72, 8, 10, 65, + 13, 17, 78, 0, 67, 67, 5, 74, 21, 66, 2, 21, 26, + 31, 26, 19, 86, 68, 71, 9, 8, 95, 4, 9, 7, 4, 7, + 7, 9, 7, 2, 4, 64, 4, 15, 10, 76, 66, 2, 69, 9, + 13, 16, 9, 8, 7, 5, 4, 15, 16, 11, 77, 3, 75, + 28, 22, 17, 14, 17, 18, 11, 16, 22, 0, 13, 9, 7, + 4, 65, 8, 2, 6, 7, 4, 11, 18, 5, 81, 4, 75, 7, + 17, 83, 39, 50, 41, 40, 41, 41, 37, 37, 32, 23, + 19, 16, 18, 10, 81, 67, 1, 73, 22, 19, 16, 19, + 16, 10, 8, 9, 70, 65, 70, 93, 87, 101, 71, 21, + 18, 11, 2, 6, 67, 72, 76, 90, 70, 37, 21, 15, 8, + 9, 66, 74, 79, 98, 5, 37, 28, 25, 19, 13, 5, 64, + 71, 83, 70, 37, 29, 17, 4, 7, 69, 78, 89, 5, 53, + 43, 36, 28, 22, 5, 67, 74, 79, 62, 97, 95, 80, + 99, 97, 88, 94, 91, 90, 92, 92, 94, 89, 86, 87, + 86, 78, 82, 73, 77, 78, 69, 64, 64, 64, 5, 3, 2, + 65, 16, 13, 13, 10, 6, 16, 12, 7, 14, 13, 9, 7, + 6, 65, 68, 67, 6, 74, 13, 26, 12, 8, 20, 19, 14, + 15, 20, 15, 21, 5, 0, 3, 43, 42, 46, 40, 40, 50, + 56, 56, 61, 60, 62, 62, 60, 49, 20, 57, 62, 56, + 62, 53, 47, 34, 25, 23, 6, 72, 71, 83, 100, 45, + 44, 46, 39, 32, 33, 25, 22, 16, 15, 8, 2, 1, 76, + 80, 65, 67, 76, 25, 28, 23, 13, 21, 20, 8, 15, + 15, 6, 70, 68, 76, 93, 15, 5, 68, 76, 66, 65, 0, + 3, 2, 4, 3, 4, 7, 15, 7, 8, 14, 14, 59, 55, 50, + 44, 37, 30, 21, 6, 83, 2, 33, 26, 24, 19, 16, 8, + 5, 3, 70, 81, 76, 70, 76, 68, 3, 71, 76, 64, 3, + 3, 3, 7, 4, 3, 62, 55, 44, 34, 26, 16, 5, 71, 90 }, + + { + + 62, + 8, 76, 62, 8, 76, 106, 86, 15, 10, 7, 13, 44, + 48, 54, 14, 90, 3, 68, 7, 1, 5, 70, 1, 77, 14, + 42, 86, 102, 110, 92, 89, 67, 68, 7, 1, 81, 82, + 7, 12, 66, 76, 87, 4, 72, 82, 89, 5, 73, 86, 6, + 72, 78, 88, 2, 70, 71, 76, 66, 5, 22, 0, 0, 0, + 76, 89, 97, 66, 13, 64, 18, 75, 93, 105, 77, 82, + 14, 2, 79, 71, 93, 75, 88, 83, 105, 86, 85, 90, + 98, 20, 64, 7, 86, 71, 85, 81, 108, 6, 64, 0, + 73, 16, 68, 66, 82, 83, 73, 74, 71, 8, 10, 65, + 13, 17, 78, 0, 67, 67, 5, 74, 20, 67, 2, 20, 25, + 30, 25, 18, 85, 67, 71, 8, 8, 94, 4, 9, 7, 4, 7, + 7, 10, 7, 2, 3, 64, 3, 14, 9, 77, 66, 2, 69, 8, + 12, 16, 8, 7, 7, 5, 4, 14, 16, 10, 77, 3, 75, + 27, 22, 17, 14, 17, 18, 11, 16, 21, 0, 13, 9, 7, + 4, 66, 8, 2, 5, 7, 4, 10, 17, 4, 81, 3, 75, 6, + 16, 83, 38, 48, 39, 38, 39, 39, 35, 35, 30, 21, + 17, 14, 16, 8, 82, 67, 1, 73, 21, 18, 15, 18, + 14, 8, 7, 7, 71, 65, 70, 93, 87, 101, 71, 21, + 18, 11, 2, 6, 67, 72, 76, 89, 70, 37, 21, 15, 8, + 9, 65, 74, 78, 96, 5, 37, 28, 25, 19, 13, 5, 64, + 71, 82, 70, 37, 29, 16, 4, 7, 69, 78, 88, 5, 52, + 42, 35, 27, 22, 5, 67, 74, 79, 62, 96, 94, 79, + 98, 96, 87, 93, 90, 89, 91, 90, 92, 88, 86, 87, + 86, 77, 82, 73, 77, 77, 69, 65, 64, 64, 4, 2, 1, + 66, 15, 12, 13, 9, 5, 16, 12, 7, 13, 12, 9, 7, + 5, 66, 68, 67, 6, 74, 12, 26, 11, 8, 19, 18, 14, + 14, 19, 14, 20, 4, 64, 1, 42, 41, 46, 39, 39, + 48, 54, 54, 59, 57, 62, 62, 57, 47, 19, 54, 62, + 53, 58, 50, 44, 32, 24, 21, 6, 71, 71, 82, 98, + 43, 42, 44, 37, 30, 31, 23, 20, 15, 13, 7, 0, + 64, 77, 81, 66, 67, 77, 24, 26, 21, 11, 19, 18, + 6, 13, 13, 4, 71, 69, 77, 94, 14, 4, 69, 76, 65, + 65, 0, 3, 3, 5, 3, 5, 8, 16, 8, 9, 15, 15, 59, + 53, 48, 41, 35, 27, 18, 3, 86, 2, 34, 27, 24, + 19, 16, 8, 5, 3, 70, 81, 76, 69, 75, 67, 4, 71, + 75, 64, 3, 3, 3, 8, 4, 3, 61, 53, 41, 31, 23, + 12, 1, 75, 93 }, + + { + + 62, + 8, 76, 62, 8, 76, 104, 85, 15, 10, 7, 12, 43, + 46, 54, 14, 87, 2, 67, 7, 1, 5, 69, 0, 78, 13, + 40, 88, 103, 111, 89, 87, 67, 67, 7, 1, 81, 81, + 7, 11, 66, 76, 87, 4, 72, 81, 89, 5, 73, 85, 5, + 72, 78, 88, 2, 69, 70, 75, 66, 5, 22, 0, 0, 0, + 75, 89, 97, 66, 12, 64, 18, 74, 93, 104, 75, 80, + 15, 4, 77, 70, 92, 73, 87, 82, 103, 86, 84, 90, + 97, 20, 64, 7, 85, 71, 84, 80, 107, 5, 64, 0, + 73, 16, 68, 65, 81, 83, 73, 74, 71, 8, 9, 65, + 13, 17, 77, 0, 66, 67, 5, 74, 20, 67, 2, 20, 24, + 30, 24, 17, 84, 67, 71, 7, 7, 94, 3, 9, 6, 4, 7, + 7, 11, 8, 2, 3, 64, 3, 13, 9, 78, 66, 2, 70, 8, + 11, 15, 8, 7, 8, 5, 4, 13, 15, 9, 77, 3, 76, 27, + 22, 17, 14, 17, 18, 11, 16, 21, 0, 13, 9, 7, 4, + 66, 8, 2, 5, 7, 4, 10, 16, 4, 81, 3, 75, 5, 15, + 83, 36, 46, 38, 37, 37, 37, 33, 33, 28, 19, 15, + 12, 13, 7, 83, 67, 0, 74, 20, 17, 14, 17, 13, 7, + 6, 6, 71, 66, 71, 93, 87, 100, 71, 21, 18, 11, + 2, 6, 66, 71, 75, 88, 69, 37, 21, 15, 8, 9, 65, + 73, 78, 94, 5, 37, 28, 25, 19, 13, 5, 64, 71, + 81, 70, 38, 28, 16, 4, 7, 69, 78, 88, 5, 52, 41, + 34, 26, 22, 5, 67, 74, 78, 62, 95, 93, 78, 96, + 95, 86, 92, 88, 88, 89, 89, 90, 87, 85, 86, 85, + 76, 81, 74, 76, 76, 69, 65, 65, 65, 4, 1, 0, 67, + 14, 12, 13, 9, 5, 15, 12, 7, 12, 11, 9, 6, 4, + 66, 68, 67, 6, 74, 11, 25, 11, 8, 18, 17, 14, + 13, 18, 14, 20, 3, 65, 64, 41, 41, 45, 38, 37, + 47, 52, 52, 57, 55, 62, 61, 54, 45, 17, 51, 62, + 50, 54, 48, 42, 30, 23, 20, 6, 70, 70, 81, 96, + 42, 41, 42, 36, 28, 29, 22, 18, 14, 11, 5, 65, + 65, 78, 82, 66, 67, 78, 22, 25, 19, 10, 18, 17, + 5, 12, 12, 3, 72, 70, 78, 94, 14, 4, 70, 75, 65, + 64, 1, 4, 4, 6, 4, 6, 9, 18, 9, 10, 16, 17, 58, + 51, 46, 39, 32, 24, 15, 0, 88, 2, 34, 27, 25, + 20, 17, 8, 6, 4, 69, 80, 76, 68, 75, 66, 5, 70, + 74, 0, 4, 3, 4, 9, 4, 3, 59, 51, 39, 28, 20, 9, + 66, 78, 96 }, + + { + + 61, + 8, 76, 61, 8, 76, 102, 83, 16, 10, 6, 10, 41, + 45, 54, 14, 85, 2, 66, 8, 1, 4, 69, 64, 79, 13, + 38, 89, 104, 111, 86, 86, 67, 66, 8, 1, 80, 80, + 8, 11, 66, 75, 86, 3, 73, 81, 89, 5, 73, 85, 5, + 72, 78, 88, 3, 69, 70, 75, 65, 5, 22, 0, 0, 0, + 75, 89, 97, 65, 11, 64, 18, 74, 93, 102, 73, 79, + 17, 6, 76, 69, 90, 72, 86, 81, 101, 85, 84, 89, + 96, 20, 64, 7, 85, 71, 84, 80, 105, 5, 65, 64, + 74, 16, 68, 65, 81, 83, 72, 74, 70, 8, 9, 65, + 13, 16, 77, 0, 66, 67, 5, 74, 19, 67, 2, 19, 23, + 29, 23, 16, 84, 66, 71, 6, 7, 93, 3, 9, 6, 4, 7, + 7, 12, 8, 2, 3, 0, 3, 12, 9, 79, 66, 2, 70, 7, + 10, 15, 8, 6, 8, 5, 4, 11, 15, 8, 77, 3, 76, 26, + 22, 17, 14, 17, 18, 11, 16, 21, 0, 12, 9, 7, 4, + 66, 7, 1, 4, 6, 3, 9, 15, 3, 81, 2, 75, 4, 13, + 83, 35, 44, 36, 35, 35, 35, 31, 31, 26, 17, 14, + 11, 11, 5, 84, 67, 0, 74, 19, 16, 13, 15, 11, 5, + 5, 5, 72, 66, 71, 93, 87, 100, 70, 21, 18, 11, + 2, 6, 66, 71, 75, 87, 69, 37, 21, 15, 8, 10, 64, + 72, 77, 92, 5, 37, 28, 25, 19, 14, 5, 64, 71, + 81, 70, 38, 28, 15, 4, 7, 69, 78, 87, 5, 51, 41, + 33, 25, 22, 5, 67, 73, 78, 62, 94, 92, 78, 95, + 94, 85, 90, 87, 87, 88, 87, 89, 87, 84, 86, 85, + 74, 81, 74, 76, 76, 69, 66, 65, 65, 3, 0, 64, + 68, 14, 11, 13, 8, 4, 15, 11, 7, 11, 11, 8, 6, + 3, 66, 69, 67, 6, 75, 11, 25, 10, 8, 17, 17, 14, + 12, 17, 13, 19, 2, 65, 65, 40, 40, 45, 37, 36, + 45, 50, 50, 55, 52, 60, 59, 51, 42, 16, 48, 62, + 47, 50, 45, 39, 28, 22, 19, 6, 69, 70, 80, 94, + 40, 39, 40, 34, 26, 27, 20, 16, 12, 10, 4, 66, + 67, 79, 83, 67, 68, 79, 21, 23, 18, 8, 16, 15, + 3, 10, 10, 1, 73, 72, 80, 95, 13, 3, 71, 75, 64, + 64, 1, 4, 4, 7, 5, 7, 10, 19, 10, 11, 18, 18, + 58, 50, 44, 36, 30, 21, 12, 66, 90, 3, 35, 28, + 25, 20, 18, 9, 6, 4, 69, 80, 75, 68, 74, 65, 6, + 70, 74, 0, 4, 3, 4, 10, 4, 3, 58, 49, 36, 25, + 17, 5, 70, 82, 98 }, + + { + + 60, + 8, 76, 60, 8, 76, 100, 82, 16, 10, 6, 9, 40, 44, + 54, 14, 83, 2, 65, 9, 1, 3, 69, 65, 80, 12, 36, + 91, 105, 112, 83, 85, 67, 65, 9, 1, 80, 79, 8, + 10, 66, 75, 85, 3, 73, 81, 89, 5, 73, 84, 5, 72, + 78, 88, 3, 69, 70, 75, 65, 5, 22, 0, 0, 0, 74, + 89, 97, 65, 10, 64, 18, 74, 93, 100, 71, 77, 18, + 8, 75, 68, 89, 71, 85, 80, 99, 85, 84, 89, 95, + 20, 64, 7, 84, 71, 83, 79, 104, 5, 65, 64, 74, + 16, 68, 65, 80, 83, 72, 74, 70, 8, 9, 65, 13, + 16, 77, 0, 66, 67, 5, 74, 18, 67, 2, 18, 22, 28, + 22, 15, 83, 66, 71, 5, 6, 93, 2, 9, 6, 4, 7, 7, + 13, 8, 2, 3, 0, 3, 11, 9, 80, 66, 2, 71, 7, 9, + 15, 8, 5, 8, 5, 4, 10, 15, 7, 77, 3, 77, 25, 22, + 17, 14, 17, 18, 11, 16, 21, 0, 12, 9, 7, 4, 66, + 7, 1, 4, 6, 3, 8, 14, 3, 81, 2, 75, 3, 12, 83, + 33, 42, 34, 33, 33, 33, 29, 29, 24, 15, 12, 9, + 9, 3, 85, 67, 0, 75, 18, 15, 12, 14, 10, 4, 4, + 4, 73, 67, 72, 93, 87, 99, 70, 21, 18, 11, 2, 6, + 66, 71, 74, 86, 68, 37, 21, 15, 8, 10, 64, 71, + 76, 90, 5, 37, 28, 25, 19, 14, 5, 64, 71, 80, + 70, 38, 28, 15, 4, 7, 69, 78, 86, 5, 51, 40, 32, + 24, 22, 5, 67, 73, 77, 62, 93, 91, 77, 94, 93, + 84, 89, 86, 86, 87, 86, 87, 86, 83, 86, 84, 73, + 81, 75, 76, 75, 69, 66, 66, 65, 2, 64, 65, 69, + 13, 11, 13, 8, 4, 14, 11, 7, 10, 10, 8, 6, 2, + 66, 69, 67, 6, 75, 10, 24, 9, 8, 16, 16, 14, 11, + 16, 13, 19, 1, 66, 67, 39, 39, 44, 36, 35, 44, + 48, 48, 53, 50, 57, 56, 48, 40, 15, 45, 59, 44, + 46, 42, 37, 26, 21, 18, 6, 68, 70, 79, 92, 38, + 37, 38, 32, 24, 25, 19, 14, 11, 8, 3, 68, 68, + 80, 84, 67, 68, 80, 20, 22, 16, 6, 14, 13, 2, 9, + 8, 0, 74, 73, 81, 96, 12, 2, 72, 75, 64, 64, 2, + 5, 5, 8, 6, 8, 11, 20, 11, 12, 19, 19, 57, 48, + 42, 34, 27, 18, 9, 69, 92, 3, 35, 28, 26, 20, + 19, 9, 6, 5, 68, 80, 75, 67, 74, 64, 7, 70, 73, + 1, 5, 3, 5, 11, 4, 3, 57, 47, 34, 22, 14, 1, 74, + 85, 101 }, + + { + + 58, + 7, 77, 58, 7, 77, 99, 81, 16, 10, 5, 7, 38, 42, + 53, 14, 81, 1, 65, 9, 0, 2, 69, 67, 82, 11, 34, + 93, 106, 113, 81, 84, 68, 65, 9, 0, 80, 78, 8, + 9, 66, 75, 85, 2, 74, 81, 90, 5, 73, 84, 4, 73, + 78, 88, 3, 69, 70, 75, 65, 4, 22, 0, 0, 0, 74, + 90, 97, 65, 9, 65, 18, 74, 93, 99, 70, 76, 19, + 9, 74, 67, 88, 70, 84, 80, 98, 85, 84, 89, 95, + 20, 64, 7, 84, 71, 83, 79, 103, 4, 66, 65, 75, + 16, 68, 65, 80, 83, 72, 74, 70, 7, 8, 65, 12, + 15, 77, 64, 66, 67, 4, 74, 17, 68, 1, 17, 20, + 27, 21, 14, 83, 66, 71, 4, 5, 93, 1, 8, 5, 4, 7, + 7, 13, 8, 2, 2, 0, 2, 10, 8, 81, 67, 1, 72, 6, + 8, 14, 7, 4, 8, 5, 4, 8, 14, 6, 77, 3, 78, 24, + 21, 16, 14, 17, 17, 10, 16, 20, 64, 11, 9, 6, 3, + 67, 6, 0, 3, 5, 2, 7, 13, 2, 81, 1, 75, 2, 10, + 83, 31, 40, 32, 31, 31, 30, 27, 27, 22, 13, 10, + 7, 6, 1, 87, 68, 64, 76, 17, 13, 10, 12, 8, 2, + 2, 2, 74, 68, 73, 93, 87, 99, 70, 21, 18, 11, 2, + 6, 66, 71, 74, 85, 68, 36, 21, 15, 8, 10, 64, + 71, 76, 89, 4, 37, 28, 24, 18, 14, 5, 64, 71, + 80, 70, 38, 27, 14, 3, 7, 69, 78, 86, 5, 50, 39, + 31, 23, 21, 5, 67, 73, 77, 62, 93, 90, 77, 93, + 92, 84, 88, 85, 85, 86, 85, 86, 86, 83, 86, 84, + 72, 81, 76, 76, 75, 69, 67, 67, 66, 1, 65, 67, + 71, 12, 10, 13, 7, 3, 13, 10, 6, 9, 9, 7, 5, 1, + 67, 70, 67, 6, 76, 9, 23, 8, 7, 15, 15, 14, 10, + 14, 12, 18, 0, 67, 69, 38, 38, 43, 34, 33, 42, + 46, 46, 50, 47, 54, 53, 45, 37, 13, 42, 55, 41, + 41, 39, 34, 24, 19, 16, 6, 68, 70, 78, 90, 36, + 35, 36, 30, 21, 23, 17, 11, 9, 6, 1, 70, 70, 81, + 85, 68, 69, 82, 18, 20, 14, 4, 12, 11, 0, 7, 6, + 65, 76, 75, 83, 97, 11, 1, 73, 75, 64, 64, 2, 5, + 5, 9, 6, 9, 11, 21, 12, 13, 20, 20, 56, 46, 39, + 31, 24, 15, 5, 72, 95, 3, 35, 28, 26, 20, 19, 9, + 6, 5, 68, 80, 75, 67, 74, 0, 8, 70, 73, 1, 5, 3, + 5, 11, 4, 2, 55, 44, 31, 19, 10, 66, 78, 89, 104 }, + + { + + 57, + 7, 77, 57, 7, 77, 97, 79, 17, 11, 5, 6, 37, 41, + 53, 14, 78, 1, 64, 10, 0, 2, 68, 68, 83, 11, 33, + 94, 107, 113, 78, 82, 68, 64, 10, 0, 79, 76, 9, + 9, 65, 74, 84, 2, 74, 80, 90, 5, 72, 83, 4, 73, + 77, 88, 4, 68, 69, 74, 64, 4, 22, 0, 0, 0, 73, + 90, 97, 64, 9, 65, 18, 73, 92, 97, 68, 74, 21, + 11, 72, 66, 86, 68, 82, 79, 96, 84, 83, 88, 94, + 21, 0, 8, 83, 70, 82, 78, 101, 4, 66, 65, 75, + 17, 68, 64, 79, 82, 71, 73, 69, 7, 8, 64, 12, + 15, 76, 64, 65, 67, 4, 73, 17, 68, 1, 17, 19, + 27, 21, 14, 82, 65, 70, 4, 5, 92, 1, 8, 5, 5, 7, + 7, 14, 9, 3, 2, 1, 2, 10, 8, 81, 67, 1, 72, 6, + 7, 14, 7, 4, 9, 6, 4, 7, 14, 6, 76, 3, 78, 24, + 21, 16, 14, 17, 17, 10, 16, 20, 64, 11, 9, 6, 3, + 67, 6, 0, 3, 5, 2, 7, 13, 2, 80, 1, 74, 2, 9, + 82, 30, 39, 31, 30, 29, 28, 26, 26, 20, 12, 9, + 6, 4, 0, 88, 68, 64, 76, 16, 12, 9, 11, 7, 1, 1, + 1, 74, 68, 73, 92, 86, 98, 69, 22, 18, 11, 3, 7, + 65, 70, 73, 83, 67, 36, 21, 15, 8, 11, 0, 70, + 75, 87, 4, 38, 29, 24, 18, 15, 5, 64, 70, 79, + 70, 39, 27, 14, 3, 8, 68, 77, 85, 5, 50, 39, 31, + 23, 21, 5, 66, 72, 76, 62, 92, 89, 76, 91, 90, + 83, 86, 83, 83, 84, 83, 84, 85, 82, 85, 83, 70, + 80, 76, 75, 74, 68, 67, 67, 66, 1, 65, 68, 72, + 12, 10, 14, 7, 3, 13, 10, 6, 9, 9, 7, 5, 1, 67, + 70, 66, 7, 76, 9, 23, 8, 7, 15, 15, 15, 10, 13, + 12, 18, 0, 67, 70, 38, 38, 43, 33, 32, 41, 44, + 44, 48, 45, 52, 51, 43, 35, 12, 40, 52, 38, 37, + 37, 32, 23, 18, 15, 6, 67, 69, 76, 87, 35, 34, + 35, 29, 19, 22, 16, 9, 8, 5, 0, 71, 71, 82, 85, + 68, 69, 83, 17, 19, 13, 3, 11, 10, 64, 6, 5, 66, + 77, 76, 84, 97, 11, 1, 73, 74, 0, 0, 3, 6, 6, + 11, 7, 10, 12, 23, 14, 14, 22, 22, 56, 45, 37, + 29, 22, 13, 2, 74, 97, 4, 36, 29, 27, 21, 20, + 10, 7, 6, 67, 79, 74, 66, 73, 2, 10, 69, 72, 2, + 6, 4, 6, 12, 4, 2, 54, 42, 29, 17, 7, 69, 81, + 92, 106 }, + + { + + 56, + 7, 77, 56, 7, 77, 95, 78, 17, 11, 5, 5, 36, 40, + 53, 14, 76, 1, 0, 11, 0, 1, 68, 69, 84, 10, 31, + 96, 108, 114, 75, 81, 68, 0, 11, 0, 79, 75, 9, + 8, 65, 74, 83, 2, 74, 80, 90, 5, 72, 82, 4, 73, + 77, 88, 4, 68, 69, 74, 64, 4, 22, 0, 0, 0, 72, + 90, 97, 64, 8, 65, 18, 73, 92, 95, 66, 72, 22, + 13, 71, 65, 85, 67, 81, 78, 94, 84, 83, 88, 93, + 21, 0, 8, 82, 70, 81, 78, 100, 4, 66, 65, 75, + 17, 68, 64, 79, 82, 71, 73, 69, 7, 8, 64, 12, + 15, 76, 64, 65, 67, 4, 73, 16, 68, 1, 16, 18, + 26, 20, 13, 81, 65, 70, 3, 4, 92, 0, 8, 5, 5, 7, + 7, 15, 9, 3, 2, 1, 2, 9, 8, 82, 67, 1, 73, 6, 6, + 14, 7, 3, 9, 6, 4, 6, 14, 5, 76, 3, 79, 23, 21, + 16, 14, 17, 17, 10, 16, 20, 64, 11, 9, 6, 3, 67, + 6, 0, 3, 5, 2, 6, 12, 1, 80, 1, 74, 1, 8, 82, + 28, 37, 29, 28, 27, 26, 24, 24, 18, 10, 7, 4, 2, + 65, 89, 68, 64, 77, 15, 11, 8, 10, 5, 0, 0, 0, + 75, 69, 74, 92, 86, 97, 69, 22, 18, 11, 3, 7, + 65, 70, 73, 82, 66, 36, 21, 15, 8, 11, 0, 69, + 74, 85, 4, 38, 29, 24, 18, 15, 5, 64, 70, 78, + 70, 39, 27, 14, 3, 8, 68, 77, 84, 5, 49, 38, 30, + 22, 21, 5, 66, 72, 76, 62, 91, 88, 75, 90, 89, + 82, 85, 82, 82, 83, 82, 82, 84, 81, 85, 82, 69, + 80, 77, 75, 73, 68, 67, 68, 66, 0, 66, 69, 73, + 11, 10, 14, 7, 2, 12, 10, 6, 8, 8, 7, 5, 0, 67, + 70, 66, 7, 76, 8, 22, 7, 7, 14, 14, 15, 9, 12, + 12, 18, 64, 68, 72, 37, 37, 42, 32, 31, 40, 42, + 42, 46, 43, 49, 48, 40, 33, 11, 37, 49, 35, 33, + 34, 30, 21, 17, 14, 6, 66, 69, 75, 85, 33, 32, + 33, 27, 17, 20, 14, 7, 7, 3, 64, 73, 72, 83, 86, + 69, 69, 84, 16, 18, 11, 1, 9, 8, 65, 4, 3, 67, + 78, 77, 85, 98, 10, 0, 74, 74, 0, 0, 4, 6, 7, + 12, 8, 11, 13, 24, 15, 15, 23, 23, 55, 43, 35, + 27, 19, 10, 64, 77, 99, 4, 36, 29, 27, 21, 21, + 10, 7, 6, 67, 79, 74, 65, 73, 3, 11, 69, 71, 3, + 7, 4, 6, 13, 4, 2, 53, 40, 27, 14, 4, 73, 85, + 95, 109 }, + + { + + 55, + 7, 77, 55, 7, 77, 93, 76, 18, 11, 4, 3, 34, 39, + 53, 14, 74, 1, 1, 12, 0, 0, 68, 70, 85, 10, 29, + 97, 109, 114, 72, 80, 68, 1, 12, 0, 78, 74, 10, + 8, 65, 73, 82, 1, 75, 80, 90, 5, 72, 82, 4, 73, + 77, 88, 5, 68, 69, 74, 0, 4, 22, 0, 0, 0, 72, + 90, 97, 0, 7, 65, 18, 73, 92, 93, 64, 71, 24, + 15, 70, 64, 83, 66, 80, 77, 92, 83, 83, 87, 92, + 21, 0, 8, 82, 70, 81, 77, 98, 4, 67, 66, 76, 17, + 68, 64, 78, 82, 70, 73, 68, 7, 8, 64, 12, 14, + 76, 64, 65, 67, 4, 73, 15, 68, 1, 15, 17, 25, + 19, 12, 81, 64, 70, 2, 4, 91, 0, 8, 5, 5, 7, 7, + 16, 9, 3, 2, 2, 2, 8, 8, 83, 67, 1, 73, 5, 5, + 14, 7, 2, 9, 6, 4, 4, 14, 4, 76, 3, 79, 22, 21, + 16, 14, 17, 17, 10, 16, 20, 64, 10, 9, 6, 3, 67, + 5, 64, 2, 4, 1, 5, 11, 1, 80, 0, 74, 0, 6, 82, + 27, 35, 27, 26, 25, 24, 22, 22, 16, 8, 6, 3, 0, + 67, 90, 68, 64, 77, 14, 10, 7, 8, 4, 65, 64, 64, + 76, 69, 74, 92, 86, 97, 68, 22, 18, 11, 3, 7, + 65, 70, 72, 81, 66, 36, 21, 15, 8, 12, 1, 68, + 73, 83, 4, 38, 29, 24, 18, 16, 5, 64, 70, 78, + 70, 39, 27, 13, 3, 8, 68, 77, 83, 5, 49, 38, 29, + 21, 21, 5, 66, 71, 75, 62, 90, 87, 75, 89, 88, + 81, 83, 81, 81, 82, 80, 81, 84, 80, 85, 82, 67, + 80, 77, 75, 73, 68, 68, 68, 66, 64, 67, 70, 74, + 11, 9, 14, 6, 2, 12, 9, 6, 7, 8, 6, 5, 64, 67, + 71, 66, 7, 77, 8, 22, 6, 7, 13, 14, 15, 8, 11, + 11, 17, 65, 68, 73, 36, 36, 42, 31, 30, 38, 40, + 40, 44, 40, 47, 46, 37, 30, 10, 34, 46, 32, 29, + 31, 27, 19, 16, 13, 6, 65, 69, 74, 83, 31, 30, + 31, 25, 15, 18, 13, 5, 5, 2, 65, 74, 74, 84, 87, + 69, 70, 85, 15, 16, 10, 64, 7, 6, 67, 3, 1, 69, + 79, 79, 87, 99, 9, 64, 75, 74, 1, 0, 4, 7, 7, + 13, 9, 12, 14, 25, 16, 16, 25, 24, 55, 42, 33, + 24, 17, 7, 67, 80, 101, 5, 37, 30, 28, 21, 22, + 11, 7, 7, 66, 79, 73, 65, 72, 4, 12, 69, 71, 3, + 7, 4, 7, 14, 4, 2, 52, 38, 24, 11, 1, 77, 89, + 99, 111 }, + + { + + 53, + 7, 77, 53, 7, 77, 92, 75, 18, 11, 4, 2, 33, 37, + 53, 14, 71, 0, 2, 12, 0, 64, 68, 71, 86, 9, 27, + 99, 110, 115, 69, 79, 68, 2, 12, 0, 78, 73, 10, + 7, 65, 73, 82, 1, 75, 79, 90, 5, 72, 81, 3, 74, + 77, 88, 5, 67, 69, 73, 0, 4, 22, 0, 0, 0, 71, + 91, 97, 0, 6, 65, 18, 73, 92, 92, 0, 69, 25, 16, + 69, 0, 82, 64, 79, 76, 90, 83, 82, 87, 91, 21, + 0, 8, 81, 70, 80, 77, 97, 3, 67, 66, 76, 17, 68, + 64, 78, 82, 70, 73, 68, 7, 7, 64, 12, 14, 76, + 64, 65, 67, 4, 73, 15, 69, 1, 15, 16, 24, 18, + 11, 80, 64, 70, 1, 3, 91, 64, 8, 4, 5, 7, 7, 17, + 10, 3, 1, 2, 1, 7, 7, 84, 67, 1, 74, 5, 4, 13, + 6, 2, 10, 6, 4, 3, 13, 3, 76, 3, 80, 22, 21, 16, + 14, 17, 17, 10, 16, 19, 64, 10, 9, 6, 3, 68, 5, + 64, 2, 4, 1, 5, 10, 0, 80, 0, 74, 64, 5, 82, 25, + 33, 25, 24, 23, 22, 20, 20, 14, 6, 4, 1, 66, 69, + 91, 68, 65, 78, 13, 9, 6, 7, 2, 66, 65, 66, 76, + 70, 75, 92, 86, 96, 68, 22, 18, 11, 3, 7, 65, + 70, 72, 80, 65, 36, 21, 15, 8, 12, 1, 68, 73, + 81, 4, 38, 29, 24, 18, 16, 5, 64, 70, 77, 70, + 39, 26, 13, 3, 8, 68, 77, 83, 5, 48, 37, 28, 20, + 21, 5, 66, 71, 75, 62, 89, 86, 74, 87, 87, 80, + 82, 79, 80, 80, 79, 79, 83, 80, 84, 81, 66, 79, + 78, 75, 72, 68, 68, 69, 67, 65, 68, 71, 75, 10, + 9, 14, 6, 1, 11, 9, 6, 6, 7, 6, 4, 65, 68, 71, + 66, 7, 77, 7, 21, 5, 7, 12, 13, 15, 7, 10, 11, + 17, 66, 69, 75, 35, 36, 41, 30, 28, 37, 38, 38, + 42, 38, 44, 43, 34, 28, 8, 31, 42, 29, 25, 29, + 25, 17, 15, 11, 6, 64, 68, 73, 81, 30, 28, 29, + 24, 13, 16, 11, 3, 4, 0, 67, 76, 75, 85, 88, 70, + 70, 86, 13, 15, 8, 65, 5, 4, 68, 1, 64, 70, 80, + 80, 88, 99, 8, 64, 76, 74, 1, 1, 5, 7, 8, 14, 9, + 13, 15, 26, 17, 17, 26, 25, 54, 40, 31, 22, 14, + 4, 70, 83, 104, 5, 37, 30, 28, 22, 22, 11, 8, 7, + 66, 78, 73, 64, 72, 5, 13, 69, 70, 4, 8, 4, 7, + 15, 4, 2, 50, 36, 22, 8, 65, 81, 93, 102, 114 }, + + { + + 52, + 7, 77, 52, 7, 77, 90, 73, 18, 11, 3, 0, 31, 36, + 53, 14, 69, 0, 3, 13, 0, 64, 67, 72, 87, 9, 25, + 101, 111, 115, 66, 77, 68, 3, 13, 0, 78, 72, 10, + 7, 65, 73, 81, 1, 76, 79, 90, 5, 72, 80, 3, 74, + 77, 88, 6, 67, 68, 73, 1, 4, 22, 0, 0, 0, 71, + 91, 97, 1, 5, 65, 18, 72, 92, 90, 2, 68, 27, 18, + 67, 1, 81, 0, 78, 75, 88, 82, 82, 86, 90, 21, 0, + 8, 81, 70, 80, 76, 95, 3, 67, 66, 76, 17, 68, 0, + 77, 82, 70, 73, 67, 7, 7, 64, 12, 14, 75, 64, + 64, 67, 4, 73, 14, 69, 1, 14, 15, 24, 17, 10, + 79, 0, 70, 0, 3, 90, 64, 8, 4, 5, 7, 7, 18, 10, + 3, 1, 2, 1, 6, 7, 85, 67, 1, 74, 4, 3, 13, 6, 1, + 10, 6, 4, 2, 13, 2, 76, 3, 80, 21, 21, 16, 14, + 17, 17, 10, 16, 19, 64, 10, 9, 6, 3, 68, 5, 64, + 1, 4, 1, 4, 9, 0, 80, 64, 74, 65, 4, 82, 24, 31, + 24, 23, 21, 20, 18, 18, 12, 4, 2, 64, 68, 70, + 92, 68, 65, 78, 12, 8, 5, 6, 1, 68, 66, 67, 77, + 70, 75, 92, 86, 96, 68, 22, 18, 11, 3, 7, 64, + 69, 71, 79, 65, 36, 21, 15, 8, 12, 2, 67, 72, + 79, 4, 38, 29, 24, 18, 16, 5, 64, 70, 76, 70, + 40, 26, 12, 3, 8, 68, 77, 82, 5, 48, 36, 27, 19, + 21, 5, 66, 71, 74, 62, 88, 85, 73, 86, 86, 79, + 81, 78, 79, 79, 77, 77, 82, 79, 84, 81, 65, 79, + 78, 74, 71, 68, 69, 69, 67, 65, 69, 72, 76, 9, + 8, 14, 5, 1, 11, 9, 6, 5, 6, 6, 4, 66, 68, 71, + 66, 7, 77, 6, 21, 5, 7, 11, 12, 15, 6, 9, 10, + 16, 67, 70, 77, 34, 35, 41, 29, 27, 35, 36, 36, + 40, 35, 41, 41, 31, 26, 7, 28, 39, 26, 21, 26, + 22, 15, 14, 10, 6, 0, 68, 72, 79, 28, 27, 27, + 22, 11, 14, 10, 1, 3, 65, 68, 78, 77, 86, 89, + 70, 70, 87, 12, 13, 6, 67, 4, 3, 70, 0, 65, 72, + 81, 81, 89, 100, 8, 65, 77, 73, 2, 1, 5, 8, 9, + 15, 10, 14, 16, 28, 18, 18, 27, 27, 54, 38, 29, + 19, 12, 1, 73, 86, 106, 5, 38, 31, 29, 22, 23, + 11, 8, 8, 65, 78, 73, 0, 71, 6, 14, 68, 69, 4, + 8, 4, 8, 16, 4, 2, 49, 34, 19, 5, 68, 84, 97, + 106, 117 }, + + { + + 51, + 7, 78, 51, 7, 78, 88, 72, 19, 11, 3, 64, 30, 35, + 53, 14, 67, 0, 3, 14, 0, 65, 67, 73, 88, 8, 24, + 102, 112, 116, 0, 76, 68, 3, 14, 0, 77, 71, 11, + 6, 64, 72, 80, 0, 76, 79, 90, 5, 71, 80, 3, 74, + 76, 88, 6, 67, 68, 73, 1, 4, 22, 0, 0, 0, 70, + 91, 97, 1, 5, 66, 18, 72, 91, 88, 4, 66, 28, 20, + 66, 2, 79, 1, 77, 75, 87, 82, 82, 86, 90, 22, 0, + 8, 80, 69, 79, 76, 94, 3, 68, 67, 77, 17, 68, 0, + 77, 82, 69, 73, 67, 7, 7, 0, 12, 13, 75, 64, 64, + 67, 4, 73, 13, 69, 1, 13, 14, 23, 17, 10, 79, 0, + 70, 0, 2, 90, 65, 8, 4, 5, 7, 7, 18, 10, 3, 1, + 3, 1, 5, 7, 85, 68, 1, 75, 4, 2, 13, 6, 0, 10, + 6, 4, 0, 13, 1, 76, 3, 81, 20, 21, 15, 14, 17, + 17, 10, 16, 19, 64, 9, 9, 5, 3, 68, 4, 65, 1, 3, + 0, 3, 8, 64, 80, 64, 73, 66, 2, 82, 22, 29, 22, + 21, 19, 18, 16, 16, 10, 2, 1, 65, 70, 72, 93, + 68, 65, 79, 11, 7, 4, 4, 64, 69, 67, 68, 78, 71, + 76, 92, 86, 95, 67, 22, 18, 11, 4, 7, 64, 69, + 71, 78, 64, 35, 21, 15, 8, 13, 2, 66, 71, 77, 4, + 39, 29, 24, 18, 17, 5, 64, 69, 76, 70, 40, 26, + 12, 3, 8, 67, 76, 81, 5, 47, 36, 26, 19, 21, 5, + 65, 70, 74, 62, 88, 84, 73, 85, 85, 78, 79, 77, + 78, 78, 76, 76, 82, 78, 84, 80, 0, 79, 79, 74, + 71, 68, 69, 70, 67, 66, 70, 73, 77, 9, 8, 14, 5, + 0, 10, 8, 6, 5, 6, 5, 4, 66, 68, 72, 66, 7, 78, + 6, 20, 4, 6, 10, 12, 16, 6, 8, 10, 16, 67, 70, + 78, 33, 34, 40, 28, 26, 34, 34, 34, 38, 33, 39, + 38, 28, 23, 6, 26, 36, 23, 17, 23, 20, 13, 13, + 9, 6, 1, 68, 70, 76, 26, 25, 25, 20, 9, 12, 8, + 64, 1, 66, 69, 79, 78, 87, 90, 71, 71, 88, 11, + 12, 5, 69, 2, 1, 71, 65, 67, 73, 83, 83, 91, + 101, 7, 66, 78, 73, 2, 1, 6, 8, 9, 17, 11, 15, + 17, 29, 20, 19, 29, 28, 53, 37, 27, 17, 9, 64, + 76, 88, 108, 6, 38, 31, 29, 22, 24, 12, 8, 8, + 65, 78, 72, 0, 71, 7, 15, 68, 69, 5, 9, 4, 8, + 17, 4, 2, 48, 32, 17, 2, 72, 88, 100, 109, 119 }, + + { + + 50, + 7, 78, 50, 7, 78, 86, 70, 19, 11, 2, 66, 28, 33, + 53, 14, 64, 64, 4, 14, 0, 66, 67, 74, 89, 8, 22, + 104, 113, 116, 3, 75, 68, 4, 14, 0, 77, 70, 11, + 6, 64, 72, 80, 0, 77, 78, 90, 5, 71, 79, 2, 74, + 76, 88, 7, 66, 68, 72, 2, 4, 22, 0, 0, 0, 70, + 91, 97, 2, 4, 66, 18, 72, 91, 87, 6, 65, 30, 22, + 65, 3, 78, 3, 76, 74, 85, 81, 81, 85, 89, 22, 0, + 8, 80, 69, 79, 75, 92, 2, 68, 67, 77, 17, 68, 0, + 76, 82, 69, 73, 66, 7, 6, 0, 12, 13, 75, 64, 64, + 67, 4, 73, 13, 69, 1, 13, 13, 22, 16, 9, 78, 1, + 70, 64, 2, 89, 65, 8, 3, 5, 7, 7, 19, 11, 3, 1, + 3, 1, 4, 7, 86, 68, 1, 75, 3, 1, 12, 6, 0, 11, + 6, 4, 64, 12, 0, 76, 3, 81, 20, 21, 15, 14, 17, + 17, 10, 16, 19, 64, 9, 9, 5, 3, 68, 4, 65, 0, 3, + 0, 3, 7, 64, 80, 65, 73, 67, 1, 82, 21, 27, 20, + 19, 17, 16, 14, 14, 8, 0, 64, 67, 73, 74, 94, + 68, 66, 79, 10, 6, 3, 3, 65, 71, 68, 69, 78, 71, + 76, 92, 86, 95, 67, 22, 18, 11, 4, 7, 64, 69, + 70, 77, 64, 35, 21, 15, 8, 13, 3, 65, 71, 75, 4, + 39, 29, 24, 18, 17, 5, 64, 69, 75, 70, 40, 25, + 11, 3, 8, 67, 76, 81, 5, 47, 35, 25, 18, 21, 5, + 65, 70, 73, 62, 87, 83, 72, 83, 84, 77, 78, 75, + 77, 76, 74, 74, 81, 77, 83, 80, 1, 78, 79, 74, + 70, 68, 70, 70, 68, 67, 71, 74, 78, 8, 7, 14, 4, + 0, 10, 8, 6, 4, 5, 5, 3, 67, 68, 72, 66, 7, 78, + 5, 20, 3, 6, 9, 11, 16, 5, 7, 9, 15, 68, 71, 80, + 32, 34, 40, 27, 24, 32, 32, 32, 36, 30, 36, 36, + 25, 21, 4, 23, 32, 20, 13, 21, 17, 11, 12, 8, 6, + 2, 67, 69, 74, 25, 23, 23, 19, 7, 10, 7, 66, 0, + 68, 71, 81, 80, 88, 91, 71, 71, 89, 9, 10, 3, + 70, 0, 64, 73, 66, 69, 75, 84, 84, 92, 101, 6, + 66, 79, 73, 3, 2, 6, 9, 10, 18, 12, 16, 18, 30, + 21, 20, 30, 29, 53, 35, 25, 14, 7, 67, 79, 91, + 110, 6, 39, 32, 30, 23, 25, 12, 9, 9, 64, 77, + 72, 1, 70, 8, 16, 68, 68, 5, 9, 4, 9, 18, 4, 2, + 46, 30, 14, 64, 75, 92, 104, 113, 122 }, + + { + + 48, + 6, 78, 48, 6, 78, 85, 69, 19, 11, 2, 67, 27, 32, + 53, 14, 1, 64, 5, 15, 0, 67, 67, 75, 91, 7, 20, + 106, 114, 117, 5, 74, 68, 5, 15, 0, 77, 69, 11, + 5, 64, 72, 79, 64, 77, 78, 91, 5, 71, 79, 2, 75, + 76, 88, 7, 66, 68, 72, 2, 4, 22, 0, 0, 0, 69, + 92, 97, 2, 3, 66, 18, 72, 91, 85, 7, 0, 31, 23, + 64, 4, 77, 4, 75, 73, 83, 81, 81, 85, 88, 22, 0, + 8, 79, 69, 78, 75, 91, 2, 69, 68, 78, 17, 68, 0, + 76, 82, 69, 73, 66, 6, 6, 0, 12, 12, 75, 64, 64, + 67, 3, 73, 12, 70, 1, 12, 11, 21, 15, 8, 78, 1, + 70, 65, 1, 89, 66, 7, 3, 5, 7, 7, 20, 11, 3, 0, + 3, 0, 3, 6, 87, 68, 1, 76, 3, 0, 12, 5, 64, 11, + 6, 4, 66, 12, 64, 76, 3, 82, 19, 20, 15, 14, 17, + 16, 9, 16, 18, 65, 8, 9, 5, 2, 69, 3, 66, 0, 2, + 64, 2, 6, 65, 80, 65, 73, 68, 64, 82, 19, 25, + 18, 17, 15, 13, 12, 12, 6, 65, 66, 69, 75, 76, + 95, 68, 66, 80, 9, 4, 1, 1, 67, 72, 70, 71, 79, + 72, 77, 92, 86, 94, 67, 22, 18, 11, 4, 7, 64, + 69, 70, 76, 0, 35, 21, 15, 8, 13, 3, 65, 70, 74, + 4, 39, 29, 24, 17, 17, 5, 64, 69, 75, 70, 40, + 25, 11, 3, 8, 67, 76, 80, 5, 46, 34, 24, 17, 20, + 5, 65, 70, 73, 62, 86, 82, 72, 82, 83, 77, 77, + 74, 76, 75, 73, 73, 81, 77, 83, 79, 2, 78, 80, + 74, 70, 68, 70, 71, 68, 68, 72, 76, 79, 7, 7, + 14, 4, 64, 9, 7, 5, 3, 4, 4, 3, 68, 69, 73, 66, + 7, 79, 4, 19, 2, 6, 8, 10, 16, 4, 6, 9, 15, 69, + 72, 82, 31, 33, 39, 25, 23, 31, 30, 30, 33, 28, + 33, 33, 22, 18, 3, 20, 29, 17, 9, 18, 15, 9, 10, + 6, 6, 2, 67, 68, 72, 23, 21, 21, 17, 4, 8, 5, + 68, 65, 70, 72, 83, 81, 89, 92, 72, 72, 90, 8, + 9, 1, 72, 65, 66, 74, 68, 71, 76, 85, 86, 94, + 102, 5, 67, 80, 73, 3, 2, 7, 9, 10, 19, 12, 17, + 19, 31, 22, 21, 31, 30, 52, 33, 23, 12, 4, 70, + 82, 94, 113, 6, 39, 32, 30, 23, 25, 12, 9, 9, + 64, 77, 72, 1, 70, 9, 17, 68, 68, 6, 10, 4, 9, + 18, 4, 1, 45, 28, 12, 67, 78, 96, 108, 116, 125 }, + + { + + 47, + 6, 78, 47, 6, 78, 83, 68, 20, 11, 2, 68, 26, 31, + 53, 14, 3, 64, 6, 16, 0, 67, 66, 76, 92, 6, 18, + 107, 115, 118, 8, 72, 68, 6, 16, 0, 76, 68, 12, + 4, 64, 71, 78, 64, 77, 78, 91, 5, 71, 78, 2, 75, + 76, 88, 7, 66, 67, 72, 2, 4, 22, 0, 0, 0, 68, + 92, 97, 2, 2, 66, 18, 71, 91, 83, 9, 2, 32, 25, + 1, 5, 75, 5, 73, 72, 81, 81, 81, 85, 87, 22, 0, + 8, 78, 69, 77, 74, 90, 2, 69, 68, 78, 17, 68, 1, + 75, 81, 68, 73, 66, 6, 6, 0, 12, 12, 74, 64, 0, + 67, 3, 72, 11, 70, 1, 11, 10, 21, 14, 7, 77, 1, + 69, 66, 0, 89, 67, 7, 3, 6, 7, 7, 21, 11, 3, 0, + 4, 0, 3, 6, 88, 68, 1, 77, 3, 64, 12, 5, 65, 11, + 6, 4, 67, 12, 64, 76, 3, 83, 18, 20, 15, 14, 17, + 16, 9, 16, 18, 65, 8, 9, 5, 2, 69, 3, 66, 0, 2, + 64, 1, 6, 65, 80, 65, 73, 69, 65, 82, 17, 24, + 17, 16, 13, 11, 11, 11, 4, 67, 67, 70, 77, 77, + 96, 68, 66, 81, 8, 3, 0, 0, 68, 73, 71, 72, 80, + 73, 78, 92, 85, 93, 66, 23, 18, 11, 4, 8, 0, 68, + 69, 75, 1, 35, 21, 15, 8, 14, 3, 64, 69, 72, 4, + 39, 29, 24, 17, 18, 5, 64, 69, 74, 70, 41, 25, + 11, 3, 9, 67, 76, 79, 5, 46, 34, 24, 16, 20, 5, + 65, 69, 72, 62, 85, 81, 71, 81, 81, 76, 75, 73, + 74, 74, 72, 71, 80, 76, 83, 78, 4, 78, 81, 73, + 69, 68, 70, 72, 68, 68, 73, 77, 80, 7, 7, 14, 4, + 64, 8, 7, 5, 2, 4, 4, 3, 69, 69, 73, 65, 8, 79, + 4, 18, 2, 6, 8, 10, 16, 3, 5, 9, 15, 70, 72, 83, + 31, 32, 38, 24, 22, 30, 28, 28, 31, 26, 31, 30, + 20, 16, 2, 17, 26, 14, 5, 15, 13, 8, 9, 5, 6, 3, + 67, 67, 70, 21, 20, 19, 15, 2, 7, 4, 70, 66, 71, + 73, 84, 82, 90, 92, 72, 72, 91, 7, 8, 0, 74, 66, + 67, 75, 69, 72, 77, 86, 87, 95, 103, 5, 68, 80, + 72, 3, 2, 8, 10, 11, 20, 13, 18, 20, 33, 23, 22, + 33, 32, 51, 32, 21, 10, 1, 73, 85, 97, 115, 7, + 39, 32, 31, 23, 26, 13, 9, 10, 0, 77, 71, 2, 70, + 10, 19, 67, 67, 7, 11, 4, 10, 19, 4, 1, 44, 26, + 10, 69, 81, 99, 112, 119, 126 }, + + { + + 46, + 6, 78, 46, 6, 78, 81, 66, 20, 11, 1, 70, 24, 29, + 53, 14, 6, 65, 7, 16, 0, 68, 66, 77, 93, 6, 16, + 109, 116, 118, 11, 71, 68, 7, 16, 0, 76, 67, 12, + 4, 64, 71, 78, 64, 78, 77, 91, 5, 71, 77, 1, 75, + 76, 88, 8, 65, 67, 71, 3, 4, 22, 0, 0, 0, 68, + 92, 97, 3, 1, 66, 18, 71, 91, 82, 11, 3, 34, 27, + 2, 6, 74, 7, 72, 71, 79, 80, 80, 84, 86, 22, 0, + 8, 78, 69, 77, 74, 88, 1, 69, 68, 78, 17, 68, 1, + 75, 81, 68, 73, 65, 6, 5, 0, 12, 12, 74, 64, 0, + 67, 3, 72, 11, 70, 1, 11, 9, 20, 13, 6, 76, 2, + 69, 67, 0, 88, 67, 7, 2, 6, 7, 7, 22, 12, 3, 0, + 4, 0, 2, 6, 89, 68, 1, 77, 2, 65, 11, 5, 65, 12, + 6, 4, 68, 11, 65, 76, 3, 83, 18, 20, 15, 14, 17, + 16, 9, 16, 18, 65, 8, 9, 5, 2, 69, 3, 66, 64, 2, + 64, 1, 5, 66, 80, 66, 73, 70, 66, 82, 16, 22, + 15, 14, 11, 9, 9, 9, 2, 69, 69, 72, 80, 79, 97, + 68, 67, 81, 7, 2, 64, 64, 70, 75, 72, 73, 80, + 73, 78, 92, 85, 93, 66, 23, 18, 11, 4, 8, 0, 68, + 69, 74, 1, 35, 21, 15, 8, 14, 4, 0, 69, 70, 4, + 39, 29, 24, 17, 18, 5, 64, 69, 73, 70, 41, 24, + 10, 3, 9, 67, 76, 79, 5, 45, 33, 23, 15, 20, 5, + 65, 69, 72, 62, 84, 80, 70, 79, 80, 75, 74, 71, + 73, 72, 70, 69, 79, 75, 82, 78, 5, 77, 81, 73, + 68, 68, 71, 72, 69, 69, 74, 78, 81, 6, 6, 14, 3, + 65, 8, 7, 5, 1, 3, 4, 2, 70, 69, 73, 65, 8, 79, + 3, 18, 1, 6, 7, 9, 16, 2, 4, 8, 14, 71, 73, 85, + 30, 32, 38, 23, 20, 28, 26, 26, 29, 23, 28, 28, + 17, 14, 0, 14, 22, 11, 1, 13, 10, 6, 8, 4, 6, 4, + 66, 66, 68, 20, 18, 17, 14, 0, 5, 2, 72, 67, 73, + 75, 86, 84, 91, 93, 73, 72, 92, 5, 6, 65, 75, + 68, 69, 77, 71, 74, 79, 87, 88, 96, 103, 4, 68, + 81, 72, 4, 3, 8, 10, 12, 21, 14, 19, 21, 34, 24, + 23, 34, 33, 51, 30, 19, 7, 64, 76, 88, 100, 117, + 7, 40, 33, 31, 24, 27, 13, 10, 10, 0, 76, 71, 3, + 69, 11, 20, 67, 66, 7, 11, 4, 10, 20, 4, 1, 42, + 24, 7, 72, 84, 103, 116, 123, 126 }, + + { + + 45, + 6, 79, 45, 6, 79, 79, 65, 21, 11, 1, 71, 23, 28, + 53, 14, 8, 65, 7, 17, 0, 69, 66, 78, 94, 5, 15, + 110, 117, 119, 14, 70, 68, 7, 17, 0, 75, 66, 13, + 3, 0, 70, 77, 65, 78, 77, 91, 5, 70, 77, 1, 75, + 75, 88, 8, 65, 67, 71, 3, 4, 22, 0, 0, 0, 67, + 92, 97, 3, 1, 67, 18, 71, 90, 80, 13, 5, 35, 29, + 3, 7, 72, 8, 71, 71, 78, 80, 80, 84, 86, 23, 0, + 8, 77, 68, 76, 73, 87, 1, 70, 69, 79, 17, 68, 1, + 74, 81, 67, 73, 65, 6, 5, 1, 12, 11, 74, 64, 0, + 67, 3, 72, 10, 70, 1, 10, 8, 19, 13, 6, 76, 2, + 69, 67, 64, 88, 68, 7, 2, 6, 7, 7, 22, 12, 3, 0, + 5, 0, 1, 6, 89, 69, 1, 78, 2, 66, 11, 5, 66, 12, + 6, 4, 70, 11, 66, 76, 3, 84, 17, 20, 14, 14, 17, + 16, 9, 16, 18, 65, 7, 9, 4, 2, 69, 2, 67, 64, 1, + 65, 0, 4, 66, 80, 66, 72, 71, 68, 82, 14, 20, + 13, 12, 9, 7, 7, 7, 0, 71, 70, 73, 82, 81, 98, + 68, 67, 82, 6, 1, 65, 66, 71, 76, 73, 74, 81, + 74, 79, 92, 85, 92, 65, 23, 18, 11, 5, 8, 0, 68, + 68, 73, 2, 34, 21, 15, 8, 15, 4, 1, 68, 68, 4, + 40, 29, 24, 17, 19, 5, 64, 68, 73, 70, 41, 24, + 10, 3, 9, 66, 75, 78, 5, 45, 33, 22, 15, 20, 5, + 64, 68, 71, 62, 84, 79, 70, 78, 79, 74, 72, 70, + 72, 71, 69, 68, 79, 74, 82, 77, 7, 77, 82, 73, + 68, 68, 71, 73, 69, 70, 75, 79, 82, 6, 6, 14, 3, + 65, 7, 6, 5, 1, 3, 3, 2, 70, 69, 74, 65, 8, 80, + 3, 17, 0, 5, 6, 9, 17, 2, 3, 8, 14, 71, 73, 86, + 29, 31, 37, 22, 19, 27, 24, 24, 27, 21, 26, 25, + 14, 11, 64, 12, 19, 8, 66, 10, 8, 4, 7, 3, 6, 5, + 66, 64, 65, 18, 16, 15, 12, 65, 3, 1, 74, 69, + 74, 76, 87, 85, 92, 94, 73, 73, 93, 4, 5, 66, + 77, 70, 71, 78, 72, 76, 80, 89, 90, 98, 104, 3, + 69, 82, 72, 4, 3, 9, 11, 12, 23, 15, 20, 22, 35, + 26, 24, 36, 34, 50, 29, 17, 5, 67, 78, 91, 102, + 119, 8, 40, 33, 32, 24, 28, 14, 10, 11, 1, 76, + 70, 3, 69, 12, 21, 67, 66, 8, 12, 4, 11, 21, 4, + 1, 41, 22, 5, 75, 88, 107, 119, 126, 126 }, + + { + + 43, + 6, 79, 43, 6, 79, 78, 0, 21, 11, 0, 73, 21, 27, + 53, 14, 10, 65, 8, 18, 0, 70, 66, 79, 95, 5, 13, + 112, 118, 119, 17, 69, 68, 8, 18, 0, 75, 65, 13, + 3, 0, 70, 76, 65, 79, 77, 91, 5, 70, 76, 1, 76, + 75, 88, 9, 65, 67, 71, 4, 4, 22, 0, 0, 0, 67, + 93, 97, 4, 0, 67, 18, 71, 90, 78, 14, 6, 37, 30, + 4, 8, 71, 9, 70, 70, 76, 79, 80, 83, 85, 23, 0, + 8, 77, 68, 76, 73, 85, 1, 70, 69, 79, 17, 68, 1, + 74, 81, 67, 73, 64, 6, 5, 1, 12, 11, 74, 64, 0, + 67, 3, 72, 9, 71, 1, 9, 7, 18, 12, 5, 75, 3, 69, + 68, 64, 87, 68, 7, 2, 6, 7, 7, 23, 12, 3, 64, 5, + 64, 0, 5, 90, 69, 1, 78, 1, 67, 11, 4, 67, 12, + 6, 4, 71, 11, 67, 76, 3, 84, 16, 20, 14, 14, 17, + 16, 9, 16, 17, 65, 7, 9, 4, 2, 70, 2, 67, 65, 1, + 65, 64, 3, 67, 80, 67, 72, 72, 69, 82, 13, 18, + 11, 10, 7, 5, 5, 5, 65, 73, 72, 75, 84, 83, 99, + 68, 67, 82, 5, 0, 66, 67, 73, 78, 74, 76, 82, + 74, 79, 92, 85, 92, 65, 23, 18, 11, 5, 8, 0, 68, + 68, 72, 2, 34, 21, 15, 8, 15, 5, 1, 67, 66, 4, + 40, 29, 24, 17, 19, 5, 64, 68, 72, 70, 41, 24, + 9, 3, 9, 66, 75, 77, 5, 44, 32, 21, 14, 20, 5, + 64, 68, 71, 62, 83, 78, 69, 77, 78, 73, 71, 69, + 71, 70, 67, 66, 78, 74, 82, 77, 8, 77, 82, 73, + 67, 68, 72, 73, 69, 71, 76, 80, 83, 5, 5, 14, 2, + 66, 7, 6, 5, 0, 2, 3, 2, 71, 70, 74, 65, 8, 80, + 2, 17, 64, 5, 5, 8, 17, 1, 2, 7, 13, 72, 74, 88, + 28, 30, 37, 21, 18, 25, 22, 22, 25, 18, 23, 23, + 11, 9, 65, 9, 16, 5, 70, 7, 5, 2, 6, 1, 6, 6, + 66, 0, 0, 16, 14, 13, 10, 67, 1, 64, 76, 70, 76, + 77, 89, 87, 93, 95, 74, 73, 94, 3, 3, 68, 79, + 72, 73, 80, 74, 78, 82, 90, 91, 99, 105, 2, 70, + 83, 72, 5, 3, 9, 11, 13, 24, 15, 21, 23, 36, 27, + 25, 37, 35, 50, 27, 15, 2, 69, 81, 94, 105, 122, + 8, 41, 34, 32, 24, 28, 14, 10, 11, 1, 76, 70, 4, + 68, 13, 22, 67, 65, 8, 12, 4, 11, 22, 4, 1, 40, + 20, 2, 78, 91, 111, 123, 126, 126 }, + + { + + 42, + 6, 79, 42, 6, 79, 76, 1, 21, 11, 0, 74, 20, 25, + 53, 14, 13, 66, 9, 18, 0, 70, 65, 80, 96, 4, 11, + 114, 119, 120, 20, 67, 68, 9, 18, 0, 75, 64, 13, + 2, 0, 70, 76, 65, 79, 76, 91, 5, 70, 75, 0, 76, + 75, 88, 9, 64, 66, 70, 4, 4, 22, 0, 0, 0, 66, + 93, 97, 4, 64, 67, 18, 70, 90, 77, 16, 8, 38, + 32, 6, 9, 70, 11, 69, 69, 74, 79, 79, 83, 84, + 23, 0, 8, 76, 68, 75, 72, 84, 0, 70, 69, 79, 17, + 68, 2, 73, 81, 67, 73, 64, 6, 4, 1, 12, 11, 73, + 64, 1, 67, 3, 72, 9, 71, 1, 9, 6, 18, 11, 4, 74, + 3, 69, 69, 65, 87, 69, 7, 1, 6, 7, 7, 24, 13, 3, + 64, 5, 64, 64, 5, 91, 69, 1, 79, 1, 68, 10, 4, + 67, 13, 6, 4, 72, 10, 68, 76, 3, 85, 16, 20, 14, + 14, 17, 16, 9, 16, 17, 65, 7, 9, 4, 2, 70, 2, + 67, 65, 1, 65, 64, 2, 67, 80, 67, 72, 73, 70, + 82, 11, 16, 10, 9, 5, 3, 3, 3, 67, 75, 74, 77, + 87, 84, 100, 68, 68, 83, 4, 64, 67, 68, 74, 79, + 75, 77, 82, 75, 80, 92, 85, 91, 65, 23, 18, 11, + 5, 8, 1, 67, 67, 71, 3, 34, 21, 15, 8, 15, 5, 2, + 67, 64, 4, 40, 29, 24, 17, 19, 5, 64, 68, 71, + 70, 42, 23, 9, 3, 9, 66, 75, 77, 5, 44, 31, 20, + 13, 20, 5, 64, 68, 70, 62, 82, 77, 68, 75, 77, + 72, 70, 67, 70, 68, 66, 64, 77, 73, 81, 76, 9, + 76, 83, 72, 66, 68, 72, 74, 70, 71, 77, 81, 84, + 4, 5, 14, 2, 66, 6, 6, 5, 64, 1, 3, 1, 72, 70, + 74, 65, 8, 80, 1, 16, 64, 5, 4, 7, 17, 0, 1, 7, + 13, 73, 75, 90, 27, 30, 36, 20, 16, 24, 20, 20, + 23, 16, 20, 20, 8, 7, 67, 6, 12, 2, 74, 5, 3, 0, + 5, 0, 6, 7, 65, 1, 2, 15, 13, 11, 9, 69, 64, 65, + 78, 71, 78, 79, 91, 88, 94, 96, 74, 73, 95, 1, + 2, 70, 80, 73, 74, 81, 75, 79, 83, 91, 92, 100, + 105, 2, 70, 84, 71, 5, 4, 10, 12, 14, 25, 16, + 22, 24, 38, 28, 26, 38, 37, 49, 25, 13, 0, 72, + 84, 97, 108, 124, 8, 41, 34, 33, 25, 29, 14, 11, + 12, 2, 75, 70, 5, 68, 14, 23, 66, 64, 9, 13, 4, + 12, 23, 4, 1, 38, 18, 0, 81, 94, 114, 126, 126, + 126 }, + + { + + 41, + 6, 79, 41, 6, 79, 74, 3, 22, 11, 64, 76, 18, 24, + 53, 14, 15, 66, 10, 19, 0, 71, 65, 81, 97, 4, 9, + 115, 120, 120, 23, 66, 68, 10, 19, 0, 74, 0, 14, + 2, 0, 69, 75, 66, 80, 76, 91, 5, 70, 75, 0, 76, + 75, 88, 10, 64, 66, 70, 5, 4, 22, 0, 0, 0, 66, + 93, 97, 5, 65, 67, 18, 70, 90, 75, 18, 9, 40, + 34, 7, 10, 68, 12, 68, 68, 72, 78, 79, 82, 83, + 23, 0, 8, 76, 68, 75, 72, 82, 0, 71, 70, 80, 17, + 68, 2, 73, 81, 66, 73, 0, 6, 4, 1, 12, 10, 73, + 64, 1, 67, 3, 72, 8, 71, 1, 8, 5, 17, 10, 3, 74, + 4, 69, 70, 65, 86, 69, 7, 1, 6, 7, 7, 25, 13, 3, + 64, 6, 64, 65, 5, 92, 69, 1, 79, 0, 69, 10, 4, + 68, 13, 6, 4, 74, 10, 69, 76, 3, 85, 15, 20, 14, + 14, 17, 16, 9, 16, 17, 65, 6, 9, 4, 2, 70, 1, + 68, 66, 0, 66, 65, 1, 68, 80, 68, 72, 74, 72, + 82, 10, 14, 8, 7, 3, 1, 1, 1, 69, 77, 75, 78, + 89, 86, 101, 68, 68, 83, 3, 65, 68, 70, 76, 81, + 76, 78, 83, 75, 80, 92, 85, 91, 64, 23, 18, 11, + 5, 8, 1, 67, 67, 70, 3, 34, 21, 15, 8, 16, 6, 3, + 66, 1, 4, 40, 29, 24, 17, 20, 5, 64, 68, 71, 70, + 42, 23, 8, 3, 9, 66, 75, 76, 5, 43, 31, 19, 12, + 20, 5, 64, 67, 70, 62, 81, 76, 68, 74, 76, 71, + 68, 66, 69, 67, 64, 0, 77, 72, 81, 76, 11, 76, + 83, 72, 66, 68, 73, 74, 70, 72, 78, 82, 85, 4, + 4, 14, 1, 67, 6, 5, 5, 65, 1, 2, 1, 73, 70, 75, + 65, 8, 81, 1, 16, 65, 5, 3, 7, 17, 64, 0, 6, 12, + 74, 75, 91, 26, 29, 36, 19, 15, 22, 18, 18, 21, + 13, 18, 18, 5, 4, 68, 3, 9, 64, 78, 2, 0, 65, 4, + 64, 6, 8, 65, 2, 4, 13, 11, 9, 7, 71, 66, 67, + 80, 73, 79, 80, 92, 90, 95, 97, 75, 74, 96, 0, + 0, 71, 82, 75, 76, 83, 77, 81, 85, 92, 94, 102, + 106, 1, 71, 85, 71, 6, 4, 10, 12, 14, 26, 17, + 23, 25, 39, 29, 27, 40, 38, 49, 24, 11, 66, 74, + 87, 100, 111, 126, 9, 42, 35, 33, 25, 30, 15, + 11, 12, 2, 75, 69, 5, 67, 15, 24, 66, 64, 9, 13, + 4, 12, 24, 4, 1, 37, 16, 66, 84, 97, 118, 126, + 126, 126 }, + + { + + 40, + 6, 79, 40, 6, 79, 72, 4, 22, 11, 64, 77, 17, 23, + 53, 14, 17, 66, 11, 20, 0, 72, 65, 82, 98, 3, 7, + 117, 121, 121, 26, 65, 68, 11, 20, 0, 74, 1, 14, + 1, 0, 69, 74, 66, 80, 76, 91, 5, 70, 74, 0, 76, + 75, 88, 10, 64, 66, 70, 5, 4, 22, 0, 0, 0, 65, + 93, 97, 5, 66, 67, 18, 70, 90, 73, 20, 11, 41, + 36, 8, 11, 67, 13, 67, 67, 70, 78, 79, 82, 82, + 23, 0, 8, 75, 68, 74, 71, 81, 0, 71, 70, 80, 17, + 68, 2, 72, 81, 66, 73, 0, 6, 4, 1, 12, 10, 73, + 64, 1, 67, 3, 72, 7, 71, 1, 7, 4, 16, 9, 2, 73, + 4, 69, 71, 66, 86, 70, 7, 1, 6, 7, 7, 26, 13, 3, + 64, 6, 64, 66, 5, 93, 69, 1, 80, 0, 70, 10, 4, + 69, 13, 6, 4, 75, 10, 70, 76, 3, 86, 14, 20, 14, + 14, 17, 16, 9, 16, 17, 65, 6, 9, 4, 2, 70, 1, + 68, 66, 0, 66, 66, 0, 68, 80, 68, 72, 75, 73, + 82, 8, 12, 6, 5, 1, 64, 64, 64, 71, 79, 77, 80, + 91, 88, 102, 68, 68, 84, 2, 66, 69, 71, 77, 82, + 77, 79, 84, 76, 81, 92, 85, 90, 64, 23, 18, 11, + 5, 8, 1, 67, 66, 69, 4, 34, 21, 15, 8, 16, 6, 4, + 65, 3, 4, 40, 29, 24, 17, 20, 5, 64, 68, 70, 70, + 42, 23, 8, 3, 9, 66, 75, 75, 5, 43, 30, 18, 11, + 20, 5, 64, 67, 69, 62, 80, 75, 67, 73, 75, 70, + 67, 65, 68, 66, 0, 2, 76, 71, 81, 75, 12, 76, + 84, 72, 65, 68, 73, 75, 70, 73, 79, 83, 86, 3, + 4, 14, 1, 67, 5, 5, 5, 66, 0, 2, 1, 74, 70, 75, + 65, 8, 81, 0, 15, 66, 5, 2, 6, 17, 65, 64, 6, + 12, 75, 76, 93, 25, 28, 35, 18, 14, 21, 16, 16, + 19, 11, 15, 15, 2, 2, 69, 0, 6, 67, 82, 64, 65, + 67, 3, 65, 6, 9, 65, 3, 6, 11, 9, 7, 5, 73, 68, + 68, 82, 74, 81, 81, 94, 91, 96, 98, 75, 74, 97, + 64, 64, 73, 84, 77, 78, 84, 78, 83, 86, 93, 95, + 103, 107, 0, 72, 86, 71, 6, 4, 11, 13, 15, 27, + 18, 24, 26, 40, 30, 28, 41, 39, 48, 22, 9, 68, + 77, 90, 103, 114, 126, 9, 42, 35, 34, 25, 31, + 15, 11, 13, 3, 75, 69, 6, 67, 16, 25, 66, 0, 10, + 14, 4, 13, 25, 4, 1, 36, 14, 68, 87, 100, 122, + 126, 126, 126 }, + + { + + 38, + 5, 80, 38, 5, 80, 71, 5, 22, 11, 65, 79, 15, 21, + 52, 14, 19, 67, 11, 20, 64, 73, 65, 84, 100, 2, + 5, 119, 122, 122, 28, 64, 69, 11, 20, 64, 74, 2, + 14, 0, 0, 69, 74, 67, 81, 76, 92, 5, 70, 74, 64, + 77, 75, 88, 10, 64, 66, 70, 5, 3, 22, 0, 0, 0, + 65, 94, 97, 5, 67, 68, 18, 70, 90, 72, 21, 12, + 42, 37, 9, 12, 66, 14, 66, 67, 69, 78, 79, 82, + 82, 23, 0, 8, 75, 68, 74, 71, 80, 64, 72, 71, + 81, 17, 68, 2, 72, 81, 66, 73, 0, 5, 3, 1, 11, + 9, 73, 65, 1, 67, 2, 72, 6, 72, 0, 6, 2, 15, 8, + 1, 73, 4, 69, 72, 67, 86, 71, 6, 0, 6, 7, 7, 26, + 13, 3, 65, 6, 65, 67, 4, 94, 70, 0, 81, 64, 71, + 9, 3, 70, 13, 6, 4, 77, 9, 71, 76, 3, 87, 13, + 19, 13, 14, 17, 15, 8, 16, 16, 66, 5, 9, 3, 1, + 71, 0, 69, 67, 64, 67, 67, 64, 69, 80, 69, 72, + 76, 75, 82, 6, 10, 4, 3, 64, 67, 66, 66, 73, 81, + 79, 82, 94, 90, 104, 69, 69, 85, 1, 68, 71, 73, + 79, 84, 79, 81, 85, 77, 82, 92, 85, 90, 64, 23, + 18, 11, 5, 8, 1, 67, 66, 68, 4, 33, 21, 15, 8, + 16, 6, 4, 65, 4, 3, 40, 29, 23, 16, 20, 5, 64, + 68, 70, 70, 42, 22, 7, 2, 9, 66, 75, 75, 5, 42, + 29, 17, 10, 19, 5, 64, 67, 69, 62, 80, 74, 67, + 72, 74, 70, 66, 64, 67, 65, 1, 3, 76, 71, 81, + 75, 13, 76, 85, 72, 65, 68, 74, 76, 71, 74, 80, + 85, 88, 2, 3, 14, 0, 68, 4, 4, 4, 67, 64, 1, 0, + 75, 71, 76, 65, 8, 82, 64, 14, 67, 4, 1, 5, 17, + 66, 66, 5, 11, 76, 77, 95, 24, 27, 34, 16, 12, + 19, 14, 14, 16, 8, 12, 12, 64, 64, 71, 66, 2, + 70, 87, 67, 68, 69, 1, 67, 6, 9, 65, 4, 8, 9, 7, + 5, 3, 76, 70, 70, 85, 76, 83, 83, 96, 93, 97, + 99, 76, 75, 99, 66, 66, 75, 86, 79, 80, 86, 80, + 85, 88, 95, 97, 105, 108, 64, 73, 87, 71, 6, 4, + 11, 13, 15, 28, 18, 25, 26, 41, 31, 29, 42, 40, + 47, 20, 6, 71, 80, 93, 107, 117, 126, 9, 42, 35, + 34, 25, 31, 15, 11, 13, 3, 75, 69, 6, 67, 17, + 26, 66, 0, 10, 14, 4, 13, 25, 4, 0, 34, 11, 71, + 90, 104, 126, 126, 126, 126 }, + + { + + 37, + 5, 80, 37, 5, 80, 69, 7, 23, 12, 65, 80, 14, 20, + 52, 14, 22, 67, 12, 21, 64, 73, 64, 85, 101, 2, + 4, 120, 123, 122, 31, 1, 69, 12, 21, 64, 73, 4, + 15, 0, 1, 68, 73, 67, 81, 75, 92, 5, 69, 73, 64, + 77, 74, 88, 11, 0, 65, 69, 6, 3, 22, 0, 0, 0, + 64, 94, 97, 6, 67, 68, 18, 69, 89, 70, 23, 14, + 44, 39, 11, 13, 64, 16, 64, 66, 67, 77, 78, 81, + 81, 24, 1, 9, 74, 67, 73, 70, 78, 64, 72, 71, + 81, 18, 68, 3, 71, 80, 65, 72, 1, 5, 3, 2, 11, + 9, 72, 65, 2, 67, 2, 71, 6, 72, 0, 6, 1, 15, 8, + 1, 72, 5, 68, 72, 67, 85, 71, 6, 0, 7, 7, 7, 27, + 14, 4, 65, 7, 65, 67, 4, 94, 70, 0, 81, 64, 72, + 9, 3, 70, 14, 7, 4, 78, 9, 71, 75, 3, 87, 13, + 19, 13, 14, 17, 15, 8, 16, 16, 66, 5, 9, 3, 1, + 71, 0, 69, 67, 64, 67, 67, 64, 69, 79, 69, 71, + 76, 76, 81, 5, 9, 3, 2, 66, 69, 67, 67, 75, 82, + 80, 83, 96, 91, 105, 69, 69, 85, 0, 69, 72, 74, + 80, 85, 80, 82, 85, 77, 82, 91, 84, 89, 0, 24, + 18, 11, 6, 9, 2, 66, 65, 66, 5, 33, 21, 15, 8, + 17, 7, 5, 64, 6, 3, 41, 30, 23, 16, 21, 5, 64, + 67, 69, 70, 43, 22, 7, 2, 10, 65, 74, 74, 5, 42, + 29, 17, 10, 19, 5, 0, 66, 68, 62, 79, 73, 66, + 70, 72, 69, 64, 1, 65, 0, 3, 5, 75, 70, 80, 74, + 15, 75, 85, 71, 64, 67, 74, 76, 71, 74, 80, 86, + 89, 2, 3, 15, 0, 68, 4, 4, 4, 67, 64, 1, 0, 75, + 71, 76, 64, 9, 82, 64, 14, 67, 4, 1, 5, 18, 66, + 67, 5, 11, 76, 77, 96, 24, 27, 34, 15, 11, 18, + 12, 12, 14, 6, 10, 10, 66, 66, 72, 68, 64, 73, + 91, 69, 70, 70, 0, 68, 6, 10, 64, 6, 11, 8, 6, + 4, 2, 78, 71, 71, 87, 77, 84, 84, 97, 94, 98, + 99, 76, 75, 100, 67, 67, 76, 87, 80, 81, 87, 81, + 86, 89, 96, 98, 106, 108, 64, 73, 87, 70, 7, 5, + 12, 14, 16, 30, 19, 26, 27, 43, 33, 30, 44, 42, + 47, 19, 4, 73, 82, 95, 110, 119, 126, 10, 43, + 36, 35, 26, 32, 16, 12, 14, 4, 74, 68, 7, 66, + 19, 28, 65, 1, 11, 15, 5, 14, 26, 4, 0, 33, 9, + 73, 92, 107, 126, 126, 126, 126 }, + + { + + 36, + 5, 80, 36, 5, 80, 67, 8, 23, 12, 65, 81, 13, 19, + 52, 14, 24, 67, 13, 22, 64, 74, 64, 86, 102, 1, + 2, 122, 124, 123, 34, 2, 69, 13, 22, 64, 73, 5, + 15, 64, 1, 68, 72, 67, 81, 75, 92, 5, 69, 72, + 64, 77, 74, 88, 11, 0, 65, 69, 6, 3, 22, 0, 0, + 0, 0, 94, 97, 6, 68, 68, 18, 69, 89, 68, 25, 16, + 45, 41, 12, 14, 0, 17, 0, 65, 65, 77, 78, 81, + 80, 24, 1, 9, 73, 67, 72, 70, 77, 64, 72, 71, + 81, 18, 68, 3, 71, 80, 65, 72, 1, 5, 3, 2, 11, + 9, 72, 65, 2, 67, 2, 71, 5, 72, 0, 5, 0, 14, 7, + 0, 71, 5, 68, 73, 68, 85, 72, 6, 0, 7, 7, 7, 28, + 14, 4, 65, 7, 65, 68, 4, 95, 70, 0, 82, 64, 73, + 9, 3, 71, 14, 7, 4, 79, 9, 72, 75, 3, 88, 12, + 19, 13, 14, 17, 15, 8, 16, 16, 66, 5, 9, 3, 1, + 71, 0, 69, 67, 64, 67, 68, 65, 70, 79, 69, 71, + 77, 77, 81, 3, 7, 1, 0, 68, 71, 69, 69, 77, 84, + 82, 85, 98, 93, 106, 69, 69, 86, 64, 70, 73, 75, + 82, 86, 81, 83, 86, 78, 83, 91, 84, 88, 0, 24, + 18, 11, 6, 9, 2, 66, 65, 65, 6, 33, 21, 15, 8, + 17, 7, 6, 0, 8, 3, 41, 30, 23, 16, 21, 5, 64, + 67, 68, 70, 43, 22, 7, 2, 10, 65, 74, 73, 5, 41, + 28, 16, 9, 19, 5, 0, 66, 68, 62, 78, 72, 65, 69, + 71, 68, 0, 2, 64, 1, 4, 7, 74, 69, 80, 73, 16, + 75, 86, 71, 0, 67, 74, 77, 71, 75, 81, 87, 90, + 1, 3, 15, 0, 69, 3, 4, 4, 68, 65, 1, 0, 76, 71, + 76, 64, 9, 82, 65, 13, 68, 4, 0, 4, 18, 67, 68, + 5, 11, 77, 78, 98, 23, 26, 33, 14, 10, 17, 10, + 10, 12, 4, 7, 7, 69, 68, 73, 71, 67, 76, 95, 72, + 72, 72, 64, 69, 6, 11, 64, 7, 13, 6, 4, 2, 0, + 80, 73, 73, 89, 78, 86, 85, 99, 95, 99, 100, 77, + 75, 101, 68, 68, 78, 89, 82, 83, 88, 83, 88, 90, + 97, 99, 107, 109, 65, 74, 88, 70, 7, 5, 13, 14, + 17, 31, 20, 27, 28, 44, 34, 31, 45, 43, 46, 17, + 2, 75, 85, 98, 113, 122, 126, 10, 43, 36, 35, + 26, 33, 16, 12, 14, 4, 74, 68, 8, 66, 20, 29, + 65, 2, 12, 16, 5, 14, 27, 4, 0, 32, 7, 75, 95, + 110, 126, 126, 126, 126 }, + + { + + 35, + 5, 80, 35, 5, 80, 65, 10, 24, 12, 66, 83, 11, + 18, 52, 14, 26, 67, 14, 23, 64, 75, 64, 87, 103, + 1, 0, 123, 125, 123, 37, 3, 69, 14, 23, 64, 72, + 6, 16, 64, 1, 67, 71, 68, 82, 75, 92, 5, 69, 72, + 64, 77, 74, 88, 12, 0, 65, 69, 7, 3, 22, 0, 0, + 0, 0, 94, 97, 7, 69, 68, 18, 69, 89, 66, 27, 17, + 47, 43, 13, 15, 2, 18, 1, 64, 0, 76, 78, 80, 79, + 24, 1, 9, 73, 67, 72, 69, 75, 64, 73, 72, 82, + 18, 68, 3, 70, 80, 64, 72, 2, 5, 3, 2, 11, 8, + 72, 65, 2, 67, 2, 71, 4, 72, 0, 4, 64, 13, 6, + 64, 71, 6, 68, 74, 68, 84, 72, 6, 0, 7, 7, 7, + 29, 14, 4, 65, 8, 65, 69, 4, 96, 70, 0, 82, 65, + 74, 9, 3, 72, 14, 7, 4, 81, 9, 73, 75, 3, 88, + 11, 19, 13, 14, 17, 15, 8, 16, 16, 66, 4, 9, 3, + 1, 71, 64, 70, 68, 65, 68, 69, 66, 70, 79, 70, + 71, 78, 79, 81, 2, 5, 64, 65, 70, 73, 71, 71, + 79, 86, 83, 86, 100, 95, 107, 69, 69, 86, 65, + 71, 74, 77, 83, 88, 82, 84, 87, 78, 83, 91, 84, + 88, 1, 24, 18, 11, 6, 9, 2, 66, 64, 64, 6, 33, + 21, 15, 8, 18, 8, 7, 1, 10, 3, 41, 30, 23, 16, + 22, 5, 64, 67, 68, 70, 43, 22, 6, 2, 10, 65, 74, + 72, 5, 41, 28, 15, 8, 19, 5, 0, 65, 67, 62, 77, + 71, 65, 68, 70, 67, 2, 3, 0, 2, 6, 8, 74, 68, + 80, 73, 18, 75, 86, 71, 0, 67, 75, 77, 71, 76, + 82, 88, 91, 1, 2, 15, 64, 69, 3, 3, 4, 69, 65, + 0, 0, 77, 71, 77, 64, 9, 83, 65, 13, 69, 4, 64, + 4, 18, 68, 69, 4, 10, 78, 78, 99, 22, 25, 33, + 13, 9, 15, 8, 8, 10, 1, 5, 5, 72, 71, 74, 74, + 70, 79, 99, 75, 75, 74, 65, 70, 6, 12, 64, 8, + 15, 4, 2, 0, 65, 82, 75, 74, 91, 80, 87, 86, + 100, 97, 100, 101, 77, 76, 102, 69, 70, 79, 91, + 84, 85, 90, 84, 90, 92, 98, 101, 109, 110, 66, + 75, 89, 70, 8, 5, 13, 15, 17, 32, 21, 28, 29, + 45, 35, 32, 47, 44, 46, 16, 0, 78, 87, 101, 116, + 125, 126, 11, 44, 37, 36, 26, 34, 17, 12, 15, 5, + 74, 67, 8, 65, 21, 30, 65, 2, 12, 16, 5, 15, 28, + 4, 0, 31, 5, 78, 98, 113, 126, 126, 126, 126 }, + + { + + 33, + 5, 80, 33, 5, 80, 64, 11, 24, 12, 66, 84, 10, + 16, 52, 14, 29, 68, 15, 23, 64, 76, 64, 88, 104, + 0, 65, 125, 126, 124, 40, 4, 69, 15, 23, 64, 72, + 7, 16, 65, 1, 67, 71, 68, 82, 74, 92, 5, 69, 71, + 65, 78, 74, 88, 12, 1, 65, 68, 7, 3, 22, 0, 0, + 0, 1, 95, 97, 7, 70, 68, 18, 69, 89, 65, 28, 19, + 48, 44, 14, 16, 3, 20, 2, 0, 2, 76, 77, 80, 78, + 24, 1, 9, 72, 67, 71, 69, 74, 65, 73, 72, 82, + 18, 68, 3, 70, 80, 64, 72, 2, 5, 2, 2, 11, 8, + 72, 65, 2, 67, 2, 71, 4, 73, 0, 4, 65, 12, 5, + 65, 70, 6, 68, 75, 69, 84, 73, 6, 64, 7, 7, 7, + 30, 15, 4, 66, 8, 66, 70, 3, 97, 70, 0, 83, 65, + 75, 8, 2, 72, 15, 7, 4, 82, 8, 74, 75, 3, 89, + 11, 19, 13, 14, 17, 15, 8, 16, 15, 66, 4, 9, 3, + 1, 72, 64, 70, 68, 65, 68, 69, 67, 71, 79, 70, + 71, 79, 80, 81, 0, 3, 66, 67, 72, 75, 73, 73, + 81, 88, 85, 88, 103, 97, 108, 69, 70, 87, 66, + 72, 75, 78, 85, 89, 83, 86, 87, 79, 84, 91, 84, + 87, 1, 24, 18, 11, 6, 9, 2, 66, 64, 0, 7, 33, + 21, 15, 8, 18, 8, 7, 1, 12, 3, 41, 30, 23, 16, + 22, 5, 64, 67, 67, 70, 43, 21, 6, 2, 10, 65, 74, + 72, 5, 40, 27, 14, 7, 19, 5, 0, 65, 67, 62, 76, + 70, 64, 66, 69, 66, 3, 5, 1, 4, 7, 10, 73, 68, + 79, 72, 19, 74, 87, 71, 1, 67, 75, 78, 72, 77, + 83, 89, 92, 0, 2, 15, 64, 70, 2, 3, 4, 70, 66, + 0, 64, 78, 72, 77, 64, 9, 83, 66, 12, 70, 4, 65, + 3, 18, 69, 70, 4, 10, 79, 79, 101, 21, 25, 32, + 12, 7, 14, 6, 6, 8, 64, 2, 2, 75, 73, 76, 77, + 74, 82, 103, 77, 77, 76, 66, 72, 6, 13, 0, 9, + 17, 3, 0, 65, 66, 84, 77, 76, 93, 81, 89, 88, + 102, 98, 101, 102, 78, 76, 103, 71, 71, 81, 92, + 86, 87, 91, 86, 92, 93, 99, 102, 110, 110, 67, + 75, 90, 70, 8, 6, 14, 15, 18, 33, 21, 29, 30, + 46, 36, 33, 48, 45, 45, 14, 65, 80, 90, 104, + 119, 126, 126, 11, 44, 37, 36, 27, 34, 17, 13, + 15, 5, 73, 67, 9, 65, 22, 31, 65, 3, 13, 17, 5, + 15, 29, 4, 0, 29, 3, 80, 101, 116, 126, 126, + 126, 126 }, + + { + + 32, + 5, 80, 32, 5, 80, 1, 13, 24, 12, 67, 86, 8, 15, + 52, 14, 31, 68, 16, 24, 64, 76, 0, 89, 105, 0, + 67, 126, 126, 124, 43, 6, 69, 16, 24, 64, 72, 8, + 16, 65, 1, 67, 70, 68, 83, 74, 92, 5, 69, 70, + 65, 78, 74, 88, 13, 1, 64, 68, 8, 3, 22, 0, 0, + 0, 1, 95, 97, 8, 71, 68, 18, 68, 89, 0, 30, 20, + 50, 46, 16, 17, 4, 21, 3, 1, 4, 75, 77, 79, 77, + 24, 1, 9, 72, 67, 71, 68, 72, 65, 73, 72, 82, + 18, 68, 4, 69, 80, 64, 72, 3, 5, 2, 2, 11, 8, + 71, 65, 3, 67, 2, 71, 3, 73, 0, 3, 66, 12, 4, + 66, 69, 7, 68, 76, 69, 83, 73, 6, 64, 7, 7, 7, + 31, 15, 4, 66, 8, 66, 71, 3, 98, 70, 0, 83, 66, + 76, 8, 2, 73, 15, 7, 4, 83, 8, 75, 75, 3, 89, + 10, 19, 13, 14, 17, 15, 8, 16, 15, 66, 4, 9, 3, + 1, 72, 64, 70, 69, 65, 68, 70, 68, 71, 79, 71, + 71, 80, 81, 81, 64, 1, 67, 68, 74, 77, 75, 75, + 83, 90, 87, 90, 105, 98, 109, 69, 70, 87, 67, + 73, 76, 79, 86, 91, 84, 87, 88, 79, 84, 91, 84, + 87, 1, 24, 18, 11, 6, 9, 3, 65, 0, 1, 7, 33, 21, + 15, 8, 18, 9, 8, 2, 14, 3, 41, 30, 23, 16, 22, + 5, 64, 67, 66, 70, 44, 21, 5, 2, 10, 65, 74, 71, + 5, 40, 26, 13, 6, 19, 5, 0, 65, 66, 62, 75, 69, + 0, 65, 68, 65, 4, 6, 2, 5, 9, 12, 72, 67, 79, + 72, 20, 74, 87, 70, 2, 67, 76, 78, 72, 77, 84, + 90, 93, 64, 1, 15, 65, 70, 2, 3, 4, 71, 67, 0, + 64, 79, 72, 77, 64, 9, 83, 67, 12, 70, 4, 66, 2, + 18, 70, 71, 3, 9, 80, 80, 103, 20, 24, 32, 11, + 6, 12, 4, 4, 6, 67, 64, 0, 78, 75, 77, 80, 77, + 85, 107, 80, 80, 78, 67, 73, 6, 14, 0, 10, 19, + 1, 64, 67, 68, 86, 79, 77, 95, 82, 91, 89, 104, + 100, 102, 103, 78, 76, 104, 72, 73, 83, 94, 87, + 88, 93, 87, 93, 95, 100, 103, 111, 111, 67, 76, + 91, 69, 9, 6, 14, 16, 19, 34, 22, 30, 31, 48, + 37, 34, 49, 47, 45, 12, 67, 83, 92, 107, 122, + 126, 126, 11, 45, 38, 37, 27, 35, 17, 13, 16, 6, + 73, 67, 10, 64, 23, 32, 64, 4, 13, 17, 5, 16, + 30, 4, 0, 28, 1, 83, 104, 119, 126, 126, 126, + 126 }, + + { + + 31, + 5, 81, 31, 5, 81, 3, 14, 25, 12, 67, 87, 7, 14, + 52, 14, 33, 68, 16, 25, 64, 77, 0, 90, 106, 64, + 68, 126, 126, 125, 46, 7, 69, 16, 25, 64, 71, 9, + 17, 66, 2, 66, 69, 69, 83, 74, 92, 5, 68, 70, + 65, 78, 73, 88, 13, 1, 64, 68, 8, 3, 22, 0, 0, + 0, 2, 95, 97, 8, 71, 69, 18, 68, 88, 2, 32, 22, + 51, 48, 17, 18, 6, 22, 4, 1, 5, 75, 77, 79, 77, + 25, 1, 9, 71, 66, 70, 68, 71, 65, 74, 73, 83, + 18, 68, 4, 69, 80, 0, 72, 3, 5, 2, 3, 11, 7, 71, + 65, 3, 67, 2, 71, 2, 73, 0, 2, 67, 11, 4, 66, + 69, 7, 68, 76, 70, 83, 74, 6, 64, 7, 7, 7, 31, + 15, 4, 66, 9, 66, 72, 3, 98, 71, 0, 84, 66, 77, + 8, 2, 74, 15, 7, 4, 85, 8, 76, 75, 3, 90, 9, 19, + 12, 14, 17, 15, 8, 16, 15, 66, 3, 9, 2, 1, 72, + 65, 71, 69, 66, 69, 71, 69, 72, 79, 71, 70, 81, + 83, 81, 66, 64, 69, 70, 76, 79, 77, 77, 85, 92, + 88, 91, 107, 100, 110, 69, 70, 88, 68, 74, 77, + 81, 88, 92, 85, 88, 89, 80, 85, 91, 84, 86, 2, + 24, 18, 11, 7, 9, 3, 65, 0, 2, 8, 32, 21, 15, 8, + 19, 9, 9, 3, 16, 3, 42, 30, 23, 16, 23, 5, 64, + 66, 66, 70, 44, 21, 5, 2, 10, 64, 73, 70, 5, 39, + 26, 12, 6, 19, 5, 1, 64, 66, 62, 75, 68, 0, 64, + 67, 64, 6, 7, 3, 6, 10, 13, 72, 66, 79, 71, 22, + 74, 88, 70, 2, 67, 76, 79, 72, 78, 85, 91, 94, + 64, 1, 15, 65, 71, 1, 2, 4, 71, 67, 64, 64, 79, + 72, 78, 64, 9, 84, 67, 11, 71, 3, 67, 2, 19, 70, + 72, 3, 9, 80, 80, 104, 19, 23, 31, 10, 5, 11, 2, + 2, 4, 69, 66, 66, 81, 78, 78, 82, 80, 88, 111, + 83, 82, 80, 68, 74, 6, 15, 0, 12, 22, 64, 66, + 69, 70, 88, 81, 79, 97, 84, 92, 90, 105, 101, + 103, 104, 79, 77, 105, 73, 74, 84, 96, 89, 90, + 94, 89, 95, 96, 102, 105, 113, 112, 68, 77, 92, + 69, 9, 6, 15, 16, 19, 36, 23, 31, 32, 49, 39, + 35, 51, 48, 44, 11, 69, 85, 95, 109, 125, 126, + 126, 12, 45, 38, 37, 27, 36, 18, 13, 16, 6, 73, + 66, 10, 64, 24, 33, 64, 4, 14, 18, 5, 16, 31, 4, + 0, 27, 64, 85, 107, 123, 126, 126, 126, 126 }, + + { + + 30, + 5, 81, 30, 5, 81, 5, 16, 25, 12, 68, 89, 5, 12, + 52, 14, 36, 69, 17, 25, 64, 78, 0, 91, 107, 64, + 70, 126, 126, 125, 49, 8, 69, 17, 25, 64, 71, + 10, 17, 66, 2, 66, 69, 69, 84, 73, 92, 5, 68, + 69, 66, 78, 73, 88, 14, 2, 64, 67, 9, 3, 22, 0, + 0, 0, 2, 95, 97, 9, 72, 69, 18, 68, 88, 3, 34, + 23, 53, 50, 18, 19, 7, 24, 5, 2, 7, 74, 76, 78, + 76, 25, 1, 9, 71, 66, 70, 67, 69, 66, 74, 73, + 83, 18, 68, 4, 68, 80, 0, 72, 4, 5, 1, 3, 11, 7, + 71, 65, 3, 67, 2, 71, 2, 73, 0, 2, 68, 10, 3, + 67, 68, 8, 68, 77, 70, 82, 74, 6, 65, 7, 7, 7, + 32, 16, 4, 66, 9, 66, 73, 3, 99, 71, 0, 84, 67, + 78, 7, 2, 74, 16, 7, 4, 86, 7, 77, 75, 3, 90, 9, + 19, 12, 14, 17, 15, 8, 16, 15, 66, 3, 9, 2, 1, + 72, 65, 71, 70, 66, 69, 71, 70, 72, 79, 72, 70, + 82, 84, 81, 67, 66, 71, 72, 78, 81, 79, 79, 87, + 94, 90, 93, 110, 102, 111, 69, 71, 88, 69, 75, + 78, 82, 89, 94, 86, 89, 89, 80, 85, 91, 84, 86, + 2, 24, 18, 11, 7, 9, 3, 65, 1, 3, 8, 32, 21, 15, + 8, 19, 10, 10, 3, 18, 3, 42, 30, 23, 16, 23, 5, + 64, 66, 65, 70, 44, 20, 4, 2, 10, 64, 73, 70, 5, + 39, 25, 11, 5, 19, 5, 1, 64, 65, 62, 74, 67, 1, + 1, 66, 0, 7, 9, 4, 8, 12, 15, 71, 65, 78, 71, + 23, 73, 88, 70, 3, 67, 77, 79, 73, 79, 86, 92, + 95, 65, 0, 15, 66, 71, 1, 2, 4, 72, 68, 64, 65, + 80, 72, 78, 64, 9, 84, 68, 11, 72, 3, 68, 1, 19, + 71, 73, 2, 8, 81, 81, 106, 18, 23, 31, 9, 3, 9, + 0, 0, 2, 72, 69, 68, 84, 80, 80, 85, 84, 91, + 115, 85, 85, 82, 69, 75, 6, 16, 1, 13, 24, 65, + 68, 71, 71, 90, 83, 80, 99, 85, 94, 92, 107, + 103, 104, 105, 79, 77, 106, 75, 76, 86, 97, 91, + 92, 96, 90, 97, 98, 103, 106, 114, 112, 69, 77, + 93, 69, 10, 7, 15, 17, 20, 37, 24, 32, 33, 50, + 40, 36, 52, 49, 44, 9, 71, 88, 97, 112, 126, + 126, 126, 12, 46, 39, 38, 28, 37, 18, 14, 17, 7, + 72, 66, 11, 0, 25, 34, 64, 5, 14, 18, 5, 17, 32, + 4, 0, 25, 66, 88, 110, 126, 126, 126, 126, 126 }, + + { + + 28, + 4, 81, 28, 4, 81, 6, 17, 25, 12, 68, 90, 4, 11, + 52, 14, 38, 69, 18, 26, 64, 79, 0, 92, 109, 65, + 72, 126, 126, 126, 51, 9, 69, 18, 26, 64, 71, + 11, 17, 67, 2, 66, 68, 70, 84, 73, 93, 5, 68, + 69, 66, 79, 73, 88, 14, 2, 64, 67, 9, 3, 22, 0, + 0, 0, 3, 96, 97, 9, 73, 69, 18, 68, 88, 5, 35, + 25, 54, 51, 19, 20, 8, 25, 6, 3, 9, 74, 76, 78, + 75, 25, 1, 9, 70, 66, 69, 67, 68, 66, 75, 74, + 84, 18, 68, 4, 68, 80, 0, 72, 4, 4, 1, 3, 11, 6, + 71, 65, 3, 67, 1, 71, 1, 74, 0, 1, 70, 9, 2, 68, + 68, 8, 68, 78, 71, 82, 75, 5, 65, 7, 7, 7, 33, + 16, 4, 67, 9, 67, 74, 2, 100, 71, 0, 85, 67, 79, + 7, 1, 75, 16, 7, 4, 88, 7, 78, 75, 3, 91, 8, 18, + 12, 14, 17, 14, 7, 16, 14, 67, 2, 9, 2, 0, 73, + 66, 72, 70, 67, 70, 72, 71, 73, 79, 72, 70, 83, + 86, 81, 69, 68, 73, 74, 80, 84, 81, 81, 89, 96, + 92, 95, 112, 104, 112, 69, 71, 89, 70, 77, 80, + 84, 91, 95, 88, 91, 90, 81, 86, 91, 84, 85, 2, + 24, 18, 11, 7, 9, 3, 65, 1, 4, 9, 32, 21, 15, 8, + 19, 10, 10, 4, 19, 3, 42, 30, 23, 15, 23, 5, 64, + 66, 65, 70, 44, 20, 4, 2, 10, 64, 73, 69, 5, 38, + 24, 10, 4, 18, 5, 1, 64, 65, 62, 73, 66, 1, 2, + 65, 0, 8, 10, 5, 9, 13, 16, 71, 65, 78, 70, 24, + 73, 89, 70, 3, 67, 77, 80, 73, 80, 87, 94, 96, + 66, 0, 15, 66, 72, 0, 1, 3, 73, 69, 65, 65, 81, + 73, 79, 64, 9, 85, 69, 10, 73, 3, 69, 0, 19, 72, + 74, 2, 8, 82, 82, 108, 17, 22, 30, 7, 2, 8, 65, + 65, 64, 74, 72, 71, 87, 83, 81, 88, 87, 94, 119, + 88, 87, 84, 71, 77, 6, 16, 1, 14, 26, 67, 70, + 73, 73, 93, 85, 82, 101, 87, 96, 93, 109, 104, + 105, 106, 80, 78, 107, 76, 77, 88, 99, 93, 94, + 97, 92, 99, 99, 104, 108, 116, 113, 70, 78, 94, + 69, 10, 7, 16, 17, 20, 38, 24, 33, 34, 51, 41, + 37, 53, 50, 43, 7, 73, 90, 100, 115, 126, 126, + 126, 12, 46, 39, 38, 28, 37, 18, 14, 17, 7, 72, + 66, 11, 0, 26, 35, 64, 5, 15, 19, 5, 17, 32, 4, + 64, 24, 68, 90, 113, 126, 126, 126, 126, 126 }, + + { + + 27, + 4, 81, 27, 4, 81, 8, 18, 26, 12, 68, 91, 3, 10, + 52, 14, 40, 69, 19, 27, 64, 79, 1, 93, 110, 66, + 74, 126, 126, 126, 54, 11, 69, 19, 27, 64, 70, + 12, 18, 68, 2, 65, 67, 70, 84, 73, 93, 5, 68, + 68, 66, 79, 73, 88, 14, 2, 0, 67, 9, 3, 22, 0, + 0, 0, 4, 96, 97, 9, 74, 69, 18, 67, 88, 7, 37, + 27, 55, 53, 21, 21, 10, 26, 8, 4, 11, 74, 76, + 78, 74, 25, 1, 9, 69, 66, 68, 66, 67, 66, 75, + 74, 84, 18, 68, 5, 67, 79, 1, 72, 4, 4, 1, 3, + 11, 6, 70, 65, 4, 67, 1, 70, 0, 74, 0, 0, 71, 9, + 1, 69, 67, 8, 67, 79, 72, 82, 76, 5, 65, 8, 7, + 7, 34, 16, 4, 67, 10, 67, 74, 2, 101, 71, 0, 86, + 67, 80, 7, 1, 76, 16, 7, 4, 89, 7, 78, 75, 3, + 92, 7, 18, 12, 14, 17, 14, 7, 16, 14, 67, 2, 9, + 2, 0, 73, 66, 72, 70, 67, 70, 73, 71, 73, 79, + 72, 70, 84, 87, 81, 71, 69, 74, 75, 82, 86, 82, + 82, 91, 98, 93, 96, 114, 105, 113, 69, 71, 90, + 71, 78, 81, 85, 92, 96, 89, 92, 91, 82, 87, 91, + 83, 84, 3, 25, 18, 11, 7, 10, 4, 64, 2, 5, 10, + 32, 21, 15, 8, 20, 10, 11, 5, 21, 3, 42, 30, 23, + 15, 24, 5, 64, 66, 64, 70, 45, 20, 4, 2, 11, 64, + 73, 68, 5, 38, 24, 10, 3, 18, 5, 1, 0, 64, 62, + 72, 65, 2, 3, 0, 1, 10, 11, 7, 10, 14, 18, 70, + 64, 78, 69, 26, 73, 90, 69, 4, 67, 77, 81, 73, + 80, 88, 95, 97, 66, 0, 15, 66, 72, 64, 1, 3, 74, + 69, 65, 65, 82, 73, 79, 0, 10, 85, 69, 9, 73, 3, + 69, 0, 19, 73, 75, 2, 8, 83, 82, 109, 17, 21, + 29, 6, 1, 7, 67, 67, 66, 76, 74, 74, 89, 85, 82, + 91, 90, 97, 123, 91, 89, 85, 72, 78, 6, 17, 1, + 15, 28, 69, 71, 75, 75, 95, 86, 83, 103, 88, 97, + 94, 110, 105, 106, 106, 80, 78, 108, 77, 78, 89, + 101, 94, 95, 98, 93, 100, 100, 105, 109, 117, + 114, 70, 79, 94, 68, 10, 7, 17, 18, 21, 39, 25, + 34, 35, 53, 42, 38, 55, 52, 42, 6, 75, 92, 103, + 118, 126, 126, 126, 13, 46, 39, 39, 28, 38, 19, + 14, 18, 8, 72, 65, 12, 0, 27, 37, 0, 6, 16, 20, + 5, 18, 33, 4, 64, 23, 70, 92, 115, 126, 126, + 126, 126, 126 }, + + { + + 26, + 4, 81, 26, 4, 81, 10, 20, 26, 12, 69, 93, 1, 8, + 52, 14, 43, 70, 20, 27, 64, 80, 1, 94, 111, 66, + 76, 126, 126, 126, 57, 12, 69, 20, 27, 64, 70, + 13, 18, 68, 2, 65, 67, 70, 85, 72, 93, 5, 68, + 67, 67, 79, 73, 88, 15, 3, 0, 66, 10, 3, 22, 0, + 0, 0, 4, 96, 97, 10, 75, 69, 18, 67, 88, 8, 39, + 28, 57, 55, 22, 22, 11, 28, 9, 5, 13, 73, 75, + 77, 73, 25, 1, 9, 69, 66, 68, 66, 65, 67, 75, + 74, 84, 18, 68, 5, 67, 79, 1, 72, 5, 4, 0, 3, + 11, 6, 70, 65, 4, 67, 1, 70, 0, 74, 0, 0, 72, 8, + 0, 70, 66, 9, 67, 80, 72, 81, 76, 5, 66, 8, 7, + 7, 35, 17, 4, 67, 10, 67, 75, 2, 102, 71, 0, 86, + 68, 81, 6, 1, 76, 17, 7, 4, 90, 6, 79, 75, 3, + 92, 7, 18, 12, 14, 17, 14, 7, 16, 14, 67, 2, 9, + 2, 0, 73, 66, 72, 71, 67, 70, 73, 72, 74, 79, + 73, 70, 85, 88, 81, 72, 71, 76, 77, 84, 88, 84, + 84, 93, 100, 95, 98, 117, 107, 114, 69, 72, 90, + 72, 79, 82, 86, 94, 98, 90, 93, 91, 82, 87, 91, + 83, 84, 3, 25, 18, 11, 7, 10, 4, 64, 2, 6, 10, + 32, 21, 15, 8, 20, 11, 12, 5, 23, 3, 42, 30, 23, + 15, 24, 5, 64, 66, 0, 70, 45, 19, 3, 2, 11, 64, + 73, 68, 5, 37, 23, 9, 2, 18, 5, 1, 0, 64, 62, + 71, 64, 3, 5, 1, 2, 11, 13, 8, 12, 16, 20, 69, + 0, 77, 69, 27, 72, 90, 69, 5, 67, 78, 81, 74, + 81, 89, 96, 98, 67, 64, 15, 67, 73, 64, 1, 3, + 75, 70, 65, 66, 83, 73, 79, 0, 10, 85, 70, 9, + 74, 3, 70, 64, 19, 74, 76, 1, 7, 84, 83, 111, + 16, 21, 29, 5, 64, 5, 69, 69, 68, 79, 77, 76, + 92, 87, 84, 94, 94, 100, 126, 93, 92, 87, 73, + 79, 6, 18, 2, 16, 30, 70, 73, 77, 76, 97, 88, + 85, 105, 89, 99, 96, 112, 107, 107, 107, 81, 78, + 109, 79, 80, 91, 102, 96, 97, 100, 95, 102, 102, + 106, 110, 118, 114, 71, 79, 95, 68, 11, 8, 17, + 18, 22, 40, 26, 35, 36, 54, 43, 39, 56, 53, 42, + 4, 77, 95, 105, 121, 126, 126, 126, 13, 47, 40, + 39, 29, 39, 19, 15, 18, 8, 71, 65, 13, 1, 28, + 38, 0, 7, 16, 20, 5, 18, 34, 4, 64, 21, 72, 95, + 118, 126, 126, 126, 126, 126 }, + + { + + 25, + 4, 82, 25, 4, 82, 12, 21, 27, 12, 69, 94, 0, 7, + 52, 14, 45, 70, 20, 28, 64, 81, 1, 95, 112, 67, + 77, 126, 126, 126, 60, 13, 69, 20, 28, 64, 69, + 14, 19, 69, 3, 64, 66, 71, 85, 72, 93, 5, 67, + 67, 67, 79, 72, 88, 15, 3, 0, 66, 10, 3, 22, 0, + 0, 0, 5, 96, 97, 10, 75, 70, 18, 67, 87, 10, 41, + 30, 58, 57, 23, 23, 13, 29, 10, 5, 14, 73, 75, + 77, 73, 26, 1, 9, 68, 65, 67, 65, 64, 67, 76, + 75, 85, 18, 68, 5, 66, 79, 2, 72, 5, 4, 0, 4, + 11, 5, 70, 65, 4, 67, 1, 70, 64, 74, 0, 64, 73, + 7, 0, 70, 66, 9, 67, 80, 73, 81, 77, 5, 66, 8, + 7, 7, 35, 17, 4, 67, 11, 67, 76, 2, 102, 72, 0, + 87, 68, 82, 6, 1, 77, 17, 7, 4, 92, 6, 80, 75, + 3, 93, 6, 18, 11, 14, 17, 14, 7, 16, 14, 67, 1, + 9, 1, 0, 73, 67, 73, 71, 68, 71, 74, 73, 74, 79, + 73, 69, 86, 90, 81, 74, 73, 78, 79, 86, 90, 86, + 86, 95, 102, 96, 99, 119, 109, 115, 69, 72, 91, + 73, 80, 83, 88, 95, 99, 91, 94, 92, 83, 88, 91, + 83, 83, 4, 25, 18, 11, 8, 10, 4, 64, 3, 7, 11, + 31, 21, 15, 8, 21, 11, 13, 6, 25, 3, 43, 30, 23, + 15, 25, 5, 64, 65, 0, 70, 45, 19, 3, 2, 11, 0, + 72, 67, 5, 37, 23, 8, 2, 18, 5, 2, 1, 0, 62, 71, + 0, 3, 6, 2, 3, 13, 14, 9, 13, 17, 21, 69, 1, 77, + 68, 29, 72, 91, 69, 5, 67, 78, 82, 74, 82, 90, + 97, 99, 67, 64, 15, 67, 73, 65, 0, 3, 75, 70, + 66, 66, 83, 73, 80, 0, 10, 86, 70, 8, 75, 2, 71, + 64, 20, 74, 77, 1, 7, 84, 83, 112, 15, 20, 28, + 4, 65, 4, 71, 71, 70, 81, 79, 79, 95, 90, 85, + 96, 97, 103, 126, 96, 94, 89, 74, 80, 6, 19, 2, + 18, 33, 72, 75, 79, 78, 99, 90, 86, 107, 91, + 100, 97, 113, 108, 108, 108, 81, 79, 110, 80, + 81, 92, 104, 98, 99, 101, 96, 104, 103, 108, + 112, 120, 115, 72, 80, 96, 68, 11, 8, 18, 19, + 22, 42, 27, 36, 37, 55, 45, 40, 58, 54, 41, 3, + 79, 97, 108, 123, 126, 126, 126, 14, 47, 40, 40, + 29, 40, 20, 15, 19, 9, 71, 64, 13, 1, 29, 39, 0, + 7, 17, 21, 5, 19, 35, 4, 64, 20, 74, 97, 121, + 126, 126, 126, 126, 126 }, + + { + + 23, + 4, 82, 23, 4, 82, 13, 23, 27, 12, 70, 96, 65, 6, + 52, 14, 47, 70, 21, 29, 64, 82, 1, 96, 113, 67, + 79, 126, 126, 126, 62, 14, 69, 21, 29, 64, 69, + 15, 19, 69, 3, 64, 65, 71, 86, 72, 93, 5, 67, + 66, 67, 80, 72, 88, 16, 3, 0, 66, 11, 3, 22, 0, + 0, 0, 5, 97, 97, 11, 76, 70, 18, 67, 87, 12, 42, + 31, 60, 58, 24, 24, 14, 30, 11, 6, 16, 72, 75, + 76, 72, 26, 1, 9, 68, 65, 67, 65, 1, 67, 76, 75, + 85, 18, 68, 5, 66, 79, 2, 72, 6, 4, 0, 4, 11, 5, + 70, 65, 4, 67, 1, 70, 65, 75, 0, 65, 74, 6, 64, + 71, 65, 10, 67, 81, 73, 80, 77, 5, 66, 8, 7, 7, + 36, 17, 4, 68, 11, 68, 77, 1, 103, 72, 0, 87, + 69, 83, 6, 0, 78, 17, 7, 4, 93, 6, 81, 75, 3, + 93, 5, 18, 11, 14, 17, 14, 7, 16, 13, 67, 1, 9, + 1, 0, 74, 67, 73, 72, 68, 71, 75, 74, 75, 79, + 74, 69, 87, 91, 81, 75, 75, 80, 81, 88, 92, 88, + 88, 97, 104, 98, 101, 121, 111, 116, 69, 72, 91, + 74, 81, 84, 89, 97, 101, 92, 96, 93, 83, 88, 91, + 83, 83, 4, 25, 18, 11, 8, 10, 4, 64, 3, 8, 11, + 31, 21, 15, 8, 21, 12, 13, 7, 27, 3, 43, 30, 23, + 15, 25, 5, 64, 65, 1, 70, 45, 19, 2, 2, 11, 0, + 72, 66, 5, 36, 22, 7, 1, 18, 5, 2, 1, 0, 62, 70, + 1, 4, 7, 3, 4, 14, 15, 10, 14, 19, 23, 68, 1, + 77, 68, 30, 72, 91, 69, 6, 67, 79, 82, 74, 83, + 91, 98, 100, 68, 65, 15, 68, 74, 65, 0, 3, 76, + 71, 66, 66, 84, 74, 80, 0, 10, 86, 71, 8, 76, 2, + 72, 65, 20, 75, 78, 0, 6, 85, 84, 114, 14, 19, + 28, 3, 66, 2, 73, 73, 72, 84, 82, 81, 98, 92, + 86, 99, 100, 106, 126, 99, 97, 91, 75, 82, 6, + 20, 2, 19, 35, 74, 77, 81, 80, 101, 92, 88, 109, + 92, 102, 98, 115, 110, 109, 109, 82, 79, 111, + 81, 83, 94, 106, 100, 101, 103, 98, 106, 105, + 109, 113, 121, 116, 73, 81, 97, 68, 12, 8, 18, + 19, 23, 43, 27, 37, 38, 56, 46, 41, 59, 55, 41, + 1, 81, 100, 110, 126, 126, 126, 126, 14, 48, 41, + 40, 29, 40, 20, 15, 19, 9, 71, 64, 14, 2, 30, + 40, 0, 8, 17, 21, 5, 19, 36, 4, 64, 19, 76, 100, + 124, 126, 126, 126, 126, 126 }, + + { + + 22, + 4, 82, 22, 4, 82, 15, 24, 27, 12, 70, 97, 66, 4, + 52, 14, 50, 71, 22, 29, 64, 82, 2, 97, 114, 68, + 81, 126, 126, 126, 62, 16, 69, 22, 29, 64, 69, + 16, 19, 70, 3, 64, 65, 71, 86, 71, 93, 5, 67, + 65, 68, 80, 72, 88, 16, 4, 1, 65, 11, 3, 22, 0, + 0, 0, 6, 97, 97, 11, 77, 70, 18, 66, 87, 13, 44, + 33, 61, 60, 26, 25, 15, 32, 12, 7, 18, 72, 74, + 76, 71, 26, 1, 9, 67, 65, 66, 64, 2, 68, 76, 75, + 85, 18, 68, 6, 65, 79, 2, 72, 6, 4, 64, 4, 11, + 5, 69, 65, 5, 67, 1, 70, 65, 75, 0, 65, 75, 6, + 65, 72, 64, 10, 67, 82, 74, 80, 78, 5, 67, 8, 7, + 7, 37, 18, 4, 68, 11, 68, 78, 1, 104, 72, 0, 88, + 69, 84, 5, 0, 78, 18, 7, 4, 94, 5, 82, 75, 3, + 94, 5, 18, 11, 14, 17, 14, 7, 16, 13, 67, 1, 9, + 1, 0, 74, 67, 73, 72, 68, 71, 75, 75, 75, 79, + 74, 69, 88, 92, 81, 77, 77, 81, 82, 90, 94, 90, + 90, 99, 106, 100, 103, 124, 112, 117, 69, 73, + 92, 75, 82, 85, 90, 98, 102, 93, 97, 93, 84, 89, + 91, 83, 82, 4, 25, 18, 11, 8, 10, 5, 0, 4, 9, + 12, 31, 21, 15, 8, 21, 12, 14, 7, 29, 3, 43, 30, + 23, 15, 25, 5, 64, 65, 2, 70, 46, 18, 2, 2, 11, + 0, 72, 66, 5, 36, 21, 6, 0, 18, 5, 2, 1, 1, 62, + 69, 2, 5, 9, 4, 5, 15, 17, 11, 16, 20, 25, 67, + 2, 76, 67, 31, 71, 92, 68, 7, 67, 79, 83, 75, + 83, 92, 99, 101, 69, 65, 15, 68, 74, 66, 0, 3, + 77, 72, 66, 67, 85, 74, 80, 0, 10, 86, 72, 7, + 76, 2, 73, 66, 20, 76, 79, 0, 6, 86, 85, 116, + 13, 19, 27, 2, 68, 1, 75, 75, 74, 86, 85, 84, + 101, 94, 88, 102, 104, 109, 126, 101, 99, 93, + 76, 83, 6, 21, 3, 20, 37, 75, 78, 83, 81, 103, + 94, 89, 111, 93, 104, 100, 117, 111, 110, 110, + 82, 79, 112, 83, 84, 96, 107, 101, 102, 104, 99, + 107, 106, 110, 114, 122, 116, 73, 81, 98, 67, + 12, 9, 19, 20, 24, 44, 28, 38, 39, 58, 47, 42, + 60, 57, 40, 64, 83, 102, 113, 126, 126, 126, + 126, 14, 48, 41, 41, 30, 41, 20, 16, 20, 10, 70, + 64, 15, 2, 31, 41, 1, 9, 18, 22, 5, 20, 37, 4, + 64, 17, 78, 102, 126, 126, 126, 126, 126, 126 }, + + { + + 21, + 4, 82, 21, 4, 82, 17, 26, 28, 12, 71, 99, 68, 3, + 52, 14, 52, 71, 23, 30, 64, 83, 2, 98, 115, 68, + 83, 126, 126, 126, 62, 17, 69, 23, 30, 64, 68, + 17, 20, 70, 3, 0, 64, 72, 87, 71, 93, 5, 67, 65, + 68, 80, 72, 88, 17, 4, 1, 65, 12, 3, 22, 0, 0, + 0, 6, 97, 97, 12, 78, 70, 18, 66, 87, 15, 46, + 34, 62, 62, 27, 26, 17, 33, 13, 8, 20, 71, 74, + 75, 70, 26, 1, 9, 67, 65, 66, 64, 4, 68, 77, 76, + 86, 18, 68, 6, 65, 79, 3, 72, 7, 4, 64, 4, 11, + 4, 69, 65, 5, 67, 1, 70, 66, 75, 0, 66, 76, 5, + 66, 73, 64, 11, 67, 83, 74, 79, 78, 5, 67, 8, 7, + 7, 38, 18, 4, 68, 12, 68, 79, 1, 105, 72, 0, 88, + 70, 85, 5, 0, 79, 18, 7, 4, 96, 5, 83, 75, 3, + 94, 4, 18, 11, 14, 17, 14, 7, 16, 13, 67, 0, 9, + 1, 0, 74, 68, 74, 73, 69, 72, 76, 76, 76, 79, + 75, 69, 89, 94, 81, 78, 79, 83, 84, 92, 96, 92, + 92, 101, 108, 101, 104, 126, 114, 118, 69, 73, + 92, 76, 83, 86, 92, 100, 104, 94, 98, 94, 84, + 89, 91, 83, 82, 5, 25, 18, 11, 8, 10, 5, 0, 4, + 10, 12, 31, 21, 15, 8, 22, 13, 15, 8, 31, 3, 43, + 30, 23, 15, 26, 5, 64, 65, 2, 70, 46, 18, 1, 2, + 11, 0, 72, 65, 5, 35, 21, 5, 64, 18, 5, 2, 2, 1, + 62, 68, 3, 5, 10, 5, 6, 17, 18, 12, 17, 22, 26, + 67, 3, 76, 67, 33, 71, 92, 68, 7, 67, 80, 83, + 75, 84, 93, 100, 102, 69, 66, 15, 69, 75, 66, + 64, 3, 78, 72, 67, 67, 86, 74, 81, 0, 10, 87, + 72, 7, 77, 2, 74, 66, 20, 77, 80, 64, 5, 87, 85, + 117, 12, 18, 27, 1, 69, 64, 77, 77, 76, 89, 87, + 86, 104, 97, 89, 105, 107, 112, 126, 104, 102, + 95, 77, 84, 6, 22, 3, 21, 39, 77, 80, 85, 83, + 105, 96, 91, 113, 95, 105, 101, 118, 113, 111, + 111, 83, 80, 113, 84, 86, 97, 109, 103, 104, + 106, 101, 109, 108, 111, 116, 124, 117, 74, 82, + 99, 67, 13, 9, 19, 20, 24, 45, 29, 39, 40, 59, + 48, 43, 62, 58, 40, 65, 85, 105, 115, 126, 126, + 126, 126, 15, 49, 42, 41, 30, 42, 21, 16, 20, + 10, 70, 0, 15, 3, 32, 42, 1, 9, 18, 22, 5, 20, + 38, 4, 64, 16, 80, 105, 126, 126, 126, 126, 126, + 126 }, + + { + + 20, + 4, 82, 20, 4, 82, 19, 27, 28, 12, 71, 100, 69, + 2, 52, 14, 54, 71, 24, 31, 64, 84, 2, 99, 116, + 69, 85, 126, 126, 126, 62, 18, 69, 24, 31, 64, + 68, 18, 20, 71, 3, 0, 0, 72, 87, 71, 93, 5, 67, + 64, 68, 80, 72, 88, 17, 4, 1, 65, 12, 3, 22, 0, + 0, 0, 7, 97, 97, 12, 79, 70, 18, 66, 87, 17, 48, + 36, 62, 62, 28, 27, 18, 34, 14, 9, 22, 71, 74, + 75, 69, 26, 1, 9, 66, 65, 65, 0, 5, 68, 77, 76, + 86, 18, 68, 6, 64, 79, 3, 72, 7, 4, 64, 4, 11, + 4, 69, 65, 5, 67, 1, 70, 67, 75, 0, 67, 77, 4, + 67, 74, 0, 11, 67, 84, 75, 79, 79, 5, 67, 8, 7, + 7, 39, 18, 4, 68, 12, 68, 80, 1, 106, 72, 0, 89, + 70, 86, 5, 0, 80, 18, 7, 4, 97, 5, 84, 75, 3, + 95, 3, 18, 11, 14, 17, 14, 7, 16, 13, 67, 0, 9, + 1, 0, 74, 68, 74, 73, 69, 72, 77, 77, 76, 79, + 75, 69, 90, 95, 81, 80, 81, 85, 86, 94, 98, 94, + 94, 103, 110, 103, 106, 126, 116, 119, 69, 73, + 93, 77, 84, 87, 93, 101, 105, 95, 99, 95, 85, + 90, 91, 83, 81, 5, 25, 18, 11, 8, 10, 5, 0, 5, + 11, 13, 31, 21, 15, 8, 22, 13, 16, 9, 33, 3, 43, + 30, 23, 15, 26, 5, 64, 65, 3, 70, 46, 18, 1, 2, + 11, 0, 72, 64, 5, 35, 20, 4, 65, 18, 5, 2, 2, 2, + 62, 67, 4, 6, 11, 6, 7, 18, 19, 13, 18, 23, 28, + 66, 4, 76, 66, 34, 71, 93, 68, 8, 67, 80, 84, + 75, 85, 94, 101, 103, 70, 66, 15, 69, 75, 67, + 64, 3, 79, 73, 67, 67, 87, 74, 81, 0, 10, 87, + 73, 6, 78, 2, 75, 67, 20, 78, 81, 64, 5, 88, 86, + 119, 11, 17, 26, 0, 70, 65, 79, 79, 78, 91, 90, + 89, 107, 99, 90, 108, 110, 115, 126, 107, 104, + 97, 78, 85, 6, 23, 3, 22, 41, 79, 82, 87, 85, + 107, 98, 92, 115, 96, 107, 102, 120, 114, 112, + 112, 83, 80, 114, 85, 87, 99, 111, 105, 106, + 107, 102, 111, 109, 112, 117, 125, 118, 75, 83, + 100, 67, 13, 9, 20, 21, 25, 46, 30, 40, 41, 60, + 49, 44, 62, 59, 39, 67, 87, 107, 118, 126, 126, + 126, 126, 15, 49, 42, 42, 30, 43, 21, 16, 21, + 11, 70, 0, 16, 3, 33, 43, 1, 10, 19, 23, 5, 21, + 39, 4, 64, 15, 82, 107, 126, 126, 126, 126, 126, + 126 }, + + { + + 18, + 3, 83, 18, 3, 83, 20, 28, 28, 12, 72, 102, 71, + 0, 51, 14, 56, 72, 24, 31, 65, 85, 2, 101, 118, + 70, 87, 126, 126, 126, 62, 19, 70, 24, 31, 65, + 68, 19, 20, 72, 3, 0, 0, 73, 88, 71, 94, 5, 67, + 64, 69, 81, 72, 88, 17, 4, 1, 65, 12, 2, 22, 0, + 0, 0, 7, 98, 97, 12, 80, 71, 18, 66, 87, 18, 49, + 37, 62, 62, 29, 28, 19, 35, 15, 9, 23, 71, 74, + 75, 69, 26, 1, 9, 66, 65, 65, 0, 6, 69, 78, 77, + 87, 18, 68, 6, 64, 79, 3, 72, 7, 3, 65, 4, 10, + 3, 69, 66, 5, 67, 0, 70, 68, 76, 64, 68, 79, 3, + 68, 75, 0, 11, 67, 85, 76, 79, 80, 4, 68, 8, 7, + 7, 39, 18, 4, 69, 12, 69, 81, 0, 107, 73, 64, + 90, 71, 87, 4, 64, 81, 18, 7, 4, 99, 4, 85, 75, + 3, 96, 2, 17, 10, 14, 17, 13, 6, 16, 12, 68, 64, + 9, 0, 64, 75, 69, 75, 74, 70, 73, 78, 78, 77, + 79, 76, 69, 91, 97, 81, 82, 83, 87, 88, 96, 101, + 96, 96, 105, 112, 105, 108, 126, 118, 121, 70, + 74, 94, 78, 86, 89, 95, 103, 107, 97, 101, 96, + 86, 91, 91, 83, 81, 5, 25, 18, 11, 8, 10, 5, 0, + 5, 12, 13, 30, 21, 15, 8, 22, 13, 16, 9, 34, 2, + 43, 30, 22, 14, 26, 5, 64, 65, 3, 70, 46, 17, 0, + 1, 11, 0, 72, 64, 5, 34, 19, 3, 66, 17, 5, 2, 2, + 2, 62, 67, 5, 6, 12, 7, 7, 19, 20, 14, 19, 24, + 29, 66, 4, 76, 66, 35, 71, 94, 68, 8, 67, 81, + 85, 76, 86, 95, 103, 105, 71, 67, 15, 70, 76, + 68, 65, 2, 80, 74, 68, 68, 88, 75, 82, 0, 10, + 88, 74, 5, 79, 1, 76, 68, 20, 79, 83, 65, 4, 89, + 87, 121, 10, 16, 25, 65, 72, 67, 81, 81, 81, 94, + 93, 92, 110, 102, 92, 111, 114, 118, 126, 110, + 107, 99, 80, 87, 6, 23, 3, 23, 43, 81, 84, 89, + 87, 110, 100, 94, 118, 98, 109, 104, 122, 116, + 113, 113, 84, 81, 116, 87, 89, 101, 113, 107, + 108, 109, 104, 113, 111, 114, 119, 126, 119, 76, + 84, 101, 67, 13, 9, 20, 21, 25, 47, 30, 41, 41, + 61, 50, 45, 62, 60, 38, 69, 90, 110, 121, 126, + 126, 126, 126, 15, 49, 42, 42, 30, 43, 21, 16, + 21, 11, 70, 0, 16, 3, 34, 44, 1, 10, 19, 23, 5, + 21, 39, 4, 65, 13, 85, 110, 126, 126, 126, 126, + 126, 126 }, + + { + + 17, + 3, 83, 17, 3, 83, 22, 30, 29, 13, 72, 103, 72, + 64, 51, 14, 59, 72, 25, 32, 65, 85, 3, 102, 119, + 70, 88, 126, 126, 126, 62, 21, 70, 25, 32, 65, + 67, 21, 21, 72, 4, 1, 1, 73, 88, 70, 94, 5, 66, + 0, 69, 81, 71, 88, 18, 5, 2, 64, 13, 2, 22, 0, + 0, 0, 8, 98, 97, 13, 80, 71, 18, 65, 86, 20, 51, + 39, 62, 62, 31, 29, 21, 37, 17, 10, 25, 70, 73, + 74, 68, 27, 2, 10, 65, 64, 64, 1, 8, 69, 78, 77, + 87, 19, 68, 7, 0, 78, 4, 71, 8, 3, 65, 5, 10, 3, + 68, 66, 6, 67, 0, 69, 68, 76, 64, 68, 80, 3, 68, + 75, 1, 12, 66, 85, 76, 78, 80, 4, 68, 9, 7, 7, + 40, 19, 5, 69, 13, 69, 81, 0, 107, 73, 64, 90, + 71, 88, 4, 64, 81, 19, 8, 4, 100, 4, 85, 74, 3, + 96, 2, 17, 10, 14, 17, 13, 6, 16, 12, 68, 64, 9, + 0, 64, 75, 69, 75, 74, 70, 73, 78, 78, 77, 78, + 76, 68, 91, 98, 80, 83, 84, 88, 89, 98, 103, 97, + 97, 107, 113, 106, 109, 126, 119, 122, 70, 74, + 94, 79, 87, 90, 96, 104, 108, 98, 102, 96, 86, + 91, 90, 82, 80, 6, 26, 18, 11, 9, 11, 6, 1, 6, + 14, 14, 30, 21, 15, 8, 23, 14, 17, 10, 36, 2, + 44, 31, 22, 14, 27, 5, 64, 64, 4, 70, 47, 17, 0, + 1, 12, 1, 71, 0, 5, 34, 19, 3, 66, 17, 5, 3, 3, + 3, 62, 66, 6, 7, 14, 9, 8, 21, 22, 16, 21, 26, + 31, 65, 5, 75, 65, 37, 70, 94, 67, 9, 66, 81, + 85, 76, 86, 95, 104, 106, 71, 67, 16, 70, 76, + 68, 65, 2, 80, 74, 68, 68, 88, 75, 82, 1, 11, + 88, 74, 5, 79, 1, 76, 68, 21, 79, 84, 65, 4, 89, + 87, 122, 10, 16, 25, 66, 73, 68, 83, 83, 83, 96, + 95, 94, 112, 104, 93, 113, 117, 121, 126, 112, + 109, 100, 81, 88, 6, 24, 4, 25, 46, 82, 85, 90, + 88, 112, 101, 95, 120, 99, 110, 105, 123, 117, + 114, 113, 84, 81, 117, 88, 90, 102, 114, 108, + 109, 110, 105, 114, 112, 115, 120, 126, 119, 76, + 84, 101, 66, 14, 10, 21, 22, 26, 49, 31, 42, 42, + 62, 52, 46, 62, 62, 38, 70, 92, 112, 123, 126, + 126, 126, 126, 16, 50, 43, 43, 31, 44, 22, 17, + 22, 12, 69, 1, 17, 4, 36, 46, 2, 11, 20, 24, 6, + 22, 40, 4, 65, 12, 87, 112, 126, 126, 126, 126, + 126, 126 }, + + { + + 16, + 3, 83, 16, 3, 83, 24, 31, 29, 13, 72, 104, 73, + 65, 51, 14, 61, 72, 26, 33, 65, 86, 3, 103, 120, + 71, 90, 126, 126, 126, 62, 22, 70, 26, 33, 65, + 67, 22, 21, 73, 4, 1, 2, 73, 88, 70, 94, 5, 66, + 1, 69, 81, 71, 88, 18, 5, 2, 64, 13, 2, 22, 0, + 0, 0, 9, 98, 97, 13, 81, 71, 18, 65, 86, 22, 53, + 41, 62, 62, 32, 30, 22, 38, 18, 11, 27, 70, 73, + 74, 67, 27, 2, 10, 64, 64, 0, 1, 9, 69, 78, 77, + 87, 19, 68, 7, 0, 78, 4, 71, 8, 3, 65, 5, 10, 3, + 68, 66, 6, 67, 0, 69, 69, 76, 64, 69, 81, 2, 69, + 76, 2, 12, 66, 86, 77, 78, 81, 4, 68, 9, 7, 7, + 41, 19, 5, 69, 13, 69, 82, 0, 108, 73, 64, 91, + 71, 89, 4, 64, 82, 19, 8, 4, 101, 4, 86, 74, 3, + 97, 1, 17, 10, 14, 17, 13, 6, 16, 12, 68, 64, 9, + 0, 64, 75, 69, 75, 74, 70, 73, 79, 79, 78, 78, + 76, 68, 92, 99, 80, 85, 86, 90, 91, 100, 105, + 99, 99, 109, 115, 108, 111, 126, 121, 123, 70, + 74, 95, 80, 88, 91, 97, 106, 109, 99, 103, 97, + 87, 92, 90, 82, 79, 6, 26, 18, 11, 9, 11, 6, 1, + 6, 15, 15, 30, 21, 15, 8, 23, 14, 18, 11, 38, 2, + 44, 31, 22, 14, 27, 5, 64, 64, 5, 70, 47, 17, 0, + 1, 12, 1, 71, 1, 5, 33, 18, 2, 67, 17, 5, 3, 3, + 3, 62, 65, 7, 8, 15, 10, 9, 22, 23, 17, 22, 27, + 33, 64, 6, 75, 64, 38, 70, 95, 67, 10, 66, 81, + 86, 76, 87, 96, 105, 107, 72, 67, 16, 70, 77, + 69, 65, 2, 81, 75, 68, 68, 89, 75, 82, 1, 11, + 88, 75, 4, 80, 1, 77, 69, 21, 80, 85, 65, 4, 90, + 88, 124, 9, 15, 24, 67, 74, 69, 85, 85, 85, 98, + 98, 97, 115, 106, 94, 116, 120, 124, 126, 115, + 111, 102, 82, 89, 6, 25, 4, 26, 48, 84, 87, 92, + 90, 114, 103, 97, 122, 100, 112, 106, 125, 118, + 115, 114, 85, 81, 118, 89, 91, 104, 116, 110, + 111, 111, 107, 116, 113, 116, 121, 126, 120, 77, + 85, 102, 66, 14, 10, 22, 22, 27, 50, 32, 43, 43, + 62, 53, 47, 62, 62, 37, 72, 94, 114, 126, 126, + 126, 126, 126, 16, 50, 43, 43, 31, 45, 22, 17, + 22, 12, 69, 1, 18, 4, 37, 47, 2, 12, 21, 25, 6, + 22, 41, 4, 65, 11, 89, 114, 126, 126, 126, 126, + 126, 126 }, + + { + + 15, + 3, 83, 15, 3, 83, 26, 33, 30, 13, 73, 106, 75, + 66, 51, 14, 62, 72, 27, 34, 65, 87, 3, 104, 121, + 71, 92, 126, 126, 126, 62, 23, 70, 27, 34, 65, + 66, 23, 22, 73, 4, 2, 3, 74, 89, 70, 94, 5, 66, + 1, 69, 81, 71, 88, 19, 5, 2, 64, 14, 2, 22, 0, + 0, 0, 9, 98, 97, 14, 82, 71, 18, 65, 86, 24, 55, + 42, 62, 62, 33, 31, 24, 39, 19, 12, 29, 69, 73, + 73, 66, 27, 2, 10, 64, 64, 0, 2, 11, 69, 79, 78, + 88, 19, 68, 7, 1, 78, 5, 71, 9, 3, 65, 5, 10, 2, + 68, 66, 6, 67, 0, 69, 70, 76, 64, 70, 82, 1, 70, + 77, 2, 13, 66, 87, 77, 77, 81, 4, 68, 9, 7, 7, + 42, 19, 5, 69, 14, 69, 83, 0, 109, 73, 64, 91, + 72, 90, 4, 64, 83, 19, 8, 4, 103, 4, 87, 74, 3, + 97, 0, 17, 10, 14, 17, 13, 6, 16, 12, 68, 65, 9, + 0, 64, 75, 70, 76, 75, 71, 74, 80, 80, 78, 78, + 77, 68, 93, 101, 80, 86, 88, 92, 93, 102, 107, + 101, 101, 111, 117, 109, 112, 126, 123, 124, 70, + 74, 95, 81, 89, 92, 99, 107, 111, 100, 104, 98, + 87, 92, 90, 82, 79, 7, 26, 18, 11, 9, 11, 6, 1, + 7, 16, 15, 30, 21, 15, 8, 24, 15, 19, 12, 40, 2, + 44, 31, 22, 14, 28, 5, 64, 64, 5, 70, 47, 17, + 64, 1, 12, 1, 71, 2, 5, 33, 18, 1, 68, 17, 5, 3, + 4, 4, 62, 64, 8, 8, 16, 11, 10, 24, 24, 18, 23, + 29, 34, 64, 7, 75, 64, 40, 70, 95, 67, 10, 66, + 82, 86, 76, 88, 97, 106, 108, 72, 68, 16, 71, + 77, 69, 66, 2, 82, 75, 69, 68, 90, 75, 83, 1, + 11, 89, 75, 4, 81, 1, 78, 69, 21, 81, 86, 66, 3, + 91, 88, 125, 8, 14, 24, 68, 75, 71, 87, 87, 87, + 101, 100, 99, 118, 109, 95, 119, 123, 126, 126, + 118, 114, 104, 83, 90, 6, 26, 4, 27, 50, 86, 89, + 94, 92, 116, 105, 98, 124, 102, 113, 107, 126, + 120, 116, 115, 85, 82, 119, 90, 93, 105, 118, + 112, 113, 113, 108, 118, 115, 117, 123, 126, + 121, 78, 86, 103, 66, 15, 10, 22, 23, 27, 51, + 33, 44, 44, 62, 54, 48, 62, 62, 37, 73, 96, 117, + 126, 126, 126, 126, 126, 17, 51, 44, 44, 31, 46, + 23, 17, 23, 13, 69, 2, 18, 5, 38, 48, 2, 12, 21, + 25, 6, 23, 42, 4, 65, 10, 91, 117, 126, 126, + 126, 126, 126, 126 }, + + }, + + { + + { + + 62, + 9, 74, 62, 9, 74, 126, 104, 10, 9, 12, 38, 62, + 62, 54, 22, 118, 65, 71, 79, 11, 13, 70, 9, 29, + 41, 62, 61, 27, 69, 126, 101, 76, 71, 79, 11, + 69, 90, 11, 20, 69, 82, 96, 4, 75, 87, 100, 7, + 74, 85, 4, 81, 86, 95, 66, 77, 70, 86, 72, 2, + 22, 0, 0, 0, 83, 86, 97, 72, 22, 1, 48, 12, 80, + 126, 91, 96, 81, 98, 102, 97, 119, 99, 110, 102, + 126, 80, 89, 94, 92, 24, 65, 84, 126, 73, 104, + 91, 126, 8, 7, 8, 2, 10, 68, 74, 88, 103, 91, + 89, 92, 76, 87, 110, 105, 78, 112, 99, 126, 126, + 126, 126, 66, 78, 71, 72, 4, 8, 70, 75, 89, 119, + 75, 43, 41, 126, 9, 2, 5, 3, 2, 67, 84, 74, 65, + 11, 6, 2, 69, 70, 8, 71, 5, 2, 22, 38, 31, 20, + 16, 19, 12, 17, 25, 66, 25, 21, 29, 89, 18, 35, + 32, 62, 62, 48, 62, 62, 62, 62, 62, 62, 62, 62, + 62, 62, 53, 62, 62, 62, 62, 62, 62, 62, 56, 62, + 62, 62, 27, 62, 62, 62, 62, 62, 62, 62, 62, 62, + 62, 62, 53, 45, 38, 22, 75, 72, 77, 28, 32, 28, + 33, 18, 21, 18, 37, 9, 66, 7, 73, 67, 116, 112, + 71, 2, 10, 66, 77, 80, 84, 87, 126, 101, 24, 10, + 2, 75, 77, 91, 107, 111, 122, 76, 19, 11, 6, 5, + 72, 69, 69, 74, 86, 66, 29, 31, 32, 11, 8, 67, + 73, 89, 11, 59, 55, 55, 44, 26, 2, 73, 70, 78, + 62, 126, 124, 110, 126, 124, 105, 121, 117, 102, + 117, 116, 122, 95, 100, 95, 111, 114, 89, 80, + 82, 85, 81, 72, 64, 67, 7, 69, 69, 69, 69, 67, + 77, 64, 2, 67, 64, 6, 65, 66, 1, 12, 66, 71, 75, + 70, 72, 3, 26, 16, 28, 26, 22, 22, 15, 22, 22, + 4, 13, 23, 66, 13, 62, 62, 62, 62, 62, 62, 62, + 62, 62, 62, 62, 62, 62, 62, 54, 62, 62, 62, 62, + 62, 62, 62, 62, 62, 49, 37, 26, 8, 65, 62, 62, + 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 43, 33, + 19, 15, 14, 18, 41, 41, 42, 43, 35, 39, 29, 21, + 24, 13, 70, 9, 71, 83, 31, 14, 9, 85, 81, 77, + 81, 80, 73, 74, 83, 71, 67, 2, 66, 66, 4, 4, 62, + 62, 62, 62, 62, 60, 53, 36, 6, 71, 39, 27, 21, + 11, 6, 0, 65, 67, 82, 81, 76, 72, 78, 72, 68, + 70, 76, 66, 1, 6, 2, 3, 9, 5, 62, 62, 62, 62, + 62, 60, 53, 36, 6 }, + + { + + 62, + 9, 74, 62, 9, 74, 125, 102, 11, 10, 12, 37, + 61, 62, 55, 22, 116, 65, 70, 78, 11, 13, 69, + 9, 28, 40, 61, 58, 25, 70, 124, 100, 75, 70, + 78, 11, 69, 89, 11, 20, 68, 81, 95, 4, 75, 86, + 99, 7, 73, 84, 4, 80, 85, 94, 65, 76, 70, 85, + 71, 2, 22, 0, 0, 0, 82, 86, 97, 71, 22, 1, 48, + 12, 80, 124, 89, 94, 79, 95, 100, 95, 117, 97, + 108, 100, 124, 80, 88, 93, 91, 24, 65, 83, + 124, 72, 103, 90, 125, 8, 7, 8, 2, 11, 68, 73, + 87, 102, 90, 88, 91, 75, 86, 108, 103, 77, + 110, 97, 122, 122, 123, 124, 65, 77, 70, 71, + 4, 9, 69, 74, 88, 116, 74, 41, 40, 124, 9, 3, + 5, 4, 3, 66, 82, 73, 64, 11, 6, 2, 68, 69, 7, + 70, 5, 2, 22, 37, 31, 20, 16, 19, 12, 17, 24, + 65, 25, 21, 29, 89, 18, 35, 32, 62, 62, 47, + 62, 62, 62, 61, 62, 62, 62, 62, 62, 62, 52, + 62, 62, 62, 62, 62, 62, 62, 54, 62, 60, 62, + 26, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, + 61, 52, 44, 37, 21, 75, 72, 77, 28, 31, 27, + 32, 17, 20, 17, 36, 8, 66, 6, 73, 67, 115, + 110, 70, 3, 10, 65, 76, 79, 83, 86, 124, 99, + 25, 11, 3, 74, 76, 89, 105, 109, 120, 75, 20, + 12, 7, 6, 71, 68, 68, 73, 85, 66, 30, 31, 32, + 11, 9, 66, 73, 88, 11, 59, 55, 54, 43, 26, 3, + 72, 69, 77, 62, 124, 122, 108, 124, 122, 103, + 119, 115, 100, 115, 114, 119, 94, 99, 94, 109, + 112, 88, 79, 81, 84, 80, 71, 64, 67, 7, 69, + 69, 69, 68, 66, 76, 0, 2, 66, 0, 6, 64, 65, 1, + 12, 65, 70, 74, 69, 71, 3, 25, 16, 27, 26, 22, + 22, 15, 22, 22, 4, 13, 22, 66, 12, 62, 62, 62, + 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, + 52, 62, 62, 62, 62, 62, 62, 62, 61, 62, 48, + 36, 25, 8, 65, 62, 62, 62, 62, 62, 62, 62, 62, + 62, 62, 62, 62, 42, 32, 18, 15, 14, 17, 40, + 40, 41, 41, 34, 38, 28, 20, 23, 12, 70, 8, 71, + 83, 30, 13, 8, 84, 80, 76, 80, 78, 71, 73, 82, + 70, 66, 3, 65, 65, 4, 4, 62, 62, 62, 62, 60, + 56, 49, 32, 4, 70, 39, 28, 22, 12, 7, 1, 64, + 66, 81, 80, 75, 71, 77, 71, 67, 69, 75, 65, 2, + 6, 3, 4, 9, 5, 62, 62, 62, 62, 60, 56, 49, 32, + 4 }, + + { + + 62, + 9, 74, 62, 9, 74, 123, 101, 11, 10, 12, 36, + 59, 61, 55, 22, 114, 65, 70, 77, 11, 12, 69, + 8, 26, 39, 58, 54, 22, 72, 121, 99, 75, 70, + 77, 11, 69, 88, 11, 19, 68, 81, 94, 4, 75, 86, + 99, 7, 73, 84, 4, 80, 85, 94, 65, 76, 70, 85, + 71, 2, 22, 0, 0, 0, 81, 86, 97, 71, 21, 1, 47, + 12, 80, 122, 88, 93, 77, 93, 99, 94, 115, 96, + 107, 99, 122, 80, 88, 93, 91, 24, 65, 82, 122, + 72, 102, 89, 123, 8, 7, 8, 1, 11, 68, 73, 86, + 101, 89, 87, 90, 75, 85, 107, 102, 76, 109, + 96, 117, 118, 120, 121, 65, 77, 70, 71, 4, 9, + 69, 74, 88, 114, 74, 39, 38, 121, 9, 3, 5, 4, + 3, 66, 80, 72, 64, 11, 6, 2, 67, 68, 6, 70, 5, + 2, 21, 36, 30, 20, 15, 19, 12, 17, 23, 65, 24, + 20, 28, 89, 18, 34, 31, 62, 62, 46, 60, 62, + 62, 59, 62, 62, 62, 62, 62, 62, 50, 62, 62, + 62, 62, 62, 62, 62, 52, 62, 58, 62, 24, 62, + 62, 62, 62, 62, 62, 62, 62, 62, 62, 59, 50, + 42, 35, 19, 75, 72, 78, 27, 30, 26, 31, 16, + 19, 16, 34, 7, 66, 5, 74, 68, 114, 109, 69, 3, + 10, 65, 75, 78, 82, 85, 122, 98, 25, 11, 3, + 73, 75, 88, 103, 107, 118, 74, 21, 13, 8, 7, + 70, 68, 68, 73, 84, 66, 31, 31, 31, 11, 9, 66, + 73, 88, 11, 59, 54, 53, 42, 26, 3, 72, 69, 77, + 62, 123, 121, 107, 122, 120, 102, 117, 113, + 99, 113, 112, 117, 93, 98, 94, 108, 110, 88, + 79, 81, 83, 80, 71, 64, 67, 6, 69, 69, 69, 68, + 66, 75, 0, 2, 66, 0, 6, 64, 65, 1, 11, 65, 70, + 74, 69, 70, 2, 24, 16, 26, 25, 21, 21, 15, 21, + 21, 4, 13, 21, 66, 11, 62, 62, 62, 62, 62, 62, + 62, 62, 62, 62, 62, 62, 62, 62, 50, 62, 62, + 62, 62, 62, 62, 62, 59, 59, 46, 34, 24, 7, 66, + 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, + 62, 40, 30, 16, 14, 13, 15, 39, 39, 39, 39, + 32, 36, 26, 19, 21, 11, 71, 7, 72, 84, 28, 12, + 7, 84, 80, 75, 80, 77, 70, 73, 81, 69, 65, 3, + 65, 64, 4, 4, 62, 62, 62, 62, 57, 52, 45, 28, + 1, 70, 39, 28, 22, 12, 8, 1, 64, 66, 81, 80, + 75, 71, 77, 70, 66, 69, 75, 65, 2, 6, 3, 5, 9, + 5, 62, 62, 62, 62, 57, 52, 45, 28, 1 }, + + { + + 62, + 9, 74, 62, 9, 74, 121, 99, 12, 10, 11, 34, 57, + 60, 55, 22, 112, 65, 69, 76, 11, 12, 69, 8, + 25, 38, 56, 51, 20, 73, 118, 98, 75, 69, 76, + 11, 70, 87, 11, 19, 68, 81, 94, 4, 75, 86, 99, + 7, 73, 83, 4, 80, 84, 94, 65, 76, 70, 85, 71, + 2, 22, 0, 0, 0, 81, 86, 97, 70, 20, 1, 46, 11, + 80, 119, 87, 92, 76, 91, 97, 92, 113, 94, 106, + 98, 120, 80, 88, 92, 91, 24, 65, 81, 120, 72, + 101, 89, 121, 8, 6, 7, 1, 11, 68, 72, 86, 100, + 88, 87, 89, 74, 84, 105, 100, 76, 108, 95, + 112, 113, 117, 118, 65, 77, 70, 70, 4, 9, 68, + 73, 87, 112, 74, 37, 36, 118, 9, 3, 5, 4, 3, + 65, 79, 71, 64, 11, 6, 2, 67, 67, 5, 70, 5, 1, + 21, 35, 30, 20, 15, 19, 12, 17, 22, 65, 23, + 19, 28, 89, 18, 34, 31, 62, 62, 45, 58, 62, + 62, 57, 62, 62, 62, 62, 62, 61, 48, 62, 62, + 62, 62, 62, 62, 60, 50, 62, 56, 62, 22, 62, + 62, 62, 62, 62, 62, 62, 62, 62, 62, 57, 48, + 40, 34, 17, 75, 72, 78, 26, 29, 25, 30, 15, + 18, 15, 32, 6, 67, 4, 75, 68, 114, 107, 68, 4, + 10, 65, 74, 78, 82, 85, 120, 97, 25, 11, 4, + 72, 74, 87, 102, 106, 116, 73, 21, 13, 8, 7, + 69, 67, 68, 73, 84, 66, 31, 31, 30, 11, 9, 66, + 73, 87, 11, 58, 54, 52, 41, 26, 3, 72, 69, 77, + 62, 122, 119, 106, 121, 119, 101, 115, 111, + 98, 112, 110, 115, 93, 97, 93, 107, 108, 87, + 79, 81, 83, 79, 71, 64, 67, 6, 69, 69, 70, 67, + 65, 74, 0, 2, 65, 0, 6, 64, 65, 1, 11, 65, 70, + 74, 69, 70, 1, 23, 16, 25, 24, 20, 21, 15, 20, + 20, 4, 13, 20, 66, 10, 62, 62, 61, 62, 62, 62, + 62, 62, 62, 62, 62, 62, 62, 62, 48, 62, 62, + 62, 62, 62, 62, 62, 57, 57, 44, 32, 22, 6, 67, + 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 59, + 60, 38, 28, 15, 13, 12, 14, 37, 37, 37, 37, + 31, 34, 24, 18, 20, 10, 72, 6, 73, 85, 27, 11, + 6, 84, 79, 75, 79, 76, 69, 73, 81, 69, 65, 3, + 64, 0, 4, 4, 62, 62, 62, 59, 54, 48, 41, 24, + 65, 70, 39, 28, 22, 12, 8, 2, 64, 66, 80, 80, + 75, 70, 76, 69, 65, 69, 74, 65, 2, 6, 3, 5, 9, + 5, 62, 62, 62, 59, 54, 48, 41, 24, 65 }, + + { + + 62, + 9, 74, 62, 9, 74, 120, 98, 12, 10, 11, 33, 55, + 59, 55, 21, 110, 65, 69, 75, 10, 11, 69, 7, + 23, 37, 53, 47, 17, 75, 115, 97, 75, 69, 75, + 10, 70, 86, 11, 18, 68, 80, 93, 4, 75, 86, 99, + 7, 73, 83, 4, 80, 84, 93, 65, 76, 70, 85, 70, + 2, 22, 0, 0, 0, 80, 87, 97, 70, 19, 1, 45, 11, + 80, 117, 86, 91, 74, 89, 96, 91, 112, 93, 104, + 97, 118, 80, 87, 92, 91, 24, 65, 80, 118, 72, + 101, 88, 119, 8, 6, 7, 0, 11, 68, 72, 85, 99, + 87, 86, 88, 74, 84, 104, 99, 75, 107, 94, 107, + 109, 114, 115, 65, 76, 70, 70, 4, 9, 68, 73, + 87, 110, 74, 35, 34, 116, 9, 4, 5, 4, 3, 65, + 77, 70, 0, 10, 6, 2, 66, 67, 4, 70, 5, 1, 20, + 34, 29, 19, 14, 19, 12, 17, 21, 65, 22, 18, + 27, 89, 17, 33, 30, 62, 62, 44, 56, 62, 62, + 55, 62, 62, 62, 62, 62, 59, 46, 59, 62, 62, + 62, 62, 62, 57, 48, 62, 54, 62, 21, 62, 62, + 62, 62, 62, 62, 62, 62, 62, 60, 55, 46, 38, + 32, 15, 75, 72, 79, 25, 28, 24, 28, 14, 16, + 14, 31, 5, 67, 3, 75, 69, 113, 106, 67, 4, 10, + 64, 74, 77, 81, 84, 118, 95, 25, 12, 4, 72, + 73, 86, 100, 104, 115, 73, 22, 14, 9, 8, 68, + 67, 68, 72, 83, 66, 32, 31, 30, 10, 9, 66, 73, + 87, 11, 58, 53, 51, 40, 26, 3, 71, 69, 77, 62, + 120, 118, 105, 119, 117, 100, 114, 110, 97, + 110, 109, 113, 92, 96, 93, 106, 107, 87, 79, + 81, 82, 79, 71, 65, 67, 5, 69, 69, 70, 67, 65, + 73, 0, 2, 65, 0, 6, 64, 65, 1, 10, 65, 70, 74, + 69, 69, 0, 22, 16, 24, 24, 19, 20, 15, 19, 19, + 4, 13, 19, 66, 9, 62, 62, 60, 62, 62, 62, 62, + 62, 62, 62, 62, 62, 62, 62, 46, 62, 62, 62, + 62, 62, 62, 62, 54, 54, 42, 30, 21, 5, 67, 62, + 62, 62, 62, 62, 62, 62, 62, 62, 62, 57, 57, + 36, 26, 13, 12, 12, 12, 36, 36, 36, 35, 29, + 32, 23, 17, 18, 9, 73, 4, 74, 85, 25, 9, 4, + 83, 79, 74, 79, 75, 68, 73, 80, 68, 64, 3, 64, + 1, 4, 4, 62, 62, 62, 56, 50, 44, 36, 20, 68, + 69, 39, 28, 22, 12, 9, 2, 64, 66, 80, 80, 75, + 70, 76, 69, 64, 69, 74, 64, 3, 6, 3, 6, 9, 5, + 62, 62, 62, 56, 50, 44, 36, 20, 68 }, + + { + + 62, + 9, 74, 62, 9, 74, 118, 96, 12, 10, 10, 32, 53, + 58, 55, 21, 108, 65, 69, 74, 10, 11, 69, 6, + 21, 36, 51, 44, 15, 77, 112, 96, 74, 69, 74, + 10, 70, 85, 11, 18, 68, 80, 92, 4, 75, 86, 99, + 7, 73, 83, 4, 80, 83, 93, 65, 76, 70, 85, 70, + 2, 22, 0, 0, 0, 80, 87, 97, 69, 18, 1, 44, 10, + 80, 114, 85, 90, 72, 87, 94, 89, 110, 91, 103, + 96, 115, 80, 87, 91, 90, 24, 65, 79, 116, 72, + 100, 88, 117, 8, 5, 6, 0, 11, 68, 71, 85, 98, + 86, 86, 87, 73, 83, 102, 97, 74, 105, 93, 102, + 105, 111, 112, 64, 76, 69, 69, 4, 9, 67, 73, + 86, 108, 74, 33, 32, 113, 9, 4, 5, 4, 3, 64, + 76, 69, 0, 10, 6, 2, 66, 66, 3, 69, 5, 0, 20, + 33, 29, 19, 14, 19, 12, 17, 20, 64, 21, 18, + 27, 89, 17, 32, 29, 62, 62, 43, 55, 62, 62, + 53, 62, 62, 62, 62, 61, 57, 44, 57, 62, 60, + 62, 62, 62, 55, 46, 62, 52, 62, 19, 62, 62, + 62, 62, 62, 62, 62, 62, 61, 58, 53, 44, 37, + 30, 13, 75, 72, 79, 24, 27, 23, 27, 13, 15, + 13, 29, 4, 68, 2, 76, 70, 112, 104, 66, 5, 10, + 64, 73, 77, 81, 83, 116, 94, 25, 12, 5, 71, + 72, 85, 99, 103, 113, 72, 23, 15, 10, 8, 67, + 66, 67, 72, 83, 66, 32, 31, 29, 10, 9, 66, 73, + 86, 11, 57, 52, 50, 39, 26, 3, 71, 69, 76, 62, + 119, 116, 103, 117, 116, 99, 112, 108, 96, + 108, 107, 111, 91, 95, 92, 105, 105, 87, 79, + 80, 82, 78, 71, 65, 67, 5, 69, 69, 71, 66, 65, + 72, 0, 2, 65, 0, 6, 64, 65, 1, 10, 65, 70, 74, + 69, 69, 64, 21, 16, 23, 23, 19, 19, 15, 19, + 18, 4, 13, 18, 66, 8, 62, 62, 59, 62, 62, 62, + 62, 62, 62, 62, 62, 62, 62, 62, 44, 62, 62, + 62, 62, 62, 62, 61, 52, 52, 40, 29, 19, 5, 68, + 62, 62, 62, 62, 62, 62, 62, 62, 62, 61, 55, + 54, 34, 24, 12, 12, 11, 10, 35, 34, 34, 33, + 27, 30, 21, 16, 17, 8, 73, 3, 75, 86, 24, 8, + 3, 83, 79, 73, 78, 74, 67, 72, 79, 68, 64, 3, + 0, 2, 4, 4, 62, 62, 59, 53, 47, 40, 32, 16, + 71, 69, 39, 28, 22, 12, 9, 2, 0, 65, 79, 80, + 75, 69, 76, 68, 0, 69, 74, 64, 3, 6, 4, 6, 9, + 5, 62, 62, 59, 53, 47, 40, 32, 16, 71 }, + + { + + 62, + 9, 75, 62, 9, 75, 116, 95, 13, 10, 10, 30, 51, + 57, 55, 21, 107, 65, 68, 74, 10, 10, 68, 6, + 20, 34, 48, 40, 12, 78, 110, 95, 74, 68, 74, + 10, 71, 85, 11, 17, 68, 80, 92, 4, 75, 85, 98, + 7, 72, 82, 4, 79, 83, 93, 65, 76, 70, 85, 70, + 2, 22, 0, 0, 0, 79, 87, 97, 69, 18, 0, 44, 10, + 80, 112, 84, 89, 71, 84, 93, 88, 108, 90, 102, + 95, 113, 80, 87, 91, 90, 24, 65, 78, 113, 72, + 99, 87, 115, 7, 5, 6, 64, 12, 68, 71, 84, 98, + 86, 85, 86, 73, 82, 101, 96, 74, 104, 92, 97, + 100, 108, 109, 64, 76, 69, 69, 4, 9, 67, 72, + 86, 106, 73, 31, 30, 110, 9, 4, 5, 4, 4, 64, + 74, 68, 0, 10, 6, 2, 65, 65, 2, 69, 5, 0, 19, + 32, 28, 19, 13, 19, 12, 17, 18, 64, 20, 17, + 26, 89, 17, 32, 29, 62, 62, 42, 53, 62, 62, + 51, 62, 62, 62, 62, 57, 55, 43, 55, 62, 58, + 62, 62, 62, 52, 44, 62, 50, 62, 17, 62, 62, + 62, 62, 62, 62, 62, 62, 59, 56, 50, 42, 35, + 29, 12, 75, 72, 80, 23, 26, 22, 26, 12, 14, + 12, 27, 3, 68, 1, 77, 70, 112, 103, 65, 5, 10, + 64, 72, 76, 80, 83, 114, 93, 26, 12, 5, 70, + 71, 84, 97, 101, 111, 71, 23, 15, 10, 9, 66, + 66, 67, 72, 82, 66, 33, 31, 28, 10, 9, 66, 73, + 86, 10, 57, 52, 49, 38, 25, 3, 71, 69, 76, 62, + 118, 115, 102, 116, 114, 98, 110, 106, 95, + 107, 105, 109, 91, 94, 92, 104, 103, 86, 79, + 80, 81, 78, 71, 65, 67, 4, 69, 69, 71, 66, 64, + 71, 0, 2, 64, 1, 6, 0, 64, 1, 9, 65, 70, 74, + 69, 68, 65, 20, 16, 22, 22, 18, 19, 15, 18, + 18, 4, 12, 16, 67, 7, 62, 62, 58, 62, 62, 62, + 62, 62, 62, 62, 62, 62, 62, 62, 42, 62, 62, + 62, 62, 62, 62, 58, 50, 49, 38, 27, 18, 4, 69, + 62, 62, 62, 62, 62, 62, 62, 62, 61, 58, 52, + 51, 32, 23, 10, 11, 10, 9, 33, 33, 32, 31, 26, + 28, 19, 15, 15, 7, 74, 2, 76, 87, 22, 7, 2, + 83, 78, 73, 78, 73, 66, 72, 79, 67, 0, 3, 0, + 3, 4, 4, 62, 62, 57, 50, 44, 36, 28, 12, 74, + 69, 39, 28, 22, 12, 10, 3, 0, 65, 79, 79, 74, + 69, 75, 67, 1, 68, 73, 64, 3, 6, 4, 7, 9, 5, + 62, 62, 57, 50, 44, 36, 28, 12, 74 }, + + { + + 62, + 9, 75, 62, 9, 75, 114, 93, 13, 10, 9, 29, 49, + 56, 55, 21, 105, 65, 68, 73, 9, 10, 68, 5, 18, + 33, 46, 37, 10, 80, 107, 94, 74, 68, 73, 9, + 71, 84, 11, 17, 68, 79, 91, 4, 75, 85, 98, 7, + 72, 82, 4, 79, 82, 92, 65, 76, 70, 85, 69, 2, + 22, 0, 0, 0, 79, 87, 97, 68, 17, 0, 43, 9, 80, + 109, 83, 88, 69, 82, 91, 86, 107, 88, 100, 94, + 111, 80, 86, 90, 90, 24, 65, 77, 111, 72, 98, + 87, 113, 7, 4, 5, 64, 12, 68, 70, 84, 97, 85, + 85, 85, 72, 81, 99, 94, 73, 103, 91, 92, 96, + 105, 106, 64, 75, 69, 68, 4, 9, 66, 72, 85, + 104, 73, 29, 28, 107, 9, 5, 5, 4, 4, 0, 73, + 67, 1, 9, 6, 2, 65, 65, 1, 69, 5, 64, 19, 31, + 28, 18, 13, 19, 12, 17, 17, 64, 19, 16, 26, + 89, 17, 31, 28, 60, 62, 41, 51, 62, 62, 49, + 62, 61, 62, 62, 54, 53, 41, 52, 62, 55, 62, + 62, 62, 49, 42, 62, 48, 62, 16, 62, 62, 62, + 62, 62, 62, 62, 62, 57, 53, 48, 40, 33, 27, + 10, 75, 72, 80, 22, 25, 21, 24, 11, 13, 11, + 26, 2, 69, 0, 77, 71, 111, 101, 64, 6, 10, 0, + 72, 76, 80, 82, 112, 91, 26, 13, 6, 70, 70, + 83, 96, 100, 109, 71, 24, 16, 11, 9, 65, 65, + 67, 71, 82, 66, 33, 31, 28, 9, 9, 66, 73, 85, + 10, 56, 51, 48, 37, 25, 3, 70, 69, 76, 62, + 116, 113, 101, 114, 113, 97, 109, 105, 94, + 105, 104, 107, 90, 93, 91, 103, 101, 86, 79, + 80, 81, 77, 71, 66, 67, 4, 69, 69, 72, 65, 64, + 70, 0, 2, 64, 1, 6, 0, 64, 1, 9, 65, 70, 74, + 69, 68, 66, 19, 16, 21, 22, 17, 18, 15, 17, + 17, 4, 12, 15, 67, 6, 61, 62, 57, 62, 62, 62, + 62, 62, 62, 62, 62, 62, 62, 62, 40, 62, 62, + 62, 62, 62, 62, 56, 48, 47, 36, 25, 16, 3, 69, + 62, 62, 62, 62, 62, 62, 62, 62, 59, 56, 50, + 48, 30, 21, 9, 10, 10, 7, 32, 31, 31, 29, 24, + 26, 18, 14, 14, 6, 75, 0, 77, 87, 21, 5, 0, + 82, 78, 72, 77, 72, 65, 72, 78, 67, 0, 3, 1, + 4, 4, 4, 62, 62, 54, 47, 40, 32, 24, 8, 77, + 68, 39, 28, 22, 12, 10, 3, 0, 65, 78, 79, 74, + 68, 75, 66, 2, 68, 73, 0, 4, 6, 4, 7, 9, 5, + 62, 62, 54, 47, 40, 32, 24, 8, 77 }, + + { + + 62, + 8, 75, 62, 8, 75, 113, 92, 13, 10, 9, 27, 46, + 55, 55, 20, 103, 66, 68, 72, 9, 9, 68, 4, 16, + 32, 43, 33, 7, 82, 104, 93, 74, 68, 72, 9, 72, + 83, 11, 16, 68, 79, 91, 3, 76, 85, 98, 7, 72, + 82, 4, 79, 82, 92, 65, 76, 70, 85, 69, 2, 22, + 0, 0, 0, 78, 88, 97, 68, 16, 0, 42, 9, 81, + 107, 82, 87, 68, 80, 90, 85, 105, 87, 99, 93, + 109, 80, 86, 90, 90, 24, 65, 76, 109, 72, 98, + 86, 111, 7, 4, 5, 65, 12, 68, 70, 83, 96, 84, + 84, 85, 72, 81, 98, 93, 73, 102, 90, 88, 92, + 102, 104, 64, 75, 69, 68, 3, 9, 66, 72, 85, + 102, 73, 27, 26, 105, 9, 5, 5, 4, 4, 0, 71, + 67, 1, 9, 5, 2, 64, 64, 64, 69, 5, 64, 18, 29, + 27, 18, 12, 19, 12, 16, 16, 64, 18, 15, 25, + 89, 16, 30, 27, 58, 62, 39, 49, 62, 62, 46, + 62, 59, 62, 62, 50, 51, 39, 50, 62, 53, 62, + 62, 62, 46, 40, 62, 46, 62, 14, 62, 62, 62, + 62, 62, 62, 62, 60, 55, 51, 46, 38, 31, 25, 8, + 75, 73, 81, 21, 23, 20, 23, 10, 11, 9, 24, 1, + 69, 64, 78, 72, 111, 100, 0, 6, 10, 0, 71, 75, + 79, 82, 110, 90, 26, 13, 6, 69, 69, 82, 94, + 98, 108, 70, 24, 16, 11, 10, 64, 65, 67, 71, + 81, 67, 34, 31, 27, 9, 9, 66, 73, 85, 10, 56, + 50, 47, 36, 25, 3, 70, 69, 76, 62, 115, 112, + 100, 113, 111, 96, 107, 103, 93, 104, 102, + 105, 90, 93, 91, 102, 100, 86, 79, 80, 80, 77, + 71, 66, 67, 3, 69, 69, 72, 65, 64, 69, 0, 1, + 64, 1, 5, 0, 64, 1, 8, 65, 70, 74, 69, 67, 67, + 18, 16, 19, 21, 16, 17, 14, 16, 16, 4, 12, 14, + 67, 4, 60, 60, 56, 62, 62, 62, 62, 62, 62, 62, + 62, 62, 62, 60, 38, 62, 62, 62, 62, 62, 62, + 53, 45, 44, 34, 23, 15, 2, 70, 62, 62, 62, 62, + 62, 62, 62, 62, 56, 53, 47, 45, 28, 19, 7, 9, + 9, 5, 30, 30, 29, 27, 22, 24, 16, 12, 12, 4, + 76, 64, 78, 88, 19, 4, 64, 82, 78, 72, 77, 71, + 64, 72, 78, 66, 1, 3, 1, 4, 4, 3, 62, 60, 51, + 44, 37, 28, 19, 3, 80, 68, 39, 28, 22, 12, 11, + 3, 0, 65, 78, 79, 74, 68, 75, 66, 2, 68, 73, + 0, 4, 6, 4, 8, 9, 4, 62, 60, 51, 44, 37, 28, + 19, 3, 80 }, + + { + + 62, + 8, 75, 62, 8, 75, 111, 91, 14, 10, 9, 26, 44, + 54, 56, 20, 101, 66, 67, 71, 9, 8, 68, 4, 15, + 31, 41, 29, 4, 83, 101, 92, 73, 67, 71, 9, 72, + 82, 11, 16, 67, 79, 90, 3, 76, 85, 98, 7, 72, + 81, 4, 79, 82, 92, 65, 76, 70, 84, 69, 2, 22, + 0, 0, 0, 77, 88, 97, 68, 15, 0, 41, 9, 81, + 105, 80, 86, 66, 78, 88, 84, 103, 85, 98, 91, + 106, 80, 86, 90, 89, 24, 65, 75, 107, 71, 97, + 85, 109, 7, 4, 5, 65, 12, 68, 70, 82, 95, 83, + 83, 84, 71, 80, 97, 91, 72, 100, 89, 83, 87, + 98, 101, 0, 75, 68, 67, 3, 9, 66, 71, 84, 99, + 73, 25, 25, 102, 9, 5, 5, 4, 4, 1, 69, 66, 1, + 9, 5, 2, 0, 0, 65, 68, 5, 64, 17, 28, 26, 18, + 11, 19, 12, 16, 15, 0, 17, 15, 24, 89, 16, 30, + 27, 56, 62, 38, 48, 62, 62, 44, 60, 57, 62, + 62, 47, 49, 37, 48, 62, 51, 62, 62, 62, 44, + 38, 62, 44, 62, 12, 62, 62, 62, 62, 62, 62, + 60, 58, 53, 49, 44, 37, 30, 24, 6, 75, 73, 81, + 21, 22, 19, 22, 9, 10, 8, 22, 0, 69, 65, 79, + 72, 110, 99, 1, 6, 10, 0, 70, 74, 78, 81, 107, + 89, 26, 13, 6, 68, 68, 81, 92, 96, 106, 69, + 25, 17, 12, 11, 0, 65, 66, 71, 80, 67, 35, 31, + 26, 9, 10, 65, 73, 84, 10, 56, 50, 46, 35, 25, + 3, 70, 69, 75, 62, 114, 111, 98, 111, 109, 95, + 105, 101, 92, 102, 100, 103, 89, 92, 90, 101, + 98, 85, 78, 79, 79, 76, 71, 66, 67, 2, 69, 69, + 72, 65, 0, 68, 1, 1, 0, 1, 5, 0, 64, 1, 7, 65, + 69, 73, 69, 66, 67, 17, 16, 18, 20, 16, 17, + 14, 16, 15, 4, 12, 13, 67, 3, 59, 59, 56, 61, + 62, 62, 62, 62, 62, 62, 62, 62, 62, 57, 36, + 62, 62, 62, 62, 62, 62, 50, 43, 42, 33, 22, + 14, 2, 71, 62, 62, 62, 62, 62, 62, 62, 62, 54, + 51, 45, 43, 26, 17, 5, 9, 8, 4, 29, 29, 27, + 25, 21, 23, 14, 11, 10, 3, 76, 65, 78, 89, 17, + 3, 65, 82, 77, 71, 77, 70, 1, 71, 77, 65, 2, + 3, 2, 5, 4, 3, 62, 58, 49, 41, 34, 24, 15, 64, + 83, 68, 39, 28, 23, 13, 12, 4, 1, 64, 78, 79, + 74, 68, 74, 65, 3, 68, 72, 0, 4, 6, 5, 9, 9, + 4, 62, 58, 49, 41, 34, 24, 15, 64, 83 }, + + { + + 62, + 8, 75, 62, 8, 75, 109, 89, 14, 10, 8, 25, 42, + 53, 56, 20, 99, 66, 67, 70, 8, 8, 68, 3, 13, + 30, 38, 26, 2, 85, 98, 91, 73, 67, 70, 8, 72, + 81, 11, 15, 67, 78, 89, 3, 76, 85, 98, 7, 72, + 81, 4, 79, 81, 91, 65, 76, 70, 84, 68, 2, 22, + 0, 0, 0, 77, 88, 97, 67, 14, 0, 40, 8, 81, + 102, 79, 85, 64, 76, 87, 82, 102, 84, 96, 90, + 104, 80, 85, 89, 89, 24, 65, 74, 105, 71, 96, + 85, 107, 7, 3, 4, 66, 12, 68, 69, 82, 94, 82, + 83, 83, 71, 79, 95, 90, 71, 99, 88, 78, 83, + 95, 98, 0, 74, 68, 67, 3, 9, 65, 71, 84, 97, + 73, 23, 23, 99, 9, 6, 5, 4, 4, 1, 68, 65, 2, + 8, 5, 2, 0, 0, 66, 68, 5, 65, 17, 27, 26, 17, + 11, 19, 12, 16, 14, 0, 16, 14, 24, 89, 16, 29, + 26, 54, 62, 37, 46, 62, 62, 42, 57, 55, 62, + 62, 43, 47, 35, 45, 61, 48, 62, 62, 62, 41, + 36, 58, 42, 62, 11, 62, 62, 62, 62, 62, 60, + 58, 56, 51, 46, 42, 35, 28, 22, 4, 75, 73, 82, + 20, 21, 18, 20, 8, 9, 7, 21, 64, 70, 66, 79, + 73, 109, 97, 2, 7, 10, 1, 70, 74, 78, 80, 105, + 87, 26, 14, 7, 68, 67, 80, 91, 95, 104, 69, + 26, 18, 13, 11, 1, 64, 66, 70, 80, 67, 35, 31, + 26, 8, 10, 65, 73, 84, 10, 55, 49, 45, 34, 25, + 3, 69, 69, 75, 62, 112, 109, 97, 109, 108, 94, + 104, 100, 91, 100, 99, 101, 88, 91, 90, 100, + 96, 85, 78, 79, 79, 76, 71, 67, 67, 2, 69, 69, + 73, 64, 0, 67, 1, 1, 0, 1, 5, 0, 64, 1, 7, 65, + 69, 73, 69, 66, 68, 16, 16, 17, 20, 15, 16, + 14, 15, 14, 4, 12, 12, 67, 2, 58, 58, 55, 59, + 60, 62, 62, 62, 62, 62, 62, 62, 62, 55, 34, + 62, 62, 62, 62, 62, 62, 48, 41, 39, 31, 20, + 12, 1, 71, 62, 62, 62, 62, 62, 62, 62, 62, 52, + 48, 43, 40, 24, 15, 4, 8, 8, 2, 28, 27, 26, + 23, 19, 21, 13, 10, 9, 2, 77, 67, 79, 89, 16, + 1, 67, 81, 77, 70, 76, 69, 2, 71, 76, 65, 2, + 3, 2, 6, 4, 3, 62, 56, 46, 38, 30, 20, 11, 68, + 86, 67, 39, 28, 23, 13, 12, 4, 1, 64, 77, 79, + 74, 67, 74, 64, 4, 68, 72, 1, 5, 6, 5, 9, 9, + 4, 62, 56, 46, 38, 30, 20, 11, 68, 86 }, + + { + + 62, + 8, 76, 62, 8, 76, 107, 88, 15, 10, 8, 23, 40, + 52, 56, 20, 98, 66, 66, 70, 8, 7, 67, 3, 12, + 28, 36, 22, 64, 86, 96, 90, 73, 66, 70, 8, 73, + 81, 11, 15, 67, 78, 89, 3, 76, 84, 97, 7, 71, + 80, 4, 78, 81, 91, 65, 76, 70, 84, 68, 2, 22, + 0, 0, 0, 76, 88, 97, 67, 14, 64, 40, 8, 81, + 100, 78, 84, 0, 73, 85, 81, 100, 82, 95, 89, + 102, 80, 85, 89, 89, 24, 65, 73, 102, 71, 95, + 84, 105, 6, 3, 4, 66, 13, 68, 69, 81, 94, 82, + 82, 82, 70, 78, 94, 88, 71, 98, 87, 73, 78, + 92, 95, 0, 74, 68, 66, 3, 9, 65, 70, 83, 95, + 72, 21, 21, 96, 9, 6, 5, 4, 5, 2, 66, 64, 2, + 8, 5, 2, 1, 1, 67, 68, 5, 65, 16, 26, 25, 17, + 10, 19, 12, 16, 12, 0, 15, 13, 23, 89, 16, 29, + 26, 52, 62, 36, 44, 61, 62, 40, 55, 53, 62, + 62, 40, 45, 34, 43, 57, 46, 62, 62, 62, 38, + 34, 55, 40, 62, 9, 62, 62, 62, 62, 62, 58, 55, + 54, 49, 44, 39, 33, 26, 21, 3, 75, 73, 82, 19, + 20, 17, 19, 7, 8, 6, 19, 65, 70, 67, 80, 73, + 109, 96, 3, 7, 10, 1, 69, 73, 77, 80, 103, 86, + 27, 14, 7, 67, 66, 79, 89, 93, 102, 68, 26, + 18, 13, 12, 2, 64, 66, 70, 79, 67, 36, 31, 25, + 8, 10, 65, 73, 83, 9, 55, 49, 44, 33, 24, 3, + 69, 69, 75, 62, 111, 108, 96, 108, 106, 93, + 102, 98, 90, 99, 97, 99, 88, 90, 89, 99, 94, + 84, 78, 79, 78, 75, 71, 67, 67, 1, 69, 69, 73, + 64, 1, 66, 1, 1, 1, 2, 5, 1, 0, 1, 6, 65, 69, + 73, 69, 65, 69, 15, 16, 16, 19, 14, 16, 14, + 14, 14, 4, 11, 10, 68, 1, 56, 57, 54, 58, 58, + 62, 62, 62, 62, 62, 62, 62, 62, 52, 32, 62, + 62, 62, 62, 62, 62, 45, 39, 37, 29, 18, 11, 0, + 72, 62, 62, 62, 62, 62, 62, 60, 59, 49, 46, + 40, 37, 22, 14, 2, 7, 7, 1, 26, 26, 24, 21, + 18, 19, 11, 9, 7, 1, 78, 68, 80, 90, 14, 0, + 68, 81, 76, 70, 76, 68, 3, 71, 76, 64, 3, 3, + 3, 7, 4, 3, 62, 54, 44, 35, 27, 16, 7, 72, 89, + 67, 39, 28, 23, 13, 13, 5, 1, 64, 77, 78, 73, + 67, 73, 0, 5, 67, 71, 1, 5, 6, 5, 10, 9, 4, + 62, 54, 44, 35, 27, 16, 7, 72, 89 }, + + { + + 62, + 8, 76, 62, 8, 76, 106, 86, 15, 10, 7, 22, 38, + 51, 56, 19, 96, 66, 66, 69, 8, 7, 67, 2, 10, + 27, 33, 19, 66, 88, 93, 89, 73, 66, 69, 8, 73, + 80, 11, 14, 67, 78, 88, 3, 76, 84, 97, 7, 71, + 80, 4, 78, 80, 91, 65, 76, 70, 84, 68, 2, 22, + 0, 0, 0, 76, 89, 97, 66, 13, 64, 39, 7, 81, + 97, 77, 83, 2, 71, 84, 79, 98, 81, 94, 88, + 100, 80, 85, 88, 89, 24, 65, 72, 100, 71, 95, + 84, 103, 6, 2, 3, 67, 13, 68, 68, 81, 93, 81, + 82, 81, 70, 78, 92, 87, 70, 97, 86, 68, 74, + 89, 92, 0, 74, 68, 66, 3, 9, 64, 70, 83, 93, + 72, 19, 19, 94, 9, 6, 5, 4, 5, 2, 65, 0, 2, 8, + 5, 2, 1, 2, 68, 68, 5, 66, 16, 25, 25, 17, 10, + 19, 12, 16, 11, 0, 14, 12, 23, 89, 15, 28, 25, + 50, 62, 35, 42, 59, 60, 38, 52, 51, 62, 62, + 36, 43, 32, 41, 54, 43, 58, 62, 62, 35, 32, + 51, 38, 62, 7, 62, 62, 62, 62, 62, 56, 53, 52, + 47, 42, 37, 31, 24, 19, 1, 75, 73, 83, 18, 19, + 16, 18, 6, 6, 5, 17, 66, 71, 68, 81, 74, 108, + 94, 4, 8, 10, 1, 68, 73, 77, 79, 101, 85, 27, + 14, 8, 66, 65, 78, 88, 92, 101, 67, 27, 19, + 14, 12, 3, 0, 66, 70, 79, 67, 36, 31, 24, 8, + 10, 65, 73, 83, 9, 54, 48, 43, 32, 24, 3, 69, + 69, 75, 62, 110, 106, 95, 106, 105, 92, 100, + 96, 89, 97, 95, 97, 87, 89, 89, 98, 93, 84, + 78, 79, 78, 75, 71, 67, 67, 1, 69, 69, 74, 0, + 1, 65, 1, 1, 1, 2, 5, 1, 0, 1, 6, 65, 69, 73, + 69, 65, 70, 14, 16, 15, 18, 13, 15, 14, 13, + 13, 4, 11, 9, 68, 0, 55, 56, 53, 56, 56, 62, + 61, 62, 62, 62, 62, 62, 61, 50, 30, 62, 62, + 62, 62, 62, 59, 43, 36, 34, 27, 16, 9, 64, 73, + 62, 62, 62, 62, 62, 62, 57, 56, 47, 43, 38, + 34, 20, 12, 1, 6, 6, 64, 25, 24, 22, 19, 16, + 17, 9, 8, 6, 0, 79, 69, 81, 91, 13, 64, 69, + 81, 76, 69, 75, 67, 4, 71, 75, 64, 3, 3, 3, 8, + 4, 3, 61, 52, 41, 32, 24, 12, 2, 76, 92, 67, + 39, 28, 23, 13, 13, 5, 1, 64, 76, 78, 73, 66, + 73, 0, 6, 67, 71, 1, 5, 6, 5, 10, 9, 4, 61, + 52, 41, 32, 24, 12, 2, 76, 92 }, + + { + + 62, + 8, 76, 62, 8, 76, 104, 85, 15, 10, 7, 21, 36, + 50, 56, 19, 94, 66, 66, 68, 7, 6, 67, 1, 8, + 26, 31, 15, 69, 90, 90, 88, 72, 66, 68, 7, 73, + 79, 11, 14, 67, 77, 87, 3, 76, 84, 97, 7, 71, + 80, 4, 78, 80, 90, 65, 76, 70, 84, 67, 2, 22, + 0, 0, 0, 75, 89, 97, 66, 12, 64, 38, 7, 81, + 95, 76, 82, 4, 69, 82, 78, 97, 79, 92, 87, 97, + 80, 84, 88, 88, 24, 65, 71, 98, 71, 94, 83, + 101, 6, 2, 3, 67, 13, 68, 68, 80, 92, 80, 81, + 80, 69, 77, 91, 85, 69, 95, 85, 0, 70, 86, 89, + 1, 73, 67, 65, 3, 9, 64, 70, 82, 91, 72, 17, + 17, 91, 9, 7, 5, 4, 5, 3, 0, 1, 3, 7, 5, 2, 2, + 2, 69, 67, 5, 66, 15, 24, 24, 16, 9, 19, 12, + 16, 10, 1, 13, 12, 22, 89, 15, 27, 24, 48, 62, + 34, 41, 57, 58, 36, 50, 49, 62, 62, 33, 41, + 30, 38, 51, 41, 55, 62, 62, 33, 30, 48, 36, + 62, 6, 62, 62, 62, 61, 60, 54, 51, 50, 45, 39, + 35, 29, 23, 17, 64, 75, 73, 83, 17, 18, 15, + 16, 5, 5, 4, 16, 67, 71, 69, 81, 75, 107, 93, + 5, 8, 10, 2, 68, 72, 76, 78, 99, 83, 27, 15, + 8, 66, 64, 77, 86, 90, 99, 67, 28, 20, 15, 13, + 4, 0, 65, 69, 78, 67, 37, 31, 24, 7, 10, 65, + 73, 82, 9, 54, 47, 42, 31, 24, 3, 68, 69, 74, + 62, 108, 105, 93, 104, 103, 91, 99, 95, 88, + 95, 94, 95, 86, 88, 88, 97, 91, 84, 78, 78, + 77, 74, 71, 68, 67, 0, 69, 69, 74, 0, 1, 64, + 1, 1, 1, 2, 5, 1, 0, 1, 5, 65, 69, 73, 69, 64, + 71, 13, 16, 14, 18, 13, 14, 14, 13, 12, 4, 11, + 8, 68, 64, 54, 55, 52, 54, 54, 62, 59, 61, 62, + 59, 62, 62, 58, 47, 28, 62, 62, 62, 62, 59, + 56, 40, 34, 32, 25, 15, 8, 64, 73, 62, 62, 62, + 62, 59, 59, 55, 53, 45, 41, 36, 31, 18, 10, + 64, 6, 6, 66, 24, 23, 21, 17, 14, 15, 8, 7, 4, + 64, 79, 71, 82, 91, 11, 66, 71, 80, 76, 68, + 75, 66, 5, 70, 74, 0, 4, 3, 4, 9, 4, 3, 60, + 50, 38, 29, 20, 8, 65, 80, 95, 66, 39, 28, 23, + 13, 14, 5, 2, 0, 76, 78, 73, 66, 73, 1, 7, 67, + 71, 2, 6, 6, 6, 11, 9, 4, 60, 50, 38, 29, 20, + 8, 65, 80, 95 }, + + { + + 61, + 8, 76, 61, 8, 76, 102, 83, 16, 10, 6, 19, 34, + 49, 56, 19, 92, 66, 65, 67, 7, 6, 67, 1, 7, + 25, 28, 12, 71, 91, 87, 87, 72, 65, 67, 7, 74, + 78, 11, 13, 67, 77, 87, 3, 76, 84, 97, 7, 71, + 79, 4, 78, 79, 90, 65, 76, 70, 84, 67, 2, 22, + 0, 0, 0, 75, 89, 97, 65, 11, 64, 37, 6, 81, + 92, 75, 81, 5, 67, 81, 76, 95, 78, 91, 86, 95, + 80, 84, 87, 88, 24, 65, 70, 96, 71, 93, 83, + 99, 6, 1, 2, 68, 13, 68, 67, 80, 91, 79, 81, + 79, 69, 76, 89, 84, 69, 94, 84, 5, 65, 83, 86, + 1, 73, 67, 65, 3, 9, 0, 69, 82, 89, 72, 15, + 15, 88, 9, 7, 5, 4, 5, 3, 1, 2, 3, 7, 5, 2, 2, + 3, 70, 67, 5, 67, 15, 23, 24, 16, 9, 19, 12, + 16, 9, 1, 12, 11, 22, 89, 15, 27, 24, 46, 61, + 33, 39, 55, 55, 34, 47, 47, 62, 62, 29, 39, + 28, 36, 48, 38, 52, 61, 62, 30, 28, 44, 34, + 62, 4, 60, 62, 60, 58, 57, 52, 49, 48, 43, 37, + 33, 27, 21, 16, 66, 75, 73, 84, 16, 17, 14, + 15, 4, 4, 3, 14, 68, 72, 70, 82, 75, 107, 91, + 6, 9, 10, 2, 67, 72, 76, 78, 97, 82, 27, 15, + 9, 65, 0, 76, 85, 89, 97, 66, 28, 20, 15, 13, + 5, 1, 65, 69, 78, 67, 37, 31, 23, 7, 10, 65, + 73, 82, 9, 53, 47, 41, 30, 24, 3, 68, 69, 74, + 62, 107, 103, 92, 103, 102, 90, 97, 93, 87, + 94, 92, 93, 86, 87, 88, 96, 89, 83, 78, 78, + 77, 74, 71, 68, 67, 0, 69, 69, 75, 1, 2, 0, 1, + 1, 2, 2, 5, 1, 0, 1, 5, 65, 69, 73, 69, 64, + 72, 12, 16, 13, 17, 12, 14, 14, 12, 11, 4, 11, + 7, 68, 65, 53, 54, 51, 53, 52, 60, 57, 59, 59, + 57, 62, 60, 55, 45, 26, 62, 62, 62, 62, 55, + 53, 38, 32, 29, 23, 13, 6, 65, 74, 62, 62, 62, + 60, 56, 57, 52, 50, 42, 38, 33, 28, 16, 8, 65, + 5, 5, 67, 22, 21, 19, 15, 13, 13, 6, 6, 3, 65, + 80, 72, 83, 92, 10, 67, 72, 80, 75, 68, 74, + 65, 6, 70, 74, 0, 4, 3, 4, 10, 4, 3, 59, 48, + 36, 26, 17, 4, 69, 84, 98, 66, 39, 28, 23, 13, + 14, 6, 2, 0, 75, 78, 73, 65, 72, 2, 8, 67, 70, + 2, 6, 6, 6, 11, 9, 4, 59, 48, 36, 26, 17, 4, + 69, 84, 98 }, + + { + + 60, + 8, 76, 60, 8, 76, 100, 82, 16, 10, 6, 18, 32, + 48, 56, 19, 90, 66, 65, 66, 7, 5, 67, 0, 5, + 24, 26, 8, 74, 93, 84, 86, 72, 65, 66, 7, 74, + 77, 11, 13, 67, 77, 86, 3, 76, 84, 97, 7, 71, + 79, 4, 78, 79, 90, 65, 76, 70, 84, 67, 2, 22, + 0, 0, 0, 74, 89, 97, 65, 10, 64, 36, 6, 81, + 90, 74, 80, 7, 65, 79, 75, 93, 76, 90, 85, 93, + 80, 84, 87, 88, 24, 65, 69, 94, 71, 92, 82, + 97, 6, 1, 2, 68, 13, 68, 67, 79, 90, 78, 80, + 78, 68, 75, 88, 82, 68, 93, 83, 10, 2, 80, 83, + 1, 73, 67, 64, 3, 9, 0, 69, 81, 87, 72, 13, + 13, 85, 9, 7, 5, 4, 5, 4, 3, 3, 3, 7, 5, 2, 3, + 4, 71, 67, 5, 67, 14, 22, 23, 16, 8, 19, 12, + 16, 8, 1, 11, 10, 21, 89, 15, 26, 23, 44, 58, + 32, 37, 53, 53, 32, 45, 45, 62, 62, 26, 37, + 26, 34, 45, 36, 49, 57, 62, 27, 26, 41, 32, + 62, 2, 58, 62, 58, 56, 55, 50, 47, 46, 41, 35, + 31, 25, 19, 14, 68, 75, 73, 84, 15, 16, 13, + 14, 3, 3, 2, 12, 69, 72, 71, 83, 76, 106, 90, + 7, 9, 10, 2, 66, 71, 75, 77, 95, 81, 27, 15, + 9, 64, 1, 75, 83, 87, 95, 65, 29, 21, 16, 14, + 6, 1, 65, 69, 77, 67, 38, 31, 22, 7, 10, 65, + 73, 81, 9, 53, 46, 40, 29, 24, 3, 68, 69, 74, + 62, 106, 102, 91, 101, 100, 89, 95, 91, 86, + 92, 90, 91, 85, 86, 87, 95, 87, 83, 78, 78, + 76, 73, 71, 68, 67, 64, 69, 69, 75, 1, 2, 1, + 1, 1, 2, 2, 5, 1, 0, 1, 4, 65, 69, 73, 69, 0, + 73, 11, 16, 12, 16, 11, 13, 14, 11, 10, 4, 11, + 6, 68, 66, 52, 53, 50, 51, 50, 58, 55, 57, 57, + 54, 61, 57, 52, 42, 24, 62, 62, 62, 62, 52, + 50, 35, 30, 27, 21, 11, 5, 66, 75, 62, 62, 62, + 58, 53, 54, 50, 47, 40, 36, 31, 25, 14, 6, 67, + 4, 4, 69, 21, 20, 17, 13, 11, 11, 4, 5, 1, 66, + 81, 73, 84, 93, 8, 68, 73, 80, 75, 67, 74, 64, + 7, 70, 73, 1, 5, 3, 5, 11, 4, 3, 58, 46, 33, + 23, 14, 0, 73, 88, 101, 66, 39, 28, 23, 13, + 15, 6, 2, 0, 75, 78, 73, 65, 72, 3, 9, 67, 70, + 2, 6, 6, 6, 12, 9, 4, 58, 46, 33, 23, 14, 0, + 73, 88, 101 }, + + { + + 58, + 7, 77, 58, 7, 77, 99, 81, 16, 10, 5, 16, 29, + 47, 56, 18, 89, 67, 65, 66, 6, 4, 67, 64, 3, + 22, 23, 4, 77, 95, 82, 86, 72, 65, 66, 6, 75, + 77, 11, 12, 67, 77, 86, 2, 77, 84, 97, 6, 71, + 79, 4, 78, 79, 90, 65, 76, 71, 84, 67, 2, 22, + 0, 0, 0, 74, 90, 97, 65, 9, 65, 35, 5, 82, 88, + 73, 79, 8, 0, 78, 74, 92, 75, 89, 84, 91, 80, + 84, 87, 88, 24, 65, 69, 92, 71, 92, 82, 96, 5, + 0, 1, 69, 13, 68, 67, 79, 90, 78, 80, 78, 68, + 75, 87, 81, 68, 92, 82, 14, 6, 77, 81, 1, 73, + 67, 64, 2, 9, 0, 69, 81, 85, 72, 11, 11, 83, + 9, 7, 5, 4, 5, 4, 4, 3, 3, 6, 4, 2, 3, 4, 73, + 67, 5, 68, 13, 20, 22, 15, 7, 19, 12, 15, 6, + 1, 10, 9, 20, 89, 14, 25, 22, 41, 54, 30, 35, + 50, 50, 29, 42, 43, 55, 62, 22, 34, 24, 31, + 41, 33, 45, 52, 59, 24, 24, 37, 30, 62, 0, 55, + 59, 55, 53, 52, 47, 44, 43, 39, 32, 28, 23, + 17, 12, 70, 75, 74, 85, 14, 14, 11, 12, 1, 1, + 0, 10, 70, 73, 72, 84, 77, 106, 89, 7, 9, 10, + 2, 66, 71, 75, 77, 93, 80, 27, 15, 9, 64, 1, + 74, 82, 86, 94, 65, 29, 21, 16, 14, 7, 1, 65, + 69, 77, 68, 38, 30, 21, 6, 10, 65, 73, 81, 8, + 52, 45, 38, 28, 23, 3, 68, 69, 74, 62, 105, + 101, 90, 100, 99, 88, 94, 90, 85, 91, 89, 89, + 85, 86, 87, 94, 86, 83, 78, 78, 76, 73, 71, + 69, 68, 65, 69, 70, 76, 1, 2, 2, 1, 0, 2, 2, + 4, 1, 0, 1, 3, 65, 69, 73, 69, 0, 74, 10, 16, + 10, 15, 10, 12, 13, 10, 9, 4, 10, 4, 69, 68, + 50, 51, 49, 49, 48, 55, 52, 54, 54, 51, 58, + 54, 48, 39, 22, 62, 62, 61, 60, 48, 46, 32, + 27, 24, 19, 9, 3, 67, 76, 59, 60, 60, 55, 50, + 51, 47, 43, 37, 33, 28, 22, 12, 4, 69, 3, 3, + 71, 19, 18, 15, 10, 9, 9, 2, 3, 64, 68, 82, + 75, 85, 94, 6, 70, 75, 80, 75, 67, 74, 0, 8, + 70, 73, 1, 5, 3, 5, 11, 4, 2, 56, 44, 30, 19, + 10, 67, 78, 93, 104, 66, 39, 28, 23, 13, 15, + 6, 2, 0, 75, 78, 73, 65, 72, 3, 9, 67, 70, 2, + 6, 6, 6, 12, 8, 3, 56, 44, 30, 19, 10, 67, 78, + 93, 104 }, + + { + + 57, + 7, 77, 57, 7, 77, 97, 79, 17, 11, 5, 15, 27, + 46, 57, 18, 87, 67, 64, 65, 6, 4, 66, 64, 2, + 21, 21, 1, 79, 96, 79, 85, 71, 64, 65, 6, 75, + 76, 11, 12, 66, 76, 85, 2, 77, 83, 96, 6, 70, + 78, 4, 77, 78, 89, 64, 75, 71, 83, 66, 2, 22, + 0, 0, 0, 73, 90, 97, 64, 9, 65, 35, 5, 82, 85, + 71, 77, 10, 3, 76, 72, 90, 73, 87, 82, 88, 80, + 83, 86, 87, 24, 65, 68, 89, 70, 91, 81, 94, 5, + 0, 1, 69, 14, 68, 66, 78, 89, 77, 79, 77, 67, + 74, 85, 79, 67, 90, 80, 19, 11, 73, 78, 2, 72, + 66, 0, 2, 10, 1, 68, 80, 82, 71, 9, 10, 80, 9, + 8, 5, 5, 6, 5, 6, 4, 4, 6, 4, 2, 4, 5, 74, 66, + 5, 68, 13, 19, 22, 15, 7, 19, 12, 15, 5, 2, + 10, 9, 20, 89, 14, 25, 22, 39, 51, 29, 34, 48, + 48, 27, 40, 41, 49, 62, 19, 32, 23, 29, 38, + 31, 42, 48, 55, 22, 22, 34, 28, 62, 64, 53, + 57, 53, 51, 50, 45, 42, 41, 37, 30, 26, 22, + 16, 11, 71, 75, 74, 85, 14, 13, 10, 11, 0, 0, + 64, 9, 71, 73, 73, 84, 77, 105, 87, 8, 10, 10, + 3, 65, 70, 74, 76, 90, 78, 28, 16, 10, 0, 2, + 72, 80, 84, 92, 64, 30, 22, 17, 15, 8, 2, 64, + 68, 76, 68, 39, 30, 21, 6, 11, 64, 73, 80, 8, + 52, 45, 37, 27, 23, 4, 67, 68, 73, 62, 103, + 99, 88, 98, 97, 86, 92, 88, 83, 89, 87, 86, + 84, 85, 86, 92, 84, 82, 77, 77, 75, 72, 70, + 69, 68, 65, 69, 70, 76, 2, 3, 3, 2, 0, 3, 3, + 4, 2, 1, 1, 3, 64, 68, 72, 68, 1, 74, 9, 16, + 9, 15, 10, 12, 13, 10, 9, 4, 10, 3, 69, 69, + 49, 50, 49, 48, 47, 53, 50, 52, 52, 49, 56, + 52, 45, 37, 20, 61, 60, 57, 56, 45, 43, 30, + 25, 22, 18, 8, 2, 67, 76, 57, 58, 58, 53, 48, + 49, 45, 40, 35, 31, 26, 20, 11, 3, 70, 3, 3, + 72, 18, 17, 14, 8, 8, 8, 1, 2, 65, 69, 82, 76, + 85, 94, 5, 71, 76, 79, 74, 66, 73, 2, 10, 69, + 72, 2, 6, 4, 6, 12, 4, 2, 55, 42, 28, 16, 7, + 71, 82, 97, 106, 65, 39, 29, 24, 14, 16, 7, 3, + 1, 74, 77, 72, 64, 71, 4, 10, 66, 69, 3, 7, 6, + 7, 13, 8, 3, 55, 42, 28, 16, 7, 71, 82, 97, + 106 }, + + { + + 56, + 7, 77, 56, 7, 77, 95, 78, 17, 11, 5, 14, 25, + 45, 57, 18, 85, 67, 64, 64, 6, 3, 66, 65, 0, + 20, 18, 66, 82, 98, 76, 84, 71, 64, 64, 6, 75, + 75, 11, 11, 66, 76, 84, 2, 77, 83, 96, 6, 70, + 78, 4, 77, 78, 89, 64, 75, 71, 83, 66, 2, 22, + 0, 0, 0, 72, 90, 97, 64, 8, 65, 34, 5, 82, 83, + 70, 76, 12, 5, 75, 71, 88, 72, 86, 81, 86, 80, + 83, 86, 87, 24, 65, 67, 87, 70, 90, 80, 92, 5, + 0, 1, 70, 14, 68, 66, 77, 88, 76, 78, 76, 67, + 73, 84, 78, 66, 89, 79, 24, 15, 70, 75, 2, 72, + 66, 0, 2, 10, 1, 68, 80, 80, 71, 7, 8, 77, 9, + 8, 5, 5, 6, 5, 8, 5, 4, 6, 4, 2, 5, 6, 75, 66, + 5, 68, 12, 18, 21, 15, 6, 19, 12, 15, 4, 2, 9, + 8, 19, 89, 14, 24, 21, 37, 48, 28, 32, 46, 46, + 25, 38, 39, 43, 62, 15, 30, 21, 27, 35, 29, + 39, 44, 51, 19, 20, 31, 26, 62, 66, 51, 55, + 51, 49, 48, 43, 40, 39, 35, 28, 24, 20, 14, 9, + 73, 75, 74, 86, 13, 12, 9, 10, 64, 64, 65, 7, + 72, 73, 74, 85, 78, 104, 86, 9, 10, 10, 3, 64, + 69, 73, 75, 88, 77, 28, 16, 10, 1, 3, 71, 78, + 82, 90, 0, 31, 23, 18, 16, 9, 2, 64, 68, 75, + 68, 40, 30, 20, 6, 11, 64, 73, 80, 8, 52, 44, + 36, 26, 23, 4, 67, 68, 73, 62, 102, 98, 87, + 96, 95, 85, 90, 86, 82, 87, 85, 84, 83, 84, + 86, 91, 82, 82, 77, 77, 74, 72, 70, 69, 68, + 66, 69, 70, 76, 2, 3, 4, 2, 0, 3, 3, 4, 2, 1, + 1, 2, 64, 68, 72, 68, 2, 75, 8, 16, 8, 14, 9, + 11, 13, 9, 8, 4, 10, 2, 69, 70, 48, 49, 48, + 46, 45, 51, 48, 50, 50, 46, 53, 49, 42, 34, + 18, 57, 56, 53, 51, 42, 40, 27, 23, 19, 16, 6, + 1, 68, 77, 55, 56, 55, 51, 45, 46, 42, 37, 33, + 28, 24, 17, 9, 1, 72, 2, 2, 74, 17, 16, 12, 6, + 6, 6, 64, 1, 67, 70, 83, 77, 86, 95, 3, 72, + 77, 79, 74, 65, 73, 3, 11, 69, 71, 3, 7, 4, 6, + 13, 4, 2, 54, 40, 25, 13, 4, 75, 86, 101, 109, + 65, 39, 29, 24, 14, 17, 7, 3, 1, 74, 77, 72, + 64, 71, 5, 11, 66, 69, 3, 7, 6, 7, 14, 8, 3, + 54, 40, 25, 13, 4, 75, 86, 101, 109 }, + + { + + 55, + 7, 77, 55, 7, 77, 93, 76, 18, 11, 4, 12, 23, + 44, 57, 18, 83, 67, 0, 0, 6, 3, 66, 65, 64, + 19, 16, 69, 84, 99, 73, 83, 71, 0, 0, 6, 76, + 74, 11, 11, 66, 76, 84, 2, 77, 83, 96, 6, 70, + 77, 4, 77, 77, 89, 64, 75, 71, 83, 66, 2, 22, + 0, 0, 0, 72, 90, 97, 0, 7, 65, 33, 4, 82, 80, + 69, 75, 13, 7, 73, 69, 86, 70, 85, 80, 84, 80, + 83, 85, 87, 24, 65, 66, 85, 70, 89, 80, 90, 5, + 64, 0, 70, 14, 68, 65, 77, 87, 75, 78, 75, 66, + 72, 82, 76, 66, 88, 78, 29, 20, 67, 72, 2, 72, + 66, 1, 2, 10, 2, 67, 79, 78, 71, 5, 6, 74, 9, + 8, 5, 5, 6, 6, 9, 6, 4, 6, 4, 2, 5, 7, 76, 66, + 5, 69, 12, 17, 21, 15, 6, 19, 12, 15, 3, 2, 8, + 7, 19, 89, 14, 24, 21, 35, 45, 27, 30, 44, 43, + 23, 35, 37, 36, 62, 12, 28, 19, 25, 32, 26, + 36, 40, 47, 16, 18, 27, 24, 62, 68, 49, 53, + 49, 46, 45, 41, 38, 37, 33, 26, 22, 18, 12, 8, + 75, 75, 74, 86, 12, 11, 8, 9, 65, 65, 66, 5, + 73, 74, 75, 86, 78, 104, 84, 10, 11, 10, 3, 0, + 69, 73, 75, 86, 76, 28, 16, 11, 2, 4, 70, 77, + 81, 88, 1, 31, 23, 18, 16, 10, 3, 64, 68, 75, + 68, 40, 30, 19, 6, 11, 64, 73, 79, 8, 51, 44, + 35, 25, 23, 4, 67, 68, 73, 62, 101, 96, 86, + 95, 94, 84, 88, 84, 81, 86, 83, 82, 83, 83, + 85, 90, 80, 81, 77, 77, 74, 71, 70, 69, 68, + 66, 69, 70, 77, 3, 4, 5, 2, 0, 4, 3, 4, 2, 1, + 1, 2, 64, 68, 72, 68, 2, 76, 7, 16, 7, 13, 8, + 11, 13, 8, 7, 4, 10, 1, 69, 71, 47, 48, 47, + 45, 43, 49, 46, 48, 47, 44, 50, 46, 39, 32, + 16, 53, 52, 49, 46, 38, 37, 25, 21, 17, 14, 4, + 64, 69, 78, 53, 53, 53, 48, 42, 44, 40, 34, + 30, 26, 21, 14, 7, 64, 73, 1, 1, 75, 15, 14, + 10, 4, 5, 4, 66, 0, 68, 71, 84, 78, 87, 96, 2, + 73, 78, 79, 73, 65, 72, 4, 12, 69, 71, 3, 7, + 4, 7, 14, 4, 2, 53, 38, 23, 10, 1, 79, 90, + 105, 112, 65, 39, 29, 24, 14, 17, 8, 3, 1, 73, + 77, 72, 0, 70, 6, 12, 66, 68, 3, 7, 6, 7, 14, + 8, 3, 53, 38, 23, 10, 1, 79, 90, 105, 112 }, + + { + + 53, + 7, 77, 53, 7, 77, 92, 75, 18, 11, 4, 11, 21, + 43, 57, 17, 81, 67, 0, 1, 5, 2, 66, 66, 66, + 18, 13, 73, 87, 101, 70, 82, 71, 0, 1, 5, 76, + 73, 11, 10, 66, 75, 83, 2, 77, 83, 96, 6, 70, + 77, 4, 77, 77, 88, 64, 75, 71, 83, 65, 2, 22, + 0, 0, 0, 71, 91, 97, 0, 6, 65, 32, 4, 82, 78, + 68, 74, 15, 9, 72, 68, 85, 69, 83, 79, 82, 80, + 82, 85, 87, 24, 65, 65, 83, 70, 89, 79, 88, 5, + 64, 0, 71, 14, 68, 65, 76, 86, 74, 77, 74, 66, + 72, 81, 75, 65, 87, 77, 34, 24, 64, 69, 2, 71, + 66, 1, 2, 10, 2, 67, 79, 76, 71, 3, 4, 72, 9, + 9, 5, 5, 6, 6, 11, 7, 5, 5, 4, 2, 6, 7, 77, + 66, 5, 69, 11, 16, 20, 14, 5, 19, 12, 15, 2, + 2, 7, 6, 18, 89, 13, 23, 20, 33, 41, 26, 28, + 42, 41, 21, 33, 35, 30, 62, 8, 26, 17, 22, 29, + 24, 32, 35, 43, 13, 16, 24, 22, 62, 69, 47, + 51, 46, 44, 43, 39, 36, 35, 31, 23, 20, 16, + 10, 6, 77, 75, 74, 87, 11, 10, 7, 7, 66, 67, + 67, 4, 74, 74, 76, 86, 79, 103, 83, 11, 11, + 10, 4, 0, 68, 72, 74, 84, 74, 28, 17, 11, 2, + 5, 69, 75, 79, 87, 1, 32, 24, 19, 17, 11, 3, + 64, 67, 74, 68, 41, 30, 19, 5, 11, 64, 73, 79, + 8, 51, 43, 34, 24, 23, 4, 66, 68, 73, 62, 99, + 95, 85, 93, 92, 83, 87, 83, 80, 84, 82, 80, + 82, 82, 85, 89, 79, 81, 77, 77, 73, 71, 70, + 70, 68, 67, 69, 70, 77, 3, 4, 6, 2, 0, 4, 3, + 4, 2, 1, 1, 1, 64, 68, 72, 68, 3, 77, 6, 16, + 6, 13, 7, 10, 13, 7, 6, 4, 10, 0, 69, 72, 46, + 47, 46, 43, 41, 47, 44, 45, 45, 41, 47, 43, + 36, 29, 14, 48, 48, 45, 41, 35, 33, 22, 18, + 14, 12, 2, 65, 70, 78, 50, 51, 50, 46, 39, 41, + 37, 31, 28, 23, 19, 11, 5, 66, 75, 0, 1, 77, + 14, 13, 9, 2, 3, 2, 67, 64, 70, 72, 85, 80, + 88, 96, 0, 75, 80, 78, 73, 64, 72, 5, 13, 69, + 70, 4, 8, 4, 7, 15, 4, 2, 52, 36, 20, 7, 66, + 83, 95, 109, 115, 64, 39, 29, 24, 14, 18, 8, + 3, 1, 73, 77, 72, 0, 70, 6, 13, 66, 68, 4, 8, + 6, 7, 15, 8, 3, 52, 36, 20, 7, 66, 83, 95, + 109, 115 }, + + { + + 52, + 7, 77, 52, 7, 77, 90, 73, 18, 11, 3, 10, 19, + 42, 57, 17, 79, 67, 0, 2, 5, 2, 66, 67, 68, + 17, 11, 76, 89, 103, 67, 81, 70, 0, 2, 5, 76, + 72, 11, 10, 66, 75, 82, 2, 77, 83, 96, 6, 70, + 77, 4, 77, 76, 88, 64, 75, 71, 83, 65, 2, 22, + 0, 0, 0, 71, 91, 97, 1, 5, 65, 31, 3, 82, 75, + 67, 73, 17, 11, 70, 66, 83, 67, 82, 78, 79, + 80, 82, 84, 86, 24, 65, 64, 81, 70, 88, 79, + 86, 5, 65, 64, 71, 14, 68, 64, 76, 85, 73, 77, + 73, 65, 71, 79, 73, 64, 85, 76, 39, 28, 2, 66, + 3, 71, 65, 2, 2, 10, 3, 67, 78, 74, 71, 1, 2, + 69, 9, 9, 5, 5, 6, 7, 12, 8, 5, 5, 4, 2, 6, 8, + 78, 65, 5, 70, 11, 15, 20, 14, 5, 19, 12, 15, + 1, 3, 6, 6, 18, 89, 13, 22, 19, 31, 38, 25, + 27, 40, 39, 19, 30, 33, 24, 62, 5, 24, 15, 20, + 26, 21, 29, 31, 39, 11, 14, 20, 20, 62, 71, + 45, 49, 44, 42, 41, 37, 34, 33, 29, 21, 18, + 14, 9, 4, 79, 75, 74, 87, 10, 9, 6, 6, 67, 68, + 68, 2, 75, 75, 77, 87, 80, 102, 81, 12, 12, + 10, 4, 1, 68, 72, 73, 82, 73, 28, 17, 12, 3, + 6, 68, 74, 78, 85, 2, 33, 25, 20, 17, 12, 4, + 0, 67, 74, 68, 41, 30, 18, 5, 11, 64, 73, 78, + 8, 50, 42, 33, 23, 23, 4, 66, 68, 72, 62, 98, + 93, 83, 91, 91, 82, 85, 81, 79, 82, 80, 78, + 81, 81, 84, 88, 77, 81, 77, 76, 73, 70, 70, + 70, 68, 67, 69, 70, 78, 4, 4, 7, 2, 0, 4, 3, + 4, 2, 1, 1, 1, 64, 68, 72, 68, 3, 78, 5, 16, + 5, 12, 7, 9, 13, 7, 5, 4, 10, 64, 69, 73, 45, + 46, 45, 41, 39, 45, 42, 43, 42, 38, 44, 40, + 33, 27, 12, 44, 44, 41, 36, 32, 30, 20, 16, + 12, 10, 1, 67, 70, 79, 48, 48, 48, 44, 36, 38, + 35, 28, 26, 21, 17, 8, 3, 68, 76, 0, 0, 79, + 13, 11, 7, 0, 1, 0, 69, 65, 71, 73, 85, 81, + 89, 97, 64, 76, 81, 78, 73, 0, 71, 6, 14, 68, + 69, 4, 8, 4, 8, 16, 4, 2, 51, 34, 17, 4, 69, + 87, 99, 113, 118, 64, 39, 29, 24, 14, 18, 8, + 4, 2, 72, 77, 72, 1, 70, 7, 14, 66, 68, 4, 8, + 6, 8, 15, 8, 3, 51, 34, 17, 4, 69, 87, 99, + 113, 118 }, + + { + + 51, + 7, 78, 51, 7, 78, 88, 72, 19, 11, 3, 8, 17, + 41, 57, 17, 78, 67, 1, 2, 5, 1, 65, 67, 69, + 15, 8, 80, 92, 104, 65, 80, 70, 1, 2, 5, 77, + 72, 11, 9, 66, 75, 82, 2, 77, 82, 95, 6, 69, + 76, 4, 76, 76, 88, 64, 75, 71, 83, 65, 2, 22, + 0, 0, 0, 70, 91, 97, 1, 5, 66, 31, 3, 82, 73, + 66, 72, 18, 14, 69, 65, 81, 66, 81, 77, 77, + 80, 82, 84, 86, 24, 65, 0, 78, 70, 87, 78, 84, + 4, 65, 64, 72, 15, 68, 64, 75, 85, 73, 76, 72, + 65, 70, 78, 72, 64, 84, 75, 44, 33, 5, 0, 3, + 71, 65, 2, 2, 10, 3, 66, 78, 72, 70, 64, 0, + 66, 9, 9, 5, 5, 7, 7, 14, 9, 5, 5, 4, 2, 7, 9, + 79, 65, 5, 70, 10, 14, 19, 14, 4, 19, 12, 15, + 64, 3, 5, 5, 17, 89, 13, 22, 19, 29, 35, 24, + 25, 37, 36, 17, 28, 31, 17, 62, 1, 22, 14, 18, + 22, 19, 26, 27, 34, 8, 12, 17, 18, 62, 73, 43, + 47, 42, 39, 38, 35, 31, 31, 27, 19, 15, 12, 7, + 3, 80, 75, 74, 88, 9, 8, 5, 5, 68, 69, 69, 0, + 76, 75, 78, 88, 80, 102, 80, 13, 12, 10, 4, 2, + 67, 71, 73, 80, 72, 29, 17, 12, 4, 7, 67, 72, + 76, 83, 3, 33, 25, 20, 18, 13, 4, 0, 67, 73, + 68, 42, 30, 17, 5, 11, 64, 73, 78, 7, 50, 42, + 32, 22, 22, 4, 66, 68, 72, 62, 97, 92, 82, 90, + 89, 81, 83, 79, 78, 81, 78, 76, 81, 80, 84, + 87, 75, 80, 77, 76, 72, 70, 70, 70, 68, 68, + 69, 70, 78, 4, 5, 8, 2, 0, 5, 4, 4, 3, 2, 1, + 0, 64, 68, 72, 68, 4, 79, 4, 16, 4, 11, 6, 9, + 13, 6, 5, 4, 9, 66, 70, 74, 43, 45, 44, 40, + 37, 43, 40, 41, 40, 36, 41, 38, 30, 24, 10, + 40, 40, 37, 32, 28, 27, 17, 14, 9, 8, 64, 68, + 71, 80, 46, 46, 45, 41, 33, 36, 32, 25, 23, + 18, 14, 5, 1, 69, 78, 64, 64, 80, 11, 10, 5, + 65, 0, 65, 71, 66, 73, 74, 86, 82, 90, 98, 66, + 77, 82, 78, 72, 0, 71, 7, 15, 68, 69, 5, 9, 4, + 8, 17, 4, 2, 50, 32, 15, 1, 72, 91, 103, 117, + 121, 64, 39, 29, 24, 14, 19, 9, 4, 2, 72, 76, + 71, 1, 69, 8, 15, 65, 67, 4, 8, 6, 8, 16, 8, + 3, 50, 32, 15, 1, 72, 91, 103, 117, 121 }, + + { + + 50, + 7, 78, 50, 7, 78, 86, 70, 19, 11, 2, 7, 15, + 40, 57, 17, 76, 67, 1, 3, 4, 1, 65, 68, 71, + 14, 6, 83, 94, 106, 1, 79, 70, 1, 3, 4, 77, + 71, 11, 9, 66, 74, 81, 2, 77, 82, 95, 6, 69, + 76, 4, 76, 75, 87, 64, 75, 71, 83, 64, 2, 22, + 0, 0, 0, 70, 91, 97, 2, 4, 66, 30, 2, 82, 70, + 65, 71, 20, 16, 67, 0, 80, 64, 79, 76, 75, 80, + 81, 83, 86, 24, 65, 1, 76, 70, 86, 78, 82, 4, + 66, 65, 72, 15, 68, 0, 75, 84, 72, 76, 71, 64, + 69, 76, 70, 0, 83, 74, 49, 37, 8, 3, 3, 70, + 65, 3, 2, 10, 4, 66, 77, 70, 70, 66, 65, 0, 9, + 10, 5, 5, 7, 8, 15, 10, 6, 4, 4, 2, 7, 9, 80, + 65, 5, 71, 10, 13, 19, 13, 4, 19, 12, 15, 65, + 3, 4, 4, 17, 89, 13, 21, 18, 27, 32, 23, 23, + 35, 34, 15, 25, 29, 11, 62, 65, 20, 12, 15, + 19, 16, 23, 22, 30, 5, 10, 13, 16, 62, 74, 41, + 45, 40, 37, 36, 33, 29, 29, 25, 16, 13, 10, 5, + 1, 82, 75, 74, 88, 8, 7, 4, 3, 69, 70, 70, 64, + 77, 76, 79, 88, 81, 101, 78, 14, 13, 10, 5, 2, + 67, 71, 72, 78, 70, 29, 18, 13, 4, 8, 66, 71, + 75, 81, 3, 34, 26, 21, 18, 14, 5, 0, 66, 73, + 68, 42, 30, 17, 4, 11, 64, 73, 77, 7, 49, 41, + 31, 21, 22, 4, 65, 68, 72, 62, 95, 90, 81, 88, + 88, 80, 82, 78, 77, 79, 77, 74, 80, 79, 83, + 86, 73, 80, 77, 76, 72, 69, 70, 71, 68, 68, + 69, 70, 79, 5, 5, 9, 2, 0, 5, 4, 4, 3, 2, 1, + 0, 64, 68, 72, 68, 4, 80, 3, 16, 3, 11, 5, 8, + 13, 5, 4, 4, 9, 67, 70, 75, 42, 44, 43, 38, + 35, 41, 38, 38, 37, 33, 38, 35, 27, 22, 8, 35, + 36, 33, 27, 25, 24, 15, 12, 7, 6, 66, 70, 72, + 80, 43, 43, 43, 39, 30, 33, 30, 22, 21, 16, + 12, 2, 64, 71, 79, 65, 64, 82, 10, 8, 4, 67, + 65, 67, 72, 67, 74, 75, 87, 84, 91, 98, 67, + 79, 84, 77, 72, 1, 70, 8, 16, 68, 68, 5, 9, 4, + 9, 18, 4, 2, 49, 30, 12, 65, 76, 95, 107, 121, + 124, 0, 39, 29, 24, 14, 19, 9, 4, 2, 71, 76, + 71, 2, 69, 9, 16, 65, 67, 5, 9, 6, 8, 16, 8, + 3, 49, 30, 12, 65, 76, 95, 107, 121, 124 }, + + { + + 48, + 6, 78, 48, 6, 78, 85, 69, 19, 11, 2, 5, 12, + 39, 57, 16, 74, 68, 1, 4, 4, 0, 65, 69, 73, + 13, 3, 87, 97, 108, 4, 78, 70, 1, 4, 4, 78, + 70, 11, 8, 66, 74, 81, 1, 78, 82, 95, 6, 69, + 76, 4, 76, 75, 87, 64, 75, 71, 83, 64, 2, 22, + 0, 0, 0, 69, 92, 97, 2, 3, 66, 29, 2, 83, 68, + 64, 70, 21, 18, 66, 1, 78, 0, 78, 75, 73, 80, + 81, 83, 86, 24, 65, 2, 74, 70, 86, 77, 80, 4, + 66, 65, 73, 15, 68, 0, 74, 83, 71, 75, 71, 64, + 69, 75, 69, 0, 82, 73, 53, 41, 11, 5, 3, 70, + 65, 3, 1, 10, 4, 66, 77, 68, 70, 68, 67, 2, 9, + 10, 5, 5, 7, 8, 17, 10, 6, 4, 3, 2, 8, 10, 82, + 65, 5, 71, 9, 11, 18, 13, 3, 19, 12, 14, 66, + 3, 3, 3, 16, 89, 12, 20, 17, 25, 28, 21, 21, + 33, 31, 12, 23, 27, 4, 62, 69, 18, 10, 13, 16, + 14, 19, 18, 26, 2, 8, 10, 14, 62, 76, 39, 42, + 37, 34, 33, 30, 27, 26, 23, 14, 11, 8, 3, 64, + 84, 75, 75, 89, 7, 5, 3, 2, 70, 72, 72, 66, + 78, 76, 80, 89, 82, 101, 77, 15, 13, 10, 5, 3, + 66, 70, 72, 76, 69, 29, 18, 13, 5, 9, 65, 69, + 73, 80, 4, 34, 26, 21, 19, 15, 5, 0, 66, 72, + 69, 43, 30, 16, 4, 11, 64, 73, 77, 7, 49, 40, + 30, 20, 22, 4, 65, 68, 72, 62, 94, 89, 80, 87, + 86, 79, 80, 76, 76, 78, 75, 72, 80, 79, 83, + 85, 72, 80, 77, 76, 71, 69, 70, 71, 68, 69, + 69, 70, 79, 5, 5, 10, 2, 64, 5, 4, 3, 3, 2, 1, + 64, 64, 68, 72, 68, 5, 81, 2, 16, 1, 10, 4, 7, + 12, 4, 3, 4, 9, 68, 70, 77, 41, 42, 42, 36, + 33, 39, 36, 36, 35, 30, 35, 32, 24, 19, 6, 31, + 32, 28, 22, 21, 20, 12, 9, 4, 4, 68, 71, 73, + 81, 41, 41, 40, 36, 27, 30, 27, 19, 18, 13, 9, + 64, 66, 73, 81, 66, 65, 84, 8, 7, 2, 69, 67, + 69, 74, 69, 76, 77, 88, 85, 92, 99, 69, 80, + 85, 77, 72, 1, 70, 9, 17, 68, 68, 6, 10, 4, 9, + 18, 4, 1, 48, 28, 9, 68, 79, 99, 112, 126, + 126, 0, 39, 29, 24, 14, 20, 9, 4, 2, 71, 76, + 71, 2, 69, 9, 16, 65, 67, 5, 9, 6, 8, 17, 8, + 2, 48, 28, 9, 68, 79, 99, 112, 126, 126 }, + + { + + 47, + 6, 78, 47, 6, 78, 83, 68, 20, 11, 2, 4, 10, + 38, 58, 16, 72, 68, 2, 5, 4, 64, 65, 69, 74, + 12, 1, 91, 100, 109, 7, 77, 69, 2, 5, 4, 78, + 69, 11, 8, 65, 74, 80, 1, 78, 82, 95, 6, 69, + 75, 4, 76, 75, 87, 64, 75, 71, 82, 64, 2, 22, + 0, 0, 0, 68, 92, 97, 2, 2, 66, 28, 2, 83, 66, + 1, 69, 23, 20, 64, 2, 76, 2, 77, 73, 70, 80, + 81, 83, 85, 24, 65, 3, 72, 69, 85, 76, 78, 4, + 66, 65, 73, 15, 68, 0, 73, 82, 70, 74, 70, 0, + 68, 74, 67, 1, 80, 72, 58, 46, 15, 8, 4, 70, + 64, 4, 1, 10, 4, 65, 76, 65, 70, 70, 68, 5, 9, + 10, 5, 5, 7, 9, 19, 11, 6, 4, 3, 2, 9, 11, 83, + 64, 5, 71, 8, 10, 17, 13, 2, 19, 12, 14, 67, + 4, 2, 3, 15, 89, 12, 20, 17, 23, 25, 20, 20, + 31, 29, 10, 21, 25, 65, 62, 72, 16, 8, 11, 13, + 12, 16, 14, 22, 0, 6, 7, 12, 62, 78, 37, 40, + 35, 32, 31, 28, 25, 24, 21, 12, 9, 7, 2, 65, + 86, 75, 75, 89, 7, 4, 2, 1, 71, 73, 73, 68, + 79, 76, 81, 90, 82, 100, 76, 16, 13, 10, 5, 4, + 65, 69, 71, 73, 68, 29, 18, 13, 6, 10, 64, 67, + 71, 78, 5, 35, 27, 22, 20, 16, 5, 1, 66, 71, + 69, 44, 30, 15, 4, 12, 0, 73, 76, 7, 49, 40, + 29, 19, 22, 4, 65, 68, 71, 62, 93, 88, 78, 85, + 84, 78, 78, 74, 75, 76, 73, 70, 79, 78, 82, + 84, 70, 79, 76, 75, 70, 68, 70, 71, 68, 70, + 69, 70, 79, 5, 6, 11, 3, 64, 6, 4, 3, 3, 2, 1, + 65, 64, 67, 71, 68, 6, 81, 1, 16, 0, 9, 4, 7, + 12, 4, 2, 4, 9, 69, 70, 78, 40, 41, 42, 35, + 31, 37, 34, 34, 33, 28, 32, 29, 21, 16, 4, 27, + 28, 24, 17, 18, 17, 9, 7, 2, 3, 69, 72, 73, + 82, 39, 39, 38, 34, 25, 28, 25, 16, 16, 11, 7, + 66, 68, 75, 83, 66, 66, 85, 7, 6, 0, 71, 68, + 70, 76, 70, 78, 78, 88, 86, 92, 100, 71, 81, + 86, 77, 71, 2, 70, 10, 19, 67, 67, 7, 11, 4, + 10, 19, 4, 1, 47, 26, 7, 71, 82, 103, 116, + 126, 126, 0, 39, 29, 25, 15, 21, 10, 5, 3, 71, + 76, 71, 2, 68, 10, 17, 65, 66, 5, 9, 6, 9, 18, + 8, 2, 47, 26, 7, 71, 82, 103, 116, 126, 126 }, + + { + + 46, + 6, 78, 46, 6, 78, 81, 66, 20, 11, 1, 3, 8, 37, + 58, 16, 70, 68, 2, 6, 3, 64, 65, 70, 76, 11, + 65, 94, 102, 111, 10, 76, 69, 2, 6, 3, 78, 68, + 11, 7, 65, 73, 79, 1, 78, 82, 95, 6, 69, 75, + 4, 76, 74, 86, 64, 75, 71, 82, 0, 2, 22, 0, 0, + 0, 68, 92, 97, 3, 1, 66, 27, 1, 83, 0, 2, 68, + 25, 22, 0, 4, 75, 3, 75, 72, 68, 80, 80, 82, + 85, 24, 65, 4, 70, 69, 84, 76, 76, 4, 67, 66, + 74, 15, 68, 1, 73, 81, 69, 74, 69, 0, 67, 72, + 66, 2, 79, 71, 62, 50, 18, 11, 4, 69, 64, 4, + 1, 10, 5, 65, 76, 0, 70, 72, 70, 8, 9, 11, 5, + 5, 7, 9, 20, 12, 7, 3, 3, 2, 9, 11, 84, 64, 5, + 72, 8, 9, 17, 12, 2, 19, 12, 14, 68, 4, 1, 2, + 15, 89, 12, 19, 16, 21, 22, 19, 18, 29, 27, 8, + 18, 23, 71, 62, 76, 14, 6, 8, 10, 9, 13, 9, + 18, 66, 4, 3, 10, 62, 79, 35, 38, 33, 30, 29, + 26, 23, 22, 19, 9, 7, 5, 0, 67, 88, 75, 75, + 90, 6, 3, 1, 64, 72, 74, 74, 69, 80, 77, 82, + 90, 83, 99, 74, 17, 14, 10, 6, 4, 65, 69, 70, + 71, 66, 29, 19, 14, 6, 11, 0, 66, 70, 76, 5, + 36, 28, 23, 20, 17, 6, 1, 65, 71, 69, 44, 30, + 15, 3, 12, 0, 73, 76, 7, 48, 39, 28, 18, 22, + 4, 64, 68, 71, 62, 91, 86, 77, 83, 83, 77, 77, + 73, 74, 74, 72, 68, 78, 77, 82, 83, 68, 79, + 76, 75, 70, 68, 70, 72, 68, 70, 69, 70, 80, 6, + 6, 12, 3, 64, 6, 4, 3, 3, 2, 1, 65, 64, 67, + 71, 68, 6, 82, 0, 16, 64, 9, 3, 6, 12, 3, 1, + 4, 9, 70, 70, 79, 39, 40, 41, 33, 29, 35, 32, + 31, 30, 25, 29, 26, 18, 14, 2, 22, 24, 20, 12, + 15, 14, 7, 5, 64, 1, 71, 74, 74, 82, 36, 36, + 35, 32, 22, 25, 22, 13, 14, 8, 5, 69, 70, 77, + 84, 67, 66, 87, 6, 4, 64, 73, 70, 72, 77, 71, + 79, 79, 89, 88, 93, 100, 72, 83, 88, 76, 71, + 3, 69, 11, 20, 67, 66, 7, 11, 4, 10, 20, 4, 1, + 46, 24, 4, 74, 86, 107, 120, 126, 126, 1, 39, + 29, 25, 15, 21, 10, 5, 3, 70, 76, 71, 3, 68, + 11, 18, 65, 66, 6, 10, 6, 9, 18, 8, 2, 46, 24, + 4, 74, 86, 107, 120, 126, 126 }, + + { + + 45, + 6, 79, 45, 6, 79, 79, 65, 21, 11, 1, 1, 6, 36, + 58, 16, 69, 68, 3, 6, 3, 65, 64, 70, 77, 9, + 67, 98, 105, 112, 12, 75, 69, 3, 6, 3, 79, 68, + 11, 7, 65, 73, 79, 1, 78, 81, 94, 6, 68, 74, + 4, 75, 74, 86, 64, 75, 71, 82, 0, 2, 22, 0, 0, + 0, 67, 92, 97, 3, 1, 67, 27, 1, 83, 2, 3, 67, + 26, 25, 2, 5, 73, 5, 74, 71, 66, 80, 80, 82, + 85, 24, 65, 5, 67, 69, 83, 75, 74, 3, 67, 66, + 74, 16, 68, 1, 72, 81, 69, 73, 68, 1, 66, 71, + 64, 2, 78, 70, 62, 55, 21, 14, 4, 69, 64, 5, + 1, 10, 5, 64, 75, 2, 69, 74, 72, 11, 9, 11, 5, + 5, 8, 10, 22, 13, 7, 3, 3, 2, 10, 12, 85, 64, + 5, 72, 7, 8, 16, 12, 1, 19, 12, 14, 70, 4, 0, + 1, 14, 89, 12, 19, 16, 19, 19, 18, 16, 26, 24, + 6, 16, 21, 78, 62, 79, 12, 5, 6, 6, 7, 10, 5, + 13, 69, 2, 0, 8, 62, 81, 33, 36, 31, 27, 26, + 24, 20, 20, 17, 7, 4, 3, 65, 68, 89, 75, 75, + 90, 5, 2, 0, 65, 73, 75, 75, 71, 81, 77, 83, + 91, 83, 99, 73, 18, 14, 10, 6, 5, 64, 68, 70, + 69, 65, 30, 19, 14, 7, 12, 1, 64, 68, 74, 6, + 36, 28, 23, 21, 18, 6, 1, 65, 70, 69, 45, 30, + 14, 3, 12, 0, 73, 75, 6, 48, 39, 27, 17, 21, + 4, 64, 68, 71, 62, 90, 85, 76, 82, 81, 76, 75, + 71, 73, 73, 70, 66, 78, 76, 81, 82, 66, 78, + 76, 75, 69, 67, 70, 72, 68, 71, 69, 70, 80, 6, + 7, 13, 3, 64, 7, 5, 3, 4, 3, 1, 66, 64, 67, + 71, 68, 7, 83, 64, 16, 65, 8, 2, 6, 12, 2, 1, + 4, 8, 72, 71, 80, 37, 39, 40, 32, 27, 33, 30, + 29, 28, 23, 26, 24, 15, 11, 0, 18, 20, 16, 8, + 11, 11, 4, 3, 66, 64, 73, 75, 75, 83, 34, 34, + 33, 29, 19, 23, 20, 10, 11, 6, 2, 72, 72, 78, + 86, 68, 67, 88, 4, 3, 66, 75, 71, 74, 79, 72, + 81, 80, 90, 89, 94, 101, 74, 84, 89, 76, 70, + 3, 69, 12, 21, 67, 66, 8, 12, 4, 11, 21, 4, 1, + 45, 22, 2, 77, 89, 111, 124, 126, 126, 1, 39, + 29, 25, 15, 22, 11, 5, 3, 70, 75, 70, 3, 67, + 12, 19, 64, 65, 6, 10, 6, 9, 19, 8, 2, 45, 22, + 2, 77, 89, 111, 124, 126, 126 }, + + { + + 43, + 6, 79, 43, 6, 79, 78, 0, 21, 11, 0, 0, 4, 35, + 58, 15, 67, 68, 3, 7, 3, 65, 64, 71, 79, 8, + 70, 101, 107, 114, 15, 74, 69, 3, 7, 3, 79, + 67, 11, 6, 65, 73, 78, 1, 78, 81, 94, 6, 68, + 74, 4, 75, 73, 86, 64, 75, 71, 82, 0, 2, 22, + 0, 0, 0, 67, 93, 97, 4, 0, 67, 26, 0, 83, 5, + 4, 66, 28, 27, 3, 7, 71, 6, 73, 70, 64, 80, + 80, 81, 85, 24, 65, 6, 65, 69, 83, 75, 72, 3, + 68, 67, 75, 16, 68, 2, 72, 80, 68, 73, 67, 1, + 66, 69, 0, 3, 77, 69, 62, 59, 24, 17, 4, 69, + 64, 5, 1, 10, 6, 64, 75, 4, 69, 76, 74, 13, 9, + 11, 5, 5, 8, 10, 23, 14, 7, 3, 3, 2, 10, 13, + 86, 64, 5, 73, 7, 7, 16, 12, 1, 19, 12, 14, + 71, 4, 64, 0, 14, 89, 11, 18, 15, 17, 15, 17, + 14, 24, 22, 4, 13, 19, 84, 62, 83, 10, 3, 4, + 3, 4, 6, 1, 9, 72, 0, 67, 6, 62, 83, 31, 34, + 28, 25, 24, 22, 18, 18, 15, 5, 2, 1, 67, 70, + 91, 75, 75, 91, 4, 1, 64, 66, 74, 77, 76, 73, + 82, 78, 84, 92, 84, 98, 71, 19, 15, 10, 6, 6, + 64, 68, 69, 67, 64, 30, 19, 15, 8, 13, 2, 0, + 67, 73, 7, 37, 29, 24, 21, 19, 7, 1, 65, 70, + 69, 45, 30, 13, 3, 12, 0, 73, 75, 6, 47, 38, + 26, 16, 21, 4, 64, 68, 71, 62, 89, 83, 75, 80, + 80, 75, 73, 69, 72, 71, 68, 64, 77, 75, 81, + 81, 65, 78, 76, 75, 69, 67, 70, 72, 68, 71, + 69, 70, 81, 7, 7, 14, 3, 64, 7, 5, 3, 4, 3, 1, + 66, 64, 67, 71, 68, 7, 84, 65, 16, 66, 7, 1, + 5, 12, 1, 0, 4, 8, 73, 71, 81, 36, 38, 39, 30, + 25, 31, 28, 27, 25, 20, 23, 21, 12, 9, 65, 14, + 16, 12, 3, 8, 7, 2, 0, 69, 66, 75, 77, 76, 84, + 32, 31, 30, 27, 16, 20, 17, 7, 9, 3, 0, 75, + 74, 80, 87, 69, 68, 90, 3, 1, 68, 77, 73, 76, + 81, 73, 82, 81, 91, 90, 95, 102, 75, 85, 90, + 76, 70, 4, 68, 13, 22, 67, 65, 8, 12, 4, 11, + 22, 4, 1, 44, 20, 64, 80, 92, 115, 126, 126, + 126, 1, 39, 29, 25, 15, 22, 11, 5, 3, 69, 75, + 70, 4, 67, 12, 20, 64, 65, 6, 10, 6, 9, 19, 8, + 2, 44, 20, 64, 80, 92, 115, 126, 126, 126 }, + + { + + 42, + 6, 79, 42, 6, 79, 76, 1, 21, 11, 0, 64, 2, 34, + 58, 15, 65, 68, 3, 8, 2, 66, 64, 72, 81, 7, + 72, 105, 110, 116, 18, 73, 68, 3, 8, 2, 79, + 66, 11, 6, 65, 72, 77, 1, 78, 81, 94, 6, 68, + 74, 4, 75, 73, 85, 64, 75, 71, 82, 1, 2, 22, + 0, 0, 0, 66, 93, 97, 4, 64, 67, 25, 0, 83, 7, + 5, 65, 30, 29, 5, 8, 70, 8, 71, 69, 2, 80, 79, + 81, 84, 24, 65, 7, 0, 69, 82, 74, 70, 3, 68, + 67, 75, 16, 68, 2, 71, 79, 67, 72, 66, 2, 65, + 68, 2, 4, 75, 68, 62, 62, 27, 20, 5, 68, 0, 6, + 1, 10, 6, 64, 74, 6, 69, 78, 76, 16, 9, 12, 5, + 5, 8, 11, 25, 15, 8, 2, 3, 2, 11, 13, 87, 0, + 5, 73, 6, 6, 15, 11, 0, 19, 12, 14, 72, 5, 65, + 0, 13, 89, 11, 17, 14, 15, 12, 16, 13, 22, 20, + 2, 11, 17, 90, 62, 86, 8, 1, 1, 0, 2, 3, 67, + 5, 74, 65, 70, 4, 62, 84, 29, 32, 26, 23, 22, + 20, 16, 16, 13, 2, 0, 64, 68, 72, 93, 75, 75, + 91, 3, 0, 65, 68, 75, 78, 77, 74, 83, 78, 85, + 92, 85, 97, 70, 20, 15, 10, 7, 6, 0, 67, 68, + 65, 1, 30, 20, 15, 8, 14, 3, 2, 65, 71, 7, 38, + 30, 25, 22, 20, 7, 2, 64, 69, 69, 46, 30, 13, + 2, 12, 0, 73, 74, 6, 47, 37, 25, 15, 21, 4, 0, + 68, 70, 62, 87, 82, 73, 78, 78, 74, 72, 68, + 71, 69, 67, 1, 76, 74, 80, 80, 0, 78, 76, 74, + 68, 66, 70, 73, 68, 72, 69, 70, 81, 7, 7, 15, + 3, 64, 7, 5, 3, 4, 3, 1, 67, 64, 67, 71, 68, + 8, 85, 66, 16, 67, 7, 1, 4, 12, 1, 64, 4, 8, + 74, 71, 82, 35, 37, 38, 28, 23, 29, 26, 24, + 23, 17, 20, 18, 9, 6, 67, 9, 12, 8, 65, 5, 4, + 64, 65, 71, 68, 76, 78, 76, 84, 29, 29, 28, + 25, 13, 17, 15, 4, 7, 1, 65, 78, 76, 82, 89, + 69, 68, 92, 2, 0, 69, 79, 75, 78, 82, 74, 84, + 82, 91, 92, 96, 102, 77, 87, 92, 75, 70, 5, + 68, 14, 23, 66, 64, 9, 13, 4, 12, 23, 4, 1, + 43, 18, 67, 83, 96, 119, 126, 126, 126, 2, 39, + 29, 25, 15, 23, 11, 6, 4, 69, 75, 70, 4, 67, + 13, 21, 64, 65, 7, 11, 6, 10, 20, 8, 2, 43, + 18, 67, 83, 96, 119, 126, 126, 126 }, + + { + + 41, + 6, 79, 41, 6, 79, 74, 3, 22, 11, 64, 66, 0, + 33, 58, 15, 0, 68, 4, 9, 2, 66, 64, 72, 82, 6, + 75, 108, 112, 117, 21, 72, 68, 4, 9, 2, 80, + 65, 11, 5, 65, 72, 77, 1, 78, 81, 94, 6, 68, + 73, 4, 75, 72, 85, 64, 75, 71, 82, 1, 2, 22, + 0, 0, 0, 66, 93, 97, 5, 65, 67, 24, 64, 83, + 10, 6, 64, 31, 31, 6, 10, 68, 9, 70, 68, 4, + 80, 79, 80, 84, 24, 65, 8, 2, 69, 81, 74, 68, + 3, 69, 68, 76, 16, 68, 3, 71, 78, 66, 72, 65, + 2, 64, 66, 3, 4, 74, 67, 62, 62, 30, 23, 5, + 68, 0, 6, 1, 10, 7, 0, 74, 8, 69, 80, 78, 19, + 9, 12, 5, 5, 8, 11, 26, 16, 8, 2, 3, 2, 11, + 14, 88, 0, 5, 74, 6, 5, 15, 11, 0, 19, 12, 14, + 73, 5, 66, 64, 13, 89, 11, 17, 14, 13, 9, 15, + 11, 20, 17, 0, 8, 15, 97, 62, 90, 6, 64, 64, + 66, 64, 0, 71, 1, 77, 67, 74, 2, 62, 86, 27, + 30, 24, 20, 19, 18, 14, 14, 11, 0, 65, 66, 70, + 73, 95, 75, 75, 92, 2, 64, 66, 69, 76, 79, 78, + 76, 84, 79, 86, 93, 85, 97, 68, 21, 16, 10, 7, + 7, 0, 67, 68, 0, 2, 30, 20, 16, 9, 15, 4, 3, + 64, 69, 8, 38, 30, 25, 22, 21, 8, 2, 64, 69, + 69, 46, 30, 12, 2, 12, 0, 73, 74, 6, 46, 37, + 24, 14, 21, 4, 0, 68, 70, 62, 86, 80, 72, 77, + 77, 73, 70, 66, 70, 68, 65, 3, 76, 73, 80, 79, + 2, 77, 76, 74, 68, 66, 70, 73, 68, 72, 69, 70, + 82, 8, 8, 16, 3, 64, 8, 5, 3, 4, 3, 1, 67, 64, + 67, 71, 68, 8, 86, 67, 16, 68, 6, 0, 4, 12, 0, + 65, 4, 8, 75, 71, 83, 34, 36, 37, 27, 21, 27, + 24, 22, 20, 15, 17, 15, 6, 4, 69, 5, 8, 4, 70, + 1, 1, 66, 67, 74, 70, 78, 80, 77, 85, 27, 26, + 25, 22, 10, 15, 12, 1, 4, 65, 68, 81, 78, 84, + 90, 70, 69, 93, 0, 65, 71, 81, 76, 80, 84, 75, + 85, 83, 92, 93, 97, 103, 78, 88, 93, 75, 69, + 5, 67, 15, 24, 66, 64, 9, 13, 4, 12, 24, 4, 1, + 42, 16, 69, 86, 99, 123, 126, 126, 126, 2, 39, + 29, 25, 15, 23, 12, 6, 4, 68, 75, 70, 5, 66, + 14, 22, 64, 64, 7, 11, 6, 10, 20, 8, 2, 42, + 16, 69, 86, 99, 123, 126, 126, 126 }, + + { + + 40, + 6, 79, 40, 6, 79, 72, 4, 22, 11, 64, 67, 65, + 32, 58, 15, 2, 68, 4, 10, 2, 67, 64, 73, 84, + 5, 77, 112, 115, 119, 24, 71, 68, 4, 10, 2, + 80, 64, 11, 5, 65, 72, 76, 1, 78, 81, 94, 6, + 68, 73, 4, 75, 72, 85, 64, 75, 71, 82, 1, 2, + 22, 0, 0, 0, 65, 93, 97, 5, 66, 67, 23, 64, + 83, 12, 7, 0, 33, 33, 8, 11, 66, 11, 69, 67, + 6, 80, 79, 80, 84, 24, 65, 9, 4, 69, 80, 73, + 66, 3, 69, 68, 76, 16, 68, 3, 70, 77, 65, 71, + 64, 3, 0, 65, 5, 5, 73, 66, 62, 62, 33, 26, 5, + 68, 0, 7, 1, 10, 7, 0, 73, 10, 69, 82, 80, 22, + 9, 12, 5, 5, 8, 12, 28, 17, 8, 2, 3, 2, 12, + 15, 89, 0, 5, 74, 5, 4, 14, 11, 64, 19, 12, + 14, 74, 5, 67, 65, 12, 89, 11, 16, 13, 11, 6, + 14, 9, 18, 15, 65, 6, 13, 103, 62, 93, 4, 66, + 66, 69, 66, 66, 75, 66, 80, 69, 77, 0, 62, 88, + 25, 28, 22, 18, 17, 16, 12, 12, 9, 65, 67, 68, + 72, 75, 97, 75, 75, 92, 1, 65, 67, 70, 77, 80, + 79, 78, 85, 79, 87, 94, 86, 96, 67, 22, 16, + 10, 7, 8, 1, 66, 67, 2, 3, 30, 20, 16, 10, 16, + 5, 5, 1, 67, 9, 39, 31, 26, 23, 22, 8, 2, 64, + 68, 69, 47, 30, 11, 2, 12, 0, 73, 73, 6, 46, + 36, 23, 13, 21, 4, 0, 68, 70, 62, 85, 79, 71, + 75, 75, 72, 68, 64, 69, 66, 0, 5, 75, 72, 79, + 78, 4, 77, 76, 74, 67, 65, 70, 73, 68, 73, 69, + 70, 82, 8, 8, 17, 3, 64, 8, 5, 3, 4, 3, 1, 68, + 64, 67, 71, 68, 9, 87, 68, 16, 69, 5, 64, 3, + 12, 64, 66, 4, 8, 76, 71, 84, 33, 35, 36, 25, + 19, 25, 22, 20, 18, 12, 14, 12, 3, 1, 71, 1, + 4, 0, 75, 65, 65, 69, 69, 76, 72, 80, 81, 78, + 86, 25, 24, 23, 20, 7, 12, 10, 65, 2, 67, 70, + 84, 80, 86, 92, 71, 70, 95, 64, 66, 73, 83, + 78, 82, 86, 76, 87, 84, 93, 94, 98, 104, 80, + 89, 94, 75, 69, 6, 67, 16, 25, 66, 0, 10, 14, + 4, 13, 25, 4, 1, 41, 14, 72, 89, 102, 126, + 126, 126, 126, 2, 39, 29, 25, 15, 24, 12, 6, + 4, 68, 75, 70, 5, 66, 15, 23, 64, 64, 7, 11, + 6, 10, 21, 8, 2, 41, 14, 72, 89, 102, 126, + 126, 126, 126 }, + + { + + 38, + 5, 80, 38, 5, 80, 71, 5, 22, 11, 65, 69, 68, + 31, 58, 14, 3, 69, 4, 10, 1, 68, 64, 74, 86, + 3, 80, 116, 118, 121, 26, 71, 68, 4, 10, 1, + 81, 64, 11, 4, 65, 72, 76, 0, 79, 81, 94, 5, + 68, 73, 4, 75, 72, 85, 64, 75, 72, 82, 1, 2, + 22, 0, 0, 0, 65, 94, 97, 5, 67, 68, 22, 65, + 84, 14, 8, 1, 34, 35, 9, 12, 65, 12, 68, 66, + 8, 80, 79, 80, 84, 24, 65, 9, 6, 69, 80, 73, + 65, 2, 70, 69, 77, 16, 68, 3, 70, 77, 65, 71, + 64, 3, 0, 64, 6, 5, 72, 65, 62, 62, 36, 28, 5, + 68, 0, 7, 0, 10, 7, 0, 73, 12, 69, 84, 82, 24, + 9, 12, 5, 5, 8, 12, 29, 17, 8, 1, 2, 2, 12, + 15, 91, 0, 5, 75, 4, 2, 13, 10, 65, 19, 12, + 13, 76, 5, 68, 66, 11, 89, 10, 15, 12, 8, 2, + 12, 7, 15, 12, 68, 3, 11, 110, 62, 97, 1, 68, + 69, 73, 69, 70, 80, 71, 83, 71, 81, 65, 62, + 90, 22, 25, 19, 15, 14, 13, 9, 9, 7, 68, 70, + 70, 74, 77, 99, 75, 76, 93, 0, 67, 69, 72, 79, + 82, 81, 80, 86, 80, 88, 95, 87, 96, 66, 22, + 16, 10, 7, 8, 1, 66, 67, 4, 4, 30, 20, 16, 10, + 16, 6, 6, 2, 66, 9, 39, 31, 26, 23, 23, 8, 2, + 64, 68, 70, 47, 29, 10, 1, 12, 0, 73, 73, 5, + 45, 35, 21, 12, 20, 4, 0, 68, 70, 62, 84, 78, + 70, 74, 74, 71, 67, 0, 68, 65, 1, 7, 75, 72, + 79, 77, 5, 77, 76, 74, 67, 65, 70, 74, 69, 74, + 69, 71, 83, 8, 8, 18, 3, 65, 8, 5, 2, 4, 3, 1, + 69, 64, 67, 71, 68, 9, 88, 69, 16, 71, 4, 65, + 2, 11, 65, 67, 4, 7, 78, 72, 86, 31, 33, 35, + 23, 17, 22, 19, 17, 15, 9, 11, 9, 64, 65, 73, + 67, 0, 68, 80, 69, 69, 72, 72, 79, 74, 82, 83, + 79, 87, 22, 21, 20, 17, 4, 9, 7, 69, 64, 70, + 73, 87, 82, 88, 94, 72, 71, 97, 66, 68, 75, + 86, 80, 84, 88, 78, 89, 86, 94, 96, 99, 105, + 82, 91, 96, 75, 69, 6, 67, 17, 26, 66, 0, 10, + 14, 4, 13, 25, 4, 0, 39, 12, 75, 93, 106, 126, + 126, 126, 126, 2, 39, 29, 25, 15, 24, 12, 6, + 4, 68, 75, 70, 5, 66, 15, 23, 64, 64, 7, 11, + 6, 10, 21, 7, 1, 39, 12, 75, 93, 106, 126, + 126, 126, 126 }, + + { + + 37, + 5, 80, 37, 5, 80, 69, 7, 23, 12, 65, 70, 70, + 30, 59, 14, 5, 69, 5, 11, 1, 68, 0, 74, 87, 2, + 82, 119, 120, 122, 29, 70, 67, 5, 11, 1, 81, + 0, 11, 4, 64, 71, 75, 0, 79, 80, 93, 5, 67, + 72, 4, 74, 71, 84, 0, 74, 72, 81, 2, 2, 22, 0, + 0, 0, 64, 94, 97, 6, 67, 68, 22, 65, 84, 17, + 10, 3, 36, 38, 11, 14, 0, 14, 66, 64, 11, 80, + 78, 79, 83, 24, 65, 10, 9, 68, 79, 72, 0, 2, + 70, 69, 77, 17, 68, 4, 69, 76, 64, 70, 0, 4, + 1, 1, 8, 6, 70, 0, 62, 62, 40, 31, 6, 67, 1, + 8, 0, 11, 8, 1, 72, 15, 68, 86, 83, 27, 9, 13, + 5, 6, 9, 13, 31, 18, 9, 1, 2, 2, 13, 16, 92, + 1, 5, 75, 4, 1, 13, 10, 65, 19, 12, 13, 77, 6, + 68, 66, 11, 89, 10, 15, 12, 6, 64, 11, 6, 13, + 10, 70, 1, 9, 116, 62, 100, 64, 69, 71, 76, + 71, 73, 84, 75, 85, 73, 84, 67, 62, 91, 20, + 23, 17, 13, 12, 11, 7, 7, 5, 70, 72, 71, 75, + 78, 100, 75, 76, 93, 0, 68, 70, 73, 80, 83, + 82, 81, 87, 80, 89, 95, 87, 95, 64, 23, 17, + 10, 8, 9, 2, 65, 66, 7, 6, 31, 21, 17, 11, 17, + 8, 8, 4, 64, 10, 40, 32, 27, 24, 24, 9, 3, 0, + 67, 70, 48, 29, 10, 1, 13, 1, 73, 72, 5, 45, + 35, 20, 11, 20, 5, 1, 67, 69, 62, 82, 76, 68, + 72, 72, 69, 65, 2, 66, 0, 3, 10, 74, 71, 78, + 75, 7, 76, 75, 73, 66, 64, 69, 74, 69, 74, 69, + 71, 83, 9, 9, 19, 4, 65, 9, 6, 2, 5, 4, 1, 69, + 0, 66, 70, 67, 10, 88, 70, 16, 72, 4, 65, 2, + 11, 65, 67, 4, 7, 79, 72, 87, 30, 32, 35, 22, + 16, 20, 17, 15, 13, 7, 9, 7, 67, 67, 75, 71, + 66, 72, 84, 72, 72, 74, 74, 81, 75, 83, 84, + 79, 87, 20, 19, 18, 15, 2, 7, 5, 72, 66, 72, + 75, 89, 83, 89, 95, 72, 71, 98, 67, 69, 76, + 88, 81, 85, 89, 79, 90, 87, 94, 97, 99, 105, + 83, 92, 97, 74, 68, 7, 66, 19, 28, 65, 1, 11, + 15, 5, 14, 26, 4, 0, 38, 10, 77, 96, 109, 126, + 126, 126, 126, 3, 39, 30, 26, 16, 25, 13, 7, + 5, 67, 74, 69, 6, 65, 16, 24, 0, 0, 8, 12, 6, + 11, 22, 7, 1, 38, 10, 77, 96, 109, 126, 126, + 126, 126 }, + + { + + 36, + 5, 80, 36, 5, 80, 67, 8, 23, 12, 65, 71, 72, + 29, 59, 14, 7, 69, 5, 12, 1, 69, 0, 75, 89, 1, + 85, 123, 123, 124, 32, 69, 67, 5, 12, 1, 81, + 1, 11, 3, 64, 71, 74, 0, 79, 80, 93, 5, 67, + 72, 4, 74, 71, 84, 0, 74, 72, 81, 2, 2, 22, 0, + 0, 0, 0, 94, 97, 6, 68, 68, 21, 65, 84, 19, + 11, 4, 38, 40, 12, 15, 2, 15, 65, 0, 13, 80, + 78, 79, 83, 24, 65, 11, 11, 68, 78, 71, 2, 2, + 70, 69, 78, 17, 68, 4, 68, 75, 0, 69, 1, 4, 2, + 2, 9, 7, 69, 1, 62, 62, 43, 34, 6, 67, 1, 8, + 0, 11, 8, 1, 72, 17, 68, 88, 85, 30, 9, 13, 5, + 6, 9, 13, 33, 19, 9, 1, 2, 2, 14, 17, 93, 1, + 5, 75, 3, 0, 12, 10, 66, 19, 12, 13, 78, 6, + 69, 67, 10, 89, 10, 14, 11, 4, 67, 10, 4, 11, + 8, 72, 64, 7, 122, 62, 104, 66, 71, 73, 79, + 73, 76, 88, 79, 88, 75, 87, 69, 62, 93, 18, + 21, 15, 11, 10, 9, 5, 5, 3, 72, 74, 73, 77, + 80, 102, 75, 76, 94, 64, 69, 71, 74, 81, 84, + 83, 83, 88, 80, 90, 96, 88, 94, 0, 24, 17, 10, + 8, 10, 3, 64, 65, 9, 7, 31, 21, 17, 12, 18, 9, + 10, 6, 1, 11, 41, 33, 28, 25, 25, 9, 3, 0, 66, + 70, 49, 29, 9, 1, 13, 1, 73, 72, 5, 45, 34, + 19, 10, 20, 5, 1, 67, 69, 62, 81, 75, 67, 70, + 70, 68, 0, 4, 65, 2, 5, 12, 73, 70, 78, 74, 9, + 76, 75, 73, 65, 64, 69, 74, 69, 75, 69, 71, + 83, 9, 9, 20, 4, 65, 9, 6, 2, 5, 4, 1, 70, 0, + 66, 70, 67, 11, 89, 71, 16, 73, 3, 66, 1, 11, + 66, 68, 4, 7, 80, 72, 88, 29, 31, 34, 20, 14, + 18, 15, 13, 11, 4, 6, 4, 70, 70, 77, 75, 70, + 76, 89, 75, 75, 77, 76, 84, 77, 85, 85, 80, + 88, 18, 17, 15, 13, 64, 4, 2, 75, 68, 75, 77, + 92, 85, 91, 97, 73, 72, 100, 68, 70, 78, 90, + 83, 87, 91, 80, 92, 88, 95, 98, 100, 106, 85, + 93, 98, 74, 68, 8, 66, 20, 29, 65, 2, 12, 16, + 5, 14, 27, 4, 0, 37, 8, 80, 99, 112, 126, 126, + 126, 126, 3, 39, 30, 26, 16, 26, 13, 7, 5, 67, + 74, 69, 6, 65, 17, 25, 0, 0, 8, 12, 6, 11, 23, + 7, 1, 37, 8, 80, 99, 112, 126, 126, 126, 126 }, + + { + + 35, + 5, 80, 35, 5, 80, 65, 10, 24, 12, 66, 73, 74, + 28, 59, 14, 9, 69, 6, 13, 1, 69, 0, 75, 90, 0, + 87, 126, 125, 125, 35, 68, 67, 6, 13, 1, 82, + 2, 11, 3, 64, 71, 74, 0, 79, 80, 93, 5, 67, + 71, 4, 74, 70, 84, 0, 74, 72, 81, 2, 2, 22, 0, + 0, 0, 0, 94, 97, 7, 69, 68, 20, 66, 84, 22, + 12, 5, 39, 42, 14, 17, 4, 17, 64, 1, 15, 80, + 78, 78, 83, 24, 65, 12, 13, 68, 77, 71, 4, 2, + 71, 70, 78, 17, 68, 5, 68, 74, 1, 69, 2, 5, 3, + 4, 11, 7, 68, 2, 62, 62, 46, 37, 6, 67, 1, 9, + 0, 11, 9, 2, 71, 19, 68, 90, 87, 33, 9, 13, 5, + 6, 9, 14, 34, 20, 9, 1, 2, 2, 14, 18, 94, 1, + 5, 76, 3, 64, 12, 10, 66, 19, 12, 13, 79, 6, + 70, 68, 10, 89, 10, 14, 11, 2, 70, 9, 2, 9, 5, + 74, 67, 5, 126, 62, 107, 68, 73, 75, 82, 76, + 79, 92, 83, 91, 77, 91, 71, 62, 95, 16, 19, + 13, 8, 7, 7, 3, 3, 1, 74, 76, 75, 79, 81, 104, + 75, 76, 94, 65, 70, 72, 75, 82, 85, 84, 85, + 89, 81, 91, 97, 88, 94, 2, 25, 18, 10, 8, 11, + 3, 64, 65, 11, 8, 31, 21, 18, 13, 19, 10, 11, + 7, 3, 12, 41, 33, 28, 25, 26, 10, 3, 0, 66, + 70, 49, 29, 8, 1, 13, 1, 73, 71, 5, 44, 34, + 18, 9, 20, 5, 1, 67, 69, 62, 80, 73, 66, 69, + 69, 67, 2, 6, 64, 3, 7, 14, 73, 69, 77, 73, + 11, 75, 75, 73, 65, 0, 69, 74, 69, 75, 69, 71, + 84, 10, 10, 21, 4, 65, 10, 6, 2, 5, 4, 1, 70, + 0, 66, 70, 67, 11, 90, 72, 16, 74, 2, 67, 1, + 11, 67, 69, 4, 7, 81, 72, 89, 28, 30, 33, 19, + 12, 16, 13, 11, 8, 2, 3, 1, 73, 72, 79, 79, + 74, 80, 94, 79, 78, 79, 78, 86, 79, 87, 87, + 81, 89, 16, 14, 13, 10, 67, 2, 0, 78, 71, 77, + 80, 95, 87, 93, 98, 74, 73, 101, 70, 72, 80, + 92, 84, 89, 93, 81, 93, 89, 96, 99, 101, 107, + 86, 94, 99, 74, 67, 8, 65, 21, 30, 65, 2, 12, + 16, 5, 15, 28, 4, 0, 36, 6, 82, 102, 115, 126, + 126, 126, 126, 3, 39, 30, 26, 16, 26, 14, 7, + 5, 66, 74, 69, 7, 64, 18, 26, 0, 1, 8, 12, 6, + 11, 23, 7, 1, 36, 6, 82, 102, 115, 126, 126, + 126, 126 }, + + { + + 33, + 5, 80, 33, 5, 80, 64, 11, 24, 12, 66, 74, 76, + 27, 59, 13, 11, 69, 6, 14, 0, 70, 0, 76, 92, + 64, 90, 126, 126, 126, 38, 67, 67, 6, 14, 0, + 82, 3, 11, 2, 64, 70, 73, 0, 79, 80, 93, 5, + 67, 71, 4, 74, 70, 83, 0, 74, 72, 81, 3, 2, + 22, 0, 0, 0, 1, 95, 97, 7, 70, 68, 19, 66, 84, + 24, 13, 6, 41, 44, 15, 18, 5, 18, 1, 2, 17, + 80, 77, 78, 83, 24, 65, 13, 15, 68, 77, 70, 6, + 2, 71, 70, 79, 17, 68, 5, 67, 73, 2, 68, 3, 5, + 3, 5, 12, 8, 67, 3, 62, 62, 49, 40, 6, 66, 1, + 9, 0, 11, 9, 2, 71, 21, 68, 92, 89, 35, 9, 14, + 5, 6, 9, 14, 36, 21, 10, 0, 2, 2, 15, 18, 95, + 1, 5, 76, 2, 65, 11, 9, 67, 19, 12, 13, 80, 6, + 71, 69, 9, 89, 9, 13, 10, 0, 74, 8, 0, 7, 3, + 76, 69, 3, 126, 62, 111, 70, 75, 78, 85, 78, + 83, 97, 87, 94, 79, 94, 73, 62, 96, 14, 17, + 10, 6, 5, 5, 1, 1, 64, 77, 78, 77, 81, 83, + 106, 75, 76, 95, 66, 71, 73, 77, 83, 87, 85, + 86, 90, 81, 92, 97, 89, 93, 3, 26, 18, 10, 9, + 11, 4, 0, 64, 13, 10, 31, 22, 18, 13, 20, 11, + 13, 9, 4, 12, 42, 34, 29, 26, 27, 10, 3, 1, + 65, 70, 50, 29, 8, 0, 13, 1, 73, 71, 5, 44, + 33, 17, 8, 20, 5, 2, 67, 69, 62, 78, 72, 65, + 67, 67, 66, 3, 7, 0, 5, 8, 16, 72, 68, 77, 72, + 12, 75, 75, 73, 64, 0, 69, 75, 69, 76, 69, 71, + 84, 10, 10, 22, 4, 65, 10, 6, 2, 5, 4, 1, 71, + 0, 66, 70, 67, 12, 91, 73, 16, 75, 2, 68, 0, + 11, 68, 70, 4, 7, 82, 72, 90, 27, 29, 32, 17, + 10, 14, 11, 8, 6, 64, 0, 65, 76, 75, 81, 84, + 78, 84, 99, 82, 82, 82, 81, 89, 81, 89, 88, + 82, 89, 13, 12, 10, 8, 70, 64, 66, 81, 73, 80, + 82, 98, 89, 95, 100, 75, 73, 103, 71, 73, 81, + 94, 86, 91, 94, 82, 95, 90, 97, 101, 102, 107, + 88, 96, 101, 73, 67, 9, 65, 22, 31, 65, 3, 13, + 17, 5, 15, 29, 4, 0, 35, 4, 85, 105, 119, 126, + 126, 126, 126, 4, 39, 30, 26, 16, 27, 14, 7, + 5, 66, 74, 69, 7, 64, 18, 27, 0, 1, 9, 13, 6, + 11, 24, 7, 1, 35, 4, 85, 105, 119, 126, 126, + 126, 126 }, + + { + + 32, + 5, 80, 32, 5, 80, 1, 13, 24, 12, 67, 75, 78, + 26, 59, 13, 13, 69, 6, 15, 0, 70, 0, 77, 94, + 65, 92, 126, 126, 126, 41, 66, 66, 6, 15, 0, + 82, 4, 11, 2, 64, 70, 72, 0, 79, 80, 93, 5, + 67, 71, 4, 74, 69, 83, 0, 74, 72, 81, 3, 2, + 22, 0, 0, 0, 1, 95, 97, 8, 71, 68, 18, 67, 84, + 27, 14, 7, 43, 46, 17, 20, 7, 20, 2, 3, 20, + 80, 77, 77, 82, 24, 65, 14, 17, 68, 76, 70, 8, + 2, 72, 71, 79, 17, 68, 6, 67, 72, 3, 68, 4, 6, + 4, 7, 14, 9, 65, 4, 62, 62, 52, 43, 7, 66, 2, + 10, 0, 11, 10, 2, 70, 23, 68, 94, 91, 38, 9, + 14, 5, 6, 9, 15, 37, 22, 10, 0, 2, 2, 15, 19, + 96, 2, 5, 77, 2, 66, 11, 9, 67, 19, 12, 13, + 81, 7, 72, 69, 9, 89, 9, 12, 9, 65, 77, 7, 64, + 5, 1, 78, 72, 1, 126, 62, 114, 72, 77, 80, 88, + 81, 86, 101, 91, 96, 81, 98, 75, 62, 98, 12, + 15, 8, 4, 3, 3, 64, 64, 66, 79, 80, 79, 82, + 85, 108, 75, 76, 95, 67, 72, 74, 78, 84, 88, + 86, 88, 91, 82, 93, 98, 90, 92, 5, 27, 19, 10, + 9, 12, 4, 0, 0, 15, 11, 31, 22, 19, 14, 21, + 12, 14, 10, 6, 13, 43, 35, 30, 26, 28, 11, 4, + 1, 65, 70, 50, 29, 7, 0, 13, 1, 73, 70, 5, 43, + 32, 16, 7, 20, 5, 2, 67, 68, 62, 77, 70, 0, + 65, 66, 65, 5, 9, 1, 7, 10, 18, 71, 67, 76, + 71, 14, 75, 75, 72, 64, 1, 69, 75, 69, 76, 69, + 71, 85, 11, 10, 23, 4, 65, 10, 6, 2, 5, 4, 1, + 71, 0, 66, 70, 67, 12, 92, 74, 16, 76, 1, 68, + 64, 11, 68, 71, 4, 7, 83, 72, 91, 26, 28, 31, + 15, 8, 12, 9, 6, 3, 67, 66, 68, 79, 77, 83, + 88, 82, 88, 104, 85, 85, 84, 83, 91, 83, 90, + 90, 82, 90, 11, 9, 8, 6, 73, 67, 68, 84, 75, + 82, 84, 101, 91, 97, 101, 75, 74, 105, 72, 75, + 83, 96, 88, 93, 96, 83, 96, 91, 97, 102, 103, + 108, 89, 97, 102, 73, 67, 10, 64, 23, 32, 64, + 4, 13, 17, 5, 16, 30, 4, 0, 34, 2, 88, 108, + 122, 126, 126, 126, 126, 4, 39, 30, 26, 16, + 27, 14, 8, 6, 65, 74, 69, 8, 64, 19, 28, 0, 1, + 9, 13, 6, 12, 24, 7, 1, 34, 2, 88, 108, 122, + 126, 126, 126, 126 }, + + { + + 31, + 5, 81, 31, 5, 81, 3, 14, 25, 12, 67, 77, 80, + 25, 59, 13, 14, 69, 7, 15, 0, 71, 1, 77, 95, + 67, 95, 126, 126, 126, 43, 65, 66, 7, 15, 0, + 83, 4, 11, 1, 64, 70, 72, 0, 79, 79, 92, 5, + 66, 70, 4, 73, 69, 83, 0, 74, 72, 81, 3, 2, + 22, 0, 0, 0, 2, 95, 97, 8, 71, 69, 18, 67, 84, + 29, 15, 8, 44, 49, 18, 21, 9, 21, 3, 4, 22, + 80, 77, 77, 82, 24, 65, 15, 20, 68, 75, 69, + 10, 1, 72, 71, 80, 18, 68, 6, 66, 72, 3, 67, + 5, 6, 5, 8, 15, 9, 64, 5, 62, 62, 55, 46, 7, + 66, 2, 10, 0, 11, 10, 3, 70, 25, 67, 96, 93, + 41, 9, 14, 5, 6, 10, 15, 39, 23, 10, 0, 2, 2, + 16, 20, 97, 2, 5, 77, 1, 67, 10, 9, 68, 19, + 12, 13, 83, 7, 73, 70, 8, 89, 9, 12, 9, 67, + 80, 6, 66, 2, 65, 80, 74, 64, 126, 62, 118, + 74, 78, 82, 92, 83, 89, 105, 96, 99, 83, 101, + 77, 62, 100, 10, 13, 6, 1, 0, 1, 67, 66, 68, + 81, 83, 81, 84, 86, 109, 75, 76, 96, 68, 73, + 75, 79, 85, 89, 87, 90, 92, 82, 94, 99, 90, + 92, 6, 28, 19, 10, 9, 13, 5, 1, 0, 17, 12, 32, + 22, 19, 15, 22, 13, 16, 12, 8, 14, 43, 35, 30, + 27, 29, 11, 4, 1, 64, 70, 51, 29, 6, 0, 13, 1, + 73, 70, 4, 43, 32, 15, 6, 19, 5, 2, 67, 68, + 62, 76, 69, 1, 64, 64, 64, 7, 11, 2, 8, 12, + 20, 71, 66, 76, 70, 16, 74, 75, 72, 0, 1, 69, + 75, 69, 77, 69, 71, 85, 11, 11, 24, 4, 65, 11, + 7, 2, 6, 5, 1, 72, 0, 66, 70, 67, 13, 93, 75, + 16, 77, 0, 69, 64, 11, 69, 71, 4, 6, 85, 73, + 92, 24, 27, 30, 14, 6, 10, 7, 4, 1, 69, 69, + 70, 82, 80, 85, 92, 86, 92, 108, 89, 88, 87, + 85, 94, 85, 92, 91, 83, 91, 9, 7, 5, 3, 76, + 69, 71, 87, 78, 85, 87, 104, 93, 98, 103, 76, + 75, 106, 74, 76, 85, 98, 89, 95, 98, 84, 98, + 92, 98, 103, 104, 109, 91, 98, 103, 73, 66, + 10, 64, 24, 33, 64, 4, 14, 18, 5, 16, 31, 4, + 0, 33, 0, 90, 111, 125, 126, 126, 126, 126, 4, + 39, 30, 26, 16, 28, 15, 8, 6, 65, 73, 68, 8, + 0, 20, 29, 1, 2, 9, 13, 6, 12, 25, 7, 1, 33, + 0, 90, 111, 125, 126, 126, 126, 126 }, + + { + + 30, + 5, 81, 30, 5, 81, 5, 16, 25, 12, 68, 78, 82, + 24, 59, 13, 16, 69, 7, 16, 64, 71, 1, 78, 97, + 68, 97, 126, 126, 126, 46, 64, 66, 7, 16, 64, + 83, 5, 11, 1, 64, 69, 71, 0, 79, 79, 92, 5, + 66, 70, 4, 73, 68, 82, 0, 74, 72, 81, 4, 2, + 22, 0, 0, 0, 2, 95, 97, 9, 72, 69, 17, 68, 84, + 32, 16, 9, 46, 51, 20, 23, 10, 23, 5, 5, 24, + 80, 76, 76, 82, 24, 65, 16, 22, 68, 74, 69, + 12, 1, 73, 72, 80, 18, 68, 7, 66, 71, 4, 67, + 6, 7, 6, 10, 17, 10, 0, 6, 62, 62, 58, 49, 7, + 65, 2, 11, 0, 11, 11, 3, 69, 27, 67, 98, 95, + 44, 9, 15, 5, 6, 10, 16, 40, 24, 11, 64, 2, 2, + 16, 20, 98, 2, 5, 78, 1, 68, 10, 8, 68, 19, + 12, 13, 84, 7, 74, 71, 8, 89, 9, 11, 8, 69, + 83, 5, 68, 0, 67, 82, 77, 66, 126, 62, 121, + 76, 80, 85, 95, 86, 92, 110, 100, 102, 85, + 105, 79, 62, 101, 8, 11, 4, 64, 65, 64, 69, + 68, 70, 84, 85, 83, 86, 88, 111, 75, 76, 96, + 69, 74, 76, 81, 86, 90, 88, 91, 93, 83, 95, + 99, 91, 91, 8, 29, 20, 10, 10, 13, 5, 1, 1, + 19, 14, 32, 23, 20, 15, 23, 14, 17, 13, 10, + 14, 44, 36, 31, 27, 30, 12, 4, 2, 64, 70, 51, + 29, 6, 64, 13, 1, 73, 69, 4, 42, 31, 14, 5, + 19, 5, 3, 67, 68, 62, 74, 67, 2, 1, 0, 0, 8, + 12, 3, 10, 13, 22, 70, 65, 75, 69, 18, 74, 75, + 72, 0, 2, 69, 76, 69, 77, 69, 71, 86, 12, 11, + 25, 4, 65, 11, 7, 2, 6, 5, 1, 72, 0, 66, 70, + 67, 13, 94, 76, 16, 78, 0, 70, 65, 11, 70, 72, + 4, 6, 86, 73, 93, 23, 26, 29, 12, 4, 8, 5, 1, + 65, 72, 72, 73, 85, 82, 87, 97, 90, 96, 113, + 92, 91, 89, 87, 96, 87, 94, 93, 84, 91, 6, 4, + 3, 1, 79, 72, 73, 90, 80, 87, 89, 107, 95, + 100, 104, 77, 75, 108, 75, 78, 86, 100, 91, + 97, 99, 85, 99, 93, 99, 105, 105, 109, 92, + 100, 105, 72, 66, 11, 0, 25, 34, 64, 5, 14, + 18, 5, 17, 32, 4, 0, 32, 65, 93, 114, 126, + 126, 126, 126, 126, 5, 39, 30, 26, 16, 28, 15, + 8, 6, 64, 73, 68, 9, 0, 21, 30, 1, 2, 10, 14, + 6, 12, 25, 7, 1, 32, 65, 93, 114, 126, 126, + 126, 126, 126 }, + + { + + 28, + 4, 81, 28, 4, 81, 6, 17, 25, 12, 68, 80, 85, + 23, 59, 12, 18, 70, 7, 17, 64, 72, 1, 79, 99, + 69, 100, 126, 126, 126, 49, 0, 66, 7, 17, 64, + 84, 6, 11, 0, 64, 69, 71, 64, 80, 79, 92, 5, + 66, 70, 4, 73, 68, 82, 0, 74, 72, 81, 4, 2, + 22, 0, 0, 0, 3, 96, 97, 9, 73, 69, 16, 68, 85, + 34, 17, 10, 47, 53, 21, 24, 12, 24, 6, 6, 26, + 80, 76, 76, 82, 24, 65, 17, 24, 68, 74, 68, + 14, 1, 73, 72, 81, 18, 68, 7, 65, 70, 5, 66, + 6, 7, 6, 11, 18, 10, 1, 7, 62, 62, 61, 51, 7, + 65, 2, 11, 64, 11, 11, 3, 69, 29, 67, 100, 97, + 46, 9, 15, 5, 6, 10, 16, 42, 24, 11, 64, 1, 2, + 17, 21, 100, 2, 5, 78, 0, 70, 9, 8, 69, 19, + 12, 12, 85, 7, 75, 72, 7, 89, 8, 10, 7, 71, + 87, 3, 70, 65, 70, 85, 79, 68, 126, 62, 125, + 78, 82, 87, 98, 88, 96, 114, 104, 105, 87, + 108, 81, 62, 103, 6, 8, 1, 67, 68, 67, 71, 71, + 72, 86, 87, 85, 88, 90, 113, 75, 77, 97, 70, + 76, 77, 82, 87, 92, 90, 93, 94, 83, 96, 100, + 92, 91, 9, 30, 20, 10, 10, 14, 6, 2, 1, 21, + 15, 32, 23, 20, 16, 24, 15, 19, 15, 11, 15, + 44, 36, 31, 28, 31, 12, 4, 2, 0, 71, 52, 29, + 5, 64, 13, 1, 73, 69, 4, 42, 30, 13, 4, 19, 5, + 3, 67, 68, 62, 73, 66, 3, 2, 2, 1, 10, 14, 4, + 11, 15, 24, 70, 65, 75, 68, 19, 74, 75, 72, 1, + 2, 69, 76, 69, 78, 69, 71, 86, 12, 11, 26, 4, + 66, 11, 7, 1, 6, 5, 1, 73, 0, 66, 70, 67, 14, + 95, 77, 16, 80, 64, 71, 66, 10, 71, 73, 4, 6, + 87, 73, 95, 22, 24, 28, 10, 2, 6, 3, 64, 67, + 75, 75, 76, 88, 85, 89, 101, 94, 101, 118, 96, + 95, 92, 90, 99, 89, 96, 94, 85, 92, 4, 2, 0, + 65, 82, 75, 76, 93, 83, 90, 92, 110, 97, 102, + 106, 78, 76, 110, 77, 79, 88, 102, 93, 99, + 101, 87, 101, 95, 100, 106, 106, 110, 94, 101, + 106, 72, 66, 11, 0, 26, 35, 64, 5, 15, 19, 5, + 17, 32, 4, 64, 31, 67, 96, 117, 126, 126, 126, + 126, 126, 5, 39, 30, 26, 16, 29, 15, 8, 6, 64, + 73, 68, 9, 0, 21, 30, 1, 2, 10, 14, 6, 12, 26, + 7, 0, 31, 67, 96, 117, 126, 126, 126, 126, 126 }, + + { + + 27, + 4, 81, 27, 4, 81, 8, 18, 26, 12, 68, 81, 87, + 22, 60, 12, 20, 70, 8, 18, 64, 73, 1, 79, 100, + 70, 102, 126, 126, 126, 52, 1, 65, 8, 18, 64, + 84, 7, 11, 0, 0, 69, 70, 64, 80, 79, 92, 5, + 66, 69, 4, 73, 68, 82, 0, 74, 72, 80, 4, 2, + 22, 0, 0, 0, 4, 96, 97, 9, 74, 69, 15, 68, 85, + 36, 19, 11, 49, 55, 23, 25, 14, 26, 7, 8, 29, + 80, 76, 76, 81, 24, 65, 18, 26, 67, 73, 67, + 16, 1, 73, 72, 81, 18, 68, 7, 64, 69, 6, 65, + 7, 8, 7, 12, 20, 11, 3, 8, 62, 62, 62, 54, 8, + 65, 3, 12, 64, 11, 11, 4, 68, 32, 67, 102, 98, + 49, 9, 15, 5, 6, 10, 17, 44, 25, 11, 64, 1, 2, + 18, 22, 101, 3, 5, 78, 64, 71, 8, 8, 70, 19, + 12, 12, 86, 8, 76, 72, 6, 89, 8, 10, 7, 73, + 90, 2, 71, 67, 72, 87, 81, 70, 126, 62, 126, + 80, 84, 89, 101, 90, 99, 118, 108, 107, 89, + 111, 83, 62, 105, 4, 6, 64, 69, 70, 69, 73, + 73, 74, 88, 89, 86, 89, 91, 115, 75, 77, 97, + 70, 77, 78, 83, 88, 93, 91, 95, 95, 83, 97, + 101, 92, 90, 10, 31, 20, 10, 10, 15, 7, 3, 2, + 24, 16, 32, 23, 20, 17, 25, 16, 21, 17, 13, + 16, 45, 37, 32, 29, 32, 12, 5, 2, 1, 71, 53, + 29, 4, 64, 14, 2, 73, 68, 4, 42, 30, 12, 3, + 19, 5, 3, 67, 67, 62, 72, 65, 5, 4, 4, 2, 12, + 16, 5, 13, 17, 26, 69, 64, 74, 67, 21, 73, 74, + 71, 2, 3, 69, 76, 69, 79, 69, 71, 86, 12, 12, + 27, 5, 66, 12, 7, 1, 6, 5, 1, 74, 0, 65, 69, + 67, 15, 95, 78, 16, 81, 65, 71, 66, 10, 71, + 74, 4, 6, 88, 73, 96, 21, 23, 28, 9, 0, 4, 1, + 66, 69, 77, 78, 79, 91, 88, 91, 105, 98, 105, + 123, 99, 98, 95, 92, 101, 90, 97, 95, 85, 93, + 2, 0, 65, 67, 84, 77, 78, 96, 85, 92, 94, 112, + 99, 104, 108, 78, 77, 111, 78, 80, 90, 104, + 94, 100, 103, 88, 103, 96, 100, 107, 106, 111, + 96, 102, 107, 72, 65, 12, 0, 27, 37, 0, 6, 16, + 20, 5, 18, 33, 4, 64, 30, 69, 98, 120, 126, + 126, 126, 126, 126, 5, 39, 30, 27, 17, 30, 16, + 9, 7, 64, 73, 68, 9, 1, 22, 31, 1, 3, 10, 14, + 6, 13, 27, 7, 0, 30, 69, 98, 120, 126, 126, + 126, 126, 126 }, + + { + + 26, + 4, 81, 26, 4, 81, 10, 20, 26, 12, 69, 82, 89, + 21, 60, 12, 22, 70, 8, 19, 65, 73, 1, 80, 102, + 71, 105, 126, 126, 126, 55, 2, 65, 8, 19, 65, + 84, 8, 11, 64, 0, 68, 69, 64, 80, 79, 92, 5, + 66, 69, 4, 73, 67, 81, 0, 74, 72, 80, 5, 2, + 22, 0, 0, 0, 4, 96, 97, 10, 75, 69, 14, 69, + 85, 39, 20, 12, 51, 57, 24, 27, 15, 27, 9, 9, + 31, 80, 75, 75, 81, 24, 65, 19, 28, 67, 72, + 67, 18, 1, 74, 73, 82, 18, 68, 8, 64, 68, 7, + 65, 8, 8, 8, 14, 21, 12, 4, 9, 62, 62, 62, 57, + 8, 64, 3, 12, 64, 11, 12, 4, 68, 34, 67, 104, + 100, 52, 9, 16, 5, 6, 10, 17, 45, 26, 12, 65, + 1, 2, 18, 22, 102, 3, 5, 79, 64, 72, 8, 7, 70, + 19, 12, 12, 87, 8, 77, 73, 6, 89, 8, 9, 6, 75, + 93, 1, 73, 69, 74, 89, 84, 72, 126, 62, 126, + 82, 86, 92, 104, 93, 102, 123, 112, 110, 91, + 115, 85, 62, 106, 2, 4, 66, 71, 72, 71, 75, + 75, 76, 91, 91, 88, 91, 93, 117, 75, 77, 98, + 71, 78, 79, 85, 89, 94, 92, 96, 96, 84, 98, + 101, 93, 89, 12, 32, 21, 10, 11, 15, 7, 3, 3, + 26, 18, 32, 24, 21, 17, 26, 17, 22, 18, 15, + 16, 46, 38, 33, 29, 33, 13, 5, 3, 1, 71, 53, + 29, 4, 65, 14, 2, 73, 68, 4, 41, 29, 11, 2, + 19, 5, 4, 67, 67, 62, 70, 0, 6, 6, 5, 3, 13, + 17, 6, 15, 18, 28, 68, 0, 74, 66, 23, 73, 74, + 71, 2, 3, 69, 77, 69, 79, 69, 71, 87, 13, 12, + 28, 5, 66, 12, 7, 1, 6, 5, 1, 74, 0, 65, 69, + 67, 15, 96, 79, 16, 82, 65, 72, 67, 10, 72, + 75, 4, 6, 89, 73, 97, 20, 22, 27, 7, 65, 2, + 64, 69, 72, 80, 81, 82, 94, 90, 93, 110, 102, + 109, 126, 102, 101, 97, 94, 104, 92, 99, 97, + 86, 93, 64, 66, 68, 69, 87, 80, 81, 99, 87, + 95, 96, 115, 101, 106, 109, 79, 77, 113, 79, + 82, 91, 106, 96, 102, 104, 89, 104, 97, 101, + 109, 107, 111, 97, 104, 109, 71, 65, 13, 1, + 28, 38, 0, 7, 16, 20, 5, 18, 34, 4, 64, 29, + 71, 101, 123, 126, 126, 126, 126, 126, 6, 39, + 30, 27, 17, 30, 16, 9, 7, 0, 73, 68, 10, 1, + 23, 32, 1, 3, 11, 15, 6, 13, 27, 7, 0, 29, 71, + 101, 123, 126, 126, 126, 126, 126 }, + + { + + 25, + 4, 82, 25, 4, 82, 12, 21, 27, 12, 69, 84, 91, + 20, 60, 12, 23, 70, 9, 19, 65, 74, 2, 80, 103, + 73, 107, 126, 126, 126, 57, 3, 65, 9, 19, 65, + 85, 8, 11, 64, 0, 68, 69, 64, 80, 78, 91, 5, + 65, 68, 4, 72, 67, 81, 0, 74, 72, 80, 5, 2, + 22, 0, 0, 0, 5, 96, 97, 10, 75, 70, 14, 69, + 85, 41, 21, 13, 52, 60, 26, 28, 17, 29, 10, + 10, 33, 80, 75, 75, 81, 24, 65, 20, 31, 67, + 71, 66, 20, 0, 74, 73, 82, 19, 68, 8, 0, 68, + 7, 64, 9, 9, 9, 15, 23, 12, 5, 10, 62, 62, 62, + 60, 8, 64, 3, 13, 64, 11, 12, 5, 67, 36, 66, + 106, 102, 55, 9, 16, 5, 6, 11, 18, 47, 27, 12, + 65, 1, 2, 19, 23, 103, 3, 5, 79, 65, 73, 7, 7, + 71, 19, 12, 12, 89, 8, 78, 74, 5, 89, 8, 9, 6, + 77, 96, 0, 75, 72, 77, 91, 86, 74, 126, 62, + 126, 84, 87, 94, 108, 95, 105, 126, 117, 113, + 93, 118, 87, 62, 108, 0, 2, 68, 74, 75, 73, + 78, 77, 78, 93, 94, 90, 93, 94, 118, 75, 77, + 98, 72, 79, 80, 86, 90, 95, 93, 98, 97, 84, + 99, 102, 93, 89, 13, 33, 21, 10, 11, 16, 8, 4, + 3, 28, 19, 33, 24, 21, 18, 27, 18, 24, 20, 17, + 17, 46, 38, 33, 30, 34, 13, 5, 3, 2, 71, 54, + 29, 3, 65, 14, 2, 73, 67, 3, 41, 29, 10, 1, + 18, 5, 4, 67, 67, 62, 69, 1, 7, 7, 7, 4, 15, + 19, 7, 16, 20, 30, 68, 1, 73, 65, 25, 72, 74, + 71, 3, 4, 69, 77, 69, 80, 69, 71, 87, 13, 13, + 29, 5, 66, 13, 8, 1, 7, 6, 1, 75, 0, 65, 69, + 67, 16, 97, 80, 16, 83, 66, 73, 67, 10, 73, + 75, 4, 5, 91, 74, 98, 18, 21, 26, 6, 67, 0, + 66, 71, 74, 82, 84, 84, 97, 93, 95, 114, 106, + 113, 126, 106, 104, 100, 96, 106, 94, 101, 98, + 87, 94, 66, 68, 70, 72, 90, 82, 83, 102, 90, + 97, 99, 118, 103, 107, 111, 80, 78, 114, 81, + 83, 93, 108, 97, 104, 106, 90, 106, 98, 102, + 110, 108, 112, 99, 105, 110, 71, 64, 13, 1, + 29, 39, 0, 7, 17, 21, 5, 19, 35, 4, 64, 28, + 73, 103, 126, 126, 126, 126, 126, 126, 6, 39, + 30, 27, 17, 31, 17, 9, 7, 0, 72, 67, 10, 2, + 24, 33, 2, 4, 11, 15, 6, 13, 28, 7, 0, 28, 73, + 103, 126, 126, 126, 126, 126, 126 }, + + { + + 23, + 4, 82, 23, 4, 82, 13, 23, 27, 12, 70, 85, 93, + 19, 60, 11, 25, 70, 9, 20, 65, 74, 2, 81, 105, + 74, 110, 126, 126, 126, 60, 4, 65, 9, 20, 65, + 85, 9, 11, 65, 0, 68, 68, 64, 80, 78, 91, 5, + 65, 68, 4, 72, 66, 81, 0, 74, 72, 80, 5, 2, + 22, 0, 0, 0, 5, 97, 97, 11, 76, 70, 13, 70, + 85, 44, 22, 14, 54, 62, 27, 30, 19, 30, 11, + 11, 35, 80, 75, 74, 81, 24, 65, 21, 33, 67, + 71, 66, 22, 0, 75, 74, 83, 19, 68, 9, 0, 67, + 8, 64, 10, 9, 9, 17, 24, 13, 6, 11, 62, 62, + 62, 62, 8, 64, 3, 13, 64, 11, 13, 5, 67, 38, + 66, 108, 104, 57, 9, 16, 5, 6, 11, 18, 48, 28, + 12, 65, 1, 2, 19, 24, 104, 3, 5, 80, 65, 74, + 7, 7, 71, 19, 12, 12, 90, 8, 79, 75, 5, 89, 7, + 8, 5, 79, 100, 64, 77, 74, 79, 93, 89, 76, + 126, 62, 126, 86, 89, 96, 111, 98, 109, 126, + 121, 116, 95, 122, 89, 62, 110, 65, 0, 71, 76, + 77, 75, 80, 79, 80, 95, 96, 92, 95, 96, 120, + 75, 77, 99, 73, 80, 81, 87, 91, 97, 94, 100, + 98, 85, 100, 103, 94, 88, 15, 34, 22, 10, 11, + 17, 8, 4, 4, 30, 20, 33, 24, 22, 19, 28, 19, + 25, 21, 18, 18, 47, 39, 34, 30, 35, 14, 5, 3, + 2, 71, 54, 29, 2, 65, 14, 2, 73, 67, 3, 40, + 28, 9, 0, 18, 5, 4, 67, 67, 62, 68, 3, 8, 9, + 8, 5, 17, 21, 8, 18, 22, 32, 67, 2, 73, 64, + 26, 72, 74, 71, 3, 4, 69, 77, 69, 80, 69, 71, + 88, 14, 13, 30, 5, 66, 13, 8, 1, 7, 6, 1, 75, + 0, 65, 69, 67, 16, 98, 81, 16, 84, 67, 74, 68, + 10, 74, 76, 4, 5, 92, 74, 99, 17, 20, 25, 4, + 69, 65, 68, 73, 77, 85, 87, 87, 100, 95, 97, + 118, 110, 117, 126, 109, 108, 102, 99, 109, + 96, 103, 100, 88, 95, 68, 71, 73, 74, 93, 85, + 86, 105, 92, 100, 101, 121, 105, 109, 112, 81, + 79, 116, 82, 85, 95, 110, 99, 106, 108, 91, + 107, 99, 103, 111, 109, 113, 100, 106, 111, + 71, 64, 14, 2, 30, 40, 0, 8, 17, 21, 5, 19, + 36, 4, 64, 27, 75, 106, 126, 126, 126, 126, + 126, 126, 6, 39, 30, 27, 17, 31, 17, 9, 7, 1, + 72, 67, 11, 2, 24, 34, 2, 4, 11, 15, 6, 13, + 28, 7, 0, 27, 75, 106, 126, 126, 126, 126, + 126, 126 }, + + { + + 22, + 4, 82, 22, 4, 82, 15, 24, 27, 12, 70, 86, 95, + 18, 60, 11, 27, 70, 9, 21, 66, 75, 2, 82, 107, + 75, 112, 126, 126, 126, 62, 5, 64, 9, 21, 66, + 85, 10, 11, 65, 0, 67, 67, 64, 80, 78, 91, 5, + 65, 68, 4, 72, 66, 80, 0, 74, 72, 80, 6, 2, + 22, 0, 0, 0, 6, 97, 97, 11, 77, 70, 12, 70, + 85, 46, 23, 15, 56, 62, 29, 31, 20, 32, 13, + 12, 38, 80, 74, 74, 80, 24, 65, 22, 35, 67, + 70, 65, 24, 0, 75, 74, 83, 19, 68, 9, 1, 66, + 9, 0, 11, 10, 10, 18, 26, 14, 8, 12, 62, 62, + 62, 62, 9, 0, 4, 14, 64, 11, 13, 5, 66, 40, + 66, 110, 106, 60, 9, 17, 5, 6, 11, 19, 50, 29, + 13, 66, 1, 2, 20, 24, 105, 4, 5, 80, 66, 75, + 6, 6, 72, 19, 12, 12, 91, 9, 80, 75, 4, 89, 7, + 7, 4, 81, 103, 65, 78, 76, 81, 95, 91, 78, + 126, 62, 126, 88, 91, 99, 114, 100, 112, 126, + 125, 118, 97, 125, 91, 62, 111, 67, 65, 73, + 78, 79, 77, 82, 81, 82, 98, 98, 94, 96, 98, + 122, 75, 77, 99, 74, 81, 82, 89, 92, 98, 95, + 101, 99, 85, 101, 103, 95, 87, 16, 35, 22, 10, + 12, 17, 9, 5, 5, 32, 22, 33, 25, 22, 19, 29, + 20, 27, 23, 20, 18, 48, 40, 35, 31, 36, 14, 6, + 4, 3, 71, 55, 29, 2, 66, 14, 2, 73, 66, 3, 40, + 27, 8, 64, 18, 5, 5, 67, 66, 62, 66, 4, 10, + 11, 10, 6, 18, 22, 9, 20, 23, 34, 66, 3, 72, + 0, 28, 72, 74, 70, 4, 5, 69, 78, 69, 81, 69, + 71, 88, 14, 13, 31, 5, 66, 13, 8, 1, 7, 6, 1, + 76, 0, 65, 69, 67, 17, 99, 82, 16, 85, 67, 74, + 69, 10, 74, 77, 4, 5, 93, 74, 100, 16, 19, 24, + 2, 71, 67, 70, 76, 79, 88, 90, 90, 103, 98, + 99, 123, 114, 121, 126, 112, 111, 105, 101, + 111, 98, 104, 101, 88, 95, 71, 73, 75, 76, 96, + 88, 88, 108, 94, 102, 103, 124, 107, 111, 114, + 81, 79, 118, 83, 86, 96, 112, 101, 108, 109, + 92, 109, 100, 103, 113, 110, 113, 102, 108, + 113, 70, 64, 15, 2, 31, 41, 1, 9, 18, 22, 5, + 20, 37, 4, 64, 26, 77, 109, 126, 126, 126, + 126, 126, 126, 7, 39, 30, 27, 17, 32, 17, 10, + 8, 1, 72, 67, 11, 2, 25, 35, 2, 4, 12, 16, 6, + 14, 29, 7, 0, 26, 77, 109, 126, 126, 126, 126, + 126, 126 }, + + { + + 21, + 4, 82, 21, 4, 82, 17, 26, 28, 12, 71, 88, 97, + 17, 60, 11, 29, 70, 10, 22, 66, 75, 2, 82, + 108, 76, 115, 126, 126, 126, 62, 6, 64, 10, + 22, 66, 86, 11, 11, 66, 0, 67, 67, 64, 80, 78, + 91, 5, 65, 67, 4, 72, 65, 80, 0, 74, 72, 80, + 6, 2, 22, 0, 0, 0, 6, 97, 97, 12, 78, 70, 11, + 71, 85, 49, 24, 16, 57, 62, 30, 33, 22, 33, + 14, 13, 40, 80, 74, 73, 80, 24, 65, 23, 37, + 67, 69, 65, 26, 0, 76, 75, 84, 19, 68, 10, 1, + 65, 10, 0, 12, 10, 11, 20, 27, 14, 9, 13, 62, + 62, 62, 62, 9, 0, 4, 14, 64, 11, 14, 6, 66, + 42, 66, 112, 108, 62, 9, 17, 5, 6, 11, 19, 51, + 30, 13, 66, 1, 2, 20, 25, 106, 4, 5, 81, 66, + 76, 6, 6, 72, 19, 12, 12, 92, 9, 81, 76, 4, + 89, 7, 7, 4, 83, 106, 66, 80, 78, 84, 97, 94, + 80, 126, 62, 126, 90, 93, 101, 117, 103, 115, + 126, 126, 121, 99, 126, 93, 62, 113, 69, 67, + 75, 81, 82, 79, 84, 83, 84, 100, 100, 96, 98, + 99, 124, 75, 77, 100, 75, 82, 83, 90, 93, 99, + 96, 103, 100, 86, 102, 104, 95, 87, 18, 36, + 23, 10, 12, 18, 9, 5, 5, 34, 23, 33, 25, 23, + 20, 30, 21, 28, 24, 22, 19, 48, 40, 35, 31, + 37, 15, 6, 4, 3, 71, 55, 29, 1, 66, 14, 2, 73, + 66, 3, 39, 27, 7, 65, 18, 5, 5, 67, 66, 62, + 65, 6, 11, 12, 11, 7, 20, 24, 10, 21, 25, 36, + 66, 4, 72, 1, 30, 71, 74, 70, 4, 5, 69, 78, + 69, 81, 69, 71, 89, 15, 14, 32, 5, 66, 14, 8, + 1, 7, 6, 1, 76, 0, 65, 69, 67, 17, 100, 83, + 16, 86, 68, 75, 69, 10, 75, 78, 4, 5, 94, 74, + 101, 15, 18, 23, 1, 73, 69, 72, 78, 82, 90, + 93, 93, 106, 100, 101, 126, 118, 125, 126, + 116, 114, 107, 103, 114, 100, 106, 103, 89, + 96, 73, 76, 78, 79, 99, 90, 91, 111, 97, 105, + 106, 126, 109, 113, 115, 82, 80, 119, 85, 88, + 98, 114, 102, 110, 111, 93, 110, 101, 104, + 114, 111, 114, 103, 109, 114, 70, 0, 15, 3, + 32, 42, 1, 9, 18, 22, 5, 20, 38, 4, 64, 25, + 79, 111, 126, 126, 126, 126, 126, 126, 7, 39, + 30, 27, 17, 32, 18, 10, 8, 2, 72, 67, 12, 3, + 26, 36, 2, 5, 12, 16, 6, 14, 29, 7, 0, 25, 79, + 111, 126, 126, 126, 126, 126, 126 }, + + { + + 20, + 4, 82, 20, 4, 82, 19, 27, 28, 12, 71, 89, 99, + 16, 60, 11, 31, 70, 10, 23, 66, 76, 2, 83, + 110, 77, 117, 126, 126, 126, 62, 7, 64, 10, + 23, 66, 86, 12, 11, 66, 0, 67, 66, 64, 80, 78, + 91, 5, 65, 67, 4, 72, 65, 80, 0, 74, 72, 80, + 6, 2, 22, 0, 0, 0, 7, 97, 97, 12, 79, 70, 10, + 71, 85, 51, 25, 17, 59, 62, 32, 34, 24, 35, + 15, 14, 42, 80, 74, 73, 80, 24, 65, 24, 39, + 67, 68, 64, 28, 0, 76, 75, 84, 19, 68, 10, 2, + 64, 11, 1, 13, 11, 12, 21, 29, 15, 10, 14, 62, + 62, 62, 62, 9, 0, 4, 15, 64, 11, 14, 6, 65, + 44, 66, 114, 110, 62, 9, 17, 5, 6, 11, 20, 53, + 31, 13, 66, 1, 2, 21, 26, 107, 4, 5, 81, 67, + 77, 5, 6, 73, 19, 12, 12, 93, 9, 82, 77, 3, + 89, 7, 6, 3, 85, 109, 67, 82, 80, 86, 99, 96, + 82, 126, 62, 126, 92, 95, 103, 120, 105, 118, + 126, 126, 124, 101, 126, 95, 62, 115, 71, 69, + 77, 83, 84, 81, 86, 85, 86, 102, 102, 98, 100, + 101, 126, 75, 77, 100, 76, 83, 84, 91, 94, + 100, 97, 105, 101, 86, 103, 105, 96, 86, 19, + 37, 23, 10, 12, 19, 10, 6, 6, 36, 24, 33, 25, + 23, 21, 31, 22, 30, 26, 24, 20, 49, 41, 36, + 32, 38, 15, 6, 4, 4, 71, 56, 29, 0, 66, 14, 2, + 73, 65, 3, 39, 26, 6, 66, 18, 5, 5, 67, 66, + 62, 64, 7, 12, 14, 13, 8, 22, 26, 11, 23, 27, + 38, 65, 5, 71, 2, 32, 71, 74, 70, 5, 6, 69, + 78, 69, 82, 69, 71, 89, 15, 14, 33, 5, 66, 14, + 8, 1, 7, 6, 1, 77, 0, 65, 69, 67, 18, 101, 84, + 16, 87, 69, 76, 70, 10, 76, 79, 4, 5, 95, 74, + 102, 14, 17, 22, 64, 75, 71, 74, 80, 84, 93, + 96, 96, 109, 103, 103, 126, 122, 126, 126, + 119, 117, 110, 105, 116, 102, 108, 104, 90, + 97, 75, 78, 80, 81, 102, 93, 93, 114, 99, 107, + 108, 126, 111, 115, 117, 83, 81, 121, 86, 89, + 100, 116, 104, 112, 113, 94, 112, 102, 105, + 115, 112, 115, 105, 110, 115, 70, 0, 16, 3, + 33, 43, 1, 10, 19, 23, 5, 21, 39, 4, 64, 24, + 81, 114, 126, 126, 126, 126, 126, 126, 7, 39, + 30, 27, 17, 33, 18, 10, 8, 2, 72, 67, 12, 3, + 27, 37, 2, 5, 12, 16, 6, 14, 30, 7, 0, 24, 81, + 114, 126, 126, 126, 126, 126, 126 }, + + { + + 18, + 3, 83, 18, 3, 83, 20, 28, 28, 12, 72, 91, 102, + 15, 60, 10, 32, 71, 10, 23, 67, 77, 2, 84, + 112, 79, 120, 126, 126, 126, 62, 7, 64, 10, + 23, 67, 87, 12, 11, 67, 0, 67, 66, 65, 81, 78, + 91, 4, 65, 67, 4, 72, 65, 80, 0, 74, 73, 80, + 6, 2, 22, 0, 0, 0, 7, 98, 97, 12, 80, 71, 9, + 72, 86, 53, 26, 18, 60, 62, 33, 35, 25, 36, + 16, 15, 44, 80, 74, 73, 80, 24, 65, 24, 41, + 67, 68, 64, 29, 64, 77, 76, 85, 19, 68, 10, 2, + 64, 11, 1, 13, 11, 12, 22, 30, 15, 11, 15, 62, + 62, 62, 62, 9, 0, 4, 15, 65, 11, 14, 6, 65, + 46, 66, 116, 112, 62, 9, 17, 5, 6, 11, 20, 54, + 31, 13, 67, 0, 2, 21, 26, 109, 4, 5, 82, 68, + 79, 4, 5, 74, 19, 12, 11, 95, 9, 83, 78, 2, + 89, 6, 5, 2, 88, 113, 69, 84, 83, 89, 102, 99, + 84, 126, 62, 126, 95, 97, 106, 124, 108, 122, + 126, 126, 126, 103, 126, 97, 62, 117, 74, 72, + 80, 86, 87, 84, 89, 88, 88, 105, 105, 100, + 102, 103, 126, 75, 78, 101, 77, 85, 86, 93, + 96, 102, 99, 107, 102, 87, 104, 106, 97, 86, + 20, 37, 23, 10, 12, 19, 10, 6, 6, 38, 25, 33, + 25, 23, 21, 31, 23, 31, 27, 25, 20, 49, 41, + 36, 32, 39, 15, 6, 4, 4, 72, 56, 28, 64, 67, + 14, 2, 73, 65, 2, 38, 25, 4, 67, 17, 5, 5, 67, + 66, 62, 0, 8, 13, 15, 14, 9, 23, 27, 12, 24, + 28, 40, 65, 5, 71, 3, 33, 71, 74, 70, 5, 6, + 69, 79, 70, 83, 69, 72, 90, 15, 14, 34, 5, 67, + 14, 8, 0, 7, 6, 1, 78, 0, 65, 69, 67, 18, 102, + 85, 16, 89, 70, 77, 71, 9, 77, 80, 4, 4, 97, + 75, 104, 12, 15, 21, 66, 77, 74, 77, 83, 87, + 96, 99, 99, 113, 106, 105, 126, 126, 126, 126, + 123, 121, 113, 108, 119, 104, 110, 106, 91, + 98, 78, 81, 83, 84, 105, 96, 96, 118, 102, + 110, 111, 126, 113, 117, 119, 84, 82, 123, 88, + 91, 102, 119, 106, 114, 115, 96, 114, 104, + 106, 117, 113, 116, 107, 112, 117, 70, 0, 16, + 3, 34, 44, 1, 10, 19, 23, 5, 21, 39, 4, 65, + 22, 83, 117, 126, 126, 126, 126, 126, 126, 7, + 39, 30, 27, 17, 33, 18, 10, 8, 2, 72, 67, 12, + 3, 27, 37, 2, 5, 12, 16, 6, 14, 30, 6, 64, 22, + 83, 117, 126, 126, 126, 126, 126, 126 }, + + { + + 17, + 3, 83, 17, 3, 83, 22, 30, 29, 13, 72, 92, 104, + 14, 61, 10, 34, 71, 11, 24, 67, 77, 3, 84, + 113, 80, 122, 126, 126, 126, 62, 8, 0, 11, 24, + 67, 87, 13, 11, 67, 1, 66, 65, 65, 81, 77, 90, + 4, 64, 66, 4, 71, 64, 79, 1, 73, 73, 79, 7, 2, + 22, 0, 0, 0, 8, 98, 97, 13, 80, 71, 9, 72, 86, + 56, 28, 20, 62, 62, 35, 37, 27, 38, 18, 17, + 47, 80, 73, 72, 79, 24, 65, 25, 44, 66, 67, 0, + 31, 64, 77, 76, 85, 20, 68, 11, 3, 0, 12, 2, + 14, 12, 13, 24, 32, 16, 13, 17, 62, 62, 62, + 62, 10, 1, 5, 16, 65, 12, 15, 7, 64, 49, 65, + 118, 113, 62, 9, 18, 5, 7, 12, 21, 56, 32, 14, + 67, 0, 2, 22, 27, 110, 5, 5, 82, 68, 80, 4, 5, + 74, 19, 12, 11, 96, 10, 83, 78, 2, 89, 6, 5, + 2, 90, 116, 70, 85, 85, 91, 104, 101, 86, 126, + 62, 126, 97, 98, 108, 126, 110, 125, 126, 126, + 126, 105, 126, 99, 62, 118, 76, 74, 82, 88, + 89, 86, 91, 90, 90, 107, 107, 101, 103, 104, + 126, 75, 78, 101, 77, 86, 87, 94, 97, 103, + 100, 108, 103, 87, 105, 106, 97, 85, 22, 38, + 24, 10, 13, 20, 11, 7, 7, 41, 27, 34, 26, 24, + 22, 32, 25, 33, 29, 27, 21, 50, 42, 37, 33, + 40, 16, 7, 5, 5, 72, 57, 28, 64, 67, 15, 3, + 73, 64, 2, 38, 25, 3, 68, 17, 6, 6, 66, 65, + 62, 2, 10, 15, 17, 16, 11, 25, 29, 14, 26, 30, + 43, 64, 6, 70, 5, 35, 70, 73, 69, 6, 7, 68, + 79, 70, 83, 69, 72, 90, 16, 15, 35, 6, 67, 15, + 9, 0, 8, 7, 1, 78, 1, 64, 68, 66, 19, 102, 86, + 16, 90, 70, 77, 71, 9, 77, 80, 4, 4, 98, 75, + 105, 11, 14, 21, 67, 78, 76, 79, 85, 89, 98, + 101, 101, 116, 108, 107, 126, 126, 126, 126, + 126, 124, 115, 110, 121, 105, 111, 107, 91, + 98, 80, 83, 85, 86, 107, 98, 98, 121, 104, + 112, 113, 126, 114, 118, 120, 84, 82, 124, 89, + 92, 103, 121, 107, 115, 116, 97, 115, 105, + 106, 118, 113, 116, 108, 113, 118, 69, 1, 17, + 4, 36, 46, 2, 11, 20, 24, 6, 22, 40, 4, 65, + 21, 85, 119, 126, 126, 126, 126, 126, 126, 8, + 39, 31, 28, 18, 34, 19, 11, 9, 3, 71, 66, 13, + 4, 28, 38, 3, 6, 13, 17, 6, 15, 31, 6, 64, 21, + 85, 119, 126, 126, 126, 126, 126, 126 }, + + { + + 16, + 3, 83, 16, 3, 83, 24, 31, 29, 13, 72, 93, 106, + 13, 61, 10, 36, 71, 11, 25, 67, 78, 3, 85, + 115, 81, 125, 126, 126, 126, 62, 9, 0, 11, 25, + 67, 87, 14, 11, 68, 1, 66, 64, 65, 81, 77, 90, + 4, 64, 66, 4, 71, 64, 79, 1, 73, 73, 79, 7, 2, + 22, 0, 0, 0, 9, 98, 97, 13, 81, 71, 8, 72, 86, + 58, 29, 21, 62, 62, 36, 38, 29, 39, 19, 18, + 49, 80, 73, 72, 79, 24, 65, 26, 46, 66, 66, 1, + 33, 64, 77, 76, 86, 20, 68, 11, 4, 1, 13, 3, + 15, 12, 14, 25, 33, 17, 14, 18, 62, 62, 62, + 62, 10, 1, 5, 16, 65, 12, 15, 7, 64, 51, 65, + 120, 115, 62, 9, 18, 5, 7, 12, 21, 58, 33, 14, + 67, 0, 2, 23, 28, 111, 5, 5, 82, 69, 81, 3, 5, + 75, 19, 12, 11, 97, 10, 84, 79, 1, 89, 6, 4, + 1, 92, 119, 71, 87, 87, 93, 106, 103, 88, 126, + 62, 126, 99, 100, 110, 126, 112, 126, 126, + 126, 126, 107, 126, 101, 62, 120, 78, 76, 84, + 90, 91, 88, 93, 92, 92, 109, 109, 103, 105, + 106, 126, 75, 78, 102, 78, 87, 88, 95, 98, + 104, 101, 110, 104, 87, 106, 107, 98, 84, 23, + 39, 24, 10, 13, 21, 12, 8, 8, 43, 28, 34, 26, + 24, 23, 33, 26, 35, 31, 29, 22, 51, 43, 38, + 34, 41, 16, 7, 5, 6, 72, 58, 28, 65, 67, 15, + 3, 73, 64, 2, 38, 24, 2, 69, 17, 6, 6, 66, 65, + 62, 3, 11, 16, 19, 18, 12, 27, 31, 15, 28, 32, + 45, 0, 7, 70, 6, 37, 70, 73, 69, 7, 7, 68, 79, + 70, 84, 69, 72, 90, 16, 15, 36, 6, 67, 15, 9, + 0, 8, 7, 1, 79, 1, 64, 68, 66, 20, 103, 87, + 16, 91, 71, 78, 72, 9, 78, 81, 4, 4, 99, 75, + 106, 10, 13, 20, 69, 80, 78, 81, 87, 91, 101, + 104, 104, 119, 111, 109, 126, 126, 126, 126, + 126, 126, 118, 112, 124, 107, 113, 108, 92, + 99, 82, 85, 88, 88, 110, 101, 101, 124, 106, + 115, 115, 126, 116, 120, 122, 85, 83, 126, 90, + 93, 105, 123, 109, 117, 118, 98, 117, 106, + 107, 119, 114, 117, 110, 114, 119, 69, 1, 18, + 4, 37, 47, 2, 12, 21, 25, 6, 22, 41, 4, 65, + 20, 87, 122, 126, 126, 126, 126, 126, 126, 8, + 39, 31, 28, 18, 35, 19, 11, 9, 3, 71, 66, 13, + 4, 29, 39, 3, 6, 13, 17, 6, 15, 32, 6, 64, 20, + 87, 122, 126, 126, 126, 126, 126, 126 }, + + { + + 15, + 3, 83, 15, 3, 83, 26, 33, 30, 13, 73, 95, 108, + 12, 61, 10, 38, 71, 12, 26, 67, 78, 3, 85, + 116, 82, 126, 126, 126, 126, 62, 10, 0, 12, + 26, 67, 88, 15, 11, 68, 1, 66, 64, 65, 81, 77, + 90, 4, 64, 65, 4, 71, 0, 79, 1, 73, 73, 79, 7, + 2, 22, 0, 0, 0, 9, 98, 97, 14, 82, 71, 7, 73, + 86, 61, 30, 22, 62, 62, 38, 40, 31, 41, 20, + 19, 51, 80, 73, 71, 79, 24, 65, 27, 48, 66, + 65, 1, 35, 64, 78, 77, 86, 20, 68, 12, 4, 2, + 14, 3, 16, 13, 15, 27, 35, 17, 15, 19, 62, 62, + 62, 62, 10, 1, 5, 17, 65, 12, 16, 8, 0, 53, + 65, 122, 117, 62, 9, 18, 5, 7, 12, 22, 59, 34, + 14, 67, 0, 2, 23, 29, 112, 5, 5, 83, 69, 82, + 3, 5, 75, 19, 12, 11, 98, 10, 85, 80, 1, 89, + 6, 4, 1, 94, 122, 72, 89, 89, 96, 108, 106, + 90, 126, 62, 126, 101, 102, 112, 126, 115, + 126, 126, 126, 126, 109, 126, 103, 62, 122, + 80, 78, 86, 93, 94, 90, 95, 94, 94, 111, 111, + 105, 107, 107, 126, 75, 78, 102, 79, 88, 89, + 96, 99, 105, 102, 112, 105, 88, 107, 108, 98, + 84, 25, 40, 25, 10, 13, 22, 12, 8, 8, 45, 29, + 34, 26, 25, 24, 34, 27, 36, 32, 31, 23, 51, + 43, 38, 34, 42, 17, 7, 5, 6, 72, 58, 28, 66, + 67, 15, 3, 73, 0, 2, 37, 24, 1, 70, 17, 6, 6, + 66, 65, 62, 4, 13, 17, 20, 19, 13, 29, 33, 16, + 29, 34, 47, 0, 8, 69, 7, 39, 69, 73, 69, 7, 8, + 68, 79, 70, 84, 69, 72, 91, 17, 16, 37, 6, 67, + 16, 9, 0, 8, 7, 1, 79, 1, 64, 68, 66, 20, 104, + 88, 16, 92, 72, 79, 72, 9, 79, 82, 4, 4, 100, + 75, 107, 9, 12, 19, 70, 82, 80, 83, 89, 94, + 103, 107, 107, 122, 113, 111, 126, 126, 126, + 126, 126, 126, 120, 114, 126, 109, 115, 110, + 93, 100, 84, 88, 90, 91, 113, 103, 103, 126, + 109, 117, 118, 126, 118, 122, 123, 86, 84, + 126, 92, 95, 107, 125, 110, 119, 120, 99, 118, + 107, 108, 120, 115, 118, 111, 115, 120, 69, 2, + 18, 5, 38, 48, 2, 12, 21, 25, 6, 23, 42, 4, + 65, 19, 89, 124, 126, 126, 126, 126, 126, 126, + 8, 39, 31, 28, 18, 35, 20, 11, 9, 4, 71, 66, + 14, 5, 30, 40, 3, 7, 13, 17, 6, 15, 32, 6, 64, + 19, 89, 124, 126, 126, 126, 126, 126, 126 }, + + }, + + { + + { + + 62, + 9, 74, 62, 9, 74, 126, 104, 10, 9, 12, 47, 62, + 62, 12, 1, 99, 47, 85, 102, 6, 6, 73, 6, 23, 53, + 62, 62, 21, 97, 126, 117, 74, 85, 102, 6, 93, + 88, 19, 8, 89, 103, 116, 6, 5, 84, 96, 0, 85, + 106, 0, 75, 90, 101, 8, 79, 75, 97, 13, 3, 22, + 0, 0, 0, 83, 86, 97, 72, 22, 1, 29, 88, 126, + 126, 91, 95, 84, 86, 89, 91, 126, 76, 103, 90, + 126, 80, 76, 84, 78, 8, 2, 83, 126, 79, 104, 91, + 126, 65, 79, 72, 92, 7, 68, 71, 98, 86, 88, 82, + 72, 67, 72, 89, 69, 4, 66, 6, 71, 71, 5, 74, 19, + 69, 1, 12, 16, 21, 22, 10, 76, 78, 83, 11, 67, + 90, 67, 72, 75, 80, 83, 64, 32, 64, 94, 75, 0, + 74, 28, 36, 91, 65, 69, 77, 66, 1, 68, 81, 33, + 56, 40, 74, 66, 124, 26, 62, 62, 126, 24, 21, + 29, 34, 32, 26, 21, 23, 30, 20, 27, 16, 8, 5, 3, + 19, 19, 21, 15, 7, 11, 26, 14, 5, 15, 18, 69, + 30, 0, 62, 62, 62, 53, 62, 62, 62, 62, 46, 38, + 34, 30, 48, 43, 73, 29, 32, 19, 47, 27, 27, 35, + 42, 43, 51, 47, 21, 93, 7, 6, 25, 126, 115, 82, + 1, 10, 4, 85, 89, 94, 92, 126, 100, 6, 67, 71, + 77, 85, 88, 104, 98, 126, 82, 15, 2, 66, 70, 75, + 79, 83, 92, 108, 79, 69, 75, 5, 5, 78, 83, 81, + 99, 81, 25, 1, 5, 4, 73, 76, 86, 83, 87, 62, + 126, 126, 120, 126, 114, 117, 118, 117, 113, + 118, 120, 124, 94, 102, 99, 106, 126, 92, 6, 86, + 94, 91, 77, 71, 73, 64, 81, 64, 6, 67, 68, 67, + 68, 77, 64, 68, 78, 8, 4, 65, 9, 19, 3, 70, 76, + 86, 70, 64, 70, 8, 7, 69, 65, 74, 9, 9, 76, 82, + 77, 77, 21, 62, 62, 62, 62, 62, 62, 62, 62, 62, + 62, 62, 62, 62, 62, 52, 62, 62, 62, 62, 62, 62, + 48, 62, 62, 46, 25, 18, 9, 79, 62, 62, 62, 62, + 48, 48, 38, 41, 47, 45, 35, 22, 35, 16, 1, 32, + 37, 39, 40, 47, 33, 34, 22, 21, 3, 11, 3, 78, + 123, 10, 7, 2, 30, 13, 2, 78, 74, 72, 72, 75, + 71, 0, 70, 75, 72, 67, 10, 4, 11, 68, 62, 62, + 62, 62, 56, 51, 40, 25, 64, 71, 26, 19, 14, 7, + 4, 0, 67, 68, 79, 78, 74, 72, 72, 75, 71, 0, 70, + 75, 72, 67, 10, 4, 11, 68, 62, 62, 62, 62, 56, + 51, 40, 25, 64 }, + + { + + 62, + 9, 74, 62, 9, 74, 125, 102, 11, 10, 12, 46, + 62, 62, 13, 2, 97, 46, 84, 100, 6, 6, 71, 6, + 22, 52, 62, 60, 19, 97, 125, 115, 73, 84, 100, + 6, 92, 87, 20, 8, 88, 102, 114, 5, 4, 84, 96, + 0, 84, 105, 0, 75, 89, 100, 8, 78, 74, 96, 14, + 3, 22, 0, 0, 0, 82, 86, 97, 71, 22, 1, 29, 87, + 125, 124, 89, 94, 82, 84, 88, 89, 125, 75, + 101, 89, 124, 80, 76, 84, 78, 9, 2, 82, 124, + 78, 103, 90, 125, 65, 78, 72, 91, 8, 68, 70, + 97, 85, 87, 81, 71, 66, 71, 88, 68, 5, 66, 6, + 70, 70, 5, 73, 20, 68, 1, 13, 17, 22, 23, 11, + 76, 77, 82, 11, 67, 89, 67, 71, 74, 79, 81, 1, + 33, 1, 92, 75, 64, 73, 29, 37, 91, 65, 68, 77, + 65, 1, 67, 79, 33, 56, 41, 72, 67, 122, 25, + 62, 62, 125, 24, 21, 29, 34, 32, 26, 21, 23, + 30, 20, 27, 16, 8, 5, 3, 19, 19, 21, 15, 7, + 11, 26, 14, 4, 15, 18, 69, 29, 0, 62, 62, 62, + 52, 62, 62, 62, 62, 45, 37, 32, 29, 46, 42, + 74, 28, 31, 18, 46, 27, 27, 34, 41, 42, 50, + 46, 20, 93, 7, 6, 24, 125, 113, 80, 2, 10, 4, + 84, 88, 93, 91, 125, 98, 7, 66, 70, 76, 83, + 87, 102, 97, 124, 81, 16, 3, 65, 69, 74, 78, + 82, 91, 106, 78, 67, 74, 6, 5, 77, 82, 80, 98, + 80, 26, 2, 6, 5, 72, 75, 85, 82, 86, 62, 125, + 125, 118, 125, 112, 115, 116, 115, 111, 116, + 118, 121, 93, 101, 98, 105, 123, 91, 5, 85, + 93, 90, 76, 71, 72, 64, 80, 64, 6, 67, 68, 66, + 68, 77, 64, 68, 77, 8, 4, 65, 9, 19, 3, 70, + 75, 84, 70, 64, 69, 8, 7, 69, 65, 73, 9, 9, + 75, 81, 76, 76, 20, 62, 62, 62, 62, 62, 62, + 62, 62, 62, 62, 62, 62, 62, 62, 50, 62, 62, + 62, 62, 62, 62, 47, 60, 60, 45, 24, 17, 9, 79, + 62, 62, 62, 60, 46, 47, 37, 39, 46, 43, 34, + 20, 33, 15, 0, 31, 36, 37, 39, 46, 32, 33, 21, + 20, 2, 11, 3, 78, 122, 9, 6, 1, 29, 12, 1, 77, + 73, 71, 71, 73, 70, 1, 69, 73, 71, 66, 11, 5, + 12, 67, 62, 62, 62, 62, 54, 50, 38, 24, 65, + 70, 27, 20, 15, 8, 5, 1, 66, 67, 78, 77, 73, + 71, 71, 73, 70, 1, 69, 73, 71, 66, 11, 5, 12, + 67, 62, 62, 62, 62, 54, 50, 38, 24, 65 }, + + { + + 62, + 9, 74, 62, 9, 74, 123, 101, 11, 10, 12, 44, + 60, 62, 14, 2, 95, 44, 84, 99, 6, 6, 70, 5, + 21, 51, 60, 57, 17, 98, 123, 114, 73, 84, 99, + 6, 92, 86, 20, 8, 87, 101, 113, 4, 3, 84, 96, + 0, 84, 104, 0, 75, 89, 100, 8, 78, 74, 95, 14, + 3, 22, 0, 0, 0, 81, 86, 97, 71, 21, 1, 29, 86, + 124, 122, 88, 93, 80, 82, 87, 88, 123, 74, + 100, 88, 122, 81, 76, 84, 78, 9, 2, 81, 122, + 78, 102, 89, 123, 65, 78, 72, 91, 8, 68, 70, + 96, 85, 86, 81, 71, 66, 71, 87, 67, 5, 66, 6, + 70, 70, 5, 73, 20, 68, 1, 13, 17, 22, 23, 11, + 77, 76, 81, 10, 67, 89, 67, 70, 74, 79, 80, 2, + 34, 3, 90, 76, 65, 73, 29, 37, 92, 65, 68, 78, + 64, 1, 67, 78, 33, 56, 41, 71, 68, 121, 24, + 62, 62, 124, 24, 21, 29, 33, 31, 26, 21, 23, + 29, 19, 26, 16, 8, 5, 3, 18, 18, 20, 15, 7, + 11, 25, 13, 3, 14, 17, 69, 28, 64, 62, 62, 62, + 50, 60, 62, 62, 62, 44, 35, 30, 27, 44, 40, + 75, 27, 30, 16, 45, 26, 26, 33, 39, 40, 48, + 44, 18, 93, 6, 5, 22, 124, 112, 79, 3, 10, 4, + 83, 87, 92, 90, 123, 97, 8, 65, 69, 75, 82, + 86, 101, 96, 122, 80, 16, 3, 65, 69, 73, 77, + 81, 90, 105, 78, 66, 73, 6, 5, 76, 81, 80, 97, + 79, 26, 3, 6, 5, 71, 74, 84, 81, 85, 62, 124, + 123, 116, 123, 111, 114, 114, 113, 110, 114, + 116, 119, 92, 100, 97, 104, 120, 91, 4, 85, + 92, 89, 76, 71, 72, 64, 80, 64, 5, 67, 68, 65, + 68, 77, 64, 68, 77, 8, 4, 65, 8, 18, 3, 70, + 75, 83, 71, 64, 68, 7, 7, 69, 65, 73, 9, 9, + 75, 80, 76, 76, 18, 62, 62, 62, 62, 62, 62, + 62, 62, 62, 62, 62, 62, 62, 62, 48, 62, 62, + 62, 62, 62, 61, 45, 58, 58, 43, 23, 16, 8, 79, + 62, 62, 62, 58, 44, 45, 35, 37, 44, 41, 32, + 18, 31, 13, 64, 30, 35, 35, 37, 44, 30, 31, + 20, 19, 1, 10, 2, 78, 121, 8, 5, 64, 28, 11, + 0, 77, 73, 70, 70, 72, 69, 2, 69, 72, 70, 65, + 11, 6, 13, 66, 62, 62, 62, 60, 52, 48, 36, 22, + 66, 69, 27, 20, 16, 9, 6, 1, 65, 67, 77, 77, + 73, 70, 70, 72, 69, 2, 69, 72, 70, 65, 11, 6, + 13, 66, 62, 62, 62, 60, 52, 48, 36, 22, 66 }, + + { + + 62, + 9, 74, 62, 9, 74, 121, 99, 12, 10, 11, 42, 59, + 61, 14, 2, 93, 43, 84, 97, 6, 5, 69, 4, 20, + 50, 58, 53, 15, 99, 121, 112, 73, 84, 97, 6, + 91, 85, 21, 8, 86, 100, 112, 3, 2, 84, 97, 0, + 84, 103, 0, 76, 89, 100, 8, 78, 74, 94, 15, 3, + 22, 0, 0, 0, 81, 86, 97, 70, 20, 1, 28, 86, + 123, 120, 87, 92, 79, 81, 86, 87, 121, 73, 99, + 87, 120, 82, 76, 84, 78, 10, 2, 80, 120, 78, + 101, 88, 121, 65, 78, 72, 91, 9, 68, 69, 95, + 85, 85, 81, 71, 66, 70, 86, 67, 5, 66, 6, 70, + 70, 5, 73, 20, 68, 1, 14, 17, 23, 23, 12, 77, + 76, 80, 10, 67, 89, 67, 69, 74, 78, 79, 3, 35, + 4, 88, 76, 66, 72, 29, 37, 93, 65, 67, 78, 64, + 1, 67, 77, 33, 56, 41, 70, 69, 119, 23, 62, + 62, 122, 24, 21, 28, 32, 31, 25, 20, 23, 29, + 18, 25, 16, 8, 5, 2, 18, 17, 19, 14, 7, 11, + 24, 13, 2, 14, 16, 69, 27, 64, 62, 62, 61, 49, + 58, 62, 62, 62, 43, 33, 28, 26, 42, 38, 77, + 26, 29, 14, 44, 25, 25, 32, 38, 38, 46, 42, + 17, 93, 5, 4, 21, 122, 110, 77, 3, 10, 4, 82, + 86, 91, 89, 121, 96, 9, 64, 68, 75, 81, 85, + 99, 95, 120, 80, 17, 4, 64, 68, 72, 77, 81, + 89, 104, 78, 64, 72, 6, 5, 75, 81, 80, 96, 78, + 27, 4, 7, 5, 70, 74, 83, 81, 85, 62, 122, 122, + 115, 121, 110, 112, 113, 112, 108, 112, 114, + 117, 92, 99, 97, 103, 117, 91, 3, 85, 91, 88, + 76, 71, 72, 64, 79, 64, 4, 67, 68, 65, 68, 77, + 64, 68, 77, 7, 4, 65, 7, 17, 3, 70, 75, 82, + 72, 64, 67, 6, 7, 69, 65, 72, 9, 8, 74, 79, + 76, 76, 17, 62, 62, 62, 62, 62, 62, 62, 62, + 62, 62, 62, 62, 62, 62, 46, 62, 62, 62, 62, + 62, 59, 43, 56, 55, 41, 22, 15, 7, 79, 62, 62, + 62, 56, 42, 43, 34, 35, 42, 39, 30, 16, 29, + 11, 65, 29, 34, 33, 36, 42, 29, 29, 18, 17, 0, + 9, 1, 78, 120, 7, 3, 65, 27, 10, 64, 77, 72, + 70, 70, 71, 68, 3, 69, 71, 69, 64, 12, 7, 13, + 65, 62, 62, 62, 58, 50, 46, 34, 20, 67, 69, + 28, 21, 17, 9, 7, 2, 65, 66, 77, 77, 72, 70, + 70, 71, 68, 3, 69, 71, 69, 64, 12, 7, 13, 65, + 62, 62, 62, 58, 50, 46, 34, 20, 67 }, + + { + + 62, + 9, 74, 62, 9, 74, 120, 98, 12, 10, 11, 40, 57, + 60, 15, 2, 92, 41, 84, 96, 5, 5, 68, 3, 18, + 48, 56, 50, 12, 100, 119, 111, 73, 84, 96, 5, + 91, 84, 21, 7, 86, 99, 110, 2, 0, 85, 97, 0, + 83, 102, 64, 76, 89, 100, 8, 78, 74, 94, 15, + 3, 22, 0, 0, 0, 80, 87, 97, 70, 19, 1, 28, 85, + 122, 118, 86, 91, 77, 79, 86, 86, 119, 72, 98, + 86, 117, 82, 77, 84, 79, 10, 1, 79, 117, 77, + 101, 88, 119, 65, 78, 72, 91, 9, 68, 69, 94, + 85, 85, 80, 71, 66, 70, 85, 66, 5, 67, 5, 70, + 70, 5, 73, 20, 68, 1, 14, 17, 23, 23, 12, 78, + 75, 80, 9, 67, 88, 67, 68, 73, 78, 77, 5, 36, + 6, 86, 77, 67, 72, 30, 37, 94, 65, 67, 79, 0, + 1, 67, 76, 33, 56, 41, 68, 70, 118, 22, 62, + 62, 121, 23, 21, 28, 32, 30, 25, 20, 23, 28, + 17, 24, 15, 8, 5, 2, 17, 17, 18, 14, 6, 10, + 23, 12, 1, 13, 15, 69, 25, 65, 62, 62, 59, 47, + 57, 62, 62, 62, 42, 31, 25, 24, 40, 36, 78, + 24, 28, 13, 43, 24, 24, 30, 36, 36, 44, 41, + 15, 93, 4, 3, 19, 121, 109, 76, 4, 10, 4, 81, + 85, 90, 89, 119, 94, 10, 64, 68, 74, 79, 84, + 98, 94, 117, 79, 17, 4, 64, 68, 71, 76, 80, + 89, 103, 78, 0, 71, 6, 5, 74, 80, 80, 95, 77, + 27, 5, 7, 5, 69, 73, 82, 80, 84, 62, 121, 120, + 113, 120, 109, 111, 111, 110, 107, 111, 112, + 114, 91, 98, 96, 102, 114, 90, 2, 84, 90, 88, + 76, 71, 72, 65, 79, 65, 3, 67, 68, 64, 68, 77, + 64, 68, 76, 7, 3, 65, 6, 16, 2, 70, 75, 81, + 73, 65, 67, 6, 6, 69, 65, 72, 8, 8, 74, 79, + 76, 76, 15, 62, 62, 62, 62, 62, 62, 62, 62, + 62, 62, 62, 62, 62, 62, 44, 62, 62, 62, 62, + 62, 57, 41, 54, 53, 39, 20, 14, 6, 79, 62, 62, + 62, 54, 40, 41, 32, 33, 40, 37, 28, 14, 26, + 10, 67, 28, 33, 30, 34, 41, 27, 27, 17, 16, + 64, 8, 0, 78, 119, 5, 2, 67, 25, 9, 65, 77, + 72, 69, 69, 70, 68, 3, 68, 70, 68, 0, 12, 8, + 14, 65, 62, 62, 60, 56, 48, 44, 31, 18, 69, + 68, 28, 21, 17, 10, 7, 2, 64, 66, 76, 77, 72, + 69, 69, 70, 68, 3, 68, 70, 68, 0, 12, 8, 14, + 65, 62, 62, 60, 56, 48, 44, 31, 18, 69 }, + + { + + 62, + 9, 74, 62, 9, 74, 118, 96, 12, 10, 10, 38, 56, + 59, 16, 2, 90, 39, 83, 94, 5, 5, 67, 2, 17, + 47, 54, 47, 10, 100, 117, 110, 73, 83, 94, 5, + 91, 83, 21, 7, 85, 98, 109, 1, 64, 85, 97, 0, + 83, 101, 64, 76, 89, 100, 8, 77, 74, 93, 16, + 3, 22, 0, 0, 0, 80, 87, 97, 69, 18, 1, 27, 85, + 120, 115, 85, 90, 76, 78, 85, 85, 117, 71, 97, + 85, 115, 83, 77, 84, 79, 10, 1, 78, 115, 77, + 100, 87, 117, 65, 78, 72, 90, 9, 68, 68, 93, + 84, 84, 80, 71, 65, 69, 84, 66, 5, 67, 5, 69, + 70, 5, 73, 21, 68, 1, 15, 18, 23, 23, 12, 78, + 75, 79, 9, 67, 88, 67, 67, 73, 77, 76, 6, 37, + 7, 84, 77, 68, 71, 30, 37, 95, 65, 66, 79, 1, + 1, 67, 74, 33, 56, 41, 67, 71, 116, 21, 62, + 62, 120, 23, 21, 27, 31, 30, 25, 19, 23, 28, + 16, 23, 15, 8, 5, 2, 17, 16, 17, 13, 6, 10, + 22, 12, 0, 12, 15, 69, 24, 65, 62, 62, 58, 46, + 55, 62, 62, 62, 41, 29, 23, 23, 38, 34, 79, + 23, 27, 11, 42, 23, 23, 29, 35, 34, 42, 39, + 14, 93, 3, 2, 17, 119, 107, 75, 4, 10, 4, 80, + 84, 89, 88, 117, 93, 11, 0, 67, 73, 78, 83, + 96, 93, 115, 78, 18, 5, 0, 67, 70, 75, 80, 88, + 102, 77, 1, 70, 6, 5, 73, 80, 79, 94, 76, 27, + 6, 7, 5, 68, 72, 81, 80, 83, 62, 120, 119, + 112, 118, 108, 109, 110, 108, 105, 109, 110, + 112, 90, 97, 95, 101, 111, 90, 1, 84, 89, 87, + 76, 71, 72, 65, 78, 65, 2, 67, 68, 0, 68, 77, + 64, 68, 76, 6, 3, 65, 5, 15, 2, 70, 75, 80, + 73, 65, 66, 5, 6, 69, 65, 72, 8, 7, 74, 78, + 76, 76, 14, 62, 62, 62, 62, 62, 62, 62, 62, + 62, 62, 62, 62, 62, 62, 42, 62, 62, 62, 62, + 62, 55, 40, 52, 50, 37, 19, 13, 5, 79, 62, 62, + 62, 52, 38, 39, 31, 31, 38, 35, 26, 12, 24, 8, + 68, 27, 32, 28, 33, 39, 26, 25, 16, 15, 65, 7, + 64, 78, 118, 4, 1, 68, 24, 8, 66, 77, 71, 69, + 68, 69, 67, 4, 68, 69, 67, 1, 13, 9, 14, 64, + 62, 62, 58, 54, 46, 42, 29, 16, 70, 68, 29, + 22, 18, 11, 8, 3, 64, 66, 75, 77, 71, 69, 68, + 69, 67, 4, 68, 69, 67, 1, 13, 9, 14, 64, 62, + 62, 58, 54, 46, 42, 29, 16, 70 }, + + { + + 62, + 9, 75, 62, 9, 75, 116, 95, 13, 10, 10, 37, 54, + 58, 16, 3, 88, 38, 83, 93, 5, 4, 66, 1, 16, + 46, 53, 43, 8, 101, 115, 108, 73, 83, 93, 5, + 90, 82, 22, 7, 84, 97, 108, 64, 65, 85, 98, 0, + 83, 101, 64, 77, 88, 100, 7, 77, 74, 92, 16, + 3, 22, 0, 0, 0, 79, 87, 97, 69, 18, 0, 27, 84, + 119, 113, 84, 89, 74, 76, 84, 84, 115, 70, 96, + 85, 113, 84, 77, 84, 79, 11, 1, 77, 113, 77, + 99, 86, 115, 65, 78, 72, 90, 10, 69, 68, 93, + 84, 83, 80, 70, 65, 69, 83, 65, 5, 67, 5, 69, + 70, 5, 73, 21, 68, 1, 15, 18, 24, 24, 13, 79, + 74, 78, 8, 67, 88, 67, 66, 73, 77, 75, 7, 37, + 9, 83, 78, 69, 71, 30, 37, 95, 66, 66, 80, 1, + 0, 66, 73, 33, 56, 42, 66, 72, 115, 20, 62, + 62, 118, 23, 21, 27, 30, 29, 24, 19, 22, 27, + 16, 23, 15, 7, 5, 1, 16, 15, 16, 13, 6, 10, + 22, 11, 65, 12, 14, 69, 23, 66, 62, 62, 56, + 44, 53, 62, 62, 62, 39, 27, 21, 21, 36, 32, + 81, 22, 25, 9, 40, 22, 22, 28, 33, 32, 40, 37, + 12, 93, 2, 1, 16, 118, 106, 73, 5, 10, 4, 79, + 84, 89, 87, 116, 92, 12, 1, 66, 73, 77, 82, + 95, 92, 113, 78, 18, 5, 0, 67, 69, 75, 79, 87, + 101, 77, 3, 69, 6, 5, 73, 79, 79, 94, 76, 28, + 6, 8, 5, 67, 72, 81, 79, 83, 62, 118, 117, + 110, 116, 106, 108, 108, 107, 104, 107, 108, + 110, 90, 96, 95, 101, 108, 90, 0, 84, 89, 86, + 76, 71, 72, 65, 78, 65, 1, 67, 68, 0, 68, 77, + 64, 68, 76, 6, 3, 65, 4, 14, 2, 70, 75, 79, + 74, 65, 65, 4, 6, 69, 65, 71, 8, 7, 73, 77, + 76, 76, 12, 62, 62, 62, 62, 62, 62, 62, 62, + 62, 62, 62, 62, 62, 62, 40, 62, 62, 62, 62, + 62, 52, 38, 50, 48, 35, 18, 12, 4, 79, 62, 62, + 62, 50, 36, 38, 29, 29, 36, 32, 24, 10, 22, 6, + 69, 26, 30, 26, 31, 37, 24, 23, 14, 13, 66, 6, + 65, 79, 117, 3, 64, 70, 23, 6, 67, 76, 71, 68, + 68, 68, 66, 5, 68, 68, 66, 2, 13, 10, 15, 0, + 62, 62, 56, 52, 44, 40, 27, 14, 71, 67, 29, + 22, 19, 11, 9, 3, 0, 65, 75, 76, 71, 68, 68, + 68, 66, 5, 68, 68, 66, 2, 13, 10, 15, 0, 62, + 62, 56, 52, 44, 40, 27, 14, 71 }, + + { + + 62, + 9, 75, 62, 9, 75, 114, 93, 13, 10, 9, 35, 53, + 57, 17, 3, 87, 36, 83, 91, 4, 4, 65, 0, 15, + 45, 51, 40, 5, 102, 113, 107, 73, 83, 91, 4, + 90, 81, 22, 7, 84, 96, 106, 65, 66, 85, 98, 0, + 82, 100, 65, 77, 88, 100, 7, 77, 74, 91, 17, + 3, 22, 0, 0, 0, 79, 87, 97, 68, 17, 0, 26, 84, + 118, 111, 83, 88, 73, 75, 83, 83, 113, 69, 95, + 84, 110, 84, 78, 84, 80, 11, 1, 76, 110, 76, + 99, 86, 113, 65, 78, 72, 90, 10, 69, 67, 92, + 84, 82, 79, 70, 65, 68, 82, 65, 5, 68, 5, 69, + 70, 5, 73, 21, 68, 1, 16, 18, 24, 24, 13, 79, + 74, 78, 8, 67, 87, 67, 65, 72, 76, 73, 9, 38, + 10, 81, 78, 70, 70, 31, 37, 96, 66, 65, 80, 2, + 0, 66, 72, 33, 56, 42, 64, 73, 113, 19, 62, + 62, 117, 23, 21, 26, 30, 29, 24, 18, 22, 27, + 15, 22, 15, 7, 5, 1, 16, 15, 15, 12, 6, 10, + 21, 11, 66, 11, 13, 69, 22, 66, 62, 62, 54, + 43, 52, 62, 62, 62, 38, 25, 19, 20, 34, 30, + 82, 21, 24, 8, 39, 21, 21, 26, 32, 30, 38, 36, + 11, 93, 1, 0, 14, 116, 104, 72, 5, 10, 4, 78, + 83, 88, 87, 114, 90, 13, 2, 66, 72, 75, 81, + 93, 91, 110, 77, 19, 6, 1, 66, 68, 74, 79, 86, + 100, 77, 4, 68, 6, 5, 72, 79, 79, 93, 75, 28, + 7, 8, 5, 66, 71, 80, 79, 82, 62, 117, 116, + 109, 115, 105, 106, 107, 105, 102, 105, 106, + 107, 89, 95, 94, 100, 105, 89, 64, 83, 88, 85, + 76, 71, 72, 65, 77, 66, 0, 67, 68, 1, 68, 77, + 64, 68, 75, 5, 2, 65, 3, 13, 1, 70, 75, 78, + 75, 66, 64, 4, 5, 69, 65, 71, 7, 6, 73, 77, + 76, 76, 11, 62, 62, 62, 62, 62, 62, 62, 62, + 62, 62, 62, 62, 62, 62, 38, 62, 62, 62, 62, + 62, 50, 36, 48, 45, 33, 17, 11, 3, 79, 62, 61, + 62, 48, 34, 36, 28, 27, 34, 30, 22, 8, 20, 5, + 71, 25, 29, 24, 30, 36, 23, 21, 13, 12, 67, 5, + 66, 79, 116, 1, 65, 71, 21, 5, 68, 76, 70, 68, + 67, 67, 65, 5, 67, 67, 65, 3, 14, 11, 15, 0, + 62, 60, 54, 50, 42, 38, 24, 12, 72, 67, 30, + 23, 19, 12, 10, 4, 0, 65, 74, 76, 70, 68, 67, + 67, 65, 5, 67, 67, 65, 3, 14, 11, 15, 0, 62, + 60, 54, 50, 42, 38, 24, 12, 72 }, + + { + + 62, + 8, 75, 62, 8, 75, 113, 92, 13, 10, 9, 33, 51, + 56, 17, 3, 85, 34, 83, 90, 4, 3, 64, 64, 13, + 43, 49, 36, 3, 103, 111, 106, 73, 83, 90, 4, + 90, 81, 22, 6, 83, 95, 105, 66, 68, 86, 99, 0, + 82, 99, 65, 78, 88, 100, 7, 77, 74, 91, 17, 3, + 22, 0, 0, 0, 78, 88, 97, 68, 16, 0, 26, 83, + 117, 109, 82, 88, 71, 73, 83, 82, 111, 69, 94, + 83, 108, 85, 78, 85, 80, 11, 0, 76, 108, 76, + 98, 85, 112, 65, 78, 72, 90, 10, 69, 67, 91, + 84, 82, 79, 70, 65, 68, 81, 64, 5, 68, 4, 69, + 70, 4, 73, 21, 68, 1, 16, 18, 24, 24, 13, 80, + 73, 77, 7, 67, 87, 67, 64, 72, 76, 72, 10, 39, + 12, 79, 79, 71, 70, 31, 37, 97, 66, 65, 81, 2, + 0, 66, 71, 33, 56, 42, 0, 74, 112, 18, 59, 62, + 116, 22, 21, 26, 29, 28, 23, 18, 22, 26, 14, + 21, 14, 7, 4, 0, 15, 14, 14, 12, 5, 9, 20, 10, + 67, 10, 12, 69, 20, 67, 62, 62, 52, 41, 50, + 60, 62, 62, 37, 23, 16, 18, 31, 28, 84, 19, + 23, 6, 38, 20, 20, 25, 30, 28, 36, 34, 9, 93, + 0, 64, 12, 115, 103, 71, 6, 10, 4, 78, 82, 87, + 86, 112, 89, 13, 2, 65, 72, 74, 80, 92, 90, + 108, 77, 19, 6, 1, 66, 68, 74, 78, 86, 99, 77, + 5, 67, 6, 5, 71, 78, 79, 92, 74, 28, 8, 8, 5, + 65, 71, 79, 78, 82, 62, 116, 114, 107, 113, + 104, 105, 105, 104, 101, 104, 104, 105, 89, + 94, 94, 99, 102, 89, 65, 83, 87, 85, 76, 71, + 72, 66, 77, 66, 64, 67, 68, 1, 68, 77, 65, 68, + 75, 5, 2, 66, 2, 12, 1, 71, 75, 77, 76, 66, + 64, 3, 5, 69, 66, 71, 7, 6, 73, 76, 76, 76, 9, + 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, + 62, 62, 61, 36, 62, 62, 62, 62, 61, 48, 34, + 45, 43, 31, 15, 9, 2, 79, 61, 59, 62, 46, 31, + 34, 26, 24, 32, 28, 20, 6, 17, 3, 72, 23, 28, + 21, 28, 34, 21, 19, 11, 10, 68, 4, 67, 79, + 115, 0, 67, 73, 20, 4, 69, 76, 70, 67, 67, 66, + 65, 6, 67, 66, 65, 4, 14, 11, 16, 1, 61, 58, + 52, 48, 40, 36, 22, 10, 74, 66, 30, 23, 20, + 12, 10, 4, 1, 65, 74, 76, 70, 67, 67, 66, 65, + 6, 67, 66, 65, 4, 14, 11, 16, 1, 61, 58, 52, + 48, 40, 36, 22, 10, 74 }, + + { + + 62, + 8, 75, 62, 8, 75, 111, 91, 14, 10, 9, 31, 49, + 56, 18, 3, 83, 33, 82, 88, 4, 3, 0, 64, 12, + 42, 47, 33, 1, 103, 109, 104, 72, 82, 88, 4, + 89, 80, 23, 6, 82, 94, 104, 67, 69, 86, 99, 0, + 82, 98, 65, 78, 88, 100, 7, 76, 73, 90, 17, 3, + 22, 0, 0, 0, 77, 88, 97, 68, 15, 0, 26, 82, + 115, 106, 81, 87, 69, 71, 82, 81, 109, 68, 92, + 82, 106, 86, 78, 85, 80, 12, 0, 75, 106, 76, + 97, 84, 110, 65, 77, 72, 89, 11, 69, 66, 90, + 83, 81, 79, 70, 64, 67, 80, 0, 5, 68, 4, 68, + 69, 4, 73, 22, 68, 1, 16, 19, 25, 24, 14, 80, + 72, 76, 6, 67, 87, 67, 0, 72, 75, 71, 11, 40, + 14, 77, 80, 72, 69, 31, 38, 98, 66, 65, 81, 3, + 0, 66, 69, 33, 56, 42, 1, 75, 111, 17, 57, 62, + 114, 22, 21, 26, 28, 28, 23, 18, 22, 26, 13, + 20, 14, 7, 4, 0, 15, 13, 14, 12, 5, 9, 19, 9, + 68, 10, 12, 69, 19, 67, 62, 62, 51, 40, 48, + 58, 62, 62, 36, 21, 14, 17, 29, 27, 85, 18, + 22, 4, 37, 19, 19, 24, 28, 27, 34, 32, 8, 93, + 0, 65, 11, 113, 101, 69, 7, 10, 4, 77, 81, 86, + 85, 110, 88, 14, 3, 64, 71, 73, 79, 91, 89, + 106, 76, 20, 7, 2, 66, 67, 73, 77, 85, 97, 76, + 7, 66, 7, 5, 70, 77, 78, 91, 73, 29, 9, 9, 6, + 64, 70, 78, 77, 81, 62, 114, 112, 105, 111, + 103, 104, 103, 102, 99, 102, 102, 103, 88, 93, + 93, 98, 98, 89, 66, 83, 86, 84, 75, 71, 72, + 66, 77, 66, 65, 67, 68, 2, 68, 77, 65, 68, 75, + 5, 2, 66, 2, 11, 1, 71, 74, 75, 76, 66, 0, 2, + 5, 69, 66, 70, 7, 6, 72, 75, 75, 75, 7, 62, + 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, + 62, 58, 34, 62, 62, 62, 62, 58, 46, 33, 43, + 41, 30, 14, 8, 1, 79, 59, 57, 60, 44, 29, 32, + 25, 22, 30, 26, 18, 4, 15, 1, 73, 22, 27, 19, + 27, 32, 20, 17, 10, 9, 69, 3, 67, 79, 114, 64, + 68, 75, 19, 3, 70, 76, 69, 66, 66, 64, 64, 7, + 67, 65, 64, 5, 15, 12, 17, 2, 60, 57, 50, 46, + 38, 34, 20, 8, 75, 65, 30, 24, 21, 13, 11, 5, + 2, 64, 73, 76, 69, 66, 66, 64, 64, 7, 67, 65, + 64, 5, 15, 12, 17, 2, 60, 57, 50, 46, 38, 34, + 20, 8, 75 }, + + { + + 62, + 8, 75, 62, 8, 75, 109, 89, 14, 10, 8, 29, 48, + 55, 19, 3, 82, 31, 82, 87, 3, 3, 1, 65, 11, + 41, 45, 30, 65, 104, 107, 103, 72, 82, 87, 3, + 89, 79, 23, 6, 82, 93, 102, 68, 70, 86, 99, 0, + 81, 97, 66, 78, 88, 100, 7, 76, 73, 89, 18, 3, + 22, 0, 0, 0, 77, 88, 97, 67, 14, 0, 25, 82, + 114, 104, 80, 86, 68, 70, 81, 80, 107, 67, 91, + 81, 103, 86, 79, 85, 81, 12, 0, 74, 103, 75, + 97, 84, 108, 65, 77, 72, 89, 11, 69, 66, 89, + 83, 80, 78, 70, 64, 67, 79, 0, 5, 69, 4, 68, + 69, 4, 73, 22, 68, 1, 17, 19, 25, 24, 14, 81, + 72, 76, 6, 67, 86, 67, 1, 71, 75, 69, 13, 41, + 15, 75, 80, 73, 69, 32, 38, 99, 66, 64, 82, 4, + 0, 66, 68, 33, 56, 42, 3, 76, 109, 16, 54, 62, + 113, 22, 21, 25, 28, 27, 23, 17, 22, 25, 12, + 19, 14, 7, 4, 0, 14, 13, 13, 11, 5, 9, 18, 9, + 69, 9, 11, 69, 18, 68, 60, 62, 49, 38, 47, 56, + 62, 62, 35, 19, 12, 15, 27, 25, 86, 17, 21, 3, + 36, 18, 18, 22, 27, 25, 32, 31, 6, 93, 64, 66, + 9, 112, 100, 68, 7, 10, 4, 76, 80, 85, 85, + 108, 86, 15, 4, 64, 70, 71, 78, 89, 88, 103, + 75, 20, 7, 2, 65, 66, 72, 77, 84, 96, 76, 8, + 65, 7, 5, 69, 77, 78, 90, 72, 29, 10, 9, 6, 0, + 69, 77, 77, 80, 62, 113, 111, 104, 110, 102, + 102, 102, 100, 98, 100, 100, 100, 87, 92, 92, + 97, 95, 88, 67, 82, 85, 83, 75, 71, 72, 66, + 76, 67, 66, 67, 68, 3, 68, 77, 65, 68, 74, 4, + 1, 66, 1, 10, 0, 71, 74, 74, 77, 67, 1, 2, 4, + 69, 66, 70, 6, 5, 72, 75, 75, 75, 6, 62, 62, + 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, + 56, 32, 62, 62, 62, 62, 55, 44, 31, 41, 38, + 28, 13, 7, 0, 79, 57, 54, 57, 42, 27, 30, 23, + 20, 28, 24, 16, 2, 13, 0, 75, 21, 26, 17, 25, + 31, 18, 15, 9, 8, 70, 2, 68, 79, 113, 66, 69, + 76, 17, 2, 71, 76, 69, 66, 65, 0, 0, 7, 66, + 64, 0, 6, 15, 13, 17, 2, 60, 55, 48, 44, 36, + 32, 17, 6, 76, 65, 31, 24, 21, 14, 12, 5, 2, + 64, 72, 76, 69, 66, 65, 0, 0, 7, 66, 64, 0, 6, + 15, 13, 17, 2, 60, 55, 48, 44, 36, 32, 17, 6, + 76 }, + + { + + 62, + 8, 76, 62, 8, 76, 107, 88, 15, 10, 8, 28, 46, + 54, 19, 4, 80, 30, 82, 85, 3, 2, 2, 66, 10, + 40, 44, 26, 67, 105, 105, 101, 72, 82, 85, 3, + 88, 78, 24, 6, 81, 92, 101, 70, 71, 86, 100, + 0, 81, 97, 66, 79, 87, 100, 6, 76, 73, 88, 18, + 3, 22, 0, 0, 0, 76, 88, 97, 67, 14, 64, 25, + 81, 113, 102, 79, 85, 66, 68, 80, 79, 105, 66, + 90, 81, 101, 87, 79, 85, 81, 13, 0, 73, 101, + 75, 96, 83, 106, 65, 77, 72, 89, 12, 70, 65, + 89, 83, 79, 78, 69, 64, 66, 78, 1, 5, 69, 4, + 68, 69, 4, 73, 22, 68, 1, 17, 19, 26, 25, 15, + 81, 71, 75, 5, 67, 86, 67, 2, 71, 74, 68, 14, + 41, 17, 74, 81, 74, 68, 32, 38, 99, 67, 64, + 82, 4, 64, 65, 67, 33, 56, 43, 4, 77, 108, 15, + 51, 62, 111, 22, 21, 25, 27, 27, 22, 17, 21, + 25, 12, 19, 14, 6, 4, 64, 14, 12, 12, 11, 5, + 9, 18, 8, 71, 9, 10, 69, 17, 68, 57, 62, 47, + 37, 45, 54, 62, 61, 33, 17, 10, 14, 25, 23, + 88, 16, 19, 1, 34, 17, 17, 21, 25, 23, 30, 29, + 5, 93, 65, 67, 8, 110, 98, 66, 8, 10, 4, 75, + 80, 85, 84, 107, 85, 16, 5, 0, 70, 70, 77, 88, + 87, 101, 75, 21, 8, 3, 65, 65, 72, 76, 83, 95, + 76, 10, 64, 7, 5, 69, 76, 78, 90, 72, 30, 10, + 10, 6, 1, 69, 77, 76, 80, 62, 111, 109, 102, + 108, 100, 101, 100, 99, 96, 98, 98, 98, 87, + 91, 92, 97, 92, 88, 68, 82, 85, 82, 75, 71, + 72, 66, 76, 67, 67, 67, 68, 3, 68, 77, 65, 68, + 74, 4, 1, 66, 0, 9, 0, 71, 74, 73, 78, 67, 2, + 1, 4, 69, 66, 69, 6, 5, 71, 74, 75, 75, 4, 62, + 61, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, + 62, 53, 30, 62, 62, 62, 62, 53, 41, 29, 39, + 36, 26, 12, 6, 64, 79, 55, 52, 55, 40, 25, 29, + 22, 18, 26, 21, 14, 0, 11, 65, 76, 20, 24, 15, + 24, 29, 17, 13, 7, 6, 71, 1, 69, 80, 112, 67, + 71, 78, 16, 0, 72, 75, 68, 65, 65, 1, 1, 8, + 66, 0, 1, 7, 16, 14, 18, 3, 59, 53, 46, 42, + 34, 30, 15, 4, 77, 64, 31, 25, 22, 14, 13, 6, + 3, 0, 72, 75, 68, 65, 65, 1, 1, 8, 66, 0, 1, + 7, 16, 14, 18, 3, 59, 53, 46, 42, 34, 30, 15, + 4, 77 }, + + { + + 62, + 8, 76, 62, 8, 76, 106, 86, 15, 10, 7, 26, 45, + 53, 20, 4, 78, 28, 82, 84, 3, 2, 3, 67, 8, 38, + 42, 23, 69, 106, 103, 100, 72, 82, 84, 3, 88, + 77, 24, 5, 80, 91, 100, 71, 73, 87, 100, 0, + 81, 96, 66, 79, 87, 100, 6, 76, 73, 88, 19, 3, + 22, 0, 0, 0, 76, 89, 97, 66, 13, 64, 24, 81, + 112, 100, 78, 84, 65, 67, 80, 78, 103, 65, 89, + 80, 99, 88, 79, 85, 81, 13, 64, 72, 99, 75, + 95, 82, 104, 65, 77, 72, 89, 12, 70, 65, 88, + 83, 79, 78, 69, 64, 66, 77, 1, 5, 69, 3, 68, + 69, 4, 73, 22, 68, 1, 18, 19, 26, 25, 15, 82, + 71, 74, 5, 67, 86, 67, 3, 71, 74, 67, 15, 42, + 18, 72, 81, 75, 68, 32, 38, 100, 67, 0, 83, 5, + 64, 65, 66, 33, 56, 43, 5, 78, 106, 14, 48, + 60, 110, 21, 21, 24, 26, 26, 22, 16, 21, 24, + 11, 18, 13, 6, 4, 64, 13, 11, 11, 10, 4, 8, + 17, 8, 72, 8, 9, 69, 15, 69, 55, 62, 45, 35, + 43, 52, 62, 58, 32, 15, 7, 12, 23, 21, 89, 14, + 18, 64, 33, 16, 16, 20, 24, 21, 28, 27, 3, 93, + 66, 68, 6, 109, 97, 65, 8, 10, 4, 74, 79, 84, + 83, 105, 84, 17, 5, 1, 69, 69, 76, 86, 86, 99, + 74, 21, 8, 3, 64, 64, 71, 76, 83, 94, 76, 11, + 0, 7, 5, 68, 76, 78, 89, 71, 30, 11, 10, 6, 2, + 68, 76, 76, 79, 62, 110, 108, 101, 106, 99, + 99, 99, 97, 95, 97, 96, 96, 86, 90, 91, 96, + 89, 88, 69, 82, 84, 82, 75, 71, 72, 67, 75, + 67, 68, 67, 68, 4, 68, 77, 65, 68, 74, 3, 1, + 66, 64, 8, 0, 71, 74, 72, 79, 67, 2, 0, 4, 69, + 66, 69, 6, 4, 71, 73, 75, 75, 3, 62, 60, 62, + 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 50, + 28, 62, 62, 62, 62, 50, 39, 27, 37, 33, 24, + 10, 5, 65, 79, 52, 50, 53, 38, 23, 27, 20, 16, + 24, 19, 12, 65, 8, 67, 77, 19, 23, 12, 22, 27, + 15, 11, 6, 5, 72, 0, 70, 80, 111, 68, 72, 79, + 15, 64, 73, 75, 68, 65, 64, 2, 1, 9, 66, 1, 2, + 8, 16, 15, 18, 4, 59, 51, 44, 40, 32, 28, 13, + 2, 79, 64, 32, 25, 23, 15, 13, 6, 3, 0, 71, + 75, 68, 65, 64, 2, 1, 9, 66, 1, 2, 8, 16, 15, + 18, 4, 59, 51, 44, 40, 32, 28, 13, 2, 79 }, + + { + + 62, + 8, 76, 62, 8, 76, 104, 85, 15, 10, 7, 24, 43, + 52, 21, 4, 77, 26, 81, 82, 2, 2, 4, 68, 7, 37, + 40, 20, 72, 106, 101, 99, 72, 81, 82, 2, 88, + 76, 24, 5, 80, 90, 98, 72, 74, 87, 100, 0, 80, + 95, 67, 79, 87, 100, 6, 75, 73, 87, 19, 3, 22, + 0, 0, 0, 75, 89, 97, 66, 12, 64, 24, 80, 110, + 97, 77, 83, 0, 65, 79, 77, 101, 64, 88, 79, + 96, 88, 80, 85, 82, 13, 64, 71, 96, 74, 95, + 82, 102, 65, 77, 72, 88, 12, 70, 64, 87, 82, + 78, 77, 69, 0, 65, 76, 2, 5, 70, 3, 67, 69, 4, + 73, 23, 68, 1, 18, 20, 26, 25, 15, 82, 70, 74, + 4, 67, 85, 67, 4, 70, 73, 65, 17, 43, 20, 70, + 82, 76, 67, 33, 38, 101, 67, 0, 83, 6, 64, 65, + 64, 33, 56, 43, 7, 79, 105, 13, 46, 57, 109, + 21, 21, 24, 26, 26, 22, 16, 21, 24, 10, 17, + 13, 6, 4, 64, 13, 11, 10, 10, 4, 8, 16, 7, 73, + 7, 9, 69, 14, 69, 53, 62, 44, 34, 42, 50, 62, + 56, 31, 13, 5, 11, 21, 19, 90, 13, 17, 65, 32, + 15, 15, 18, 22, 19, 26, 26, 2, 93, 67, 69, 4, + 107, 95, 64, 9, 10, 4, 73, 78, 83, 83, 103, + 82, 18, 6, 1, 68, 67, 75, 85, 85, 96, 73, 22, + 9, 4, 64, 0, 70, 75, 82, 93, 75, 12, 1, 7, 5, + 67, 75, 77, 88, 70, 30, 12, 10, 6, 3, 67, 75, + 75, 78, 62, 109, 106, 99, 105, 98, 98, 97, 95, + 93, 95, 94, 93, 85, 89, 90, 95, 86, 87, 70, + 81, 83, 81, 75, 71, 72, 67, 75, 68, 69, 67, + 68, 5, 68, 77, 65, 68, 73, 3, 0, 66, 65, 7, + 64, 71, 74, 71, 79, 68, 3, 0, 3, 69, 66, 69, + 5, 4, 71, 73, 75, 75, 1, 62, 59, 62, 62, 62, + 62, 62, 62, 62, 62, 62, 62, 60, 48, 26, 62, + 62, 62, 62, 47, 37, 26, 35, 31, 22, 9, 4, 66, + 79, 50, 47, 50, 36, 21, 25, 19, 14, 22, 17, + 10, 67, 6, 68, 79, 18, 22, 10, 21, 26, 14, 9, + 5, 4, 73, 64, 71, 80, 110, 70, 73, 81, 13, 65, + 74, 75, 67, 64, 0, 3, 2, 9, 65, 2, 3, 9, 17, + 16, 19, 4, 58, 49, 42, 38, 30, 26, 10, 0, 80, + 0, 32, 26, 23, 16, 14, 7, 4, 0, 70, 75, 67, + 64, 0, 3, 2, 9, 65, 2, 3, 9, 17, 16, 19, 4, + 58, 49, 42, 38, 30, 26, 10, 0, 80 }, + + { + + 61, + 8, 76, 61, 8, 76, 102, 83, 16, 10, 6, 22, 42, + 51, 21, 4, 75, 25, 81, 81, 2, 1, 5, 69, 6, 36, + 38, 16, 74, 107, 99, 97, 72, 81, 81, 2, 87, + 75, 25, 5, 79, 89, 97, 73, 75, 87, 101, 0, 80, + 94, 67, 80, 87, 100, 6, 75, 73, 86, 20, 3, 22, + 0, 0, 0, 75, 89, 97, 65, 11, 64, 23, 80, 109, + 95, 76, 82, 1, 64, 78, 76, 99, 0, 87, 78, 94, + 89, 80, 85, 82, 14, 64, 70, 94, 74, 94, 81, + 100, 65, 77, 72, 88, 13, 70, 64, 86, 82, 77, + 77, 69, 0, 65, 75, 2, 5, 70, 3, 67, 69, 4, 73, + 23, 68, 1, 19, 20, 27, 25, 16, 83, 70, 73, 4, + 67, 85, 67, 5, 70, 73, 64, 18, 44, 21, 68, 82, + 77, 67, 33, 38, 102, 67, 1, 84, 6, 64, 65, 0, + 33, 56, 43, 8, 80, 103, 12, 43, 54, 107, 21, + 21, 23, 25, 25, 21, 15, 21, 23, 9, 16, 13, 6, + 4, 65, 12, 10, 9, 9, 4, 8, 15, 7, 74, 7, 8, + 69, 13, 70, 51, 60, 42, 32, 40, 48, 62, 53, + 30, 11, 3, 9, 19, 17, 92, 12, 16, 67, 31, 14, + 14, 17, 21, 17, 24, 24, 0, 93, 68, 70, 3, 106, + 94, 1, 9, 10, 4, 72, 77, 82, 82, 101, 81, 19, + 7, 2, 68, 66, 74, 83, 84, 94, 73, 22, 9, 4, 0, + 1, 70, 75, 81, 92, 75, 14, 2, 7, 5, 66, 75, + 77, 87, 69, 31, 13, 11, 6, 4, 67, 74, 75, 78, + 62, 107, 105, 98, 103, 97, 96, 96, 94, 92, 93, + 92, 91, 85, 88, 90, 94, 83, 87, 71, 81, 82, + 80, 75, 71, 72, 67, 74, 68, 70, 67, 68, 5, 68, + 77, 65, 68, 73, 2, 0, 66, 66, 6, 64, 71, 74, + 70, 80, 68, 4, 64, 3, 69, 66, 68, 5, 3, 70, + 72, 75, 75, 0, 62, 58, 61, 61, 61, 62, 62, 62, + 61, 62, 62, 62, 57, 45, 24, 62, 60, 59, 60, + 44, 35, 24, 33, 28, 20, 8, 3, 67, 79, 48, 45, + 48, 34, 19, 23, 17, 12, 20, 15, 8, 69, 4, 70, + 80, 17, 21, 8, 19, 24, 12, 7, 3, 2, 74, 65, + 72, 80, 109, 71, 75, 82, 12, 66, 75, 75, 67, + 64, 0, 4, 3, 10, 65, 3, 4, 10, 17, 17, 19, 5, + 58, 47, 40, 36, 28, 24, 8, 65, 81, 0, 33, 26, + 24, 16, 15, 7, 4, 1, 70, 75, 67, 64, 0, 4, 3, + 10, 65, 3, 4, 10, 17, 17, 19, 5, 58, 47, 40, + 36, 28, 24, 8, 65, 81 }, + + { + + 60, + 8, 76, 60, 8, 76, 100, 82, 16, 10, 6, 20, 40, + 50, 22, 4, 73, 23, 81, 79, 2, 1, 6, 70, 5, 35, + 36, 13, 76, 108, 97, 96, 72, 81, 79, 2, 87, + 74, 25, 5, 78, 88, 96, 74, 76, 87, 101, 0, 80, + 93, 67, 80, 87, 100, 6, 75, 73, 85, 20, 3, 22, + 0, 0, 0, 74, 89, 97, 65, 10, 64, 23, 79, 108, + 93, 75, 81, 3, 1, 77, 75, 97, 1, 86, 77, 92, + 90, 80, 85, 82, 14, 64, 69, 92, 74, 93, 80, + 98, 65, 77, 72, 88, 13, 70, 0, 85, 82, 76, 77, + 69, 0, 64, 74, 3, 5, 70, 3, 67, 69, 4, 73, 23, + 68, 1, 19, 20, 27, 25, 16, 83, 69, 72, 3, 67, + 85, 67, 6, 70, 72, 0, 19, 45, 23, 66, 83, 78, + 66, 33, 38, 103, 67, 1, 84, 7, 64, 65, 1, 33, + 56, 43, 9, 81, 102, 11, 40, 51, 106, 21, 21, + 23, 24, 25, 21, 15, 21, 23, 8, 15, 13, 6, 4, + 65, 12, 9, 8, 9, 4, 8, 14, 6, 75, 6, 7, 69, + 12, 70, 49, 58, 40, 31, 38, 46, 59, 51, 29, 9, + 1, 8, 17, 15, 93, 11, 15, 69, 30, 13, 13, 16, + 19, 15, 22, 22, 64, 93, 69, 71, 1, 104, 92, 2, + 10, 10, 4, 71, 76, 81, 81, 99, 80, 20, 8, 3, + 67, 65, 73, 82, 83, 92, 72, 23, 10, 5, 0, 2, + 69, 74, 80, 91, 75, 15, 3, 7, 5, 65, 74, 77, + 86, 68, 31, 14, 11, 6, 5, 66, 73, 74, 77, 62, + 106, 103, 96, 101, 96, 95, 94, 92, 90, 91, 90, + 89, 84, 87, 89, 93, 80, 87, 72, 81, 81, 79, + 75, 71, 72, 67, 74, 68, 71, 67, 68, 6, 68, 77, + 65, 68, 73, 2, 0, 66, 67, 5, 64, 71, 74, 69, + 81, 68, 5, 65, 3, 69, 66, 68, 5, 3, 70, 71, + 75, 75, 65, 61, 57, 60, 59, 59, 62, 62, 62, + 59, 60, 62, 61, 54, 42, 22, 61, 57, 55, 55, + 41, 33, 22, 31, 26, 18, 7, 2, 68, 79, 46, 43, + 46, 32, 17, 21, 16, 10, 18, 13, 6, 71, 2, 72, + 81, 16, 20, 6, 18, 22, 11, 5, 2, 1, 75, 66, + 73, 80, 108, 72, 76, 84, 11, 67, 76, 75, 66, + 0, 1, 5, 4, 11, 65, 4, 5, 11, 18, 18, 20, 6, + 57, 45, 38, 34, 26, 22, 6, 67, 82, 1, 33, 27, + 25, 17, 16, 8, 5, 1, 69, 75, 66, 0, 1, 5, 4, + 11, 65, 4, 5, 11, 18, 18, 20, 6, 57, 45, 38, + 34, 26, 22, 6, 67, 82 }, + + { + + 58, + 7, 77, 58, 7, 77, 99, 81, 16, 10, 5, 18, 38, + 49, 22, 4, 72, 21, 81, 78, 1, 0, 7, 71, 3, 33, + 34, 9, 79, 109, 95, 95, 72, 81, 78, 1, 87, 74, + 25, 4, 78, 88, 95, 76, 78, 88, 102, 64, 80, + 93, 68, 81, 87, 100, 5, 75, 73, 85, 20, 2, 22, + 0, 0, 0, 74, 90, 97, 65, 9, 65, 22, 79, 107, + 91, 74, 81, 4, 2, 77, 74, 96, 1, 85, 77, 90, + 91, 81, 86, 83, 14, 65, 69, 90, 74, 93, 80, + 97, 65, 77, 72, 88, 13, 71, 0, 85, 82, 76, 77, + 69, 0, 64, 73, 3, 5, 71, 2, 67, 69, 3, 73, 23, + 68, 1, 19, 20, 27, 25, 16, 84, 69, 72, 2, 67, + 85, 68, 6, 70, 72, 1, 20, 45, 24, 65, 84, 80, + 66, 33, 38, 104, 68, 1, 85, 7, 65, 65, 2, 33, + 55, 43, 10, 82, 101, 9, 37, 47, 105, 20, 21, + 22, 23, 24, 20, 14, 20, 22, 7, 14, 12, 5, 3, + 66, 11, 8, 7, 8, 3, 7, 13, 5, 77, 5, 6, 69, + 10, 71, 46, 55, 38, 29, 36, 43, 55, 48, 27, 7, + 65, 6, 14, 13, 95, 9, 13, 71, 28, 12, 12, 14, + 17, 13, 20, 20, 66, 93, 70, 72, 64, 103, 91, + 3, 10, 10, 4, 71, 76, 81, 81, 98, 79, 20, 8, + 3, 67, 64, 72, 81, 83, 90, 72, 23, 10, 5, 0, + 2, 69, 74, 80, 90, 75, 16, 4, 7, 4, 65, 74, + 77, 86, 68, 31, 14, 11, 6, 6, 66, 73, 74, 77, + 62, 105, 102, 95, 100, 95, 94, 93, 91, 89, 90, + 89, 87, 84, 87, 89, 93, 77, 87, 74, 81, 81, + 79, 75, 71, 72, 68, 74, 69, 72, 68, 68, 6, 69, + 77, 66, 68, 73, 1, 64, 67, 68, 4, 65, 72, 74, + 68, 82, 69, 5, 66, 2, 69, 67, 68, 4, 2, 70, + 71, 75, 75, 67, 59, 56, 58, 57, 56, 62, 62, + 62, 56, 57, 62, 58, 50, 39, 20, 57, 53, 51, + 49, 38, 30, 20, 28, 23, 16, 5, 0, 69, 79, 43, + 40, 43, 30, 14, 19, 14, 7, 16, 10, 4, 74, 64, + 74, 83, 14, 18, 3, 16, 20, 9, 3, 0, 64, 76, + 67, 74, 81, 107, 74, 78, 86, 9, 69, 78, 75, + 66, 0, 1, 6, 4, 11, 65, 5, 5, 12, 18, 18, 20, + 6, 56, 43, 36, 31, 23, 20, 3, 69, 84, 1, 33, + 27, 25, 17, 16, 8, 5, 1, 69, 75, 66, 0, 1, 6, + 4, 11, 65, 5, 5, 12, 18, 18, 20, 6, 56, 43, + 36, 31, 23, 20, 3, 69, 84 }, + + { + + 57, + 7, 77, 57, 7, 77, 97, 79, 17, 11, 5, 17, 37, + 49, 23, 5, 70, 20, 80, 76, 1, 0, 9, 71, 2, 32, + 33, 6, 81, 109, 93, 93, 71, 80, 76, 1, 86, 73, + 26, 4, 77, 87, 93, 77, 79, 88, 102, 64, 79, + 92, 68, 81, 86, 99, 5, 74, 72, 84, 21, 2, 22, + 0, 0, 0, 73, 90, 97, 64, 9, 65, 22, 78, 105, + 88, 72, 80, 6, 4, 76, 72, 94, 2, 83, 76, 87, + 91, 81, 86, 83, 15, 65, 68, 87, 73, 92, 79, + 95, 65, 76, 72, 87, 14, 71, 1, 84, 81, 75, 76, + 68, 1, 0, 72, 4, 6, 71, 2, 66, 68, 3, 72, 24, + 67, 1, 20, 21, 28, 26, 17, 84, 68, 71, 2, 67, + 84, 68, 7, 69, 71, 3, 22, 46, 26, 0, 84, 81, + 65, 34, 39, 104, 68, 2, 85, 8, 65, 64, 4, 33, + 55, 44, 12, 83, 99, 8, 35, 44, 103, 20, 21, + 22, 23, 24, 20, 14, 20, 22, 7, 14, 12, 5, 3, + 66, 11, 8, 7, 8, 3, 7, 13, 5, 78, 5, 6, 69, 9, + 71, 44, 53, 37, 28, 35, 41, 52, 46, 26, 6, 67, + 5, 12, 12, 96, 8, 12, 72, 27, 12, 12, 13, 16, + 12, 19, 19, 67, 93, 70, 72, 65, 101, 89, 5, + 11, 10, 4, 70, 75, 80, 80, 96, 77, 21, 9, 4, + 66, 1, 71, 79, 82, 87, 71, 24, 11, 6, 1, 3, + 68, 73, 79, 88, 74, 18, 5, 8, 4, 64, 73, 76, + 85, 67, 32, 15, 12, 7, 7, 65, 72, 73, 76, 62, + 103, 100, 93, 98, 93, 92, 91, 89, 87, 88, 87, + 84, 83, 86, 88, 92, 73, 86, 75, 80, 80, 78, + 74, 71, 71, 68, 73, 69, 72, 68, 68, 7, 69, 77, + 66, 68, 72, 1, 64, 67, 68, 4, 65, 72, 73, 66, + 82, 69, 6, 66, 2, 69, 67, 67, 4, 2, 69, 70, + 74, 74, 68, 58, 55, 57, 56, 54, 60, 60, 59, + 54, 55, 59, 56, 47, 37, 18, 54, 50, 48, 44, + 36, 28, 19, 26, 21, 15, 4, 64, 69, 79, 41, 38, + 41, 28, 12, 18, 13, 5, 15, 8, 3, 76, 66, 75, + 84, 13, 17, 1, 15, 19, 8, 2, 64, 65, 77, 67, + 74, 81, 106, 75, 79, 87, 8, 70, 79, 74, 65, 1, + 2, 8, 5, 12, 64, 7, 6, 13, 19, 19, 21, 7, 56, + 42, 35, 29, 21, 19, 1, 70, 85, 2, 34, 28, 26, + 18, 17, 9, 6, 2, 68, 74, 65, 1, 2, 8, 5, 12, + 64, 7, 6, 13, 19, 19, 21, 7, 56, 42, 35, 29, + 21, 19, 1, 70, 85 }, + + { + + 56, + 7, 77, 56, 7, 77, 95, 78, 17, 11, 5, 15, 35, + 48, 24, 5, 68, 18, 80, 75, 1, 0, 10, 72, 1, + 31, 31, 3, 83, 110, 91, 92, 71, 80, 75, 1, 86, + 72, 26, 4, 76, 86, 92, 78, 80, 88, 102, 64, + 79, 91, 68, 81, 86, 99, 5, 74, 72, 83, 21, 2, + 22, 0, 0, 0, 72, 90, 97, 64, 8, 65, 22, 77, + 104, 86, 71, 79, 8, 6, 75, 71, 92, 3, 82, 75, + 85, 92, 81, 86, 83, 15, 65, 67, 85, 73, 91, + 78, 93, 65, 76, 72, 87, 14, 71, 1, 83, 81, 74, + 76, 68, 1, 0, 71, 5, 6, 71, 2, 66, 68, 3, 72, + 24, 67, 1, 20, 21, 28, 26, 17, 85, 67, 70, 1, + 67, 84, 68, 8, 69, 71, 4, 23, 47, 28, 2, 85, + 82, 65, 34, 39, 105, 68, 2, 86, 9, 65, 64, 5, + 33, 55, 44, 13, 84, 98, 7, 32, 41, 102, 20, + 21, 22, 22, 23, 20, 14, 20, 21, 6, 13, 12, 5, + 3, 66, 10, 7, 6, 8, 3, 7, 12, 4, 79, 4, 5, 69, + 8, 72, 42, 51, 35, 26, 33, 39, 49, 44, 25, 4, + 69, 3, 10, 10, 97, 7, 11, 74, 26, 11, 11, 12, + 14, 10, 17, 17, 69, 93, 71, 73, 67, 100, 88, + 6, 12, 10, 4, 69, 74, 79, 79, 94, 76, 22, 10, + 5, 65, 2, 70, 78, 81, 85, 70, 24, 11, 6, 1, 4, + 67, 72, 78, 87, 74, 19, 6, 8, 4, 0, 72, 76, + 84, 66, 32, 16, 12, 7, 8, 64, 71, 72, 75, 62, + 102, 98, 91, 96, 92, 91, 89, 87, 86, 86, 85, + 82, 82, 85, 87, 91, 70, 86, 76, 80, 79, 77, + 74, 71, 71, 68, 73, 69, 73, 68, 68, 8, 69, 77, + 66, 68, 72, 1, 64, 67, 69, 3, 65, 72, 73, 65, + 83, 69, 7, 67, 2, 69, 67, 67, 4, 2, 69, 69, + 74, 74, 70, 57, 54, 56, 54, 52, 57, 57, 56, + 52, 52, 56, 53, 44, 34, 16, 50, 46, 44, 39, + 33, 26, 17, 24, 19, 13, 3, 65, 70, 79, 39, 36, + 39, 26, 10, 16, 11, 3, 13, 6, 1, 78, 68, 77, + 85, 12, 16, 64, 13, 17, 6, 0, 65, 66, 78, 68, + 75, 81, 105, 76, 80, 89, 7, 71, 80, 74, 65, 2, + 3, 9, 6, 13, 64, 8, 7, 14, 19, 20, 22, 8, 55, + 40, 33, 27, 19, 17, 64, 72, 86, 3, 34, 28, 27, + 19, 18, 9, 7, 2, 67, 74, 65, 2, 3, 9, 6, 13, + 64, 8, 7, 14, 19, 20, 22, 8, 55, 40, 33, 27, + 19, 17, 64, 72, 86 }, + + { + + 55, + 7, 77, 55, 7, 77, 93, 76, 18, 11, 4, 13, 34, + 47, 24, 5, 66, 17, 80, 73, 1, 64, 11, 73, 0, + 30, 29, 64, 85, 111, 89, 90, 71, 80, 73, 1, + 85, 71, 27, 4, 75, 85, 91, 79, 81, 88, 103, + 64, 79, 90, 68, 82, 86, 99, 5, 74, 72, 82, 22, + 2, 22, 0, 0, 0, 72, 90, 97, 0, 7, 65, 21, 77, + 103, 84, 70, 78, 9, 7, 74, 70, 90, 4, 81, 74, + 83, 93, 81, 86, 83, 16, 65, 66, 83, 73, 90, + 77, 91, 65, 76, 72, 87, 15, 71, 2, 82, 81, 73, + 76, 68, 1, 1, 70, 5, 6, 71, 2, 66, 68, 3, 72, + 24, 67, 1, 21, 21, 29, 26, 18, 85, 67, 69, 1, + 67, 84, 68, 9, 69, 70, 5, 24, 48, 29, 4, 85, + 83, 64, 34, 39, 106, 68, 3, 86, 9, 65, 64, 6, + 33, 55, 44, 14, 85, 96, 6, 29, 38, 100, 20, + 21, 21, 21, 23, 19, 13, 20, 21, 5, 12, 12, 5, + 3, 67, 10, 6, 5, 7, 3, 7, 11, 4, 80, 4, 4, 69, + 7, 72, 40, 49, 33, 25, 31, 37, 46, 41, 24, 2, + 71, 2, 8, 8, 99, 6, 10, 76, 25, 10, 10, 11, + 13, 8, 15, 15, 70, 93, 72, 74, 68, 98, 86, 8, + 12, 10, 4, 68, 73, 78, 78, 92, 75, 23, 11, 6, + 65, 3, 69, 76, 80, 83, 70, 25, 12, 7, 2, 5, + 67, 72, 77, 86, 74, 21, 7, 8, 4, 1, 72, 76, + 83, 65, 33, 17, 13, 7, 9, 64, 70, 72, 75, 62, + 100, 97, 90, 94, 91, 89, 88, 86, 84, 84, 83, + 80, 82, 84, 87, 90, 67, 86, 77, 80, 78, 76, + 74, 71, 71, 68, 72, 69, 74, 68, 68, 8, 69, 77, + 66, 68, 72, 0, 64, 67, 70, 2, 65, 72, 73, 64, + 84, 69, 8, 68, 2, 69, 67, 66, 4, 1, 68, 68, + 74, 74, 71, 56, 53, 55, 52, 50, 55, 55, 53, + 49, 49, 53, 50, 41, 31, 14, 46, 43, 40, 34, + 30, 24, 15, 22, 16, 11, 2, 66, 71, 79, 37, 34, + 37, 24, 8, 14, 10, 1, 11, 4, 64, 80, 70, 79, + 86, 11, 15, 66, 12, 15, 5, 65, 67, 68, 79, 69, + 76, 81, 104, 77, 82, 90, 6, 72, 81, 74, 64, 2, + 3, 10, 7, 14, 64, 9, 8, 15, 20, 21, 22, 9, 55, + 38, 31, 25, 17, 15, 66, 74, 87, 3, 35, 29, 28, + 19, 19, 10, 7, 3, 67, 74, 64, 2, 3, 10, 7, 14, + 64, 9, 8, 15, 20, 21, 22, 9, 55, 38, 31, 25, + 17, 15, 66, 74, 87 }, + + { + + 53, + 7, 77, 53, 7, 77, 92, 75, 18, 11, 4, 11, 32, + 46, 25, 5, 65, 15, 80, 72, 0, 64, 12, 74, 65, + 28, 27, 67, 88, 112, 87, 89, 71, 80, 72, 0, + 85, 70, 27, 3, 75, 84, 89, 80, 83, 89, 103, + 64, 78, 89, 69, 82, 86, 99, 5, 74, 72, 82, 22, + 2, 22, 0, 0, 0, 71, 91, 97, 0, 6, 65, 21, 76, + 102, 82, 69, 77, 11, 9, 74, 69, 88, 5, 80, 73, + 80, 93, 82, 86, 84, 16, 66, 65, 80, 72, 90, + 77, 89, 65, 76, 72, 87, 15, 71, 2, 81, 81, 73, + 75, 68, 1, 1, 69, 6, 6, 72, 1, 66, 68, 3, 72, + 24, 67, 1, 21, 21, 29, 26, 18, 86, 66, 69, 0, + 67, 83, 68, 10, 68, 70, 7, 26, 49, 31, 6, 86, + 84, 64, 35, 39, 107, 68, 3, 87, 10, 65, 64, 7, + 33, 55, 44, 16, 86, 95, 5, 26, 35, 99, 19, 21, + 21, 21, 22, 19, 13, 20, 20, 4, 11, 11, 5, 3, + 67, 9, 6, 4, 7, 2, 6, 10, 3, 81, 3, 3, 69, 5, + 73, 38, 47, 31, 23, 30, 35, 42, 39, 23, 0, 74, + 0, 6, 6, 100, 4, 9, 77, 24, 9, 9, 9, 11, 6, + 13, 14, 72, 93, 73, 75, 70, 97, 85, 9, 13, 10, + 4, 67, 72, 77, 78, 90, 73, 24, 11, 6, 64, 5, + 68, 75, 79, 80, 69, 25, 12, 7, 2, 6, 66, 71, + 77, 85, 74, 22, 8, 8, 4, 2, 71, 76, 82, 64, + 33, 18, 13, 7, 10, 0, 69, 71, 74, 62, 99, 95, + 88, 93, 90, 88, 86, 84, 83, 83, 81, 77, 81, + 83, 86, 89, 64, 85, 78, 79, 77, 76, 74, 71, + 71, 69, 72, 70, 75, 68, 68, 9, 69, 77, 66, 68, + 71, 0, 65, 67, 71, 1, 66, 72, 73, 0, 85, 70, + 8, 68, 1, 69, 67, 66, 3, 1, 68, 68, 74, 74, + 73, 55, 52, 54, 51, 47, 52, 52, 50, 47, 46, + 49, 47, 37, 29, 12, 42, 39, 36, 29, 27, 22, + 13, 20, 14, 9, 0, 67, 72, 79, 34, 31, 34, 22, + 6, 12, 8, 64, 9, 2, 66, 82, 73, 80, 88, 10, + 14, 69, 10, 14, 3, 67, 68, 69, 80, 70, 77, 81, + 103, 79, 83, 92, 4, 73, 82, 74, 64, 3, 4, 11, + 7, 14, 0, 10, 9, 16, 20, 22, 23, 9, 54, 36, + 29, 23, 15, 13, 69, 76, 89, 4, 35, 29, 28, 20, + 19, 10, 8, 3, 66, 74, 64, 3, 4, 11, 7, 14, 0, + 10, 9, 16, 20, 22, 23, 9, 54, 36, 29, 23, 15, + 13, 69, 76, 89 }, + + { + + 52, + 7, 77, 52, 7, 77, 90, 73, 18, 11, 3, 9, 31, + 45, 26, 5, 0, 13, 79, 70, 0, 64, 13, 75, 66, + 27, 25, 70, 90, 112, 85, 88, 71, 79, 70, 0, + 85, 69, 27, 3, 74, 83, 88, 81, 84, 89, 103, + 64, 78, 88, 69, 82, 86, 99, 5, 73, 72, 81, 23, + 2, 22, 0, 0, 0, 71, 91, 97, 1, 5, 65, 20, 76, + 100, 79, 68, 76, 12, 10, 73, 68, 86, 6, 79, + 72, 78, 94, 82, 86, 84, 16, 66, 64, 78, 72, + 89, 76, 87, 65, 76, 72, 86, 15, 71, 3, 80, 80, + 72, 75, 68, 2, 2, 68, 6, 6, 72, 1, 65, 68, 3, + 72, 25, 67, 1, 22, 22, 29, 26, 18, 86, 66, 68, + 0, 67, 83, 68, 11, 68, 69, 8, 27, 50, 32, 8, + 86, 85, 0, 35, 39, 108, 68, 4, 87, 11, 65, 64, + 9, 33, 55, 44, 17, 87, 93, 4, 24, 32, 98, 19, + 21, 20, 20, 22, 19, 12, 20, 20, 3, 10, 11, 5, + 3, 67, 9, 5, 3, 6, 2, 6, 9, 3, 82, 2, 3, 69, + 4, 73, 36, 45, 30, 22, 28, 33, 39, 36, 22, 65, + 76, 64, 4, 4, 101, 3, 8, 79, 23, 8, 8, 8, 10, + 4, 11, 12, 73, 93, 74, 76, 72, 95, 83, 10, 13, + 10, 4, 66, 71, 76, 77, 88, 72, 25, 12, 7, 0, + 6, 67, 73, 78, 78, 68, 26, 13, 8, 3, 7, 65, + 71, 76, 84, 73, 23, 9, 8, 4, 3, 71, 75, 81, 0, + 33, 19, 13, 7, 11, 1, 68, 71, 73, 62, 98, 94, + 87, 91, 89, 86, 85, 82, 81, 81, 79, 75, 80, + 82, 85, 88, 2, 85, 79, 79, 76, 75, 74, 71, 71, + 69, 71, 70, 76, 68, 68, 10, 69, 77, 66, 68, + 71, 64, 65, 67, 72, 0, 66, 72, 73, 1, 85, 70, + 9, 69, 1, 69, 67, 66, 3, 0, 68, 67, 74, 74, + 74, 54, 51, 53, 49, 45, 50, 49, 47, 44, 43, + 46, 44, 34, 26, 10, 38, 36, 32, 24, 24, 20, + 12, 18, 11, 7, 64, 68, 73, 79, 32, 29, 32, 20, + 4, 10, 7, 66, 7, 0, 68, 84, 75, 82, 89, 9, 13, + 71, 9, 12, 2, 69, 69, 70, 81, 71, 78, 81, 102, + 80, 84, 93, 3, 74, 83, 74, 0, 3, 5, 12, 8, 15, + 0, 11, 10, 17, 21, 23, 23, 10, 54, 34, 27, 21, + 13, 11, 71, 78, 90, 4, 36, 30, 29, 21, 20, 11, + 8, 3, 65, 74, 0, 3, 5, 12, 8, 15, 0, 11, 10, + 17, 21, 23, 23, 10, 54, 34, 27, 21, 13, 11, + 71, 78, 90 }, + + { + + 51, + 7, 78, 51, 7, 78, 88, 72, 19, 11, 3, 8, 29, + 44, 26, 6, 2, 12, 79, 69, 0, 65, 14, 76, 67, + 26, 24, 74, 92, 113, 83, 86, 71, 79, 69, 0, + 84, 68, 28, 3, 73, 82, 87, 83, 85, 89, 104, + 64, 78, 88, 69, 83, 85, 99, 4, 73, 72, 80, 23, + 2, 22, 0, 0, 0, 70, 91, 97, 1, 5, 66, 20, 75, + 99, 77, 67, 75, 14, 12, 72, 67, 84, 7, 78, 72, + 76, 95, 82, 86, 84, 17, 66, 0, 76, 72, 88, 75, + 85, 65, 76, 72, 86, 16, 72, 3, 80, 80, 71, 75, + 67, 2, 2, 67, 7, 6, 72, 1, 65, 68, 3, 72, 25, + 67, 1, 22, 22, 30, 27, 19, 87, 65, 67, 64, 67, + 83, 68, 12, 68, 69, 9, 28, 50, 34, 9, 87, 86, + 0, 35, 39, 108, 69, 4, 88, 11, 66, 0, 10, 33, + 55, 45, 18, 88, 92, 3, 21, 29, 96, 19, 21, 20, + 19, 21, 18, 12, 19, 19, 3, 10, 11, 4, 3, 68, + 8, 4, 2, 6, 2, 6, 9, 2, 84, 2, 2, 69, 3, 74, + 33, 43, 28, 20, 26, 31, 36, 34, 20, 67, 78, + 66, 2, 2, 103, 2, 6, 81, 21, 7, 7, 7, 8, 2, 9, + 10, 75, 93, 75, 77, 73, 94, 82, 12, 14, 10, 4, + 65, 71, 76, 76, 87, 71, 26, 13, 8, 0, 7, 66, + 72, 77, 76, 68, 26, 13, 8, 3, 8, 65, 70, 75, + 83, 73, 25, 10, 8, 4, 3, 70, 75, 81, 0, 34, + 19, 14, 7, 12, 1, 68, 70, 73, 62, 96, 92, 85, + 89, 87, 85, 83, 81, 80, 79, 77, 73, 80, 81, + 85, 88, 5, 85, 80, 79, 76, 74, 74, 71, 71, 69, + 71, 70, 77, 68, 68, 10, 69, 77, 66, 68, 71, + 64, 65, 67, 73, 64, 66, 72, 73, 2, 86, 70, 10, + 70, 1, 69, 67, 65, 3, 0, 67, 66, 74, 74, 76, + 53, 50, 52, 47, 43, 47, 47, 44, 42, 40, 43, + 41, 31, 23, 8, 35, 32, 28, 19, 22, 17, 10, 16, + 9, 5, 65, 69, 74, 79, 30, 27, 30, 18, 2, 9, 5, + 68, 5, 66, 70, 86, 77, 84, 90, 8, 11, 73, 7, + 10, 0, 71, 71, 72, 82, 72, 79, 82, 101, 81, + 86, 95, 2, 76, 84, 73, 0, 4, 5, 13, 9, 16, 0, + 12, 11, 18, 21, 24, 24, 11, 53, 32, 25, 19, + 11, 9, 73, 80, 91, 5, 36, 30, 30, 21, 21, 11, + 9, 4, 65, 73, 0, 4, 5, 13, 9, 16, 0, 12, 11, + 18, 21, 24, 24, 11, 53, 32, 25, 19, 11, 9, 73, + 80, 91 }, + + { + + 50, + 7, 78, 50, 7, 78, 86, 70, 19, 11, 2, 6, 28, + 43, 27, 6, 3, 10, 79, 67, 64, 65, 15, 77, 68, + 25, 22, 77, 95, 114, 81, 85, 71, 79, 67, 64, + 84, 67, 28, 3, 73, 81, 85, 84, 86, 89, 104, + 64, 77, 87, 70, 83, 85, 99, 4, 73, 72, 79, 24, + 2, 22, 0, 0, 0, 70, 91, 97, 2, 4, 66, 19, 75, + 98, 75, 66, 74, 15, 13, 71, 66, 82, 8, 77, 71, + 73, 95, 83, 86, 85, 17, 66, 1, 73, 71, 88, 75, + 83, 65, 76, 72, 86, 16, 72, 4, 79, 80, 70, 74, + 67, 2, 3, 66, 7, 6, 73, 1, 65, 68, 3, 72, 25, + 67, 1, 23, 22, 30, 27, 19, 87, 65, 67, 64, 67, + 82, 68, 13, 67, 68, 11, 30, 51, 35, 11, 87, + 87, 1, 36, 39, 109, 69, 5, 88, 12, 66, 0, 11, + 33, 55, 45, 20, 89, 90, 2, 18, 26, 95, 19, 21, + 19, 19, 21, 18, 11, 19, 19, 2, 9, 11, 4, 3, + 68, 8, 4, 1, 5, 2, 6, 8, 2, 85, 1, 1, 69, 2, + 74, 31, 41, 26, 19, 25, 29, 33, 31, 19, 69, + 80, 67, 0, 0, 104, 1, 5, 82, 20, 6, 6, 5, 7, + 0, 7, 9, 76, 93, 76, 78, 75, 92, 80, 13, 14, + 10, 4, 64, 70, 75, 76, 85, 69, 27, 14, 8, 1, + 9, 65, 70, 76, 73, 67, 27, 14, 9, 4, 9, 64, + 70, 74, 82, 73, 26, 11, 8, 4, 4, 70, 75, 80, + 1, 34, 20, 14, 7, 13, 2, 67, 70, 72, 62, 95, + 91, 84, 88, 86, 83, 82, 79, 78, 77, 75, 70, + 79, 80, 84, 87, 8, 84, 81, 78, 75, 73, 74, 71, + 71, 69, 70, 71, 78, 68, 68, 11, 69, 77, 66, + 68, 70, 65, 66, 67, 74, 65, 67, 72, 73, 3, 87, + 71, 11, 70, 0, 69, 67, 65, 2, 64, 67, 66, 74, + 74, 77, 52, 49, 51, 46, 40, 45, 44, 41, 39, + 37, 40, 38, 28, 21, 6, 31, 29, 24, 14, 19, 15, + 8, 14, 6, 3, 66, 70, 75, 79, 28, 24, 27, 16, + 0, 7, 4, 70, 3, 68, 72, 88, 79, 85, 92, 7, 10, + 75, 6, 9, 64, 73, 72, 73, 83, 73, 80, 82, 100, + 83, 87, 96, 0, 77, 85, 73, 1, 4, 6, 14, 10, + 16, 1, 13, 12, 19, 22, 25, 24, 11, 53, 30, 23, + 17, 9, 7, 76, 82, 92, 5, 37, 31, 30, 22, 22, + 12, 9, 4, 64, 73, 1, 4, 6, 14, 10, 16, 1, 13, + 12, 19, 22, 25, 24, 11, 53, 30, 23, 17, 9, 7, + 76, 82, 92 }, + + { + + 48, + 6, 78, 48, 6, 78, 85, 69, 19, 11, 2, 4, 26, + 42, 27, 6, 5, 8, 79, 66, 64, 66, 16, 78, 70, + 23, 20, 81, 97, 115, 79, 84, 71, 79, 66, 64, + 84, 67, 28, 2, 72, 80, 84, 85, 88, 90, 105, + 64, 77, 86, 70, 84, 85, 99, 4, 73, 72, 79, 24, + 2, 22, 0, 0, 0, 69, 92, 97, 2, 3, 66, 19, 74, + 97, 73, 65, 74, 17, 15, 71, 65, 80, 8, 76, 70, + 71, 96, 83, 87, 85, 17, 67, 1, 71, 71, 87, 74, + 82, 65, 76, 72, 86, 16, 72, 4, 78, 80, 70, 74, + 67, 2, 3, 65, 8, 6, 73, 0, 65, 68, 2, 72, 25, + 67, 1, 23, 22, 30, 27, 19, 88, 64, 66, 65, 67, + 82, 68, 14, 67, 68, 12, 31, 52, 37, 13, 88, + 88, 1, 36, 39, 110, 69, 5, 89, 12, 66, 0, 12, + 33, 55, 45, 21, 90, 89, 1, 15, 22, 94, 18, 21, + 19, 18, 20, 17, 11, 19, 18, 1, 8, 10, 4, 2, + 69, 7, 3, 0, 5, 1, 5, 7, 1, 86, 0, 0, 69, 0, + 75, 29, 39, 24, 17, 23, 26, 29, 29, 18, 71, + 83, 69, 66, 65, 106, 64, 4, 84, 19, 5, 5, 4, + 5, 65, 5, 7, 78, 93, 77, 79, 77, 91, 79, 14, + 15, 10, 4, 64, 69, 74, 75, 83, 68, 27, 14, 9, + 1, 10, 64, 69, 75, 71, 67, 27, 14, 9, 4, 9, + 64, 69, 74, 81, 73, 27, 12, 8, 4, 5, 69, 75, + 79, 2, 34, 21, 14, 7, 14, 2, 66, 69, 72, 62, + 94, 89, 82, 86, 85, 82, 80, 78, 77, 76, 73, + 68, 79, 79, 84, 86, 11, 84, 82, 78, 74, 73, + 74, 71, 71, 70, 70, 71, 79, 68, 68, 11, 69, + 77, 67, 68, 70, 65, 66, 68, 75, 66, 67, 73, + 73, 4, 88, 71, 11, 71, 0, 69, 68, 65, 2, 64, + 67, 65, 74, 74, 79, 51, 48, 50, 44, 38, 42, + 41, 38, 37, 34, 36, 35, 24, 18, 4, 27, 25, 20, + 9, 16, 13, 6, 11, 4, 1, 68, 72, 76, 79, 25, + 22, 25, 14, 66, 5, 2, 73, 1, 70, 74, 90, 82, + 87, 93, 5, 9, 78, 4, 7, 66, 75, 74, 75, 84, + 74, 81, 82, 99, 84, 89, 98, 64, 78, 86, 73, 1, + 5, 6, 15, 10, 17, 1, 14, 12, 20, 22, 25, 25, + 12, 52, 28, 21, 15, 7, 5, 78, 84, 94, 6, 37, + 31, 31, 22, 22, 12, 10, 4, 64, 73, 1, 5, 6, + 15, 10, 17, 1, 14, 12, 20, 22, 25, 25, 12, 52, + 28, 21, 15, 7, 5, 78, 84, 94 }, + + { + + 47, + 6, 78, 47, 6, 78, 83, 68, 20, 11, 2, 2, 24, + 42, 28, 6, 7, 7, 78, 64, 64, 66, 17, 78, 71, + 22, 18, 84, 99, 115, 77, 82, 70, 78, 64, 64, + 83, 66, 29, 2, 71, 79, 83, 86, 89, 90, 105, + 64, 77, 85, 70, 84, 85, 99, 4, 72, 71, 78, 24, + 2, 22, 0, 0, 0, 68, 92, 97, 2, 2, 66, 19, 73, + 95, 70, 64, 73, 19, 17, 70, 64, 78, 9, 74, 69, + 69, 97, 83, 87, 85, 18, 67, 2, 69, 71, 86, 73, + 80, 65, 75, 72, 85, 17, 72, 5, 77, 79, 69, 74, + 67, 3, 4, 64, 9, 6, 73, 0, 64, 67, 2, 72, 26, + 67, 1, 23, 23, 31, 27, 20, 88, 0, 65, 66, 67, + 82, 68, 15, 67, 67, 13, 32, 53, 39, 15, 89, + 89, 2, 36, 40, 111, 69, 5, 89, 13, 66, 0, 14, + 33, 55, 45, 22, 91, 88, 0, 13, 19, 92, 18, 21, + 19, 17, 20, 17, 11, 19, 18, 0, 7, 10, 4, 2, + 69, 7, 2, 0, 5, 1, 5, 6, 0, 87, 0, 0, 69, 64, + 75, 27, 37, 23, 16, 21, 24, 26, 27, 17, 73, + 85, 70, 68, 66, 107, 65, 3, 86, 18, 4, 4, 3, + 3, 66, 3, 5, 79, 93, 77, 80, 78, 89, 77, 16, + 16, 10, 4, 0, 68, 73, 74, 81, 67, 28, 15, 10, + 2, 11, 0, 68, 74, 69, 66, 28, 15, 10, 4, 10, + 0, 68, 73, 79, 72, 29, 13, 9, 4, 6, 68, 74, + 78, 3, 35, 22, 15, 8, 15, 3, 65, 68, 71, 62, + 92, 87, 80, 84, 84, 81, 78, 76, 75, 74, 71, + 66, 78, 78, 83, 85, 15, 84, 83, 78, 73, 72, + 73, 71, 71, 70, 70, 71, 80, 68, 68, 12, 69, + 77, 67, 68, 70, 65, 66, 68, 75, 67, 67, 73, + 72, 6, 88, 71, 12, 72, 0, 69, 68, 64, 2, 64, + 66, 64, 73, 73, 81, 50, 47, 49, 42, 36, 39, + 39, 35, 35, 32, 33, 33, 21, 15, 2, 23, 22, 17, + 4, 13, 11, 5, 9, 2, 0, 69, 73, 77, 79, 23, 20, + 23, 12, 68, 3, 1, 75, 64, 72, 76, 92, 84, 89, + 94, 4, 8, 80, 3, 5, 67, 77, 75, 76, 85, 75, + 81, 82, 98, 85, 90, 100, 65, 79, 87, 73, 2, 6, + 7, 17, 11, 18, 1, 15, 13, 21, 23, 26, 26, 13, + 51, 27, 19, 13, 5, 3, 80, 86, 95, 7, 37, 32, + 32, 23, 23, 13, 11, 5, 0, 73, 2, 6, 7, 17, 11, + 18, 1, 15, 13, 21, 23, 26, 26, 13, 51, 27, 19, + 13, 5, 3, 80, 86, 95 }, + + { + + 46, + 6, 78, 46, 6, 78, 81, 66, 20, 11, 1, 0, 23, + 41, 29, 6, 8, 5, 78, 0, 65, 66, 18, 79, 72, + 21, 16, 87, 102, 116, 75, 81, 70, 78, 0, 65, + 83, 65, 29, 2, 71, 78, 81, 87, 90, 90, 105, + 64, 76, 84, 71, 84, 85, 99, 4, 72, 71, 77, 25, + 2, 22, 0, 0, 0, 68, 92, 97, 3, 1, 66, 18, 73, + 94, 68, 0, 72, 20, 18, 69, 0, 76, 10, 73, 68, + 66, 97, 84, 87, 86, 18, 67, 3, 66, 70, 86, 73, + 78, 65, 75, 72, 85, 17, 72, 5, 76, 79, 68, 73, + 67, 3, 4, 0, 9, 6, 74, 0, 64, 67, 2, 72, 26, + 67, 1, 24, 23, 31, 27, 20, 89, 0, 65, 66, 67, + 81, 68, 16, 66, 67, 15, 34, 54, 40, 17, 89, + 90, 2, 37, 40, 112, 69, 6, 90, 14, 66, 0, 15, + 33, 55, 45, 24, 92, 86, 64, 10, 16, 91, 18, + 21, 18, 17, 19, 17, 10, 19, 17, 64, 6, 10, 4, + 2, 69, 6, 2, 64, 4, 1, 5, 5, 0, 88, 64, 64, + 69, 65, 76, 25, 35, 21, 14, 20, 22, 23, 24, + 16, 75, 87, 72, 70, 68, 108, 66, 2, 87, 17, 3, + 3, 1, 2, 68, 1, 4, 81, 93, 78, 81, 80, 88, 76, + 17, 16, 10, 4, 1, 67, 72, 74, 79, 65, 29, 16, + 10, 3, 13, 1, 66, 73, 66, 65, 28, 15, 10, 5, + 11, 1, 68, 72, 78, 72, 30, 14, 9, 4, 7, 68, + 74, 77, 4, 35, 23, 15, 8, 16, 4, 64, 68, 70, + 62, 91, 86, 79, 83, 83, 79, 77, 74, 74, 72, + 69, 0, 77, 77, 82, 84, 18, 83, 84, 77, 72, 71, + 73, 71, 71, 70, 69, 72, 81, 68, 68, 13, 69, + 77, 67, 68, 69, 66, 67, 68, 76, 68, 68, 73, + 72, 7, 89, 72, 13, 72, 64, 69, 68, 64, 1, 65, + 66, 64, 73, 73, 82, 49, 46, 48, 41, 33, 37, + 36, 32, 32, 29, 30, 30, 18, 13, 0, 19, 18, 13, + 64, 10, 9, 3, 7, 64, 65, 70, 74, 78, 79, 21, + 17, 20, 10, 70, 1, 64, 77, 66, 74, 78, 94, 86, + 90, 96, 3, 7, 82, 1, 4, 69, 79, 76, 77, 86, + 76, 82, 82, 97, 87, 91, 101, 67, 80, 88, 73, + 2, 6, 8, 18, 12, 18, 2, 16, 14, 22, 23, 27, + 26, 13, 51, 25, 17, 11, 3, 1, 83, 88, 96, 7, + 38, 32, 32, 24, 24, 13, 11, 5, 1, 73, 2, 6, 8, + 18, 12, 18, 2, 16, 14, 22, 23, 27, 26, 13, 51, + 25, 17, 11, 3, 1, 83, 88, 96 }, + + { + + 45, + 6, 79, 45, 6, 79, 79, 65, 21, 11, 1, 64, 21, + 40, 29, 7, 10, 4, 78, 2, 65, 67, 19, 80, 73, + 20, 15, 91, 104, 117, 73, 79, 70, 78, 2, 65, + 82, 64, 30, 2, 70, 77, 80, 89, 91, 90, 106, + 64, 76, 84, 71, 85, 84, 99, 3, 72, 71, 76, 25, + 2, 22, 0, 0, 0, 67, 92, 97, 3, 1, 67, 18, 72, + 93, 66, 1, 71, 22, 20, 68, 1, 74, 11, 72, 68, + 64, 98, 84, 87, 86, 19, 67, 4, 64, 70, 85, 72, + 76, 65, 75, 72, 85, 18, 73, 6, 76, 79, 67, 73, + 66, 3, 5, 1, 10, 6, 74, 0, 64, 67, 2, 72, 26, + 67, 1, 24, 23, 32, 28, 21, 89, 1, 64, 67, 67, + 81, 68, 17, 66, 66, 16, 35, 54, 42, 18, 90, + 91, 3, 37, 40, 112, 70, 6, 90, 14, 67, 1, 16, + 33, 55, 46, 25, 93, 85, 65, 7, 13, 89, 18, 21, + 18, 16, 19, 16, 10, 18, 17, 64, 6, 10, 3, 2, + 70, 6, 1, 65, 4, 1, 5, 5, 64, 90, 64, 65, 69, + 66, 76, 22, 33, 19, 13, 18, 20, 20, 22, 14, + 77, 89, 73, 72, 70, 110, 67, 0, 89, 15, 2, 2, + 0, 0, 70, 64, 2, 82, 93, 79, 82, 81, 86, 74, + 19, 17, 10, 4, 2, 67, 72, 73, 78, 64, 30, 17, + 11, 3, 14, 2, 65, 72, 64, 65, 29, 16, 11, 5, + 12, 1, 67, 71, 77, 72, 32, 15, 9, 4, 7, 67, + 74, 77, 4, 36, 23, 16, 8, 17, 4, 64, 67, 70, + 62, 89, 84, 77, 81, 81, 78, 75, 73, 72, 70, + 67, 2, 77, 76, 82, 84, 21, 83, 85, 77, 72, 70, + 73, 71, 71, 70, 69, 72, 82, 68, 68, 13, 69, + 77, 67, 68, 69, 66, 67, 68, 77, 69, 68, 73, + 72, 8, 90, 72, 14, 73, 64, 69, 68, 0, 1, 65, + 65, 0, 73, 73, 84, 48, 45, 47, 39, 31, 34, 34, + 29, 30, 26, 27, 27, 15, 10, 65, 16, 15, 9, 69, + 8, 6, 1, 5, 66, 67, 71, 75, 79, 79, 19, 15, + 18, 8, 72, 0, 65, 79, 68, 77, 80, 96, 88, 92, + 97, 2, 5, 84, 0, 2, 70, 81, 78, 79, 87, 77, + 83, 83, 96, 88, 93, 103, 68, 82, 89, 72, 3, 7, + 8, 19, 13, 19, 2, 17, 15, 23, 24, 28, 27, 14, + 50, 23, 15, 9, 1, 64, 85, 90, 97, 8, 38, 33, + 33, 24, 25, 14, 12, 6, 1, 72, 3, 7, 8, 19, 13, + 19, 2, 17, 15, 23, 24, 28, 27, 14, 50, 23, 15, + 9, 1, 64, 85, 90, 97 }, + + { + + 43, + 6, 79, 43, 6, 79, 78, 0, 21, 11, 0, 66, 20, + 39, 30, 7, 12, 2, 78, 3, 65, 67, 20, 81, 75, + 18, 13, 94, 106, 118, 71, 78, 70, 78, 3, 65, + 82, 0, 30, 1, 69, 76, 79, 90, 93, 91, 106, 64, + 76, 83, 71, 85, 84, 99, 3, 72, 71, 76, 26, 2, + 22, 0, 0, 0, 67, 93, 97, 4, 0, 67, 17, 72, 92, + 64, 2, 70, 23, 21, 68, 2, 72, 12, 71, 67, 1, + 99, 84, 87, 86, 19, 68, 5, 1, 70, 84, 71, 74, + 65, 75, 72, 85, 18, 73, 6, 75, 79, 67, 73, 66, + 3, 5, 2, 10, 6, 74, 64, 64, 67, 2, 72, 26, 67, + 1, 25, 23, 32, 28, 21, 90, 1, 0, 67, 67, 81, + 68, 18, 66, 66, 17, 36, 55, 43, 20, 90, 92, 3, + 37, 40, 113, 70, 7, 91, 15, 67, 1, 17, 33, 55, + 46, 26, 94, 83, 66, 4, 10, 88, 17, 21, 17, 15, + 18, 16, 9, 18, 16, 65, 5, 9, 3, 2, 70, 5, 0, + 66, 3, 0, 4, 4, 64, 91, 65, 66, 69, 68, 77, + 20, 31, 17, 11, 16, 18, 16, 19, 13, 79, 92, + 75, 74, 72, 111, 69, 64, 91, 14, 1, 1, 64, 64, + 72, 66, 0, 84, 93, 80, 83, 83, 85, 73, 20, 17, + 10, 4, 3, 66, 71, 72, 76, 0, 31, 17, 12, 4, + 15, 3, 0, 71, 1, 64, 29, 16, 11, 6, 13, 2, 67, + 71, 76, 72, 33, 16, 9, 4, 8, 67, 74, 76, 5, + 36, 24, 16, 8, 18, 5, 0, 67, 69, 62, 88, 83, + 76, 79, 80, 76, 74, 71, 71, 69, 65, 4, 76, 75, + 81, 83, 24, 83, 86, 77, 71, 70, 73, 71, 71, + 71, 68, 72, 83, 68, 68, 14, 69, 77, 67, 68, + 69, 67, 67, 68, 78, 70, 68, 73, 72, 9, 91, 72, + 14, 74, 64, 69, 68, 0, 1, 66, 65, 1, 73, 73, + 85, 47, 44, 46, 37, 29, 32, 31, 26, 27, 23, + 23, 24, 11, 7, 67, 12, 11, 5, 74, 5, 4, 64, 3, + 69, 69, 73, 76, 80, 79, 16, 13, 16, 6, 74, 65, + 67, 81, 70, 79, 82, 98, 91, 94, 98, 1, 4, 87, + 65, 0, 72, 83, 79, 80, 88, 78, 84, 83, 95, 89, + 94, 104, 69, 83, 90, 72, 3, 7, 9, 20, 13, 20, + 2, 18, 16, 24, 24, 29, 27, 15, 50, 21, 13, 7, + 64, 66, 87, 92, 99, 8, 39, 33, 34, 25, 25, 14, + 12, 6, 2, 72, 3, 7, 9, 20, 13, 20, 2, 18, 16, + 24, 24, 29, 27, 15, 50, 21, 13, 7, 64, 66, 87, + 92, 99 }, + + { + + 42, + 6, 79, 42, 6, 79, 76, 1, 21, 11, 0, 68, 18, + 38, 31, 7, 13, 0, 77, 5, 66, 67, 21, 82, 76, + 17, 11, 97, 109, 118, 69, 77, 70, 77, 5, 66, + 82, 1, 30, 1, 69, 75, 77, 91, 94, 91, 106, 64, + 75, 82, 72, 85, 84, 99, 3, 71, 71, 75, 26, 2, + 22, 0, 0, 0, 66, 93, 97, 4, 64, 67, 17, 71, + 90, 2, 3, 69, 25, 23, 67, 3, 70, 13, 70, 66, + 4, 99, 85, 87, 87, 19, 68, 6, 4, 69, 84, 71, + 72, 65, 75, 72, 84, 18, 73, 7, 74, 78, 66, 72, + 66, 4, 6, 3, 11, 6, 75, 64, 0, 67, 2, 72, 27, + 67, 1, 25, 24, 32, 28, 21, 90, 2, 0, 68, 67, + 80, 68, 19, 65, 65, 19, 38, 56, 45, 22, 91, + 93, 4, 38, 40, 114, 70, 7, 91, 16, 67, 1, 19, + 33, 55, 46, 28, 95, 82, 67, 2, 7, 87, 17, 21, + 17, 15, 18, 16, 9, 18, 16, 66, 4, 9, 3, 2, 70, + 5, 0, 67, 3, 0, 4, 3, 65, 92, 66, 66, 69, 69, + 77, 18, 29, 16, 10, 15, 16, 13, 17, 12, 81, + 94, 76, 76, 74, 112, 70, 65, 92, 13, 0, 0, 66, + 66, 74, 68, 64, 85, 93, 81, 84, 85, 83, 71, + 21, 18, 10, 4, 4, 65, 70, 72, 74, 2, 32, 18, + 12, 5, 17, 4, 1, 70, 4, 0, 30, 17, 12, 6, 14, + 3, 66, 70, 75, 71, 34, 17, 9, 4, 9, 66, 73, + 75, 6, 36, 25, 16, 8, 19, 6, 1, 66, 68, 62, + 87, 81, 74, 78, 79, 75, 72, 69, 69, 67, 0, 7, + 75, 74, 80, 82, 27, 82, 87, 76, 70, 69, 73, + 71, 71, 71, 68, 73, 84, 68, 68, 15, 69, 77, + 67, 68, 68, 67, 68, 68, 79, 71, 69, 73, 72, + 10, 91, 73, 15, 74, 65, 69, 68, 0, 0, 66, 65, + 1, 73, 73, 87, 46, 43, 45, 36, 26, 29, 28, 23, + 25, 20, 20, 21, 8, 5, 69, 8, 8, 1, 79, 2, 2, + 65, 1, 71, 71, 74, 77, 81, 79, 14, 10, 13, 4, + 76, 67, 68, 83, 72, 81, 84, 100, 93, 95, 100, + 0, 3, 89, 66, 64, 73, 85, 80, 81, 89, 79, 85, + 83, 94, 91, 95, 106, 71, 84, 91, 72, 4, 8, 10, + 21, 14, 20, 3, 19, 17, 25, 25, 30, 28, 15, 49, + 19, 11, 5, 66, 68, 90, 94, 100, 9, 39, 34, 34, + 26, 26, 15, 13, 6, 3, 72, 4, 8, 10, 21, 14, + 20, 3, 19, 17, 25, 25, 30, 28, 15, 49, 19, 11, + 5, 66, 68, 90, 94, 100 }, + + { + + 41, + 6, 79, 41, 6, 79, 74, 3, 22, 11, 64, 70, 17, + 37, 31, 7, 15, 64, 77, 6, 66, 68, 22, 83, 77, + 16, 9, 101, 111, 119, 67, 75, 70, 77, 6, 66, + 81, 2, 31, 1, 68, 74, 76, 92, 95, 91, 107, 64, + 75, 81, 72, 86, 84, 99, 3, 71, 71, 74, 27, 2, + 22, 0, 0, 0, 66, 93, 97, 5, 65, 67, 16, 71, + 89, 4, 4, 68, 26, 24, 66, 4, 68, 14, 69, 65, + 6, 100, 85, 87, 87, 20, 68, 7, 6, 69, 83, 70, + 70, 65, 75, 72, 84, 19, 73, 7, 73, 78, 65, 72, + 66, 4, 6, 4, 11, 6, 75, 64, 0, 67, 2, 72, 27, + 67, 1, 26, 24, 33, 28, 22, 91, 2, 1, 68, 67, + 80, 68, 20, 65, 65, 20, 39, 57, 46, 24, 91, + 94, 4, 38, 40, 115, 70, 8, 92, 16, 67, 1, 20, + 33, 55, 46, 29, 96, 80, 68, 64, 4, 85, 17, 21, + 16, 14, 17, 15, 8, 18, 15, 67, 3, 9, 3, 2, 71, + 4, 64, 68, 2, 0, 4, 2, 65, 93, 66, 67, 69, 70, + 78, 16, 27, 14, 8, 13, 14, 10, 14, 11, 83, 96, + 78, 78, 76, 114, 71, 66, 94, 12, 64, 64, 67, + 67, 76, 70, 66, 87, 93, 82, 85, 86, 82, 70, + 23, 18, 10, 4, 5, 64, 69, 71, 72, 3, 33, 19, + 13, 5, 18, 5, 3, 69, 6, 0, 30, 17, 12, 7, 15, + 3, 66, 69, 74, 71, 36, 18, 9, 4, 10, 66, 73, + 74, 7, 37, 26, 17, 8, 20, 6, 2, 66, 68, 62, + 85, 80, 73, 76, 78, 73, 71, 68, 68, 65, 2, 9, + 75, 73, 80, 81, 30, 82, 88, 76, 69, 68, 73, + 71, 71, 71, 67, 73, 85, 68, 68, 15, 69, 77, + 67, 68, 68, 68, 68, 68, 80, 72, 69, 73, 72, + 11, 92, 73, 16, 75, 65, 69, 68, 1, 0, 67, 64, + 2, 73, 73, 88, 45, 42, 44, 34, 24, 27, 26, 20, + 22, 17, 17, 18, 5, 2, 71, 4, 4, 66, 84, 64, 0, + 67, 64, 74, 73, 75, 78, 82, 79, 12, 8, 11, 2, + 78, 69, 70, 85, 74, 83, 86, 102, 95, 97, 101, + 64, 2, 91, 68, 66, 75, 87, 82, 83, 90, 80, 86, + 83, 93, 92, 97, 107, 72, 85, 92, 72, 4, 8, 10, + 22, 15, 21, 3, 20, 18, 26, 25, 31, 28, 16, 49, + 17, 9, 3, 68, 70, 92, 96, 101, 9, 40, 34, 35, + 26, 27, 15, 13, 7, 3, 72, 4, 8, 10, 22, 15, + 21, 3, 20, 18, 26, 25, 31, 28, 16, 49, 17, 9, + 3, 68, 70, 92, 96, 101 }, + + { + + 40, + 6, 79, 40, 6, 79, 72, 4, 22, 11, 64, 72, 15, + 36, 32, 7, 17, 66, 77, 8, 66, 68, 23, 84, 78, + 15, 7, 104, 113, 120, 65, 74, 70, 77, 8, 66, + 81, 3, 31, 1, 67, 73, 75, 93, 96, 91, 107, 64, + 75, 80, 72, 86, 84, 99, 3, 71, 71, 73, 27, 2, + 22, 0, 0, 0, 65, 93, 97, 5, 66, 67, 16, 70, + 88, 6, 5, 67, 28, 26, 65, 5, 66, 15, 68, 64, + 8, 101, 85, 87, 87, 20, 68, 8, 8, 69, 82, 69, + 68, 65, 75, 72, 84, 19, 73, 8, 72, 78, 64, 72, + 66, 4, 7, 5, 12, 6, 75, 64, 0, 67, 2, 72, 27, + 67, 1, 26, 24, 33, 28, 22, 91, 3, 2, 69, 67, + 80, 68, 21, 65, 64, 21, 40, 58, 48, 26, 92, + 95, 5, 38, 40, 116, 70, 8, 92, 17, 67, 1, 21, + 33, 55, 46, 30, 97, 79, 69, 67, 1, 84, 17, 21, + 16, 13, 17, 15, 8, 18, 15, 68, 2, 9, 3, 2, 71, + 4, 65, 69, 2, 0, 4, 1, 66, 94, 67, 68, 69, 71, + 78, 14, 25, 12, 7, 11, 12, 7, 12, 10, 85, 98, + 79, 80, 78, 115, 72, 67, 96, 11, 65, 65, 68, + 69, 78, 72, 68, 88, 93, 83, 86, 88, 80, 68, + 24, 19, 10, 4, 6, 0, 68, 70, 70, 4, 34, 20, + 14, 6, 19, 6, 4, 68, 8, 1, 31, 18, 13, 7, 16, + 4, 65, 68, 73, 71, 37, 19, 9, 4, 11, 65, 73, + 73, 8, 37, 27, 17, 8, 21, 7, 3, 65, 67, 62, + 84, 78, 71, 74, 77, 72, 69, 66, 66, 0, 4, 11, + 74, 72, 79, 80, 33, 82, 89, 76, 68, 67, 73, + 71, 71, 71, 67, 73, 86, 68, 68, 16, 69, 77, + 67, 68, 68, 68, 68, 68, 81, 73, 69, 73, 72, + 12, 93, 73, 17, 76, 65, 69, 68, 1, 0, 67, 64, + 3, 73, 73, 90, 44, 41, 43, 32, 22, 24, 23, 17, + 20, 14, 14, 15, 2, 64, 73, 0, 1, 70, 89, 67, + 65, 69, 66, 76, 75, 76, 79, 83, 79, 10, 6, 9, + 0, 80, 71, 71, 87, 76, 85, 88, 104, 97, 99, + 102, 65, 1, 93, 69, 68, 76, 89, 83, 84, 91, + 81, 87, 83, 92, 93, 98, 109, 73, 86, 93, 72, + 5, 9, 11, 23, 16, 22, 3, 21, 19, 27, 26, 32, + 29, 17, 48, 15, 7, 1, 70, 72, 94, 98, 102, 10, + 40, 35, 36, 27, 28, 16, 14, 7, 4, 72, 5, 9, + 11, 23, 16, 22, 3, 21, 19, 27, 26, 32, 29, 17, + 48, 15, 7, 1, 70, 72, 94, 98, 102 }, + + { + + 38, + 5, 80, 38, 5, 80, 71, 5, 22, 11, 65, 74, 13, + 35, 32, 7, 18, 68, 77, 9, 67, 69, 24, 85, 80, + 13, 5, 108, 116, 121, 0, 73, 70, 77, 9, 67, + 81, 3, 31, 0, 67, 73, 74, 95, 98, 92, 108, 65, + 75, 80, 73, 87, 84, 99, 2, 71, 71, 73, 27, 1, + 22, 0, 0, 0, 65, 94, 97, 5, 67, 68, 15, 70, + 87, 8, 6, 67, 29, 27, 65, 6, 65, 15, 67, 64, + 10, 102, 86, 88, 88, 20, 69, 8, 10, 69, 82, + 69, 67, 65, 75, 72, 84, 19, 74, 8, 72, 78, 64, + 72, 66, 4, 7, 6, 12, 6, 76, 65, 0, 67, 1, 72, + 27, 67, 1, 26, 24, 33, 28, 22, 92, 3, 2, 70, + 67, 80, 69, 21, 65, 64, 22, 41, 58, 49, 27, + 93, 97, 5, 38, 40, 117, 71, 8, 93, 17, 68, 1, + 22, 33, 54, 46, 31, 98, 78, 71, 70, 66, 83, + 16, 21, 15, 12, 16, 14, 7, 17, 14, 69, 1, 8, + 2, 1, 72, 3, 66, 70, 1, 64, 3, 0, 67, 96, 68, + 69, 69, 73, 79, 11, 22, 10, 5, 9, 9, 3, 9, 8, + 87, 101, 81, 83, 80, 117, 74, 69, 98, 9, 66, + 66, 70, 71, 80, 74, 70, 90, 93, 84, 87, 90, + 79, 67, 25, 19, 10, 4, 6, 0, 68, 70, 69, 5, + 34, 20, 14, 6, 20, 7, 5, 68, 10, 1, 31, 18, + 13, 7, 16, 4, 65, 68, 72, 71, 38, 20, 9, 3, + 11, 65, 73, 73, 8, 37, 27, 17, 8, 22, 7, 3, + 65, 67, 62, 83, 77, 70, 73, 76, 71, 68, 65, + 65, 1, 5, 13, 74, 72, 79, 80, 36, 82, 91, 76, + 68, 67, 73, 71, 71, 72, 67, 74, 87, 69, 68, + 16, 70, 77, 68, 68, 68, 69, 69, 69, 82, 74, + 70, 74, 72, 13, 94, 74, 17, 77, 66, 69, 69, 1, + 64, 68, 64, 3, 73, 73, 92, 42, 40, 41, 30, 19, + 21, 20, 14, 17, 11, 10, 12, 65, 67, 75, 67, + 66, 74, 95, 70, 68, 71, 69, 79, 77, 78, 81, + 84, 79, 7, 3, 6, 65, 83, 73, 73, 90, 78, 88, + 90, 107, 100, 101, 104, 67, 64, 96, 71, 70, + 78, 91, 85, 86, 92, 82, 88, 84, 91, 95, 100, + 111, 75, 88, 95, 72, 5, 9, 11, 24, 16, 22, 3, + 22, 19, 28, 26, 32, 29, 17, 47, 13, 5, 65, 73, + 74, 97, 100, 104, 10, 40, 35, 36, 27, 28, 16, + 14, 7, 4, 72, 5, 9, 11, 24, 16, 22, 3, 22, 19, + 28, 26, 32, 29, 17, 47, 13, 5, 65, 73, 74, 97, + 100, 104 }, + + { + + 37, + 5, 80, 37, 5, 80, 69, 7, 23, 12, 65, 75, 12, + 35, 33, 8, 20, 69, 76, 11, 67, 69, 26, 85, 81, + 12, 4, 111, 118, 121, 2, 71, 69, 76, 11, 67, + 80, 4, 32, 0, 66, 72, 72, 96, 99, 92, 108, 65, + 74, 79, 73, 87, 83, 98, 2, 70, 70, 72, 28, 1, + 22, 0, 0, 0, 64, 94, 97, 6, 67, 68, 15, 69, + 85, 11, 8, 66, 31, 29, 64, 8, 0, 16, 65, 0, + 13, 102, 86, 88, 88, 21, 69, 9, 13, 68, 81, + 68, 65, 65, 74, 72, 83, 20, 74, 9, 71, 77, 0, + 71, 65, 5, 8, 7, 13, 7, 76, 65, 1, 66, 1, 71, + 28, 66, 1, 27, 25, 34, 29, 23, 92, 4, 3, 70, + 67, 79, 69, 22, 64, 0, 24, 43, 59, 51, 29, 93, + 98, 6, 39, 41, 117, 71, 9, 93, 18, 68, 2, 24, + 33, 54, 47, 33, 99, 76, 72, 72, 69, 81, 16, + 21, 15, 12, 16, 14, 7, 17, 14, 69, 1, 8, 2, 1, + 72, 3, 66, 70, 1, 64, 3, 0, 67, 97, 68, 69, + 69, 74, 79, 9, 20, 9, 4, 8, 7, 0, 7, 7, 88, + 103, 82, 85, 81, 118, 75, 70, 99, 8, 66, 66, + 71, 72, 81, 75, 71, 91, 93, 84, 87, 91, 77, + 65, 27, 20, 10, 4, 7, 1, 67, 69, 67, 7, 35, + 21, 15, 7, 22, 8, 7, 67, 13, 2, 32, 19, 14, 8, + 17, 5, 64, 67, 70, 70, 40, 21, 10, 3, 12, 64, + 72, 72, 9, 38, 28, 18, 9, 23, 8, 4, 64, 66, + 62, 81, 75, 68, 71, 74, 69, 66, 0, 0, 3, 7, + 16, 73, 71, 78, 79, 40, 81, 92, 75, 67, 66, + 72, 71, 70, 72, 66, 74, 87, 69, 68, 17, 70, + 77, 68, 68, 67, 69, 69, 69, 82, 74, 70, 74, + 71, 15, 94, 74, 18, 77, 66, 69, 69, 2, 64, 68, + 0, 4, 72, 72, 93, 41, 39, 40, 29, 17, 19, 18, + 11, 15, 9, 7, 10, 68, 69, 77, 70, 69, 77, 100, + 72, 70, 72, 71, 81, 78, 79, 82, 84, 79, 5, 1, + 4, 67, 85, 74, 74, 92, 79, 90, 91, 109, 102, + 102, 105, 68, 65, 98, 72, 71, 79, 92, 86, 87, + 93, 82, 88, 84, 90, 96, 101, 112, 76, 89, 96, + 71, 6, 10, 12, 26, 17, 23, 4, 24, 20, 29, 27, + 33, 30, 18, 47, 12, 4, 67, 75, 75, 99, 101, + 105, 11, 41, 36, 37, 28, 29, 17, 15, 8, 5, 71, + 6, 10, 12, 26, 17, 23, 4, 24, 20, 29, 27, 33, + 30, 18, 47, 12, 4, 67, 75, 75, 99, 101, 105 }, + + { + + 36, + 5, 80, 36, 5, 80, 67, 8, 23, 12, 65, 77, 10, + 34, 34, 8, 22, 71, 76, 12, 67, 69, 27, 86, 82, + 11, 2, 114, 120, 122, 4, 70, 69, 76, 12, 67, + 80, 5, 32, 0, 65, 71, 71, 97, 100, 92, 108, + 65, 74, 78, 73, 87, 83, 98, 2, 70, 70, 71, 28, + 1, 22, 0, 0, 0, 0, 94, 97, 6, 68, 68, 15, 68, + 84, 13, 9, 65, 33, 31, 0, 9, 2, 17, 64, 1, 15, + 103, 86, 88, 88, 21, 69, 10, 15, 68, 80, 67, + 0, 65, 74, 72, 83, 20, 74, 9, 70, 77, 1, 71, + 65, 5, 8, 8, 14, 7, 76, 65, 1, 66, 1, 71, 28, + 66, 1, 27, 25, 34, 29, 23, 93, 5, 4, 71, 67, + 79, 69, 23, 64, 0, 25, 44, 60, 53, 31, 94, 99, + 6, 39, 41, 118, 71, 9, 94, 19, 68, 2, 25, 33, + 54, 47, 34, 100, 75, 73, 75, 72, 80, 16, 21, + 15, 11, 15, 14, 7, 17, 13, 70, 0, 8, 2, 1, 72, + 2, 67, 71, 1, 64, 3, 64, 68, 98, 69, 70, 69, + 75, 80, 7, 18, 7, 2, 6, 5, 66, 5, 6, 90, 105, + 84, 87, 83, 119, 76, 71, 101, 7, 67, 67, 72, + 74, 83, 77, 73, 93, 93, 85, 88, 93, 76, 64, + 28, 21, 10, 4, 8, 2, 66, 68, 65, 8, 36, 22, + 16, 8, 23, 9, 8, 66, 15, 3, 32, 19, 14, 8, 18, + 6, 0, 66, 69, 70, 41, 22, 10, 3, 13, 0, 72, + 71, 10, 38, 29, 18, 9, 24, 9, 5, 0, 65, 62, + 80, 73, 66, 69, 73, 68, 64, 2, 1, 5, 9, 18, + 72, 70, 77, 78, 43, 81, 93, 75, 66, 65, 72, + 71, 70, 72, 66, 74, 88, 69, 68, 18, 70, 77, + 68, 68, 67, 69, 69, 69, 83, 75, 70, 74, 71, + 16, 95, 74, 19, 78, 66, 69, 69, 2, 64, 68, 0, + 5, 72, 72, 95, 40, 38, 39, 27, 15, 16, 15, 8, + 13, 6, 4, 7, 71, 72, 79, 74, 73, 81, 105, 75, + 72, 74, 73, 83, 80, 80, 83, 85, 79, 3, 64, 2, + 69, 87, 76, 76, 94, 81, 92, 93, 111, 104, 104, + 106, 69, 66, 100, 74, 73, 81, 94, 87, 88, 94, + 83, 89, 84, 89, 97, 102, 114, 77, 90, 97, 71, + 6, 11, 13, 27, 18, 24, 4, 25, 21, 30, 27, 34, + 31, 19, 46, 10, 2, 69, 77, 77, 101, 103, 106, + 12, 41, 36, 38, 29, 30, 17, 16, 8, 6, 71, 6, + 11, 13, 27, 18, 24, 4, 25, 21, 30, 27, 34, 31, + 19, 46, 10, 2, 69, 77, 77, 101, 103, 106 }, + + { + + 35, + 5, 80, 35, 5, 80, 65, 10, 24, 12, 66, 79, 9, + 33, 34, 8, 24, 72, 76, 14, 67, 70, 28, 87, 83, + 10, 0, 118, 122, 123, 6, 68, 69, 76, 14, 67, + 79, 6, 33, 0, 64, 70, 70, 98, 101, 92, 109, + 65, 74, 77, 73, 88, 83, 98, 2, 70, 70, 70, 29, + 1, 22, 0, 0, 0, 0, 94, 97, 7, 69, 68, 14, 68, + 83, 15, 10, 64, 34, 32, 1, 10, 4, 18, 0, 2, + 17, 104, 86, 88, 88, 22, 69, 11, 17, 68, 79, + 66, 2, 65, 74, 72, 83, 21, 74, 10, 69, 77, 2, + 71, 65, 5, 9, 9, 14, 7, 76, 65, 1, 66, 1, 71, + 28, 66, 1, 28, 25, 35, 29, 24, 93, 5, 5, 71, + 67, 79, 69, 24, 64, 1, 26, 45, 61, 54, 33, 94, + 100, 7, 39, 41, 119, 71, 10, 94, 19, 68, 2, + 26, 33, 54, 47, 35, 101, 73, 74, 78, 75, 78, + 16, 21, 14, 10, 15, 13, 6, 17, 13, 71, 64, 8, + 2, 1, 73, 2, 68, 72, 0, 64, 3, 65, 68, 99, 69, + 71, 69, 76, 80, 5, 16, 5, 1, 4, 3, 69, 2, 5, + 92, 107, 85, 89, 85, 121, 77, 72, 103, 6, 68, + 68, 73, 75, 85, 79, 75, 94, 93, 86, 89, 94, + 74, 1, 30, 21, 10, 4, 9, 3, 65, 67, 0, 9, 37, + 23, 17, 8, 24, 10, 10, 65, 17, 3, 33, 20, 15, + 9, 19, 6, 0, 65, 68, 70, 43, 23, 10, 3, 14, 0, + 72, 70, 11, 39, 30, 19, 9, 25, 9, 6, 0, 65, + 62, 78, 72, 65, 67, 72, 66, 0, 3, 3, 7, 11, + 20, 72, 69, 77, 77, 46, 81, 94, 75, 65, 64, + 72, 71, 70, 72, 65, 74, 89, 69, 68, 18, 70, + 77, 68, 68, 67, 70, 69, 69, 84, 76, 70, 74, + 71, 17, 96, 74, 20, 79, 66, 69, 69, 3, 64, 69, + 1, 6, 72, 72, 96, 39, 37, 38, 25, 13, 14, 13, + 5, 10, 3, 1, 4, 74, 75, 81, 78, 76, 85, 110, + 78, 74, 76, 75, 86, 82, 81, 84, 86, 79, 1, 66, + 0, 71, 89, 78, 77, 96, 83, 94, 95, 113, 106, + 106, 107, 70, 67, 102, 75, 75, 82, 96, 89, 90, + 95, 84, 90, 84, 88, 98, 104, 115, 78, 91, 98, + 71, 7, 11, 13, 28, 19, 25, 4, 26, 22, 31, 28, + 35, 31, 20, 46, 8, 0, 71, 79, 79, 103, 105, + 107, 12, 42, 37, 39, 29, 31, 18, 16, 9, 6, 71, + 7, 11, 13, 28, 19, 25, 4, 26, 22, 31, 28, 35, + 31, 20, 46, 8, 0, 71, 79, 79, 103, 105, 107 }, + + { + + 33, + 5, 80, 33, 5, 80, 64, 11, 24, 12, 66, 81, 7, + 32, 35, 8, 25, 74, 76, 15, 68, 70, 29, 88, 85, + 8, 65, 121, 125, 124, 8, 67, 69, 76, 15, 68, + 79, 7, 33, 64, 64, 69, 68, 99, 103, 93, 109, + 65, 73, 76, 74, 88, 83, 98, 2, 70, 70, 70, 29, + 1, 22, 0, 0, 0, 1, 95, 97, 7, 70, 68, 14, 67, + 82, 17, 11, 0, 36, 34, 1, 11, 6, 19, 1, 3, 20, + 104, 87, 88, 89, 22, 70, 12, 20, 67, 79, 66, + 4, 65, 74, 72, 83, 21, 74, 10, 68, 77, 2, 70, + 65, 5, 9, 10, 15, 7, 77, 66, 1, 66, 1, 71, 28, + 66, 1, 28, 25, 35, 29, 24, 94, 6, 5, 72, 67, + 78, 69, 25, 0, 1, 28, 47, 62, 56, 35, 95, 101, + 7, 40, 41, 120, 71, 10, 95, 20, 68, 2, 27, 33, + 54, 47, 37, 102, 72, 75, 81, 78, 77, 15, 21, + 14, 10, 14, 13, 6, 17, 12, 72, 65, 7, 2, 1, + 73, 1, 68, 73, 0, 65, 2, 66, 69, 100, 70, 72, + 69, 78, 81, 3, 14, 3, 64, 3, 1, 73, 0, 4, 94, + 110, 87, 91, 87, 122, 79, 73, 104, 5, 69, 69, + 75, 77, 87, 81, 76, 96, 93, 87, 90, 96, 73, 2, + 31, 22, 10, 4, 10, 4, 64, 67, 2, 11, 38, 23, + 17, 9, 26, 11, 11, 64, 20, 4, 33, 20, 15, 9, + 20, 7, 1, 65, 67, 70, 44, 24, 10, 3, 15, 1, + 72, 69, 12, 39, 31, 19, 9, 26, 10, 7, 1, 64, + 62, 77, 70, 0, 66, 71, 65, 2, 5, 4, 8, 13, 23, + 71, 68, 76, 76, 49, 80, 95, 74, 64, 64, 72, + 71, 70, 73, 65, 75, 90, 69, 68, 19, 70, 77, + 68, 68, 66, 70, 70, 69, 85, 77, 71, 74, 71, + 18, 97, 75, 20, 79, 67, 69, 69, 3, 65, 69, 1, + 6, 72, 72, 98, 38, 36, 37, 24, 10, 11, 10, 2, + 8, 0, 66, 1, 78, 77, 83, 82, 80, 89, 115, 81, + 76, 78, 77, 88, 84, 83, 85, 87, 79, 65, 69, + 66, 73, 91, 80, 79, 98, 85, 96, 97, 115, 109, + 107, 109, 71, 68, 105, 77, 76, 84, 98, 90, 91, + 96, 85, 91, 84, 87, 100, 105, 117, 80, 92, 99, + 71, 7, 12, 14, 29, 19, 25, 5, 27, 23, 32, 28, + 36, 32, 20, 45, 6, 65, 73, 81, 81, 106, 107, + 109, 13, 42, 37, 39, 30, 31, 18, 17, 9, 7, 71, + 7, 12, 14, 29, 19, 25, 5, 27, 23, 32, 28, 36, + 32, 20, 45, 6, 65, 73, 81, 81, 106, 107, 109 }, + + { + + 32, + 5, 80, 32, 5, 80, 1, 13, 24, 12, 67, 83, 6, + 31, 36, 8, 27, 76, 75, 17, 68, 70, 30, 89, 86, + 7, 67, 124, 126, 124, 10, 66, 69, 75, 17, 68, + 79, 8, 33, 64, 0, 68, 67, 100, 104, 93, 109, + 65, 73, 75, 74, 88, 83, 98, 2, 69, 70, 69, 30, + 1, 22, 0, 0, 0, 1, 95, 97, 8, 71, 68, 13, 67, + 80, 20, 12, 1, 37, 35, 2, 12, 8, 20, 2, 4, 22, + 105, 87, 88, 89, 22, 70, 13, 22, 67, 78, 65, + 6, 65, 74, 72, 82, 21, 74, 11, 67, 76, 3, 70, + 65, 6, 10, 11, 15, 7, 77, 66, 2, 66, 1, 71, + 29, 66, 1, 29, 26, 35, 29, 24, 94, 6, 6, 72, + 67, 78, 69, 26, 0, 2, 29, 48, 62, 57, 37, 95, + 102, 8, 40, 41, 121, 71, 11, 95, 21, 68, 2, + 29, 33, 54, 47, 38, 103, 70, 76, 83, 81, 76, + 15, 21, 13, 9, 14, 13, 5, 17, 12, 73, 66, 7, + 2, 1, 73, 1, 69, 74, 64, 65, 2, 67, 69, 101, + 71, 72, 69, 79, 81, 1, 12, 2, 65, 1, 64, 76, + 66, 3, 96, 112, 88, 93, 89, 123, 80, 74, 106, + 4, 70, 70, 76, 78, 89, 83, 78, 97, 93, 88, 91, + 98, 71, 4, 32, 22, 10, 4, 11, 5, 0, 66, 4, 12, + 39, 24, 18, 10, 27, 12, 13, 0, 22, 5, 34, 21, + 16, 10, 21, 8, 1, 64, 66, 69, 45, 25, 10, 3, + 16, 1, 71, 68, 13, 39, 32, 19, 9, 27, 11, 8, + 1, 0, 62, 76, 69, 1, 64, 70, 0, 3, 7, 6, 10, + 15, 25, 70, 67, 75, 75, 52, 80, 96, 74, 0, 0, + 72, 71, 70, 73, 64, 75, 91, 69, 68, 20, 70, + 77, 68, 68, 66, 71, 70, 69, 86, 78, 71, 74, + 71, 19, 97, 75, 21, 80, 67, 69, 69, 3, 65, 70, + 1, 7, 72, 72, 99, 37, 35, 36, 22, 8, 9, 7, 64, + 5, 66, 69, 65, 81, 80, 85, 86, 83, 93, 120, + 84, 78, 79, 79, 91, 86, 84, 86, 88, 79, 67, + 71, 68, 75, 93, 82, 80, 100, 87, 98, 99, 117, + 111, 109, 110, 72, 69, 107, 78, 78, 85, 100, + 91, 92, 97, 86, 92, 84, 86, 101, 106, 118, 81, + 93, 100, 71, 8, 12, 15, 30, 20, 26, 5, 28, 24, + 33, 29, 37, 32, 21, 45, 4, 67, 75, 83, 83, + 108, 109, 110, 13, 43, 38, 40, 31, 32, 19, 17, + 9, 8, 71, 8, 12, 15, 30, 20, 26, 5, 28, 24, + 33, 29, 37, 32, 21, 45, 4, 67, 75, 83, 83, + 108, 109, 110 }, + + { + + 31, + 5, 81, 31, 5, 81, 3, 14, 25, 12, 67, 84, 4, + 30, 36, 9, 29, 77, 75, 18, 68, 71, 31, 90, 87, + 6, 68, 126, 126, 125, 12, 64, 69, 75, 18, 68, + 78, 9, 34, 64, 1, 67, 66, 102, 105, 93, 110, + 65, 73, 75, 74, 89, 82, 98, 1, 69, 70, 68, 30, + 1, 22, 0, 0, 0, 2, 95, 97, 8, 71, 69, 13, 66, + 79, 22, 13, 2, 39, 37, 3, 13, 10, 21, 3, 4, + 24, 106, 87, 88, 89, 23, 70, 14, 24, 67, 77, + 64, 8, 65, 74, 72, 82, 22, 75, 11, 67, 76, 4, + 70, 64, 6, 10, 12, 16, 7, 77, 66, 2, 66, 1, + 71, 29, 66, 1, 29, 26, 36, 30, 25, 95, 7, 7, + 73, 67, 78, 69, 27, 0, 2, 30, 49, 62, 59, 38, + 96, 103, 8, 40, 41, 121, 72, 11, 96, 21, 69, + 3, 30, 33, 54, 48, 39, 104, 69, 77, 86, 84, + 74, 15, 21, 13, 8, 13, 12, 5, 16, 11, 73, 66, + 7, 1, 1, 74, 0, 70, 75, 64, 65, 2, 67, 70, + 103, 71, 73, 69, 80, 82, 65, 10, 0, 67, 64, + 66, 79, 68, 1, 98, 114, 90, 95, 91, 125, 81, + 76, 108, 2, 71, 71, 77, 80, 91, 85, 80, 99, + 93, 89, 92, 99, 70, 5, 34, 23, 10, 4, 12, 5, + 0, 65, 5, 13, 40, 25, 19, 10, 28, 13, 14, 1, + 24, 5, 34, 21, 16, 10, 22, 8, 2, 0, 65, 69, + 47, 26, 10, 3, 16, 2, 71, 68, 13, 40, 32, 20, + 9, 28, 11, 8, 2, 0, 62, 74, 67, 3, 1, 68, 1, + 5, 8, 7, 12, 17, 27, 70, 66, 75, 75, 55, 80, + 97, 74, 0, 1, 72, 71, 70, 73, 64, 75, 92, 69, + 68, 20, 70, 77, 68, 68, 66, 71, 70, 69, 87, + 79, 71, 74, 71, 20, 98, 75, 22, 81, 67, 69, + 69, 4, 65, 70, 2, 8, 72, 72, 101, 36, 34, 35, + 20, 6, 6, 5, 67, 3, 69, 72, 68, 84, 83, 87, + 89, 87, 97, 125, 86, 81, 81, 81, 93, 88, 85, + 87, 89, 79, 69, 73, 70, 77, 95, 83, 82, 102, + 89, 101, 101, 119, 113, 111, 111, 73, 71, 109, + 80, 80, 87, 102, 93, 94, 98, 87, 93, 85, 85, + 102, 108, 120, 82, 95, 101, 70, 8, 13, 15, 31, + 21, 27, 5, 29, 25, 34, 29, 38, 33, 22, 44, 2, + 69, 77, 85, 85, 110, 111, 111, 14, 43, 38, 41, + 31, 33, 19, 18, 10, 8, 70, 8, 13, 15, 31, 21, + 27, 5, 29, 25, 34, 29, 38, 33, 22, 44, 2, 69, + 77, 85, 85, 110, 111, 111 }, + + { + + 30, + 5, 81, 30, 5, 81, 5, 16, 25, 12, 68, 86, 3, + 29, 37, 9, 30, 79, 75, 20, 69, 71, 32, 91, 88, + 5, 70, 126, 126, 126, 14, 0, 69, 75, 20, 69, + 78, 10, 34, 64, 1, 66, 64, 103, 106, 93, 110, + 65, 72, 74, 75, 89, 82, 98, 1, 69, 70, 67, 31, + 1, 22, 0, 0, 0, 2, 95, 97, 9, 72, 69, 12, 66, + 78, 24, 14, 3, 40, 38, 4, 14, 12, 22, 4, 5, + 27, 106, 88, 88, 90, 23, 70, 15, 27, 66, 77, + 64, 10, 65, 74, 72, 82, 22, 75, 12, 66, 76, 5, + 69, 64, 6, 11, 13, 16, 7, 78, 66, 2, 66, 1, + 71, 29, 66, 1, 30, 26, 36, 30, 25, 95, 7, 7, + 73, 67, 77, 69, 28, 1, 3, 32, 51, 62, 60, 40, + 96, 104, 9, 41, 41, 122, 72, 12, 96, 22, 69, + 3, 31, 33, 54, 48, 41, 105, 67, 78, 89, 87, + 73, 15, 21, 12, 8, 13, 12, 4, 16, 11, 74, 67, + 7, 1, 1, 74, 0, 70, 76, 65, 65, 2, 68, 70, + 104, 72, 74, 69, 81, 82, 67, 8, 65, 68, 65, + 68, 82, 71, 0, 100, 116, 91, 97, 93, 126, 82, + 77, 109, 1, 72, 72, 79, 81, 93, 87, 81, 100, + 93, 90, 93, 101, 68, 7, 35, 23, 10, 4, 13, 6, + 1, 65, 7, 15, 41, 26, 19, 11, 30, 14, 16, 2, + 27, 6, 35, 22, 17, 11, 23, 9, 2, 1, 64, 69, + 48, 27, 10, 3, 17, 2, 71, 67, 14, 40, 33, 20, + 9, 29, 12, 9, 2, 1, 62, 73, 66, 4, 2, 67, 3, + 6, 10, 9, 14, 19, 30, 69, 65, 74, 74, 58, 79, + 98, 73, 1, 2, 72, 71, 70, 73, 0, 76, 93, 69, + 68, 21, 70, 77, 68, 68, 65, 72, 71, 69, 88, + 80, 72, 74, 71, 21, 99, 76, 23, 81, 68, 69, + 69, 4, 66, 71, 2, 8, 72, 72, 102, 35, 33, 34, + 19, 3, 4, 2, 70, 0, 72, 75, 71, 87, 85, 89, + 93, 90, 101, 126, 89, 83, 83, 83, 96, 90, 86, + 88, 90, 79, 71, 76, 73, 79, 97, 85, 83, 104, + 91, 103, 103, 121, 115, 112, 113, 74, 72, 111, + 81, 81, 88, 104, 94, 95, 99, 88, 94, 85, 84, + 104, 109, 121, 84, 96, 102, 70, 9, 13, 16, 32, + 22, 27, 6, 30, 26, 35, 30, 39, 33, 22, 44, 0, + 71, 79, 87, 87, 113, 113, 112, 14, 44, 39, 41, + 32, 34, 20, 18, 10, 9, 70, 9, 13, 16, 32, 22, + 27, 6, 30, 26, 35, 30, 39, 33, 22, 44, 0, 71, + 79, 87, 87, 113, 113, 112 }, + + { + + 28, + 4, 81, 28, 4, 81, 6, 17, 25, 12, 68, 88, 1, + 28, 37, 9, 32, 81, 75, 21, 69, 72, 33, 92, 90, + 3, 72, 126, 126, 126, 16, 1, 69, 75, 21, 69, + 78, 10, 34, 65, 2, 65, 0, 104, 108, 94, 111, + 65, 72, 73, 75, 90, 82, 98, 1, 69, 70, 67, 31, + 1, 22, 0, 0, 0, 3, 96, 97, 9, 73, 69, 12, 65, + 77, 26, 15, 3, 42, 40, 4, 15, 14, 22, 5, 6, + 29, 107, 88, 89, 90, 23, 71, 15, 29, 66, 76, + 0, 11, 65, 74, 72, 82, 22, 75, 12, 65, 76, 5, + 69, 64, 6, 11, 14, 17, 7, 78, 67, 2, 66, 0, + 71, 29, 66, 1, 30, 26, 36, 30, 25, 96, 8, 8, + 74, 67, 77, 69, 29, 1, 3, 33, 52, 62, 62, 42, + 97, 105, 9, 41, 41, 123, 72, 12, 97, 22, 69, + 3, 32, 33, 54, 48, 42, 106, 66, 79, 92, 91, + 72, 14, 21, 12, 7, 12, 11, 4, 16, 10, 75, 68, + 6, 1, 0, 75, 64, 71, 77, 65, 66, 1, 69, 71, + 105, 73, 75, 69, 83, 83, 69, 6, 67, 70, 67, + 71, 86, 73, 64, 102, 119, 93, 100, 95, 126, + 84, 78, 111, 0, 73, 73, 80, 83, 95, 89, 83, + 102, 93, 91, 94, 103, 67, 8, 36, 24, 10, 4, + 13, 7, 2, 64, 9, 16, 41, 26, 20, 11, 31, 15, + 17, 3, 29, 6, 35, 22, 17, 11, 23, 9, 3, 1, 0, + 69, 49, 28, 10, 3, 18, 3, 71, 66, 15, 40, 34, + 20, 9, 30, 12, 10, 3, 1, 62, 72, 64, 6, 4, 66, + 4, 8, 11, 10, 15, 21, 32, 69, 64, 74, 73, 61, + 79, 99, 73, 2, 2, 72, 71, 70, 74, 0, 76, 94, + 69, 68, 21, 70, 77, 69, 68, 65, 72, 71, 70, + 89, 81, 72, 75, 71, 22, 100, 76, 23, 82, 68, + 69, 70, 4, 66, 71, 2, 9, 72, 72, 104, 34, 32, + 33, 17, 1, 1, 64, 73, 65, 75, 79, 74, 91, 88, + 91, 97, 94, 105, 126, 92, 85, 85, 86, 98, 92, + 88, 90, 91, 79, 74, 78, 75, 81, 100, 87, 85, + 107, 93, 105, 105, 123, 118, 114, 114, 76, 73, + 114, 83, 83, 90, 106, 96, 97, 100, 89, 95, 85, + 83, 105, 111, 123, 85, 97, 103, 70, 9, 14, 16, + 33, 22, 28, 6, 31, 26, 36, 30, 39, 34, 23, 43, + 65, 73, 81, 89, 89, 115, 115, 114, 15, 44, 39, + 42, 32, 34, 20, 19, 10, 9, 70, 9, 14, 16, 33, + 22, 28, 6, 31, 26, 36, 30, 39, 34, 23, 43, 65, + 73, 81, 89, 89, 115, 115, 114 }, + + { + + 27, + 4, 81, 27, 4, 81, 8, 18, 26, 12, 68, 90, 64, + 28, 38, 9, 34, 82, 74, 23, 69, 72, 34, 92, 91, + 2, 74, 126, 126, 126, 18, 3, 68, 74, 23, 69, + 77, 11, 35, 65, 3, 64, 1, 105, 109, 94, 111, + 65, 72, 72, 75, 90, 82, 98, 1, 68, 69, 66, 31, + 1, 22, 0, 0, 0, 4, 96, 97, 9, 74, 69, 12, 64, + 75, 29, 16, 4, 44, 42, 5, 16, 16, 23, 7, 7, + 31, 108, 88, 89, 90, 24, 71, 16, 31, 66, 75, + 1, 13, 65, 73, 72, 81, 23, 75, 13, 64, 75, 6, + 69, 64, 7, 12, 15, 18, 7, 78, 67, 3, 65, 0, + 71, 30, 66, 1, 30, 27, 37, 30, 26, 96, 9, 9, + 75, 67, 77, 69, 30, 1, 4, 34, 53, 62, 62, 44, + 98, 106, 10, 41, 42, 124, 72, 12, 97, 23, 69, + 3, 34, 33, 54, 48, 43, 107, 65, 80, 94, 94, + 70, 14, 21, 12, 6, 12, 11, 4, 16, 10, 76, 69, + 6, 1, 0, 75, 64, 72, 77, 65, 66, 1, 70, 72, + 106, 73, 75, 69, 84, 83, 71, 4, 68, 71, 69, + 73, 89, 75, 65, 104, 121, 94, 102, 96, 126, + 85, 79, 113, 64, 74, 74, 81, 85, 96, 91, 85, + 103, 93, 91, 95, 104, 65, 10, 38, 25, 10, 4, + 14, 8, 3, 0, 11, 17, 42, 27, 21, 12, 32, 16, + 18, 4, 31, 7, 36, 23, 18, 11, 24, 10, 4, 2, 2, + 68, 51, 29, 11, 3, 19, 4, 70, 65, 16, 41, 35, + 21, 10, 31, 13, 11, 4, 2, 62, 70, 1, 8, 6, 65, + 5, 10, 13, 12, 17, 23, 34, 68, 0, 73, 72, 62, + 79, 100, 73, 3, 3, 71, 71, 70, 74, 0, 76, 95, + 69, 68, 22, 70, 77, 69, 68, 65, 72, 71, 70, + 89, 82, 72, 75, 70, 24, 100, 76, 24, 83, 68, + 69, 70, 5, 66, 71, 3, 10, 71, 71, 106, 33, 31, + 32, 15, 64, 65, 66, 76, 67, 77, 82, 76, 94, + 91, 93, 101, 97, 108, 126, 95, 87, 86, 88, + 100, 93, 89, 91, 92, 79, 76, 80, 77, 83, 102, + 89, 86, 109, 95, 107, 107, 125, 120, 116, 115, + 77, 74, 116, 84, 85, 91, 108, 97, 98, 101, 90, + 95, 85, 82, 106, 112, 125, 86, 98, 104, 70, + 10, 15, 17, 35, 23, 29, 6, 32, 27, 37, 31, 40, + 35, 24, 42, 66, 75, 83, 91, 91, 117, 117, 115, + 16, 44, 40, 43, 33, 35, 21, 20, 11, 10, 70, + 10, 15, 17, 35, 23, 29, 6, 32, 27, 37, 31, 40, + 35, 24, 42, 66, 75, 83, 91, 91, 117, 117, 115 }, + + { + + 26, + 4, 81, 26, 4, 81, 10, 20, 26, 12, 69, 92, 65, + 27, 39, 9, 35, 84, 74, 24, 70, 72, 35, 93, 92, + 1, 76, 126, 126, 126, 20, 4, 68, 74, 24, 70, + 77, 12, 35, 65, 3, 0, 3, 106, 110, 94, 111, + 65, 71, 71, 76, 90, 82, 98, 1, 68, 69, 65, 32, + 1, 22, 0, 0, 0, 4, 96, 97, 10, 75, 69, 11, 64, + 74, 31, 17, 5, 45, 43, 6, 17, 18, 24, 8, 8, + 34, 108, 89, 89, 91, 24, 71, 17, 34, 65, 75, + 1, 15, 65, 73, 72, 81, 23, 75, 13, 0, 75, 7, + 68, 64, 7, 12, 16, 18, 7, 79, 67, 3, 65, 0, + 71, 30, 66, 1, 31, 27, 37, 30, 26, 97, 9, 9, + 75, 67, 76, 69, 31, 2, 4, 36, 55, 62, 62, 46, + 98, 107, 10, 42, 42, 125, 72, 13, 98, 24, 69, + 3, 35, 33, 54, 48, 45, 108, 0, 81, 97, 97, 69, + 14, 21, 11, 6, 11, 11, 3, 16, 9, 77, 70, 6, 1, + 0, 75, 65, 72, 78, 66, 66, 1, 71, 72, 107, 74, + 76, 69, 85, 84, 73, 2, 70, 73, 70, 75, 92, 78, + 66, 106, 123, 96, 104, 98, 126, 86, 80, 114, + 65, 75, 75, 83, 86, 98, 93, 86, 105, 93, 92, + 96, 106, 64, 11, 39, 25, 10, 4, 15, 9, 4, 0, + 13, 19, 43, 28, 21, 13, 34, 17, 20, 5, 34, 8, + 36, 23, 18, 12, 25, 11, 4, 3, 3, 68, 52, 30, + 11, 3, 20, 4, 70, 64, 17, 41, 36, 21, 10, 32, + 14, 12, 4, 3, 62, 69, 2, 9, 7, 64, 7, 11, 15, + 13, 19, 25, 37, 67, 1, 72, 71, 62, 78, 101, + 72, 4, 4, 71, 71, 70, 74, 1, 77, 96, 69, 68, + 23, 70, 77, 69, 68, 64, 73, 72, 70, 90, 83, + 73, 75, 70, 25, 101, 77, 25, 83, 69, 69, 70, + 5, 67, 72, 3, 10, 71, 71, 107, 32, 30, 31, 14, + 67, 67, 69, 79, 70, 80, 85, 79, 97, 93, 95, + 105, 101, 112, 126, 98, 89, 88, 90, 103, 95, + 90, 92, 93, 79, 78, 83, 80, 85, 104, 91, 88, + 111, 97, 109, 109, 126, 122, 117, 117, 78, 75, + 118, 86, 86, 93, 110, 98, 99, 102, 91, 96, 85, + 81, 108, 113, 126, 88, 99, 105, 70, 10, 15, + 18, 36, 24, 29, 7, 33, 28, 38, 31, 41, 35, 24, + 42, 68, 77, 85, 93, 93, 120, 119, 116, 16, 45, + 40, 43, 34, 36, 21, 20, 11, 11, 70, 10, 15, + 18, 36, 24, 29, 7, 33, 28, 38, 31, 41, 35, 24, + 42, 68, 77, 85, 93, 93, 120, 119, 116 }, + + { + + 25, + 4, 82, 25, 4, 82, 12, 21, 27, 12, 69, 93, 67, + 26, 39, 10, 37, 85, 74, 26, 70, 73, 36, 94, + 93, 0, 77, 126, 126, 126, 22, 6, 68, 74, 26, + 70, 76, 13, 36, 65, 4, 1, 4, 108, 111, 94, + 112, 65, 71, 71, 76, 91, 81, 98, 0, 68, 69, + 64, 32, 1, 22, 0, 0, 0, 5, 96, 97, 10, 75, 70, + 11, 0, 73, 33, 18, 6, 47, 45, 7, 18, 20, 25, + 9, 8, 36, 109, 89, 89, 91, 25, 71, 18, 36, 65, + 74, 2, 17, 65, 73, 72, 81, 24, 76, 14, 0, 75, + 8, 68, 0, 7, 13, 17, 19, 7, 79, 67, 3, 65, 0, + 71, 30, 66, 1, 31, 27, 38, 31, 27, 97, 10, 10, + 76, 67, 76, 69, 32, 2, 5, 37, 56, 62, 62, 47, + 99, 108, 11, 42, 42, 125, 73, 13, 98, 24, 70, + 4, 36, 33, 54, 49, 46, 109, 1, 82, 100, 100, + 67, 14, 21, 11, 5, 11, 10, 3, 15, 9, 77, 70, + 6, 0, 0, 76, 65, 73, 79, 66, 66, 1, 71, 73, + 109, 74, 77, 69, 86, 84, 76, 0, 72, 74, 72, + 77, 95, 80, 68, 108, 125, 97, 106, 100, 126, + 87, 82, 116, 67, 76, 76, 84, 88, 100, 95, 88, + 106, 93, 93, 97, 107, 1, 13, 41, 26, 10, 4, + 16, 9, 4, 1, 14, 20, 44, 29, 22, 13, 35, 18, + 21, 6, 36, 8, 37, 24, 19, 12, 26, 11, 5, 4, 4, + 68, 54, 31, 11, 3, 20, 5, 70, 64, 17, 42, 36, + 22, 10, 33, 14, 12, 5, 3, 62, 67, 4, 11, 9, 1, + 8, 13, 16, 15, 21, 27, 39, 67, 2, 72, 71, 62, + 78, 102, 72, 4, 5, 71, 71, 70, 74, 1, 77, 97, + 69, 68, 23, 70, 77, 69, 68, 64, 73, 72, 70, + 91, 84, 73, 75, 70, 26, 102, 77, 26, 84, 69, + 69, 70, 6, 67, 72, 4, 11, 71, 71, 109, 31, 29, + 30, 12, 69, 70, 71, 82, 72, 83, 88, 82, 100, + 96, 97, 108, 104, 116, 126, 100, 92, 90, 92, + 105, 97, 91, 93, 94, 79, 80, 85, 82, 87, 106, + 92, 89, 113, 99, 112, 111, 126, 124, 119, 118, + 79, 77, 120, 87, 88, 94, 112, 100, 101, 103, + 92, 97, 86, 80, 109, 115, 126, 89, 101, 106, + 69, 11, 16, 18, 37, 25, 30, 7, 34, 29, 39, 32, + 42, 36, 25, 41, 70, 79, 87, 95, 95, 122, 121, + 117, 17, 45, 41, 44, 34, 37, 22, 21, 12, 11, + 69, 11, 16, 18, 37, 25, 30, 7, 34, 29, 39, 32, + 42, 36, 25, 41, 70, 79, 87, 95, 95, 122, 121, + 117 }, + + { + + 23, + 4, 82, 23, 4, 82, 13, 23, 27, 12, 70, 95, 68, + 25, 40, 10, 39, 87, 74, 27, 70, 73, 37, 95, + 95, 65, 79, 126, 126, 126, 24, 7, 68, 74, 27, + 70, 76, 14, 36, 66, 5, 2, 5, 109, 113, 95, + 112, 65, 71, 70, 76, 91, 81, 98, 0, 68, 69, + 64, 33, 1, 22, 0, 0, 0, 5, 97, 97, 11, 76, 70, + 10, 0, 72, 35, 19, 7, 48, 46, 7, 19, 22, 26, + 10, 9, 38, 110, 89, 89, 91, 25, 72, 19, 38, + 65, 73, 3, 19, 65, 73, 72, 81, 24, 76, 14, 1, + 75, 8, 68, 0, 7, 13, 18, 19, 7, 79, 68, 3, 65, + 0, 71, 30, 66, 1, 32, 27, 38, 31, 27, 98, 10, + 11, 76, 67, 76, 69, 33, 2, 5, 38, 57, 62, 62, + 49, 99, 109, 11, 42, 42, 126, 73, 14, 99, 25, + 70, 4, 37, 33, 54, 49, 47, 110, 3, 83, 103, + 103, 66, 13, 21, 10, 4, 10, 10, 2, 15, 8, 78, + 71, 5, 0, 0, 76, 66, 74, 80, 67, 67, 0, 72, + 73, 110, 75, 78, 69, 88, 85, 78, 65, 74, 76, + 74, 79, 99, 83, 69, 110, 126, 99, 108, 102, + 126, 89, 83, 118, 68, 77, 77, 85, 89, 102, 97, + 90, 108, 93, 94, 98, 109, 2, 14, 42, 26, 10, + 4, 17, 10, 5, 2, 16, 21, 45, 29, 23, 14, 36, + 19, 23, 7, 38, 9, 37, 24, 19, 13, 27, 12, 5, + 4, 5, 68, 55, 32, 11, 3, 21, 5, 70, 0, 18, 42, + 37, 22, 10, 34, 15, 13, 5, 4, 62, 66, 5, 12, + 11, 2, 10, 14, 18, 16, 22, 29, 41, 66, 3, 71, + 70, 62, 78, 103, 72, 5, 5, 71, 71, 70, 75, 2, + 77, 98, 69, 68, 24, 70, 77, 69, 68, 64, 74, + 72, 70, 92, 85, 73, 75, 70, 27, 103, 77, 26, + 85, 69, 69, 70, 6, 67, 73, 4, 12, 71, 71, 110, + 30, 28, 29, 10, 71, 72, 74, 85, 75, 86, 92, + 85, 104, 99, 99, 112, 108, 120, 126, 103, 94, + 92, 94, 108, 99, 93, 94, 95, 79, 83, 87, 84, + 89, 108, 94, 91, 115, 101, 114, 113, 126, 126, + 121, 119, 80, 78, 123, 89, 90, 96, 114, 101, + 102, 104, 93, 98, 86, 79, 110, 116, 126, 90, + 102, 107, 69, 11, 16, 19, 38, 25, 31, 7, 35, + 30, 40, 32, 43, 36, 26, 41, 72, 81, 89, 97, + 97, 124, 123, 119, 17, 46, 41, 45, 35, 37, 22, + 21, 12, 12, 69, 11, 16, 19, 38, 25, 31, 7, 35, + 30, 40, 32, 43, 36, 26, 41, 72, 81, 89, 97, + 97, 124, 123, 119 }, + + { + + 22, + 4, 82, 22, 4, 82, 15, 24, 27, 12, 70, 97, 70, + 24, 41, 10, 40, 89, 73, 29, 71, 73, 38, 96, + 96, 66, 81, 126, 126, 126, 26, 8, 68, 73, 29, + 71, 76, 15, 36, 66, 5, 3, 7, 110, 114, 95, + 112, 65, 70, 69, 77, 91, 81, 98, 0, 67, 69, 0, + 33, 1, 22, 0, 0, 0, 6, 97, 97, 11, 77, 70, 10, + 1, 70, 38, 20, 8, 50, 48, 8, 20, 24, 27, 11, + 10, 41, 110, 90, 89, 92, 25, 72, 20, 41, 64, + 73, 3, 21, 65, 73, 72, 80, 24, 76, 15, 2, 74, + 9, 67, 0, 8, 14, 19, 20, 7, 80, 68, 4, 65, 0, + 71, 31, 66, 1, 32, 28, 38, 31, 27, 98, 11, 11, + 77, 67, 75, 69, 34, 3, 6, 40, 59, 62, 62, 51, + 100, 110, 12, 43, 42, 126, 73, 14, 99, 26, 70, + 4, 39, 33, 54, 49, 49, 111, 4, 84, 105, 106, + 65, 13, 21, 10, 4, 10, 10, 2, 15, 8, 79, 72, + 5, 0, 0, 76, 66, 74, 81, 67, 67, 0, 73, 74, + 111, 76, 78, 69, 89, 85, 80, 67, 75, 77, 75, + 81, 102, 85, 70, 112, 126, 100, 110, 104, 126, + 90, 84, 119, 69, 78, 78, 87, 91, 104, 99, 91, + 109, 93, 95, 99, 111, 4, 16, 43, 27, 10, 4, + 18, 11, 6, 2, 18, 23, 46, 30, 23, 15, 38, 20, + 24, 8, 41, 10, 38, 25, 20, 13, 28, 13, 6, 5, + 6, 67, 56, 33, 11, 3, 22, 6, 69, 1, 19, 42, + 38, 22, 10, 35, 16, 14, 6, 5, 62, 65, 7, 14, + 12, 3, 11, 16, 20, 18, 24, 31, 44, 65, 4, 70, + 69, 62, 77, 104, 71, 6, 6, 71, 71, 70, 75, 2, + 78, 99, 69, 68, 25, 70, 77, 69, 68, 0, 74, 73, + 70, 93, 86, 74, 75, 70, 28, 103, 78, 27, 85, + 70, 69, 70, 6, 68, 73, 4, 12, 71, 71, 112, 29, + 27, 28, 9, 74, 75, 77, 88, 77, 89, 95, 88, + 107, 101, 101, 116, 111, 124, 126, 106, 96, + 93, 96, 110, 101, 94, 95, 96, 79, 85, 90, 87, + 91, 110, 96, 92, 117, 103, 116, 115, 126, 126, + 122, 121, 81, 79, 125, 90, 91, 97, 116, 102, + 103, 105, 94, 99, 86, 78, 112, 117, 126, 92, + 103, 108, 69, 12, 17, 20, 39, 26, 31, 8, 36, + 31, 41, 33, 44, 37, 26, 40, 74, 83, 91, 99, + 99, 126, 125, 120, 18, 46, 42, 45, 36, 38, 23, + 22, 12, 13, 69, 12, 17, 20, 39, 26, 31, 8, 36, + 31, 41, 33, 44, 37, 26, 40, 74, 83, 91, 99, + 99, 126, 125, 120 }, + + { + + 21, + 4, 82, 21, 4, 82, 17, 26, 28, 12, 71, 99, 71, + 23, 41, 10, 42, 90, 73, 30, 71, 74, 39, 97, + 97, 67, 83, 126, 126, 126, 28, 10, 68, 73, 30, + 71, 75, 16, 37, 66, 6, 4, 8, 111, 115, 95, + 113, 65, 70, 68, 77, 92, 81, 98, 0, 67, 69, 1, + 34, 1, 22, 0, 0, 0, 6, 97, 97, 12, 78, 70, 9, + 1, 69, 40, 21, 9, 51, 49, 9, 21, 26, 28, 12, + 11, 43, 111, 90, 89, 92, 26, 72, 21, 43, 64, + 72, 4, 23, 65, 73, 72, 80, 25, 76, 15, 3, 74, + 10, 67, 0, 8, 14, 20, 20, 7, 80, 68, 4, 65, 0, + 71, 31, 66, 1, 33, 28, 39, 31, 28, 99, 11, 12, + 77, 67, 75, 69, 35, 3, 6, 41, 60, 62, 62, 53, + 100, 111, 12, 43, 42, 126, 73, 15, 100, 26, + 70, 4, 40, 33, 54, 49, 50, 112, 6, 85, 108, + 109, 0, 13, 21, 9, 3, 9, 9, 1, 15, 7, 80, 73, + 5, 0, 0, 77, 67, 75, 82, 68, 67, 0, 74, 74, + 112, 76, 79, 69, 90, 86, 82, 69, 77, 79, 77, + 83, 105, 88, 71, 114, 126, 102, 112, 106, 126, + 91, 85, 121, 70, 79, 79, 88, 92, 106, 101, 93, + 111, 93, 96, 100, 112, 5, 17, 45, 27, 10, 4, + 19, 12, 7, 3, 20, 24, 47, 31, 24, 15, 39, 21, + 26, 9, 43, 10, 38, 25, 20, 14, 29, 13, 6, 6, + 7, 67, 58, 34, 11, 3, 23, 6, 69, 2, 20, 43, + 39, 23, 10, 36, 16, 15, 6, 5, 62, 0, 8, 15, + 14, 4, 13, 17, 21, 19, 26, 33, 46, 65, 5, 70, + 68, 62, 77, 105, 71, 7, 7, 71, 71, 70, 75, 3, + 78, 100, 69, 68, 25, 70, 77, 69, 68, 0, 75, + 73, 70, 94, 87, 74, 75, 70, 29, 104, 78, 28, + 86, 70, 69, 70, 7, 68, 74, 5, 13, 71, 71, 113, + 28, 26, 27, 7, 76, 77, 79, 91, 80, 92, 98, 91, + 110, 104, 103, 120, 115, 126, 126, 109, 98, + 95, 98, 113, 103, 95, 96, 97, 79, 87, 92, 89, + 93, 112, 98, 94, 119, 105, 118, 117, 126, 126, + 124, 122, 82, 80, 126, 92, 93, 99, 118, 104, + 105, 106, 95, 100, 86, 77, 113, 119, 126, 93, + 104, 109, 69, 12, 17, 20, 40, 27, 32, 8, 37, + 32, 42, 33, 45, 37, 27, 40, 76, 85, 93, 101, + 101, 126, 126, 121, 18, 47, 42, 46, 36, 39, + 23, 22, 13, 13, 69, 12, 17, 20, 40, 27, 32, 8, + 37, 32, 42, 33, 45, 37, 27, 40, 76, 85, 93, + 101, 101, 126, 126, 121 }, + + { + + 20, + 4, 82, 20, 4, 82, 19, 27, 28, 12, 71, 101, 73, + 22, 42, 10, 44, 92, 73, 32, 71, 74, 40, 98, + 98, 68, 85, 126, 126, 126, 30, 11, 68, 73, 32, + 71, 75, 17, 37, 66, 7, 5, 9, 112, 116, 95, + 113, 65, 70, 67, 77, 92, 81, 98, 0, 67, 69, 2, + 34, 1, 22, 0, 0, 0, 7, 97, 97, 12, 79, 70, 9, + 2, 68, 42, 22, 10, 53, 51, 10, 22, 28, 29, 13, + 12, 45, 112, 90, 89, 92, 26, 72, 22, 45, 64, + 71, 5, 25, 65, 73, 72, 80, 25, 76, 16, 4, 74, + 11, 67, 0, 8, 15, 21, 21, 7, 80, 68, 4, 65, 0, + 71, 31, 66, 1, 33, 28, 39, 31, 28, 99, 12, 13, + 78, 67, 75, 69, 36, 3, 7, 42, 61, 62, 62, 55, + 101, 112, 13, 43, 42, 126, 73, 15, 100, 27, + 70, 4, 41, 33, 54, 49, 51, 113, 7, 86, 111, + 112, 1, 13, 21, 9, 2, 9, 9, 1, 15, 7, 81, 74, + 5, 0, 0, 77, 67, 76, 83, 68, 67, 0, 75, 75, + 113, 77, 80, 69, 91, 86, 84, 71, 79, 80, 79, + 85, 108, 90, 72, 116, 126, 103, 114, 108, 126, + 92, 86, 123, 71, 80, 80, 89, 94, 108, 103, 95, + 112, 93, 97, 101, 114, 7, 19, 46, 28, 10, 4, + 20, 13, 8, 4, 22, 25, 48, 32, 25, 16, 40, 22, + 27, 10, 45, 11, 39, 26, 21, 14, 30, 14, 7, 7, + 8, 67, 59, 35, 11, 3, 24, 7, 69, 3, 21, 43, + 40, 23, 10, 37, 17, 16, 7, 6, 62, 1, 10, 17, + 16, 5, 14, 19, 23, 21, 28, 35, 48, 64, 6, 69, + 67, 62, 77, 106, 71, 8, 8, 71, 71, 70, 75, 3, + 78, 101, 69, 68, 26, 70, 77, 69, 68, 0, 75, + 73, 70, 95, 88, 74, 75, 70, 30, 105, 78, 29, + 87, 70, 69, 70, 7, 68, 74, 5, 14, 71, 71, 115, + 27, 25, 26, 5, 78, 80, 82, 94, 82, 95, 101, + 94, 113, 107, 105, 124, 118, 126, 126, 112, + 100, 97, 100, 115, 105, 96, 97, 98, 79, 89, + 94, 91, 95, 114, 100, 95, 121, 107, 120, 119, + 126, 126, 126, 123, 83, 81, 126, 93, 95, 100, + 120, 105, 106, 107, 96, 101, 86, 76, 114, 120, + 126, 94, 105, 110, 69, 13, 18, 21, 41, 28, 33, + 8, 38, 33, 43, 34, 46, 38, 28, 39, 78, 87, 95, + 103, 103, 126, 126, 122, 19, 47, 43, 47, 37, + 40, 24, 23, 13, 14, 69, 13, 18, 21, 41, 28, + 33, 8, 38, 33, 43, 34, 46, 38, 28, 39, 78, 87, + 95, 103, 103, 126, 126, 122 }, + + { + + 18, + 3, 83, 18, 3, 83, 20, 28, 28, 12, 72, 103, 75, + 21, 42, 10, 45, 94, 73, 33, 72, 75, 41, 99, + 100, 70, 87, 126, 126, 126, 32, 12, 68, 73, + 33, 72, 75, 17, 37, 67, 7, 5, 10, 114, 118, + 96, 114, 66, 70, 67, 78, 93, 81, 98, 64, 67, + 69, 2, 34, 0, 22, 0, 0, 0, 7, 98, 97, 12, 80, + 71, 8, 2, 67, 44, 23, 10, 54, 52, 10, 23, 29, + 29, 14, 12, 47, 113, 91, 90, 93, 26, 73, 22, + 47, 64, 71, 5, 26, 65, 73, 72, 80, 25, 77, 16, + 4, 74, 11, 67, 0, 8, 15, 22, 21, 7, 81, 69, 4, + 65, 64, 71, 31, 66, 1, 33, 28, 39, 31, 28, + 100, 12, 13, 79, 67, 75, 70, 36, 3, 7, 43, 62, + 62, 62, 56, 102, 114, 13, 43, 42, 126, 74, 15, + 101, 27, 71, 4, 42, 33, 53, 49, 52, 114, 8, + 88, 114, 116, 2, 12, 21, 8, 1, 8, 8, 0, 14, 6, + 82, 75, 4, 64, 64, 78, 68, 77, 84, 69, 68, 64, + 76, 76, 115, 78, 81, 69, 93, 87, 87, 74, 81, + 82, 81, 88, 112, 93, 74, 118, 126, 105, 117, + 110, 126, 94, 88, 125, 73, 81, 81, 91, 96, + 110, 105, 97, 114, 93, 98, 102, 116, 8, 20, + 47, 28, 10, 4, 20, 13, 8, 4, 23, 26, 48, 32, + 25, 16, 41, 23, 28, 10, 47, 11, 39, 26, 21, + 14, 30, 14, 7, 7, 9, 67, 60, 36, 11, 2, 24, 7, + 69, 3, 21, 43, 40, 23, 10, 38, 17, 16, 7, 6, + 62, 2, 11, 18, 17, 6, 15, 20, 24, 22, 29, 36, + 50, 64, 6, 69, 67, 62, 77, 108, 71, 8, 8, 71, + 71, 70, 76, 3, 79, 102, 70, 68, 26, 71, 77, + 70, 68, 0, 76, 74, 71, 96, 89, 75, 76, 70, 31, + 106, 79, 29, 88, 71, 69, 71, 7, 69, 75, 5, 14, + 71, 71, 117, 25, 24, 24, 3, 81, 83, 85, 97, + 85, 98, 105, 97, 117, 110, 107, 126, 122, 126, + 126, 115, 103, 99, 103, 118, 107, 98, 99, 99, + 79, 92, 97, 94, 97, 117, 102, 97, 124, 109, + 123, 121, 126, 126, 126, 125, 85, 83, 126, 95, + 97, 102, 122, 107, 108, 108, 97, 102, 87, 75, + 116, 122, 126, 96, 107, 112, 69, 13, 18, 21, + 42, 28, 33, 8, 39, 33, 44, 34, 46, 38, 28, 38, + 80, 89, 98, 106, 105, 126, 126, 124, 19, 47, + 43, 47, 37, 40, 24, 23, 13, 14, 69, 13, 18, + 21, 42, 28, 33, 8, 39, 33, 44, 34, 46, 38, 28, + 38, 80, 89, 98, 106, 105, 126, 126, 124 }, + + { + + 17, + 3, 83, 17, 3, 83, 22, 30, 29, 13, 72, 104, 76, + 21, 43, 11, 47, 95, 72, 35, 72, 75, 43, 99, + 101, 71, 88, 126, 126, 126, 34, 14, 67, 72, + 35, 72, 74, 18, 38, 67, 8, 6, 12, 115, 119, + 96, 114, 66, 69, 66, 78, 93, 80, 97, 64, 66, + 68, 3, 35, 0, 22, 0, 0, 0, 8, 98, 97, 13, 80, + 71, 8, 3, 65, 47, 25, 11, 56, 54, 11, 25, 31, + 30, 16, 13, 50, 113, 91, 90, 93, 27, 73, 23, + 50, 0, 70, 6, 28, 65, 72, 72, 79, 26, 77, 17, + 5, 73, 12, 66, 1, 9, 16, 23, 22, 8, 81, 69, 5, + 64, 64, 70, 32, 65, 1, 34, 29, 40, 32, 29, + 100, 13, 14, 79, 67, 74, 70, 37, 4, 8, 45, 62, + 62, 62, 58, 102, 115, 14, 44, 43, 126, 74, 16, + 101, 28, 71, 5, 44, 33, 53, 50, 54, 115, 10, + 89, 116, 119, 4, 12, 21, 8, 1, 8, 8, 0, 14, 6, + 82, 75, 4, 64, 64, 78, 68, 77, 84, 69, 68, 64, + 76, 76, 116, 78, 81, 69, 94, 87, 89, 76, 82, + 83, 82, 90, 115, 95, 75, 119, 126, 106, 119, + 111, 126, 95, 89, 126, 74, 81, 81, 92, 97, + 111, 106, 98, 115, 93, 98, 102, 117, 10, 22, + 49, 29, 10, 4, 21, 14, 9, 5, 25, 28, 49, 33, + 26, 17, 43, 24, 30, 11, 50, 12, 40, 27, 22, + 15, 31, 15, 8, 8, 11, 66, 62, 37, 12, 2, 25, + 8, 68, 4, 22, 44, 41, 24, 11, 39, 18, 17, 8, + 7, 62, 4, 13, 20, 19, 8, 17, 22, 26, 24, 31, + 38, 53, 0, 7, 68, 66, 62, 76, 109, 70, 9, 9, + 70, 71, 69, 76, 4, 79, 102, 70, 68, 27, 71, + 77, 70, 68, 1, 76, 74, 71, 96, 89, 75, 76, 69, + 33, 106, 79, 30, 88, 71, 69, 71, 8, 69, 75, 6, + 15, 70, 70, 118, 24, 23, 23, 2, 83, 85, 87, + 100, 87, 100, 108, 99, 120, 112, 109, 126, + 125, 126, 126, 117, 105, 100, 105, 120, 108, + 99, 100, 99, 79, 94, 99, 96, 99, 119, 103, 98, + 126, 110, 125, 122, 126, 126, 126, 126, 86, + 84, 126, 96, 98, 103, 123, 108, 109, 109, 97, + 102, 87, 74, 117, 123, 126, 97, 108, 113, 68, + 14, 19, 22, 44, 29, 34, 9, 41, 34, 45, 35, 47, + 39, 29, 38, 81, 90, 100, 108, 106, 126, 126, + 125, 20, 48, 44, 48, 38, 41, 25, 24, 14, 15, + 68, 14, 19, 22, 44, 29, 34, 9, 41, 34, 45, 35, + 47, 39, 29, 38, 81, 90, 100, 108, 106, 126, + 126, 125 }, + + { + + 16, + 3, 83, 16, 3, 83, 24, 31, 29, 13, 72, 106, 78, + 20, 44, 11, 49, 97, 72, 36, 72, 75, 44, 100, + 102, 72, 90, 126, 126, 126, 36, 15, 67, 72, + 36, 72, 74, 19, 38, 67, 9, 7, 13, 116, 120, + 96, 114, 66, 69, 65, 78, 93, 80, 97, 64, 66, + 68, 4, 35, 0, 22, 0, 0, 0, 9, 98, 97, 13, 81, + 71, 8, 4, 64, 49, 26, 12, 58, 56, 12, 26, 33, + 31, 17, 14, 52, 114, 91, 90, 93, 27, 73, 24, + 52, 0, 69, 7, 30, 65, 72, 72, 79, 26, 77, 17, + 6, 73, 13, 66, 1, 9, 16, 24, 23, 8, 81, 69, 5, + 64, 64, 70, 32, 65, 1, 34, 29, 40, 32, 29, + 101, 14, 15, 80, 67, 74, 70, 38, 4, 8, 46, 62, + 62, 62, 60, 103, 116, 14, 44, 43, 126, 74, 16, + 102, 29, 71, 5, 45, 33, 53, 50, 55, 116, 11, + 90, 119, 122, 5, 12, 21, 8, 0, 7, 8, 0, 14, 5, + 83, 76, 4, 64, 64, 78, 69, 78, 85, 69, 68, 64, + 77, 77, 117, 79, 82, 69, 95, 88, 91, 78, 84, + 85, 84, 92, 118, 97, 76, 121, 126, 108, 121, + 113, 126, 96, 90, 126, 75, 82, 82, 93, 99, + 113, 108, 100, 117, 93, 99, 103, 119, 11, 23, + 50, 30, 10, 4, 22, 15, 10, 6, 27, 29, 50, 34, + 27, 18, 44, 25, 31, 12, 52, 13, 40, 27, 22, + 15, 32, 16, 9, 9, 12, 66, 62, 38, 12, 2, 26, + 9, 68, 5, 23, 44, 42, 24, 11, 40, 19, 18, 9, + 8, 62, 5, 15, 22, 21, 9, 18, 24, 28, 25, 33, + 40, 55, 1, 8, 67, 65, 62, 76, 110, 70, 10, 10, + 70, 71, 69, 76, 4, 79, 103, 70, 68, 28, 71, + 77, 70, 68, 1, 76, 74, 71, 97, 90, 75, 76, 69, + 34, 107, 79, 31, 89, 71, 69, 71, 8, 69, 75, 6, + 16, 70, 70, 120, 23, 22, 22, 0, 85, 88, 90, + 103, 89, 103, 111, 102, 123, 115, 111, 126, + 126, 126, 126, 120, 107, 102, 107, 122, 110, + 100, 101, 100, 79, 96, 101, 98, 101, 121, 105, + 100, 126, 112, 126, 124, 126, 126, 126, 126, + 87, 85, 126, 98, 100, 105, 125, 109, 110, 110, + 98, 103, 87, 73, 118, 124, 126, 98, 109, 114, + 68, 14, 20, 23, 45, 30, 35, 9, 42, 35, 46, 35, + 48, 40, 30, 37, 83, 92, 102, 110, 108, 126, + 126, 126, 21, 48, 44, 49, 39, 42, 25, 25, 14, + 16, 68, 14, 20, 23, 45, 30, 35, 9, 42, 35, 46, + 35, 48, 40, 30, 37, 83, 92, 102, 110, 108, + 126, 126, 126 }, + + { + + 15, + 3, 83, 15, 3, 83, 26, 33, 30, 13, 73, 108, 79, + 19, 44, 11, 51, 98, 72, 38, 72, 76, 45, 101, + 103, 73, 92, 126, 126, 126, 38, 17, 67, 72, + 38, 72, 73, 20, 39, 67, 10, 8, 14, 117, 121, + 96, 115, 66, 69, 64, 78, 94, 80, 97, 64, 66, + 68, 5, 36, 0, 22, 0, 0, 0, 9, 98, 97, 14, 82, + 71, 7, 4, 0, 51, 27, 13, 59, 57, 13, 27, 35, + 32, 18, 15, 54, 115, 91, 90, 93, 28, 73, 25, + 54, 0, 68, 8, 32, 65, 72, 72, 79, 27, 77, 18, + 7, 73, 14, 66, 1, 9, 17, 25, 23, 8, 81, 69, 5, + 64, 64, 70, 32, 65, 1, 35, 29, 41, 32, 30, + 101, 14, 16, 80, 67, 74, 70, 39, 4, 9, 47, 62, + 62, 62, 62, 103, 117, 15, 44, 43, 126, 74, 17, + 102, 29, 71, 5, 46, 33, 53, 50, 56, 117, 13, + 91, 122, 125, 7, 12, 21, 7, 64, 7, 7, 64, 14, + 5, 84, 77, 4, 64, 64, 79, 69, 79, 86, 70, 68, + 64, 78, 77, 118, 79, 83, 69, 96, 88, 93, 80, + 86, 86, 86, 94, 121, 100, 77, 123, 126, 109, + 123, 115, 126, 97, 91, 126, 76, 83, 83, 94, + 100, 115, 110, 102, 118, 93, 100, 104, 120, + 13, 25, 52, 30, 10, 4, 23, 16, 11, 7, 29, 30, + 51, 35, 28, 18, 45, 26, 33, 13, 54, 13, 41, + 28, 23, 16, 33, 16, 9, 10, 13, 66, 62, 39, 12, + 2, 27, 9, 68, 6, 24, 45, 43, 25, 11, 41, 19, + 19, 9, 8, 62, 7, 16, 23, 23, 10, 20, 25, 29, + 27, 35, 42, 57, 1, 9, 67, 64, 62, 76, 111, 70, + 11, 11, 70, 71, 69, 76, 5, 79, 104, 70, 68, + 28, 71, 77, 70, 68, 1, 77, 74, 71, 98, 91, 75, + 76, 69, 35, 108, 79, 32, 90, 71, 69, 71, 9, + 69, 76, 7, 17, 70, 70, 121, 22, 21, 21, 65, + 87, 90, 92, 106, 92, 106, 114, 105, 126, 118, + 113, 126, 126, 126, 126, 123, 109, 104, 109, + 125, 112, 101, 102, 101, 79, 98, 103, 100, + 103, 123, 107, 101, 126, 114, 126, 126, 126, + 126, 126, 126, 88, 86, 126, 99, 102, 106, 126, + 111, 112, 111, 99, 104, 87, 72, 119, 126, 126, + 99, 110, 115, 68, 15, 20, 23, 46, 31, 36, 9, + 43, 36, 47, 36, 49, 40, 31, 37, 85, 94, 104, + 112, 110, 126, 126, 126, 21, 49, 45, 50, 39, + 43, 26, 25, 15, 16, 68, 15, 20, 23, 46, 31, + 36, 9, 43, 36, 47, 36, 49, 40, 31, 37, 85, 94, + 104, 112, 110, 126, 126, 126 }, + + }, + + { + + { + + 62, + 9, 74, 62, 9, 74, 126, 104, 10, 9, 12, 30, 61, + 62, 54, 14, 118, 6, 78, 65, 1, 14, 73, 13, 64, + 20, 62, 67, 90, 104, 126, 104, 67, 78, 65, 1, + 86, 95, 2, 18, 69, 81, 96, 8, 67, 86, 88, 5, 76, + 94, 9, 69, 81, 88, 67, 74, 74, 80, 72, 5, 22, 0, + 0, 0, 83, 86, 97, 72, 22, 1, 52, 8, 69, 126, + 102, 82, 74, 107, 126, 126, 126, 95, 126, 114, + 126, 123, 115, 122, 115, 0, 68, 84, 104, 70, 93, + 90, 126, 74, 97, 91, 126, 7, 82, 76, 125, 93, + 87, 77, 71, 0, 68, 84, 1, 65, 2, 7, 66, 64, 2, + 78, 13, 11, 28, 19, 25, 18, 17, 19, 46, 12, 13, + 44, 30, 1, 108, 100, 101, 91, 94, 88, 84, 86, + 83, 87, 94, 70, 72, 74, 4, 102, 100, 95, 75, 72, + 75, 71, 17, 69, 1, 65, 26, 72, 6, 9, 1, 72, 62, + 54, 38, 45, 54, 44, 26, 45, 34, 30, 33, 18, 5, + 1, 2, 25, 18, 24, 21, 19, 18, 22, 14, 29, 21, 8, + 12, 17, 89, 62, 62, 62, 62, 62, 62, 62, 62, 62, + 62, 62, 62, 62, 62, 46, 62, 60, 41, 62, 62, 62, + 62, 60, 58, 62, 47, 41, 15, 26, 3, 68, 97, 71, + 21, 13, 9, 1, 5, 0, 72, 74, 91, 67, 36, 24, 19, + 17, 64, 68, 78, 77, 86, 92, 8, 3, 1, 65, 73, 76, + 80, 88, 110, 97, 84, 79, 73, 74, 86, 96, 97, + 117, 78, 30, 15, 10, 1, 71, 79, 86, 90, 97, 62, + 93, 84, 79, 66, 71, 1, 3, 4, 75, 1, 5, 66, 79, + 71, 68, 19, 1, 27, 23, 36, 34, 19, 27, 31, 21, + 15, 1, 17, 64, 104, 97, 96, 88, 85, 85, 85, 88, + 66, 77, 76, 76, 5, 76, 83, 99, 95, 95, 76, 74, + 70, 75, 68, 65, 73, 1, 1, 68, 75, 8, 64, 70, 57, + 44, 47, 49, 50, 52, 48, 47, 40, 40, 43, 37, 19, + 23, 16, 46, 42, 41, 36, 34, 28, 13, 6, 0, 77, + 82, 94, 69, 109, 62, 62, 62, 62, 62, 62, 62, 62, + 62, 62, 62, 61, 50, 28, 5, 62, 62, 33, 62, 62, + 62, 60, 62, 58, 52, 58, 51, 52, 34, 37, 24, 66, + 42, 32, 13, 120, 112, 114, 85, 92, 89, 71, 81, + 80, 68, 70, 7, 68, 13, 74, 62, 62, 62, 62, 60, + 57, 29, 9, 82, 75, 40, 29, 20, 9, 8, 2, 64, 68, + 92, 106, 97, 90, 90, 88, 73, 79, 86, 73, 70, 69, + 66, 64, 5, 4, 62, 62, 62, 62, 60, 54, 43, 27, 67 }, + + { + + 62, + 9, 74, 62, 9, 74, 125, 102, 11, 10, 12, 29, + 60, 62, 54, 14, 115, 6, 77, 64, 1, 14, 72, 12, + 65, 20, 62, 68, 91, 104, 124, 102, 67, 77, 64, + 1, 85, 93, 3, 18, 68, 80, 95, 8, 67, 85, 88, + 5, 75, 93, 9, 69, 80, 88, 66, 73, 73, 79, 71, + 5, 22, 0, 0, 0, 82, 86, 97, 71, 22, 1, 52, 8, + 69, 125, 101, 82, 73, 105, 125, 125, 125, 93, + 125, 112, 125, 121, 114, 121, 114, 1, 67, 83, + 103, 69, 92, 89, 125, 73, 96, 90, 125, 8, 81, + 75, 123, 92, 86, 76, 70, 1, 67, 83, 2, 64, 2, + 7, 65, 64, 2, 77, 13, 11, 28, 19, 25, 18, 17, + 19, 45, 12, 13, 43, 29, 1, 107, 99, 100, 90, + 93, 87, 83, 85, 82, 86, 92, 70, 72, 73, 3, + 101, 99, 95, 74, 72, 74, 70, 17, 68, 1, 65, + 25, 71, 6, 8, 1, 72, 62, 54, 38, 45, 54, 44, + 26, 45, 34, 29, 33, 18, 5, 1, 2, 25, 18, 24, + 21, 19, 17, 22, 14, 28, 20, 8, 11, 16, 89, 62, + 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, + 62, 60, 44, 62, 59, 40, 62, 62, 62, 62, 58, + 56, 61, 45, 39, 15, 25, 2, 68, 97, 70, 22, 14, + 10, 2, 5, 0, 71, 73, 90, 66, 37, 25, 20, 17, + 0, 67, 77, 76, 85, 91, 9, 4, 2, 64, 72, 75, + 79, 87, 108, 96, 82, 78, 72, 73, 85, 95, 96, + 115, 77, 31, 16, 11, 2, 70, 78, 85, 89, 96, + 62, 92, 83, 78, 66, 70, 1, 4, 5, 74, 2, 6, 65, + 78, 71, 68, 19, 2, 27, 23, 35, 34, 19, 26, 30, + 21, 15, 1, 16, 64, 103, 96, 95, 87, 84, 84, + 84, 87, 66, 76, 75, 75, 5, 75, 82, 98, 94, 95, + 76, 73, 70, 74, 68, 65, 72, 1, 1, 67, 74, 8, + 64, 70, 57, 44, 47, 49, 49, 52, 48, 47, 40, + 40, 43, 37, 19, 22, 15, 45, 41, 40, 35, 33, + 27, 13, 6, 0, 76, 81, 93, 69, 108, 62, 62, 62, + 62, 62, 62, 62, 62, 62, 62, 61, 59, 48, 27, 5, + 62, 62, 32, 62, 62, 62, 58, 62, 56, 50, 56, + 49, 50, 33, 35, 23, 67, 41, 31, 12, 118, 110, + 112, 84, 91, 88, 69, 80, 79, 68, 69, 9, 66, + 15, 73, 62, 62, 62, 62, 58, 55, 27, 7, 83, 74, + 41, 29, 20, 9, 9, 2, 64, 68, 91, 105, 96, 89, + 89, 86, 72, 78, 85, 72, 69, 68, 65, 0, 6, 4, + 62, 62, 62, 62, 59, 53, 41, 26, 67 }, + + { + + 62, + 9, 74, 62, 9, 74, 123, 101, 11, 10, 12, 28, + 59, 61, 54, 14, 113, 6, 76, 0, 1, 13, 72, 11, + 66, 19, 60, 70, 92, 105, 121, 101, 67, 76, 0, + 1, 85, 92, 3, 17, 68, 80, 94, 8, 67, 85, 88, + 5, 75, 92, 9, 69, 80, 88, 66, 73, 73, 79, 71, + 5, 22, 0, 0, 0, 81, 86, 97, 71, 21, 1, 52, 8, + 69, 124, 100, 82, 73, 104, 123, 123, 124, 92, + 123, 111, 123, 120, 113, 120, 113, 2, 67, 82, + 102, 69, 92, 88, 123, 73, 96, 90, 124, 8, 81, + 75, 122, 92, 85, 76, 70, 1, 67, 82, 2, 64, 1, + 7, 65, 64, 2, 77, 13, 11, 27, 19, 24, 18, 17, + 19, 43, 12, 13, 41, 28, 0, 106, 98, 99, 89, + 92, 86, 82, 84, 82, 85, 91, 70, 72, 73, 2, + 101, 98, 95, 74, 72, 73, 70, 16, 67, 1, 65, + 24, 70, 5, 7, 1, 73, 60, 53, 37, 44, 53, 43, + 25, 44, 34, 28, 32, 18, 5, 1, 2, 24, 17, 23, + 20, 18, 16, 21, 13, 26, 19, 7, 10, 15, 89, 62, + 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, + 62, 58, 41, 62, 57, 38, 62, 62, 62, 62, 56, + 54, 58, 43, 37, 14, 23, 1, 69, 97, 70, 22, 14, + 10, 2, 5, 0, 71, 73, 89, 66, 37, 25, 20, 17, + 1, 67, 76, 76, 84, 90, 10, 5, 2, 64, 71, 75, + 79, 86, 107, 95, 81, 77, 72, 73, 84, 94, 95, + 114, 77, 31, 16, 11, 2, 69, 77, 84, 88, 95, + 62, 92, 83, 78, 66, 70, 1, 4, 5, 74, 2, 6, 64, + 78, 71, 68, 18, 2, 26, 22, 34, 33, 19, 25, 29, + 21, 15, 0, 15, 65, 102, 95, 94, 87, 84, 84, + 83, 86, 66, 76, 75, 75, 4, 75, 82, 98, 93, 95, + 76, 73, 70, 73, 68, 65, 71, 1, 1, 67, 73, 7, + 64, 71, 56, 44, 47, 48, 48, 51, 47, 46, 39, + 39, 42, 36, 18, 21, 14, 43, 40, 38, 33, 32, + 26, 12, 5, 0, 76, 81, 93, 70, 107, 62, 62, 62, + 62, 62, 62, 62, 62, 62, 62, 59, 57, 46, 26, 4, + 62, 60, 31, 62, 62, 62, 56, 60, 54, 48, 54, + 47, 48, 31, 33, 21, 68, 39, 29, 10, 117, 109, + 111, 83, 90, 87, 67, 79, 78, 68, 68, 10, 65, + 16, 72, 62, 62, 62, 62, 55, 52, 24, 5, 84, 74, + 41, 29, 20, 9, 9, 2, 64, 68, 90, 104, 95, 88, + 88, 85, 71, 77, 84, 71, 68, 67, 65, 1, 6, 4, + 62, 62, 62, 61, 57, 51, 39, 24, 68 }, + + { + + 62, + 9, 74, 62, 9, 74, 121, 99, 12, 10, 11, 26, 57, + 60, 54, 14, 111, 6, 75, 1, 1, 12, 72, 10, 67, + 19, 58, 71, 93, 105, 118, 100, 67, 75, 1, 1, + 84, 91, 4, 17, 68, 79, 93, 7, 68, 85, 88, 5, + 75, 92, 9, 69, 80, 88, 65, 73, 73, 79, 70, 5, + 22, 0, 0, 0, 81, 86, 97, 70, 20, 1, 52, 8, 69, + 123, 99, 82, 72, 103, 121, 121, 122, 91, 121, + 110, 121, 119, 112, 119, 112, 3, 67, 81, 101, + 69, 91, 88, 121, 73, 95, 89, 123, 8, 81, 74, + 120, 91, 84, 76, 70, 1, 67, 81, 3, 0, 1, 7, + 65, 64, 2, 77, 13, 10, 27, 19, 23, 18, 17, 19, + 41, 12, 12, 39, 27, 64, 105, 97, 98, 88, 91, + 86, 81, 84, 81, 84, 90, 70, 72, 73, 1, 100, + 97, 95, 74, 72, 72, 70, 15, 66, 1, 65, 23, 69, + 5, 6, 1, 74, 59, 52, 37, 43, 52, 42, 25, 43, + 33, 27, 31, 18, 5, 1, 1, 23, 16, 22, 19, 17, + 15, 20, 13, 24, 18, 7, 9, 14, 89, 62, 62, 62, + 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 55, + 39, 62, 55, 37, 62, 61, 62, 59, 54, 51, 56, + 41, 34, 13, 21, 0, 70, 97, 70, 23, 14, 10, 2, + 5, 0, 71, 73, 89, 66, 37, 25, 20, 17, 2, 66, + 76, 75, 84, 89, 11, 5, 3, 64, 70, 74, 78, 86, + 106, 94, 80, 76, 71, 73, 83, 93, 94, 113, 76, + 31, 16, 11, 2, 68, 77, 83, 87, 94, 62, 91, 82, + 77, 66, 70, 1, 4, 5, 74, 2, 6, 64, 78, 71, 68, + 18, 3, 25, 21, 33, 32, 19, 24, 28, 21, 15, 0, + 14, 65, 101, 94, 93, 86, 83, 83, 83, 85, 66, + 76, 75, 74, 4, 75, 82, 97, 92, 95, 76, 73, 70, + 72, 68, 65, 70, 1, 1, 67, 72, 6, 64, 72, 55, + 43, 46, 47, 47, 50, 46, 45, 38, 38, 41, 35, + 17, 20, 13, 42, 39, 37, 31, 30, 25, 11, 5, 64, + 76, 81, 93, 70, 106, 62, 62, 62, 62, 62, 62, + 62, 62, 62, 62, 57, 54, 44, 24, 3, 61, 59, 29, + 62, 62, 60, 54, 58, 52, 46, 52, 45, 45, 29, + 31, 19, 69, 37, 27, 9, 116, 108, 110, 82, 89, + 86, 66, 78, 77, 68, 67, 12, 0, 18, 71, 62, 62, + 62, 62, 52, 49, 21, 3, 85, 74, 41, 29, 20, 9, + 9, 2, 64, 68, 90, 103, 94, 87, 87, 84, 71, 77, + 83, 71, 68, 67, 65, 1, 6, 4, 62, 62, 62, 59, + 55, 49, 37, 22, 69 }, + + { + + 62, + 9, 74, 62, 9, 74, 120, 98, 12, 10, 11, 25, 56, + 58, 54, 14, 108, 5, 74, 1, 1, 11, 72, 9, 68, + 18, 56, 73, 94, 106, 115, 99, 67, 74, 1, 1, + 84, 90, 4, 16, 68, 79, 93, 7, 68, 84, 88, 5, + 75, 91, 8, 70, 80, 88, 65, 72, 73, 78, 70, 5, + 22, 0, 0, 0, 80, 87, 97, 70, 19, 1, 52, 8, 69, + 122, 98, 82, 72, 101, 120, 119, 121, 90, 120, + 108, 119, 118, 112, 118, 112, 3, 67, 80, 100, + 69, 91, 87, 119, 73, 95, 89, 122, 8, 80, 74, + 119, 91, 84, 76, 69, 1, 67, 81, 3, 0, 0, 6, + 65, 64, 2, 77, 13, 10, 26, 19, 23, 18, 17, 18, + 39, 12, 12, 37, 26, 65, 104, 96, 97, 87, 91, + 85, 80, 83, 81, 83, 89, 70, 72, 72, 0, 100, + 96, 95, 74, 72, 72, 70, 14, 65, 1, 65, 21, 68, + 4, 5, 1, 75, 57, 51, 36, 42, 51, 41, 24, 42, + 33, 25, 30, 17, 5, 1, 1, 22, 16, 21, 19, 16, + 14, 19, 12, 22, 17, 6, 8, 13, 89, 62, 62, 62, + 62, 62, 62, 62, 62, 62, 62, 62, 62, 59, 53, + 36, 62, 54, 35, 62, 59, 62, 57, 51, 49, 53, + 39, 32, 12, 20, 65, 71, 97, 70, 23, 15, 10, 2, + 5, 0, 71, 73, 88, 65, 38, 25, 20, 17, 3, 66, + 75, 75, 83, 89, 12, 6, 3, 64, 70, 74, 78, 85, + 105, 94, 79, 76, 71, 73, 82, 92, 94, 112, 76, + 32, 16, 11, 2, 67, 76, 83, 86, 93, 62, 91, 82, + 77, 66, 70, 1, 4, 5, 73, 2, 6, 0, 78, 71, 68, + 17, 3, 24, 20, 32, 31, 19, 22, 27, 20, 15, 64, + 13, 66, 101, 94, 92, 86, 83, 83, 82, 84, 67, + 76, 75, 74, 3, 75, 82, 97, 91, 95, 76, 72, 70, + 72, 68, 65, 69, 1, 0, 67, 71, 6, 65, 73, 54, + 43, 46, 46, 46, 49, 45, 44, 37, 37, 40, 34, + 16, 19, 12, 40, 37, 35, 29, 29, 24, 10, 4, 64, + 76, 81, 93, 71, 106, 62, 62, 62, 62, 62, 62, + 62, 62, 62, 60, 55, 52, 42, 23, 2, 59, 57, 28, + 62, 62, 58, 52, 55, 50, 44, 50, 43, 43, 27, + 29, 17, 70, 35, 25, 7, 115, 107, 109, 82, 88, + 85, 64, 77, 76, 68, 66, 13, 1, 19, 71, 62, 62, + 62, 62, 49, 46, 18, 1, 86, 74, 41, 29, 20, 9, + 9, 2, 64, 68, 89, 102, 93, 86, 87, 83, 70, 76, + 82, 70, 67, 66, 64, 2, 7, 4, 62, 62, 62, 57, + 53, 47, 35, 20, 70 }, + + { + + 62, + 9, 74, 62, 9, 74, 118, 96, 12, 10, 10, 23, 54, + 57, 54, 14, 106, 5, 73, 2, 1, 11, 71, 8, 69, + 18, 54, 75, 95, 106, 112, 97, 67, 73, 2, 1, + 84, 89, 4, 16, 68, 79, 92, 7, 69, 84, 88, 5, + 75, 90, 8, 70, 80, 88, 64, 72, 72, 78, 69, 5, + 22, 0, 0, 0, 80, 87, 97, 69, 18, 1, 52, 8, 69, + 121, 97, 82, 71, 100, 118, 117, 119, 89, 118, + 107, 117, 117, 111, 117, 111, 4, 67, 79, 99, + 69, 90, 86, 117, 73, 95, 88, 120, 9, 80, 73, + 118, 90, 83, 76, 69, 2, 66, 80, 4, 1, 0, 6, + 65, 64, 2, 77, 13, 9, 25, 19, 22, 18, 17, 18, + 37, 12, 11, 36, 25, 66, 103, 95, 96, 86, 90, + 84, 79, 82, 80, 82, 88, 70, 72, 72, 64, 99, + 95, 95, 73, 72, 71, 70, 13, 64, 1, 65, 20, 67, + 4, 4, 1, 75, 56, 50, 36, 41, 50, 40, 23, 42, + 33, 24, 29, 17, 5, 1, 0, 22, 15, 20, 18, 15, + 13, 19, 11, 20, 16, 5, 7, 12, 89, 62, 62, 62, + 62, 62, 62, 62, 62, 62, 62, 62, 62, 57, 51, + 34, 60, 52, 33, 62, 57, 60, 55, 49, 47, 50, + 37, 29, 11, 18, 66, 71, 97, 70, 23, 15, 10, 2, + 5, 0, 71, 73, 88, 65, 38, 25, 20, 17, 4, 65, + 74, 75, 82, 88, 13, 7, 3, 0, 69, 73, 77, 85, + 104, 93, 77, 75, 71, 72, 81, 91, 93, 111, 75, + 32, 17, 11, 2, 66, 75, 82, 85, 92, 62, 91, 82, + 76, 66, 70, 1, 4, 5, 73, 2, 7, 0, 78, 71, 68, + 16, 4, 23, 19, 31, 31, 19, 21, 26, 20, 15, 65, + 12, 66, 100, 93, 91, 85, 82, 82, 82, 83, 67, + 76, 75, 74, 2, 75, 82, 96, 90, 95, 76, 72, 70, + 71, 68, 65, 68, 1, 0, 67, 70, 5, 65, 73, 53, + 43, 45, 46, 45, 48, 44, 43, 37, 36, 39, 33, + 15, 18, 11, 39, 36, 34, 27, 28, 23, 9, 3, 65, + 76, 80, 93, 71, 105, 62, 62, 62, 62, 62, 62, + 62, 62, 60, 58, 53, 50, 40, 21, 1, 57, 55, 27, + 61, 62, 56, 50, 53, 48, 42, 48, 41, 40, 25, + 27, 15, 71, 33, 23, 6, 114, 105, 108, 81, 87, + 84, 1, 76, 75, 68, 65, 15, 3, 21, 70, 62, 62, + 62, 62, 47, 43, 16, 64, 87, 74, 41, 29, 20, 9, + 9, 2, 64, 68, 89, 101, 92, 85, 86, 82, 69, 76, + 81, 69, 66, 65, 64, 2, 7, 4, 62, 62, 62, 56, + 51, 45, 33, 18, 71 }, + + { + + 62, + 9, 75, 62, 9, 75, 116, 95, 13, 10, 10, 22, 53, + 56, 54, 14, 104, 5, 73, 3, 1, 10, 71, 7, 70, + 17, 53, 76, 96, 107, 109, 96, 67, 73, 3, 1, + 83, 88, 5, 15, 67, 78, 91, 6, 69, 84, 88, 5, + 74, 90, 8, 70, 79, 88, 64, 72, 72, 78, 69, 5, + 22, 0, 0, 0, 79, 87, 97, 69, 18, 0, 52, 8, 69, + 120, 97, 82, 71, 99, 116, 115, 118, 88, 116, + 106, 115, 116, 110, 116, 110, 5, 67, 78, 99, + 68, 90, 86, 115, 73, 94, 88, 119, 9, 80, 73, + 116, 90, 82, 75, 69, 2, 66, 79, 4, 1, 64, 6, + 65, 64, 2, 77, 13, 9, 25, 19, 21, 18, 17, 18, + 35, 12, 11, 34, 24, 67, 103, 94, 96, 86, 89, + 84, 78, 82, 80, 82, 86, 70, 72, 72, 65, 99, + 94, 95, 73, 72, 70, 69, 12, 64, 1, 65, 19, 66, + 3, 3, 1, 76, 54, 49, 35, 41, 49, 40, 23, 41, + 32, 23, 28, 17, 5, 1, 0, 21, 14, 19, 17, 15, + 12, 18, 11, 18, 15, 5, 6, 11, 89, 62, 62, 62, + 62, 62, 62, 62, 62, 62, 62, 62, 62, 54, 48, + 31, 58, 50, 32, 62, 54, 57, 52, 47, 44, 48, + 34, 27, 10, 16, 67, 72, 97, 69, 24, 15, 11, 2, + 5, 0, 71, 73, 87, 65, 38, 26, 20, 17, 5, 65, + 74, 74, 82, 87, 14, 7, 4, 0, 68, 73, 77, 84, + 103, 92, 76, 74, 70, 72, 81, 91, 92, 109, 75, + 32, 17, 11, 3, 66, 75, 81, 85, 91, 62, 90, 81, + 76, 66, 70, 1, 4, 5, 73, 3, 7, 1, 78, 71, 69, + 16, 4, 22, 18, 30, 30, 19, 20, 25, 20, 15, 65, + 11, 67, 99, 92, 90, 85, 82, 82, 81, 83, 67, + 75, 74, 73, 2, 75, 82, 96, 89, 95, 76, 72, 70, + 70, 68, 65, 67, 0, 0, 67, 70, 4, 65, 74, 52, + 42, 45, 45, 44, 48, 44, 42, 36, 36, 38, 32, + 14, 17, 10, 37, 35, 32, 25, 26, 21, 8, 3, 65, + 76, 80, 92, 72, 104, 62, 62, 62, 62, 62, 62, + 62, 62, 58, 55, 51, 47, 38, 20, 1, 56, 54, 25, + 59, 62, 54, 48, 51, 46, 40, 45, 39, 38, 23, + 25, 14, 73, 31, 21, 4, 113, 104, 107, 80, 86, + 83, 2, 75, 74, 68, 64, 16, 4, 22, 69, 62, 62, + 62, 59, 44, 41, 13, 66, 89, 73, 41, 29, 20, 9, + 9, 2, 64, 68, 88, 100, 92, 84, 85, 81, 69, 75, + 80, 69, 66, 65, 64, 3, 7, 4, 62, 62, 61, 54, + 50, 44, 30, 17, 72 }, + + { + + 62, + 9, 75, 62, 9, 75, 114, 93, 13, 10, 9, 20, 51, + 54, 54, 14, 101, 4, 72, 3, 1, 9, 71, 6, 71, + 17, 51, 78, 97, 107, 106, 95, 67, 72, 3, 1, + 83, 87, 5, 15, 67, 78, 91, 6, 70, 83, 88, 5, + 74, 89, 7, 70, 79, 88, 0, 71, 72, 77, 68, 5, + 22, 0, 0, 0, 79, 87, 97, 68, 17, 0, 52, 8, 69, + 119, 96, 82, 70, 97, 115, 113, 116, 87, 115, + 104, 113, 115, 109, 115, 110, 6, 67, 77, 98, + 68, 89, 85, 113, 73, 94, 87, 118, 9, 79, 72, + 115, 89, 82, 75, 68, 2, 66, 78, 5, 2, 64, 5, + 65, 64, 2, 77, 13, 8, 24, 19, 21, 18, 17, 17, + 33, 12, 10, 32, 23, 68, 102, 93, 95, 85, 88, + 83, 77, 81, 79, 81, 85, 70, 72, 71, 66, 98, + 93, 95, 73, 72, 70, 69, 11, 0, 1, 65, 17, 65, + 3, 2, 1, 77, 53, 48, 35, 40, 48, 39, 22, 40, + 32, 22, 27, 17, 5, 1, 64, 20, 14, 18, 17, 14, + 11, 17, 10, 16, 14, 4, 5, 10, 89, 62, 62, 62, + 62, 62, 62, 62, 62, 62, 62, 60, 61, 52, 46, + 29, 56, 49, 30, 62, 52, 55, 50, 44, 42, 45, + 32, 24, 9, 15, 69, 73, 97, 69, 24, 16, 11, 2, + 5, 0, 71, 73, 87, 64, 39, 26, 20, 17, 6, 64, + 73, 74, 81, 86, 15, 8, 4, 0, 67, 72, 76, 84, + 102, 92, 75, 74, 70, 72, 80, 90, 92, 108, 74, + 33, 17, 11, 3, 65, 74, 80, 84, 90, 62, 90, 81, + 75, 66, 70, 1, 4, 5, 72, 3, 7, 1, 78, 71, 69, + 15, 5, 21, 17, 29, 29, 19, 19, 24, 19, 15, 66, + 10, 67, 98, 92, 89, 84, 81, 81, 81, 82, 67, + 75, 74, 73, 1, 75, 82, 95, 88, 95, 76, 71, 70, + 70, 68, 65, 66, 0, 0, 67, 69, 4, 66, 75, 51, + 42, 44, 44, 43, 47, 43, 41, 35, 35, 37, 31, + 13, 16, 9, 36, 33, 31, 23, 25, 20, 7, 2, 66, + 76, 80, 92, 72, 103, 62, 62, 62, 62, 62, 62, + 62, 61, 56, 53, 49, 45, 36, 18, 0, 54, 52, 24, + 57, 62, 52, 46, 49, 44, 38, 43, 37, 35, 21, + 23, 12, 74, 29, 19, 3, 112, 103, 106, 80, 85, + 82, 4, 74, 73, 68, 0, 18, 6, 24, 69, 62, 62, + 61, 56, 41, 38, 10, 68, 90, 73, 41, 29, 20, 9, + 9, 2, 64, 68, 88, 99, 91, 83, 84, 80, 68, 75, + 79, 68, 65, 64, 0, 3, 8, 4, 62, 62, 59, 52, + 48, 42, 28, 15, 73 }, + + { + + 62, + 8, 75, 62, 8, 75, 113, 92, 13, 10, 9, 19, 50, + 53, 54, 14, 99, 4, 71, 4, 1, 8, 71, 5, 73, 16, + 49, 80, 98, 108, 104, 94, 67, 71, 4, 1, 83, + 86, 5, 14, 67, 78, 90, 5, 70, 83, 89, 5, 74, + 89, 7, 71, 79, 88, 0, 71, 72, 77, 68, 5, 22, + 0, 0, 0, 78, 88, 97, 68, 16, 0, 52, 8, 69, + 118, 95, 82, 70, 96, 113, 111, 115, 86, 113, + 103, 112, 114, 109, 114, 109, 6, 67, 76, 97, + 68, 89, 85, 112, 73, 94, 87, 117, 9, 79, 72, + 114, 89, 81, 75, 68, 2, 66, 78, 5, 2, 65, 5, + 65, 64, 2, 77, 13, 8, 23, 19, 20, 18, 17, 17, + 31, 12, 10, 30, 22, 69, 101, 92, 94, 84, 88, + 83, 76, 81, 79, 80, 84, 70, 72, 71, 68, 98, + 92, 95, 73, 73, 69, 69, 10, 1, 1, 65, 16, 64, + 2, 1, 1, 78, 51, 47, 34, 39, 47, 38, 21, 39, + 31, 20, 26, 16, 5, 1, 64, 19, 13, 17, 16, 13, + 10, 16, 9, 14, 12, 3, 4, 9, 89, 62, 62, 62, + 62, 62, 62, 62, 62, 62, 61, 58, 58, 49, 43, + 26, 54, 47, 28, 61, 50, 52, 47, 42, 39, 42, + 30, 22, 8, 13, 70, 74, 98, 69, 24, 16, 11, 2, + 5, 0, 71, 73, 86, 64, 39, 26, 20, 17, 7, 64, + 73, 74, 81, 86, 16, 8, 4, 0, 67, 72, 76, 83, + 101, 91, 74, 73, 70, 72, 79, 89, 91, 107, 74, + 33, 17, 11, 3, 64, 74, 80, 83, 90, 62, 90, 81, + 75, 66, 70, 1, 4, 5, 72, 3, 7, 2, 78, 71, 69, + 14, 5, 20, 16, 28, 28, 19, 17, 22, 19, 15, 67, + 9, 68, 98, 91, 88, 84, 81, 81, 80, 81, 68, 75, + 74, 73, 0, 75, 82, 95, 88, 96, 76, 71, 70, 69, + 68, 65, 66, 0, 64, 67, 68, 3, 66, 76, 50, 41, + 44, 43, 41, 46, 42, 40, 34, 34, 36, 30, 12, + 15, 8, 34, 32, 29, 21, 23, 19, 6, 1, 66, 76, + 80, 92, 73, 103, 62, 62, 62, 62, 62, 62, 61, + 58, 54, 51, 47, 42, 34, 17, 64, 52, 50, 22, + 55, 61, 49, 43, 46, 41, 36, 41, 34, 33, 19, + 20, 10, 75, 27, 17, 1, 111, 102, 105, 79, 84, + 82, 5, 73, 73, 68, 0, 19, 7, 25, 68, 62, 62, + 58, 53, 38, 35, 7, 70, 91, 73, 41, 29, 20, 9, + 9, 2, 64, 68, 87, 99, 90, 82, 84, 79, 68, 74, + 79, 68, 65, 64, 0, 4, 8, 3, 62, 62, 57, 50, + 46, 40, 26, 13, 74 }, + + { + + 62, + 8, 75, 62, 8, 75, 111, 91, 14, 10, 9, 18, 49, + 52, 54, 14, 97, 4, 70, 5, 1, 8, 70, 4, 74, 15, + 47, 81, 99, 109, 101, 92, 67, 70, 5, 1, 82, + 85, 6, 13, 67, 77, 89, 5, 70, 83, 89, 5, 74, + 88, 7, 71, 79, 88, 0, 71, 71, 77, 68, 5, 22, + 0, 0, 0, 77, 88, 97, 68, 15, 0, 52, 8, 69, + 117, 94, 82, 70, 95, 111, 109, 113, 84, 111, + 102, 110, 113, 108, 113, 108, 7, 66, 75, 96, + 68, 88, 84, 110, 73, 93, 87, 115, 10, 79, 72, + 112, 89, 80, 75, 68, 3, 65, 77, 5, 2, 65, 5, + 64, 64, 2, 76, 13, 8, 23, 19, 19, 18, 17, 17, + 29, 12, 10, 29, 21, 69, 100, 91, 93, 83, 87, + 82, 75, 80, 79, 79, 83, 70, 72, 71, 69, 97, + 91, 95, 72, 73, 68, 69, 9, 2, 1, 65, 15, 0, 1, + 0, 1, 78, 50, 46, 34, 38, 46, 37, 21, 39, 31, + 19, 25, 16, 5, 1, 64, 19, 12, 16, 15, 12, 9, + 16, 9, 13, 11, 3, 3, 8, 89, 62, 62, 62, 62, + 62, 62, 62, 62, 62, 59, 56, 56, 46, 41, 23, + 53, 45, 27, 59, 48, 50, 45, 40, 37, 40, 28, + 20, 8, 11, 71, 74, 98, 69, 25, 16, 11, 3, 5, + 0, 70, 73, 85, 64, 39, 26, 21, 17, 8, 0, 72, + 73, 80, 85, 17, 9, 5, 1, 66, 71, 76, 82, 100, + 90, 72, 72, 69, 71, 78, 88, 90, 106, 73, 33, + 18, 12, 3, 0, 73, 79, 82, 89, 62, 89, 80, 74, + 66, 70, 1, 5, 6, 72, 3, 8, 3, 78, 71, 69, 14, + 5, 19, 16, 27, 28, 19, 16, 21, 19, 15, 67, 8, + 69, 97, 90, 87, 84, 80, 81, 79, 80, 68, 75, + 74, 72, 0, 75, 82, 95, 87, 96, 76, 71, 70, 68, + 68, 65, 65, 0, 64, 67, 67, 2, 66, 76, 49, 41, + 44, 43, 40, 45, 41, 39, 34, 33, 35, 30, 12, + 14, 7, 33, 31, 27, 19, 22, 18, 6, 1, 66, 75, + 79, 92, 74, 102, 62, 62, 62, 62, 62, 62, 59, + 56, 52, 49, 45, 40, 32, 16, 65, 50, 49, 21, + 53, 59, 47, 41, 44, 39, 34, 39, 32, 31, 18, + 18, 8, 76, 25, 15, 64, 110, 100, 103, 78, 83, + 81, 7, 72, 72, 68, 1, 21, 8, 27, 67, 62, 62, + 56, 50, 36, 32, 5, 72, 92, 73, 41, 29, 20, 9, + 10, 2, 64, 68, 86, 98, 89, 81, 83, 77, 67, 73, + 78, 67, 64, 0, 0, 5, 8, 3, 62, 61, 56, 49, 44, + 38, 24, 11, 74 }, + + { + + 62, + 8, 75, 62, 8, 75, 109, 89, 14, 10, 8, 16, 47, + 50, 54, 14, 94, 3, 69, 5, 1, 7, 70, 3, 75, 15, + 45, 83, 100, 109, 98, 91, 67, 69, 5, 1, 82, + 84, 6, 13, 67, 77, 89, 5, 71, 82, 89, 5, 74, + 87, 6, 71, 79, 88, 1, 70, 71, 76, 67, 5, 22, + 0, 0, 0, 77, 88, 97, 67, 14, 0, 52, 8, 69, + 116, 93, 82, 69, 93, 110, 107, 112, 83, 110, + 100, 108, 112, 107, 112, 108, 8, 66, 74, 95, + 68, 88, 83, 108, 73, 93, 86, 114, 10, 78, 71, + 111, 88, 80, 75, 67, 3, 65, 76, 6, 3, 66, 4, + 64, 64, 2, 76, 13, 7, 22, 19, 19, 18, 17, 16, + 27, 12, 9, 27, 20, 70, 99, 90, 92, 82, 86, 81, + 74, 79, 78, 78, 82, 70, 72, 70, 70, 97, 90, + 95, 72, 73, 68, 69, 8, 3, 1, 65, 13, 1, 1, 64, + 1, 79, 48, 45, 33, 37, 45, 36, 20, 38, 31, 18, + 24, 16, 5, 1, 65, 18, 12, 15, 15, 11, 8, 15, + 8, 11, 10, 2, 2, 7, 89, 62, 62, 62, 62, 62, + 62, 62, 62, 62, 57, 54, 53, 44, 39, 21, 51, + 44, 25, 56, 46, 48, 43, 37, 35, 37, 26, 17, 7, + 10, 73, 75, 98, 69, 25, 17, 11, 3, 5, 0, 70, + 73, 85, 0, 40, 26, 21, 17, 9, 0, 71, 73, 79, + 84, 18, 10, 5, 1, 65, 71, 75, 82, 99, 90, 71, + 72, 69, 71, 77, 87, 90, 105, 73, 34, 18, 12, + 3, 1, 72, 78, 81, 88, 62, 89, 80, 74, 66, 70, + 1, 5, 6, 71, 3, 8, 3, 78, 71, 69, 13, 6, 18, + 15, 26, 27, 19, 15, 20, 18, 15, 68, 7, 69, 96, + 90, 86, 83, 80, 80, 79, 79, 68, 75, 74, 72, + 64, 75, 82, 94, 86, 96, 76, 70, 70, 68, 68, + 65, 64, 0, 64, 67, 66, 2, 67, 77, 48, 41, 43, + 42, 39, 44, 40, 38, 33, 32, 34, 29, 11, 13, 6, + 31, 29, 26, 17, 21, 17, 5, 0, 67, 75, 79, 92, + 74, 101, 62, 62, 62, 62, 62, 60, 57, 53, 50, + 47, 43, 38, 30, 14, 66, 48, 47, 20, 51, 57, + 45, 39, 42, 37, 32, 37, 30, 28, 16, 16, 6, 77, + 23, 13, 65, 109, 99, 102, 78, 82, 80, 9, 71, + 71, 68, 2, 22, 10, 28, 67, 62, 60, 53, 47, 33, + 29, 2, 74, 93, 73, 41, 29, 20, 9, 10, 2, 64, + 68, 86, 97, 88, 80, 82, 76, 66, 73, 77, 66, 0, + 1, 1, 5, 9, 3, 60, 59, 54, 47, 42, 36, 22, 9, + 75 }, + + { + + 62, + 8, 76, 62, 8, 76, 107, 88, 15, 10, 8, 15, 46, + 49, 54, 14, 92, 3, 69, 6, 1, 6, 70, 2, 76, 14, + 44, 84, 101, 110, 95, 90, 67, 69, 6, 1, 81, + 83, 7, 12, 66, 76, 88, 4, 71, 82, 89, 5, 73, + 87, 6, 71, 78, 88, 1, 70, 71, 76, 67, 5, 22, + 0, 0, 0, 76, 88, 97, 67, 14, 64, 52, 8, 69, + 115, 93, 82, 69, 92, 108, 105, 110, 82, 108, + 99, 106, 111, 106, 111, 107, 9, 66, 73, 95, + 67, 87, 83, 106, 73, 92, 86, 113, 10, 78, 71, + 109, 88, 79, 74, 67, 3, 65, 75, 6, 3, 66, 4, + 64, 64, 2, 76, 13, 7, 22, 19, 18, 18, 17, 16, + 25, 12, 9, 25, 19, 71, 99, 89, 92, 82, 85, 81, + 73, 79, 78, 78, 80, 70, 72, 70, 71, 96, 89, + 95, 72, 73, 67, 68, 7, 3, 1, 65, 12, 2, 0, 65, + 1, 80, 47, 44, 33, 37, 44, 36, 20, 37, 30, 17, + 23, 16, 5, 1, 65, 17, 11, 14, 14, 11, 7, 14, + 8, 9, 9, 2, 1, 6, 89, 62, 62, 62, 62, 62, 62, + 62, 62, 62, 54, 52, 51, 41, 36, 18, 49, 42, + 24, 54, 43, 45, 40, 35, 32, 35, 23, 15, 6, 8, + 74, 76, 98, 68, 26, 17, 12, 3, 5, 0, 70, 73, + 84, 0, 40, 27, 21, 17, 10, 1, 71, 72, 79, 83, + 19, 10, 6, 1, 64, 70, 75, 81, 98, 89, 70, 71, + 68, 71, 77, 87, 89, 103, 72, 34, 18, 12, 4, 1, + 72, 77, 81, 87, 62, 88, 79, 73, 66, 70, 1, 5, + 6, 71, 4, 8, 4, 78, 71, 70, 13, 6, 17, 14, 25, + 26, 19, 14, 19, 18, 15, 68, 6, 70, 95, 89, 85, + 83, 79, 80, 78, 79, 68, 74, 73, 71, 64, 75, + 82, 94, 85, 96, 76, 70, 70, 67, 68, 65, 0, 64, + 64, 67, 66, 1, 67, 78, 47, 40, 43, 41, 38, 44, + 40, 37, 32, 32, 33, 28, 10, 12, 5, 30, 28, 24, + 15, 19, 15, 4, 0, 67, 75, 79, 91, 75, 100, 62, + 62, 62, 62, 62, 58, 55, 51, 48, 44, 41, 35, + 28, 13, 66, 47, 46, 18, 49, 54, 43, 37, 40, + 35, 30, 34, 28, 26, 14, 14, 5, 79, 21, 11, 67, + 108, 98, 101, 77, 81, 79, 10, 70, 70, 68, 3, + 24, 11, 30, 66, 61, 59, 51, 44, 30, 27, 64, + 76, 95, 72, 41, 29, 20, 9, 10, 2, 64, 68, 85, + 96, 88, 79, 81, 75, 66, 72, 76, 66, 0, 1, 1, + 6, 9, 3, 59, 58, 52, 45, 41, 35, 19, 8, 76 }, + + { + + 62, + 8, 76, 62, 8, 76, 106, 86, 15, 10, 7, 13, 44, + 48, 54, 14, 90, 3, 68, 7, 1, 5, 70, 1, 77, 14, + 42, 86, 102, 110, 92, 89, 67, 68, 7, 1, 81, + 82, 7, 12, 66, 76, 87, 4, 72, 82, 89, 5, 73, + 86, 6, 72, 78, 88, 2, 70, 71, 76, 66, 5, 22, + 0, 0, 0, 76, 89, 97, 66, 13, 64, 52, 8, 69, + 114, 92, 82, 68, 91, 106, 103, 109, 81, 106, + 98, 104, 110, 106, 110, 106, 9, 66, 72, 94, + 67, 87, 82, 104, 73, 92, 85, 112, 10, 78, 70, + 108, 87, 78, 74, 67, 3, 65, 75, 7, 4, 67, 4, + 64, 64, 2, 76, 13, 6, 21, 19, 17, 18, 17, 16, + 23, 12, 8, 23, 18, 72, 98, 88, 91, 81, 85, 80, + 72, 78, 77, 77, 79, 70, 72, 70, 72, 96, 88, + 95, 72, 73, 66, 68, 6, 4, 1, 65, 11, 3, 0, 66, + 1, 81, 45, 43, 32, 36, 43, 35, 19, 36, 30, 15, + 22, 15, 5, 1, 66, 16, 10, 13, 13, 10, 6, 13, + 7, 7, 8, 1, 0, 5, 89, 62, 62, 61, 62, 62, 62, + 62, 62, 61, 52, 50, 48, 39, 34, 16, 47, 40, + 22, 52, 41, 43, 38, 33, 30, 32, 21, 12, 5, 6, + 75, 77, 98, 68, 26, 17, 12, 3, 5, 0, 70, 73, + 84, 0, 40, 27, 21, 17, 11, 1, 70, 72, 78, 83, + 20, 11, 6, 1, 64, 70, 74, 81, 97, 88, 69, 70, + 68, 71, 76, 86, 88, 102, 72, 34, 18, 12, 4, 2, + 71, 77, 80, 86, 62, 88, 79, 73, 66, 70, 1, 5, + 6, 71, 4, 8, 4, 78, 71, 70, 12, 7, 16, 13, 24, + 25, 19, 12, 18, 18, 15, 69, 5, 70, 95, 88, 84, + 82, 79, 79, 78, 78, 69, 74, 73, 71, 65, 75, + 82, 93, 84, 96, 76, 70, 70, 66, 68, 65, 1, 64, + 65, 67, 65, 0, 67, 79, 46, 40, 42, 40, 37, 43, + 39, 36, 31, 31, 32, 27, 9, 11, 4, 28, 27, 23, + 13, 18, 14, 3, 64, 68, 75, 79, 91, 75, 100, + 62, 62, 62, 62, 62, 56, 53, 48, 46, 42, 39, + 33, 26, 11, 67, 45, 44, 17, 47, 52, 41, 35, + 37, 33, 28, 32, 26, 23, 12, 12, 3, 80, 19, 9, + 68, 107, 97, 100, 76, 80, 78, 12, 69, 69, 68, + 4, 25, 13, 31, 65, 59, 57, 48, 41, 27, 24, 67, + 78, 96, 72, 41, 29, 20, 9, 10, 2, 64, 68, 85, + 95, 87, 78, 81, 74, 65, 72, 75, 65, 1, 2, 1, + 6, 9, 3, 58, 56, 50, 43, 39, 33, 17, 6, 77 }, + + { + + 62, + 8, 76, 62, 8, 76, 104, 85, 15, 10, 7, 12, 43, + 46, 54, 14, 87, 2, 67, 7, 1, 5, 69, 0, 78, 13, + 40, 88, 103, 111, 89, 87, 67, 67, 7, 1, 81, + 81, 7, 11, 66, 76, 87, 4, 72, 81, 89, 5, 73, + 85, 5, 72, 78, 88, 2, 69, 70, 75, 66, 5, 22, + 0, 0, 0, 75, 89, 97, 66, 12, 64, 52, 8, 69, + 113, 91, 82, 68, 89, 105, 101, 107, 80, 105, + 96, 102, 109, 105, 109, 106, 10, 66, 71, 93, + 67, 86, 81, 102, 73, 92, 85, 110, 11, 77, 70, + 107, 87, 78, 74, 66, 4, 64, 74, 7, 4, 67, 3, + 64, 64, 2, 76, 13, 6, 20, 19, 17, 18, 17, 15, + 21, 12, 8, 22, 17, 73, 97, 87, 90, 80, 84, 79, + 71, 77, 77, 76, 78, 70, 72, 69, 73, 95, 87, + 95, 71, 73, 66, 68, 5, 5, 1, 65, 9, 4, 64, 67, + 1, 81, 44, 42, 32, 35, 42, 34, 18, 36, 30, 14, + 21, 15, 5, 1, 66, 16, 10, 12, 13, 9, 5, 13, 6, + 5, 7, 0, 64, 4, 89, 61, 62, 59, 62, 61, 60, + 60, 60, 59, 50, 48, 46, 36, 32, 13, 45, 39, + 20, 49, 39, 41, 36, 30, 28, 29, 19, 10, 4, 5, + 77, 77, 98, 68, 26, 18, 12, 3, 5, 0, 70, 73, + 83, 1, 41, 27, 21, 17, 12, 2, 69, 72, 77, 82, + 21, 12, 6, 2, 0, 69, 74, 80, 96, 88, 67, 70, + 68, 70, 75, 85, 88, 101, 71, 35, 19, 12, 4, 3, + 70, 76, 79, 85, 62, 88, 79, 72, 66, 70, 1, 5, + 6, 70, 4, 9, 5, 78, 71, 70, 11, 7, 15, 12, 23, + 25, 19, 11, 17, 17, 15, 70, 4, 71, 94, 88, 83, + 82, 78, 79, 77, 77, 69, 74, 73, 71, 66, 75, + 82, 93, 83, 96, 76, 69, 70, 66, 68, 65, 2, 64, + 65, 67, 64, 0, 68, 79, 45, 40, 42, 40, 36, 42, + 38, 35, 31, 30, 31, 26, 8, 10, 3, 27, 25, 21, + 11, 17, 13, 2, 65, 68, 75, 78, 91, 76, 99, 62, + 62, 62, 62, 60, 54, 51, 46, 44, 40, 37, 31, + 24, 10, 68, 43, 42, 16, 45, 50, 39, 33, 35, + 31, 26, 30, 24, 21, 10, 10, 1, 81, 17, 7, 70, + 106, 95, 99, 76, 79, 77, 14, 68, 68, 68, 5, + 27, 14, 33, 65, 58, 55, 46, 38, 25, 21, 69, + 80, 97, 72, 41, 29, 20, 9, 10, 2, 64, 68, 84, + 94, 86, 77, 80, 73, 64, 71, 74, 64, 2, 3, 2, + 7, 10, 3, 56, 55, 49, 42, 37, 31, 15, 4, 78 }, + + { + + 61, + 8, 76, 61, 8, 76, 102, 83, 16, 10, 6, 10, 41, + 45, 54, 14, 85, 2, 66, 8, 1, 4, 69, 64, 79, + 13, 38, 89, 104, 111, 86, 86, 67, 66, 8, 1, + 80, 80, 8, 11, 66, 75, 86, 3, 73, 81, 89, 5, + 73, 85, 5, 72, 78, 88, 3, 69, 70, 75, 65, 5, + 22, 0, 0, 0, 75, 89, 97, 65, 11, 64, 52, 8, + 69, 112, 90, 82, 67, 88, 103, 99, 106, 79, + 103, 95, 100, 108, 104, 108, 105, 11, 66, 70, + 92, 67, 86, 81, 100, 73, 91, 84, 109, 11, 77, + 69, 105, 86, 77, 74, 66, 4, 64, 73, 8, 5, 68, + 3, 64, 64, 2, 76, 13, 5, 20, 19, 16, 18, 17, + 15, 19, 12, 7, 20, 16, 74, 96, 86, 89, 79, 83, + 79, 70, 77, 76, 75, 77, 70, 72, 69, 74, 95, + 86, 95, 71, 73, 65, 68, 4, 6, 1, 65, 8, 5, 64, + 68, 1, 82, 42, 41, 31, 34, 41, 33, 18, 35, 29, + 13, 20, 15, 5, 1, 67, 15, 9, 11, 12, 8, 4, 12, + 6, 3, 6, 0, 65, 3, 89, 60, 61, 58, 62, 59, 58, + 58, 58, 56, 47, 46, 43, 34, 29, 11, 43, 37, + 19, 47, 37, 38, 33, 28, 25, 27, 17, 7, 3, 3, + 78, 78, 98, 68, 27, 18, 12, 3, 5, 0, 70, 73, + 83, 1, 41, 27, 21, 17, 13, 2, 69, 71, 77, 81, + 22, 12, 7, 2, 1, 69, 73, 80, 95, 87, 66, 69, + 67, 70, 74, 84, 87, 100, 71, 35, 19, 12, 4, 4, + 70, 75, 78, 84, 62, 87, 78, 72, 66, 70, 1, 5, + 6, 70, 4, 9, 5, 78, 71, 70, 11, 8, 14, 11, 22, + 24, 19, 10, 16, 17, 15, 70, 3, 71, 93, 87, 82, + 81, 78, 78, 77, 76, 69, 74, 73, 70, 66, 75, + 82, 92, 82, 96, 76, 69, 70, 65, 68, 65, 3, 64, + 65, 67, 0, 64, 68, 80, 44, 39, 41, 39, 35, 41, + 37, 34, 30, 29, 30, 25, 7, 9, 2, 25, 24, 20, + 9, 15, 12, 1, 65, 69, 75, 78, 91, 76, 98, 62, + 62, 61, 61, 57, 52, 49, 43, 42, 38, 35, 28, + 22, 8, 69, 41, 41, 14, 43, 48, 37, 31, 33, 29, + 24, 28, 22, 18, 8, 8, 64, 82, 15, 5, 71, 105, + 94, 98, 75, 78, 76, 15, 67, 67, 68, 6, 28, 16, + 34, 64, 56, 54, 43, 35, 22, 18, 72, 82, 98, + 72, 41, 29, 20, 9, 10, 2, 64, 68, 84, 93, 85, + 76, 79, 72, 64, 71, 73, 64, 2, 3, 2, 7, 10, 3, + 55, 53, 47, 40, 35, 29, 13, 2, 79 }, + + { + + 60, + 8, 76, 60, 8, 76, 100, 82, 16, 10, 6, 9, 40, + 44, 54, 14, 83, 2, 65, 9, 1, 3, 69, 65, 80, + 12, 36, 91, 105, 112, 83, 85, 67, 65, 9, 1, + 80, 79, 8, 10, 66, 75, 85, 3, 73, 81, 89, 5, + 73, 84, 5, 72, 78, 88, 3, 69, 70, 75, 65, 5, + 22, 0, 0, 0, 74, 89, 97, 65, 10, 64, 52, 8, + 69, 111, 89, 82, 67, 87, 101, 97, 104, 78, + 101, 94, 98, 107, 103, 107, 104, 12, 66, 69, + 91, 67, 85, 80, 98, 73, 91, 84, 108, 11, 77, + 69, 104, 86, 76, 74, 66, 4, 64, 72, 8, 5, 68, + 3, 64, 64, 2, 76, 13, 5, 19, 19, 15, 18, 17, + 15, 17, 12, 7, 18, 15, 75, 95, 85, 88, 78, 82, + 78, 69, 76, 76, 74, 76, 70, 72, 69, 75, 94, + 85, 95, 71, 73, 64, 68, 3, 7, 1, 65, 7, 6, 65, + 69, 1, 83, 41, 40, 31, 33, 40, 32, 17, 34, 29, + 12, 19, 15, 5, 1, 67, 14, 8, 10, 11, 7, 3, 11, + 5, 1, 5, 64, 66, 2, 89, 58, 60, 56, 60, 57, + 56, 56, 56, 54, 45, 44, 41, 31, 27, 8, 41, 35, + 17, 45, 35, 36, 31, 26, 23, 24, 15, 5, 2, 1, + 79, 79, 98, 68, 27, 18, 12, 3, 5, 0, 70, 73, + 82, 1, 41, 27, 21, 17, 14, 3, 68, 71, 76, 80, + 23, 13, 7, 2, 2, 68, 73, 79, 94, 86, 65, 68, + 67, 70, 73, 83, 86, 99, 70, 35, 19, 12, 4, 5, + 69, 74, 77, 83, 62, 87, 78, 71, 66, 70, 1, 5, + 6, 70, 4, 9, 6, 78, 71, 70, 10, 8, 13, 10, 21, + 23, 19, 9, 15, 17, 15, 71, 2, 72, 92, 86, 81, + 81, 77, 78, 76, 75, 69, 74, 73, 70, 67, 75, + 82, 92, 81, 96, 76, 69, 70, 64, 68, 65, 4, 64, + 65, 67, 1, 65, 68, 81, 43, 39, 41, 38, 34, 40, + 36, 33, 29, 28, 29, 24, 6, 8, 1, 24, 23, 18, + 7, 14, 11, 0, 66, 69, 75, 78, 91, 77, 97, 62, + 62, 59, 59, 54, 50, 47, 41, 40, 36, 33, 26, + 20, 7, 70, 39, 39, 13, 41, 46, 35, 29, 31, 27, + 22, 26, 20, 16, 6, 6, 66, 83, 13, 3, 73, 104, + 93, 97, 74, 77, 75, 17, 66, 66, 68, 7, 30, 17, + 36, 0, 55, 52, 41, 32, 19, 15, 75, 84, 99, 72, + 41, 29, 20, 9, 10, 2, 64, 68, 83, 92, 84, 75, + 78, 71, 0, 70, 72, 0, 3, 4, 2, 8, 10, 3, 54, + 52, 45, 38, 33, 27, 11, 0, 80 }, + + { + + 58, + 7, 77, 58, 7, 77, 99, 81, 16, 10, 5, 7, 38, + 42, 53, 14, 81, 1, 65, 9, 0, 2, 69, 67, 82, + 11, 34, 93, 106, 113, 81, 84, 68, 65, 9, 0, + 80, 78, 8, 9, 66, 75, 85, 2, 74, 81, 90, 5, + 73, 84, 4, 73, 78, 88, 3, 69, 70, 75, 65, 4, + 22, 0, 0, 0, 74, 90, 97, 65, 9, 65, 52, 7, 69, + 110, 89, 82, 67, 86, 100, 96, 103, 77, 100, + 93, 97, 106, 103, 106, 104, 12, 66, 69, 91, + 67, 85, 80, 97, 73, 91, 84, 107, 11, 77, 69, + 103, 86, 76, 74, 66, 4, 64, 72, 8, 5, 69, 2, + 64, 65, 2, 76, 12, 4, 18, 19, 14, 17, 17, 14, + 15, 11, 6, 16, 14, 76, 95, 85, 88, 78, 82, 78, + 68, 76, 76, 74, 75, 71, 72, 69, 77, 94, 85, + 95, 71, 74, 64, 68, 2, 7, 1, 65, 5, 6, 66, 70, + 1, 84, 39, 39, 30, 32, 39, 31, 16, 33, 28, 10, + 18, 14, 4, 1, 68, 13, 7, 9, 10, 6, 2, 10, 4, + 64, 3, 65, 68, 0, 89, 56, 58, 54, 58, 55, 53, + 53, 53, 51, 42, 41, 38, 28, 24, 5, 39, 33, 15, + 42, 32, 33, 28, 23, 20, 21, 12, 2, 1, 64, 81, + 80, 99, 68, 27, 18, 12, 3, 5, 64, 70, 73, 82, + 1, 41, 27, 21, 17, 15, 3, 68, 71, 76, 80, 23, + 13, 7, 2, 2, 68, 73, 79, 93, 86, 64, 68, 67, + 70, 73, 83, 86, 98, 70, 35, 19, 12, 4, 5, 69, + 74, 77, 83, 62, 87, 78, 71, 66, 70, 1, 5, 6, + 70, 4, 9, 6, 78, 71, 71, 9, 8, 12, 9, 20, 22, + 18, 7, 13, 16, 14, 72, 0, 73, 92, 86, 80, 81, + 77, 78, 76, 75, 70, 74, 73, 70, 68, 75, 82, + 92, 81, 97, 76, 69, 70, 64, 69, 65, 4, 65, 66, + 67, 1, 66, 69, 82, 42, 38, 40, 37, 32, 39, 35, + 32, 28, 27, 28, 23, 5, 6, 64, 22, 21, 16, 5, + 12, 9, 64, 67, 70, 75, 78, 91, 78, 97, 62, 61, + 57, 56, 51, 47, 44, 38, 37, 33, 30, 23, 17, 5, + 71, 37, 37, 11, 39, 43, 32, 26, 28, 24, 20, + 23, 17, 13, 4, 3, 68, 85, 11, 1, 75, 103, 92, + 96, 74, 77, 75, 18, 66, 66, 68, 7, 31, 18, 37, + 0, 53, 50, 38, 28, 16, 12, 78, 87, 101, 72, + 41, 28, 19, 9, 10, 2, 65, 68, 83, 92, 84, 75, + 78, 70, 0, 70, 72, 0, 3, 4, 2, 8, 10, 2, 52, + 50, 43, 36, 31, 25, 8, 65, 81 }, + + { + + 57, + 7, 77, 57, 7, 77, 97, 79, 17, 11, 5, 6, 37, + 41, 53, 14, 78, 1, 64, 10, 0, 2, 68, 68, 83, + 11, 33, 94, 107, 113, 78, 82, 68, 64, 10, 0, + 79, 76, 9, 9, 65, 74, 84, 2, 74, 80, 90, 5, + 72, 83, 4, 73, 77, 88, 4, 68, 69, 74, 64, 4, + 22, 0, 0, 0, 73, 90, 97, 64, 9, 65, 52, 7, 69, + 108, 88, 82, 66, 84, 98, 94, 101, 75, 98, 91, + 95, 104, 102, 105, 103, 13, 65, 68, 90, 66, + 84, 79, 95, 72, 90, 83, 105, 12, 76, 68, 101, + 85, 75, 73, 65, 5, 0, 71, 9, 6, 69, 2, 0, 65, + 2, 75, 12, 4, 18, 19, 14, 17, 17, 14, 14, 11, + 6, 15, 13, 76, 94, 84, 87, 77, 81, 77, 67, 75, + 75, 73, 73, 71, 72, 68, 78, 93, 84, 95, 70, + 74, 0, 67, 2, 8, 1, 65, 4, 7, 66, 71, 1, 84, + 38, 39, 30, 32, 39, 31, 16, 33, 28, 9, 18, 14, + 4, 1, 68, 13, 7, 9, 10, 6, 1, 10, 4, 65, 2, + 65, 69, 64, 89, 55, 57, 53, 57, 54, 51, 51, + 51, 49, 40, 39, 36, 26, 22, 3, 38, 32, 14, 40, + 30, 31, 26, 21, 18, 19, 10, 0, 1, 65, 82, 80, + 99, 67, 28, 19, 13, 4, 5, 64, 69, 72, 81, 2, + 42, 28, 22, 17, 16, 4, 67, 70, 75, 79, 24, 14, + 8, 3, 3, 67, 72, 78, 91, 85, 1, 67, 66, 69, + 72, 82, 85, 96, 69, 36, 20, 13, 5, 6, 68, 73, + 76, 82, 62, 86, 77, 70, 66, 69, 1, 6, 7, 69, + 5, 10, 7, 77, 71, 71, 9, 9, 12, 9, 19, 22, 18, + 6, 12, 16, 14, 72, 64, 73, 91, 85, 79, 80, 76, + 77, 75, 74, 70, 73, 72, 69, 68, 74, 81, 91, + 80, 97, 76, 68, 70, 0, 69, 65, 5, 65, 66, 66, + 2, 66, 69, 82, 42, 38, 40, 37, 31, 39, 35, 32, + 28, 27, 28, 23, 5, 5, 65, 21, 20, 15, 4, 11, + 8, 64, 67, 70, 74, 77, 90, 78, 96, 60, 59, 55, + 54, 49, 45, 42, 36, 35, 31, 28, 21, 15, 4, 71, + 36, 36, 10, 38, 41, 30, 24, 26, 22, 18, 21, + 15, 11, 3, 1, 69, 86, 10, 0, 76, 101, 90, 94, + 73, 76, 74, 20, 65, 65, 68, 8, 33, 20, 39, 1, + 52, 49, 36, 25, 14, 10, 80, 89, 102, 71, 42, + 28, 19, 9, 11, 2, 65, 68, 82, 91, 83, 74, 77, + 68, 1, 69, 71, 1, 4, 5, 3, 9, 11, 2, 51, 49, + 42, 35, 30, 24, 6, 66, 81 }, + + { + + 56, + 7, 77, 56, 7, 77, 95, 78, 17, 11, 5, 5, 36, + 40, 53, 14, 76, 1, 0, 11, 0, 1, 68, 69, 84, + 10, 31, 96, 108, 114, 75, 81, 68, 0, 11, 0, + 79, 75, 9, 8, 65, 74, 83, 2, 74, 80, 90, 5, + 72, 82, 4, 73, 77, 88, 4, 68, 69, 74, 64, 4, + 22, 0, 0, 0, 72, 90, 97, 64, 8, 65, 52, 7, 69, + 107, 87, 82, 66, 83, 96, 92, 100, 74, 96, 90, + 93, 103, 101, 104, 102, 14, 65, 67, 89, 66, + 84, 78, 93, 72, 90, 83, 104, 12, 76, 68, 100, + 85, 74, 73, 65, 5, 0, 70, 9, 6, 70, 2, 0, 65, + 2, 75, 12, 4, 17, 19, 13, 17, 17, 14, 12, 11, + 6, 13, 12, 77, 93, 83, 86, 76, 80, 76, 66, 74, + 75, 72, 72, 71, 72, 68, 79, 93, 83, 95, 70, + 74, 1, 67, 1, 9, 1, 65, 3, 8, 67, 72, 1, 85, + 36, 38, 29, 31, 38, 30, 15, 32, 28, 8, 17, 14, + 4, 1, 68, 12, 6, 8, 9, 5, 0, 9, 3, 67, 1, 66, + 70, 65, 89, 53, 56, 51, 55, 52, 49, 49, 49, + 46, 38, 37, 33, 23, 20, 0, 36, 30, 12, 38, 28, + 29, 24, 19, 16, 16, 8, 65, 0, 67, 83, 81, 99, + 67, 28, 19, 13, 4, 5, 64, 69, 72, 80, 2, 42, + 28, 22, 17, 17, 4, 66, 70, 74, 78, 25, 15, 8, + 3, 4, 67, 72, 77, 90, 84, 2, 66, 66, 69, 71, + 81, 84, 95, 69, 36, 20, 13, 5, 7, 67, 72, 75, + 81, 62, 86, 77, 70, 66, 69, 1, 6, 7, 69, 5, + 10, 8, 77, 71, 71, 8, 9, 11, 8, 18, 21, 18, 5, + 11, 16, 14, 73, 65, 74, 90, 84, 78, 80, 76, + 77, 74, 73, 70, 73, 72, 69, 69, 74, 81, 91, + 79, 97, 76, 68, 70, 1, 69, 65, 6, 65, 66, 66, + 3, 67, 69, 83, 41, 38, 40, 36, 30, 38, 34, 31, + 27, 26, 27, 22, 4, 4, 66, 19, 19, 13, 2, 10, + 7, 65, 68, 70, 74, 77, 90, 79, 95, 58, 57, 53, + 52, 46, 43, 40, 33, 33, 29, 26, 19, 13, 3, 72, + 34, 34, 9, 36, 39, 28, 22, 24, 20, 16, 19, 13, + 9, 1, 64, 71, 87, 8, 65, 78, 100, 89, 93, 72, + 75, 73, 22, 64, 64, 68, 9, 34, 21, 40, 2, 51, + 47, 33, 22, 11, 7, 83, 91, 103, 71, 42, 28, + 19, 9, 11, 2, 65, 68, 81, 90, 82, 73, 76, 67, + 2, 68, 70, 2, 5, 6, 3, 10, 11, 2, 50, 47, 40, + 33, 28, 22, 4, 68, 82 }, + + { + + 55, + 7, 77, 55, 7, 77, 93, 76, 18, 11, 4, 3, 34, + 39, 53, 14, 74, 1, 1, 12, 0, 0, 68, 70, 85, + 10, 29, 97, 109, 114, 72, 80, 68, 1, 12, 0, + 78, 74, 10, 8, 65, 73, 82, 1, 75, 80, 90, 5, + 72, 82, 4, 73, 77, 88, 5, 68, 69, 74, 0, 4, + 22, 0, 0, 0, 72, 90, 97, 0, 7, 65, 52, 7, 69, + 106, 86, 82, 65, 82, 94, 90, 98, 73, 94, 89, + 91, 102, 100, 103, 101, 15, 65, 66, 88, 66, + 83, 78, 91, 72, 89, 82, 103, 12, 76, 67, 98, + 84, 73, 73, 65, 5, 0, 69, 10, 7, 70, 2, 0, 65, + 2, 75, 12, 3, 17, 19, 12, 17, 17, 14, 10, 11, + 5, 11, 11, 78, 92, 82, 85, 75, 79, 76, 65, 74, + 74, 71, 71, 71, 72, 68, 80, 92, 82, 95, 70, + 74, 2, 67, 0, 10, 1, 65, 2, 9, 67, 73, 1, 86, + 35, 37, 29, 30, 37, 29, 15, 31, 27, 7, 16, 14, + 4, 1, 69, 11, 5, 7, 8, 4, 64, 8, 3, 69, 0, 66, + 71, 66, 89, 52, 54, 50, 53, 50, 47, 47, 47, + 44, 35, 35, 31, 21, 17, 65, 34, 28, 11, 36, + 26, 26, 21, 17, 13, 14, 6, 68, 64, 69, 84, 82, + 99, 67, 29, 19, 13, 4, 5, 64, 69, 72, 80, 2, + 42, 28, 22, 17, 18, 5, 66, 69, 74, 77, 26, 15, + 9, 3, 5, 66, 71, 77, 89, 83, 3, 65, 65, 69, + 70, 80, 83, 94, 68, 36, 20, 13, 5, 8, 67, 71, + 74, 80, 62, 85, 76, 69, 66, 69, 1, 6, 7, 69, + 5, 10, 8, 77, 71, 71, 8, 10, 10, 7, 17, 20, + 18, 4, 10, 16, 14, 73, 66, 74, 89, 83, 77, 79, + 75, 76, 74, 72, 70, 73, 72, 68, 69, 74, 81, + 90, 78, 97, 76, 68, 70, 2, 69, 65, 7, 65, 66, + 66, 4, 68, 69, 84, 40, 37, 39, 35, 29, 37, 33, + 30, 26, 25, 26, 21, 3, 3, 67, 18, 18, 12, 0, + 8, 6, 66, 68, 71, 74, 77, 90, 79, 94, 56, 55, + 51, 50, 43, 41, 38, 31, 31, 27, 24, 16, 11, 1, + 73, 32, 33, 7, 34, 37, 26, 20, 22, 18, 14, 17, + 11, 6, 64, 66, 73, 88, 6, 67, 79, 99, 88, 92, + 71, 74, 72, 23, 0, 0, 68, 10, 36, 23, 42, 3, + 49, 46, 31, 19, 8, 4, 86, 93, 104, 71, 42, 28, + 19, 9, 11, 2, 65, 68, 81, 89, 81, 72, 75, 66, + 2, 68, 69, 2, 5, 6, 3, 10, 11, 2, 49, 46, 38, + 31, 26, 20, 2, 70, 83 }, + + { + + 53, + 7, 77, 53, 7, 77, 92, 75, 18, 11, 4, 2, 33, + 37, 53, 14, 71, 0, 2, 12, 0, 64, 68, 71, 86, + 9, 27, 99, 110, 115, 69, 79, 68, 2, 12, 0, 78, + 73, 10, 7, 65, 73, 82, 1, 75, 79, 90, 5, 72, + 81, 3, 74, 77, 88, 5, 67, 69, 73, 0, 4, 22, 0, + 0, 0, 71, 91, 97, 0, 6, 65, 52, 7, 69, 105, + 85, 82, 65, 80, 93, 88, 97, 72, 93, 87, 89, + 101, 100, 102, 101, 15, 65, 65, 87, 66, 83, + 77, 89, 72, 89, 82, 102, 12, 75, 67, 97, 84, + 73, 73, 64, 5, 0, 69, 10, 7, 71, 1, 0, 65, 2, + 75, 12, 3, 16, 19, 12, 17, 17, 13, 8, 11, 5, + 9, 10, 79, 91, 81, 84, 74, 79, 75, 64, 73, 74, + 70, 70, 71, 72, 67, 81, 92, 81, 95, 70, 74, 2, + 67, 64, 11, 1, 65, 0, 10, 68, 74, 1, 87, 33, + 36, 28, 29, 36, 28, 14, 30, 27, 5, 15, 13, 4, + 1, 69, 10, 5, 6, 8, 3, 65, 7, 2, 71, 64, 67, + 72, 67, 89, 50, 53, 48, 51, 48, 45, 44, 45, + 41, 33, 33, 28, 18, 15, 68, 32, 27, 9, 33, 24, + 24, 19, 14, 11, 11, 4, 70, 65, 70, 86, 83, 99, + 67, 29, 20, 13, 4, 5, 64, 69, 72, 79, 3, 43, + 28, 22, 17, 19, 5, 65, 69, 73, 77, 27, 16, 9, + 3, 5, 66, 71, 76, 88, 83, 4, 65, 65, 69, 69, + 79, 83, 93, 68, 37, 20, 13, 5, 9, 66, 71, 73, + 79, 62, 85, 76, 69, 66, 69, 1, 6, 7, 68, 5, + 10, 9, 77, 71, 71, 7, 10, 9, 6, 16, 19, 18, 2, + 9, 15, 14, 74, 67, 75, 89, 83, 76, 79, 75, 76, + 73, 71, 71, 73, 72, 68, 70, 74, 81, 90, 77, + 97, 76, 67, 70, 2, 69, 65, 8, 65, 67, 66, 5, + 68, 70, 85, 39, 37, 39, 34, 28, 36, 32, 29, + 25, 24, 25, 20, 2, 2, 68, 16, 16, 10, 65, 7, + 5, 67, 69, 71, 74, 77, 90, 80, 94, 53, 52, 49, + 47, 40, 39, 36, 28, 29, 25, 22, 14, 9, 0, 74, + 30, 31, 6, 32, 35, 24, 18, 19, 16, 12, 15, 9, + 4, 66, 68, 75, 89, 4, 69, 81, 98, 87, 91, 71, + 73, 71, 25, 1, 1, 68, 11, 37, 24, 43, 3, 48, + 44, 28, 16, 5, 1, 89, 95, 105, 71, 42, 28, 19, + 9, 11, 2, 65, 68, 80, 88, 80, 71, 75, 65, 3, + 67, 68, 3, 6, 7, 4, 11, 12, 2, 47, 44, 36, 29, + 24, 18, 0, 72, 84 }, + + { + + 52, + 7, 77, 52, 7, 77, 90, 73, 18, 11, 3, 0, 31, + 36, 53, 14, 69, 0, 3, 13, 0, 64, 67, 72, 87, + 9, 25, 101, 111, 115, 66, 77, 68, 3, 13, 0, + 78, 72, 10, 7, 65, 73, 81, 1, 76, 79, 90, 5, + 72, 80, 3, 74, 77, 88, 6, 67, 68, 73, 1, 4, + 22, 0, 0, 0, 71, 91, 97, 1, 5, 65, 52, 7, 69, + 104, 84, 82, 64, 79, 91, 86, 95, 71, 91, 86, + 87, 100, 99, 101, 100, 16, 65, 64, 86, 66, 82, + 76, 87, 72, 89, 81, 100, 13, 75, 66, 96, 83, + 72, 73, 64, 6, 1, 68, 11, 8, 71, 1, 0, 65, 2, + 75, 12, 2, 15, 19, 11, 17, 17, 13, 6, 11, 4, + 8, 9, 80, 90, 80, 83, 73, 78, 74, 0, 72, 73, + 69, 69, 71, 72, 67, 82, 91, 80, 95, 69, 74, 3, + 67, 65, 12, 1, 65, 64, 11, 68, 75, 1, 87, 32, + 35, 28, 28, 35, 27, 13, 30, 27, 4, 14, 13, 4, + 1, 70, 10, 4, 5, 7, 2, 66, 7, 1, 73, 65, 68, + 73, 68, 89, 48, 52, 46, 49, 47, 43, 42, 43, + 39, 31, 31, 26, 16, 13, 70, 30, 25, 7, 31, 22, + 22, 17, 12, 9, 8, 2, 73, 66, 72, 87, 83, 99, + 67, 29, 20, 13, 4, 5, 64, 69, 72, 79, 3, 43, + 28, 22, 17, 20, 6, 64, 69, 72, 76, 28, 17, 9, + 4, 6, 65, 70, 76, 87, 82, 6, 64, 65, 68, 68, + 78, 82, 92, 67, 37, 21, 13, 5, 10, 65, 70, 72, + 78, 62, 85, 76, 68, 66, 69, 1, 6, 7, 68, 5, + 11, 9, 77, 71, 71, 6, 11, 8, 5, 15, 19, 18, 1, + 8, 15, 14, 75, 68, 75, 88, 82, 75, 78, 74, 75, + 73, 70, 71, 73, 72, 68, 71, 74, 81, 89, 76, + 97, 76, 67, 70, 3, 69, 65, 9, 65, 67, 66, 6, + 69, 70, 85, 38, 37, 38, 34, 27, 35, 31, 28, + 25, 23, 24, 19, 1, 1, 69, 15, 15, 9, 67, 6, 4, + 68, 70, 72, 74, 76, 90, 80, 93, 51, 50, 47, + 45, 38, 37, 34, 26, 27, 23, 20, 12, 7, 65, 75, + 28, 29, 5, 30, 33, 22, 16, 17, 14, 10, 13, 7, + 1, 68, 70, 77, 90, 2, 71, 82, 97, 85, 90, 70, + 72, 70, 27, 2, 2, 68, 12, 39, 26, 45, 4, 46, + 42, 26, 13, 3, 65, 91, 97, 106, 71, 42, 28, + 19, 9, 11, 2, 65, 68, 80, 87, 79, 70, 74, 64, + 4, 67, 67, 4, 7, 8, 4, 11, 12, 2, 46, 43, 35, + 28, 22, 16, 65, 74, 85 }, + + { + + 51, + 7, 78, 51, 7, 78, 88, 72, 19, 11, 3, 64, 30, + 35, 53, 14, 67, 0, 3, 14, 0, 65, 67, 73, 88, + 8, 24, 102, 112, 116, 0, 76, 68, 3, 14, 0, 77, + 71, 11, 6, 64, 72, 80, 0, 76, 79, 90, 5, 71, + 80, 3, 74, 76, 88, 6, 67, 68, 73, 1, 4, 22, 0, + 0, 0, 70, 91, 97, 1, 5, 66, 52, 7, 69, 103, + 84, 82, 64, 78, 89, 84, 94, 70, 89, 85, 85, + 99, 98, 100, 99, 17, 65, 0, 86, 65, 82, 76, + 85, 72, 88, 81, 99, 13, 75, 66, 94, 83, 71, + 72, 64, 6, 1, 67, 11, 8, 72, 1, 0, 65, 2, 75, + 12, 2, 15, 19, 10, 17, 17, 13, 4, 11, 4, 6, 8, + 81, 90, 79, 83, 73, 77, 74, 1, 72, 73, 69, 67, + 71, 72, 67, 83, 91, 79, 95, 69, 74, 4, 66, 66, + 12, 1, 65, 65, 12, 69, 76, 1, 88, 30, 34, 27, + 28, 34, 27, 13, 29, 26, 3, 13, 13, 4, 1, 70, + 9, 3, 4, 6, 2, 67, 6, 1, 75, 66, 68, 74, 69, + 89, 47, 50, 45, 47, 45, 41, 40, 41, 36, 28, + 29, 23, 13, 10, 73, 28, 23, 6, 29, 19, 19, 14, + 10, 6, 6, 64, 75, 67, 74, 88, 84, 99, 66, 30, + 20, 14, 4, 5, 64, 69, 72, 78, 3, 43, 29, 22, + 17, 21, 6, 64, 68, 72, 75, 29, 17, 10, 4, 7, + 65, 70, 75, 86, 81, 7, 0, 64, 68, 68, 78, 81, + 90, 67, 37, 21, 13, 6, 10, 65, 69, 72, 77, 62, + 84, 75, 68, 66, 69, 1, 6, 7, 68, 6, 11, 10, + 77, 71, 72, 6, 11, 7, 4, 14, 18, 18, 0, 7, 15, + 14, 75, 69, 76, 87, 81, 74, 78, 74, 75, 72, + 70, 71, 72, 71, 67, 71, 74, 81, 89, 75, 97, + 76, 67, 70, 4, 69, 65, 10, 66, 67, 66, 6, 70, + 70, 86, 37, 36, 38, 33, 26, 35, 31, 27, 24, + 23, 23, 18, 0, 0, 70, 13, 14, 7, 69, 4, 2, 69, + 70, 72, 74, 76, 89, 81, 92, 49, 48, 45, 43, + 35, 35, 32, 23, 25, 20, 18, 9, 5, 66, 75, 27, + 28, 3, 28, 30, 20, 14, 15, 12, 8, 10, 5, 64, + 70, 72, 78, 92, 0, 73, 84, 96, 84, 89, 69, 71, + 69, 28, 3, 3, 68, 13, 40, 27, 46, 5, 45, 41, + 23, 10, 0, 67, 94, 99, 108, 70, 42, 28, 19, 9, + 11, 2, 65, 68, 79, 86, 79, 69, 73, 0, 4, 66, + 66, 4, 7, 8, 4, 12, 12, 2, 45, 41, 33, 26, 21, + 15, 68, 75, 86 }, + + { + + 50, + 7, 78, 50, 7, 78, 86, 70, 19, 11, 2, 66, 28, + 33, 53, 14, 64, 64, 4, 14, 0, 66, 67, 74, 89, + 8, 22, 104, 113, 116, 3, 75, 68, 4, 14, 0, 77, + 70, 11, 6, 64, 72, 80, 0, 77, 78, 90, 5, 71, + 79, 2, 74, 76, 88, 7, 66, 68, 72, 2, 4, 22, 0, + 0, 0, 70, 91, 97, 2, 4, 66, 52, 7, 69, 102, + 83, 82, 0, 76, 88, 82, 92, 69, 88, 83, 83, 98, + 97, 99, 99, 18, 65, 1, 85, 65, 81, 75, 83, 72, + 88, 80, 98, 13, 74, 65, 93, 82, 71, 72, 0, 6, + 1, 66, 12, 9, 72, 0, 0, 65, 2, 75, 12, 1, 14, + 19, 10, 17, 17, 12, 2, 11, 3, 4, 7, 82, 89, + 78, 82, 72, 76, 73, 2, 71, 72, 68, 66, 71, 72, + 66, 84, 90, 78, 95, 69, 74, 4, 66, 67, 13, 1, + 65, 67, 13, 69, 77, 1, 89, 29, 33, 27, 27, 33, + 26, 12, 28, 26, 2, 12, 13, 4, 1, 71, 8, 3, 3, + 6, 1, 68, 5, 0, 77, 67, 69, 75, 70, 89, 45, + 49, 43, 45, 43, 39, 37, 39, 34, 26, 27, 21, + 11, 8, 75, 26, 22, 4, 26, 17, 17, 12, 7, 4, 3, + 66, 78, 68, 75, 90, 85, 99, 66, 30, 21, 14, 4, + 5, 64, 69, 72, 78, 4, 44, 29, 22, 17, 22, 7, + 0, 68, 71, 74, 30, 18, 10, 4, 8, 64, 69, 75, + 85, 81, 8, 0, 64, 68, 67, 77, 81, 89, 66, 38, + 21, 13, 6, 11, 64, 68, 71, 76, 62, 84, 75, 67, + 66, 69, 1, 6, 7, 67, 6, 11, 10, 77, 71, 72, 5, + 12, 6, 3, 13, 17, 18, 64, 6, 14, 14, 76, 70, + 76, 86, 81, 73, 77, 73, 74, 72, 69, 71, 72, + 71, 67, 72, 74, 81, 88, 74, 97, 76, 66, 70, 4, + 69, 65, 11, 66, 67, 66, 7, 70, 71, 87, 36, 36, + 37, 32, 25, 34, 30, 26, 23, 22, 22, 17, 64, + 64, 71, 12, 12, 6, 71, 3, 1, 70, 71, 73, 74, + 76, 89, 81, 91, 47, 46, 43, 40, 32, 33, 30, + 21, 23, 18, 16, 7, 3, 68, 76, 25, 26, 2, 26, + 28, 18, 12, 13, 10, 6, 8, 3, 67, 72, 74, 80, + 93, 65, 75, 85, 95, 83, 88, 69, 70, 68, 30, 4, + 4, 68, 14, 42, 29, 48, 5, 43, 39, 21, 7, 66, + 70, 97, 101, 109, 70, 42, 28, 19, 9, 11, 2, + 65, 68, 79, 85, 78, 68, 72, 1, 5, 66, 65, 5, + 8, 9, 5, 12, 13, 2, 43, 40, 31, 24, 19, 13, + 70, 77, 87 }, + + { + + 48, + 6, 78, 48, 6, 78, 85, 69, 19, 11, 2, 67, 27, + 32, 53, 14, 1, 64, 5, 15, 0, 67, 67, 75, 91, + 7, 20, 106, 114, 117, 5, 74, 68, 5, 15, 0, 77, + 69, 11, 5, 64, 72, 79, 64, 77, 78, 91, 5, 71, + 79, 2, 75, 76, 88, 7, 66, 68, 72, 2, 4, 22, 0, + 0, 0, 69, 92, 97, 2, 3, 66, 52, 7, 69, 101, + 82, 82, 0, 75, 86, 80, 91, 68, 86, 82, 82, 97, + 97, 98, 98, 18, 65, 2, 84, 65, 81, 75, 82, 72, + 88, 80, 97, 13, 74, 65, 92, 82, 70, 72, 0, 6, + 1, 66, 12, 9, 73, 0, 0, 65, 2, 75, 12, 1, 13, + 19, 9, 17, 17, 12, 0, 11, 3, 2, 6, 83, 88, 77, + 81, 71, 76, 73, 3, 71, 72, 67, 65, 71, 72, 66, + 86, 90, 77, 95, 69, 75, 5, 66, 68, 14, 1, 65, + 68, 14, 70, 78, 1, 90, 27, 32, 26, 26, 32, 25, + 11, 27, 25, 0, 11, 12, 4, 1, 71, 7, 2, 2, 5, + 0, 69, 4, 64, 79, 69, 70, 76, 71, 89, 43, 47, + 41, 43, 41, 37, 35, 37, 31, 23, 25, 18, 8, 5, + 78, 24, 20, 2, 24, 15, 14, 9, 5, 1, 0, 68, 80, + 69, 77, 91, 86, 100, 66, 30, 21, 14, 4, 5, 64, + 69, 72, 77, 4, 44, 29, 22, 17, 23, 7, 0, 68, + 71, 74, 31, 18, 10, 4, 8, 64, 69, 74, 84, 80, + 9, 1, 64, 68, 66, 76, 80, 88, 66, 38, 21, 13, + 6, 12, 64, 68, 70, 76, 62, 84, 75, 67, 66, 69, + 1, 6, 7, 67, 6, 11, 11, 77, 71, 72, 4, 12, 5, + 2, 12, 16, 18, 66, 4, 14, 14, 77, 71, 77, 86, + 80, 72, 77, 73, 74, 71, 68, 72, 72, 71, 67, + 73, 74, 81, 88, 74, 98, 76, 66, 70, 5, 69, 65, + 11, 66, 68, 66, 8, 71, 71, 88, 35, 35, 37, 31, + 23, 33, 29, 25, 22, 21, 21, 16, 65, 65, 72, + 10, 11, 4, 73, 1, 0, 71, 72, 73, 74, 76, 89, + 82, 91, 44, 43, 41, 38, 29, 30, 27, 18, 21, + 16, 14, 4, 1, 69, 77, 23, 24, 0, 24, 26, 15, + 9, 10, 7, 4, 6, 0, 69, 74, 77, 82, 94, 67, 77, + 87, 94, 82, 87, 68, 69, 68, 31, 5, 4, 68, 14, + 43, 30, 49, 6, 42, 37, 18, 4, 69, 73, 100, + 103, 110, 70, 42, 28, 19, 9, 11, 2, 65, 68, + 78, 85, 77, 67, 72, 2, 5, 65, 65, 5, 8, 9, 5, + 13, 13, 1, 42, 38, 29, 22, 17, 11, 72, 79, 88 }, + + { + + 47, + 6, 78, 47, 6, 78, 83, 68, 20, 11, 2, 68, 26, + 31, 53, 14, 3, 64, 6, 16, 0, 67, 66, 76, 92, + 6, 18, 107, 115, 118, 8, 72, 68, 6, 16, 0, 76, + 68, 12, 4, 64, 71, 78, 64, 77, 78, 91, 5, 71, + 78, 2, 75, 76, 88, 7, 66, 67, 72, 2, 4, 22, 0, + 0, 0, 68, 92, 97, 2, 2, 66, 52, 7, 69, 100, + 81, 82, 0, 74, 84, 78, 89, 66, 84, 81, 80, 96, + 96, 97, 97, 19, 64, 3, 83, 65, 80, 74, 80, 72, + 87, 80, 95, 14, 74, 65, 90, 82, 69, 72, 0, 7, + 2, 65, 12, 9, 73, 0, 1, 65, 2, 74, 12, 1, 13, + 19, 8, 17, 17, 12, 65, 11, 3, 1, 5, 83, 87, + 76, 80, 70, 75, 72, 4, 70, 72, 66, 64, 71, 72, + 66, 87, 89, 76, 95, 68, 75, 6, 66, 69, 15, 1, + 65, 69, 15, 71, 79, 1, 90, 26, 31, 26, 25, 31, + 24, 11, 27, 25, 64, 10, 12, 4, 1, 71, 7, 1, 1, + 4, 64, 70, 4, 64, 80, 70, 70, 77, 72, 89, 42, + 46, 40, 42, 40, 35, 33, 35, 29, 21, 23, 16, 5, + 3, 81, 23, 18, 1, 22, 13, 12, 7, 3, 64, 65, + 70, 82, 69, 79, 92, 86, 100, 66, 31, 21, 14, + 5, 5, 64, 68, 72, 76, 4, 44, 29, 23, 17, 24, + 8, 1, 67, 70, 73, 32, 19, 11, 5, 9, 0, 69, 73, + 83, 79, 11, 2, 0, 67, 65, 75, 79, 87, 65, 38, + 22, 14, 6, 13, 0, 67, 69, 75, 62, 83, 74, 66, + 66, 69, 1, 7, 8, 67, 6, 12, 12, 77, 71, 72, 4, + 12, 4, 2, 11, 16, 18, 67, 3, 14, 14, 77, 72, + 78, 85, 79, 71, 77, 72, 74, 70, 67, 72, 72, + 71, 66, 73, 74, 81, 88, 73, 98, 76, 66, 70, 6, + 69, 65, 12, 66, 68, 66, 9, 72, 71, 88, 34, 35, + 37, 31, 22, 32, 28, 24, 22, 20, 20, 16, 65, + 66, 73, 9, 10, 2, 75, 0, 64, 71, 72, 73, 73, + 75, 89, 83, 90, 42, 41, 39, 36, 27, 28, 25, + 16, 19, 14, 12, 2, 64, 70, 78, 21, 23, 64, 22, + 24, 13, 7, 8, 5, 2, 4, 65, 71, 75, 79, 84, 95, + 69, 79, 89, 93, 80, 85, 67, 68, 67, 33, 6, 5, + 68, 15, 45, 31, 51, 7, 41, 36, 16, 1, 71, 76, + 102, 105, 111, 70, 42, 28, 19, 9, 12, 2, 65, + 68, 77, 84, 76, 66, 71, 4, 6, 64, 64, 6, 9, + 10, 5, 14, 13, 1, 41, 37, 28, 21, 15, 9, 74, + 81, 88 }, + + { + + 46, + 6, 78, 46, 6, 78, 81, 66, 20, 11, 1, 70, 24, + 29, 53, 14, 6, 65, 7, 16, 0, 68, 66, 77, 93, + 6, 16, 109, 116, 118, 11, 71, 68, 7, 16, 0, + 76, 67, 12, 4, 64, 71, 78, 64, 78, 77, 91, 5, + 71, 77, 1, 75, 76, 88, 8, 65, 67, 71, 3, 4, + 22, 0, 0, 0, 68, 92, 97, 3, 1, 66, 52, 7, 69, + 99, 80, 82, 1, 72, 83, 76, 88, 65, 83, 79, 78, + 95, 95, 96, 97, 20, 64, 4, 82, 65, 80, 73, 78, + 72, 87, 79, 94, 14, 73, 64, 89, 81, 69, 72, 1, + 7, 2, 64, 13, 10, 74, 64, 1, 65, 2, 74, 12, 0, + 12, 19, 8, 17, 17, 11, 67, 11, 2, 64, 4, 84, + 86, 75, 79, 69, 74, 71, 5, 69, 71, 65, 0, 71, + 72, 65, 88, 89, 75, 95, 68, 75, 6, 66, 70, 16, + 1, 65, 71, 16, 71, 80, 1, 91, 24, 30, 25, 24, + 30, 23, 10, 26, 25, 65, 9, 12, 4, 1, 72, 6, 1, + 0, 4, 65, 71, 3, 65, 82, 71, 71, 78, 73, 89, + 40, 45, 38, 40, 38, 33, 30, 33, 26, 19, 21, + 13, 3, 1, 83, 21, 17, 64, 19, 11, 10, 5, 0, + 66, 68, 72, 85, 70, 80, 94, 87, 100, 66, 31, + 22, 14, 5, 5, 64, 68, 72, 76, 5, 45, 29, 23, + 17, 25, 8, 2, 67, 69, 72, 33, 20, 11, 5, 10, + 0, 68, 73, 82, 79, 12, 2, 0, 67, 64, 74, 79, + 86, 65, 39, 22, 14, 6, 14, 1, 66, 68, 74, 62, + 83, 74, 66, 66, 69, 1, 7, 8, 66, 6, 12, 12, + 77, 71, 72, 3, 13, 3, 1, 10, 15, 18, 68, 2, + 13, 14, 78, 73, 78, 84, 79, 70, 76, 72, 73, + 70, 66, 72, 72, 71, 66, 74, 74, 81, 87, 72, + 98, 76, 65, 70, 6, 69, 65, 13, 66, 68, 66, 10, + 72, 72, 89, 33, 35, 36, 30, 21, 31, 27, 23, + 21, 19, 19, 15, 66, 67, 74, 7, 8, 1, 77, 64, + 65, 72, 73, 74, 73, 75, 89, 83, 89, 40, 39, + 37, 33, 24, 26, 23, 13, 17, 12, 10, 0, 66, 72, + 79, 19, 21, 65, 20, 22, 11, 5, 6, 3, 0, 2, 67, + 74, 77, 81, 86, 96, 71, 81, 90, 92, 79, 84, + 67, 67, 66, 35, 7, 6, 68, 16, 46, 33, 52, 7, + 39, 34, 13, 65, 74, 79, 105, 107, 112, 70, 42, + 28, 19, 9, 12, 2, 65, 68, 77, 83, 75, 65, 70, + 5, 7, 64, 0, 7, 10, 11, 6, 14, 14, 1, 39, 35, + 26, 19, 13, 7, 76, 83, 89 }, + + { + + 45, + 6, 79, 45, 6, 79, 79, 65, 21, 11, 1, 71, 23, + 28, 53, 14, 8, 65, 7, 17, 0, 69, 66, 78, 94, + 5, 15, 110, 117, 119, 14, 70, 68, 7, 17, 0, + 75, 66, 13, 3, 0, 70, 77, 65, 78, 77, 91, 5, + 70, 77, 1, 75, 75, 88, 8, 65, 67, 71, 3, 4, + 22, 0, 0, 0, 67, 92, 97, 3, 1, 67, 52, 7, 69, + 98, 80, 82, 1, 71, 81, 74, 86, 64, 81, 78, 76, + 94, 94, 95, 96, 21, 64, 5, 82, 64, 79, 73, 76, + 72, 86, 79, 93, 14, 73, 64, 87, 81, 68, 71, 1, + 7, 2, 0, 13, 10, 74, 64, 1, 65, 2, 74, 12, 0, + 12, 19, 7, 17, 17, 11, 69, 11, 2, 66, 3, 85, + 86, 74, 79, 69, 73, 71, 6, 69, 71, 65, 2, 71, + 72, 65, 89, 88, 74, 95, 68, 75, 7, 65, 71, 16, + 1, 65, 72, 17, 72, 81, 1, 92, 23, 29, 25, 24, + 29, 23, 10, 25, 24, 66, 8, 12, 4, 1, 72, 5, 0, + 64, 3, 65, 72, 2, 65, 84, 72, 71, 79, 74, 89, + 39, 43, 37, 38, 36, 31, 28, 31, 24, 16, 19, + 11, 0, 65, 86, 19, 15, 65, 17, 8, 7, 2, 65, + 69, 70, 75, 87, 71, 82, 95, 88, 100, 65, 32, + 22, 15, 5, 5, 64, 68, 72, 75, 5, 45, 30, 23, + 17, 26, 9, 2, 66, 69, 71, 34, 20, 12, 5, 11, + 1, 68, 72, 81, 78, 13, 3, 1, 67, 64, 74, 78, + 84, 64, 39, 22, 14, 7, 14, 1, 65, 68, 73, 62, + 82, 73, 65, 66, 69, 1, 7, 8, 66, 7, 12, 13, + 77, 71, 73, 3, 13, 2, 0, 9, 14, 18, 69, 1, 13, + 14, 78, 74, 79, 83, 78, 69, 76, 71, 73, 69, + 66, 72, 71, 70, 65, 74, 74, 81, 87, 71, 98, + 76, 65, 70, 7, 69, 65, 14, 67, 68, 66, 10, 73, + 72, 90, 32, 34, 36, 29, 20, 31, 27, 22, 20, + 19, 18, 14, 67, 68, 75, 6, 7, 64, 79, 66, 67, + 73, 73, 74, 73, 75, 88, 84, 88, 38, 37, 35, + 31, 21, 24, 21, 11, 15, 9, 8, 66, 68, 73, 79, + 18, 20, 67, 18, 19, 9, 3, 4, 1, 65, 64, 69, + 76, 79, 83, 87, 98, 73, 83, 92, 91, 78, 83, + 66, 66, 65, 36, 8, 7, 68, 17, 48, 34, 54, 8, + 38, 33, 11, 68, 77, 81, 108, 109, 114, 69, 42, + 28, 19, 9, 12, 2, 65, 68, 76, 82, 75, 64, 69, + 6, 7, 0, 1, 7, 10, 11, 6, 15, 14, 1, 38, 34, + 24, 17, 12, 6, 79, 84, 90 }, + + { + + 43, + 6, 79, 43, 6, 79, 78, 0, 21, 11, 0, 73, 21, + 27, 53, 14, 10, 65, 8, 18, 0, 70, 66, 79, 95, + 5, 13, 112, 118, 119, 17, 69, 68, 8, 18, 0, + 75, 65, 13, 3, 0, 70, 76, 65, 79, 77, 91, 5, + 70, 76, 1, 76, 75, 88, 9, 65, 67, 71, 4, 4, + 22, 0, 0, 0, 67, 93, 97, 4, 0, 67, 52, 7, 69, + 97, 79, 82, 2, 70, 79, 72, 85, 0, 79, 77, 74, + 93, 94, 94, 95, 21, 64, 6, 81, 64, 79, 72, 74, + 72, 86, 78, 92, 14, 73, 0, 86, 80, 67, 71, 1, + 7, 2, 0, 14, 11, 75, 64, 1, 65, 2, 74, 12, 64, + 11, 19, 6, 17, 17, 11, 71, 11, 1, 68, 2, 86, + 85, 73, 78, 68, 73, 70, 7, 68, 70, 64, 3, 71, + 72, 65, 90, 88, 73, 95, 68, 75, 8, 65, 72, 17, + 1, 65, 73, 18, 72, 82, 1, 93, 21, 28, 24, 23, + 28, 22, 9, 24, 24, 68, 7, 11, 4, 1, 73, 4, 64, + 65, 2, 66, 73, 1, 66, 86, 73, 72, 80, 75, 89, + 37, 42, 35, 36, 34, 29, 26, 29, 21, 14, 17, 8, + 65, 67, 88, 17, 13, 67, 15, 6, 5, 0, 67, 71, + 73, 77, 90, 72, 84, 96, 89, 100, 65, 32, 22, + 15, 5, 5, 64, 68, 72, 75, 5, 45, 30, 23, 17, + 27, 9, 3, 66, 68, 71, 35, 21, 12, 5, 11, 1, + 67, 72, 80, 77, 14, 4, 1, 67, 0, 73, 77, 83, + 64, 39, 22, 14, 7, 15, 2, 65, 67, 72, 62, 82, + 73, 65, 66, 69, 1, 7, 8, 66, 7, 12, 13, 77, + 71, 73, 2, 14, 1, 64, 8, 13, 18, 71, 0, 13, + 14, 79, 75, 79, 83, 77, 68, 75, 71, 72, 69, + 65, 73, 71, 70, 65, 75, 74, 81, 86, 70, 98, + 76, 65, 70, 8, 69, 65, 15, 67, 69, 66, 11, 74, + 72, 91, 31, 34, 35, 28, 19, 30, 26, 21, 19, + 18, 17, 13, 68, 69, 76, 4, 6, 65, 81, 67, 68, + 74, 74, 75, 73, 75, 88, 84, 88, 35, 34, 33, + 29, 18, 22, 19, 8, 13, 7, 6, 68, 70, 75, 80, + 16, 18, 68, 16, 17, 7, 1, 1, 64, 67, 66, 71, + 79, 81, 85, 89, 99, 75, 85, 93, 90, 77, 82, + 65, 65, 64, 38, 9, 8, 68, 18, 49, 36, 55, 9, + 36, 31, 8, 71, 80, 84, 111, 111, 115, 69, 42, + 28, 19, 9, 12, 2, 65, 68, 76, 81, 74, 0, 69, + 7, 8, 0, 2, 8, 11, 12, 6, 15, 14, 1, 37, 32, + 22, 15, 10, 4, 81, 86, 91 }, + + { + + 42, + 6, 79, 42, 6, 79, 76, 1, 21, 11, 0, 74, 20, + 25, 53, 14, 13, 66, 9, 18, 0, 70, 65, 80, 96, + 4, 11, 114, 119, 120, 20, 67, 68, 9, 18, 0, + 75, 64, 13, 2, 0, 70, 76, 65, 79, 76, 91, 5, + 70, 75, 0, 76, 75, 88, 9, 64, 66, 70, 4, 4, + 22, 0, 0, 0, 66, 93, 97, 4, 64, 67, 52, 7, 69, + 96, 78, 82, 2, 68, 78, 70, 83, 1, 78, 75, 72, + 92, 93, 93, 95, 22, 64, 7, 80, 64, 78, 71, 72, + 72, 86, 78, 90, 15, 72, 0, 85, 80, 67, 71, 2, + 8, 3, 1, 14, 11, 75, 65, 1, 65, 2, 74, 12, 64, + 10, 19, 6, 17, 17, 10, 73, 11, 1, 69, 1, 87, + 84, 72, 77, 67, 72, 69, 8, 67, 70, 0, 4, 71, + 72, 64, 91, 87, 72, 95, 67, 75, 8, 65, 73, 18, + 1, 65, 75, 19, 73, 83, 1, 93, 20, 27, 24, 22, + 27, 21, 8, 24, 24, 69, 6, 11, 4, 1, 73, 4, 64, + 66, 2, 67, 74, 1, 67, 88, 74, 73, 81, 76, 89, + 35, 41, 33, 34, 33, 27, 23, 27, 19, 12, 15, 6, + 68, 69, 91, 15, 12, 69, 12, 4, 3, 65, 70, 73, + 76, 79, 92, 73, 85, 98, 89, 100, 65, 32, 23, + 15, 5, 5, 64, 68, 72, 74, 6, 46, 30, 23, 17, + 28, 10, 4, 66, 67, 70, 36, 22, 12, 6, 12, 2, + 67, 71, 79, 77, 16, 4, 1, 66, 1, 72, 77, 82, + 0, 40, 23, 14, 7, 16, 3, 64, 66, 71, 62, 82, + 73, 64, 66, 69, 1, 7, 8, 65, 7, 13, 14, 77, + 71, 73, 1, 14, 0, 65, 7, 13, 18, 72, 64, 12, + 14, 80, 76, 80, 82, 77, 67, 75, 70, 72, 68, + 64, 73, 71, 70, 65, 76, 74, 81, 86, 69, 98, + 76, 64, 70, 8, 69, 65, 16, 67, 69, 66, 12, 74, + 73, 91, 30, 34, 35, 28, 18, 29, 25, 20, 19, + 17, 16, 12, 69, 70, 77, 3, 4, 67, 83, 68, 69, + 75, 75, 75, 73, 74, 88, 85, 87, 33, 32, 31, + 26, 16, 20, 17, 6, 11, 5, 4, 70, 72, 76, 81, + 14, 16, 69, 14, 15, 5, 64, 64, 66, 69, 68, 73, + 81, 83, 87, 91, 100, 77, 87, 95, 89, 75, 81, + 65, 64, 0, 40, 10, 9, 68, 19, 51, 37, 57, 9, + 35, 29, 6, 74, 82, 87, 113, 113, 116, 69, 42, + 28, 19, 9, 12, 2, 65, 68, 75, 80, 73, 1, 68, + 8, 9, 1, 3, 9, 12, 13, 7, 16, 15, 1, 35, 31, + 21, 14, 8, 2, 83, 88, 92 }, + + { + + 41, + 6, 79, 41, 6, 79, 74, 3, 22, 11, 64, 76, 18, + 24, 53, 14, 15, 66, 10, 19, 0, 71, 65, 81, 97, + 4, 9, 115, 120, 120, 23, 66, 68, 10, 19, 0, + 74, 0, 14, 2, 0, 69, 75, 66, 80, 76, 91, 5, + 70, 75, 0, 76, 75, 88, 10, 64, 66, 70, 5, 4, + 22, 0, 0, 0, 66, 93, 97, 5, 65, 67, 52, 7, 69, + 95, 77, 82, 3, 67, 76, 68, 82, 2, 76, 74, 70, + 91, 92, 92, 94, 23, 64, 8, 79, 64, 78, 71, 70, + 72, 85, 77, 89, 15, 72, 1, 83, 79, 66, 71, 2, + 8, 3, 2, 15, 12, 76, 65, 1, 65, 2, 74, 12, 65, + 10, 19, 5, 17, 17, 10, 75, 11, 0, 71, 0, 88, + 83, 71, 76, 66, 71, 69, 9, 67, 69, 1, 5, 71, + 72, 64, 92, 87, 71, 95, 67, 75, 9, 65, 74, 19, + 1, 65, 76, 20, 73, 84, 1, 94, 18, 26, 23, 21, + 26, 20, 8, 23, 23, 70, 5, 11, 4, 1, 74, 3, 65, + 67, 1, 68, 75, 0, 67, 90, 75, 73, 82, 77, 89, + 34, 39, 32, 32, 31, 25, 21, 25, 16, 9, 13, 3, + 70, 72, 93, 13, 10, 70, 10, 2, 0, 68, 72, 76, + 78, 81, 95, 74, 87, 99, 90, 100, 65, 33, 23, + 15, 5, 5, 64, 68, 72, 74, 6, 46, 30, 23, 17, + 29, 10, 4, 65, 67, 69, 37, 22, 13, 6, 13, 2, + 66, 71, 78, 76, 17, 5, 2, 66, 2, 71, 76, 81, + 0, 40, 23, 14, 7, 17, 3, 0, 65, 70, 62, 81, + 72, 64, 66, 69, 1, 7, 8, 65, 7, 13, 14, 77, + 71, 73, 1, 15, 64, 66, 6, 12, 18, 73, 65, 12, + 14, 80, 77, 80, 81, 76, 66, 74, 70, 71, 68, 0, + 73, 71, 70, 64, 76, 74, 81, 85, 68, 98, 76, + 64, 70, 9, 69, 65, 17, 67, 69, 66, 13, 75, 73, + 92, 29, 33, 34, 27, 17, 28, 24, 19, 18, 16, + 15, 11, 70, 71, 78, 1, 3, 68, 85, 70, 70, 76, + 75, 76, 73, 74, 88, 85, 86, 31, 30, 29, 24, + 13, 18, 15, 3, 9, 3, 2, 73, 74, 78, 82, 12, + 15, 71, 12, 13, 3, 66, 66, 68, 71, 70, 75, 84, + 85, 89, 93, 101, 79, 89, 96, 88, 74, 80, 64, + 0, 1, 41, 11, 10, 68, 20, 52, 39, 58, 10, 33, + 28, 3, 77, 85, 90, 116, 115, 117, 69, 42, 28, + 19, 9, 12, 2, 65, 68, 75, 79, 72, 2, 67, 9, 9, + 1, 4, 9, 12, 13, 7, 16, 15, 1, 34, 29, 19, 12, + 6, 0, 85, 90, 93 }, + + { + + 40, + 6, 79, 40, 6, 79, 72, 4, 22, 11, 64, 77, 17, + 23, 53, 14, 17, 66, 11, 20, 0, 72, 65, 82, 98, + 3, 7, 117, 121, 121, 26, 65, 68, 11, 20, 0, + 74, 1, 14, 1, 0, 69, 74, 66, 80, 76, 91, 5, + 70, 74, 0, 76, 75, 88, 10, 64, 66, 70, 5, 4, + 22, 0, 0, 0, 65, 93, 97, 5, 66, 67, 52, 7, 69, + 94, 76, 82, 3, 66, 74, 66, 80, 3, 74, 73, 68, + 90, 91, 91, 93, 24, 64, 9, 78, 64, 77, 70, 68, + 72, 85, 77, 88, 15, 72, 1, 82, 79, 65, 71, 2, + 8, 3, 3, 15, 12, 76, 65, 1, 65, 2, 74, 12, 65, + 9, 19, 4, 17, 17, 10, 77, 11, 0, 73, 64, 89, + 82, 70, 75, 65, 70, 68, 10, 66, 69, 2, 6, 71, + 72, 64, 93, 86, 70, 95, 67, 75, 10, 65, 75, + 20, 1, 65, 77, 21, 74, 85, 1, 95, 17, 25, 23, + 20, 25, 19, 7, 22, 23, 71, 4, 11, 4, 1, 74, 2, + 66, 68, 0, 69, 76, 64, 68, 92, 76, 74, 83, 78, + 89, 32, 38, 30, 30, 29, 23, 19, 23, 14, 7, 11, + 1, 73, 74, 96, 11, 8, 72, 8, 0, 65, 70, 74, + 78, 81, 83, 97, 75, 89, 100, 91, 100, 65, 33, + 23, 15, 5, 5, 64, 68, 72, 73, 6, 46, 30, 23, + 17, 30, 11, 5, 65, 66, 68, 38, 23, 13, 6, 14, + 3, 66, 70, 77, 75, 18, 6, 2, 66, 3, 70, 75, + 80, 1, 40, 23, 14, 7, 18, 4, 1, 64, 69, 62, + 81, 72, 0, 66, 69, 1, 7, 8, 65, 7, 13, 15, 77, + 71, 73, 0, 15, 65, 67, 5, 11, 18, 74, 66, 12, + 14, 81, 78, 81, 80, 75, 65, 74, 69, 71, 67, 1, + 73, 71, 70, 64, 77, 74, 81, 85, 67, 98, 76, + 64, 70, 10, 69, 65, 18, 67, 69, 66, 14, 76, + 73, 93, 28, 33, 34, 26, 16, 27, 23, 18, 17, + 15, 14, 10, 71, 72, 79, 0, 2, 70, 87, 71, 71, + 77, 76, 76, 73, 74, 88, 86, 85, 29, 28, 27, + 22, 10, 16, 13, 1, 7, 1, 0, 75, 76, 79, 83, + 10, 13, 72, 10, 11, 1, 68, 68, 70, 73, 72, 77, + 86, 87, 91, 95, 102, 81, 91, 98, 87, 73, 79, + 0, 1, 2, 43, 12, 11, 68, 21, 54, 40, 60, 11, + 32, 26, 1, 80, 88, 93, 119, 117, 118, 69, 42, + 28, 19, 9, 12, 2, 65, 68, 74, 78, 71, 3, 66, + 10, 10, 2, 5, 10, 13, 14, 7, 17, 15, 1, 33, + 28, 17, 10, 4, 65, 87, 92, 94 }, + + { + + 38, + 5, 80, 38, 5, 80, 71, 5, 22, 11, 65, 79, 15, + 21, 52, 14, 19, 67, 11, 20, 64, 73, 65, 84, + 100, 2, 5, 119, 122, 122, 28, 64, 69, 11, 20, + 64, 74, 2, 14, 0, 0, 69, 74, 67, 81, 76, 92, + 5, 70, 74, 64, 77, 75, 88, 10, 64, 66, 70, 5, + 3, 22, 0, 0, 0, 65, 94, 97, 5, 67, 68, 52, 6, + 69, 93, 76, 82, 3, 65, 73, 65, 79, 4, 73, 72, + 67, 89, 91, 90, 93, 24, 64, 9, 78, 64, 77, 70, + 67, 72, 85, 77, 87, 15, 72, 1, 81, 79, 65, 71, + 2, 8, 3, 3, 15, 12, 77, 66, 1, 66, 2, 74, 11, + 66, 8, 19, 3, 16, 17, 9, 79, 10, 64, 75, 65, + 90, 82, 70, 75, 65, 70, 68, 11, 66, 69, 2, 7, + 72, 72, 64, 95, 86, 70, 95, 67, 76, 10, 65, + 76, 20, 1, 65, 79, 21, 75, 86, 1, 96, 15, 24, + 22, 19, 24, 18, 6, 21, 22, 73, 3, 10, 3, 1, + 75, 1, 67, 69, 64, 70, 77, 65, 69, 94, 78, 75, + 85, 80, 89, 30, 36, 28, 28, 27, 20, 16, 20, + 11, 4, 8, 65, 76, 77, 99, 9, 6, 74, 5, 66, 68, + 73, 77, 81, 84, 86, 100, 76, 91, 102, 92, 101, + 65, 33, 23, 15, 5, 5, 65, 68, 72, 73, 6, 46, + 30, 23, 17, 31, 11, 5, 65, 66, 68, 38, 23, 13, + 6, 14, 3, 66, 70, 76, 75, 19, 6, 2, 66, 3, 70, + 75, 79, 1, 40, 23, 14, 7, 18, 4, 1, 64, 69, + 62, 81, 72, 0, 66, 69, 1, 7, 8, 65, 7, 13, 15, + 77, 71, 74, 64, 15, 66, 68, 4, 10, 17, 76, 68, + 11, 13, 82, 80, 82, 80, 75, 64, 74, 69, 71, + 67, 1, 74, 71, 70, 64, 78, 74, 81, 85, 67, 99, + 76, 64, 70, 10, 70, 65, 18, 68, 70, 66, 14, + 77, 74, 94, 27, 32, 33, 25, 14, 26, 22, 17, + 16, 14, 13, 9, 72, 74, 81, 65, 0, 72, 89, 73, + 73, 78, 77, 77, 73, 74, 88, 87, 85, 26, 25, + 25, 19, 7, 13, 10, 65, 4, 65, 66, 78, 79, 81, + 84, 8, 11, 74, 8, 8, 65, 71, 71, 73, 75, 75, + 80, 89, 89, 94, 97, 104, 83, 93, 100, 86, 72, + 78, 0, 1, 2, 44, 12, 11, 68, 21, 55, 41, 61, + 11, 30, 24, 65, 84, 91, 96, 122, 120, 120, 69, + 42, 27, 18, 9, 12, 2, 66, 68, 74, 78, 71, 3, + 66, 11, 10, 2, 5, 10, 13, 14, 7, 17, 15, 0, + 31, 26, 15, 8, 2, 67, 90, 94, 95 }, + + { + + 37, + 5, 80, 37, 5, 80, 69, 7, 23, 12, 65, 80, 14, + 20, 52, 14, 22, 67, 12, 21, 64, 73, 64, 85, + 101, 2, 4, 120, 123, 122, 31, 1, 69, 12, 21, + 64, 73, 4, 15, 0, 1, 68, 73, 67, 81, 75, 92, + 5, 69, 73, 64, 77, 74, 88, 11, 0, 65, 69, 6, + 3, 22, 0, 0, 0, 64, 94, 97, 6, 67, 68, 52, 6, + 69, 91, 75, 82, 4, 0, 71, 0, 77, 6, 71, 70, + 65, 87, 90, 89, 92, 25, 0, 10, 77, 0, 76, 69, + 65, 71, 84, 76, 85, 16, 71, 2, 79, 78, 64, 70, + 3, 9, 4, 4, 16, 13, 77, 66, 2, 66, 2, 73, 11, + 66, 8, 19, 3, 16, 17, 9, 80, 10, 64, 76, 66, + 90, 81, 69, 74, 64, 69, 67, 12, 65, 68, 3, 9, + 72, 72, 0, 96, 85, 69, 95, 66, 76, 11, 64, 76, + 21, 1, 65, 80, 22, 75, 87, 1, 96, 14, 24, 22, + 19, 24, 18, 6, 21, 22, 74, 3, 10, 3, 1, 75, 1, + 67, 69, 64, 70, 78, 65, 69, 95, 79, 75, 86, + 81, 89, 29, 35, 27, 27, 26, 18, 14, 18, 9, 2, + 6, 67, 78, 79, 101, 8, 5, 75, 3, 68, 70, 75, + 79, 83, 86, 88, 102, 76, 92, 103, 92, 101, 64, + 34, 24, 16, 6, 5, 65, 67, 71, 72, 7, 47, 31, + 24, 17, 32, 12, 6, 64, 65, 67, 39, 24, 14, 7, + 15, 4, 65, 69, 74, 74, 21, 7, 3, 65, 4, 69, + 74, 77, 2, 41, 24, 15, 8, 19, 5, 2, 0, 68, 62, + 80, 71, 1, 66, 68, 1, 8, 9, 64, 8, 14, 16, 76, + 71, 74, 64, 16, 66, 68, 3, 10, 17, 77, 69, 11, + 13, 82, 81, 82, 79, 74, 0, 73, 68, 70, 66, 2, + 74, 70, 69, 0, 78, 73, 80, 84, 66, 99, 76, 0, + 70, 11, 70, 65, 19, 68, 70, 65, 15, 77, 74, + 94, 27, 32, 33, 25, 13, 26, 22, 17, 16, 14, + 13, 9, 72, 75, 82, 66, 64, 73, 90, 74, 74, 78, + 77, 77, 72, 73, 87, 87, 84, 24, 23, 23, 17, 5, + 11, 8, 67, 2, 67, 68, 80, 81, 82, 84, 7, 10, + 75, 7, 6, 67, 73, 73, 75, 77, 77, 82, 91, 90, + 96, 98, 105, 84, 94, 101, 84, 70, 76, 1, 2, 3, + 46, 13, 12, 68, 22, 57, 43, 62, 12, 29, 23, + 67, 87, 93, 98, 124, 122, 121, 68, 43, 27, 18, + 9, 13, 2, 66, 68, 73, 77, 70, 4, 65, 13, 11, + 3, 6, 11, 14, 15, 8, 18, 16, 0, 30, 25, 14, 7, + 1, 68, 92, 95, 95 }, + + { + + 36, + 5, 80, 36, 5, 80, 67, 8, 23, 12, 65, 81, 13, + 19, 52, 14, 24, 67, 13, 22, 64, 74, 64, 86, + 102, 1, 2, 122, 124, 123, 34, 2, 69, 13, 22, + 64, 73, 5, 15, 64, 1, 68, 72, 67, 81, 75, 92, + 5, 69, 72, 64, 77, 74, 88, 11, 0, 65, 69, 6, + 3, 22, 0, 0, 0, 0, 94, 97, 6, 68, 68, 52, 6, + 69, 90, 74, 82, 4, 1, 69, 2, 76, 7, 69, 69, 0, + 86, 89, 88, 91, 26, 0, 11, 76, 0, 76, 68, 0, + 71, 84, 76, 84, 16, 71, 2, 78, 78, 0, 70, 3, + 9, 4, 5, 16, 13, 78, 66, 2, 66, 2, 73, 11, 66, + 7, 19, 2, 16, 17, 9, 82, 10, 64, 78, 67, 91, + 80, 68, 73, 0, 68, 66, 13, 64, 68, 4, 10, 72, + 72, 0, 97, 85, 68, 95, 66, 76, 12, 64, 77, 22, + 1, 65, 81, 23, 76, 88, 1, 97, 12, 23, 21, 18, + 23, 17, 5, 20, 22, 75, 2, 10, 3, 1, 75, 0, 68, + 70, 65, 71, 79, 66, 70, 97, 80, 76, 87, 82, + 89, 27, 34, 25, 25, 24, 16, 12, 16, 6, 0, 4, + 70, 81, 81, 104, 6, 3, 77, 1, 70, 72, 77, 81, + 85, 89, 90, 104, 77, 94, 104, 93, 101, 64, 34, + 24, 16, 6, 5, 65, 67, 71, 71, 7, 47, 31, 24, + 17, 33, 12, 7, 64, 64, 66, 40, 25, 14, 7, 16, + 4, 65, 68, 73, 73, 22, 8, 3, 65, 5, 68, 73, + 76, 2, 41, 24, 15, 8, 20, 6, 3, 1, 67, 62, 80, + 71, 1, 66, 68, 1, 8, 9, 64, 8, 14, 17, 76, 71, + 74, 65, 16, 67, 69, 2, 9, 17, 78, 70, 11, 13, + 83, 82, 83, 78, 73, 1, 73, 68, 70, 65, 3, 74, + 70, 69, 0, 79, 73, 80, 84, 65, 99, 76, 0, 70, + 12, 70, 65, 20, 68, 70, 65, 16, 78, 74, 95, + 26, 32, 33, 24, 12, 25, 21, 16, 15, 13, 12, 8, + 73, 76, 83, 68, 65, 75, 92, 75, 75, 79, 78, + 77, 72, 73, 87, 88, 83, 22, 21, 21, 15, 2, 9, + 6, 70, 0, 69, 70, 82, 83, 83, 85, 5, 8, 76, 5, + 4, 69, 75, 75, 77, 79, 79, 84, 93, 92, 98, + 100, 106, 86, 96, 103, 83, 69, 75, 2, 3, 4, + 48, 14, 13, 68, 23, 58, 44, 62, 13, 28, 21, + 70, 90, 96, 101, 126, 124, 122, 68, 43, 27, + 18, 9, 13, 2, 66, 68, 72, 76, 69, 5, 64, 14, + 12, 4, 7, 12, 15, 16, 8, 19, 16, 0, 29, 23, + 12, 5, 64, 70, 94, 97, 96 }, + + { + + 35, + 5, 80, 35, 5, 80, 65, 10, 24, 12, 66, 83, 11, + 18, 52, 14, 26, 67, 14, 23, 64, 75, 64, 87, + 103, 1, 0, 123, 125, 123, 37, 3, 69, 14, 23, + 64, 72, 6, 16, 64, 1, 67, 71, 68, 82, 75, 92, + 5, 69, 72, 64, 77, 74, 88, 12, 0, 65, 69, 7, + 3, 22, 0, 0, 0, 0, 94, 97, 7, 69, 68, 52, 6, + 69, 89, 73, 82, 5, 2, 67, 4, 74, 8, 67, 68, 2, + 85, 88, 87, 90, 27, 0, 12, 75, 0, 75, 68, 2, + 71, 83, 75, 83, 16, 71, 3, 76, 77, 1, 70, 3, + 9, 4, 6, 17, 14, 78, 66, 2, 66, 2, 73, 11, 67, + 7, 19, 1, 16, 17, 9, 84, 10, 65, 80, 68, 92, + 79, 67, 72, 1, 67, 66, 14, 64, 67, 5, 11, 72, + 72, 0, 98, 84, 67, 95, 66, 76, 13, 64, 78, 23, + 1, 65, 82, 24, 76, 89, 1, 98, 11, 22, 21, 17, + 22, 16, 5, 19, 21, 76, 1, 10, 3, 1, 76, 64, + 69, 71, 66, 72, 80, 67, 70, 99, 81, 76, 88, + 83, 89, 26, 32, 24, 23, 22, 14, 10, 14, 4, 66, + 2, 72, 83, 84, 106, 4, 1, 78, 64, 72, 75, 80, + 83, 88, 91, 92, 107, 78, 96, 105, 94, 101, 64, + 35, 24, 16, 6, 5, 65, 67, 71, 71, 7, 47, 31, + 24, 17, 34, 13, 7, 0, 64, 65, 41, 25, 15, 7, + 17, 5, 64, 68, 72, 72, 23, 9, 4, 65, 6, 67, + 72, 75, 3, 41, 24, 15, 8, 21, 6, 4, 2, 66, 62, + 79, 70, 2, 66, 68, 1, 8, 9, 64, 8, 14, 17, 76, + 71, 74, 65, 17, 68, 70, 1, 8, 17, 79, 71, 11, + 13, 83, 83, 83, 77, 72, 2, 72, 67, 69, 65, 4, + 74, 70, 69, 1, 79, 73, 80, 83, 64, 99, 76, 0, + 70, 13, 70, 65, 21, 68, 70, 65, 17, 79, 74, + 96, 25, 31, 32, 23, 11, 24, 20, 15, 14, 12, + 11, 7, 74, 77, 84, 69, 66, 76, 94, 77, 76, 80, + 78, 78, 72, 73, 87, 88, 82, 20, 19, 19, 13, + 64, 7, 4, 72, 65, 71, 72, 85, 85, 85, 86, 3, + 7, 78, 3, 2, 71, 77, 77, 79, 81, 81, 86, 96, + 94, 100, 102, 107, 88, 98, 104, 82, 68, 74, 3, + 4, 5, 49, 15, 14, 68, 24, 60, 46, 62, 14, 26, + 20, 72, 93, 99, 104, 126, 126, 123, 68, 43, + 27, 18, 9, 13, 2, 66, 68, 72, 75, 68, 6, 0, + 15, 12, 4, 8, 12, 15, 16, 8, 19, 16, 0, 28, + 22, 10, 3, 66, 72, 96, 99, 97 }, + + { + + 33, + 5, 80, 33, 5, 80, 64, 11, 24, 12, 66, 84, 10, + 16, 52, 14, 29, 68, 15, 23, 64, 76, 64, 88, + 104, 0, 65, 125, 126, 124, 40, 4, 69, 15, 23, + 64, 72, 7, 16, 65, 1, 67, 71, 68, 82, 74, 92, + 5, 69, 71, 65, 78, 74, 88, 12, 1, 65, 68, 7, + 3, 22, 0, 0, 0, 1, 95, 97, 7, 70, 68, 52, 6, + 69, 88, 72, 82, 5, 4, 66, 6, 73, 9, 66, 66, 4, + 84, 88, 86, 90, 27, 0, 13, 74, 0, 75, 67, 4, + 71, 83, 75, 82, 16, 70, 3, 75, 77, 1, 70, 4, + 9, 4, 6, 17, 14, 79, 67, 2, 66, 2, 73, 11, 67, + 6, 19, 1, 16, 17, 8, 86, 10, 65, 82, 69, 93, + 78, 66, 71, 2, 67, 65, 15, 0, 67, 6, 12, 72, + 72, 1, 99, 84, 66, 95, 66, 76, 13, 64, 79, 24, + 1, 65, 84, 25, 77, 90, 1, 99, 9, 21, 20, 16, + 21, 15, 4, 18, 21, 78, 0, 9, 3, 1, 76, 65, 69, + 72, 66, 73, 81, 68, 71, 101, 82, 77, 89, 84, + 89, 24, 31, 22, 21, 20, 12, 7, 12, 1, 68, 0, + 75, 86, 86, 109, 2, 0, 80, 67, 74, 77, 82, 86, + 90, 94, 94, 109, 79, 97, 107, 95, 101, 64, 35, + 25, 16, 6, 5, 65, 67, 71, 70, 8, 48, 31, 24, + 17, 35, 13, 8, 0, 0, 65, 42, 26, 15, 7, 17, 5, + 64, 67, 71, 72, 24, 9, 4, 65, 7, 66, 72, 74, + 3, 42, 24, 15, 8, 22, 7, 4, 3, 65, 62, 79, 70, + 2, 66, 68, 1, 8, 9, 0, 8, 14, 18, 76, 71, 74, + 66, 17, 69, 71, 0, 7, 17, 81, 72, 10, 13, 84, + 84, 84, 77, 72, 3, 72, 67, 69, 64, 5, 75, 70, + 69, 1, 80, 73, 80, 83, 0, 99, 76, 1, 70, 13, + 70, 65, 22, 68, 71, 65, 18, 79, 75, 97, 24, + 31, 32, 22, 10, 23, 19, 14, 13, 11, 10, 6, 75, + 78, 85, 71, 68, 78, 96, 78, 77, 81, 79, 78, + 72, 73, 87, 89, 82, 17, 16, 17, 10, 67, 5, 2, + 75, 67, 73, 74, 87, 87, 86, 87, 1, 5, 79, 1, + 0, 73, 79, 80, 81, 83, 83, 88, 98, 96, 102, + 104, 108, 90, 100, 106, 81, 67, 73, 3, 5, 6, + 51, 16, 15, 68, 25, 61, 47, 62, 14, 25, 18, + 75, 96, 102, 107, 126, 126, 124, 68, 43, 27, + 18, 9, 13, 2, 66, 68, 71, 74, 67, 7, 0, 16, + 13, 5, 9, 13, 16, 17, 9, 20, 17, 0, 26, 20, 8, + 1, 68, 74, 98, 101, 98 }, + + { + + 32, + 5, 80, 32, 5, 80, 1, 13, 24, 12, 67, 86, 8, + 15, 52, 14, 31, 68, 16, 24, 64, 76, 0, 89, + 105, 0, 67, 126, 126, 124, 43, 6, 69, 16, 24, + 64, 72, 8, 16, 65, 1, 67, 70, 68, 83, 74, 92, + 5, 69, 70, 65, 78, 74, 88, 13, 1, 64, 68, 8, + 3, 22, 0, 0, 0, 1, 95, 97, 8, 71, 68, 52, 6, + 69, 87, 71, 82, 6, 5, 64, 8, 71, 10, 64, 65, + 6, 83, 87, 85, 89, 28, 0, 14, 73, 0, 74, 66, + 6, 71, 83, 74, 80, 17, 70, 4, 74, 76, 2, 70, + 4, 10, 5, 7, 18, 15, 79, 67, 2, 66, 2, 73, 11, + 68, 5, 19, 0, 16, 17, 8, 88, 10, 66, 83, 70, + 94, 77, 65, 70, 3, 66, 64, 16, 1, 66, 7, 13, + 72, 72, 1, 100, 83, 65, 95, 65, 76, 14, 64, + 80, 25, 1, 65, 85, 26, 77, 91, 1, 99, 8, 20, + 20, 15, 20, 14, 3, 18, 21, 79, 64, 9, 3, 1, + 77, 65, 70, 73, 67, 74, 82, 68, 72, 103, 83, + 78, 90, 85, 89, 22, 30, 20, 19, 19, 10, 5, 10, + 64, 70, 65, 77, 88, 88, 111, 0, 65, 82, 69, + 76, 79, 84, 88, 92, 97, 96, 112, 80, 99, 108, + 95, 101, 64, 35, 25, 16, 6, 5, 65, 67, 71, 70, + 8, 48, 31, 24, 17, 36, 14, 9, 0, 1, 64, 43, + 27, 15, 8, 18, 6, 0, 67, 70, 71, 26, 10, 4, + 64, 8, 65, 71, 73, 4, 42, 25, 15, 8, 23, 8, 5, + 4, 64, 62, 79, 70, 3, 66, 68, 1, 8, 9, 0, 8, + 15, 18, 76, 71, 74, 67, 18, 70, 72, 64, 7, 17, + 82, 73, 10, 13, 85, 85, 84, 76, 71, 4, 71, 66, + 68, 64, 6, 75, 70, 69, 1, 81, 73, 80, 82, 1, + 99, 76, 1, 70, 14, 70, 65, 23, 68, 71, 65, 19, + 80, 75, 97, 23, 31, 31, 22, 9, 22, 18, 13, 13, + 10, 9, 5, 76, 79, 86, 72, 69, 79, 98, 79, 78, + 82, 80, 79, 72, 72, 87, 89, 81, 15, 14, 15, 8, + 69, 3, 0, 77, 69, 75, 76, 89, 89, 88, 88, 64, + 3, 80, 64, 65, 75, 81, 82, 83, 85, 85, 90, + 101, 98, 104, 106, 109, 92, 102, 107, 80, 65, + 72, 4, 6, 7, 53, 17, 16, 68, 26, 62, 49, 62, + 15, 23, 16, 77, 99, 104, 110, 126, 126, 125, + 68, 43, 27, 18, 9, 13, 2, 66, 68, 71, 73, 66, + 8, 1, 17, 14, 5, 10, 14, 17, 18, 9, 20, 17, 0, + 25, 19, 7, 0, 70, 76, 100, 103, 99 }, + + { + + 31, + 5, 81, 31, 5, 81, 3, 14, 25, 12, 67, 87, 7, + 14, 52, 14, 33, 68, 16, 25, 64, 77, 0, 90, + 106, 64, 68, 126, 126, 125, 46, 7, 69, 16, 25, + 64, 71, 9, 17, 66, 2, 66, 69, 69, 83, 74, 92, + 5, 68, 70, 65, 78, 73, 88, 13, 1, 64, 68, 8, + 3, 22, 0, 0, 0, 2, 95, 97, 8, 71, 69, 52, 6, + 69, 86, 71, 82, 6, 6, 1, 10, 70, 11, 1, 64, 8, + 82, 86, 84, 88, 29, 0, 15, 73, 1, 74, 66, 8, + 71, 82, 74, 79, 17, 70, 4, 72, 76, 3, 69, 4, + 10, 5, 8, 18, 15, 80, 67, 2, 66, 2, 73, 11, + 68, 5, 19, 64, 16, 17, 8, 90, 10, 66, 85, 71, + 95, 77, 64, 70, 3, 65, 64, 17, 1, 66, 7, 15, + 72, 72, 1, 101, 83, 64, 95, 65, 76, 15, 0, 81, + 25, 1, 65, 86, 27, 78, 92, 1, 100, 6, 19, 19, + 15, 19, 14, 3, 17, 20, 80, 65, 9, 3, 1, 77, + 66, 71, 74, 68, 74, 83, 69, 72, 105, 84, 78, + 91, 86, 89, 21, 28, 19, 17, 17, 8, 3, 8, 67, + 73, 67, 80, 91, 91, 114, 65, 67, 83, 71, 79, + 82, 87, 90, 95, 99, 99, 114, 81, 101, 109, 96, + 101, 0, 36, 25, 17, 6, 5, 65, 67, 71, 69, 8, + 48, 32, 24, 17, 37, 14, 9, 1, 1, 0, 44, 27, + 16, 8, 19, 6, 0, 66, 69, 70, 27, 11, 5, 64, 8, + 65, 70, 71, 4, 42, 25, 15, 9, 23, 8, 6, 4, 0, + 62, 78, 69, 3, 66, 68, 1, 8, 9, 0, 9, 15, 19, + 76, 71, 75, 67, 18, 71, 73, 65, 6, 17, 83, 74, + 10, 13, 85, 86, 85, 75, 70, 5, 71, 66, 68, 0, + 6, 75, 69, 68, 2, 81, 73, 80, 82, 2, 99, 76, + 1, 70, 15, 70, 65, 24, 69, 71, 65, 19, 81, 75, + 98, 22, 30, 31, 21, 8, 22, 18, 12, 12, 10, 8, + 4, 77, 80, 87, 74, 70, 81, 100, 81, 80, 83, + 80, 79, 72, 72, 86, 90, 80, 13, 12, 13, 6, 72, + 1, 65, 80, 71, 78, 78, 92, 91, 89, 88, 65, 2, + 82, 66, 68, 77, 83, 84, 85, 87, 88, 92, 103, + 100, 106, 107, 111, 94, 104, 109, 79, 64, 71, + 5, 7, 8, 54, 18, 17, 68, 27, 62, 50, 62, 16, + 22, 15, 80, 102, 107, 112, 126, 126, 126, 67, + 43, 27, 18, 9, 13, 2, 66, 68, 70, 72, 66, 9, + 2, 18, 14, 6, 11, 14, 17, 18, 9, 21, 17, 0, + 24, 17, 5, 65, 71, 77, 103, 104, 100 }, + + { + + 30, + 5, 81, 30, 5, 81, 5, 16, 25, 12, 68, 89, 5, + 12, 52, 14, 36, 69, 17, 25, 64, 78, 0, 91, + 107, 64, 70, 126, 126, 125, 49, 8, 69, 17, 25, + 64, 71, 10, 17, 66, 2, 66, 69, 69, 84, 73, 92, + 5, 68, 69, 66, 78, 73, 88, 14, 2, 64, 67, 9, + 3, 22, 0, 0, 0, 2, 95, 97, 9, 72, 69, 52, 6, + 69, 85, 70, 82, 7, 8, 2, 12, 68, 12, 2, 1, 10, + 81, 85, 83, 88, 30, 0, 16, 72, 1, 73, 65, 10, + 71, 82, 73, 78, 17, 69, 5, 71, 75, 3, 69, 5, + 10, 5, 9, 19, 16, 80, 68, 2, 66, 2, 73, 11, + 69, 4, 19, 64, 16, 17, 7, 92, 10, 67, 87, 72, + 96, 76, 0, 69, 4, 64, 0, 18, 2, 65, 8, 16, 72, + 72, 2, 102, 82, 0, 95, 65, 76, 15, 0, 82, 26, + 1, 65, 88, 28, 78, 93, 1, 101, 5, 18, 19, 14, + 18, 13, 2, 16, 20, 81, 66, 9, 3, 1, 78, 67, + 71, 75, 68, 75, 84, 70, 73, 107, 85, 79, 92, + 87, 89, 19, 27, 17, 15, 15, 6, 0, 6, 69, 75, + 69, 82, 93, 93, 116, 67, 68, 85, 74, 81, 84, + 89, 93, 97, 102, 101, 117, 82, 102, 111, 97, + 101, 0, 36, 26, 17, 6, 5, 65, 67, 71, 69, 9, + 49, 32, 24, 17, 38, 15, 10, 1, 2, 1, 45, 28, + 16, 8, 20, 7, 1, 66, 68, 70, 28, 11, 5, 64, 9, + 64, 70, 70, 5, 43, 25, 15, 9, 24, 9, 7, 5, 1, + 62, 78, 69, 4, 66, 68, 1, 8, 9, 1, 9, 15, 19, + 76, 71, 75, 68, 19, 72, 74, 66, 5, 17, 84, 75, + 9, 13, 86, 87, 85, 74, 70, 6, 70, 65, 67, 0, + 7, 75, 69, 68, 2, 82, 73, 80, 81, 3, 99, 76, + 2, 70, 15, 70, 65, 25, 69, 71, 65, 20, 81, 76, + 99, 21, 30, 30, 20, 7, 21, 17, 11, 11, 9, 7, + 3, 78, 81, 88, 75, 72, 82, 102, 82, 81, 84, + 81, 80, 72, 72, 86, 90, 79, 11, 10, 11, 3, 75, + 64, 67, 82, 73, 80, 80, 94, 93, 91, 89, 67, 0, + 83, 68, 70, 79, 85, 86, 87, 89, 90, 94, 106, + 102, 108, 109, 112, 96, 106, 110, 78, 0, 70, + 5, 8, 9, 56, 19, 18, 68, 28, 62, 52, 62, 16, + 20, 13, 82, 105, 110, 115, 126, 126, 126, 67, + 43, 27, 18, 9, 13, 2, 66, 68, 70, 71, 65, 10, + 3, 19, 15, 6, 12, 15, 18, 19, 10, 21, 18, 0, + 22, 16, 3, 67, 73, 79, 105, 106, 101 }, + + { + + 28, + 4, 81, 28, 4, 81, 6, 17, 25, 12, 68, 90, 4, + 11, 52, 14, 38, 69, 18, 26, 64, 79, 0, 92, + 109, 65, 72, 126, 126, 126, 51, 9, 69, 18, 26, + 64, 71, 11, 17, 67, 2, 66, 68, 70, 84, 73, 93, + 5, 68, 69, 66, 79, 73, 88, 14, 2, 64, 67, 9, + 3, 22, 0, 0, 0, 3, 96, 97, 9, 73, 69, 52, 6, + 69, 84, 69, 82, 7, 9, 4, 14, 67, 13, 4, 2, 11, + 80, 85, 82, 87, 30, 0, 17, 71, 1, 73, 65, 11, + 71, 82, 73, 77, 17, 69, 5, 70, 75, 4, 69, 5, + 10, 5, 9, 19, 16, 81, 68, 2, 66, 2, 73, 11, + 69, 3, 19, 65, 16, 17, 7, 94, 10, 67, 89, 73, + 97, 75, 1, 68, 5, 64, 0, 19, 2, 65, 9, 17, 72, + 72, 2, 104, 82, 1, 95, 65, 77, 16, 0, 83, 27, + 1, 65, 89, 29, 79, 94, 1, 102, 3, 17, 18, 13, + 17, 12, 1, 15, 19, 83, 67, 8, 3, 1, 78, 68, + 72, 76, 69, 76, 85, 71, 74, 109, 87, 80, 93, + 88, 89, 17, 25, 15, 13, 13, 4, 65, 4, 72, 78, + 71, 85, 96, 96, 119, 69, 70, 87, 76, 83, 87, + 92, 95, 100, 105, 103, 119, 83, 104, 112, 98, + 102, 0, 36, 26, 17, 6, 5, 65, 67, 71, 68, 9, + 49, 32, 24, 17, 39, 15, 10, 1, 2, 1, 46, 28, + 16, 8, 20, 7, 1, 65, 67, 69, 29, 12, 5, 64, + 10, 0, 69, 69, 5, 43, 25, 15, 9, 25, 9, 7, 6, + 1, 62, 78, 69, 4, 66, 68, 1, 8, 9, 1, 9, 15, + 20, 76, 71, 75, 69, 19, 73, 75, 67, 4, 17, 86, + 77, 9, 13, 87, 88, 86, 74, 69, 7, 70, 65, 67, + 1, 8, 76, 69, 68, 2, 83, 73, 80, 81, 3, 100, + 76, 2, 70, 16, 70, 65, 25, 69, 72, 65, 21, 82, + 76, 100, 20, 29, 30, 19, 5, 20, 16, 10, 10, 8, + 6, 2, 79, 82, 89, 77, 73, 84, 104, 84, 82, 85, + 82, 80, 72, 72, 86, 91, 79, 8, 7, 9, 1, 78, + 67, 70, 85, 75, 82, 82, 97, 95, 92, 90, 69, + 65, 85, 70, 72, 82, 88, 89, 90, 91, 92, 97, + 108, 104, 111, 111, 113, 98, 108, 112, 77, 1, + 69, 6, 9, 9, 57, 20, 18, 68, 28, 62, 53, 62, + 17, 19, 11, 85, 108, 113, 118, 126, 126, 126, + 67, 43, 27, 18, 9, 13, 2, 66, 68, 69, 71, 64, + 11, 3, 20, 15, 7, 12, 15, 18, 19, 10, 22, 18, + 64, 21, 14, 1, 69, 75, 81, 107, 108, 102 }, + + { + + 27, + 4, 81, 27, 4, 81, 8, 18, 26, 12, 68, 91, 3, + 10, 52, 14, 40, 69, 19, 27, 64, 79, 1, 93, + 110, 66, 74, 126, 126, 126, 54, 11, 69, 19, + 27, 64, 70, 12, 18, 68, 2, 65, 67, 70, 84, 73, + 93, 5, 68, 68, 66, 79, 73, 88, 14, 2, 0, 67, + 9, 3, 22, 0, 0, 0, 4, 96, 97, 9, 74, 69, 52, + 6, 69, 83, 68, 82, 7, 10, 6, 16, 65, 15, 6, 3, + 13, 79, 84, 81, 86, 31, 1, 18, 70, 1, 72, 64, + 13, 71, 81, 73, 75, 18, 69, 5, 68, 75, 5, 69, + 5, 11, 6, 10, 19, 16, 81, 68, 3, 66, 2, 72, + 11, 69, 3, 19, 66, 16, 17, 7, 96, 10, 67, 90, + 74, 97, 74, 2, 67, 6, 0, 1, 20, 3, 65, 10, 18, + 72, 72, 2, 105, 81, 2, 95, 64, 77, 17, 0, 84, + 28, 1, 65, 90, 30, 80, 95, 1, 102, 2, 16, 18, + 12, 16, 11, 1, 15, 19, 84, 68, 8, 3, 1, 78, + 68, 73, 77, 70, 77, 86, 71, 74, 110, 88, 80, + 94, 89, 89, 16, 24, 14, 12, 12, 2, 67, 2, 74, + 80, 73, 87, 99, 98, 122, 70, 72, 88, 78, 85, + 89, 94, 97, 102, 107, 105, 121, 83, 106, 113, + 98, 102, 0, 37, 26, 17, 7, 5, 65, 66, 71, 67, + 9, 49, 32, 25, 17, 40, 16, 11, 2, 3, 2, 47, + 29, 17, 9, 21, 8, 1, 64, 66, 68, 31, 13, 6, 0, + 11, 1, 68, 68, 6, 43, 26, 16, 9, 26, 10, 8, 7, + 2, 62, 77, 68, 5, 66, 68, 1, 9, 10, 1, 9, 16, + 21, 76, 71, 75, 69, 19, 74, 75, 68, 4, 17, 87, + 78, 9, 13, 87, 89, 87, 73, 68, 8, 70, 64, 67, + 2, 9, 76, 69, 68, 3, 83, 73, 80, 81, 4, 100, + 76, 2, 70, 17, 70, 65, 26, 69, 72, 65, 22, 83, + 76, 100, 19, 29, 30, 19, 4, 19, 15, 9, 10, 7, + 5, 2, 79, 83, 90, 78, 74, 86, 106, 85, 83, 85, + 82, 80, 71, 71, 86, 92, 78, 6, 5, 7, 64, 80, + 69, 72, 87, 77, 84, 84, 99, 97, 93, 91, 71, + 66, 86, 72, 74, 84, 90, 91, 92, 93, 94, 99, + 110, 105, 113, 113, 114, 100, 110, 114, 76, 3, + 67, 7, 10, 10, 59, 21, 19, 68, 29, 62, 54, 62, + 18, 18, 10, 87, 111, 115, 121, 126, 126, 126, + 67, 43, 27, 18, 9, 14, 2, 66, 68, 68, 70, 0, + 12, 4, 22, 16, 8, 13, 16, 19, 20, 10, 23, 18, + 64, 20, 13, 0, 70, 77, 83, 109, 110, 102 }, + + { + + 26, + 4, 81, 26, 4, 81, 10, 20, 26, 12, 69, 93, 1, + 8, 52, 14, 43, 70, 20, 27, 64, 80, 1, 94, 111, + 66, 76, 126, 126, 126, 57, 12, 69, 20, 27, 64, + 70, 13, 18, 68, 2, 65, 67, 70, 85, 72, 93, 5, + 68, 67, 67, 79, 73, 88, 15, 3, 0, 66, 10, 3, + 22, 0, 0, 0, 4, 96, 97, 10, 75, 69, 52, 6, 69, + 82, 67, 82, 8, 12, 7, 18, 64, 16, 7, 5, 15, + 78, 83, 80, 86, 32, 1, 19, 69, 1, 72, 0, 15, + 71, 81, 72, 74, 18, 68, 6, 67, 74, 5, 69, 6, + 11, 6, 11, 20, 17, 82, 69, 3, 66, 2, 72, 11, + 70, 2, 19, 66, 16, 17, 6, 98, 10, 68, 92, 75, + 98, 73, 3, 66, 7, 1, 2, 21, 4, 64, 11, 19, 72, + 72, 3, 106, 81, 3, 95, 64, 77, 17, 0, 85, 29, + 1, 65, 92, 31, 80, 96, 1, 103, 0, 15, 17, 11, + 15, 10, 0, 14, 19, 85, 69, 8, 3, 1, 79, 69, + 73, 78, 70, 78, 87, 72, 75, 112, 89, 81, 95, + 90, 89, 14, 23, 12, 10, 10, 0, 70, 0, 77, 82, + 75, 90, 101, 100, 124, 72, 73, 90, 81, 87, 91, + 96, 100, 104, 110, 107, 124, 84, 107, 115, 99, + 102, 0, 37, 27, 17, 7, 5, 65, 66, 71, 67, 10, + 50, 32, 25, 17, 41, 16, 12, 2, 4, 3, 48, 30, + 17, 9, 22, 8, 2, 64, 65, 68, 32, 13, 6, 0, 12, + 2, 68, 67, 6, 44, 26, 16, 9, 27, 11, 9, 8, 3, + 62, 77, 68, 5, 66, 68, 1, 9, 10, 2, 9, 16, 21, + 76, 71, 75, 70, 20, 75, 76, 69, 3, 17, 88, 79, + 8, 13, 88, 90, 87, 72, 68, 9, 69, 64, 66, 2, + 10, 76, 69, 68, 3, 84, 73, 80, 80, 5, 100, 76, + 3, 70, 17, 70, 65, 27, 69, 72, 65, 23, 83, 77, + 101, 18, 29, 29, 18, 3, 18, 14, 8, 9, 6, 4, 1, + 80, 84, 91, 80, 76, 87, 108, 86, 84, 86, 83, + 81, 71, 71, 86, 92, 77, 4, 3, 5, 67, 83, 71, + 74, 90, 79, 86, 86, 101, 99, 95, 92, 73, 68, + 87, 74, 76, 86, 92, 93, 94, 95, 96, 101, 113, + 107, 115, 115, 115, 102, 112, 115, 75, 4, 66, + 7, 11, 11, 61, 22, 20, 68, 30, 62, 56, 62, 18, + 16, 8, 90, 114, 118, 124, 126, 126, 126, 67, + 43, 27, 18, 9, 14, 2, 66, 68, 68, 69, 1, 13, + 5, 23, 17, 8, 14, 17, 20, 21, 11, 23, 19, 64, + 18, 11, 65, 72, 79, 85, 111, 112, 103 }, + + { + + 25, + 4, 82, 25, 4, 82, 12, 21, 27, 12, 69, 94, 0, + 7, 52, 14, 45, 70, 20, 28, 64, 81, 1, 95, 112, + 67, 77, 126, 126, 126, 60, 13, 69, 20, 28, 64, + 69, 14, 19, 69, 3, 64, 66, 71, 85, 72, 93, 5, + 67, 67, 67, 79, 72, 88, 15, 3, 0, 66, 10, 3, + 22, 0, 0, 0, 5, 96, 97, 10, 75, 70, 52, 6, 69, + 81, 67, 82, 8, 13, 9, 20, 1, 17, 9, 6, 17, 77, + 82, 79, 85, 33, 1, 20, 69, 2, 71, 0, 17, 71, + 80, 72, 73, 18, 68, 6, 65, 74, 6, 68, 6, 11, + 6, 12, 20, 17, 82, 69, 3, 66, 2, 72, 11, 70, + 2, 19, 67, 16, 17, 6, 100, 10, 68, 94, 76, 99, + 73, 4, 66, 7, 2, 2, 22, 4, 64, 11, 21, 72, 72, + 3, 107, 80, 4, 95, 64, 77, 18, 1, 86, 29, 1, + 65, 93, 32, 81, 97, 1, 104, 64, 14, 17, 11, + 14, 10, 0, 13, 18, 86, 70, 8, 3, 1, 79, 70, + 74, 79, 71, 78, 88, 73, 75, 114, 90, 81, 96, + 91, 89, 13, 21, 11, 8, 8, 65, 72, 65, 79, 85, + 77, 92, 104, 103, 126, 74, 75, 91, 83, 90, 94, + 99, 102, 107, 112, 110, 126, 85, 109, 116, + 100, 102, 1, 38, 27, 18, 7, 5, 65, 66, 71, 66, + 10, 50, 33, 25, 17, 42, 17, 12, 3, 4, 4, 49, + 30, 18, 9, 23, 9, 2, 0, 64, 67, 33, 14, 7, 0, + 12, 2, 67, 65, 7, 44, 26, 16, 10, 27, 11, 10, + 8, 4, 62, 76, 67, 6, 66, 68, 1, 9, 10, 2, 10, + 16, 22, 76, 71, 76, 70, 20, 76, 77, 70, 2, 17, + 89, 80, 8, 13, 88, 91, 88, 71, 67, 10, 69, 0, + 66, 3, 10, 76, 68, 67, 4, 84, 73, 80, 80, 6, + 100, 76, 3, 70, 18, 70, 65, 28, 70, 72, 65, + 23, 84, 77, 102, 17, 28, 29, 17, 2, 18, 14, 7, + 8, 6, 3, 0, 81, 85, 92, 81, 77, 89, 110, 88, + 86, 87, 83, 81, 71, 71, 85, 93, 76, 2, 1, 3, + 69, 86, 73, 76, 92, 81, 89, 88, 104, 101, 96, + 92, 74, 69, 89, 76, 79, 88, 94, 95, 96, 97, + 99, 103, 115, 109, 117, 116, 117, 104, 114, + 117, 74, 5, 65, 8, 12, 12, 62, 23, 21, 68, 31, + 62, 57, 62, 19, 15, 7, 92, 117, 121, 126, 126, + 126, 126, 66, 43, 27, 18, 9, 14, 2, 66, 68, + 67, 68, 1, 14, 6, 24, 17, 9, 15, 17, 20, 21, + 11, 24, 19, 64, 17, 10, 67, 74, 80, 86, 114, + 113, 104 }, + + { + + 23, + 4, 82, 23, 4, 82, 13, 23, 27, 12, 70, 96, 65, + 6, 52, 14, 47, 70, 21, 29, 64, 82, 1, 96, 113, + 67, 79, 126, 126, 126, 62, 14, 69, 21, 29, 64, + 69, 15, 19, 69, 3, 64, 65, 71, 86, 72, 93, 5, + 67, 66, 67, 80, 72, 88, 16, 3, 0, 66, 11, 3, + 22, 0, 0, 0, 5, 97, 97, 11, 76, 70, 52, 6, 69, + 80, 66, 82, 9, 14, 11, 22, 2, 18, 11, 7, 19, + 76, 82, 78, 84, 33, 1, 21, 68, 2, 71, 1, 19, + 71, 80, 71, 72, 18, 68, 7, 64, 73, 7, 68, 6, + 11, 6, 12, 21, 18, 83, 69, 3, 66, 2, 72, 11, + 71, 1, 19, 68, 16, 17, 6, 102, 10, 69, 96, 77, + 100, 72, 5, 65, 8, 2, 3, 23, 5, 0, 12, 22, 72, + 72, 3, 108, 80, 5, 95, 64, 77, 19, 1, 87, 30, + 1, 65, 94, 33, 81, 98, 1, 105, 66, 13, 16, 10, + 13, 9, 64, 12, 18, 88, 71, 7, 3, 1, 80, 71, + 75, 80, 72, 79, 89, 74, 76, 116, 91, 82, 97, + 92, 89, 11, 20, 9, 6, 6, 67, 74, 67, 82, 87, + 79, 95, 106, 105, 126, 76, 77, 93, 85, 92, 96, + 101, 104, 109, 115, 112, 126, 86, 111, 117, + 101, 102, 1, 38, 27, 18, 7, 5, 65, 66, 71, 66, + 10, 50, 33, 25, 17, 43, 17, 13, 3, 5, 4, 50, + 31, 18, 9, 23, 9, 3, 0, 0, 66, 34, 15, 7, 0, + 13, 3, 66, 64, 7, 44, 26, 16, 10, 28, 12, 10, + 9, 5, 62, 76, 67, 6, 66, 68, 1, 9, 10, 2, 10, + 16, 22, 76, 71, 76, 71, 21, 77, 78, 71, 1, 17, + 91, 81, 8, 13, 89, 92, 88, 71, 66, 11, 68, 0, + 65, 3, 11, 77, 68, 67, 4, 85, 73, 80, 79, 7, + 100, 76, 3, 70, 19, 70, 65, 29, 70, 73, 65, + 24, 85, 77, 103, 16, 28, 28, 16, 1, 17, 13, 6, + 7, 5, 2, 64, 82, 86, 93, 83, 78, 90, 112, 89, + 87, 88, 84, 82, 71, 71, 85, 93, 76, 64, 65, 1, + 71, 89, 75, 78, 95, 83, 91, 90, 106, 103, 98, + 93, 76, 71, 90, 78, 81, 90, 96, 98, 98, 99, + 101, 105, 118, 111, 119, 118, 118, 106, 116, + 118, 73, 6, 64, 9, 13, 13, 62, 24, 22, 68, 32, + 62, 59, 62, 20, 13, 5, 95, 120, 124, 126, 126, + 126, 126, 66, 43, 27, 18, 9, 14, 2, 66, 68, + 67, 67, 2, 15, 6, 25, 18, 9, 16, 18, 21, 22, + 11, 24, 19, 64, 16, 8, 69, 76, 82, 88, 116, + 115, 105 }, + + { + + 22, + 4, 82, 22, 4, 82, 15, 24, 27, 12, 70, 97, 66, + 4, 52, 14, 50, 71, 22, 29, 64, 82, 2, 97, 114, + 68, 81, 126, 126, 126, 62, 16, 69, 22, 29, 64, + 69, 16, 19, 70, 3, 64, 65, 71, 86, 71, 93, 5, + 67, 65, 68, 80, 72, 88, 16, 4, 1, 65, 11, 3, + 22, 0, 0, 0, 6, 97, 97, 11, 77, 70, 52, 6, 69, + 79, 65, 82, 9, 16, 12, 24, 4, 19, 12, 9, 21, + 75, 81, 77, 84, 34, 1, 22, 67, 2, 70, 2, 21, + 71, 80, 71, 70, 19, 67, 7, 0, 73, 7, 68, 7, + 12, 7, 13, 21, 18, 83, 70, 3, 66, 2, 72, 11, + 71, 0, 19, 68, 16, 17, 5, 104, 10, 69, 97, 78, + 101, 71, 6, 64, 9, 3, 4, 24, 6, 0, 13, 23, 72, + 72, 4, 109, 79, 6, 95, 0, 77, 19, 1, 88, 31, + 1, 65, 96, 34, 82, 99, 1, 105, 67, 12, 16, 9, + 12, 8, 65, 12, 18, 89, 72, 7, 3, 1, 80, 71, + 75, 81, 72, 80, 90, 74, 77, 118, 92, 83, 98, + 93, 89, 9, 19, 7, 4, 5, 69, 77, 69, 84, 89, + 81, 97, 109, 107, 126, 78, 78, 95, 88, 94, 98, + 103, 107, 111, 118, 114, 126, 87, 112, 119, + 101, 102, 1, 38, 28, 18, 7, 5, 65, 66, 71, 65, + 11, 51, 33, 25, 17, 44, 18, 14, 3, 6, 5, 51, + 32, 18, 10, 24, 10, 3, 1, 1, 66, 36, 15, 7, 1, + 14, 4, 66, 0, 8, 45, 27, 16, 10, 29, 13, 11, + 10, 6, 62, 76, 67, 7, 66, 68, 1, 9, 10, 3, 10, + 17, 23, 76, 71, 76, 72, 21, 78, 79, 72, 1, 17, + 92, 82, 7, 13, 90, 93, 89, 70, 66, 12, 68, 1, + 65, 4, 12, 77, 68, 67, 4, 86, 73, 80, 79, 8, + 100, 76, 4, 70, 19, 70, 65, 30, 70, 73, 65, + 25, 85, 78, 103, 15, 28, 28, 16, 0, 16, 12, 5, + 7, 4, 1, 65, 83, 87, 94, 84, 80, 92, 114, 90, + 88, 89, 85, 82, 71, 70, 85, 94, 75, 66, 67, + 64, 74, 91, 77, 80, 97, 85, 93, 92, 108, 105, + 99, 94, 78, 73, 91, 80, 83, 92, 98, 100, 100, + 101, 103, 107, 120, 113, 121, 120, 119, 108, + 118, 120, 72, 8, 0, 9, 14, 14, 62, 25, 23, 68, + 33, 62, 60, 62, 20, 12, 3, 97, 123, 126, 126, + 126, 126, 126, 66, 43, 27, 18, 9, 14, 2, 66, + 68, 66, 66, 3, 16, 7, 26, 19, 10, 17, 19, 22, + 23, 12, 25, 20, 64, 14, 7, 70, 77, 84, 90, + 118, 117, 106 }, + + { + + 21, + 4, 82, 21, 4, 82, 17, 26, 28, 12, 71, 99, 68, + 3, 52, 14, 52, 71, 23, 30, 64, 83, 2, 98, 115, + 68, 83, 126, 126, 126, 62, 17, 69, 23, 30, 64, + 68, 17, 20, 70, 3, 0, 64, 72, 87, 71, 93, 5, + 67, 65, 68, 80, 72, 88, 17, 4, 1, 65, 12, 3, + 22, 0, 0, 0, 6, 97, 97, 12, 78, 70, 52, 6, 69, + 78, 64, 82, 10, 17, 14, 26, 5, 20, 14, 10, 23, + 74, 80, 76, 83, 35, 1, 23, 66, 2, 70, 2, 23, + 71, 79, 70, 69, 19, 67, 8, 2, 72, 8, 68, 7, + 12, 7, 14, 22, 19, 84, 70, 3, 66, 2, 72, 11, + 72, 0, 19, 69, 16, 17, 5, 106, 10, 70, 99, 79, + 102, 70, 7, 0, 10, 4, 4, 25, 6, 1, 14, 24, 72, + 72, 4, 110, 79, 7, 95, 0, 77, 20, 1, 89, 32, + 1, 65, 97, 35, 82, 100, 1, 106, 69, 11, 15, 8, + 11, 7, 65, 11, 17, 90, 73, 7, 3, 1, 81, 72, + 76, 82, 73, 81, 91, 75, 77, 120, 93, 83, 99, + 94, 89, 8, 17, 6, 2, 3, 71, 79, 71, 87, 92, + 83, 100, 111, 110, 126, 80, 80, 96, 90, 96, + 101, 106, 109, 114, 120, 116, 126, 88, 114, + 120, 102, 102, 1, 39, 28, 18, 7, 5, 65, 66, + 71, 65, 11, 51, 33, 25, 17, 45, 18, 14, 4, 6, + 6, 52, 32, 19, 10, 25, 10, 4, 1, 2, 65, 37, + 16, 8, 1, 15, 5, 65, 1, 8, 45, 27, 16, 10, 30, + 13, 12, 11, 7, 62, 75, 66, 7, 66, 68, 1, 9, + 10, 3, 10, 17, 23, 76, 71, 76, 72, 22, 79, 80, + 73, 0, 17, 93, 83, 7, 13, 90, 94, 89, 69, 65, + 13, 67, 1, 64, 4, 13, 77, 68, 67, 5, 86, 73, + 80, 78, 9, 100, 76, 4, 70, 20, 70, 65, 31, 70, + 73, 65, 26, 86, 78, 104, 14, 27, 27, 15, 64, + 15, 11, 4, 6, 3, 0, 66, 84, 88, 95, 86, 81, + 93, 116, 92, 89, 90, 85, 83, 71, 70, 85, 94, + 74, 68, 69, 66, 76, 94, 79, 82, 100, 87, 95, + 94, 111, 107, 101, 95, 80, 74, 93, 82, 85, 94, + 100, 102, 102, 103, 105, 109, 123, 115, 123, + 122, 120, 110, 120, 121, 71, 9, 1, 10, 15, 15, + 62, 26, 24, 68, 34, 62, 62, 62, 21, 10, 2, + 100, 126, 126, 126, 126, 126, 126, 66, 43, 27, + 18, 9, 14, 2, 66, 68, 66, 65, 4, 17, 8, 27, + 19, 10, 18, 19, 22, 23, 12, 25, 20, 64, 13, 5, + 72, 79, 86, 92, 120, 119, 107 }, + + { + + 20, + 4, 82, 20, 4, 82, 19, 27, 28, 12, 71, 100, 69, + 2, 52, 14, 54, 71, 24, 31, 64, 84, 2, 99, 116, + 69, 85, 126, 126, 126, 62, 18, 69, 24, 31, 64, + 68, 18, 20, 71, 3, 0, 0, 72, 87, 71, 93, 5, + 67, 64, 68, 80, 72, 88, 17, 4, 1, 65, 12, 3, + 22, 0, 0, 0, 7, 97, 97, 12, 79, 70, 52, 6, 69, + 77, 0, 82, 10, 18, 16, 28, 7, 21, 16, 11, 25, + 73, 79, 75, 82, 36, 1, 24, 65, 2, 69, 3, 25, + 71, 79, 70, 68, 19, 67, 8, 3, 72, 9, 68, 7, + 12, 7, 15, 22, 19, 84, 70, 3, 66, 2, 72, 11, + 72, 64, 19, 70, 16, 17, 5, 108, 10, 70, 101, + 80, 103, 69, 8, 1, 11, 5, 5, 26, 7, 1, 15, 25, + 72, 72, 4, 111, 78, 8, 95, 0, 77, 21, 1, 90, + 33, 1, 65, 98, 36, 83, 101, 1, 107, 70, 10, + 15, 7, 10, 6, 66, 10, 17, 91, 74, 7, 3, 1, 81, + 73, 77, 83, 74, 82, 92, 76, 78, 122, 94, 84, + 100, 95, 89, 6, 16, 4, 0, 1, 73, 81, 73, 89, + 94, 85, 102, 114, 112, 126, 82, 82, 98, 92, + 98, 103, 108, 111, 116, 123, 118, 126, 89, + 116, 121, 103, 102, 1, 39, 28, 18, 7, 5, 65, + 66, 71, 64, 11, 51, 33, 25, 17, 46, 19, 15, 4, + 7, 7, 53, 33, 19, 10, 26, 11, 4, 2, 3, 64, 38, + 17, 8, 1, 16, 6, 64, 2, 9, 45, 27, 16, 10, 31, + 14, 13, 12, 8, 62, 75, 66, 8, 66, 68, 1, 9, + 10, 3, 10, 17, 24, 76, 71, 76, 73, 22, 80, 81, + 74, 64, 17, 94, 84, 7, 13, 91, 95, 90, 68, 64, + 14, 67, 2, 64, 5, 14, 77, 68, 67, 5, 87, 73, + 80, 78, 10, 100, 76, 4, 70, 21, 70, 65, 32, + 70, 73, 65, 27, 87, 78, 105, 13, 27, 27, 14, + 65, 14, 10, 3, 5, 2, 64, 67, 85, 89, 96, 87, + 82, 95, 118, 93, 90, 91, 86, 83, 71, 70, 85, + 95, 73, 70, 71, 68, 78, 97, 81, 84, 102, 89, + 97, 96, 113, 109, 102, 96, 82, 76, 94, 84, 87, + 96, 102, 104, 104, 105, 107, 111, 125, 117, + 125, 124, 121, 112, 122, 123, 70, 10, 2, 11, + 16, 16, 62, 27, 25, 68, 35, 62, 62, 62, 22, 9, + 0, 102, 126, 126, 126, 126, 126, 126, 66, 43, + 27, 18, 9, 14, 2, 66, 68, 65, 64, 5, 18, 9, + 28, 20, 11, 19, 20, 23, 24, 12, 26, 20, 64, + 12, 4, 74, 81, 88, 94, 122, 121, 108 }, + + { + + 18, + 3, 83, 18, 3, 83, 20, 28, 28, 12, 72, 102, 71, + 0, 51, 14, 56, 72, 24, 31, 65, 85, 2, 101, + 118, 70, 87, 126, 126, 126, 62, 19, 70, 24, + 31, 65, 68, 19, 20, 72, 3, 0, 0, 73, 88, 71, + 94, 5, 67, 64, 69, 81, 72, 88, 17, 4, 1, 65, + 12, 2, 22, 0, 0, 0, 7, 98, 97, 12, 80, 71, 52, + 5, 69, 76, 0, 82, 10, 19, 17, 29, 8, 22, 17, + 12, 26, 72, 79, 74, 82, 36, 1, 24, 65, 2, 69, + 3, 26, 71, 79, 70, 67, 19, 67, 8, 4, 72, 9, + 68, 7, 12, 7, 15, 22, 19, 85, 71, 3, 67, 2, + 72, 10, 73, 65, 19, 71, 15, 17, 4, 110, 9, 71, + 103, 81, 104, 69, 8, 1, 11, 5, 5, 27, 7, 1, + 15, 26, 73, 72, 4, 113, 78, 8, 95, 0, 78, 21, + 1, 91, 33, 1, 65, 100, 36, 84, 102, 1, 108, + 72, 9, 14, 6, 9, 5, 67, 9, 16, 93, 75, 6, 2, + 1, 82, 74, 78, 84, 75, 83, 93, 77, 79, 124, + 96, 85, 102, 97, 89, 4, 14, 2, 65, 64, 76, 84, + 76, 92, 97, 88, 105, 117, 115, 126, 84, 84, + 100, 95, 101, 106, 111, 114, 119, 126, 121, + 126, 90, 118, 123, 104, 103, 1, 39, 28, 18, 7, + 5, 66, 66, 71, 64, 11, 51, 33, 25, 17, 47, 19, + 15, 4, 7, 7, 53, 33, 19, 10, 26, 11, 4, 2, 4, + 64, 39, 17, 8, 1, 16, 6, 64, 3, 9, 45, 27, 16, + 10, 31, 14, 13, 12, 8, 62, 75, 66, 8, 66, 68, + 1, 9, 10, 3, 10, 17, 24, 76, 71, 77, 74, 22, + 81, 82, 75, 65, 16, 96, 86, 6, 12, 92, 97, 91, + 68, 64, 15, 67, 2, 64, 5, 14, 78, 68, 67, 5, + 88, 73, 80, 78, 10, 101, 76, 4, 70, 21, 71, + 65, 32, 71, 74, 65, 27, 88, 79, 106, 12, 26, + 26, 13, 67, 13, 9, 2, 4, 1, 65, 68, 86, 91, + 98, 89, 84, 97, 120, 95, 92, 92, 87, 84, 71, + 70, 85, 96, 73, 73, 74, 70, 81, 100, 84, 87, + 105, 92, 100, 99, 116, 112, 104, 97, 84, 78, + 96, 86, 90, 99, 105, 107, 107, 107, 110, 114, + 126, 119, 126, 126, 123, 114, 124, 125, 69, + 11, 3, 11, 16, 16, 62, 27, 25, 68, 35, 62, 62, + 62, 22, 7, 65, 105, 126, 126, 126, 126, 126, + 126, 66, 43, 26, 17, 9, 14, 2, 67, 68, 65, 64, + 5, 18, 9, 29, 20, 11, 19, 20, 23, 24, 12, 26, + 20, 65, 10, 2, 76, 83, 90, 96, 125, 123, 109 }, + + { + + 17, + 3, 83, 17, 3, 83, 22, 30, 29, 13, 72, 103, 72, + 64, 51, 14, 59, 72, 25, 32, 65, 85, 3, 102, + 119, 70, 88, 126, 126, 126, 62, 21, 70, 25, + 32, 65, 67, 21, 21, 72, 4, 1, 1, 73, 88, 70, + 94, 5, 66, 0, 69, 81, 71, 88, 18, 5, 2, 64, + 13, 2, 22, 0, 0, 0, 8, 98, 97, 13, 80, 71, 52, + 5, 69, 74, 1, 82, 11, 21, 19, 31, 10, 24, 19, + 14, 28, 70, 78, 73, 81, 37, 2, 25, 64, 3, 68, + 4, 28, 70, 78, 69, 65, 20, 66, 9, 6, 71, 10, + 67, 8, 13, 8, 16, 23, 20, 85, 71, 4, 67, 2, + 71, 10, 73, 65, 19, 71, 15, 17, 4, 111, 9, 71, + 104, 82, 104, 68, 9, 2, 12, 6, 6, 28, 8, 2, + 16, 28, 73, 72, 5, 114, 77, 9, 95, 1, 78, 22, + 2, 91, 34, 1, 65, 101, 37, 84, 103, 1, 108, + 73, 9, 14, 6, 9, 5, 67, 9, 16, 94, 75, 6, 2, + 1, 82, 74, 78, 84, 75, 83, 94, 77, 79, 125, + 97, 85, 103, 98, 89, 3, 13, 1, 66, 65, 78, 86, + 78, 94, 99, 90, 107, 119, 117, 126, 85, 85, + 101, 97, 103, 108, 113, 116, 121, 126, 123, + 126, 90, 119, 124, 104, 103, 2, 40, 29, 19, 8, + 5, 66, 65, 70, 0, 12, 52, 34, 26, 17, 48, 20, + 16, 5, 8, 8, 54, 34, 20, 11, 27, 12, 5, 3, 6, + 0, 41, 18, 9, 2, 17, 7, 0, 5, 10, 46, 28, 17, + 11, 32, 15, 14, 13, 9, 62, 74, 65, 9, 66, 67, + 1, 10, 11, 4, 11, 18, 25, 75, 71, 77, 74, 23, + 81, 82, 76, 65, 16, 97, 87, 6, 12, 92, 98, 91, + 67, 0, 16, 66, 3, 0, 6, 15, 78, 67, 66, 6, 88, + 72, 79, 77, 11, 101, 76, 5, 70, 22, 71, 65, + 33, 71, 74, 64, 28, 88, 79, 106, 12, 26, 26, + 13, 68, 13, 9, 2, 4, 1, 65, 68, 86, 92, 99, + 90, 85, 98, 121, 96, 93, 92, 87, 84, 70, 69, + 84, 96, 72, 75, 76, 72, 83, 102, 86, 89, 107, + 94, 102, 101, 118, 114, 105, 97, 85, 79, 97, + 87, 92, 101, 107, 109, 109, 109, 112, 116, + 126, 120, 126, 126, 124, 115, 125, 126, 67, + 13, 5, 12, 17, 17, 62, 28, 26, 68, 36, 62, 62, + 62, 23, 6, 66, 107, 126, 126, 126, 126, 126, + 126, 65, 44, 26, 17, 9, 15, 2, 67, 68, 64, 0, + 6, 19, 10, 31, 21, 12, 20, 21, 24, 25, 13, 27, + 21, 65, 9, 1, 77, 84, 91, 97, 126, 124, 109 }, + + { + + 16, + 3, 83, 16, 3, 83, 24, 31, 29, 13, 72, 104, 73, + 65, 51, 14, 61, 72, 26, 33, 65, 86, 3, 103, + 120, 71, 90, 126, 126, 126, 62, 22, 70, 26, + 33, 65, 67, 22, 21, 73, 4, 1, 2, 73, 88, 70, + 94, 5, 66, 1, 69, 81, 71, 88, 18, 5, 2, 64, + 13, 2, 22, 0, 0, 0, 9, 98, 97, 13, 81, 71, 52, + 5, 69, 73, 2, 82, 11, 22, 21, 33, 11, 25, 21, + 15, 30, 69, 77, 72, 80, 38, 2, 26, 0, 3, 68, + 5, 30, 70, 78, 69, 64, 20, 66, 9, 7, 71, 11, + 67, 8, 13, 8, 17, 23, 20, 86, 71, 4, 67, 2, + 71, 10, 73, 66, 19, 72, 15, 17, 4, 113, 9, 71, + 106, 83, 105, 67, 10, 3, 13, 7, 7, 29, 9, 2, + 17, 29, 73, 72, 5, 115, 77, 10, 95, 1, 78, 23, + 2, 92, 35, 1, 65, 102, 38, 85, 104, 1, 109, + 75, 8, 13, 5, 8, 4, 68, 8, 16, 95, 76, 6, 2, + 1, 82, 75, 79, 85, 76, 84, 95, 78, 80, 126, + 98, 86, 104, 99, 89, 1, 12, 64, 68, 67, 80, + 88, 80, 97, 101, 92, 110, 122, 119, 126, 87, + 87, 103, 99, 105, 110, 115, 118, 123, 126, + 125, 126, 91, 121, 125, 105, 103, 2, 40, 29, + 19, 8, 5, 66, 65, 70, 1, 12, 52, 34, 26, 17, + 49, 20, 17, 5, 9, 9, 55, 35, 20, 11, 28, 12, + 5, 4, 7, 1, 42, 19, 9, 2, 18, 8, 1, 6, 10, 46, + 28, 17, 11, 33, 16, 15, 14, 10, 62, 74, 65, 9, + 66, 67, 1, 10, 11, 4, 11, 18, 26, 75, 71, 77, + 75, 23, 82, 83, 77, 66, 16, 98, 88, 6, 12, 93, + 99, 92, 66, 1, 17, 66, 3, 0, 7, 16, 78, 67, + 66, 6, 89, 72, 79, 77, 12, 101, 76, 5, 70, 23, + 71, 65, 34, 71, 74, 64, 29, 89, 79, 107, 11, + 26, 26, 12, 69, 12, 8, 1, 3, 0, 66, 69, 87, + 93, 100, 92, 86, 100, 123, 97, 94, 93, 88, 84, + 70, 69, 84, 97, 71, 77, 78, 74, 85, 105, 88, + 91, 110, 96, 104, 103, 120, 116, 106, 98, 87, + 81, 98, 89, 94, 103, 109, 111, 111, 111, 114, + 118, 126, 122, 126, 126, 125, 117, 126, 126, + 66, 14, 6, 13, 18, 18, 62, 29, 27, 68, 37, 62, + 62, 62, 24, 5, 68, 110, 126, 126, 126, 126, + 126, 126, 65, 44, 26, 17, 9, 15, 2, 67, 68, 0, + 1, 7, 20, 11, 32, 22, 13, 21, 22, 25, 26, 13, + 28, 21, 65, 8, 64, 79, 86, 93, 99, 126, 126, + 110 }, + + { + + 15, + 3, 83, 15, 3, 83, 26, 33, 30, 13, 73, 106, 75, + 66, 51, 14, 62, 72, 27, 34, 65, 87, 3, 104, + 121, 71, 92, 126, 126, 126, 62, 23, 70, 27, + 34, 65, 66, 23, 22, 73, 4, 2, 3, 74, 89, 70, + 94, 5, 66, 1, 69, 81, 71, 88, 19, 5, 2, 64, + 14, 2, 22, 0, 0, 0, 9, 98, 97, 14, 82, 71, 52, + 5, 69, 72, 3, 82, 12, 23, 23, 35, 13, 26, 23, + 16, 32, 68, 76, 71, 79, 39, 2, 27, 1, 3, 67, + 5, 32, 70, 77, 68, 0, 20, 66, 10, 9, 70, 12, + 67, 8, 13, 8, 18, 24, 21, 86, 71, 4, 67, 2, + 71, 10, 74, 66, 19, 73, 15, 17, 4, 115, 9, 72, + 108, 84, 106, 66, 11, 4, 14, 8, 7, 30, 9, 3, + 18, 30, 73, 72, 5, 116, 76, 11, 95, 1, 78, 24, + 2, 93, 36, 1, 65, 103, 39, 85, 105, 1, 110, + 76, 7, 13, 4, 7, 3, 68, 7, 15, 96, 77, 6, 2, + 1, 83, 76, 80, 86, 77, 85, 96, 79, 80, 126, + 99, 86, 105, 100, 89, 0, 10, 65, 70, 69, 82, + 90, 82, 99, 104, 94, 112, 124, 122, 126, 89, + 89, 104, 101, 107, 113, 118, 120, 126, 126, + 126, 126, 92, 123, 126, 106, 103, 2, 41, 29, + 19, 8, 5, 66, 65, 70, 1, 12, 52, 34, 26, 17, + 50, 21, 17, 6, 9, 10, 56, 35, 21, 11, 29, 13, + 6, 4, 8, 2, 43, 20, 10, 2, 19, 9, 2, 7, 11, + 46, 28, 17, 11, 34, 16, 16, 15, 11, 62, 73, + 64, 10, 66, 67, 1, 10, 11, 4, 11, 18, 26, 75, + 71, 77, 75, 24, 83, 84, 78, 67, 16, 99, 89, 6, + 12, 93, 100, 92, 65, 2, 18, 65, 4, 1, 7, 17, + 78, 67, 66, 7, 89, 72, 79, 76, 13, 101, 76, 5, + 70, 24, 71, 65, 35, 71, 74, 64, 30, 90, 79, + 108, 10, 25, 25, 11, 70, 11, 7, 0, 2, 64, 67, + 70, 88, 94, 101, 93, 87, 101, 125, 99, 95, 94, + 88, 85, 70, 69, 84, 97, 70, 79, 80, 76, 87, + 108, 90, 93, 112, 98, 106, 105, 123, 118, 108, + 99, 89, 82, 100, 91, 96, 105, 111, 113, 113, + 113, 116, 120, 126, 124, 126, 126, 126, 119, + 126, 126, 65, 15, 7, 14, 19, 19, 62, 30, 28, + 68, 38, 62, 62, 62, 25, 3, 69, 112, 126, 126, + 126, 126, 126, 126, 65, 44, 26, 17, 9, 15, 2, + 67, 68, 0, 2, 8, 21, 12, 33, 22, 13, 22, 22, + 25, 26, 13, 28, 21, 65, 7, 65, 81, 88, 95, + 101, 126, 126, 111 }, + + }, + + }; - { - { - /* Context Tables for I, SI Slices :: qp = 0 */ - - 124, 18, 21, 124, 18, 21, 125, 81, 20, 18, - 24, 60, 122, 124, 108, 28, 109, 12, 29, 3, - 2, 28, 19, 26, 1, 40, 124, 7, 53, 81, - 125, 81, 7, 29, 3, 2, 45, 63, 4, 36, - 11, 35, 65, 16, 7, 45, 49, 10, 25, 61, - 18, 11, 35, 49, 7, 21, 21, 33, 17, 10, - 44, 0, 0, 0, 39, 45, 67, 17, 44, 2, - 104, 16, 11, 125, 77, 37, 21, 87, 125, 125, - 125, 63, 125, 101, 125, 119, 103, 117, 103, 0, - 9, 41, 81, 13, 59, 53, 125, 21, 67, 55, - 125, 14, 37, 25, 123, 59, 47, 27, 15, 0, - 9, 41, 2, 3, 4, 14, 5, 1, 4, 29, - 26, 22, 56, 38, 50, 36, 34, 38, 92, 24, - 26, 88, 60, 2, 89, 73, 75, 55, 61, 49, - 41, 45, 39, 47, 61, 13, 17, 21, 8, 77, - 73, 63, 23, 17, 23, 15, 34, 11, 2, 3, - 52, 17, 12, 18, 2, 17, 124, 108, 76, 90, - 108, 88, 52, 90, 68, 60, 66, 36, 10, 2, - 4, 50, 36, 48, 42, 38, 36, 44, 28, 58, - 42, 16, 24, 34, 51, 124, 124, 124, 124, 124, - 124, 124, 124, 124, 124, 124, 124, 124, 124, 92, - 124, 120, 82, 124, 124, 124, 124, 120, 116, 124, - 94, 82, 30, 52, 6, 9, 67, 15, 42, 26, - 18, 2, 10, 0, 17, 21, 55, 7, 72, 48, - 38, 34, 1, 9, 29, 27, 45, 57, 16, 6, - 2, 3, 19, 25, 33, 49, 93, 67, 41, 31, - 19, 21, 45, 65, 67, 107, 29, 60, 30, 20, - 2, 15, 31, 45, 53, 67, 124, 59, 41, 31, - 5, 15, 2, 6, 8, 23, 2, 10, 5, 31, - 15, 9, 38, 2, 54, 46, 72, 68, 38, 54, - 62, 42, 30, 2, 34, 1, 81, 67, 65, 49, - 43, 43, 43, 49, 5, 27, 25, 25, 10, 25, - 39, 71, 63, 63, 25, 21, 13, 23, 9, 3, - 19, 2, 2, 9, 23, 16, 1, 13, 114, 88, - 94, 98, 100, 104, 96, 94, 80, 80, 86, 74, - 38, 46, 32, 92, 84, 82, 72, 68, 56, 26, - 12, 0, 27, 37, 61, 11, 91, 124, 124, 124, - 124, 124, 124, 124, 124, 124, 124, 124, 122, 100, - 56, 10, 124, 124, 66, 124, 124, 124, 120, 124, - 116, 104, 116, 102, 104, 68, 74, 48, 5, 84, - 64, 26, 113, 97, 101, 43, 57, 51, 15, 35, - 33, 9, 13, 14, 9, 26, 21, 124, 124, 124, - 124, 120, 114, 58, 18, 37, 23, 80, 58, 40, - 18, 16, 4, 1, 9, 57, 85, 67, 53, 53, - 49, 19, 31, 45, 19, 13, 11, 5, 1, 10, - 8, 124, 124, 124, 124, 120, 108, 86, 54, 7, - }, - - { - /* Context Tables for I, SI Slices :: qp = 1 */ - - 124, 18, 21, 124, 18, 21, 123, 77, 22, 20, - 24, 58, 120, 124, 108, 28, 103, 12, 27, 1, - 2, 28, 17, 24, 3, 40, 124, 9, 55, 81, - 121, 77, 7, 27, 1, 2, 43, 59, 6, 36, - 9, 33, 63, 16, 7, 43, 49, 10, 23, 59, - 18, 11, 33, 49, 5, 19, 19, 31, 15, 10, - 44, 0, 0, 0, 37, 45, 67, 15, 44, 2, - 104, 16, 11, 123, 75, 37, 19, 83, 123, 123, - 123, 59, 123, 97, 123, 115, 101, 115, 101, 2, - 7, 39, 79, 11, 57, 51, 123, 19, 65, 53, - 123, 16, 35, 23, 119, 57, 45, 25, 13, 2, - 7, 39, 4, 1, 4, 14, 3, 1, 4, 27, - 26, 22, 56, 38, 50, 36, 34, 38, 90, 24, - 26, 86, 58, 2, 87, 71, 73, 53, 59, 47, - 39, 43, 37, 45, 57, 13, 17, 19, 6, 75, - 71, 63, 21, 17, 21, 13, 34, 9, 2, 3, - 50, 15, 12, 16, 2, 17, 124, 108, 76, 90, - 108, 88, 52, 90, 68, 58, 66, 36, 10, 2, - 4, 50, 36, 48, 42, 38, 34, 44, 28, 56, - 40, 16, 22, 32, 51, 124, 124, 124, 124, 124, - 124, 124, 124, 124, 124, 124, 124, 124, 120, 88, - 124, 118, 80, 124, 124, 124, 124, 116, 112, 122, - 90, 78, 30, 50, 4, 9, 67, 13, 44, 28, - 20, 4, 10, 0, 15, 19, 53, 5, 74, 50, - 40, 34, 0, 7, 27, 25, 43, 55, 18, 8, - 4, 1, 17, 23, 31, 47, 89, 65, 37, 29, - 17, 19, 43, 63, 65, 103, 27, 62, 32, 22, - 4, 13, 29, 43, 51, 65, 124, 57, 39, 29, - 5, 13, 2, 8, 10, 21, 4, 12, 3, 29, - 15, 9, 38, 4, 54, 46, 70, 68, 38, 52, - 60, 42, 30, 2, 32, 1, 79, 65, 63, 47, - 41, 41, 41, 47, 5, 25, 23, 23, 10, 23, - 37, 69, 61, 63, 25, 19, 13, 21, 9, 3, - 17, 2, 2, 7, 21, 16, 1, 13, 114, 88, - 94, 98, 98, 104, 96, 94, 80, 80, 86, 74, - 38, 44, 30, 90, 82, 80, 70, 66, 54, 26, - 12, 0, 25, 35, 59, 11, 89, 124, 124, 124, - 124, 124, 124, 124, 124, 124, 124, 122, 118, 96, - 54, 10, 124, 124, 64, 124, 124, 124, 116, 124, - 112, 100, 112, 98, 100, 66, 70, 46, 7, 82, - 62, 24, 109, 93, 97, 41, 55, 49, 11, 33, - 31, 9, 11, 18, 5, 30, 19, 124, 124, 124, - 124, 116, 110, 54, 14, 39, 21, 82, 58, 40, - 18, 18, 4, 1, 9, 55, 83, 65, 51, 51, - 45, 17, 29, 43, 17, 11, 9, 3, 0, 12, - 8, 124, 124, 124, 124, 118, 106, 82, 52, 7, - }, - - { - /* Context Tables for I, SI Slices :: qp = 2 */ - - 124, 18, 21, 124, 18, 21, 119, 75, 22, 20, - 24, 56, 118, 122, 108, 28, 99, 12, 25, 0, - 2, 26, 17, 22, 5, 38, 120, 13, 57, 83, - 115, 75, 7, 25, 0, 2, 43, 57, 6, 34, - 9, 33, 61, 16, 7, 43, 49, 10, 23, 57, - 18, 11, 33, 49, 5, 19, 19, 31, 15, 10, - 44, 0, 0, 0, 35, 45, 67, 15, 42, 2, - 104, 16, 11, 121, 73, 37, 19, 81, 119, 119, - 121, 57, 119, 95, 119, 113, 99, 113, 99, 4, - 7, 37, 77, 11, 57, 49, 119, 19, 65, 53, - 121, 16, 35, 23, 117, 57, 43, 25, 13, 2, - 7, 37, 4, 1, 2, 14, 3, 1, 4, 27, - 26, 22, 54, 38, 48, 36, 34, 38, 86, 24, - 26, 82, 56, 0, 85, 69, 71, 51, 57, 45, - 37, 41, 37, 43, 55, 13, 17, 19, 4, 75, - 69, 63, 21, 17, 19, 13, 32, 7, 2, 3, - 48, 13, 10, 14, 2, 19, 120, 106, 74, 88, - 106, 86, 50, 88, 68, 56, 64, 36, 10, 2, - 4, 48, 34, 46, 40, 36, 32, 42, 26, 52, - 38, 14, 20, 30, 51, 124, 124, 124, 124, 124, - 124, 124, 124, 124, 124, 124, 124, 124, 116, 82, - 124, 114, 76, 124, 124, 124, 124, 112, 108, 116, - 86, 74, 28, 46, 2, 11, 67, 13, 44, 28, - 20, 4, 10, 0, 15, 19, 51, 5, 74, 50, - 40, 34, 2, 7, 25, 25, 41, 53, 20, 10, - 4, 1, 15, 23, 31, 45, 87, 63, 35, 27, - 17, 19, 41, 61, 63, 101, 27, 62, 32, 22, - 4, 11, 27, 41, 49, 63, 124, 57, 39, 29, - 5, 13, 2, 8, 10, 21, 4, 12, 1, 29, - 15, 9, 36, 4, 52, 44, 68, 66, 38, 50, - 58, 42, 30, 0, 30, 3, 77, 63, 61, 47, - 41, 41, 39, 45, 5, 25, 23, 23, 8, 23, - 37, 69, 59, 63, 25, 19, 13, 19, 9, 3, - 15, 2, 2, 7, 19, 14, 1, 15, 112, 88, - 94, 96, 96, 102, 94, 92, 78, 78, 84, 72, - 36, 42, 28, 86, 80, 76, 66, 64, 52, 24, - 10, 0, 25, 35, 59, 13, 87, 124, 124, 124, - 124, 124, 124, 124, 124, 124, 124, 118, 114, 92, - 52, 8, 124, 120, 62, 124, 124, 124, 112, 120, - 108, 96, 108, 94, 96, 62, 66, 42, 9, 78, - 58, 20, 107, 91, 95, 39, 53, 47, 7, 31, - 29, 9, 9, 20, 3, 32, 17, 124, 124, 124, - 124, 110, 104, 48, 10, 41, 21, 82, 58, 40, - 18, 18, 4, 1, 9, 53, 81, 63, 49, 49, - 43, 15, 27, 41, 15, 9, 7, 3, 2, 12, - 8, 124, 124, 124, 122, 114, 102, 78, 48, 9, - }, - - { - /* Context Tables for I, SI Slices :: qp = 3 */ - - 124, 18, 21, 124, 18, 21, 115, 71, 24, 20, - 22, 52, 114, 120, 108, 28, 95, 12, 23, 2, - 2, 24, 17, 20, 7, 38, 116, 15, 59, 83, - 109, 73, 7, 23, 2, 2, 41, 55, 8, 34, - 9, 31, 59, 14, 9, 43, 49, 10, 23, 57, - 18, 11, 33, 49, 3, 19, 19, 31, 13, 10, - 44, 0, 0, 0, 35, 45, 67, 13, 40, 2, - 104, 16, 11, 119, 71, 37, 17, 79, 115, 115, - 117, 55, 115, 93, 115, 111, 97, 111, 97, 6, - 7, 35, 75, 11, 55, 49, 115, 19, 63, 51, - 119, 16, 35, 21, 113, 55, 41, 25, 13, 2, - 7, 35, 6, 0, 2, 14, 3, 1, 4, 27, - 26, 20, 54, 38, 46, 36, 34, 38, 82, 24, - 24, 78, 54, 1, 83, 67, 69, 49, 55, 45, - 35, 41, 35, 41, 53, 13, 17, 19, 2, 73, - 67, 63, 21, 17, 17, 13, 30, 5, 2, 3, - 46, 11, 10, 12, 2, 21, 118, 104, 74, 86, - 104, 84, 50, 86, 66, 54, 62, 36, 10, 2, - 2, 46, 32, 44, 38, 34, 30, 40, 26, 48, - 36, 14, 18, 28, 51, 124, 124, 124, 124, 124, - 124, 124, 124, 124, 124, 124, 124, 124, 110, 78, - 124, 110, 74, 124, 122, 124, 118, 108, 102, 112, - 82, 68, 26, 42, 0, 13, 67, 13, 46, 28, - 20, 4, 10, 0, 15, 19, 51, 5, 74, 50, - 40, 34, 4, 5, 25, 23, 41, 51, 22, 10, - 6, 1, 13, 21, 29, 45, 85, 61, 33, 25, - 15, 19, 39, 59, 61, 99, 25, 62, 32, 22, - 4, 9, 27, 39, 47, 61, 124, 55, 37, 27, - 5, 13, 2, 8, 10, 21, 4, 12, 1, 29, - 15, 9, 36, 6, 50, 42, 66, 64, 38, 48, - 56, 42, 30, 0, 28, 3, 75, 61, 59, 45, - 39, 39, 39, 43, 5, 25, 23, 21, 8, 23, - 37, 67, 57, 63, 25, 19, 13, 17, 9, 3, - 13, 2, 2, 7, 17, 12, 1, 17, 110, 86, - 92, 94, 94, 100, 92, 90, 76, 76, 82, 70, - 34, 40, 26, 84, 78, 74, 62, 60, 50, 22, - 10, 1, 25, 35, 59, 13, 85, 124, 124, 124, - 124, 124, 124, 124, 124, 124, 124, 114, 108, 88, - 48, 6, 122, 118, 58, 124, 124, 120, 108, 116, - 104, 92, 104, 90, 90, 58, 62, 38, 11, 74, - 54, 18, 105, 89, 93, 37, 51, 45, 5, 29, - 27, 9, 7, 24, 0, 36, 15, 124, 124, 124, - 124, 104, 98, 42, 6, 43, 21, 82, 58, 40, - 18, 18, 4, 1, 9, 53, 79, 61, 47, 47, - 41, 15, 27, 39, 15, 9, 7, 3, 2, 12, - 8, 124, 124, 124, 118, 110, 98, 74, 44, 11, - }, - - { - /* Context Tables for I, SI Slices :: qp = 4 */ - - 124, 18, 21, 124, 18, 21, 113, 69, 24, 20, - 22, 50, 112, 116, 108, 28, 89, 10, 21, 2, - 2, 22, 17, 18, 9, 36, 112, 19, 61, 85, - 103, 71, 7, 21, 2, 2, 41, 53, 8, 32, - 9, 31, 59, 14, 9, 41, 49, 10, 23, 55, - 16, 13, 33, 49, 3, 17, 19, 29, 13, 10, - 44, 0, 0, 0, 33, 47, 67, 13, 38, 2, - 104, 16, 11, 117, 69, 37, 17, 75, 113, 111, - 115, 53, 113, 89, 111, 109, 97, 109, 97, 6, - 7, 33, 73, 11, 55, 47, 111, 19, 63, 51, - 117, 16, 33, 21, 111, 55, 41, 25, 11, 2, - 7, 35, 6, 0, 0, 12, 3, 1, 4, 27, - 26, 20, 52, 38, 46, 36, 34, 36, 78, 24, - 24, 74, 52, 3, 81, 65, 67, 47, 55, 43, - 33, 39, 35, 39, 51, 13, 17, 17, 0, 73, - 65, 63, 21, 17, 17, 13, 28, 3, 2, 3, - 42, 9, 8, 10, 2, 23, 114, 102, 72, 84, - 102, 82, 48, 84, 66, 50, 60, 34, 10, 2, - 2, 44, 32, 42, 38, 32, 28, 38, 24, 44, - 34, 12, 16, 26, 51, 124, 124, 124, 124, 124, - 124, 124, 124, 124, 124, 124, 124, 118, 106, 72, - 124, 108, 70, 124, 118, 124, 114, 102, 98, 106, - 78, 64, 24, 40, 3, 15, 67, 13, 46, 30, - 20, 4, 10, 0, 15, 19, 49, 3, 76, 50, - 40, 34, 6, 5, 23, 23, 39, 51, 24, 12, - 6, 1, 13, 21, 29, 43, 83, 61, 31, 25, - 15, 19, 37, 57, 61, 97, 25, 64, 32, 22, - 4, 7, 25, 39, 45, 59, 124, 55, 37, 27, - 5, 13, 2, 8, 10, 19, 4, 12, 0, 29, - 15, 9, 34, 6, 48, 40, 64, 62, 38, 44, - 54, 40, 30, 1, 26, 5, 75, 61, 57, 45, - 39, 39, 37, 41, 7, 25, 23, 21, 6, 23, - 37, 67, 55, 63, 25, 17, 13, 17, 9, 3, - 11, 2, 0, 7, 15, 12, 3, 19, 108, 86, - 92, 92, 92, 98, 90, 88, 74, 74, 80, 68, - 32, 38, 24, 80, 74, 70, 58, 58, 48, 20, - 8, 1, 25, 35, 59, 15, 85, 124, 124, 124, - 124, 124, 124, 124, 124, 124, 120, 110, 104, 84, - 46, 4, 118, 114, 56, 124, 124, 116, 104, 110, - 100, 88, 100, 86, 86, 54, 58, 34, 13, 70, - 50, 14, 103, 87, 91, 37, 49, 43, 1, 27, - 25, 9, 5, 26, 2, 38, 15, 124, 124, 124, - 124, 98, 92, 36, 2, 45, 21, 82, 58, 40, - 18, 18, 4, 1, 9, 51, 77, 59, 45, 47, - 39, 13, 25, 37, 13, 7, 5, 1, 4, 14, - 8, 124, 124, 124, 114, 106, 94, 70, 40, 13, - }, - - { - /* Context Tables for I, SI Slices :: qp = 5 */ - - 124, 18, 21, 124, 18, 21, 109, 65, 24, 20, - 20, 46, 108, 114, 108, 28, 85, 10, 19, 4, - 2, 22, 15, 16, 11, 36, 108, 23, 63, 85, - 97, 67, 7, 19, 4, 2, 41, 51, 8, 32, - 9, 31, 57, 14, 11, 41, 49, 10, 23, 53, - 16, 13, 33, 49, 1, 17, 17, 29, 11, 10, - 44, 0, 0, 0, 33, 47, 67, 11, 36, 2, - 104, 16, 11, 115, 67, 37, 15, 73, 109, 107, - 111, 51, 109, 87, 107, 107, 95, 107, 95, 8, - 7, 31, 71, 11, 53, 45, 107, 19, 63, 49, - 113, 18, 33, 19, 109, 53, 39, 25, 11, 4, - 5, 33, 8, 2, 0, 12, 3, 1, 4, 27, - 26, 18, 50, 38, 44, 36, 34, 36, 74, 24, - 22, 72, 50, 5, 79, 63, 65, 45, 53, 41, - 31, 37, 33, 37, 49, 13, 17, 17, 1, 71, - 63, 63, 19, 17, 15, 13, 26, 1, 2, 3, - 40, 7, 8, 8, 2, 23, 112, 100, 72, 82, - 100, 80, 46, 84, 66, 48, 58, 34, 10, 2, - 0, 44, 30, 40, 36, 30, 26, 38, 22, 40, - 32, 10, 14, 24, 51, 124, 124, 124, 124, 124, - 124, 124, 124, 124, 124, 124, 124, 114, 102, 68, - 120, 104, 66, 124, 114, 120, 110, 98, 94, 100, - 74, 58, 22, 36, 5, 15, 67, 13, 46, 30, - 20, 4, 10, 0, 15, 19, 49, 3, 76, 50, - 40, 34, 8, 3, 21, 23, 37, 49, 26, 14, - 6, 0, 11, 19, 27, 43, 81, 59, 27, 23, - 15, 17, 35, 55, 59, 95, 23, 64, 34, 22, - 4, 5, 23, 37, 43, 57, 124, 55, 37, 25, - 5, 13, 2, 8, 10, 19, 4, 14, 0, 29, - 15, 9, 32, 8, 46, 38, 62, 62, 38, 42, - 52, 40, 30, 3, 24, 5, 73, 59, 55, 43, - 37, 37, 37, 39, 7, 25, 23, 21, 4, 23, - 37, 65, 53, 63, 25, 17, 13, 15, 9, 3, - 9, 2, 0, 7, 13, 10, 3, 19, 106, 86, - 90, 92, 90, 96, 88, 86, 74, 72, 78, 66, - 30, 36, 22, 78, 72, 68, 54, 56, 46, 18, - 6, 3, 25, 33, 59, 15, 83, 124, 124, 124, - 124, 124, 124, 124, 124, 120, 116, 106, 100, 80, - 42, 2, 114, 110, 54, 122, 124, 112, 100, 106, - 96, 84, 96, 82, 80, 50, 54, 30, 15, 66, - 46, 12, 101, 83, 89, 35, 47, 41, 2, 25, - 23, 9, 3, 30, 6, 42, 13, 124, 124, 124, - 124, 94, 86, 32, 1, 47, 21, 82, 58, 40, - 18, 18, 4, 1, 9, 51, 75, 57, 43, 45, - 37, 11, 25, 35, 11, 5, 3, 1, 4, 14, - 8, 124, 124, 124, 112, 102, 90, 66, 36, 15, - }, - - { - /* Context Tables for I, SI Slices :: qp = 6 */ - - 124, 18, 23, 124, 18, 23, 105, 63, 26, 20, - 20, 44, 106, 112, 108, 28, 81, 10, 19, 6, - 2, 20, 15, 14, 13, 34, 106, 25, 65, 87, - 91, 65, 7, 19, 6, 2, 39, 49, 10, 30, - 7, 29, 55, 12, 11, 41, 49, 10, 21, 53, - 16, 13, 31, 49, 1, 17, 17, 29, 11, 10, - 44, 0, 0, 0, 31, 47, 67, 11, 36, 0, - 104, 16, 11, 113, 67, 37, 15, 71, 105, 103, - 109, 49, 105, 85, 103, 105, 93, 105, 93, 10, - 7, 29, 71, 9, 53, 45, 103, 19, 61, 49, - 111, 18, 33, 19, 105, 53, 37, 23, 11, 4, - 5, 31, 8, 2, 1, 12, 3, 1, 4, 27, - 26, 18, 50, 38, 42, 36, 34, 36, 70, 24, - 22, 68, 48, 7, 79, 61, 65, 45, 51, 41, - 29, 37, 33, 37, 45, 13, 17, 17, 3, 71, - 61, 63, 19, 17, 13, 11, 24, 1, 2, 3, - 38, 5, 6, 6, 2, 25, 108, 98, 70, 82, - 98, 80, 46, 82, 64, 46, 56, 34, 10, 2, - 0, 42, 28, 38, 34, 30, 24, 36, 22, 36, - 30, 10, 12, 22, 51, 124, 124, 124, 124, 124, - 124, 124, 124, 124, 124, 124, 124, 108, 96, 62, - 116, 100, 64, 124, 108, 114, 104, 94, 88, 96, - 68, 54, 20, 32, 7, 17, 67, 11, 48, 30, - 22, 4, 10, 0, 15, 19, 47, 3, 76, 52, - 40, 34, 10, 3, 21, 21, 37, 47, 28, 14, - 8, 0, 9, 19, 27, 41, 79, 57, 25, 21, - 13, 17, 35, 55, 57, 91, 23, 64, 34, 22, - 6, 5, 23, 35, 43, 55, 124, 53, 35, 25, - 5, 13, 2, 8, 10, 19, 6, 14, 2, 29, - 15, 11, 32, 8, 44, 36, 60, 60, 38, 40, - 50, 40, 30, 3, 22, 7, 71, 57, 53, 43, - 37, 37, 35, 39, 7, 23, 21, 19, 4, 23, - 37, 65, 51, 63, 25, 17, 13, 13, 9, 3, - 7, 0, 0, 7, 13, 8, 3, 21, 104, 84, - 90, 90, 88, 96, 88, 84, 72, 72, 76, 64, - 28, 34, 20, 74, 70, 64, 50, 52, 42, 16, - 6, 3, 25, 33, 57, 17, 81, 124, 124, 124, - 124, 124, 124, 124, 124, 116, 110, 102, 94, 76, - 40, 2, 112, 108, 50, 118, 124, 108, 96, 102, - 92, 80, 90, 78, 76, 46, 50, 28, 19, 62, - 42, 8, 99, 81, 87, 33, 45, 39, 4, 23, - 21, 9, 1, 32, 8, 44, 11, 124, 124, 124, - 118, 88, 82, 26, 5, 51, 19, 82, 58, 40, - 18, 18, 4, 1, 9, 49, 73, 57, 41, 43, - 35, 11, 23, 33, 11, 5, 3, 1, 6, 14, - 8, 124, 124, 122, 108, 100, 88, 60, 34, 17, - }, - - { - /* Context Tables for I, SI Slices :: qp = 7 */ - - 124, 18, 23, 124, 18, 23, 101, 59, 26, 20, - 18, 40, 102, 108, 108, 28, 75, 8, 17, 6, - 2, 18, 15, 12, 15, 34, 102, 29, 67, 87, - 85, 63, 7, 17, 6, 2, 39, 47, 10, 30, - 7, 29, 55, 12, 13, 39, 49, 10, 21, 51, - 14, 13, 31, 49, 0, 15, 17, 27, 9, 10, - 44, 0, 0, 0, 31, 47, 67, 9, 34, 0, - 104, 16, 11, 111, 65, 37, 13, 67, 103, 99, - 105, 47, 103, 81, 99, 103, 91, 103, 93, 12, - 7, 27, 69, 9, 51, 43, 99, 19, 61, 47, - 109, 18, 31, 17, 103, 51, 37, 23, 9, 4, - 5, 29, 10, 4, 1, 10, 3, 1, 4, 27, - 26, 16, 48, 38, 42, 36, 34, 34, 66, 24, - 20, 64, 46, 9, 77, 59, 63, 43, 49, 39, - 27, 35, 31, 35, 43, 13, 17, 15, 5, 69, - 59, 63, 19, 17, 13, 11, 22, 0, 2, 3, - 34, 3, 6, 4, 2, 27, 106, 96, 70, 80, - 96, 78, 44, 80, 64, 44, 54, 34, 10, 2, - 1, 40, 28, 36, 34, 28, 22, 34, 20, 32, - 28, 8, 10, 20, 51, 124, 124, 124, 124, 124, - 124, 124, 124, 124, 124, 120, 122, 104, 92, 58, - 112, 98, 60, 124, 104, 110, 100, 88, 84, 90, - 64, 48, 18, 30, 11, 19, 67, 11, 48, 32, - 22, 4, 10, 0, 15, 19, 47, 1, 78, 52, - 40, 34, 12, 1, 19, 21, 35, 45, 30, 16, - 8, 0, 7, 17, 25, 41, 77, 57, 23, 21, - 13, 17, 33, 53, 57, 89, 21, 66, 34, 22, - 6, 3, 21, 33, 41, 53, 124, 53, 35, 23, - 5, 13, 2, 8, 10, 17, 6, 14, 2, 29, - 15, 11, 30, 10, 42, 34, 58, 58, 38, 38, - 48, 38, 30, 5, 20, 7, 69, 57, 51, 41, - 35, 35, 35, 37, 7, 23, 21, 19, 2, 23, - 37, 63, 49, 63, 25, 15, 13, 13, 9, 3, - 5, 0, 0, 7, 11, 8, 5, 23, 102, 84, - 88, 88, 86, 94, 86, 82, 70, 70, 74, 62, - 26, 32, 18, 72, 66, 62, 46, 50, 40, 14, - 4, 5, 25, 33, 57, 17, 79, 124, 124, 124, - 124, 124, 124, 124, 122, 112, 106, 98, 90, 72, - 36, 0, 108, 104, 48, 114, 124, 104, 92, 98, - 88, 76, 86, 74, 70, 42, 46, 24, 21, 58, - 38, 6, 97, 79, 85, 33, 43, 37, 8, 21, - 19, 9, 0, 36, 12, 48, 11, 124, 124, 122, - 112, 82, 76, 20, 9, 53, 19, 82, 58, 40, - 18, 18, 4, 1, 9, 49, 71, 55, 39, 41, - 33, 9, 23, 31, 9, 3, 1, 0, 6, 16, - 8, 124, 124, 118, 104, 96, 84, 56, 30, 19, - }, - - { - /* Context Tables for I, SI Slices :: qp = 8 */ - - 124, 16, 23, 124, 16, 23, 99, 57, 26, 20, - 18, 38, 100, 106, 108, 28, 71, 8, 15, 8, - 2, 16, 15, 10, 19, 32, 98, 33, 69, 89, - 81, 61, 7, 15, 8, 2, 39, 45, 10, 28, - 7, 29, 53, 10, 13, 39, 51, 10, 21, 51, - 14, 15, 31, 49, 0, 15, 17, 27, 9, 10, - 44, 0, 0, 0, 29, 49, 67, 9, 32, 0, - 104, 16, 11, 109, 63, 37, 13, 65, 99, 95, - 103, 45, 99, 79, 97, 101, 91, 101, 91, 12, - 7, 25, 67, 9, 51, 43, 97, 19, 61, 47, - 107, 18, 31, 17, 101, 51, 35, 23, 9, 4, - 5, 29, 10, 4, 3, 10, 3, 1, 4, 27, - 26, 16, 46, 38, 40, 36, 34, 34, 62, 24, - 20, 60, 44, 11, 75, 57, 61, 41, 49, 39, - 25, 35, 31, 33, 41, 13, 17, 15, 9, 69, - 57, 63, 19, 19, 11, 11, 20, 2, 2, 3, - 32, 1, 4, 2, 2, 29, 102, 94, 68, 78, - 94, 76, 42, 78, 62, 40, 52, 32, 10, 2, - 1, 38, 26, 34, 32, 26, 20, 32, 18, 28, - 24, 6, 8, 18, 51, 124, 124, 124, 124, 124, - 124, 124, 124, 124, 122, 116, 116, 98, 86, 52, - 108, 94, 56, 122, 100, 104, 94, 84, 78, 84, - 60, 44, 16, 26, 13, 21, 69, 11, 48, 32, - 22, 4, 10, 0, 15, 19, 45, 1, 78, 52, - 40, 34, 14, 1, 19, 21, 35, 45, 32, 16, - 8, 0, 7, 17, 25, 39, 75, 55, 21, 19, - 13, 17, 31, 51, 55, 87, 21, 66, 34, 22, - 6, 1, 21, 33, 39, 53, 124, 53, 35, 23, - 5, 13, 2, 8, 10, 17, 6, 14, 4, 29, - 15, 11, 28, 10, 40, 32, 56, 56, 38, 34, - 44, 38, 30, 7, 18, 9, 69, 55, 49, 41, - 35, 35, 33, 35, 9, 23, 21, 19, 0, 23, - 37, 63, 49, 65, 25, 15, 13, 11, 9, 3, - 5, 0, 1, 7, 9, 6, 5, 25, 100, 82, - 88, 86, 82, 92, 84, 80, 68, 68, 72, 60, - 24, 30, 16, 68, 64, 58, 42, 46, 38, 12, - 2, 5, 25, 33, 57, 19, 79, 124, 124, 124, - 124, 124, 124, 122, 116, 108, 102, 94, 84, 68, - 34, 1, 104, 100, 44, 110, 122, 98, 86, 92, - 82, 72, 82, 68, 66, 38, 40, 20, 23, 54, - 34, 2, 95, 77, 83, 31, 41, 37, 10, 19, - 19, 9, 0, 38, 14, 50, 9, 124, 124, 116, - 106, 76, 70, 14, 13, 55, 19, 82, 58, 40, - 18, 18, 4, 1, 9, 47, 71, 53, 37, 41, - 31, 9, 21, 31, 9, 3, 1, 0, 8, 16, - 6, 124, 124, 114, 100, 92, 80, 52, 26, 21, - }, - - { - /* Context Tables for I, SI Slices :: qp = 9 */ - - 124, 16, 23, 124, 16, 23, 95, 55, 28, 20, - 18, 36, 98, 104, 108, 28, 67, 8, 13, 10, - 2, 16, 13, 8, 21, 30, 94, 35, 71, 91, - 75, 57, 7, 13, 10, 2, 37, 43, 12, 26, - 7, 27, 51, 10, 13, 39, 51, 10, 21, 49, - 14, 15, 31, 49, 0, 15, 15, 27, 9, 10, - 44, 0, 0, 0, 27, 49, 67, 9, 30, 0, - 104, 16, 11, 107, 61, 37, 13, 63, 95, 91, - 99, 41, 95, 77, 93, 99, 89, 99, 89, 14, - 5, 23, 65, 9, 49, 41, 93, 19, 59, 47, - 103, 20, 31, 17, 97, 51, 33, 23, 9, 6, - 3, 27, 10, 4, 3, 10, 1, 1, 4, 25, - 26, 16, 46, 38, 38, 36, 34, 34, 58, 24, - 20, 58, 42, 11, 73, 55, 59, 39, 47, 37, - 23, 33, 31, 31, 39, 13, 17, 15, 11, 67, - 55, 63, 17, 19, 9, 11, 18, 4, 2, 3, - 30, 0, 2, 0, 2, 29, 100, 92, 68, 76, - 92, 74, 42, 78, 62, 38, 50, 32, 10, 2, - 1, 38, 24, 32, 30, 24, 18, 32, 18, 26, - 22, 6, 6, 16, 51, 124, 124, 124, 124, 124, - 124, 124, 124, 124, 118, 112, 112, 92, 82, 46, - 106, 90, 54, 118, 96, 100, 90, 80, 74, 80, - 56, 40, 16, 22, 15, 21, 69, 11, 50, 32, - 22, 6, 10, 0, 13, 19, 43, 1, 78, 52, - 42, 34, 16, 0, 17, 19, 33, 43, 34, 18, - 10, 2, 5, 15, 25, 37, 73, 53, 17, 17, - 11, 15, 29, 49, 53, 85, 19, 66, 36, 24, - 6, 0, 19, 31, 37, 51, 124, 51, 33, 21, - 5, 13, 2, 10, 12, 17, 6, 16, 6, 29, - 15, 11, 28, 10, 38, 32, 54, 56, 38, 32, - 42, 38, 30, 7, 16, 11, 67, 53, 47, 41, - 33, 35, 31, 33, 9, 23, 21, 17, 0, 23, - 37, 63, 47, 65, 25, 15, 13, 9, 9, 3, - 3, 0, 1, 7, 7, 4, 5, 25, 98, 82, - 88, 86, 80, 90, 82, 78, 68, 66, 70, 60, - 24, 28, 14, 66, 62, 54, 38, 44, 36, 12, - 2, 5, 23, 31, 57, 21, 77, 124, 124, 124, - 124, 124, 124, 118, 112, 104, 98, 90, 80, 64, - 32, 3, 100, 98, 42, 106, 118, 94, 82, 88, - 78, 68, 78, 64, 62, 36, 36, 16, 25, 50, - 30, 1, 93, 73, 79, 29, 39, 35, 14, 17, - 17, 9, 2, 42, 16, 54, 7, 124, 124, 112, - 100, 72, 64, 10, 17, 57, 19, 82, 58, 40, - 18, 20, 4, 1, 9, 45, 69, 51, 35, 39, - 27, 7, 19, 29, 7, 1, 0, 0, 10, 16, - 6, 124, 122, 112, 98, 88, 76, 48, 22, 21, - }, - - { - /* Context Tables for I, SI Slices :: qp = 10 */ - - 124, 16, 23, 124, 16, 23, 91, 51, 28, 20, - 16, 32, 94, 100, 108, 28, 61, 6, 11, 10, - 2, 14, 13, 6, 23, 30, 90, 39, 73, 91, - 69, 55, 7, 11, 10, 2, 37, 41, 12, 26, - 7, 27, 51, 10, 15, 37, 51, 10, 21, 47, - 12, 15, 31, 49, 2, 13, 15, 25, 7, 10, - 44, 0, 0, 0, 27, 49, 67, 7, 28, 0, - 104, 16, 11, 105, 59, 37, 11, 59, 93, 87, - 97, 39, 93, 73, 89, 97, 87, 97, 89, 16, - 5, 21, 63, 9, 49, 39, 89, 19, 59, 45, - 101, 20, 29, 15, 95, 49, 33, 23, 7, 6, - 3, 25, 12, 6, 5, 8, 1, 1, 4, 25, - 26, 14, 44, 38, 38, 36, 34, 32, 54, 24, - 18, 54, 40, 13, 71, 53, 57, 37, 45, 35, - 21, 31, 29, 29, 37, 13, 17, 13, 13, 67, - 53, 63, 17, 19, 9, 11, 16, 6, 2, 3, - 26, 2, 2, 1, 2, 31, 96, 90, 66, 74, - 90, 72, 40, 76, 62, 36, 48, 32, 10, 2, - 3, 36, 24, 30, 30, 22, 16, 30, 16, 22, - 20, 4, 4, 14, 51, 124, 124, 124, 124, 124, - 124, 124, 124, 124, 114, 108, 106, 88, 78, 42, - 102, 88, 50, 112, 92, 96, 86, 74, 70, 74, - 52, 34, 14, 20, 19, 23, 69, 11, 50, 34, - 22, 6, 10, 0, 13, 19, 43, 0, 80, 52, - 42, 34, 18, 0, 15, 19, 31, 41, 36, 20, - 10, 2, 3, 15, 23, 37, 71, 53, 15, 17, - 11, 15, 27, 47, 53, 83, 19, 68, 36, 24, - 6, 2, 17, 29, 35, 49, 124, 51, 33, 21, - 5, 13, 2, 10, 12, 15, 6, 16, 6, 29, - 15, 11, 26, 12, 36, 30, 52, 54, 38, 30, - 40, 36, 30, 9, 14, 11, 65, 53, 45, 39, - 33, 33, 31, 31, 9, 23, 21, 17, 1, 23, - 37, 61, 45, 65, 25, 13, 13, 9, 9, 3, - 1, 0, 1, 7, 5, 4, 7, 27, 96, 82, - 86, 84, 78, 88, 80, 76, 66, 64, 68, 58, - 22, 26, 12, 62, 58, 52, 34, 42, 34, 10, - 0, 7, 23, 31, 57, 21, 75, 124, 124, 124, - 124, 124, 120, 114, 106, 100, 94, 86, 76, 60, - 28, 5, 96, 94, 40, 102, 114, 90, 78, 84, - 74, 64, 74, 60, 56, 32, 32, 12, 27, 46, - 26, 3, 91, 71, 77, 29, 37, 33, 18, 15, - 15, 9, 4, 44, 20, 56, 7, 124, 120, 106, - 94, 66, 58, 4, 21, 59, 19, 82, 58, 40, - 18, 20, 4, 1, 9, 45, 67, 49, 33, 37, - 25, 5, 19, 27, 5, 0, 2, 2, 10, 18, - 6, 120, 118, 108, 94, 84, 72, 44, 18, 23, - }, - - { - /* Context Tables for I, SI Slices :: qp = 11 */ - - 124, 16, 25, 124, 16, 25, 87, 49, 30, 20, - 16, 30, 92, 98, 108, 28, 57, 6, 11, 12, - 2, 12, 13, 4, 25, 28, 88, 41, 75, 93, - 63, 53, 7, 11, 12, 2, 35, 39, 14, 24, - 5, 25, 49, 8, 15, 37, 51, 10, 19, 47, - 12, 15, 29, 49, 2, 13, 15, 25, 7, 10, - 44, 0, 0, 0, 25, 49, 67, 7, 28, 1, - 104, 16, 11, 103, 59, 37, 11, 57, 89, 83, - 93, 37, 89, 71, 85, 95, 85, 95, 87, 18, - 5, 19, 63, 7, 47, 39, 85, 19, 57, 45, - 99, 20, 29, 15, 91, 49, 31, 21, 7, 6, - 3, 23, 12, 6, 5, 8, 1, 1, 4, 25, - 26, 14, 44, 38, 36, 36, 34, 32, 50, 24, - 18, 50, 38, 15, 71, 51, 57, 37, 43, 35, - 19, 31, 29, 29, 33, 13, 17, 13, 15, 65, - 51, 63, 17, 19, 7, 9, 14, 6, 2, 3, - 24, 4, 0, 3, 2, 33, 94, 88, 66, 74, - 88, 72, 40, 74, 60, 34, 46, 32, 10, 2, - 3, 34, 22, 28, 28, 22, 14, 28, 16, 18, - 18, 4, 2, 12, 51, 124, 124, 124, 124, 124, - 124, 124, 124, 124, 108, 104, 102, 82, 72, 36, - 98, 84, 48, 108, 86, 90, 80, 70, 64, 70, - 46, 30, 12, 16, 21, 25, 69, 9, 52, 34, - 24, 6, 10, 0, 13, 19, 41, 0, 80, 54, - 42, 34, 20, 2, 15, 17, 31, 39, 38, 20, - 12, 2, 1, 13, 23, 35, 69, 51, 13, 15, - 9, 15, 27, 47, 51, 79, 17, 68, 36, 24, - 8, 2, 17, 27, 35, 47, 124, 49, 31, 19, - 5, 13, 2, 10, 12, 15, 8, 16, 8, 29, - 15, 13, 26, 12, 34, 28, 50, 52, 38, 28, - 38, 36, 30, 9, 12, 13, 63, 51, 43, 39, - 31, 33, 29, 31, 9, 21, 19, 15, 1, 23, - 37, 61, 43, 65, 25, 13, 13, 7, 9, 3, - 0, 1, 1, 7, 5, 2, 7, 29, 94, 80, - 86, 82, 76, 88, 80, 74, 64, 64, 66, 56, - 20, 24, 10, 60, 56, 48, 30, 38, 30, 8, - 0, 7, 23, 31, 55, 23, 73, 124, 124, 124, - 124, 124, 116, 110, 102, 96, 88, 82, 70, 56, - 26, 5, 94, 92, 36, 98, 108, 86, 74, 80, - 70, 60, 68, 56, 52, 28, 28, 10, 31, 42, - 22, 7, 89, 69, 75, 27, 35, 31, 20, 13, - 13, 9, 6, 48, 22, 60, 5, 122, 118, 102, - 88, 60, 54, 1, 25, 63, 17, 82, 58, 40, - 18, 20, 4, 1, 9, 43, 65, 49, 31, 35, - 23, 5, 17, 25, 5, 0, 2, 2, 12, 18, - 6, 118, 116, 104, 90, 82, 70, 38, 16, 25, - }, - - { - /* Context Tables for I, SI Slices :: qp = 12 */ - - 124, 16, 25, 124, 16, 25, 85, 45, 30, 20, - 14, 26, 88, 96, 108, 28, 53, 6, 9, 14, - 2, 10, 13, 2, 27, 28, 84, 45, 77, 93, - 57, 51, 7, 9, 14, 2, 35, 37, 14, 24, - 5, 25, 47, 8, 17, 37, 51, 10, 19, 45, - 12, 17, 29, 49, 4, 13, 15, 25, 5, 10, - 44, 0, 0, 0, 25, 51, 67, 5, 26, 1, - 104, 16, 11, 101, 57, 37, 9, 55, 85, 79, - 91, 35, 85, 69, 81, 93, 85, 93, 85, 18, - 5, 17, 61, 7, 47, 37, 81, 19, 57, 43, - 97, 20, 29, 13, 89, 47, 29, 21, 7, 6, - 3, 23, 14, 8, 7, 8, 1, 1, 4, 25, - 26, 12, 42, 38, 34, 36, 34, 32, 46, 24, - 16, 46, 36, 17, 69, 49, 55, 35, 43, 33, - 17, 29, 27, 27, 31, 13, 17, 13, 17, 65, - 49, 63, 17, 19, 5, 9, 12, 8, 2, 3, - 22, 6, 0, 5, 2, 35, 90, 86, 64, 72, - 86, 70, 38, 72, 60, 30, 44, 30, 10, 2, - 5, 32, 20, 26, 26, 20, 12, 26, 14, 14, - 16, 2, 0, 10, 51, 124, 124, 122, 124, 124, - 124, 124, 124, 122, 104, 100, 96, 78, 68, 32, - 94, 80, 44, 104, 82, 86, 76, 66, 60, 64, - 42, 24, 10, 12, 23, 27, 69, 9, 52, 34, - 24, 6, 10, 0, 13, 19, 41, 0, 80, 54, - 42, 34, 22, 2, 13, 17, 29, 39, 40, 22, - 12, 2, 1, 13, 21, 35, 67, 49, 11, 13, - 9, 15, 25, 45, 49, 77, 17, 68, 36, 24, - 8, 4, 15, 27, 33, 45, 124, 49, 31, 19, - 5, 13, 2, 10, 12, 15, 8, 16, 8, 29, - 15, 13, 24, 14, 32, 26, 48, 50, 38, 24, - 36, 36, 30, 11, 10, 13, 63, 49, 41, 37, - 31, 31, 29, 29, 11, 21, 19, 15, 3, 23, - 37, 59, 41, 65, 25, 13, 13, 5, 9, 3, - 2, 1, 3, 7, 3, 0, 7, 31, 92, 80, - 84, 80, 74, 86, 78, 72, 62, 62, 64, 54, - 18, 22, 8, 56, 54, 46, 26, 36, 28, 6, - 1, 9, 23, 31, 55, 23, 73, 124, 124, 124, - 124, 124, 112, 106, 96, 92, 84, 78, 66, 52, - 22, 7, 90, 88, 34, 94, 104, 82, 70, 74, - 66, 56, 64, 52, 46, 24, 24, 6, 33, 38, - 18, 9, 87, 67, 73, 25, 33, 29, 24, 11, - 11, 9, 8, 50, 26, 62, 3, 118, 114, 96, - 82, 54, 48, 7, 29, 65, 17, 82, 58, 40, - 18, 20, 4, 1, 9, 43, 63, 47, 29, 35, - 21, 3, 17, 23, 3, 2, 4, 2, 12, 18, - 6, 116, 112, 100, 86, 78, 66, 34, 12, 27, - }, - - { - /* Context Tables for I, SI Slices :: qp = 13 */ - - 124, 16, 25, 124, 16, 25, 81, 43, 30, 20, - 14, 24, 86, 92, 108, 28, 47, 4, 7, 14, - 2, 10, 11, 0, 29, 26, 80, 49, 79, 95, - 51, 47, 7, 7, 14, 2, 35, 35, 14, 22, - 5, 25, 47, 8, 17, 35, 51, 10, 19, 43, - 10, 17, 29, 49, 4, 11, 13, 23, 5, 10, - 44, 0, 0, 0, 23, 51, 67, 5, 24, 1, - 104, 16, 11, 99, 55, 37, 9, 51, 83, 75, - 87, 33, 83, 65, 77, 91, 83, 91, 85, 20, - 5, 15, 59, 7, 45, 35, 77, 19, 57, 43, - 93, 22, 27, 13, 87, 47, 29, 21, 5, 8, - 1, 21, 14, 8, 7, 6, 1, 1, 4, 25, - 26, 12, 40, 38, 34, 36, 34, 30, 42, 24, - 16, 44, 34, 19, 67, 47, 53, 33, 41, 31, - 15, 27, 27, 25, 29, 13, 17, 11, 19, 63, - 47, 63, 15, 19, 5, 9, 10, 10, 2, 3, - 18, 8, 1, 7, 2, 35, 88, 84, 64, 70, - 84, 68, 36, 72, 60, 28, 42, 30, 10, 2, - 5, 32, 20, 24, 26, 18, 10, 26, 12, 10, - 14, 0, 1, 8, 51, 122, 124, 118, 124, 122, - 120, 120, 120, 118, 100, 96, 92, 72, 64, 26, - 90, 78, 40, 98, 78, 82, 72, 60, 56, 58, - 38, 20, 8, 10, 27, 27, 69, 9, 52, 36, - 24, 6, 10, 0, 13, 19, 39, 2, 82, 54, - 42, 34, 24, 4, 11, 17, 27, 37, 42, 24, - 12, 4, 0, 11, 21, 33, 65, 49, 7, 13, - 9, 13, 23, 43, 49, 75, 15, 70, 38, 24, - 8, 6, 13, 25, 31, 43, 124, 49, 31, 17, - 5, 13, 2, 10, 12, 13, 8, 18, 10, 29, - 15, 13, 22, 14, 30, 24, 46, 50, 38, 22, - 34, 34, 30, 13, 8, 15, 61, 49, 39, 37, - 29, 31, 27, 27, 11, 21, 19, 15, 5, 23, - 37, 59, 39, 65, 25, 11, 13, 5, 9, 3, - 4, 1, 3, 7, 1, 0, 9, 31, 90, 80, - 84, 80, 72, 84, 76, 70, 62, 60, 62, 52, - 16, 20, 6, 54, 50, 42, 22, 34, 26, 4, - 3, 9, 23, 29, 55, 25, 71, 124, 124, 124, - 124, 120, 108, 102, 92, 88, 80, 74, 62, 48, - 20, 9, 86, 84, 32, 90, 100, 78, 66, 70, - 62, 52, 60, 48, 42, 20, 20, 2, 35, 34, - 14, 13, 85, 63, 71, 25, 31, 27, 28, 9, - 9, 9, 10, 54, 28, 66, 3, 116, 110, 92, - 76, 50, 42, 11, 33, 67, 17, 82, 58, 40, - 18, 20, 4, 1, 9, 41, 61, 45, 27, 33, - 19, 1, 15, 21, 1, 4, 6, 4, 14, 20, - 6, 112, 110, 98, 84, 74, 62, 30, 8, 29, - }, - - { - /* Context Tables for I, SI Slices :: qp = 14 */ - - 122, 16, 25, 122, 16, 25, 77, 39, 32, 20, - 12, 20, 82, 90, 108, 28, 43, 4, 5, 16, - 2, 8, 11, 1, 31, 26, 76, 51, 81, 95, - 45, 45, 7, 5, 16, 2, 33, 33, 16, 22, - 5, 23, 45, 6, 19, 35, 51, 10, 19, 43, - 10, 17, 29, 49, 6, 11, 13, 23, 3, 10, - 44, 0, 0, 0, 23, 51, 67, 3, 22, 1, - 104, 16, 11, 97, 53, 37, 7, 49, 79, 71, - 85, 31, 79, 63, 73, 89, 81, 89, 83, 22, - 5, 13, 57, 7, 45, 35, 73, 19, 55, 41, - 91, 22, 27, 11, 83, 45, 27, 21, 5, 8, - 1, 19, 16, 10, 9, 6, 1, 1, 4, 25, - 26, 10, 40, 38, 32, 36, 34, 30, 38, 24, - 14, 40, 32, 21, 65, 45, 51, 31, 39, 31, - 13, 27, 25, 23, 27, 13, 17, 11, 21, 63, - 45, 63, 15, 19, 3, 9, 8, 12, 2, 3, - 16, 10, 1, 9, 2, 37, 84, 82, 62, 68, - 82, 66, 36, 70, 58, 26, 40, 30, 10, 2, - 7, 30, 18, 22, 24, 16, 8, 24, 12, 6, - 12, 0, 3, 6, 51, 120, 122, 116, 124, 118, - 116, 116, 116, 112, 94, 92, 86, 68, 58, 22, - 86, 74, 38, 94, 74, 76, 66, 56, 50, 54, - 34, 14, 6, 6, 29, 29, 69, 9, 54, 36, - 24, 6, 10, 0, 13, 19, 39, 2, 82, 54, - 42, 34, 26, 4, 11, 15, 27, 35, 44, 24, - 14, 4, 2, 11, 19, 33, 63, 47, 5, 11, - 7, 13, 21, 41, 47, 73, 15, 70, 38, 24, - 8, 8, 13, 23, 29, 41, 124, 47, 29, 17, - 5, 13, 2, 10, 12, 13, 8, 18, 10, 29, - 15, 13, 22, 16, 28, 22, 44, 48, 38, 20, - 32, 34, 30, 13, 6, 15, 59, 47, 37, 35, - 29, 29, 27, 25, 11, 21, 19, 13, 5, 23, - 37, 57, 37, 65, 25, 11, 13, 3, 9, 3, - 6, 1, 3, 7, 0, 1, 9, 33, 88, 78, - 82, 78, 70, 82, 74, 68, 60, 58, 60, 50, - 14, 18, 4, 50, 48, 40, 18, 30, 24, 2, - 3, 11, 23, 29, 55, 25, 69, 124, 124, 122, - 122, 114, 104, 98, 86, 84, 76, 70, 56, 44, - 16, 11, 82, 82, 28, 86, 96, 74, 62, 66, - 58, 48, 56, 44, 36, 16, 16, 1, 37, 30, - 10, 15, 83, 61, 69, 23, 29, 25, 30, 7, - 7, 9, 12, 56, 32, 68, 1, 112, 108, 86, - 70, 44, 36, 17, 37, 69, 17, 82, 58, 40, - 18, 20, 4, 1, 9, 41, 59, 43, 25, 31, - 17, 1, 15, 19, 1, 4, 6, 4, 14, 20, - 6, 110, 106, 94, 80, 70, 58, 26, 4, 31, - }, - - { - /* Context Tables for I, SI Slices :: qp = 15 */ - - 120, 16, 25, 120, 16, 25, 73, 37, 32, 20, - 12, 18, 80, 88, 108, 28, 39, 4, 3, 18, - 2, 6, 11, 3, 33, 24, 72, 55, 83, 97, - 39, 43, 7, 3, 18, 2, 33, 31, 16, 20, - 5, 23, 43, 6, 19, 35, 51, 10, 19, 41, - 10, 17, 29, 49, 6, 11, 13, 23, 3, 10, - 44, 0, 0, 0, 21, 51, 67, 3, 20, 1, - 104, 16, 11, 95, 51, 37, 7, 47, 75, 67, - 81, 29, 75, 61, 69, 87, 79, 87, 81, 24, - 5, 11, 55, 7, 43, 33, 69, 19, 55, 41, - 89, 22, 27, 11, 81, 45, 25, 21, 5, 8, - 1, 17, 16, 10, 9, 6, 1, 1, 4, 25, - 26, 10, 38, 38, 30, 36, 34, 30, 34, 24, - 14, 36, 30, 23, 63, 43, 49, 29, 37, 29, - 11, 25, 25, 21, 25, 13, 17, 11, 23, 61, - 43, 63, 15, 19, 1, 9, 6, 14, 2, 3, - 14, 12, 3, 11, 2, 39, 82, 80, 62, 66, - 80, 64, 34, 68, 58, 24, 38, 30, 10, 2, - 7, 28, 16, 20, 22, 14, 6, 22, 10, 2, - 10, 1, 5, 4, 51, 116, 120, 112, 120, 114, - 112, 112, 112, 108, 90, 88, 82, 62, 54, 16, - 82, 70, 34, 90, 70, 72, 62, 52, 46, 48, - 30, 10, 4, 2, 31, 31, 69, 9, 54, 36, - 24, 6, 10, 0, 13, 19, 37, 2, 82, 54, - 42, 34, 28, 6, 9, 15, 25, 33, 46, 26, - 14, 4, 4, 9, 19, 31, 61, 45, 3, 9, - 7, 13, 19, 39, 45, 71, 13, 70, 38, 24, - 8, 10, 11, 21, 27, 39, 124, 47, 29, 15, - 5, 13, 2, 10, 12, 13, 8, 18, 12, 29, - 15, 13, 20, 16, 26, 20, 42, 46, 38, 18, - 30, 34, 30, 15, 4, 17, 57, 45, 35, 35, - 27, 29, 25, 23, 11, 21, 19, 13, 7, 23, - 37, 57, 35, 65, 25, 11, 13, 1, 9, 3, - 8, 1, 3, 7, 2, 3, 9, 35, 86, 78, - 82, 76, 68, 80, 72, 66, 58, 56, 58, 48, - 12, 16, 2, 48, 46, 36, 14, 28, 22, 0, - 5, 11, 23, 29, 55, 27, 67, 124, 124, 118, - 118, 108, 100, 94, 82, 80, 72, 66, 52, 40, - 14, 13, 78, 78, 26, 82, 92, 70, 58, 62, - 54, 44, 52, 40, 32, 12, 12, 5, 39, 26, - 6, 19, 81, 59, 67, 21, 27, 23, 34, 5, - 5, 9, 14, 60, 34, 72, 0, 110, 104, 82, - 64, 38, 30, 23, 41, 71, 17, 82, 58, 40, - 18, 20, 4, 1, 9, 39, 57, 41, 23, 29, - 15, 0, 13, 17, 0, 6, 8, 4, 16, 20, - 6, 108, 104, 90, 76, 66, 54, 22, 0, 33, - }, - - { - /* Context Tables for I, SI Slices :: qp = 16 */ - - 116, 14, 27, 116, 14, 27, 71, 35, 32, 20, - 10, 14, 76, 84, 106, 28, 35, 2, 3, 18, - 0, 4, 11, 7, 37, 22, 68, 59, 85, 99, - 35, 41, 9, 3, 18, 0, 33, 29, 16, 18, - 5, 23, 43, 4, 21, 35, 53, 10, 19, 41, - 8, 19, 29, 49, 6, 11, 13, 23, 3, 8, - 44, 0, 0, 0, 21, 53, 67, 3, 18, 3, - 104, 14, 11, 93, 51, 37, 7, 45, 73, 65, - 79, 27, 73, 59, 67, 85, 79, 85, 81, 24, - 5, 11, 55, 7, 43, 33, 67, 19, 55, 41, - 87, 22, 27, 11, 79, 45, 25, 21, 5, 8, - 1, 17, 16, 10, 11, 4, 1, 3, 4, 25, - 24, 8, 36, 38, 28, 34, 34, 28, 30, 22, - 12, 32, 28, 25, 63, 43, 49, 29, 37, 29, - 9, 25, 25, 21, 23, 15, 17, 11, 27, 61, - 43, 63, 15, 21, 1, 9, 4, 14, 2, 3, - 10, 12, 5, 13, 2, 41, 78, 78, 60, 64, - 78, 62, 32, 66, 56, 20, 36, 28, 8, 2, - 9, 26, 14, 18, 20, 12, 4, 20, 8, 1, - 6, 3, 9, 0, 51, 112, 116, 108, 116, 110, - 106, 106, 106, 102, 84, 82, 76, 56, 48, 10, - 78, 66, 30, 84, 64, 66, 56, 46, 40, 42, - 24, 4, 2, 1, 35, 33, 71, 9, 54, 36, - 24, 6, 10, 1, 13, 19, 37, 2, 82, 54, - 42, 34, 30, 6, 9, 15, 25, 33, 46, 26, - 14, 4, 4, 9, 19, 31, 59, 45, 1, 9, - 7, 13, 19, 39, 45, 69, 13, 70, 38, 24, - 8, 10, 11, 21, 27, 39, 124, 47, 29, 15, - 5, 13, 2, 10, 12, 13, 8, 18, 12, 29, - 15, 15, 18, 16, 24, 18, 40, 44, 36, 14, - 26, 32, 28, 17, 0, 19, 57, 45, 33, 35, - 27, 29, 25, 23, 13, 21, 19, 13, 9, 23, - 37, 57, 35, 67, 25, 11, 13, 1, 11, 3, - 8, 3, 5, 7, 2, 5, 11, 37, 84, 76, - 80, 74, 64, 78, 70, 64, 56, 54, 56, 46, - 10, 12, 1, 44, 42, 32, 10, 24, 18, 1, - 7, 13, 23, 29, 55, 29, 67, 124, 122, 114, - 112, 102, 94, 88, 76, 74, 66, 60, 46, 34, - 10, 15, 74, 74, 22, 78, 86, 64, 52, 56, - 48, 40, 46, 34, 26, 8, 6, 9, 43, 22, - 2, 23, 79, 57, 65, 21, 27, 23, 36, 5, - 5, 9, 14, 62, 36, 74, 0, 106, 100, 76, - 56, 32, 24, 29, 47, 75, 17, 82, 56, 38, - 18, 20, 4, 3, 9, 39, 57, 41, 23, 29, - 13, 0, 13, 17, 0, 6, 8, 4, 16, 20, - 4, 104, 100, 86, 72, 62, 50, 16, 3, 35, - }, - - { - /* Context Tables for I, SI Slices :: qp = 17 */ - - 114, 14, 27, 114, 14, 27, 67, 31, 34, 22, - 10, 12, 74, 82, 106, 28, 29, 2, 1, 20, - 0, 4, 9, 9, 39, 22, 66, 61, 87, 99, - 29, 37, 9, 1, 20, 0, 31, 25, 18, 18, - 3, 21, 41, 4, 21, 33, 53, 10, 17, 39, - 8, 19, 27, 49, 8, 9, 11, 21, 1, 8, - 44, 0, 0, 0, 19, 53, 67, 1, 18, 3, - 104, 14, 11, 89, 49, 37, 5, 41, 69, 61, - 75, 23, 69, 55, 63, 81, 77, 83, 79, 26, - 3, 9, 53, 5, 41, 31, 63, 17, 53, 39, - 83, 24, 25, 9, 75, 43, 23, 19, 3, 10, - 0, 15, 18, 12, 11, 4, 0, 3, 4, 23, - 24, 8, 36, 38, 28, 34, 34, 28, 28, 22, - 12, 30, 26, 25, 61, 41, 47, 27, 35, 27, - 7, 23, 23, 19, 19, 15, 17, 9, 29, 59, - 41, 63, 13, 21, 0, 7, 4, 16, 2, 3, - 8, 14, 5, 15, 2, 41, 76, 78, 60, 64, - 78, 62, 32, 66, 56, 18, 36, 28, 8, 2, - 9, 26, 14, 18, 20, 12, 2, 20, 8, 3, - 4, 3, 11, 1, 51, 110, 114, 106, 114, 108, - 102, 102, 102, 98, 80, 78, 72, 52, 44, 6, - 76, 64, 28, 80, 60, 62, 52, 42, 36, 38, - 20, 0, 2, 3, 37, 33, 71, 7, 56, 38, - 26, 8, 10, 1, 11, 17, 35, 4, 84, 56, - 44, 34, 32, 8, 7, 13, 23, 31, 48, 28, - 16, 6, 6, 7, 17, 29, 55, 43, 2, 7, - 5, 11, 17, 37, 43, 65, 11, 72, 40, 26, - 10, 12, 9, 19, 25, 37, 124, 45, 27, 13, - 5, 11, 2, 12, 14, 11, 10, 20, 14, 27, - 15, 15, 18, 18, 24, 18, 38, 44, 36, 12, - 24, 32, 28, 17, 1, 19, 55, 43, 31, 33, - 25, 27, 23, 21, 13, 19, 17, 11, 9, 21, - 35, 55, 33, 67, 25, 9, 13, 0, 11, 3, - 10, 3, 5, 5, 4, 5, 11, 37, 84, 76, - 80, 74, 62, 78, 70, 64, 56, 54, 56, 46, - 10, 10, 3, 42, 40, 30, 8, 22, 16, 1, - 7, 13, 21, 27, 53, 29, 65, 120, 118, 110, - 108, 98, 90, 84, 72, 70, 62, 56, 42, 30, - 8, 15, 72, 72, 20, 76, 82, 60, 48, 52, - 44, 36, 42, 30, 22, 6, 2, 11, 45, 20, - 0, 25, 75, 53, 61, 19, 25, 21, 40, 3, - 3, 9, 16, 66, 40, 78, 2, 104, 98, 72, - 50, 28, 20, 33, 51, 77, 15, 84, 56, 38, - 18, 22, 4, 3, 9, 37, 55, 39, 21, 27, - 9, 2, 11, 15, 2, 8, 10, 6, 18, 22, - 4, 102, 98, 84, 70, 60, 48, 12, 5, 35, - }, - - { - /* Context Tables for I, SI Slices :: qp = 18 */ - - 112, 14, 27, 112, 14, 27, 63, 29, 34, 22, - 10, 10, 72, 80, 106, 28, 25, 2, 0, 22, - 0, 2, 9, 11, 41, 20, 62, 65, 89, 101, - 23, 35, 9, 0, 22, 0, 31, 23, 18, 16, - 3, 21, 39, 4, 21, 33, 53, 10, 17, 37, - 8, 19, 27, 49, 8, 9, 11, 21, 1, 8, - 44, 0, 0, 0, 17, 53, 67, 1, 16, 3, - 104, 14, 11, 87, 47, 37, 5, 39, 65, 57, - 73, 21, 65, 53, 59, 79, 75, 81, 77, 28, - 3, 7, 51, 5, 41, 29, 59, 17, 53, 39, - 81, 24, 25, 9, 73, 43, 21, 19, 3, 10, - 0, 13, 18, 12, 13, 4, 0, 3, 4, 23, - 24, 8, 34, 38, 26, 34, 34, 28, 24, 22, - 12, 26, 24, 27, 59, 39, 45, 25, 33, 25, - 5, 21, 23, 17, 17, 15, 17, 9, 31, 59, - 39, 63, 13, 21, 2, 7, 2, 18, 2, 3, - 6, 16, 7, 17, 2, 43, 72, 76, 58, 62, - 76, 60, 30, 64, 56, 16, 34, 28, 8, 2, - 9, 24, 12, 16, 18, 10, 0, 18, 6, 7, - 2, 5, 13, 3, 51, 106, 112, 102, 110, 104, - 98, 98, 98, 92, 76, 74, 66, 46, 40, 0, - 72, 60, 24, 76, 56, 58, 48, 38, 32, 32, - 16, 3, 0, 7, 39, 35, 71, 7, 56, 38, - 26, 8, 10, 1, 11, 17, 33, 4, 84, 56, - 44, 34, 34, 8, 5, 13, 21, 29, 50, 30, - 16, 6, 8, 7, 17, 27, 53, 41, 4, 5, - 5, 11, 15, 35, 41, 63, 11, 72, 40, 26, - 10, 14, 7, 17, 23, 35, 124, 45, 27, 13, - 5, 11, 2, 12, 14, 11, 10, 20, 16, 27, - 15, 15, 16, 18, 22, 16, 36, 42, 36, 10, - 22, 32, 28, 19, 3, 21, 53, 41, 29, 33, - 25, 27, 21, 19, 13, 19, 17, 11, 11, 21, - 35, 55, 31, 67, 25, 9, 13, 2, 11, 3, - 12, 3, 5, 5, 6, 7, 11, 39, 82, 76, - 80, 72, 60, 76, 68, 62, 54, 52, 54, 44, - 8, 8, 5, 38, 38, 26, 4, 20, 14, 3, - 9, 13, 21, 27, 53, 31, 63, 116, 114, 106, - 104, 92, 86, 80, 66, 66, 58, 52, 38, 26, - 6, 17, 68, 68, 18, 72, 78, 56, 44, 48, - 40, 32, 38, 26, 18, 2, 1, 15, 47, 16, - 3, 29, 73, 51, 59, 17, 23, 19, 44, 1, - 1, 9, 18, 68, 42, 80, 4, 102, 94, 66, - 44, 22, 14, 39, 55, 79, 15, 84, 56, 38, - 18, 22, 4, 3, 9, 35, 53, 37, 19, 25, - 7, 4, 9, 13, 4, 10, 12, 6, 20, 22, - 4, 100, 94, 80, 66, 56, 44, 8, 9, 37, - }, - - { - /* Context Tables for I, SI Slices :: qp = 19 */ - - 110, 14, 27, 110, 14, 27, 59, 25, 36, 22, - 8, 6, 68, 78, 106, 28, 21, 2, 2, 24, - 0, 0, 9, 13, 43, 20, 58, 67, 91, 101, - 17, 33, 9, 2, 24, 0, 29, 21, 20, 16, - 3, 19, 37, 2, 23, 33, 53, 10, 17, 37, - 8, 19, 27, 49, 10, 9, 11, 21, 0, 8, - 44, 0, 0, 0, 17, 53, 67, 0, 14, 3, - 104, 14, 11, 85, 45, 37, 3, 37, 61, 53, - 69, 19, 61, 51, 55, 77, 73, 79, 75, 30, - 3, 5, 49, 5, 39, 29, 55, 17, 51, 37, - 79, 24, 25, 7, 69, 41, 19, 19, 3, 10, - 0, 11, 20, 14, 13, 4, 0, 3, 4, 23, - 24, 6, 34, 38, 24, 34, 34, 28, 20, 22, - 10, 22, 22, 29, 57, 37, 43, 23, 31, 25, - 3, 21, 21, 15, 15, 15, 17, 9, 33, 57, - 37, 63, 13, 21, 4, 7, 0, 20, 2, 3, - 4, 18, 7, 19, 2, 45, 70, 74, 58, 60, - 74, 58, 30, 62, 54, 14, 32, 28, 8, 2, - 11, 22, 10, 14, 16, 8, 1, 16, 6, 11, - 0, 5, 15, 5, 51, 104, 108, 100, 106, 100, - 94, 94, 94, 88, 70, 70, 62, 42, 34, 3, - 68, 56, 22, 72, 52, 52, 42, 34, 26, 28, - 12, 9, 1, 11, 41, 37, 71, 7, 58, 38, - 26, 8, 10, 1, 11, 17, 33, 4, 84, 56, - 44, 34, 36, 10, 5, 11, 21, 27, 52, 30, - 18, 6, 10, 5, 15, 27, 51, 39, 6, 3, - 3, 11, 13, 33, 39, 61, 9, 72, 40, 26, - 10, 16, 7, 15, 21, 33, 124, 43, 25, 11, - 5, 11, 2, 12, 14, 11, 10, 20, 16, 27, - 15, 15, 16, 20, 20, 14, 34, 40, 36, 8, - 20, 32, 28, 19, 5, 21, 51, 39, 27, 31, - 23, 25, 21, 17, 13, 19, 17, 9, 11, 21, - 35, 53, 29, 67, 25, 9, 13, 4, 11, 3, - 14, 3, 5, 5, 8, 9, 11, 41, 80, 74, - 78, 70, 58, 74, 66, 60, 52, 50, 52, 42, - 6, 6, 7, 36, 36, 24, 0, 16, 12, 5, - 9, 15, 21, 27, 53, 31, 61, 112, 110, 102, - 100, 86, 82, 76, 62, 62, 54, 48, 32, 22, - 2, 19, 64, 66, 14, 68, 74, 52, 40, 44, - 36, 28, 34, 22, 12, 1, 5, 19, 49, 12, - 7, 31, 71, 49, 57, 15, 21, 17, 46, 0, - 0, 9, 20, 72, 46, 84, 6, 98, 92, 62, - 38, 16, 8, 45, 59, 81, 15, 84, 56, 38, - 18, 22, 4, 3, 9, 35, 51, 35, 17, 23, - 5, 4, 9, 11, 4, 10, 12, 6, 20, 22, - 4, 98, 92, 76, 62, 52, 40, 4, 13, 39, - }, - - { - /* Context Tables for I, SI Slices :: qp = 20 */ - - 106, 14, 27, 106, 14, 27, 57, 23, 36, 22, - 8, 4, 66, 74, 106, 28, 15, 0, 4, 24, - 0, 1, 9, 15, 45, 18, 54, 71, 93, 103, - 11, 31, 9, 4, 24, 0, 29, 19, 20, 14, - 3, 19, 37, 2, 23, 31, 53, 10, 17, 35, - 6, 21, 27, 49, 10, 7, 11, 19, 0, 8, - 44, 0, 0, 0, 15, 55, 67, 0, 12, 3, - 104, 14, 11, 83, 43, 37, 3, 33, 59, 49, - 67, 17, 59, 47, 51, 75, 73, 77, 75, 30, - 3, 3, 47, 5, 39, 27, 51, 17, 51, 37, - 77, 24, 23, 7, 67, 41, 19, 19, 1, 10, - 0, 11, 20, 14, 15, 2, 0, 3, 4, 23, - 24, 6, 32, 38, 24, 34, 34, 26, 16, 22, - 10, 18, 20, 31, 55, 35, 41, 21, 31, 23, - 1, 19, 21, 13, 13, 15, 17, 7, 35, 57, - 35, 63, 13, 21, 4, 7, 1, 22, 2, 3, - 0, 20, 9, 21, 2, 47, 66, 72, 56, 58, - 72, 56, 28, 60, 54, 10, 30, 26, 8, 2, - 11, 20, 10, 12, 16, 6, 3, 14, 4, 15, - 1, 7, 17, 7, 51, 100, 106, 96, 102, 96, - 90, 88, 90, 82, 66, 66, 56, 36, 30, 9, - 64, 54, 18, 66, 48, 48, 38, 28, 22, 22, - 8, 13, 3, 13, 45, 39, 71, 7, 58, 40, - 26, 8, 10, 1, 11, 17, 31, 6, 86, 56, - 44, 34, 38, 10, 3, 11, 19, 27, 54, 32, - 18, 6, 10, 5, 15, 25, 49, 39, 8, 3, - 3, 11, 11, 31, 39, 59, 9, 74, 40, 26, - 10, 18, 5, 15, 19, 31, 124, 43, 25, 11, - 5, 11, 2, 12, 14, 9, 10, 20, 18, 27, - 15, 15, 14, 20, 18, 12, 32, 38, 36, 4, - 18, 30, 28, 21, 7, 23, 51, 39, 25, 31, - 23, 25, 19, 15, 15, 19, 17, 9, 13, 21, - 35, 53, 27, 67, 25, 7, 13, 4, 11, 3, - 16, 3, 7, 5, 10, 9, 13, 43, 78, 74, - 78, 68, 56, 72, 64, 58, 50, 48, 50, 40, - 4, 4, 9, 32, 32, 20, 3, 14, 10, 7, - 11, 15, 21, 27, 53, 33, 61, 106, 104, 98, - 94, 80, 78, 72, 56, 58, 50, 44, 28, 18, - 0, 21, 60, 62, 12, 64, 70, 48, 36, 38, - 32, 24, 30, 18, 8, 5, 9, 23, 51, 8, - 11, 35, 69, 47, 55, 15, 19, 15, 50, 2, - 2, 9, 22, 74, 48, 86, 6, 96, 88, 56, - 32, 10, 2, 51, 63, 83, 15, 84, 56, 38, - 18, 22, 4, 3, 9, 33, 49, 33, 15, 23, - 3, 6, 7, 9, 6, 12, 14, 8, 22, 24, - 4, 94, 88, 72, 58, 48, 36, 0, 17, 41, - }, - - { - /* Context Tables for I, SI Slices :: qp = 21 */ - - 104, 14, 27, 104, 14, 27, 53, 19, 36, 22, - 6, 0, 62, 72, 106, 28, 11, 0, 6, 26, - 0, 1, 7, 17, 47, 18, 50, 75, 95, 103, - 5, 27, 9, 6, 26, 0, 29, 17, 20, 14, - 3, 19, 35, 2, 25, 31, 53, 10, 17, 33, - 6, 21, 27, 49, 12, 7, 9, 19, 2, 8, - 44, 0, 0, 0, 15, 55, 67, 2, 10, 3, - 104, 14, 11, 81, 41, 37, 1, 31, 55, 45, - 63, 15, 55, 45, 47, 73, 71, 75, 73, 32, - 3, 1, 45, 5, 37, 25, 47, 17, 51, 35, - 73, 26, 23, 5, 65, 39, 17, 19, 1, 12, - 2, 9, 22, 16, 15, 2, 0, 3, 4, 23, - 24, 4, 30, 38, 22, 34, 34, 26, 12, 22, - 8, 16, 18, 33, 53, 33, 39, 19, 29, 21, - 0, 17, 19, 11, 11, 15, 17, 7, 37, 55, - 33, 63, 11, 21, 6, 7, 3, 24, 2, 3, - 1, 22, 9, 23, 2, 47, 64, 70, 56, 56, - 70, 54, 26, 60, 54, 8, 28, 26, 8, 2, - 13, 20, 8, 10, 14, 4, 5, 14, 2, 19, - 3, 9, 19, 9, 51, 96, 104, 92, 98, 94, - 86, 84, 86, 78, 62, 62, 52, 32, 26, 13, - 60, 50, 14, 62, 44, 44, 34, 24, 18, 16, - 4, 19, 5, 17, 47, 39, 71, 7, 58, 40, - 26, 8, 10, 1, 11, 17, 31, 6, 86, 56, - 44, 34, 40, 12, 1, 11, 17, 25, 56, 34, - 18, 8, 12, 3, 13, 25, 47, 37, 12, 1, - 3, 9, 9, 29, 37, 57, 7, 74, 42, 26, - 10, 20, 3, 13, 17, 29, 124, 43, 25, 9, - 5, 11, 2, 12, 14, 9, 10, 22, 18, 27, - 15, 15, 12, 22, 16, 10, 30, 38, 36, 2, - 16, 30, 28, 23, 9, 23, 49, 37, 23, 29, - 21, 23, 19, 13, 15, 19, 17, 9, 15, 21, - 35, 51, 25, 67, 25, 7, 13, 6, 11, 3, - 18, 3, 7, 5, 12, 11, 13, 43, 76, 74, - 76, 68, 54, 70, 62, 56, 50, 46, 48, 38, - 2, 2, 11, 30, 30, 18, 7, 12, 8, 9, - 13, 17, 21, 25, 53, 33, 59, 102, 100, 94, - 90, 76, 74, 68, 52, 54, 46, 40, 24, 14, - 3, 23, 56, 58, 10, 60, 66, 44, 32, 34, - 28, 20, 26, 14, 2, 9, 13, 27, 53, 4, - 15, 37, 67, 43, 53, 13, 17, 13, 54, 4, - 4, 9, 24, 78, 52, 90, 8, 92, 84, 52, - 26, 6, 3, 55, 67, 85, 15, 84, 56, 38, - 18, 22, 4, 3, 9, 33, 47, 31, 13, 21, - 1, 8, 7, 7, 8, 14, 16, 8, 22, 24, - 4, 92, 86, 70, 56, 44, 32, 3, 21, 43, - }, - - { - /* Context Tables for I, SI Slices :: qp = 22 */ - - 102, 14, 29, 102, 14, 29, 49, 17, 38, 22, - 6, 1, 60, 70, 106, 28, 7, 0, 6, 28, - 0, 3, 7, 19, 49, 16, 48, 77, 97, 105, - 0, 25, 9, 6, 28, 0, 27, 15, 22, 12, - 1, 17, 33, 0, 25, 31, 53, 10, 15, 33, - 6, 21, 25, 49, 12, 7, 9, 19, 2, 8, - 44, 0, 0, 0, 13, 55, 67, 2, 10, 5, - 104, 14, 11, 79, 41, 37, 1, 29, 51, 41, - 61, 13, 51, 43, 43, 71, 69, 73, 71, 34, - 3, 0, 45, 3, 37, 25, 43, 17, 49, 35, - 71, 26, 23, 5, 61, 39, 15, 17, 1, 12, - 2, 7, 22, 16, 17, 2, 0, 3, 4, 23, - 24, 4, 30, 38, 20, 34, 34, 26, 8, 22, - 8, 12, 16, 35, 53, 31, 39, 19, 27, 21, - 2, 17, 19, 11, 7, 15, 17, 7, 39, 55, - 31, 63, 11, 21, 8, 5, 5, 24, 2, 3, - 3, 24, 11, 25, 2, 49, 60, 68, 54, 56, - 68, 54, 26, 58, 52, 6, 26, 26, 8, 2, - 13, 18, 6, 8, 12, 4, 7, 12, 2, 23, - 5, 9, 21, 11, 51, 94, 100, 90, 94, 90, - 82, 80, 82, 72, 56, 58, 46, 26, 20, 19, - 56, 46, 12, 58, 38, 38, 28, 20, 12, 12, - 1, 23, 7, 21, 49, 41, 71, 5, 60, 40, - 28, 8, 10, 1, 11, 17, 29, 6, 86, 58, - 44, 34, 42, 12, 1, 9, 17, 23, 58, 34, - 20, 8, 14, 3, 13, 23, 45, 35, 14, 0, - 1, 9, 9, 29, 35, 53, 7, 74, 42, 26, - 12, 20, 3, 11, 17, 27, 124, 41, 23, 9, - 5, 11, 2, 12, 14, 9, 12, 22, 20, 27, - 15, 17, 12, 22, 14, 8, 28, 36, 36, 0, - 14, 30, 28, 23, 11, 25, 47, 35, 21, 29, - 21, 23, 17, 13, 15, 17, 15, 7, 15, 21, - 35, 51, 23, 67, 25, 7, 13, 8, 11, 3, - 20, 5, 7, 5, 12, 13, 13, 45, 74, 72, - 76, 66, 52, 70, 62, 54, 48, 46, 46, 36, - 0, 0, 13, 26, 28, 14, 11, 8, 4, 11, - 13, 17, 21, 25, 51, 35, 57, 98, 96, 90, - 86, 70, 70, 64, 46, 50, 40, 36, 18, 10, - 5, 23, 54, 56, 6, 56, 60, 40, 28, 30, - 24, 16, 20, 10, 1, 13, 17, 29, 57, 0, - 19, 41, 65, 41, 51, 11, 15, 11, 56, 6, - 6, 9, 26, 80, 54, 92, 10, 90, 82, 46, - 20, 0, 7, 61, 71, 89, 13, 84, 56, 38, - 18, 22, 4, 3, 9, 31, 45, 31, 11, 19, - 0, 8, 5, 5, 8, 14, 16, 8, 24, 24, - 4, 90, 82, 66, 52, 42, 30, 9, 23, 45, - }, - - { - /* Context Tables for I, SI Slices :: qp = 23 */ - - 100, 14, 29, 100, 14, 29, 45, 13, 38, 22, - 4, 5, 56, 66, 106, 28, 1, 1, 8, 28, - 0, 5, 7, 21, 51, 16, 44, 81, 99, 105, - 6, 23, 9, 8, 28, 0, 27, 13, 22, 12, - 1, 17, 33, 0, 27, 29, 53, 10, 15, 31, - 4, 21, 25, 49, 14, 5, 9, 17, 4, 8, - 44, 0, 0, 0, 13, 55, 67, 4, 8, 5, - 104, 14, 11, 77, 39, 37, 0, 25, 49, 37, - 57, 11, 49, 39, 39, 69, 67, 71, 71, 36, - 3, 2, 43, 3, 35, 23, 39, 17, 49, 33, - 69, 26, 21, 3, 59, 37, 15, 17, 0, 12, - 2, 5, 24, 18, 17, 0, 0, 3, 4, 23, - 24, 2, 28, 38, 20, 34, 34, 24, 4, 22, - 6, 8, 14, 37, 51, 29, 37, 17, 25, 19, - 4, 15, 17, 9, 5, 15, 17, 5, 41, 53, - 29, 63, 11, 21, 8, 5, 7, 26, 2, 3, - 7, 26, 11, 27, 2, 51, 58, 66, 54, 54, - 66, 52, 24, 56, 52, 4, 24, 26, 8, 2, - 15, 16, 6, 6, 12, 2, 9, 10, 0, 27, - 7, 11, 23, 13, 51, 90, 98, 86, 90, 86, - 78, 74, 78, 68, 52, 54, 42, 22, 16, 23, - 52, 44, 8, 52, 34, 34, 24, 14, 8, 6, - 5, 29, 9, 23, 53, 43, 71, 5, 60, 42, - 28, 8, 10, 1, 11, 17, 29, 8, 88, 58, - 44, 34, 44, 14, 0, 9, 15, 21, 60, 36, - 20, 8, 16, 1, 11, 23, 43, 35, 16, 0, - 1, 9, 7, 27, 35, 51, 5, 76, 42, 26, - 12, 22, 1, 9, 15, 25, 124, 41, 23, 7, - 5, 11, 2, 12, 14, 7, 12, 22, 20, 27, - 15, 17, 10, 24, 12, 6, 26, 34, 36, 1, - 12, 28, 28, 25, 13, 25, 45, 35, 19, 27, - 19, 21, 17, 11, 15, 17, 15, 7, 17, 21, - 35, 49, 21, 67, 25, 5, 13, 8, 11, 3, - 22, 5, 7, 5, 14, 13, 15, 47, 72, 72, - 74, 64, 50, 68, 60, 52, 46, 44, 44, 34, - 1, 1, 15, 24, 24, 12, 15, 6, 2, 13, - 15, 19, 21, 25, 51, 35, 55, 94, 92, 86, - 80, 64, 66, 60, 42, 46, 36, 32, 14, 6, - 9, 25, 50, 52, 4, 52, 56, 36, 24, 26, - 20, 12, 16, 6, 7, 17, 21, 33, 59, 3, - 23, 43, 63, 39, 49, 11, 13, 9, 60, 8, - 8, 9, 28, 84, 58, 96, 10, 86, 78, 42, - 14, 5, 13, 67, 75, 91, 13, 84, 56, 38, - 18, 22, 4, 3, 9, 31, 43, 29, 9, 17, - 2, 10, 5, 3, 10, 16, 18, 10, 24, 26, - 4, 86, 80, 62, 48, 38, 26, 13, 27, 47, - }, - - { - /* Context Tables for I, SI Slices :: qp = 24 */ - - 96, 12, 29, 96, 12, 29, 43, 11, 38, 22, - 4, 7, 54, 64, 106, 28, 2, 1, 10, 30, - 0, 7, 7, 23, 55, 14, 40, 85, 101, 107, - 10, 21, 9, 10, 30, 0, 27, 11, 22, 10, - 1, 17, 31, 1, 27, 29, 55, 10, 15, 31, - 4, 23, 25, 49, 14, 5, 9, 17, 4, 8, - 44, 0, 0, 0, 11, 57, 67, 4, 6, 5, - 104, 14, 11, 75, 37, 37, 0, 23, 45, 33, - 55, 9, 45, 37, 37, 67, 67, 69, 69, 36, - 3, 4, 41, 3, 35, 23, 37, 17, 49, 33, - 67, 26, 21, 3, 57, 37, 13, 17, 0, 12, - 2, 5, 24, 18, 19, 0, 0, 3, 4, 23, - 24, 2, 26, 38, 18, 34, 34, 24, 0, 22, - 6, 4, 12, 39, 49, 27, 35, 15, 25, 19, - 6, 15, 17, 7, 3, 15, 17, 5, 45, 53, - 27, 63, 11, 23, 10, 5, 9, 28, 2, 3, - 9, 28, 13, 29, 2, 53, 54, 64, 52, 52, - 64, 50, 22, 54, 50, 0, 22, 24, 8, 2, - 15, 14, 4, 4, 10, 0, 11, 8, 1, 31, - 11, 13, 25, 15, 51, 86, 94, 82, 86, 82, - 74, 70, 74, 62, 46, 50, 36, 16, 10, 29, - 48, 40, 4, 48, 30, 28, 18, 10, 2, 0, - 9, 33, 11, 27, 55, 45, 73, 5, 60, 42, - 28, 8, 10, 1, 11, 17, 27, 8, 88, 58, - 44, 34, 46, 14, 0, 9, 15, 21, 62, 36, - 20, 8, 16, 1, 11, 21, 41, 33, 18, 2, - 1, 9, 5, 25, 33, 49, 5, 76, 42, 26, - 12, 24, 1, 9, 13, 25, 124, 41, 23, 7, - 5, 11, 2, 12, 14, 7, 12, 22, 22, 27, - 15, 17, 8, 24, 10, 4, 24, 32, 36, 5, - 8, 28, 28, 27, 15, 27, 45, 33, 17, 27, - 19, 21, 15, 9, 17, 17, 15, 7, 19, 21, - 35, 49, 21, 69, 25, 5, 13, 10, 11, 3, - 22, 5, 9, 5, 16, 15, 15, 49, 70, 70, - 74, 62, 46, 66, 58, 50, 44, 42, 42, 32, - 3, 3, 17, 20, 22, 8, 19, 2, 0, 15, - 17, 19, 21, 25, 51, 37, 55, 88, 86, 82, - 76, 58, 60, 54, 36, 42, 32, 28, 8, 2, - 11, 27, 46, 48, 0, 48, 52, 30, 18, 20, - 14, 8, 12, 0, 11, 21, 27, 37, 61, 7, - 27, 47, 61, 37, 47, 9, 11, 9, 62, 10, - 8, 9, 28, 86, 60, 98, 12, 84, 74, 36, - 8, 11, 19, 73, 79, 93, 13, 84, 56, 38, - 18, 22, 4, 3, 9, 29, 43, 27, 7, 17, - 4, 10, 3, 3, 10, 16, 18, 10, 26, 26, - 2, 84, 76, 58, 44, 34, 22, 17, 31, 49, - }, - - { - /* Context Tables for I, SI Slices :: qp = 25 */ - - 94, 12, 29, 94, 12, 29, 39, 9, 40, 22, - 4, 9, 52, 62, 106, 28, 6, 1, 12, 32, - 0, 7, 5, 25, 57, 12, 36, 87, 103, 109, - 16, 17, 9, 12, 32, 0, 25, 9, 24, 8, - 1, 15, 29, 1, 27, 29, 55, 10, 15, 29, - 4, 23, 25, 49, 14, 5, 7, 17, 4, 8, - 44, 0, 0, 0, 9, 57, 67, 4, 4, 5, - 104, 14, 11, 73, 35, 37, 0, 21, 41, 29, - 51, 5, 41, 35, 33, 65, 65, 67, 67, 38, - 1, 6, 39, 3, 33, 21, 33, 17, 47, 33, - 63, 28, 21, 3, 53, 37, 11, 17, 0, 14, - 4, 3, 24, 18, 19, 0, 2, 3, 4, 21, - 24, 2, 26, 38, 16, 34, 34, 24, 3, 22, - 6, 2, 10, 39, 47, 25, 33, 13, 23, 17, - 8, 13, 17, 5, 1, 15, 17, 5, 47, 51, - 25, 63, 9, 23, 12, 5, 11, 30, 2, 3, - 11, 30, 15, 31, 2, 53, 52, 62, 52, 50, - 62, 48, 22, 54, 50, 1, 20, 24, 8, 2, - 15, 14, 2, 2, 8, 1, 13, 8, 1, 33, - 13, 13, 27, 17, 51, 84, 92, 80, 84, 80, - 70, 66, 70, 58, 42, 46, 32, 10, 6, 35, - 46, 36, 2, 44, 26, 24, 14, 6, 1, 3, - 13, 37, 11, 31, 57, 45, 73, 5, 62, 42, - 28, 10, 10, 1, 9, 17, 25, 8, 88, 58, - 46, 34, 48, 16, 2, 7, 13, 19, 64, 38, - 22, 10, 18, 0, 11, 19, 39, 31, 22, 4, - 0, 7, 3, 23, 31, 47, 3, 76, 44, 28, - 12, 26, 0, 7, 11, 23, 124, 39, 21, 5, - 5, 11, 2, 14, 16, 7, 12, 24, 24, 27, - 15, 17, 8, 24, 8, 4, 22, 32, 36, 7, - 6, 28, 28, 27, 17, 29, 43, 31, 15, 27, - 17, 21, 13, 7, 17, 17, 15, 5, 19, 21, - 35, 49, 19, 69, 25, 5, 13, 12, 11, 3, - 24, 5, 9, 5, 18, 17, 15, 49, 68, 70, - 74, 62, 44, 64, 56, 48, 44, 40, 40, 32, - 3, 5, 19, 18, 20, 4, 23, 0, 1, 15, - 17, 19, 19, 23, 51, 39, 53, 84, 82, 78, - 72, 54, 56, 50, 32, 38, 28, 24, 4, 1, - 13, 29, 42, 46, 1, 44, 48, 26, 14, 16, - 10, 4, 8, 3, 15, 23, 31, 41, 63, 11, - 31, 51, 59, 33, 43, 7, 9, 7, 66, 12, - 10, 9, 30, 90, 62, 102, 14, 82, 72, 32, - 2, 15, 25, 77, 83, 95, 13, 84, 56, 38, - 18, 24, 4, 3, 9, 27, 41, 25, 5, 15, - 8, 12, 1, 1, 12, 18, 20, 10, 28, 26, - 2, 82, 74, 56, 42, 30, 18, 21, 35, 49, - }, - - { - /* Context Tables for I, SI Slices :: qp = 26 */ - - 92, 12, 29, 92, 12, 29, 35, 5, 40, 22, - 2, 13, 48, 58, 106, 28, 12, 3, 14, 32, - 0, 9, 5, 27, 59, 12, 32, 91, 105, 109, - 22, 15, 9, 14, 32, 0, 25, 7, 24, 8, - 1, 15, 29, 1, 29, 27, 55, 10, 15, 27, - 2, 23, 25, 49, 16, 3, 7, 15, 6, 8, - 44, 0, 0, 0, 9, 57, 67, 6, 2, 5, - 104, 14, 11, 71, 33, 37, 2, 17, 39, 25, - 49, 3, 39, 31, 29, 63, 63, 65, 67, 40, - 1, 8, 37, 3, 33, 19, 29, 17, 47, 31, - 61, 28, 19, 1, 51, 35, 11, 17, 2, 14, - 4, 1, 26, 20, 21, 1, 2, 3, 4, 21, - 24, 0, 24, 38, 16, 34, 34, 22, 7, 22, - 4, 1, 8, 41, 45, 23, 31, 11, 21, 15, - 10, 11, 15, 3, 0, 15, 17, 3, 49, 51, - 23, 63, 9, 23, 12, 5, 13, 32, 2, 3, - 15, 32, 15, 33, 2, 55, 48, 60, 50, 48, - 60, 46, 20, 52, 50, 3, 18, 24, 8, 2, - 17, 12, 2, 0, 8, 3, 15, 6, 3, 37, - 15, 15, 29, 19, 51, 80, 90, 76, 80, 76, - 66, 60, 66, 52, 38, 42, 26, 6, 2, 39, - 42, 34, 1, 38, 22, 20, 10, 0, 5, 9, - 17, 43, 13, 33, 61, 47, 73, 5, 62, 44, - 28, 10, 10, 1, 9, 17, 25, 10, 90, 58, - 46, 34, 50, 16, 4, 7, 11, 17, 66, 40, - 22, 10, 20, 0, 9, 19, 37, 31, 24, 4, - 0, 7, 1, 21, 31, 45, 3, 78, 44, 28, - 12, 28, 2, 5, 9, 21, 124, 39, 21, 5, - 5, 11, 2, 14, 16, 5, 12, 24, 24, 27, - 15, 17, 6, 26, 6, 2, 20, 30, 36, 9, - 4, 26, 28, 29, 19, 29, 41, 31, 13, 25, - 17, 19, 13, 5, 17, 17, 15, 5, 21, 21, - 35, 47, 17, 69, 25, 3, 13, 12, 11, 3, - 26, 5, 9, 5, 20, 17, 17, 51, 66, 70, - 72, 60, 42, 62, 54, 46, 42, 38, 38, 30, - 5, 7, 21, 14, 16, 2, 27, 1, 3, 17, - 19, 21, 19, 23, 51, 39, 51, 80, 78, 74, - 66, 48, 52, 46, 26, 34, 24, 20, 0, 5, - 17, 31, 38, 42, 3, 40, 44, 22, 10, 12, - 6, 0, 4, 7, 21, 27, 35, 45, 65, 15, - 35, 53, 57, 31, 41, 7, 7, 5, 70, 14, - 12, 9, 32, 92, 66, 104, 14, 78, 68, 26, - 3, 21, 31, 83, 87, 97, 13, 84, 56, 38, - 18, 24, 4, 3, 9, 27, 39, 23, 3, 13, - 10, 14, 1, 0, 14, 20, 22, 12, 28, 28, - 2, 78, 70, 52, 38, 26, 14, 25, 39, 51, - }, - - { - /* Context Tables for I, SI Slices :: qp = 27 */ - - 90, 12, 31, 90, 12, 31, 31, 3, 42, 22, - 2, 15, 46, 56, 106, 28, 16, 3, 14, 34, - 0, 11, 5, 29, 61, 10, 30, 93, 107, 111, - 28, 13, 9, 14, 34, 0, 23, 5, 26, 6, - 0, 13, 27, 3, 29, 27, 55, 10, 13, 27, - 2, 23, 23, 49, 16, 3, 7, 15, 6, 8, - 44, 0, 0, 0, 7, 57, 67, 6, 2, 7, - 104, 14, 11, 69, 33, 37, 2, 15, 35, 21, - 45, 1, 35, 29, 25, 61, 61, 63, 65, 42, - 1, 10, 37, 1, 31, 19, 25, 17, 45, 31, - 59, 28, 19, 1, 47, 35, 9, 15, 2, 14, - 4, 0, 26, 20, 21, 1, 2, 3, 4, 21, - 24, 0, 24, 38, 14, 34, 34, 22, 11, 22, - 4, 5, 6, 43, 45, 21, 31, 11, 19, 15, - 12, 11, 15, 3, 4, 15, 17, 3, 51, 49, - 21, 63, 9, 23, 14, 3, 15, 32, 2, 3, - 17, 34, 17, 35, 2, 57, 46, 58, 50, 48, - 58, 46, 20, 50, 48, 5, 16, 24, 8, 2, - 17, 10, 0, 1, 6, 3, 17, 4, 3, 41, - 17, 15, 31, 21, 51, 78, 86, 74, 76, 72, - 62, 56, 62, 48, 32, 38, 22, 0, 3, 45, - 38, 30, 3, 34, 16, 14, 4, 3, 11, 13, - 23, 47, 15, 37, 63, 49, 73, 3, 64, 44, - 30, 10, 10, 1, 9, 17, 23, 10, 90, 60, - 46, 34, 52, 18, 4, 5, 11, 15, 68, 40, - 24, 10, 22, 2, 9, 17, 35, 29, 26, 6, - 2, 7, 1, 21, 29, 41, 1, 78, 44, 28, - 14, 28, 2, 3, 9, 19, 124, 37, 19, 3, - 5, 11, 2, 14, 16, 5, 14, 24, 26, 27, - 15, 19, 6, 26, 4, 0, 18, 28, 36, 11, - 2, 26, 28, 29, 21, 31, 39, 29, 11, 25, - 15, 19, 11, 5, 17, 15, 13, 3, 21, 21, - 35, 47, 15, 69, 25, 3, 13, 14, 11, 3, - 28, 7, 9, 5, 20, 19, 17, 53, 64, 68, - 72, 58, 40, 62, 54, 44, 40, 38, 36, 28, - 7, 9, 23, 12, 14, 1, 31, 5, 7, 19, - 19, 21, 19, 23, 49, 41, 49, 76, 74, 70, - 62, 42, 48, 42, 22, 30, 18, 16, 5, 9, - 19, 31, 36, 40, 7, 36, 38, 18, 6, 8, - 2, 3, 1, 11, 25, 31, 39, 47, 69, 19, - 39, 57, 55, 29, 39, 5, 5, 3, 72, 16, - 14, 9, 34, 96, 68, 108, 16, 76, 66, 22, - 9, 27, 35, 89, 91, 101, 11, 84, 56, 38, - 18, 24, 4, 3, 9, 25, 37, 23, 1, 11, - 12, 14, 0, 2, 14, 20, 22, 12, 30, 28, - 2, 76, 68, 48, 34, 24, 12, 31, 41, 53, - }, - - { - /* Context Tables for I, SI Slices :: qp = 28 */ - - 86, 12, 31, 86, 12, 31, 29, 0, 42, 22, - 0, 19, 42, 54, 106, 28, 20, 3, 16, 36, - 0, 13, 5, 31, 63, 10, 26, 97, 109, 111, - 34, 11, 9, 16, 36, 0, 23, 3, 26, 6, - 0, 13, 25, 3, 31, 27, 55, 10, 13, 25, - 2, 25, 23, 49, 18, 3, 7, 15, 8, 8, - 44, 0, 0, 0, 7, 59, 67, 8, 0, 7, - 104, 14, 11, 67, 31, 37, 4, 13, 31, 17, - 43, 0, 31, 27, 21, 59, 61, 61, 63, 42, - 1, 12, 35, 1, 31, 17, 21, 17, 45, 29, - 57, 28, 19, 0, 45, 33, 7, 15, 2, 14, - 4, 0, 28, 22, 23, 1, 2, 3, 4, 21, - 24, 1, 22, 38, 12, 34, 34, 22, 15, 22, - 2, 9, 4, 45, 43, 19, 29, 9, 19, 13, - 14, 9, 13, 1, 6, 15, 17, 3, 53, 49, - 19, 63, 9, 23, 16, 3, 17, 34, 2, 3, - 19, 36, 17, 37, 2, 59, 42, 56, 48, 46, - 56, 44, 18, 48, 48, 9, 14, 22, 8, 2, - 19, 8, 1, 3, 4, 5, 19, 2, 5, 45, - 19, 17, 33, 23, 51, 74, 84, 70, 72, 68, - 58, 52, 58, 42, 28, 34, 16, 3, 7, 49, - 34, 26, 7, 30, 12, 10, 0, 7, 15, 19, - 27, 53, 17, 41, 65, 51, 73, 3, 64, 44, - 30, 10, 10, 1, 9, 17, 23, 10, 90, 60, - 46, 34, 54, 18, 6, 5, 9, 15, 70, 42, - 24, 10, 22, 2, 7, 17, 33, 27, 28, 8, - 2, 7, 0, 19, 27, 39, 1, 78, 44, 28, - 14, 30, 4, 3, 7, 17, 124, 37, 19, 3, - 5, 11, 2, 14, 16, 5, 14, 24, 26, 27, - 15, 19, 4, 28, 2, 1, 16, 26, 36, 15, - 0, 26, 28, 31, 23, 31, 39, 27, 9, 23, - 15, 17, 11, 3, 19, 15, 13, 3, 23, 21, - 35, 45, 13, 69, 25, 3, 13, 16, 11, 3, - 30, 7, 11, 5, 22, 21, 17, 55, 62, 68, - 70, 56, 38, 60, 52, 42, 38, 36, 34, 26, - 9, 11, 25, 8, 12, 3, 35, 7, 9, 21, - 21, 23, 19, 23, 49, 41, 49, 70, 68, 66, - 58, 36, 44, 38, 16, 26, 14, 12, 9, 13, - 23, 33, 32, 36, 9, 32, 34, 14, 2, 2, - 1, 7, 5, 15, 31, 35, 43, 51, 71, 23, - 43, 59, 53, 27, 37, 3, 3, 1, 76, 18, - 16, 9, 36, 98, 72, 110, 18, 72, 62, 16, - 15, 33, 41, 95, 95, 103, 11, 84, 56, 38, - 18, 24, 4, 3, 9, 25, 35, 21, 0, 11, - 14, 16, 0, 4, 16, 22, 24, 12, 30, 28, - 2, 74, 64, 44, 30, 20, 8, 35, 45, 55, - }, - - { - /* Context Tables for I, SI Slices :: qp = 29 */ - - 84, 12, 31, 84, 12, 31, 25, 2, 42, 22, - 0, 21, 40, 50, 106, 28, 26, 5, 18, 36, - 0, 13, 3, 33, 65, 8, 22, 101, 111, 113, - 40, 7, 9, 18, 36, 0, 23, 1, 26, 4, - 0, 13, 25, 3, 31, 25, 55, 10, 13, 23, - 0, 25, 23, 49, 18, 1, 5, 13, 8, 8, - 44, 0, 0, 0, 5, 59, 67, 8, 1, 7, - 104, 14, 11, 65, 29, 37, 4, 9, 29, 13, - 39, 2, 29, 23, 17, 57, 59, 59, 63, 44, - 1, 14, 33, 1, 29, 15, 17, 17, 45, 29, - 53, 30, 17, 0, 43, 33, 7, 15, 4, 16, - 6, 2, 28, 22, 23, 3, 2, 3, 4, 21, - 24, 1, 20, 38, 12, 34, 34, 20, 19, 22, - 2, 11, 2, 47, 41, 17, 27, 7, 17, 11, - 16, 7, 13, 0, 8, 15, 17, 1, 55, 47, - 17, 63, 7, 23, 16, 3, 19, 36, 2, 3, - 23, 38, 19, 39, 2, 59, 40, 54, 48, 44, - 54, 42, 16, 48, 48, 11, 12, 22, 8, 2, - 19, 8, 1, 5, 4, 7, 21, 2, 7, 49, - 21, 19, 35, 25, 51, 70, 82, 66, 68, 66, - 54, 46, 54, 38, 24, 30, 12, 9, 11, 55, - 30, 24, 11, 24, 8, 6, 3, 13, 19, 25, - 31, 57, 19, 43, 69, 51, 73, 3, 64, 46, - 30, 10, 10, 1, 9, 17, 21, 12, 92, 60, - 46, 34, 56, 20, 8, 5, 7, 13, 72, 44, - 24, 12, 24, 4, 7, 15, 31, 27, 32, 8, - 2, 5, 2, 17, 27, 37, 0, 80, 46, 28, - 14, 32, 6, 1, 5, 15, 124, 37, 19, 1, - 5, 11, 2, 14, 16, 3, 14, 26, 28, 27, - 15, 19, 2, 28, 0, 3, 14, 26, 36, 17, - 1, 24, 28, 33, 25, 33, 37, 27, 7, 23, - 13, 17, 9, 1, 19, 15, 13, 3, 25, 21, - 35, 45, 11, 69, 25, 1, 13, 16, 11, 3, - 32, 7, 11, 5, 24, 21, 19, 55, 60, 68, - 70, 56, 36, 58, 50, 40, 38, 34, 32, 24, - 11, 13, 27, 6, 8, 7, 39, 9, 11, 23, - 23, 23, 19, 21, 49, 43, 47, 66, 64, 62, - 52, 32, 40, 34, 12, 22, 10, 8, 13, 17, - 25, 35, 28, 32, 11, 28, 30, 10, 1, 1, - 5, 11, 9, 19, 35, 39, 47, 55, 73, 27, - 47, 63, 51, 23, 35, 3, 1, 0, 80, 20, - 18, 9, 38, 102, 74, 114, 18, 70, 58, 12, - 21, 37, 47, 99, 99, 105, 11, 84, 56, 38, - 18, 24, 4, 3, 9, 23, 33, 19, 2, 9, - 16, 18, 2, 6, 18, 24, 26, 14, 32, 30, - 2, 70, 62, 42, 28, 16, 4, 39, 49, 57, - }, - - { - /* Context Tables for I, SI Slices :: qp = 30 */ - - 82, 12, 31, 82, 12, 31, 21, 6, 44, 22, - 1, 25, 36, 48, 106, 28, 30, 5, 20, 38, - 0, 15, 3, 35, 67, 8, 18, 103, 113, 113, - 46, 5, 9, 20, 38, 0, 21, 0, 28, 4, - 0, 11, 23, 5, 33, 25, 55, 10, 13, 23, - 0, 25, 23, 49, 20, 1, 5, 13, 10, 8, - 44, 0, 0, 0, 5, 59, 67, 10, 3, 7, - 104, 14, 11, 63, 27, 37, 6, 7, 25, 9, - 37, 4, 25, 21, 13, 55, 57, 57, 61, 46, - 1, 16, 31, 1, 29, 15, 13, 17, 43, 27, - 51, 30, 17, 2, 39, 31, 5, 15, 4, 16, - 6, 4, 30, 24, 25, 3, 2, 3, 4, 21, - 24, 3, 20, 38, 10, 34, 34, 20, 23, 22, - 0, 15, 0, 49, 39, 15, 25, 5, 15, 11, - 18, 7, 11, 2, 10, 15, 17, 1, 57, 47, - 15, 63, 7, 23, 18, 3, 21, 38, 2, 3, - 25, 40, 19, 41, 2, 61, 36, 52, 46, 42, - 52, 40, 16, 46, 46, 13, 10, 22, 8, 2, - 21, 6, 3, 7, 2, 9, 23, 0, 7, 53, - 23, 19, 37, 27, 51, 68, 78, 64, 64, 62, - 50, 42, 50, 32, 18, 26, 6, 13, 17, 59, - 26, 20, 13, 20, 4, 0, 9, 17, 25, 29, - 35, 63, 21, 47, 71, 53, 73, 3, 66, 46, - 30, 10, 10, 1, 9, 17, 21, 12, 92, 60, - 46, 34, 58, 20, 8, 3, 7, 11, 74, 44, - 26, 12, 26, 4, 5, 15, 29, 25, 34, 10, - 4, 5, 4, 15, 25, 35, 0, 80, 46, 28, - 14, 34, 6, 0, 3, 13, 124, 35, 17, 1, - 5, 11, 2, 14, 16, 3, 14, 26, 28, 27, - 15, 19, 2, 30, 1, 5, 12, 24, 36, 19, - 3, 24, 28, 33, 27, 33, 35, 25, 5, 21, - 13, 15, 9, 0, 19, 15, 13, 1, 25, 21, - 35, 43, 9, 69, 25, 1, 13, 18, 11, 3, - 34, 7, 11, 5, 26, 23, 19, 57, 58, 66, - 68, 54, 34, 56, 48, 38, 36, 32, 30, 22, - 13, 15, 29, 2, 6, 9, 43, 13, 13, 25, - 23, 25, 19, 21, 49, 43, 45, 62, 60, 58, - 48, 26, 36, 30, 6, 18, 6, 4, 19, 21, - 29, 37, 24, 30, 15, 24, 26, 6, 5, 5, - 9, 15, 13, 23, 41, 43, 51, 59, 75, 31, - 51, 65, 49, 21, 33, 1, 0, 2, 82, 22, - 20, 9, 40, 104, 78, 116, 20, 66, 56, 6, - 27, 43, 53, 105, 103, 107, 11, 84, 56, 38, - 18, 24, 4, 3, 9, 23, 31, 17, 4, 7, - 18, 18, 2, 8, 18, 24, 26, 14, 32, 30, - 2, 68, 58, 38, 24, 12, 0, 43, 53, 59, - }, - - { - /* Context Tables for I, SI Slices :: qp = 31 */ - - 80, 12, 31, 80, 12, 31, 17, 8, 44, 22, - 1, 27, 34, 46, 106, 28, 34, 5, 22, 40, - 0, 17, 3, 37, 69, 6, 14, 107, 115, 115, - 52, 3, 9, 22, 40, 0, 21, 2, 28, 2, - 0, 11, 21, 5, 33, 25, 55, 10, 13, 21, - 0, 25, 23, 49, 20, 1, 5, 13, 10, 8, - 44, 0, 0, 0, 3, 59, 67, 10, 5, 7, - 104, 14, 11, 61, 25, 37, 6, 5, 21, 5, - 33, 6, 21, 19, 9, 53, 55, 55, 59, 48, - 1, 18, 29, 1, 27, 13, 9, 17, 43, 27, - 49, 30, 17, 2, 37, 31, 3, 15, 4, 16, - 6, 6, 30, 24, 25, 3, 2, 3, 4, 21, - 24, 3, 18, 38, 8, 34, 34, 20, 27, 22, - 0, 19, 1, 51, 37, 13, 23, 3, 13, 9, - 20, 5, 11, 4, 12, 15, 17, 1, 59, 45, - 13, 63, 7, 23, 20, 3, 23, 40, 2, 3, - 27, 42, 21, 43, 2, 63, 34, 50, 46, 40, - 50, 38, 14, 44, 46, 15, 8, 22, 8, 2, - 21, 4, 5, 9, 0, 11, 25, 1, 9, 57, - 25, 21, 39, 29, 51, 64, 76, 60, 60, 58, - 46, 38, 46, 28, 14, 22, 2, 19, 21, 65, - 22, 16, 17, 16, 0, 3, 13, 21, 29, 35, - 39, 67, 23, 51, 73, 55, 73, 3, 66, 46, - 30, 10, 10, 1, 9, 17, 19, 12, 92, 60, - 46, 34, 60, 22, 10, 3, 5, 9, 76, 46, - 26, 12, 28, 6, 5, 13, 27, 23, 36, 12, - 4, 5, 6, 13, 23, 33, 2, 80, 46, 28, - 14, 36, 8, 2, 1, 11, 124, 35, 17, 0, - 5, 11, 2, 14, 16, 3, 14, 26, 30, 27, - 15, 19, 0, 30, 3, 7, 10, 22, 36, 21, - 5, 24, 28, 35, 29, 35, 33, 23, 3, 21, - 11, 15, 7, 2, 19, 15, 13, 1, 27, 21, - 35, 43, 7, 69, 25, 1, 13, 20, 11, 3, - 36, 7, 11, 5, 28, 25, 19, 59, 56, 66, - 68, 52, 32, 54, 46, 36, 34, 30, 28, 20, - 15, 17, 31, 0, 4, 13, 47, 15, 15, 27, - 25, 25, 19, 21, 49, 45, 43, 58, 56, 54, - 44, 20, 32, 26, 2, 14, 2, 0, 23, 25, - 31, 39, 20, 26, 17, 20, 22, 2, 9, 9, - 13, 19, 17, 27, 45, 47, 55, 63, 77, 35, - 55, 69, 47, 19, 31, 0, 2, 4, 86, 24, - 22, 9, 42, 108, 80, 120, 22, 64, 52, 2, - 33, 49, 59, 111, 107, 109, 11, 84, 56, 38, - 18, 24, 4, 3, 9, 21, 29, 15, 6, 5, - 20, 20, 4, 10, 20, 26, 28, 14, 34, 30, - 2, 66, 56, 34, 20, 8, 3, 47, 57, 61, - }, - - { - /* Context Tables for I, SI Slices :: qp = 32 */ - - 76, 10, 33, 76, 10, 33, 15, 10, 44, 22, - 3, 31, 30, 42, 104, 28, 38, 7, 22, 40, - 1, 19, 3, 41, 73, 4, 10, 111, 117, 117, - 56, 1, 11, 22, 40, 1, 21, 4, 28, 0, - 0, 11, 21, 7, 35, 25, 57, 10, 13, 21, - 1, 27, 23, 49, 20, 1, 5, 13, 10, 6, - 44, 0, 0, 0, 3, 61, 67, 10, 7, 9, - 104, 12, 11, 59, 25, 37, 6, 3, 19, 3, - 31, 8, 19, 17, 7, 51, 55, 53, 59, 48, - 1, 18, 29, 1, 27, 13, 7, 17, 43, 27, - 47, 30, 17, 2, 35, 31, 3, 15, 4, 16, - 6, 6, 30, 24, 27, 5, 2, 5, 4, 21, - 22, 5, 16, 38, 6, 32, 34, 18, 31, 20, - 1, 23, 3, 53, 37, 13, 23, 3, 13, 9, - 22, 5, 11, 4, 14, 17, 17, 1, 63, 45, - 13, 63, 7, 25, 20, 3, 25, 40, 2, 3, - 31, 42, 23, 45, 2, 65, 30, 48, 44, 38, - 48, 36, 12, 42, 44, 19, 6, 20, 6, 2, - 23, 2, 7, 11, 1, 13, 27, 3, 11, 61, - 29, 23, 43, 33, 51, 60, 72, 56, 56, 54, - 40, 32, 40, 22, 8, 16, 3, 25, 27, 71, - 18, 12, 21, 10, 5, 9, 19, 27, 35, 41, - 45, 73, 25, 55, 77, 57, 75, 3, 66, 46, - 30, 10, 10, 3, 9, 17, 19, 12, 92, 60, - 46, 34, 62, 22, 10, 3, 5, 9, 76, 46, - 26, 12, 28, 6, 5, 13, 25, 23, 38, 12, - 4, 5, 6, 13, 23, 31, 2, 80, 46, 28, - 14, 36, 8, 2, 1, 11, 124, 35, 17, 0, - 5, 11, 2, 14, 16, 3, 14, 26, 30, 27, - 15, 21, 1, 30, 5, 9, 8, 20, 34, 25, - 9, 22, 26, 37, 33, 37, 33, 23, 1, 21, - 11, 15, 7, 2, 21, 15, 13, 1, 29, 21, - 35, 43, 7, 71, 25, 1, 13, 20, 13, 3, - 36, 9, 13, 5, 28, 27, 21, 61, 54, 64, - 66, 50, 28, 52, 44, 34, 32, 28, 26, 18, - 17, 21, 35, 3, 0, 17, 51, 19, 19, 29, - 27, 27, 19, 21, 49, 47, 43, 52, 50, 50, - 38, 14, 26, 20, 3, 8, 3, 5, 29, 31, - 35, 41, 16, 22, 21, 16, 16, 3, 15, 15, - 19, 23, 23, 33, 51, 51, 61, 67, 81, 39, - 59, 73, 45, 17, 29, 0, 2, 4, 88, 24, - 22, 9, 42, 110, 82, 122, 22, 60, 48, 3, - 41, 55, 65, 117, 113, 113, 11, 84, 54, 36, - 18, 24, 4, 5, 9, 21, 29, 15, 6, 5, - 22, 20, 4, 10, 20, 26, 28, 14, 34, 30, - 0, 62, 52, 30, 16, 4, 7, 53, 61, 63, - }, - - { - /* Context Tables for I, SI Slices :: qp = 33 */ - - 74, 10, 33, 74, 10, 33, 11, 14, 46, 24, - 3, 33, 28, 40, 104, 28, 44, 7, 24, 42, - 1, 19, 1, 43, 75, 4, 8, 113, 119, 117, - 62, 2, 11, 24, 42, 1, 19, 8, 30, 0, - 2, 9, 19, 7, 35, 23, 57, 10, 11, 19, - 1, 27, 21, 49, 22, 0, 3, 11, 12, 6, - 44, 0, 0, 0, 1, 61, 67, 12, 7, 9, - 104, 12, 11, 55, 23, 37, 8, 0, 15, 0, - 27, 12, 15, 13, 3, 47, 53, 51, 57, 50, - 0, 20, 27, 0, 25, 11, 3, 15, 41, 25, - 43, 32, 15, 4, 31, 29, 1, 13, 6, 18, - 8, 8, 32, 26, 27, 5, 4, 5, 4, 19, - 22, 5, 16, 38, 6, 32, 34, 18, 33, 20, - 1, 25, 5, 53, 35, 11, 21, 1, 11, 7, - 24, 3, 9, 6, 18, 17, 17, 0, 65, 43, - 11, 63, 5, 25, 22, 1, 25, 42, 2, 3, - 33, 44, 23, 47, 2, 65, 28, 48, 44, 38, - 48, 36, 12, 42, 44, 21, 6, 20, 6, 2, - 23, 2, 7, 11, 1, 13, 29, 3, 11, 63, - 31, 23, 45, 35, 51, 58, 70, 54, 54, 52, - 36, 28, 36, 18, 4, 12, 7, 29, 31, 75, - 16, 10, 23, 6, 9, 13, 23, 31, 39, 45, - 49, 77, 25, 57, 79, 57, 75, 1, 68, 48, - 32, 12, 10, 3, 7, 15, 17, 14, 94, 62, - 48, 34, 64, 24, 12, 1, 3, 7, 78, 48, - 28, 14, 30, 8, 3, 11, 21, 21, 42, 14, - 6, 3, 8, 11, 21, 27, 4, 82, 48, 30, - 16, 38, 10, 4, 0, 9, 124, 33, 15, 2, - 5, 9, 2, 16, 18, 1, 16, 28, 32, 25, - 15, 21, 1, 32, 5, 9, 6, 20, 34, 27, - 11, 22, 26, 37, 35, 37, 31, 21, 0, 19, - 9, 13, 5, 4, 21, 13, 11, 0, 29, 19, - 33, 41, 5, 71, 25, 0, 13, 22, 13, 3, - 38, 9, 13, 3, 30, 27, 21, 61, 54, 64, - 66, 50, 26, 52, 44, 34, 32, 28, 26, 18, - 17, 23, 37, 5, 1, 19, 53, 21, 21, 29, - 27, 27, 17, 19, 47, 47, 41, 48, 46, 46, - 34, 10, 22, 16, 7, 4, 7, 9, 33, 35, - 37, 41, 14, 20, 23, 14, 12, 7, 19, 19, - 23, 27, 27, 37, 55, 53, 65, 69, 83, 41, - 61, 75, 41, 13, 25, 2, 4, 6, 92, 26, - 24, 9, 44, 114, 86, 124, 24, 58, 46, 7, - 47, 59, 69, 121, 117, 115, 9, 86, 54, 36, - 18, 26, 4, 5, 9, 19, 27, 13, 8, 3, - 26, 22, 6, 12, 22, 28, 30, 16, 36, 32, - 0, 60, 50, 28, 14, 2, 9, 57, 63, 63, - }, - - { - /* Context Tables for I, SI Slices :: qp = 34 */ - - 72, 10, 33, 72, 10, 33, 7, 16, 46, 24, - 3, 35, 26, 38, 104, 28, 48, 7, 26, 44, - 1, 21, 1, 45, 77, 2, 4, 117, 121, 119, - 68, 4, 11, 26, 44, 1, 19, 10, 30, 1, - 2, 9, 17, 7, 35, 23, 57, 10, 11, 17, - 1, 27, 21, 49, 22, 0, 3, 11, 12, 6, - 44, 0, 0, 0, 0, 61, 67, 12, 9, 9, - 104, 12, 11, 53, 21, 37, 8, 2, 11, 4, - 25, 14, 11, 11, 0, 45, 51, 49, 55, 52, - 0, 22, 25, 0, 25, 9, 0, 15, 41, 25, - 41, 32, 15, 4, 29, 29, 0, 13, 6, 18, - 8, 10, 32, 26, 29, 5, 4, 5, 4, 19, - 22, 5, 14, 38, 4, 32, 34, 18, 37, 20, - 1, 29, 7, 55, 33, 9, 19, 0, 9, 5, - 26, 1, 9, 8, 20, 17, 17, 0, 67, 43, - 9, 63, 5, 25, 24, 1, 27, 44, 2, 3, - 35, 46, 25, 49, 2, 67, 24, 46, 42, 36, - 46, 34, 10, 40, 44, 23, 4, 20, 6, 2, - 23, 0, 9, 13, 3, 15, 31, 5, 13, 67, - 33, 25, 47, 37, 51, 54, 68, 50, 50, 48, - 32, 24, 32, 12, 0, 8, 13, 35, 35, 81, - 12, 6, 27, 2, 13, 17, 27, 35, 43, 51, - 53, 81, 27, 61, 81, 59, 75, 1, 68, 48, - 32, 12, 10, 3, 7, 15, 15, 14, 94, 62, - 48, 34, 66, 24, 14, 1, 1, 5, 80, 50, - 28, 14, 32, 8, 3, 9, 19, 19, 44, 16, - 6, 3, 10, 9, 19, 25, 4, 82, 48, 30, - 16, 40, 12, 6, 2, 7, 124, 33, 15, 2, - 5, 9, 2, 16, 18, 1, 16, 28, 34, 25, - 15, 21, 3, 32, 7, 11, 4, 18, 34, 29, - 13, 22, 26, 39, 37, 39, 29, 19, 2, 19, - 9, 13, 3, 6, 21, 13, 11, 0, 31, 19, - 33, 41, 3, 71, 25, 0, 13, 24, 13, 3, - 40, 9, 13, 3, 32, 29, 21, 63, 52, 64, - 66, 48, 24, 50, 42, 32, 30, 26, 24, 16, - 19, 25, 39, 9, 3, 23, 57, 23, 23, 31, - 29, 27, 17, 19, 47, 49, 39, 44, 42, 42, - 30, 4, 18, 12, 13, 0, 11, 13, 37, 39, - 39, 43, 10, 16, 25, 10, 8, 11, 23, 23, - 27, 31, 31, 41, 59, 57, 69, 73, 85, 45, - 65, 79, 39, 11, 23, 4, 6, 8, 96, 28, - 26, 9, 46, 116, 88, 124, 26, 56, 42, 13, - 53, 65, 75, 125, 121, 117, 9, 86, 54, 36, - 18, 26, 4, 5, 9, 17, 25, 11, 10, 1, - 28, 24, 8, 14, 24, 30, 32, 16, 38, 32, - 0, 58, 46, 24, 10, 1, 13, 61, 67, 65, - }, - - { - /* Context Tables for I, SI Slices :: qp = 35 */ - - 70, 10, 33, 70, 10, 33, 3, 20, 48, 24, - 5, 39, 22, 36, 104, 28, 52, 7, 28, 46, - 1, 23, 1, 47, 79, 2, 0, 119, 123, 119, - 74, 6, 11, 28, 46, 1, 17, 12, 32, 1, - 2, 7, 15, 9, 37, 23, 57, 10, 11, 17, - 1, 27, 21, 49, 24, 0, 3, 11, 14, 6, - 44, 0, 0, 0, 0, 61, 67, 14, 11, 9, - 104, 12, 11, 51, 19, 37, 10, 4, 7, 8, - 21, 16, 7, 9, 4, 43, 49, 47, 53, 54, - 0, 24, 23, 0, 23, 9, 4, 15, 39, 23, - 39, 32, 15, 6, 25, 27, 2, 13, 6, 18, - 8, 12, 34, 28, 29, 5, 4, 5, 4, 19, - 22, 7, 14, 38, 2, 32, 34, 18, 41, 20, - 3, 33, 9, 57, 31, 7, 17, 2, 7, 5, - 28, 1, 7, 10, 22, 17, 17, 0, 69, 41, - 7, 63, 5, 25, 26, 1, 29, 46, 2, 3, - 37, 48, 25, 51, 2, 69, 22, 44, 42, 34, - 44, 32, 10, 38, 42, 25, 2, 20, 6, 2, - 25, 1, 11, 15, 5, 17, 33, 7, 13, 71, - 35, 25, 49, 39, 51, 52, 64, 48, 46, 44, - 28, 20, 28, 8, 5, 4, 17, 39, 41, 85, - 8, 2, 29, 1, 17, 23, 33, 39, 49, 55, - 57, 87, 29, 65, 83, 61, 75, 1, 70, 48, - 32, 12, 10, 3, 7, 15, 15, 14, 94, 62, - 48, 34, 68, 26, 14, 0, 1, 3, 82, 50, - 30, 14, 34, 10, 1, 9, 17, 17, 46, 18, - 8, 3, 12, 7, 17, 23, 6, 82, 48, 30, - 16, 42, 12, 8, 4, 5, 124, 31, 13, 4, - 5, 9, 2, 16, 18, 1, 16, 28, 34, 25, - 15, 21, 3, 34, 9, 13, 2, 16, 34, 31, - 15, 22, 26, 39, 39, 39, 27, 17, 4, 17, - 7, 11, 3, 8, 21, 13, 11, 2, 31, 19, - 33, 39, 1, 71, 25, 0, 13, 26, 13, 3, - 42, 9, 13, 3, 34, 31, 21, 65, 50, 62, - 64, 46, 22, 48, 40, 30, 28, 24, 22, 14, - 21, 27, 41, 11, 5, 25, 61, 27, 25, 33, - 29, 29, 17, 19, 47, 49, 37, 40, 38, 38, - 26, 1, 14, 8, 17, 3, 15, 17, 43, 43, - 43, 45, 6, 14, 29, 6, 4, 15, 27, 27, - 31, 35, 35, 45, 65, 61, 73, 77, 87, 49, - 69, 81, 37, 9, 21, 6, 8, 10, 98, 30, - 28, 9, 48, 120, 92, 124, 28, 52, 40, 17, - 59, 71, 81, 125, 125, 119, 9, 86, 54, 36, - 18, 26, 4, 5, 9, 17, 23, 9, 12, 0, - 30, 24, 8, 16, 24, 30, 32, 16, 38, 32, - 0, 56, 44, 20, 6, 5, 17, 65, 71, 67, - }, - - { - /* Context Tables for I, SI Slices :: qp = 36 */ - - 66, 10, 33, 66, 10, 33, 1, 22, 48, 24, - 5, 41, 20, 32, 104, 28, 58, 9, 30, 46, - 1, 25, 1, 49, 81, 0, 3, 123, 125, 121, - 80, 8, 11, 30, 46, 1, 17, 14, 32, 3, - 2, 7, 15, 9, 37, 21, 57, 10, 11, 15, - 3, 29, 21, 49, 24, 2, 3, 9, 14, 6, - 44, 0, 0, 0, 2, 63, 67, 14, 13, 9, - 104, 12, 11, 49, 17, 37, 10, 8, 5, 12, - 19, 18, 5, 5, 8, 41, 49, 45, 53, 54, - 0, 26, 21, 0, 23, 7, 8, 15, 39, 23, - 37, 32, 13, 6, 23, 27, 2, 13, 8, 18, - 8, 12, 34, 28, 31, 7, 4, 5, 4, 19, - 22, 7, 12, 38, 2, 32, 34, 16, 45, 20, - 3, 37, 11, 59, 29, 5, 15, 4, 7, 3, - 30, 0, 7, 12, 24, 17, 17, 2, 71, 41, - 5, 63, 5, 25, 26, 1, 31, 48, 2, 3, - 41, 50, 27, 53, 2, 71, 18, 42, 40, 32, - 42, 30, 8, 36, 42, 29, 0, 18, 6, 2, - 25, 3, 11, 17, 5, 19, 35, 9, 15, 75, - 37, 27, 51, 41, 51, 48, 62, 44, 42, 40, - 24, 14, 24, 2, 9, 0, 23, 45, 45, 91, - 4, 0, 33, 7, 21, 27, 37, 45, 53, 61, - 61, 91, 31, 67, 87, 63, 75, 1, 70, 50, - 32, 12, 10, 3, 7, 15, 13, 16, 96, 62, - 48, 34, 70, 26, 16, 0, 0, 3, 84, 52, - 30, 14, 34, 10, 1, 7, 15, 17, 48, 18, - 8, 3, 14, 5, 17, 21, 6, 84, 48, 30, - 16, 44, 14, 8, 6, 3, 124, 31, 13, 4, - 5, 9, 2, 16, 18, 0, 16, 28, 36, 25, - 15, 21, 5, 34, 11, 15, 0, 14, 34, 35, - 17, 20, 26, 41, 41, 41, 27, 17, 6, 17, - 7, 11, 1, 10, 23, 13, 11, 2, 33, 19, - 33, 39, 0, 71, 25, 2, 13, 26, 13, 3, - 44, 9, 15, 3, 36, 31, 23, 67, 48, 62, - 64, 44, 20, 46, 38, 28, 26, 22, 20, 12, - 23, 29, 43, 15, 9, 29, 65, 29, 27, 35, - 31, 29, 17, 19, 47, 51, 37, 34, 32, 34, - 20, 7, 10, 4, 23, 7, 19, 21, 47, 47, - 45, 47, 2, 10, 31, 2, 0, 19, 31, 33, - 35, 39, 39, 49, 69, 65, 77, 81, 89, 53, - 73, 85, 35, 7, 19, 6, 10, 12, 102, 32, - 30, 9, 50, 122, 94, 124, 28, 50, 36, 23, - 65, 77, 87, 125, 125, 121, 9, 86, 54, 36, - 18, 26, 4, 5, 9, 15, 21, 7, 14, 0, - 32, 26, 10, 18, 26, 32, 34, 18, 40, 34, - 0, 52, 40, 16, 2, 9, 21, 69, 75, 69, - }, - - { - /* Context Tables for I, SI Slices :: qp = 37 */ - - 64, 10, 33, 64, 10, 33, 2, 26, 48, 24, - 7, 45, 16, 30, 104, 28, 62, 9, 32, 48, - 1, 25, 0, 51, 83, 0, 7, 125, 125, 121, - 86, 12, 11, 32, 48, 1, 17, 16, 32, 3, - 2, 7, 13, 9, 39, 21, 57, 10, 11, 13, - 3, 29, 21, 49, 26, 2, 1, 9, 16, 6, - 44, 0, 0, 0, 2, 63, 67, 16, 15, 9, - 104, 12, 11, 47, 15, 37, 12, 10, 1, 16, - 15, 20, 1, 3, 12, 39, 47, 43, 51, 56, - 0, 28, 19, 0, 21, 5, 12, 15, 39, 21, - 33, 34, 13, 8, 21, 25, 4, 13, 8, 20, - 10, 14, 36, 30, 31, 7, 4, 5, 4, 19, - 22, 9, 10, 38, 0, 32, 34, 16, 49, 20, - 5, 39, 13, 61, 27, 3, 13, 6, 5, 1, - 32, 2, 5, 14, 26, 17, 17, 2, 73, 39, - 3, 63, 3, 25, 28, 1, 33, 50, 2, 3, - 43, 52, 27, 55, 2, 71, 16, 40, 40, 30, - 40, 28, 6, 36, 42, 31, 1, 18, 6, 2, - 27, 3, 13, 19, 7, 21, 37, 9, 17, 79, - 39, 29, 53, 43, 51, 44, 60, 40, 38, 38, - 20, 10, 20, 1, 13, 3, 27, 49, 49, 95, - 0, 3, 37, 11, 25, 31, 41, 49, 57, 67, - 65, 97, 33, 71, 89, 63, 75, 1, 70, 50, - 32, 12, 10, 3, 7, 15, 13, 16, 96, 62, - 48, 34, 72, 28, 18, 0, 2, 1, 86, 54, - 30, 16, 36, 12, 0, 7, 13, 15, 52, 20, - 8, 1, 16, 3, 15, 19, 8, 84, 50, 30, - 16, 46, 16, 10, 8, 1, 124, 31, 13, 6, - 5, 9, 2, 16, 18, 0, 16, 30, 36, 25, - 15, 21, 7, 36, 13, 17, 1, 14, 34, 37, - 19, 20, 26, 43, 43, 41, 25, 15, 8, 15, - 5, 9, 1, 12, 23, 13, 11, 2, 35, 19, - 33, 37, 2, 71, 25, 2, 13, 28, 13, 3, - 46, 9, 15, 3, 38, 33, 23, 67, 46, 62, - 62, 44, 18, 44, 36, 26, 26, 20, 18, 10, - 25, 31, 45, 17, 11, 31, 69, 31, 29, 37, - 33, 31, 17, 17, 47, 51, 35, 30, 28, 30, - 16, 11, 6, 0, 27, 11, 23, 25, 51, 51, - 49, 49, 1, 6, 33, 1, 3, 23, 35, 37, - 39, 43, 43, 53, 75, 69, 81, 85, 91, 57, - 77, 87, 33, 3, 17, 8, 12, 14, 106, 34, - 32, 9, 52, 124, 98, 124, 30, 46, 32, 27, - 71, 81, 93, 125, 125, 123, 9, 86, 54, 36, - 18, 26, 4, 5, 9, 15, 19, 5, 16, 2, - 34, 28, 10, 20, 28, 34, 36, 18, 40, 34, - 0, 50, 38, 14, 0, 13, 25, 73, 79, 71, - }, - - { - /* Context Tables for I, SI Slices :: qp = 38 */ - - 62, 10, 35, 62, 10, 35, 6, 28, 50, 24, - 7, 47, 14, 28, 104, 28, 66, 9, 32, 50, - 1, 27, 0, 53, 85, 1, 9, 125, 125, 123, - 92, 14, 11, 32, 50, 1, 15, 18, 34, 5, - 4, 5, 11, 11, 39, 21, 57, 10, 9, 13, - 3, 29, 19, 49, 26, 2, 1, 9, 16, 6, - 44, 0, 0, 0, 4, 63, 67, 16, 15, 11, - 104, 12, 11, 45, 15, 37, 12, 12, 2, 20, - 13, 22, 2, 1, 16, 37, 45, 41, 49, 58, - 0, 30, 19, 2, 21, 5, 16, 15, 37, 21, - 31, 34, 13, 8, 17, 25, 6, 11, 8, 20, - 10, 16, 36, 30, 33, 7, 4, 5, 4, 19, - 22, 9, 10, 38, 1, 32, 34, 16, 53, 20, - 5, 43, 15, 63, 27, 1, 13, 6, 3, 1, - 34, 2, 5, 14, 30, 17, 17, 2, 75, 39, - 1, 63, 3, 25, 30, 0, 35, 50, 2, 3, - 45, 54, 29, 57, 2, 73, 12, 38, 38, 30, - 38, 28, 6, 34, 40, 33, 3, 18, 6, 2, - 27, 5, 15, 21, 9, 21, 39, 11, 17, 83, - 41, 29, 55, 45, 51, 42, 56, 38, 34, 34, - 16, 6, 16, 7, 19, 7, 33, 55, 55, 101, - 3, 7, 39, 15, 31, 37, 47, 53, 63, 71, - 71, 101, 35, 75, 91, 65, 75, 0, 72, 50, - 34, 12, 10, 3, 7, 15, 11, 16, 96, 64, - 48, 34, 74, 28, 18, 2, 2, 0, 88, 54, - 32, 16, 38, 12, 0, 5, 11, 13, 54, 22, - 10, 1, 16, 3, 13, 15, 8, 84, 50, 30, - 18, 46, 16, 12, 8, 0, 124, 29, 11, 6, - 5, 9, 2, 16, 18, 0, 18, 30, 38, 25, - 15, 23, 7, 36, 15, 19, 3, 12, 34, 39, - 21, 20, 26, 43, 45, 43, 23, 13, 10, 15, - 5, 9, 0, 12, 23, 11, 9, 4, 35, 19, - 33, 37, 4, 71, 25, 2, 13, 30, 13, 3, - 48, 11, 15, 3, 38, 35, 23, 69, 44, 60, - 62, 42, 16, 44, 36, 24, 24, 20, 16, 8, - 27, 33, 47, 21, 13, 35, 73, 35, 33, 39, - 33, 31, 17, 17, 45, 53, 33, 26, 24, 26, - 12, 17, 2, 3, 33, 15, 29, 29, 57, 55, - 51, 49, 3, 4, 37, 5, 9, 27, 39, 41, - 43, 47, 49, 57, 79, 73, 85, 87, 95, 61, - 81, 91, 31, 1, 15, 10, 14, 16, 108, 36, - 34, 9, 54, 124, 100, 124, 32, 44, 30, 33, - 77, 87, 97, 125, 125, 125, 7, 86, 54, 36, - 18, 26, 4, 5, 9, 13, 17, 5, 18, 4, - 36, 28, 12, 22, 28, 34, 36, 18, 42, 34, - 0, 48, 34, 10, 3, 15, 27, 79, 81, 73, - }, - - { - /* Context Tables for I, SI Slices :: qp = 39 */ - - 60, 10, 35, 60, 10, 35, 10, 32, 50, 24, - 9, 51, 10, 24, 104, 28, 72, 11, 34, 50, - 1, 29, 0, 55, 87, 1, 13, 125, 125, 123, - 98, 16, 11, 34, 50, 1, 15, 20, 34, 5, - 4, 5, 11, 11, 41, 19, 57, 10, 9, 11, - 5, 29, 19, 49, 28, 4, 1, 7, 18, 6, - 44, 0, 0, 0, 4, 63, 67, 18, 17, 11, - 104, 12, 11, 43, 13, 37, 14, 16, 4, 24, - 9, 24, 4, 2, 20, 35, 43, 39, 49, 60, - 0, 32, 17, 2, 19, 3, 20, 15, 37, 19, - 29, 34, 11, 10, 15, 23, 6, 11, 10, 20, - 10, 18, 38, 32, 33, 9, 4, 5, 4, 19, - 22, 11, 8, 38, 1, 32, 34, 14, 57, 20, - 7, 47, 17, 65, 25, 0, 11, 8, 1, 0, - 36, 4, 3, 16, 32, 17, 17, 4, 77, 37, - 0, 63, 3, 25, 30, 0, 37, 52, 2, 3, - 49, 56, 29, 59, 2, 75, 10, 36, 38, 28, - 36, 26, 4, 32, 40, 35, 5, 18, 6, 2, - 29, 7, 15, 23, 9, 23, 41, 13, 19, 87, - 43, 31, 57, 47, 51, 38, 54, 34, 30, 30, - 12, 0, 12, 11, 23, 11, 37, 59, 59, 105, - 7, 9, 43, 21, 35, 41, 51, 59, 67, 77, - 75, 107, 37, 77, 95, 67, 75, 0, 72, 52, - 34, 12, 10, 3, 7, 15, 11, 18, 98, 64, - 48, 34, 76, 30, 20, 2, 4, 2, 90, 56, - 32, 16, 40, 14, 2, 5, 9, 13, 56, 22, - 10, 1, 18, 1, 13, 13, 10, 86, 50, 30, - 18, 48, 18, 14, 10, 2, 124, 29, 11, 8, - 5, 9, 2, 16, 18, 2, 18, 30, 38, 25, - 15, 23, 9, 38, 17, 21, 5, 10, 34, 41, - 23, 18, 26, 45, 47, 43, 21, 13, 12, 13, - 3, 7, 0, 14, 23, 11, 9, 4, 37, 19, - 33, 35, 6, 71, 25, 4, 13, 30, 13, 3, - 50, 11, 15, 3, 40, 35, 25, 71, 42, 60, - 60, 40, 14, 42, 34, 22, 22, 18, 14, 6, - 29, 35, 49, 23, 17, 37, 77, 37, 35, 41, - 35, 33, 17, 17, 45, 53, 31, 22, 20, 22, - 6, 23, 1, 7, 37, 19, 33, 33, 61, 59, - 55, 51, 7, 0, 39, 9, 13, 31, 43, 45, - 47, 51, 53, 61, 85, 77, 89, 91, 97, 65, - 85, 93, 29, 0, 13, 10, 16, 18, 112, 38, - 36, 9, 56, 124, 104, 124, 32, 40, 26, 37, - 83, 93, 103, 125, 125, 125, 7, 86, 54, 36, - 18, 26, 4, 5, 9, 13, 15, 3, 20, 6, - 38, 30, 12, 24, 30, 36, 38, 20, 42, 36, - 0, 44, 32, 6, 7, 19, 31, 83, 85, 75, - }, - - { - /* Context Tables for I, SI Slices :: qp = 40 */ - - 56, 8, 35, 56, 8, 35, 12, 34, 50, 24, - 9, 53, 8, 22, 104, 28, 76, 11, 36, 52, - 1, 31, 0, 57, 91, 3, 17, 125, 125, 125, - 102, 18, 11, 36, 52, 1, 15, 22, 34, 7, - 4, 5, 9, 13, 41, 19, 59, 10, 9, 11, - 5, 31, 19, 49, 28, 4, 1, 7, 18, 6, - 44, 0, 0, 0, 6, 65, 67, 18, 19, 11, - 104, 12, 11, 41, 11, 37, 14, 18, 8, 28, - 7, 26, 8, 4, 22, 33, 43, 37, 47, 60, - 0, 34, 15, 2, 19, 3, 22, 15, 37, 19, - 27, 34, 11, 10, 13, 23, 8, 11, 10, 20, - 10, 18, 38, 32, 35, 9, 4, 5, 4, 19, - 22, 11, 6, 38, 3, 32, 34, 14, 61, 20, - 7, 51, 19, 67, 23, 2, 9, 10, 1, 0, - 38, 4, 3, 18, 34, 17, 17, 4, 81, 37, - 2, 63, 3, 27, 32, 0, 39, 54, 2, 3, - 51, 58, 31, 61, 2, 77, 6, 34, 36, 26, - 34, 24, 2, 30, 38, 39, 7, 16, 6, 2, - 29, 9, 17, 25, 11, 25, 43, 15, 21, 91, - 47, 33, 59, 49, 51, 34, 50, 30, 26, 26, - 8, 3, 8, 17, 29, 15, 43, 65, 65, 111, - 11, 13, 47, 25, 39, 47, 57, 63, 73, 83, - 79, 111, 39, 81, 97, 69, 77, 0, 72, 52, - 34, 12, 10, 3, 7, 15, 9, 18, 98, 64, - 48, 34, 78, 30, 20, 2, 4, 2, 92, 56, - 32, 16, 40, 14, 2, 3, 7, 11, 58, 24, - 10, 1, 20, 0, 11, 11, 10, 86, 50, 30, - 18, 50, 18, 14, 12, 2, 124, 29, 11, 8, - 5, 9, 2, 16, 18, 2, 18, 30, 40, 25, - 15, 23, 11, 38, 19, 23, 7, 8, 34, 45, - 27, 18, 26, 47, 49, 45, 21, 11, 14, 13, - 3, 7, 2, 16, 25, 11, 9, 4, 39, 19, - 33, 35, 6, 73, 25, 4, 13, 32, 13, 3, - 50, 11, 17, 3, 42, 37, 25, 73, 40, 58, - 60, 38, 10, 40, 32, 20, 20, 16, 12, 4, - 31, 37, 51, 27, 19, 41, 81, 41, 37, 43, - 37, 33, 17, 17, 45, 55, 31, 16, 14, 18, - 2, 29, 7, 13, 43, 23, 37, 37, 67, 63, - 57, 53, 11, 3, 43, 13, 17, 37, 49, 51, - 53, 55, 57, 67, 89, 81, 95, 95, 99, 69, - 89, 97, 27, 2, 11, 12, 18, 18, 114, 40, - 36, 9, 56, 124, 106, 124, 34, 38, 22, 43, - 89, 99, 109, 125, 125, 125, 7, 86, 54, 36, - 18, 26, 4, 5, 9, 11, 15, 1, 22, 6, - 40, 30, 14, 24, 30, 36, 38, 20, 44, 36, - 1, 42, 28, 2, 11, 23, 35, 87, 89, 77, - }, - - { - /* Context Tables for I, SI Slices :: qp = 41 */ - - 54, 8, 35, 54, 8, 35, 16, 36, 52, 24, - 9, 55, 6, 20, 104, 28, 80, 11, 38, 54, - 1, 31, 2, 59, 93, 5, 21, 125, 125, 125, - 108, 22, 11, 38, 54, 1, 13, 24, 36, 9, - 4, 3, 7, 13, 41, 19, 59, 10, 9, 9, - 5, 31, 19, 49, 28, 4, 0, 7, 18, 6, - 44, 0, 0, 0, 8, 65, 67, 18, 21, 11, - 104, 12, 11, 39, 9, 37, 14, 20, 12, 32, - 3, 30, 12, 6, 26, 31, 41, 35, 45, 62, - 2, 36, 13, 2, 17, 1, 26, 15, 35, 19, - 23, 36, 11, 10, 9, 23, 10, 11, 10, 22, - 12, 20, 38, 32, 35, 9, 6, 5, 4, 17, - 22, 11, 6, 38, 5, 32, 34, 14, 65, 20, - 7, 53, 21, 67, 21, 4, 7, 12, 0, 2, - 40, 6, 3, 20, 36, 17, 17, 4, 83, 35, - 4, 63, 1, 27, 34, 0, 41, 56, 2, 3, - 53, 60, 33, 63, 2, 77, 4, 32, 36, 24, - 32, 22, 2, 30, 38, 41, 9, 16, 6, 2, - 29, 9, 19, 27, 13, 27, 45, 15, 21, 93, - 49, 33, 61, 51, 51, 32, 48, 28, 24, 24, - 4, 7, 4, 21, 33, 19, 47, 71, 69, 117, - 13, 17, 49, 29, 43, 51, 61, 67, 77, 87, - 83, 115, 39, 85, 99, 69, 77, 0, 74, 52, - 34, 14, 10, 3, 5, 15, 7, 18, 98, 64, - 50, 34, 80, 32, 22, 4, 6, 4, 94, 58, - 34, 18, 42, 16, 2, 1, 5, 9, 62, 26, - 12, 0, 22, 2, 9, 9, 12, 86, 52, 32, - 18, 52, 20, 16, 14, 4, 124, 27, 9, 10, - 5, 9, 2, 18, 20, 2, 18, 32, 42, 25, - 15, 23, 11, 38, 21, 23, 9, 8, 34, 47, - 29, 18, 26, 47, 51, 47, 19, 9, 16, 13, - 1, 7, 4, 18, 25, 11, 9, 6, 39, 19, - 33, 35, 8, 73, 25, 4, 13, 34, 13, 3, - 52, 11, 17, 3, 44, 39, 25, 73, 38, 58, - 60, 38, 8, 38, 30, 18, 20, 14, 10, 4, - 31, 39, 53, 29, 21, 45, 85, 43, 39, 43, - 37, 33, 15, 15, 45, 57, 29, 12, 10, 14, - 1, 33, 11, 17, 47, 27, 41, 41, 71, 67, - 59, 55, 15, 5, 45, 17, 21, 41, 53, 55, - 57, 59, 61, 71, 93, 83, 99, 99, 101, 73, - 93, 101, 25, 6, 7, 14, 20, 20, 118, 42, - 38, 9, 58, 124, 108, 124, 36, 36, 20, 47, - 95, 103, 115, 125, 125, 125, 7, 86, 54, 36, - 18, 28, 4, 5, 9, 9, 13, 0, 24, 8, - 44, 32, 16, 26, 32, 38, 40, 20, 46, 36, - 1, 40, 26, 0, 13, 27, 39, 91, 93, 77, - }, - - { - /* Context Tables for I, SI Slices :: qp = 42 */ - - 52, 8, 35, 52, 8, 35, 20, 40, 52, 24, - 11, 59, 2, 16, 104, 28, 86, 13, 40, 54, - 1, 33, 2, 61, 95, 5, 25, 125, 125, 125, - 114, 24, 11, 40, 54, 1, 13, 26, 36, 9, - 4, 3, 7, 13, 43, 17, 59, 10, 9, 7, - 7, 31, 19, 49, 30, 6, 0, 5, 20, 6, - 44, 0, 0, 0, 8, 65, 67, 20, 23, 11, - 104, 12, 11, 37, 7, 37, 16, 24, 14, 36, - 1, 32, 14, 10, 30, 29, 39, 33, 45, 64, - 2, 38, 11, 2, 17, 0, 30, 15, 35, 17, - 21, 36, 9, 12, 7, 21, 10, 11, 12, 22, - 12, 22, 40, 34, 37, 11, 6, 5, 4, 17, - 22, 13, 4, 38, 5, 32, 34, 12, 69, 20, - 9, 57, 23, 69, 19, 6, 5, 14, 2, 4, - 42, 8, 1, 22, 38, 17, 17, 6, 85, 35, - 6, 63, 1, 27, 34, 0, 43, 58, 2, 3, - 57, 62, 33, 65, 2, 79, 0, 30, 34, 22, - 30, 20, 0, 28, 38, 43, 11, 16, 6, 2, - 31, 11, 19, 29, 13, 29, 47, 17, 23, 97, - 51, 35, 63, 53, 51, 28, 46, 24, 20, 20, - 0, 13, 0, 27, 37, 23, 53, 75, 73, 121, - 17, 19, 53, 35, 47, 55, 65, 73, 81, 93, - 87, 121, 41, 87, 103, 71, 77, 0, 74, 54, - 34, 14, 10, 3, 5, 15, 7, 20, 100, 64, - 50, 34, 82, 32, 24, 4, 8, 6, 96, 60, - 34, 18, 44, 16, 4, 1, 3, 9, 64, 26, - 12, 0, 24, 4, 9, 7, 12, 88, 52, 32, - 18, 54, 22, 18, 16, 6, 124, 27, 9, 10, - 5, 9, 2, 18, 20, 4, 18, 32, 42, 25, - 15, 23, 13, 40, 23, 25, 11, 6, 34, 49, - 31, 16, 26, 49, 53, 47, 17, 9, 18, 11, - 1, 5, 4, 20, 25, 11, 9, 6, 41, 19, - 33, 33, 10, 73, 25, 6, 13, 34, 13, 3, - 54, 11, 17, 3, 46, 39, 27, 75, 36, 58, - 58, 36, 6, 36, 28, 16, 18, 12, 8, 2, - 33, 41, 55, 33, 25, 47, 89, 45, 41, 45, - 39, 35, 15, 15, 45, 57, 27, 8, 6, 10, - 7, 39, 15, 21, 53, 31, 45, 45, 75, 71, - 63, 57, 19, 9, 47, 21, 25, 45, 57, 59, - 61, 63, 65, 75, 99, 87, 103, 103, 103, 77, - 97, 103, 23, 8, 5, 14, 22, 22, 122, 44, - 40, 9, 60, 124, 112, 124, 36, 32, 16, 53, - 101, 109, 121, 125, 125, 125, 7, 86, 54, 36, - 18, 28, 4, 5, 9, 9, 11, 2, 26, 10, - 46, 34, 16, 28, 34, 40, 42, 22, 46, 38, - 1, 36, 22, 3, 17, 31, 43, 95, 97, 79, - }, - - { - /* Context Tables for I, SI Slices :: qp = 43 */ - - 50, 8, 37, 50, 8, 37, 24, 42, 54, 24, - 11, 61, 0, 14, 104, 28, 90, 13, 40, 56, - 1, 35, 2, 63, 97, 7, 27, 125, 125, 125, - 120, 26, 11, 40, 56, 1, 11, 28, 38, 11, - 6, 1, 5, 15, 43, 17, 59, 10, 7, 7, - 7, 31, 17, 49, 30, 6, 0, 5, 20, 6, - 44, 0, 0, 0, 10, 65, 67, 20, 23, 13, - 104, 12, 11, 35, 7, 37, 16, 26, 18, 40, - 2, 34, 18, 12, 34, 27, 37, 31, 43, 66, - 2, 40, 11, 4, 15, 0, 34, 15, 33, 17, - 19, 36, 9, 12, 3, 21, 12, 9, 12, 22, - 12, 24, 40, 34, 37, 11, 6, 5, 4, 17, - 22, 13, 4, 38, 7, 32, 34, 12, 73, 20, - 9, 61, 25, 71, 19, 8, 5, 14, 4, 4, - 44, 8, 1, 22, 42, 17, 17, 6, 87, 33, - 8, 63, 1, 27, 36, 2, 45, 58, 2, 3, - 59, 64, 35, 67, 2, 81, 1, 28, 34, 22, - 28, 20, 0, 26, 36, 45, 13, 16, 6, 2, - 31, 13, 21, 31, 15, 29, 49, 19, 23, 101, - 53, 35, 65, 55, 51, 26, 42, 22, 16, 16, - 3, 17, 3, 31, 43, 27, 57, 81, 79, 125, - 21, 23, 55, 39, 53, 61, 71, 77, 87, 97, - 93, 125, 43, 91, 105, 73, 77, 2, 76, 54, - 36, 14, 10, 3, 5, 15, 5, 20, 100, 66, - 50, 34, 84, 34, 24, 6, 8, 8, 98, 60, - 36, 18, 46, 18, 4, 0, 1, 7, 66, 28, - 14, 0, 24, 4, 7, 3, 14, 88, 52, 32, - 20, 54, 22, 20, 16, 8, 124, 25, 7, 12, - 5, 9, 2, 18, 20, 4, 20, 32, 44, 25, - 15, 25, 13, 40, 25, 27, 13, 4, 34, 51, - 33, 16, 26, 49, 55, 49, 15, 7, 20, 11, - 0, 5, 6, 20, 25, 9, 7, 8, 41, 19, - 33, 33, 12, 73, 25, 6, 13, 36, 13, 3, - 56, 13, 17, 3, 46, 41, 27, 77, 34, 56, - 58, 34, 4, 36, 28, 14, 16, 12, 6, 0, - 35, 43, 57, 35, 27, 51, 93, 49, 45, 47, - 39, 35, 15, 15, 43, 59, 25, 4, 2, 6, - 11, 45, 19, 25, 57, 35, 51, 49, 81, 75, - 65, 57, 21, 11, 51, 25, 31, 49, 61, 63, - 65, 67, 71, 79, 103, 91, 107, 105, 107, 81, - 101, 107, 21, 10, 3, 16, 24, 24, 124, 46, - 42, 9, 62, 124, 114, 124, 38, 30, 14, 57, - 107, 115, 125, 125, 125, 125, 5, 86, 54, 36, - 18, 28, 4, 5, 9, 7, 9, 2, 28, 12, - 48, 34, 18, 30, 34, 40, 42, 22, 48, 38, - 1, 34, 20, 7, 21, 33, 45, 101, 99, 81, - }, - - { - /* Context Tables for I, SI Slices :: qp = 44 */ - - 46, 8, 37, 46, 8, 37, 26, 46, 54, 24, - 13, 65, 3, 12, 104, 28, 94, 13, 42, 58, - 1, 37, 2, 65, 99, 7, 31, 125, 125, 125, - 124, 28, 11, 42, 58, 1, 11, 30, 38, 11, - 6, 1, 3, 15, 45, 17, 59, 10, 7, 5, - 7, 33, 17, 49, 32, 6, 0, 5, 22, 6, - 44, 0, 0, 0, 10, 67, 67, 22, 25, 13, - 104, 12, 11, 33, 5, 37, 18, 28, 22, 44, - 4, 36, 22, 14, 38, 25, 37, 29, 41, 66, - 2, 42, 9, 4, 15, 2, 38, 15, 33, 15, - 17, 36, 9, 14, 1, 19, 14, 9, 12, 22, - 12, 24, 42, 36, 39, 11, 6, 5, 4, 17, - 22, 15, 2, 38, 9, 32, 34, 12, 77, 20, - 11, 65, 27, 73, 17, 10, 3, 16, 4, 6, - 46, 10, 0, 24, 44, 17, 17, 6, 89, 33, - 10, 63, 1, 27, 38, 2, 47, 60, 2, 3, - 61, 66, 35, 69, 2, 83, 5, 26, 32, 20, - 26, 18, 1, 24, 36, 49, 15, 14, 6, 2, - 33, 15, 23, 33, 17, 31, 51, 21, 25, 105, - 55, 37, 67, 57, 51, 22, 40, 18, 12, 12, - 7, 21, 7, 37, 47, 31, 63, 85, 83, 125, - 25, 27, 59, 43, 57, 65, 75, 81, 91, 103, - 97, 125, 45, 95, 107, 75, 77, 2, 76, 54, - 36, 14, 10, 3, 5, 15, 5, 20, 100, 66, - 50, 34, 86, 34, 26, 6, 10, 8, 100, 62, - 36, 18, 46, 18, 6, 0, 0, 5, 68, 30, - 14, 0, 26, 6, 5, 1, 14, 88, 52, 32, - 20, 56, 24, 20, 18, 10, 124, 25, 7, 12, - 5, 9, 2, 18, 20, 4, 20, 32, 44, 25, - 15, 25, 15, 42, 27, 29, 15, 2, 34, 55, - 35, 16, 26, 51, 57, 49, 15, 5, 22, 9, - 0, 3, 6, 22, 27, 9, 7, 8, 43, 19, - 33, 31, 14, 73, 25, 6, 13, 38, 13, 3, - 58, 13, 19, 3, 48, 43, 27, 79, 32, 56, - 56, 32, 2, 34, 26, 12, 14, 10, 4, 1, - 37, 45, 59, 39, 29, 53, 97, 51, 47, 49, - 41, 37, 15, 15, 43, 59, 25, 1, 3, 2, - 15, 51, 23, 29, 63, 39, 55, 53, 85, 79, - 69, 59, 25, 15, 53, 29, 35, 53, 65, 69, - 69, 71, 75, 83, 109, 95, 111, 109, 109, 85, - 105, 109, 19, 12, 1, 18, 26, 26, 124, 48, - 44, 9, 64, 124, 118, 124, 40, 26, 10, 63, - 113, 121, 125, 125, 125, 125, 5, 86, 54, 36, - 18, 28, 4, 5, 9, 7, 7, 4, 30, 12, - 50, 36, 18, 32, 36, 42, 44, 22, 48, 38, - 1, 32, 16, 11, 25, 37, 49, 105, 103, 83, - }, - - { - /* Context Tables for I, SI Slices :: qp = 45 */ - - 44, 8, 37, 44, 8, 37, 30, 48, 54, 24, - 13, 67, 5, 8, 104, 28, 100, 15, 44, 58, - 1, 37, 4, 67, 101, 9, 35, 125, 125, 125, - 124, 32, 11, 44, 58, 1, 11, 32, 38, 13, - 6, 1, 3, 15, 45, 15, 59, 10, 7, 3, - 9, 33, 17, 49, 32, 8, 2, 3, 22, 6, - 44, 0, 0, 0, 12, 67, 67, 22, 27, 13, - 104, 12, 11, 31, 3, 37, 18, 32, 24, 48, - 8, 38, 24, 18, 42, 23, 35, 27, 41, 68, - 2, 44, 7, 4, 13, 4, 42, 15, 33, 15, - 13, 38, 7, 14, 0, 19, 14, 9, 14, 24, - 14, 26, 42, 36, 39, 13, 6, 5, 4, 17, - 22, 15, 0, 38, 9, 32, 34, 10, 81, 20, - 11, 67, 29, 75, 15, 12, 1, 18, 6, 8, - 48, 12, 0, 26, 46, 17, 17, 8, 91, 31, - 12, 63, 0, 27, 38, 2, 49, 62, 2, 3, - 65, 68, 37, 71, 2, 83, 7, 24, 32, 18, - 24, 16, 3, 24, 36, 51, 17, 14, 6, 2, - 33, 15, 23, 35, 17, 33, 53, 21, 27, 109, - 57, 39, 69, 59, 51, 18, 38, 14, 8, 10, - 11, 27, 11, 41, 51, 35, 67, 91, 87, 125, - 29, 29, 63, 49, 61, 69, 79, 87, 95, 109, - 101, 125, 47, 97, 111, 75, 77, 2, 76, 56, - 36, 14, 10, 3, 5, 15, 3, 22, 102, 66, - 50, 34, 88, 36, 28, 6, 12, 10, 102, 64, - 36, 20, 48, 20, 6, 2, 2, 5, 72, 30, - 14, 2, 28, 8, 5, 0, 16, 90, 54, 32, - 20, 58, 26, 22, 20, 12, 124, 25, 7, 14, - 5, 9, 2, 18, 20, 6, 20, 34, 46, 25, - 15, 25, 17, 42, 29, 31, 17, 2, 34, 57, - 37, 14, 26, 53, 59, 51, 13, 5, 24, 9, - 2, 3, 8, 24, 27, 9, 7, 8, 45, 19, - 33, 31, 16, 73, 25, 8, 13, 38, 13, 3, - 60, 13, 19, 3, 50, 43, 29, 79, 30, 56, - 56, 32, 0, 32, 24, 10, 14, 8, 2, 3, - 39, 47, 61, 41, 33, 57, 101, 53, 49, 51, - 43, 37, 15, 13, 43, 61, 23, 5, 7, 1, - 21, 55, 27, 33, 67, 43, 59, 57, 89, 83, - 71, 61, 29, 19, 55, 33, 39, 57, 69, 73, - 73, 75, 79, 87, 113, 99, 115, 113, 111, 89, - 109, 113, 17, 16, 0, 18, 28, 28, 124, 50, - 46, 9, 66, 124, 120, 124, 40, 24, 6, 67, - 119, 125, 125, 125, 125, 125, 5, 86, 54, 36, - 18, 28, 4, 5, 9, 5, 5, 6, 32, 14, - 52, 38, 20, 34, 38, 44, 46, 24, 50, 40, - 1, 28, 14, 13, 27, 41, 53, 109, 107, 85, - }, - - { - /* Context Tables for I, SI Slices :: qp = 46 */ - - 42, 8, 37, 42, 8, 37, 34, 52, 56, 24, - 15, 71, 9, 6, 104, 28, 104, 15, 46, 60, - 1, 39, 4, 69, 103, 9, 39, 125, 125, 125, - 124, 34, 11, 46, 60, 1, 9, 34, 40, 13, - 6, 0, 1, 17, 47, 15, 59, 10, 7, 3, - 9, 33, 17, 49, 34, 8, 2, 3, 24, 6, - 44, 0, 0, 0, 12, 67, 67, 24, 29, 13, - 104, 12, 11, 29, 1, 37, 20, 34, 28, 52, - 10, 40, 28, 20, 46, 21, 33, 25, 39, 70, - 2, 46, 5, 4, 13, 4, 46, 15, 31, 13, - 11, 38, 7, 16, 4, 17, 16, 9, 14, 24, - 14, 28, 44, 38, 41, 13, 6, 5, 4, 17, - 22, 17, 0, 38, 11, 32, 34, 10, 85, 20, - 13, 71, 31, 77, 13, 14, 0, 20, 8, 8, - 50, 12, 2, 28, 48, 17, 17, 8, 93, 31, - 14, 63, 0, 27, 40, 2, 51, 64, 2, 3, - 67, 70, 37, 73, 2, 85, 11, 22, 30, 16, - 22, 14, 3, 22, 34, 53, 19, 14, 6, 2, - 35, 17, 25, 37, 19, 35, 55, 23, 27, 113, - 59, 39, 71, 61, 51, 16, 34, 12, 4, 6, - 15, 31, 15, 47, 57, 39, 73, 95, 93, 125, - 33, 33, 65, 53, 65, 75, 85, 91, 101, 113, - 105, 125, 49, 101, 113, 77, 77, 2, 78, 56, - 36, 14, 10, 3, 5, 15, 3, 22, 102, 66, - 50, 34, 90, 36, 28, 8, 12, 12, 104, 64, - 38, 20, 50, 20, 8, 2, 4, 3, 74, 32, - 16, 2, 30, 10, 3, 2, 16, 90, 54, 32, - 20, 60, 26, 24, 22, 14, 124, 23, 5, 14, - 5, 9, 2, 18, 20, 6, 20, 34, 46, 25, - 15, 25, 17, 44, 31, 33, 19, 0, 34, 59, - 39, 14, 26, 53, 61, 51, 11, 3, 26, 7, - 2, 1, 8, 26, 27, 9, 7, 10, 45, 19, - 33, 29, 18, 73, 25, 8, 13, 40, 13, 3, - 62, 13, 19, 3, 52, 45, 29, 81, 28, 54, - 54, 30, 1, 30, 22, 8, 12, 6, 0, 5, - 41, 49, 63, 45, 35, 59, 105, 57, 51, 53, - 43, 39, 15, 13, 43, 61, 21, 9, 11, 5, - 25, 61, 31, 37, 73, 47, 63, 61, 95, 87, - 75, 63, 33, 21, 59, 37, 43, 61, 73, 77, - 77, 79, 83, 91, 119, 103, 119, 117, 113, 93, - 113, 115, 15, 18, 2, 20, 30, 30, 124, 52, - 48, 9, 68, 124, 124, 124, 42, 20, 4, 73, - 125, 125, 125, 125, 125, 125, 5, 86, 54, 36, - 18, 28, 4, 5, 9, 5, 3, 8, 34, 16, - 54, 38, 20, 36, 38, 44, 46, 24, 50, 40, - 1, 26, 10, 17, 31, 45, 57, 113, 111, 87, - }, - - { - /* Context Tables for I, SI Slices :: qp = 47 */ - - 40, 8, 37, 40, 8, 37, 38, 54, 56, 24, - 15, 73, 11, 4, 104, 28, 108, 15, 48, 62, - 1, 41, 4, 71, 105, 11, 43, 125, 125, 125, - 124, 36, 11, 48, 62, 1, 9, 36, 40, 15, - 6, 0, 0, 17, 47, 15, 59, 10, 7, 1, - 9, 33, 17, 49, 34, 8, 2, 3, 24, 6, - 44, 0, 0, 0, 14, 67, 67, 24, 31, 13, - 104, 12, 11, 27, 0, 37, 20, 36, 32, 56, - 14, 42, 32, 22, 50, 19, 31, 23, 37, 72, - 2, 48, 3, 4, 11, 6, 50, 15, 31, 13, - 9, 38, 7, 16, 6, 17, 18, 9, 14, 24, - 14, 30, 44, 38, 41, 13, 6, 5, 4, 17, - 22, 17, 1, 38, 13, 32, 34, 10, 89, 20, - 13, 75, 33, 79, 11, 16, 2, 22, 10, 10, - 52, 14, 2, 30, 50, 17, 17, 8, 95, 29, - 16, 63, 0, 27, 42, 2, 53, 66, 2, 3, - 69, 72, 39, 75, 2, 87, 13, 20, 30, 14, - 20, 12, 5, 20, 34, 55, 21, 14, 6, 2, - 35, 19, 27, 39, 21, 37, 57, 25, 29, 117, - 61, 41, 73, 63, 51, 12, 32, 8, 0, 2, - 19, 35, 19, 51, 61, 43, 77, 101, 97, 125, - 37, 37, 69, 57, 69, 79, 89, 95, 105, 119, - 109, 125, 51, 105, 115, 79, 77, 2, 78, 56, - 36, 14, 10, 3, 5, 15, 1, 22, 102, 66, - 50, 34, 92, 38, 30, 8, 14, 14, 106, 66, - 38, 20, 52, 22, 8, 4, 6, 1, 76, 34, - 16, 2, 32, 12, 1, 4, 18, 90, 54, 32, - 20, 62, 28, 26, 24, 16, 124, 23, 5, 16, - 5, 9, 2, 18, 20, 6, 20, 34, 48, 25, - 15, 25, 19, 44, 33, 35, 21, 1, 34, 61, - 41, 14, 26, 55, 63, 53, 9, 1, 28, 7, - 4, 1, 10, 28, 27, 9, 7, 10, 47, 19, - 33, 29, 20, 73, 25, 8, 13, 42, 13, 3, - 64, 13, 19, 3, 54, 47, 29, 83, 26, 54, - 54, 28, 3, 28, 20, 6, 10, 4, 1, 7, - 43, 51, 65, 47, 37, 63, 109, 59, 53, 55, - 45, 39, 15, 13, 43, 63, 19, 13, 15, 9, - 29, 67, 35, 41, 77, 51, 67, 65, 99, 91, - 77, 65, 37, 25, 61, 41, 47, 65, 77, 81, - 81, 83, 87, 95, 123, 107, 123, 121, 115, 97, - 117, 119, 13, 20, 4, 22, 32, 32, 124, 54, - 50, 9, 70, 124, 124, 124, 44, 18, 0, 77, - 125, 125, 125, 125, 125, 125, 5, 86, 54, 36, - 18, 28, 4, 5, 9, 3, 1, 10, 36, 18, - 56, 40, 22, 38, 40, 46, 48, 24, 52, 40, - 1, 24, 8, 21, 35, 49, 61, 117, 115, 89, - }, - - { - /* Context Tables for I, SI Slices :: qp = 48 */ - - 36, 6, 39, 36, 6, 39, 40, 56, 56, 24, - 17, 77, 15, 0, 102, 28, 112, 17, 48, 62, - 3, 43, 4, 75, 109, 13, 47, 125, 125, 125, - 124, 38, 13, 48, 62, 3, 9, 38, 40, 17, - 6, 0, 0, 19, 49, 15, 61, 10, 7, 1, - 11, 35, 17, 49, 34, 8, 2, 3, 24, 4, - 44, 0, 0, 0, 14, 69, 67, 24, 33, 15, - 104, 10, 11, 25, 0, 37, 20, 38, 34, 58, - 16, 44, 34, 24, 52, 17, 31, 21, 37, 72, - 2, 48, 3, 4, 11, 6, 52, 15, 31, 13, - 7, 38, 7, 16, 8, 17, 18, 9, 14, 24, - 14, 30, 44, 38, 43, 15, 6, 7, 4, 17, - 20, 19, 3, 38, 15, 30, 34, 8, 93, 18, - 15, 79, 35, 81, 11, 16, 2, 22, 10, 10, - 54, 14, 2, 30, 52, 19, 17, 8, 99, 29, - 16, 63, 0, 29, 42, 2, 55, 66, 2, 3, - 73, 72, 41, 77, 2, 89, 17, 18, 28, 12, - 18, 10, 7, 18, 32, 59, 23, 12, 4, 2, - 37, 21, 29, 41, 23, 39, 59, 27, 31, 121, - 65, 43, 77, 67, 51, 8, 28, 4, 3, 1, - 25, 41, 25, 57, 67, 49, 83, 107, 103, 125, - 41, 41, 73, 63, 75, 85, 95, 101, 111, 125, - 115, 125, 53, 109, 119, 81, 79, 2, 78, 56, - 36, 14, 10, 5, 5, 15, 1, 22, 102, 66, - 50, 34, 94, 38, 30, 8, 14, 14, 106, 66, - 38, 20, 52, 22, 8, 4, 8, 1, 78, 34, - 16, 2, 32, 12, 1, 6, 18, 90, 54, 32, - 20, 62, 28, 26, 24, 16, 124, 23, 5, 16, - 5, 9, 2, 18, 20, 6, 20, 34, 48, 25, - 15, 27, 21, 44, 35, 37, 23, 3, 32, 65, - 45, 12, 24, 57, 67, 55, 9, 1, 30, 7, - 4, 1, 10, 28, 29, 9, 7, 10, 49, 19, - 33, 29, 20, 75, 25, 8, 13, 42, 15, 3, - 64, 15, 21, 3, 54, 49, 31, 85, 24, 52, - 52, 26, 7, 26, 18, 4, 8, 2, 3, 9, - 45, 55, 69, 51, 41, 67, 113, 63, 57, 57, - 47, 41, 15, 13, 43, 65, 19, 19, 21, 13, - 35, 73, 41, 47, 83, 57, 73, 71, 105, 97, - 81, 67, 41, 29, 65, 45, 53, 71, 83, 87, - 87, 87, 93, 101, 125, 111, 125, 125, 119, 101, - 121, 123, 11, 22, 6, 22, 32, 32, 124, 54, - 50, 9, 70, 124, 124, 124, 44, 14, 3, 83, - 125, 125, 125, 125, 125, 125, 5, 86, 52, 34, - 18, 28, 4, 7, 9, 3, 1, 10, 36, 18, - 58, 40, 22, 38, 40, 46, 48, 24, 52, 40, - 3, 20, 4, 25, 39, 53, 65, 123, 119, 91, - }, - - { - /* Context Tables for I, SI Slices :: qp = 49 */ - - 34, 6, 39, 34, 6, 39, 44, 60, 58, 26, - 17, 79, 17, 1, 102, 28, 118, 17, 50, 64, - 3, 43, 6, 77, 111, 13, 49, 125, 125, 125, - 124, 42, 13, 50, 64, 3, 7, 42, 42, 17, - 8, 2, 2, 19, 49, 13, 61, 10, 5, 0, - 11, 35, 15, 49, 36, 10, 4, 1, 26, 4, - 44, 0, 0, 0, 16, 69, 67, 26, 33, 15, - 104, 10, 11, 21, 2, 37, 22, 42, 38, 62, - 20, 48, 38, 28, 56, 13, 29, 19, 35, 74, - 4, 50, 1, 6, 9, 8, 56, 13, 29, 11, - 3, 40, 5, 18, 12, 15, 20, 7, 16, 26, - 16, 32, 46, 40, 43, 15, 8, 7, 4, 15, - 20, 19, 3, 38, 15, 30, 34, 8, 95, 18, - 15, 81, 37, 81, 9, 18, 4, 24, 12, 12, - 56, 16, 4, 32, 56, 19, 17, 10, 101, 27, - 18, 63, 2, 29, 44, 4, 55, 68, 2, 3, - 75, 74, 41, 79, 2, 89, 19, 18, 28, 12, - 18, 10, 7, 18, 32, 61, 23, 12, 4, 2, - 37, 21, 29, 41, 23, 39, 61, 27, 31, 123, - 67, 43, 79, 69, 51, 6, 26, 2, 5, 3, - 29, 45, 29, 61, 71, 53, 87, 111, 107, 125, - 43, 43, 75, 67, 79, 89, 99, 105, 115, 125, - 119, 125, 53, 111, 121, 81, 79, 4, 80, 58, - 38, 16, 10, 5, 3, 13, 0, 24, 104, 68, - 52, 34, 96, 40, 32, 10, 16, 16, 108, 68, - 40, 22, 54, 24, 10, 6, 12, 0, 82, 36, - 18, 4, 34, 14, 0, 10, 20, 92, 56, 34, - 22, 64, 30, 28, 26, 18, 124, 21, 3, 18, - 5, 7, 2, 20, 22, 8, 22, 36, 50, 23, - 15, 27, 21, 46, 35, 37, 25, 3, 32, 67, - 47, 12, 24, 57, 69, 55, 7, 0, 32, 5, - 6, 0, 12, 30, 29, 7, 5, 12, 49, 17, - 31, 27, 22, 75, 25, 10, 13, 44, 15, 3, - 66, 15, 21, 1, 56, 49, 31, 85, 24, 52, - 52, 26, 9, 26, 18, 4, 8, 2, 3, 9, - 45, 57, 71, 53, 43, 69, 115, 65, 59, 57, - 47, 41, 13, 11, 41, 65, 17, 23, 25, 17, - 39, 77, 45, 51, 87, 61, 77, 75, 109, 101, - 83, 67, 43, 31, 67, 47, 57, 75, 87, 91, - 91, 91, 97, 105, 125, 113, 125, 125, 121, 103, - 123, 125, 7, 26, 10, 24, 34, 34, 124, 56, - 52, 9, 72, 124, 124, 124, 46, 12, 5, 87, - 125, 125, 125, 125, 125, 125, 3, 88, 52, 34, - 18, 30, 4, 7, 9, 1, 0, 12, 38, 20, - 62, 42, 24, 40, 42, 48, 50, 26, 54, 42, - 3, 18, 2, 27, 41, 55, 67, 125, 121, 91, - }, - - { - /* Context Tables for I, SI Slices :: qp = 50 */ - - 32, 6, 39, 32, 6, 39, 48, 62, 58, 26, - 17, 81, 19, 3, 102, 28, 122, 17, 52, 66, - 3, 45, 6, 79, 113, 15, 53, 125, 125, 125, - 124, 44, 13, 52, 66, 3, 7, 44, 42, 19, - 8, 2, 4, 19, 49, 13, 61, 10, 5, 2, - 11, 35, 15, 49, 36, 10, 4, 1, 26, 4, - 44, 0, 0, 0, 18, 69, 67, 26, 35, 15, - 104, 10, 11, 19, 4, 37, 22, 44, 42, 66, - 22, 50, 42, 30, 60, 11, 27, 17, 33, 76, - 4, 52, 0, 6, 9, 10, 60, 13, 29, 11, - 1, 40, 5, 18, 14, 15, 22, 7, 16, 26, - 16, 34, 46, 40, 45, 15, 8, 7, 4, 15, - 20, 19, 5, 38, 17, 30, 34, 8, 99, 18, - 15, 85, 39, 83, 7, 20, 6, 26, 14, 14, - 58, 18, 4, 34, 58, 19, 17, 10, 103, 27, - 20, 63, 2, 29, 46, 4, 57, 70, 2, 3, - 77, 76, 43, 81, 2, 91, 23, 16, 26, 10, - 16, 8, 9, 16, 32, 63, 25, 12, 4, 2, - 37, 23, 31, 43, 25, 41, 63, 29, 33, 125, - 69, 45, 81, 71, 51, 2, 24, 1, 9, 7, - 33, 49, 33, 67, 75, 57, 93, 117, 111, 125, - 47, 47, 79, 71, 83, 93, 103, 109, 119, 125, - 123, 125, 55, 115, 123, 83, 79, 4, 80, 58, - 38, 16, 10, 5, 3, 13, 2, 24, 104, 68, - 52, 34, 98, 40, 34, 10, 18, 18, 110, 70, - 40, 22, 56, 24, 10, 8, 14, 2, 84, 38, - 18, 4, 36, 16, 2, 12, 20, 92, 56, 34, - 22, 66, 32, 30, 28, 20, 124, 21, 3, 18, - 5, 7, 2, 20, 22, 8, 22, 36, 52, 23, - 15, 27, 23, 46, 37, 39, 27, 5, 32, 69, - 49, 12, 24, 59, 71, 57, 5, 2, 34, 5, - 6, 0, 14, 32, 29, 7, 5, 12, 51, 17, - 31, 27, 24, 75, 25, 10, 13, 46, 15, 3, - 68, 15, 21, 1, 58, 51, 31, 87, 22, 52, - 52, 24, 11, 24, 16, 2, 6, 0, 5, 11, - 47, 59, 73, 57, 45, 73, 119, 67, 61, 59, - 49, 41, 13, 11, 41, 67, 15, 27, 29, 21, - 43, 83, 49, 55, 93, 65, 81, 79, 113, 105, - 85, 69, 47, 35, 69, 51, 61, 79, 91, 95, - 95, 95, 101, 109, 125, 117, 125, 125, 123, 107, - 125, 125, 5, 28, 12, 26, 36, 36, 124, 58, - 54, 9, 74, 124, 124, 124, 48, 10, 9, 93, - 125, 125, 125, 125, 125, 125, 3, 88, 52, 34, - 18, 30, 4, 7, 9, 0, 2, 14, 40, 22, - 64, 44, 26, 42, 44, 50, 52, 26, 56, 42, - 3, 16, 1, 31, 45, 59, 71, 125, 125, 93, - }, - - { - /* Context Tables for I, SI Slices :: qp = 51 */ - - 30, 6, 39, 30, 6, 39, 52, 66, 60, 26, - 19, 85, 23, 5, 102, 28, 124, 17, 54, 68, - 3, 47, 6, 81, 115, 15, 57, 125, 125, 125, - 124, 46, 13, 54, 68, 3, 5, 46, 44, 19, - 8, 4, 6, 21, 51, 13, 61, 10, 5, 2, - 11, 35, 15, 49, 38, 10, 4, 1, 28, 4, - 44, 0, 0, 0, 18, 69, 67, 28, 37, 15, - 104, 10, 11, 17, 6, 37, 24, 46, 46, 70, - 26, 52, 46, 32, 64, 9, 25, 15, 31, 78, - 4, 54, 2, 6, 7, 10, 64, 13, 27, 9, - 0, 40, 5, 20, 18, 13, 24, 7, 16, 26, - 16, 36, 48, 42, 45, 15, 8, 7, 4, 15, - 20, 21, 5, 38, 19, 30, 34, 8, 103, 18, - 17, 89, 41, 85, 5, 22, 8, 28, 16, 14, - 60, 18, 6, 36, 60, 19, 17, 10, 105, 25, - 22, 63, 2, 29, 48, 4, 59, 72, 2, 3, - 79, 78, 43, 83, 2, 93, 25, 14, 26, 8, - 14, 6, 9, 14, 30, 65, 27, 12, 4, 2, - 39, 25, 33, 45, 27, 43, 65, 31, 33, 125, - 71, 45, 83, 73, 51, 0, 20, 3, 13, 11, - 37, 53, 37, 71, 81, 61, 97, 121, 117, 125, - 51, 51, 81, 75, 87, 99, 109, 113, 125, 125, - 125, 125, 57, 119, 125, 85, 79, 4, 82, 58, - 38, 16, 10, 5, 3, 13, 2, 24, 104, 68, - 52, 34, 100, 42, 34, 12, 18, 20, 112, 70, - 42, 22, 58, 26, 12, 8, 16, 4, 86, 40, - 20, 4, 38, 18, 4, 14, 22, 92, 56, 34, - 22, 68, 32, 32, 30, 22, 124, 19, 1, 20, - 5, 7, 2, 20, 22, 8, 22, 36, 52, 23, - 15, 27, 23, 48, 39, 41, 29, 7, 32, 71, - 51, 12, 24, 59, 73, 57, 3, 4, 36, 3, - 8, 2, 14, 34, 29, 7, 5, 14, 51, 17, - 31, 25, 26, 75, 25, 10, 13, 48, 15, 3, - 70, 15, 21, 1, 60, 53, 31, 89, 20, 50, - 50, 22, 13, 22, 14, 0, 4, 1, 7, 13, - 49, 61, 75, 59, 47, 75, 123, 71, 63, 61, - 49, 43, 13, 11, 41, 67, 13, 31, 33, 25, - 47, 89, 53, 59, 97, 69, 85, 83, 119, 109, - 89, 71, 51, 37, 73, 55, 65, 83, 95, 99, - 99, 99, 105, 113, 125, 121, 125, 125, 125, 111, - 125, 125, 3, 30, 14, 28, 38, 38, 124, 60, - 56, 9, 76, 124, 124, 124, 50, 6, 11, 97, - 125, 125, 125, 125, 125, 125, 3, 88, 52, 34, - 18, 30, 4, 7, 9, 0, 4, 16, 42, 24, - 66, 44, 26, 44, 44, 50, 52, 26, 56, 42, - 3, 14, 3, 35, 49, 63, 75, 125, 125, 95, - }, - - }, - -}; diff --git a/common/ih264_cabac_tables.h b/common/ih264_cabac_tables.h index 0cef51e..dd2fd35 100644 --- a/common/ih264_cabac_tables.h +++ b/common/ih264_cabac_tables.h @@ -43,59 +43,148 @@ /** ****************************************************************************** - * @brief maximum range of cabac_init_idc (0-2) + * @brief maximum range of cabac_init_idc (0-2) + 1 for ISLICE ****************************************************************************** */ -#define IH264_NUM_CABAC_INIT_IDC_PLUS_ONE 4 +#define NUM_CAB_INIT_IDC_PLUS_ONE 4 /** ****************************************************************************** * @brief max range of qps in H264 (0-51) ****************************************************************************** */ -#define IH264_MAX_QP 52 +#define QP_RANGE 52 /** ****************************************************************************** * @brief max range of cabac contexts in H264 (0-459) ****************************************************************************** */ -#define IH264_NUM_CABAC_CTXTS 460 +#define NUM_CABAC_CTXTS 460 -/*****************************************************************************/ -/* Extern global declarations */ -/*****************************************************************************/ + +/** Macros for Cabac checks */ +/** MbType */ +/** |x|x|I_PCM|SKIP| + |S|Inter/Intra|P/B|NON-BD16x16/BD16x16,I16x16/I4x4| */ +#define CAB_INTRA 0x00 /* 0000 00xx */ +#define CAB_INTER 0x04 /* 0000 01xx */ +#define CAB_I4x4 0x00 /* 0000 00x0 */ +#define CAB_I16x16 0x01 /* 0000 00x1 */ +#define CAB_BD16x16 0x04 /* 0000 0100 */ +#define CAB_NON_BD16x16 0x05 /* 0000 0101 */ +#define CAB_P 0x07 /* 0000 0111 */ +#define CAB_SI4x4 0x08 /* 0000 10x0 */ +#define CAB_SI16x16 0x09 /* 0000 10x1 */ +#define CAB_SKIP_MASK 0x10 /* 0001 0000 */ +#define CAB_SKIP 0x10 /* 0001 0000 */ +#define CAB_P_SKIP 0x16 /* 0001 x11x */ +#define CAB_B_SKIP 0x14 /* 0001 x100 */ +#define CAB_BD16x16_MASK 0x07 /* 0000 0111 */ +#define CAB_INTRA_MASK 0x04 /* 0000 0100 */ +#define CAB_I_PCM 0x20 /* 001x xxxx */ /** - ****************************************************************************** - * @breif Table for rangeTabLPS depending on pStateIdx and qCodIRangeIdx - * input : pStateIdx(0-63) and qCodIRangeIdx(0-3) [(Range >> 6) & 0x3] - * output : RLps - * - * @remarks See Table 9-35 of H264 spec for rangeTabLPS - ******************************************************************************* - */ -extern const UWORD8 gau1_ih264_cabac_rlps[64][4]; +****************************************************************************** + * @enum ctxBlockCat + +****************************************************************************** +*/ +typedef enum +{ + LUMA_DC_CTXCAT = 0, + LUMA_AC_CTXCAT = 1, + LUMA_4X4_CTXCAT = 2, + CHROMA_DC_CTXCAT = 3, + CHROMA_AC_CTXCAT = 4, + LUMA_8X8_CTXCAT = 5, + NUM_CTX_CAT = 6 +} CTX_BLOCK_CAT; /** - ****************************************************************************** - * @breif probability+MPS state transition tables based on cur State and bin - * input : curpState[bits7-2] | curMPS[bit1] | decodedBin[bit0] - * output : nextpState[bits6-1] | nextMPS[bit0] - * @remarks Modified form of Table-9-36 State Transition table in H264 spec - ****************************************************************************** - */ -extern const UWORD8 gau1_ih264_next_state[128*2]; +****************************************************************************** + * @enum ctxIdxOffset + +****************************************************************************** +*/ +typedef enum +{ + MB_TYPE_SI_SLICE = 0, + MB_TYPE_I_SLICE = 3, + MB_SKIP_FLAG_P_SLICE = 11, + MB_TYPE_P_SLICE = 14, + SUB_MB_TYPE_P_SLICE = 21, + MB_SKIP_FLAG_B_SLICE = 24, + MB_TYPE_B_SLICE = 27, + SUB_MB_TYPE_B_SLICE = 36, + MVD_X = 40, + MVD_Y = 47, + REF_IDX = 54, + MB_QP_DELTA = 60, + INTRA_CHROMA_PRED_MODE = 64, + PREV_INTRA4X4_PRED_MODE_FLAG = 68, + REM_INTRA4X4_PRED_MODE = 69, + MB_FIELD_DECODING_FLAG = 70, + CBP_LUMA = 73, + CBP_CHROMA = 77, + CBF = 85, + SIGNIFICANT_COEFF_FLAG_FRAME = 105, + SIGNIFICANT_COEFF_FLAG_FLD = 277, + LAST_SIGNIFICANT_COEFF_FLAG_FRAME = 166, + LAST_SIGNIFICANT_COEFF_FLAG_FLD = 338, + COEFF_ABS_LEVEL_MINUS1 = 227, + + /* High profile related Syntax element CABAC offsets */ + TRANSFORM_SIZE_8X8_FLAG = 399, + SIGNIFICANT_COEFF_FLAG_8X8_FRAME = 402, + LAST_SIGNIFICANT_COEFF_FLAG_8X8_FRAME = 417, + COEFF_ABS_LEVEL_MINUS1_8X8 = 426, + SIGNIFICANT_COEFF_FLAG_8X8_FIELD = 436, + LAST_SIGNIFICANT_COEFF_FLAG_8X8_FIELD = 451 + +} cabac_table_num_t; /** - ****************************************************************************** - * @brief Init context tables for all combinations of qp and cabac_init_idc - * @remarks Packing format MPS in lsb and pState in bits[1-6] - ****************************************************************************** - */ -extern const UWORD8 gau1_ih264_cab_ctxts[IH264_NUM_CABAC_INIT_IDC_PLUS_ONE][IH264_MAX_QP][IH264_NUM_CABAC_CTXTS]; +****************************************************************************** + * @enum ctxIdxOffset + +****************************************************************************** +*/ +typedef enum +{ + SIG_COEFF_CTXT_CAT_0_OFFSET = 0, + SIG_COEFF_CTXT_CAT_1_OFFSET = 15, + SIG_COEFF_CTXT_CAT_2_OFFSET = 29, + SIG_COEFF_CTXT_CAT_3_OFFSET = 44, + SIG_COEFF_CTXT_CAT_4_OFFSET = 47, + SIG_COEFF_CTXT_CAT_5_OFFSET = 0, + COEFF_ABS_LEVEL_CAT_0_OFFSET = 0, + COEFF_ABS_LEVEL_CAT_1_OFFSET = 10, + COEFF_ABS_LEVEL_CAT_2_OFFSET = 20, + COEFF_ABS_LEVEL_CAT_3_OFFSET = 30, + COEFF_ABS_LEVEL_CAT_4_OFFSET = 39, + COEFF_ABS_LEVEL_CAT_5_OFFSET = 0 +} cabac_blk_cat_offset_t; + + + + +/*****************************************************************************/ +/* Extern global declarations */ +/*****************************************************************************/ + + +/* CABAC Table declaration*/ +extern const UWORD32 gau4_ih264_cabac_table[128][4]; + + +/*****************************************************************************/ +/* Cabac tables for context initialization depending upon type of Slice, */ +/* cabac init Idc value and Qp. */ +/*****************************************************************************/ +extern const UWORD8 gau1_ih264_cabac_ctxt_init_table[NUM_CAB_INIT_IDC_PLUS_ONE][QP_RANGE][NUM_CABAC_CTXTS]; #endif /* IH264_CABAC_TABLES_H_ */ diff --git a/common/ih264_common_tables.c b/common/ih264_common_tables.c index c53c276..3a04a38 100644 --- a/common/ih264_common_tables.c +++ b/common/ih264_common_tables.c @@ -64,8 +64,8 @@ const level_tables_t gas_ih264_lvl_tbl[16] = { { IH264_LEVEL_10, 1485, 99, 297, 64, 175, 64 }, - { IH264_LEVEL_11, 1485, 99, 297, 128, 350, 64 }, - { IH264_LEVEL_1B, 3000, 396, 675, 192, 500, 128 }, + { IH264_LEVEL_1B, 1485, 99, 297, 128, 350, 64 }, + { IH264_LEVEL_11, 3000, 396, 675, 192, 500, 128 }, { IH264_LEVEL_12, 6000, 396, 1782, 384, 1000, 128 }, { IH264_LEVEL_13, 11880, 396, 1782, 768, 2000, 128 }, { IH264_LEVEL_20, 11880, 396, 1782, 2000, 2000, 128 }, diff --git a/common/ih264_defs.h b/common/ih264_defs.h index 8d7e387..6bf74d1 100644 --- a/common/ih264_defs.h +++ b/common/ih264_defs.h @@ -328,7 +328,7 @@ typedef enum /** ****************************************************************************** * @enum MBPART_PREDMODE_T - * @brief MbPartPredMode Table 7-11 to 7-14 + * @brief MbPartps_pred_mode_ctxt Table 7-11 to 7-14 ****************************************************************************** */ typedef enum diff --git a/common/ithread.c b/common/ithread.c index 25a8cd0..f7335d9 100644 --- a/common/ithread.c +++ b/common/ithread.c @@ -71,7 +71,7 @@ #endif -#ifdef X86_MSVC +#if defined(X86_MSVC) || defined (X86_MINGW) #include <windows.h> #define SEM_MAX_COUNT 100 diff --git a/common/x86/ih264_platform_macros.h b/common/x86/ih264_platform_macros.h index e4b9821..340c5d8 100644 --- a/common/x86/ih264_platform_macros.h +++ b/common/x86/ih264_platform_macros.h @@ -62,13 +62,9 @@ #define SHL_NEG(val,shift) ((shift<0)?(val>>(-shift)):(val<<shift)) -#define ITT_BIG_ENDIAN(x) ((x << 24)) | \ - ((x & 0x0000ff00) << 8) | \ - ((x & 0x00ff0000) >> 8) | \ - ((UWORD32)x >> 24); +#define ITT_BIG_ENDIAN(x) __builtin_bswap32(x); - -#define NOP(nop_cnt) {UWORD32 nop_i; for (nop_i = 0; nop_i < nop_cnt; nop_i++);} +#define NOP(nop_cnt) {UWORD32 nop_i; for (nop_i = 0; nop_i < nop_cnt; nop_i++) asm("nop");} #define PLD(a) @@ -97,7 +93,7 @@ static __inline UWORD32 CTZ(UWORD32 u4_word) //#define INLINE __inline -#define INLINE +#define INLINE inline #define PREFETCH_ENABLE 1 diff --git a/common/x86/ih264_resi_trans_quant_sse42.c b/common/x86/ih264_resi_trans_quant_sse42.c index eca43ed..f4f5cbf 100644 --- a/common/x86/ih264_resi_trans_quant_sse42.c +++ b/common/x86/ih264_resi_trans_quant_sse42.c @@ -897,8 +897,7 @@ void ih264_hadamard_quant_2x2_uv_sse42(WORD16 *pi2_src, WORD16 *pi2_dst, const UWORD16 *pu2_threshold_matrix, UWORD32 u4_qbits, UWORD32 u4_round_factor,UWORD8 *pu1_nnz) { - WORD32 val, nonzero_coeff_0, nonzero_coeff_1=0; - nonzero_coeff_0 = 0; + WORD32 val, nonzero_coeff_0=0, nonzero_coeff_1=0; __m128i cmp, cmp0, cmp1; __m128i sum0, sum1; WORD32 mask, mask0, mask1; diff --git a/decoder.arm64.mk b/decoder.arm64.mk index ddf0ad2..423c34d 100644 --- a/decoder.arm64.mk +++ b/decoder.arm64.mk @@ -33,7 +33,7 @@ libavcd_srcs_asm_arm64 += common/armv8/ih264_iquant_itrans_recon_dc_av8.s libavcd_srcs_asm_arm64 += common/armv8/ih264_ihadamard_scaling_av8.s libavcd_srcs_asm_arm64 += common/armv8/ih264_intra_pred_luma_8x8_av8.s -libavcd_cflags_arm += -DDEFAULT_ARCH=D_ARCH_ARMV8_GENERIC +libavcd_cflags_arm64 += -DDEFAULT_ARCH=D_ARCH_ARMV8_GENERIC else libavcd_cflags_arm64 += -DDISABLE_NEON -DDEFAULT_ARCH=D_ARCH_ARM_NONEON endif diff --git a/decoder.mips64.mk b/decoder.mips64.mk index ffcb882..18dc40e 100644 --- a/decoder.mips64.mk +++ b/decoder.mips64.mk @@ -2,5 +2,5 @@ libavcd_inc_dir_mips64 += $(LOCAL_PATH)/common/mips libavcd_srcs_c_mips64 += decoder/mips/ih264d_function_selector.c -LOCAL_C_INCLUDES_mips64 += $(libavcd_inc_dir_mips) -LOCAL_SRC_FILES_mips64 += $(libavcd_srcs_c_mips) +LOCAL_C_INCLUDES_mips64 += $(libavcd_inc_dir_mips64) +LOCAL_SRC_FILES_mips64 += $(libavcd_srcs_c_mips64) @@ -37,7 +37,6 @@ libavcd_srcs_c += decoder/ih264d_parse_bslice.c libavcd_srcs_c += decoder/ih264d_parse_pslice.c libavcd_srcs_c += decoder/ih264d_parse_islice.c libavcd_srcs_c += decoder/ih264d_cabac_init_tables.c -libavcd_srcs_c += decoder/ih264d_debug.c libavcd_srcs_c += decoder/ih264d_bitstrm.c libavcd_srcs_c += decoder/ih264d_compute_bs.c libavcd_srcs_c += decoder/ih264d_deblocking.c diff --git a/decoder/ih264d.h b/decoder/ih264d.h index f89e576..6dd9893 100644 --- a/decoder/ih264d.h +++ b/decoder/ih264d.h @@ -78,6 +78,7 @@ IV_API_CALL_STATUS_T ih264d_api_function(iv_obj_t *ps_handle, void *pv_api_ip,vo typedef enum { IH264D_VID_HDR_DEC_NUM_FRM_BUF_NOT_SUFFICIENT = IVD_DUMMY_ELEMENT_FOR_CODEC_EXTENSIONS + 1, + IH264D_UNSUPPORTED_LEVEL = IVD_DUMMY_ELEMENT_FOR_CODEC_EXTENSIONS + 2 }IH264D_ERROR_CODES_T; diff --git a/decoder/ih264d_api.c b/decoder/ih264d_api.c index 67ef5bb..18e4c2e 100644 --- a/decoder/ih264d_api.c +++ b/decoder/ih264d_api.c @@ -93,6 +93,7 @@ #include "ih264d_utils.h" #include "ih264d_format_conv.h" #include "ih264d_parse_headers.h" +#include "ih264d_thread_compute_bs.h" #include <assert.h> @@ -121,7 +122,7 @@ #define MAX_NAL_UNIT_SIZE MAX((H264_MAX_FRAME_HEIGHT * H264_MAX_FRAME_HEIGHT),MIN_NALUNIT_SIZE) #define MIN_NALUNIT_SIZE 200000 -#define FMT_CONV_NUM_ROWS 4 + #define MIN_IN_BUFS 1 #define MIN_OUT_BUFS_420 3 @@ -283,8 +284,8 @@ static IV_API_CALL_STATUS_T api_check_struct_sanity(iv_obj_t *ps_handle, WORD32 max_wd = ps_ip->s_ivd_fill_mem_rec_ip_t.u4_max_frm_wd; WORD32 max_ht = ps_ip->s_ivd_fill_mem_rec_ip_t.u4_max_frm_ht; - max_wd = ((max_wd + 15) >> 4) << 4; - max_ht = ((max_ht + 15) >> 4) << 4; + max_wd = ALIGN16(max_wd); + max_ht = ALIGN32(max_ht); ps_op->s_ivd_fill_mem_rec_op_t.u4_error_code = 0; @@ -383,8 +384,8 @@ static IV_API_CALL_STATUS_T api_check_struct_sanity(iv_obj_t *ps_handle, WORD32 max_wd = ps_ip->s_ivd_init_ip_t.u4_frm_max_wd; WORD32 max_ht = ps_ip->s_ivd_init_ip_t.u4_frm_max_ht; - max_wd = ((max_wd + 15) >> 4) << 4; - max_ht = ((max_ht + 15) >> 4) << 4; + max_wd = ALIGN16(max_wd); + max_ht = ALIGN32(max_ht); ps_op->s_ivd_init_op_t.u4_error_code = 0; @@ -1479,7 +1480,7 @@ void ih264d_init_decoder(void * ps_dec_params) ps_dec->ps_cur_pps = NULL; ps_dec->ps_cur_sps = NULL; ps_dec->u1_init_dec_flag = 0; - ps_dec->u1_first_nal_in_pic = 1; + ps_dec->u1_first_slice_in_stream = 1; ps_dec->u1_first_pb_nal_in_pic = 1; ps_dec->u1_last_pic_not_decoded = 0; ps_dec->u4_app_disp_width = 0; @@ -1627,6 +1628,9 @@ void ih264d_init_decoder(void * ps_dec_params) ps_dec->init_done = 1; ps_dec->process_called = 1; + + ps_dec->pv_pic_buf_mgr = NULL; + ps_dec->pv_mv_buf_mgr = NULL; } /************************************************************************** @@ -1759,7 +1763,7 @@ WORD32 ih264d_init_video_decoder(iv_obj_t *dec_hdl, ps_dec->u4_height_at_init = ps_init_ip->s_ivd_init_ip_t.u4_frm_max_ht; ps_dec->u4_width_at_init = ALIGN16(ps_dec->u4_width_at_init); - ps_dec->u4_height_at_init = ALIGN16(ps_dec->u4_height_at_init); + ps_dec->u4_height_at_init = ALIGN32(ps_dec->u4_height_at_init); ps_dec->pv_dec_thread_handle = memtab[MEM_REC_THREAD_HANDLE].pv_base; @@ -1938,8 +1942,8 @@ WORD32 ih264d_fill_num_mem_rec(void *pv_api_ip, void *pv_api_op) luma_height = ps_mem_q_ip->s_ivd_fill_mem_rec_ip_t.u4_max_frm_ht; luma_width = ps_mem_q_ip->s_ivd_fill_mem_rec_ip_t.u4_max_frm_wd; - luma_height = ((luma_height + 15) >> 4) << 4; - luma_width = ((luma_width + 15) >> 4) << 4; + luma_height = ALIGN32(luma_height); + luma_width = ALIGN16(luma_width); luma_width_in_mbs = luma_width >> 4; luma_height_in_mbs = luma_height >> 4; u4_total_num_mbs = (luma_height * luma_width) >> 8; @@ -2081,7 +2085,7 @@ WORD32 ih264d_fill_num_mem_rec(void *pv_api_ip, void *pv_api_op) memTab[MEM_REC_DEBLK_MB_INFO].e_mem_type = IV_EXTERNAL_CACHEABLE_PERSISTENT_MEM; memTab[MEM_REC_DEBLK_MB_INFO].u4_mem_size = (((((u4_total_num_mbs - + MAX_MBS_IN_ROW) * sizeof(deblk_mb_t)) + 127) >> 7) << 7); + + (luma_width >> 4)) * sizeof(deblk_mb_t)) + 127) >> 7) << 7); memTab[MEM_REC_NEIGHBOR_INFO].u4_mem_alignment = (128 * 8) / CHAR_BIT; memTab[MEM_REC_NEIGHBOR_INFO].e_mem_type = @@ -2125,10 +2129,14 @@ WORD32 ih264d_fill_num_mem_rec(void *pv_api_ip, void *pv_api_op) memTab[MEM_REC_COEFF_DATA].e_mem_type = IV_EXTERNAL_CACHEABLE_PERSISTENT_MEM; memTab[MEM_REC_COEFF_DATA].u4_mem_size = MB_LUM_SIZE * sizeof(WORD16); + /*For I16x16 MBs, 16 4x4 AC coeffs and 1 4x4 DC coeff TU blocks will be sent + For all MBs along with 8 4x4 AC coeffs 2 2x2 DC coeff TU blocks will be sent + So use 17 4x4 TU blocks for luma and 9 4x4 TU blocks for chroma */ memTab[MEM_REC_COEFF_DATA].u4_mem_size += u4_num_entries - * (MAX(16 * sizeof(tu_sblk4x4_coeff_data_t),4 * sizeof(tu_blk8x8_coeff_data_t)) - + 8 * sizeof(tu_sblk4x4_coeff_data_t)); - memTab[MEM_REC_COEFF_DATA].u4_mem_size += u4_num_entries * 32; //32 bytes for each mb to store u1_prev_intra4x4_pred_mode and u1_rem_intra4x4_pred_mode data + * (MAX(17 * sizeof(tu_sblk4x4_coeff_data_t),4 * sizeof(tu_blk8x8_coeff_data_t)) + + 9 * sizeof(tu_sblk4x4_coeff_data_t)); + //32 bytes for each mb to store u1_prev_intra4x4_pred_mode and u1_rem_intra4x4_pred_mode data + memTab[MEM_REC_COEFF_DATA].u4_mem_size += u4_num_entries * 32; } @@ -2173,10 +2181,10 @@ WORD32 ih264d_fill_num_mem_rec(void *pv_api_ip, void *pv_api_op) u4_mem_size += sizeof(UWORD32) * (MAX_REF_BUFS * MAX_REF_BUFS); u4_mem_size = ALIGN64(u4_mem_size); - u4_mem_size += MAX_REF_BUF_SIZE; + u4_mem_size += MAX_REF_BUF_SIZE * 2; u4_mem_size = ALIGN64(u4_mem_size); u4_mem_size += ((sizeof(WORD16)) * PRED_BUFFER_WIDTH - * PRED_BUFFER_HEIGHT); + * PRED_BUFFER_HEIGHT * 2); u4_mem_size = ALIGN64(u4_mem_size); u4_mem_size += sizeof(UWORD8) * (MB_LUM_SIZE); u4_mem_size = ALIGN64(u4_mem_size); @@ -2243,18 +2251,17 @@ WORD32 ih264d_fill_num_mem_rec(void *pv_api_ip, void *pv_api_op) u4_mem_used = ALIGN64(u4_mem_used); u4_mem_used += sizeof(UWORD8) * (luma_width + 16) * 2; u4_mem_used = ALIGN64(u4_mem_used); - u4_mem_used += sizeof(UWORD8) * ((luma_width >> 1) + 16) * 2 - * YUV420SP_FACTOR; + u4_mem_used += sizeof(UWORD8) * (luma_width + 16) * 2; u4_mem_used = ALIGN64(u4_mem_used); - u4_mem_used += sizeof(UWORD8) * ((luma_width >> 1) + 16) * 2; + u4_mem_used += sizeof(UWORD8) * (luma_width + 16) * 2; u4_mem_used = ALIGN64(u4_mem_used); u4_mem_used += sizeof(mb_neigbour_params_t) * (luma_width_in_mbs + 1) * luma_height_in_mbs; u4_mem_used += luma_width; u4_mem_used = ALIGN64(u4_mem_used); - u4_mem_used += luma_width >> 1; + u4_mem_used += luma_width; u4_mem_used = ALIGN64(u4_mem_used); - u4_mem_used += luma_width >> 1; + u4_mem_used += luma_width; u4_mem_used = ALIGN64(u4_mem_used); u4_mem_used += ((MB_SIZE + 4) << 1) * PAD_LEN_Y_H; @@ -2272,7 +2279,7 @@ WORD32 ih264d_fill_num_mem_rec(void *pv_api_ip, void *pv_api_op) memTab[MEM_REC_BITSBUF].u4_mem_alignment = (128 * 8) / CHAR_BIT; memTab[MEM_REC_BITSBUF].e_mem_type = IV_EXTERNAL_CACHEABLE_PERSISTENT_MEM; - memTab[MEM_REC_BITSBUF].u4_mem_size = MAX(256000, (luma_width * luma_height)); + memTab[MEM_REC_BITSBUF].u4_mem_size = MAX(256000, (luma_width * luma_height * 3 / 2)); { @@ -2394,8 +2401,10 @@ WORD32 ih264d_clr(iv_obj_t *dec_hdl, void *pv_api_ip, void *pv_api_op) return IV_FAIL; } - ih264_buf_mgr_free((buf_mgr_t *)ps_dec->pv_pic_buf_mgr); - ih264_buf_mgr_free((buf_mgr_t *)ps_dec->pv_mv_buf_mgr); + if(ps_dec->pv_pic_buf_mgr) + ih264_buf_mgr_free((buf_mgr_t *)ps_dec->pv_pic_buf_mgr); + if(ps_dec->pv_mv_buf_mgr) + ih264_buf_mgr_free((buf_mgr_t *)ps_dec->pv_mv_buf_mgr); memcpy(dec_clr_ip->pv_mem_rec_location, ps_dec->ps_mem_tab, MEM_REC_CNT * (sizeof(iv_mem_rec_t))); @@ -2590,7 +2599,7 @@ WORD32 ih264d_video_decode(iv_obj_t *dec_hdl, void *pv_api_ip, void *pv_api_op) UWORD32 cur_slice_is_nonref = 0; UWORD32 u4_next_is_aud; UWORD32 u4_first_start_code_found = 0; - WORD32 ret; + WORD32 ret,api_ret_value = IV_SUCCESS; WORD32 header_data_left = 0,frame_data_left = 0; UWORD8 *pu1_bitstrm_buf; ithread_set_name((void*)"Parse_thread"); @@ -2602,7 +2611,6 @@ WORD32 ih264d_video_decode(iv_obj_t *dec_hdl, void *pv_api_ip, void *pv_api_op) ps_dec_op = (ivd_video_decode_op_t *)pv_api_op; ps_dec->pv_dec_out = ps_dec_op; ps_dec->process_called = 1; - ps_dec->u2_mb_skip_error = 0; if(ps_dec->init_done != 1) { return IV_FAIL; @@ -2637,20 +2645,13 @@ WORD32 ih264d_video_decode(iv_obj_t *dec_hdl, void *pv_api_ip, void *pv_api_op) >= offsetof(ivd_video_decode_ip_t, s_out_buffer)) ps_dec->ps_out_buffer = &ps_dec_ip->s_out_buffer; - if(ps_dec_op->u4_size - >= offsetof(ivd_video_decode_op_t, u4_disp_buf_id) - && ps_dec->ps_out_buffer != NULL) - ps_dec->u4_fmt_conv_in_process = 1; - else - ps_dec->u4_fmt_conv_in_process = 0; - ps_dec->u4_fmt_conv_cur_row = 0; ps_dec->u4_output_present = 0; ps_dec->s_disp_op.u4_error_code = 1; ps_dec->u4_fmt_conv_num_rows = FMT_CONV_NUM_ROWS; ps_dec->u4_stop_threads = 0; - if(ps_dec->u4_fmt_conv_in_process && 0 == ps_dec->u4_share_disp_buf + if(0 == ps_dec->u4_share_disp_buf && ps_dec->i4_decode_header == 0) { UWORD32 i; @@ -2799,8 +2800,7 @@ WORD32 ih264d_video_decode(iv_obj_t *dec_hdl, void *pv_api_ip, void *pv_api_op) } - if(ps_dec->u4_fmt_conv_in_process && ps_dec->u1_flushfrm && - ps_dec->u1_init_dec_flag) + if(ps_dec->u1_flushfrm && ps_dec->u1_init_dec_flag) { ih264d_get_next_display_field(ps_dec, ps_dec->ps_out_buffer, @@ -2854,24 +2854,21 @@ WORD32 ih264d_video_decode(iv_obj_t *dec_hdl, void *pv_api_ip, void *pv_api_op) ps_dec->u4_prev_nal_skipped = 0; - ps_dec->u4_start_frame_decode = 0; ps_dec->u2_cur_mb_addr = 0; + ps_dec->u2_total_mbs_coded = 0; + ps_dec->u2_cur_slice_num = 0; ps_dec->cur_dec_mb_num = 0; + ps_dec->cur_recon_mb_num = 0; ps_dec->u4_first_slice_in_pic = 1; + ps_dec->u1_slice_header_done = 0; ps_dec->u4_dec_thread_created = 0; ps_dec->u4_bs_deblk_thread_created = 0; ps_dec->u4_cur_bs_mb_num = 0; - ps_dec->as_fmt_conv_part[0].u4_flag = 1; - ps_dec->as_fmt_conv_part[1].u4_flag = 1; - ps_dec->as_fmt_conv_part[1].u4_start_y = 0; - ps_dec->as_fmt_conv_part[1].u4_num_rows_y = 0; - DEBUG_THREADS_PRINTF(" Starting process call\n"); ps_dec->u4_pic_buf_got = 0; - ps_dec->u2_skip_deblock = 0; do { @@ -2891,6 +2888,8 @@ WORD32 ih264d_video_decode(iv_obj_t *dec_hdl, void *pv_api_ip, void *pv_api_op) if(buflen == -1) buflen = 0; + /* Ignore bytes beyond the allocated size of intermediate buffer */ + buflen = MIN(buflen, (WORD32)ps_dec->ps_mem_tab[MEM_REC_BITSBUF].u4_mem_size); bytes_consumed = buflen + u4_length_of_start_code; ps_dec_op->u4_num_bytes_consumed += bytes_consumed; @@ -2906,7 +2905,6 @@ WORD32 ih264d_video_decode(iv_obj_t *dec_hdl, void *pv_api_ip, void *pv_api_op) ps_dec_op->e_pic_type = -1; /*signal the decode thread*/ - ps_dec->as_fmt_conv_part[1].u4_flag = 0; ih264d_signal_decode_thread(ps_dec); /*signal end of frame decode for curren frame*/ @@ -2962,7 +2960,6 @@ WORD32 ih264d_video_decode(iv_obj_t *dec_hdl, void *pv_api_ip, void *pv_api_op) ps_dec_op->u4_size = sizeof(ivd_video_decode_op_t); /*signal the decode thread*/ - ps_dec->as_fmt_conv_part[1].u4_flag = 0; ih264d_signal_decode_thread(ps_dec); /* close deblock thread if it is not closed yet*/ if(ps_dec->u4_num_cores == 3) @@ -3017,6 +3014,7 @@ WORD32 ih264d_video_decode(iv_obj_t *dec_hdl, void *pv_api_ip, void *pv_api_op) else { /* a start code has already been found earlier in the same process call*/ + frame_data_left = 0; continue; } @@ -3029,13 +3027,18 @@ WORD32 ih264d_video_decode(iv_obj_t *dec_hdl, void *pv_api_ip, void *pv_api_op) { UWORD32 error = ih264d_map_error(ret); ps_dec_op->u4_error_code = error | ret; + api_ret_value = IV_FAIL; if((ret == IVD_RES_CHANGED)||(ret == IVD_STREAM_WIDTH_HEIGHT_NOT_SUPPORTED)) { /*dont consume the SPS*/ ps_dec_op->u4_num_bytes_consumed -= bytes_consumed; + return IV_FAIL; + } + if(ret == ERROR_IN_LAST_SLICE_OF_PIC) + { + ps_dec_op->u4_num_bytes_consumed -= bytes_consumed; } - return IV_FAIL; } if(ps_dec->u4_return_to_app) @@ -3047,7 +3050,6 @@ WORD32 ih264d_video_decode(iv_obj_t *dec_hdl, void *pv_api_ip, void *pv_api_op) ps_dec_op->u4_frame_decoded_flag = 0; ps_dec_op->u4_size = sizeof(ivd_video_decode_op_t); /*signal the decode thread*/ - ps_dec->as_fmt_conv_part[1].u4_flag = 0; ih264d_signal_decode_thread(ps_dec); /* close deblock thread if it is not closed yet*/ if(ps_dec->u4_num_cores == 3) @@ -3072,73 +3074,56 @@ WORD32 ih264d_video_decode(iv_obj_t *dec_hdl, void *pv_api_ip, void *pv_api_op) } while(( header_data_left == 1)||(frame_data_left == 1)); - if((ps_dec->u2_total_mbs_coded - != (ps_dec->u2_frm_wd_in_mbs * ps_dec->u2_frm_ht_in_mbs)) - && (ps_dec_op->u4_num_bytes_consumed - >= ps_dec_ip->u4_num_Bytes)) + if((ps_dec->u4_slice_start_code_found == 1) + && ps_dec->u2_total_mbs_coded < ps_dec->u2_frm_ht_in_mbs * ps_dec->u2_frm_wd_in_mbs) { - if(ps_dec->ps_parse_cur_slice != NULL) - { - ps_dec->ps_parse_cur_slice->u2_error_flag = 1; + // last slice - missing/corruption + WORD32 num_mb_skipped; + pocstruct_t temp_poc; - ps_dec->u2_skip_deblock = 1; - } + num_mb_skipped = (ps_dec->u2_frm_ht_in_mbs * ps_dec->u2_frm_wd_in_mbs) + - ps_dec->u2_total_mbs_coded; + ih264d_mark_err_slice_skip(ps_dec, num_mb_skipped, ps_dec->u1_nal_unit_type == IDR_SLICE_NAL,&temp_poc,3); } + + if(ps_dec->u1_separate_parse) { - /* If Format conversion is not complete, complete it here */ if(ps_dec->u4_num_cores == 2) { - ps_dec->u4_fmt_conv_num_rows = ps_dec->s_disp_frame_info.u4_y_ht - - ps_dec->u4_fmt_conv_cur_row; - if(ps_dec->u4_output_present && ps_dec->u4_fmt_conv_in_process - && ps_dec->u4_fmt_conv_num_rows) + + /*do deblocking of all mbs*/ + if((ps_dec->u4_nmb_deblk == 0) &&(ps_dec->u4_start_recon_deblk == 1) && (ps_dec->ps_cur_sps->u1_mb_aff_flag == 0)) { - ps_dec->u4_fmt_conv_num_rows = MIN( - ps_dec->u4_fmt_conv_num_rows, - (ps_dec->s_disp_frame_info.u4_y_ht - - ps_dec->u4_fmt_conv_cur_row)); - if(ps_dec->u4_fmt_conv_num_rows > 64) - { - UWORD32 num_rows_first_part = (ps_dec->u4_fmt_conv_num_rows - / 2); - - /* Align it to even number */ - num_rows_first_part = (num_rows_first_part >> 1) << 1; - - /* Schedule last half of the remaining rows to be processed in second thread */ - ps_dec->as_fmt_conv_part[1].u4_start_y = - ps_dec->u4_fmt_conv_cur_row - + num_rows_first_part; - ps_dec->as_fmt_conv_part[1].u4_num_rows_y = - (ps_dec->u4_fmt_conv_num_rows - - num_rows_first_part); - ps_dec->u4_fmt_conv_num_rows = num_rows_first_part; - DATA_SYNC(); - ps_dec->as_fmt_conv_part[1].u4_flag = 2; + UWORD32 u4_num_mbs,u4_max_addr; + tfr_ctxt_t s_tfr_ctxt; + tfr_ctxt_t *ps_tfr_cxt = &s_tfr_ctxt; + pad_mgr_t *ps_pad_mgr = &ps_dec->s_pad_mgr; - } - else - { - ps_dec->as_fmt_conv_part[1].u4_flag = 0; - } + /*BS is done for all mbs while parsing*/ + u4_max_addr = (ps_dec->u2_frm_wd_in_mbs * ps_dec->u2_frm_ht_in_mbs) - 1; + ps_dec->u4_cur_bs_mb_num = u4_max_addr + 1; - ih264d_format_convert(ps_dec, &(ps_dec->s_disp_op), - ps_dec->u4_fmt_conv_cur_row, - ps_dec->u4_fmt_conv_num_rows); - ps_dec->u4_fmt_conv_cur_row += ps_dec->u4_fmt_conv_num_rows; + + ih264d_init_deblk_tfr_ctxt(ps_dec, ps_pad_mgr, ps_tfr_cxt, + ps_dec->u2_frm_wd_in_mbs, 0); + + + u4_num_mbs = u4_max_addr + - ps_dec->u4_cur_deblk_mb_num + 1; + + DEBUG_PERF_PRINTF("mbs left for deblocking= %d \n",u4_num_mbs); + + if(u4_num_mbs != 0) + ih264d_check_mb_map_deblk(ps_dec, u4_num_mbs, + ps_tfr_cxt,1); + + ps_dec->u4_start_recon_deblk = 0; } - else - { - ps_dec->as_fmt_conv_part[1].u4_flag = 0; - } - } - else - { - ps_dec->as_fmt_conv_part[1].u4_flag = 0; + } /*signal the decode thread*/ @@ -3149,9 +3134,10 @@ WORD32 ih264d_video_decode(iv_obj_t *dec_hdl, void *pv_api_ip, void *pv_api_op) ih264d_signal_bs_deblk_thread(ps_dec); } } - /* Decode thread would have completed format conversion for ps_dec->as_fmt_conv_part[1].u4_num_rows_y rows */ - ps_dec->u4_fmt_conv_cur_row += ps_dec->as_fmt_conv_part[1].u4_num_rows_y; + + DATA_SYNC(); + if((ps_dec_op->u4_error_code & 0xff) != ERROR_DYNAMIC_RESOLUTION_NOT_SUPPORTED) @@ -3199,7 +3185,6 @@ WORD32 ih264d_video_decode(iv_obj_t *dec_hdl, void *pv_api_ip, void *pv_api_op) { ih264d_fill_output_struct_from_context(ps_dec, ps_dec_op); - ps_dec_op->u4_error_code = ps_dec->i4_error_code; ps_dec_op->u4_frame_decoded_flag = 0; /* close deblock thread if it is not closed yet*/ if(ps_dec->u4_num_cores == 3) @@ -3269,7 +3254,7 @@ WORD32 ih264d_video_decode(iv_obj_t *dec_hdl, void *pv_api_ip, void *pv_api_op) ih264d_signal_bs_deblk_thread(ps_dec); } - if(ps_dec->u4_fmt_conv_in_process) + { /* In case the decoder is configured to run in low delay mode, * then get display buffer and then format convert. @@ -3293,15 +3278,11 @@ WORD32 ih264d_video_decode(iv_obj_t *dec_hdl, void *pv_api_ip, void *pv_api_op) /* If Format conversion is not complete, complete it here */ - ps_dec->u4_fmt_conv_num_rows = ps_dec->s_disp_frame_info.u4_y_ht - - ps_dec->u4_fmt_conv_cur_row; - DEBUG_PERF_PRINTF("ps_dec->u4_fmt_conv_num_rows = %d\n",ps_dec->u4_fmt_conv_num_rows); - if(ps_dec->u4_output_present && ps_dec->u4_fmt_conv_num_rows) + if(ps_dec->u4_output_present && + (ps_dec->u4_fmt_conv_cur_row < ps_dec->s_disp_frame_info.u4_y_ht)) { - ps_dec->u4_fmt_conv_num_rows = MIN( - ps_dec->u4_fmt_conv_num_rows, - (ps_dec->s_disp_frame_info.u4_y_ht - - ps_dec->u4_fmt_conv_cur_row)); + ps_dec->u4_fmt_conv_num_rows = ps_dec->s_disp_frame_info.u4_y_ht + - ps_dec->u4_fmt_conv_cur_row; ih264d_format_convert(ps_dec, &(ps_dec->s_disp_op), ps_dec->u4_fmt_conv_cur_row, ps_dec->u4_fmt_conv_num_rows); @@ -3314,7 +3295,7 @@ WORD32 ih264d_video_decode(iv_obj_t *dec_hdl, void *pv_api_ip, void *pv_api_op) if(ps_dec->i4_decode_header == 1 && (ps_dec->i4_header_decoded & 1) == 1) { ps_dec_op->u4_progressive_frame_flag = 1; - if((NULL != ps_dec->ps_sps) && (1 == (ps_dec->ps_sps->u1_is_valid))) + if((NULL != ps_dec->ps_cur_sps) && (1 == (ps_dec->ps_cur_sps->u1_is_valid))) { if((0 == ps_dec->ps_sps->u1_frame_mbs_only_flag) && (0 == ps_dec->ps_sps->u1_mb_aff_flag)) @@ -3328,12 +3309,13 @@ WORD32 ih264d_video_decode(iv_obj_t *dec_hdl, void *pv_api_ip, void *pv_api_op) H264_DEC_DEBUG_PRINT("The num bytes consumed: %d\n", ps_dec_op->u4_num_bytes_consumed); - return IV_SUCCESS; + return api_ret_value; } WORD32 ih264d_get_version(iv_obj_t *dec_hdl, void *pv_api_ip, void *pv_api_op) { char version_string[MAXVERSION_STRLEN + 1]; + UWORD32 version_string_len; ivd_ctl_getversioninfo_ip_t *ps_ip; ivd_ctl_getversioninfo_op_t *ps_op; @@ -3352,9 +3334,11 @@ WORD32 ih264d_get_version(iv_obj_t *dec_hdl, void *pv_api_ip, void *pv_api_op) return (IV_FAIL); } - if(ps_ip->u4_version_buffer_size >= (strnlen(version_string, MAXVERSION_STRLEN) + 1)) //(WORD32)sizeof(sizeof(version_string))) + version_string_len = strnlen(version_string, MAXVERSION_STRLEN) + 1; + + if(ps_ip->u4_version_buffer_size >= version_string_len) //(WORD32)sizeof(sizeof(version_string))) { - strncpy(ps_ip->pv_version_buffer, version_string, MAXVERSION_STRLEN); + memcpy(ps_ip->pv_version_buffer, version_string, version_string_len); ps_op->u4_error_code = IV_SUCCESS; } else @@ -3389,73 +3373,11 @@ WORD32 ih264d_get_display_frame(iv_obj_t *dec_hdl, void *pv_api_op) { - ivd_get_display_frame_ip_t *dec_disp_ip; - ivd_get_display_frame_op_t *dec_disp_op; - - WORD32 u4_api_ret; - dec_struct_t * ps_dec = (dec_struct_t *)(dec_hdl->pv_codec_handle); - - dec_disp_ip = (ivd_get_display_frame_ip_t *)pv_api_ip; - dec_disp_op = (ivd_get_display_frame_op_t *)pv_api_op; - - if(ps_dec->u4_fmt_conv_in_process) - { - return IV_FAIL; - } - - { - - if(ps_dec->process_called != 1) - { - //Return Proper Error Code - } - - if(0 == ps_dec->u4_share_disp_buf) - { - UWORD32 i; - if(dec_disp_ip->s_out_buffer.u4_num_bufs == 0) - { - dec_disp_op->u4_error_code |= 1 << IVD_UNSUPPORTEDPARAM; - dec_disp_op->u4_error_code |= IVD_DISP_FRM_ZERO_OP_BUFS; - return IV_FAIL; - } - - for(i = 0; i < dec_disp_ip->s_out_buffer.u4_num_bufs; i++) - { - if(dec_disp_ip->s_out_buffer.pu1_bufs[i] == NULL) - { - dec_disp_op->u4_error_code |= 1 << IVD_UNSUPPORTEDPARAM; - dec_disp_op->u4_error_code |= IVD_DISP_FRM_OP_BUF_NULL; - return IV_FAIL; - } - - if(dec_disp_ip->s_out_buffer.u4_min_out_buf_size[i] == 0) - { - dec_disp_op->u4_error_code |= 1 << IVD_UNSUPPORTEDPARAM; - dec_disp_op->u4_error_code |= IVD_DISP_FRM_ZERO_OP_BUF_SIZE; - return IV_FAIL; - } - } - } - - u4_api_ret = ih264d_get_next_display_field(ps_dec, - &(dec_disp_ip->s_out_buffer), - &(ps_dec->s_disp_op)); - *dec_disp_op = (ps_dec->s_disp_op); - if(0 == dec_disp_op->u4_error_code) - { - ps_dec->u4_fmt_conv_cur_row = 0; - ps_dec->u4_fmt_conv_num_rows = ps_dec->s_disp_frame_info.u4_y_ht; - ih264d_format_convert(ps_dec, &(ps_dec->s_disp_op), - ps_dec->u4_fmt_conv_cur_row, - ps_dec->u4_fmt_conv_num_rows); - ps_dec->u4_fmt_conv_cur_row += ps_dec->u4_fmt_conv_num_rows; - - } - ih264d_release_display_field(ps_dec, dec_disp_op); - return u4_api_ret; - } - + UNUSED(dec_hdl); + UNUSED(pv_api_ip); + UNUSED(pv_api_op); + // This function is no longer needed, output is returned in the process() + return IV_FAIL; } /*****************************************************************************/ @@ -3492,7 +3414,7 @@ WORD32 ih264d_set_display_frame(iv_obj_t *dec_hdl, dec_disp_ip = (ivd_set_display_frame_ip_t *)pv_api_ip; dec_disp_op = (ivd_set_display_frame_op_t *)pv_api_op; dec_disp_op->u4_error_code = 0; - if((NULL != ps_dec->ps_sps) && (1 == (ps_dec->ps_sps->u1_is_valid))) + if((NULL != ps_dec->ps_cur_sps) && (1 == (ps_dec->ps_cur_sps->u1_is_valid))) { UWORD32 level, width_mbs, height_mbs; @@ -3500,10 +3422,10 @@ WORD32 ih264d_set_display_frame(iv_obj_t *dec_hdl, width_mbs = ps_dec->u2_frm_wd_in_mbs; height_mbs = ps_dec->u2_frm_ht_in_mbs; - if((ps_dec->ps_sps->u1_vui_parameters_present_flag == 1) - && (ps_dec->ps_sps->s_vui.u4_num_reorder_frames != 64)) + if((ps_dec->ps_cur_sps->u1_vui_parameters_present_flag == 1) + && (ps_dec->ps_cur_sps->s_vui.u4_num_reorder_frames != 64)) { - num_mvbank_req = ps_dec->ps_sps->s_vui.u4_num_reorder_frames + 2; + num_mvbank_req = ps_dec->ps_cur_sps->s_vui.u4_num_reorder_frames + 2; } else { @@ -3513,7 +3435,7 @@ WORD32 ih264d_set_display_frame(iv_obj_t *dec_hdl, height_mbs); } - num_mvbank_req += ps_dec->ps_sps->u1_num_ref_frames + 1; + num_mvbank_req += ps_dec->ps_cur_sps->u1_num_ref_frames + 1; } else { @@ -3613,9 +3535,13 @@ WORD32 ih264d_set_flush_mode(iv_obj_t *dec_hdl, void *pv_api_ip, void *pv_api_op /* Signal flush frame control call */ ps_dec->u1_flushfrm = 1; + if( ps_dec->u1_init_dec_flag == 1) + { + ih264d_release_pics_in_dpb((void *)ps_dec, ps_dec->u1_pic_bufs); ih264d_release_display_bufs(ps_dec); + } ps_ctl_op->u4_error_code = ((ivd_ctl_flush_op_t*)ps_dec->pv_dec_out)->u4_error_code; //verify the value @@ -3661,7 +3587,7 @@ WORD32 ih264d_get_status(iv_obj_t *dec_hdl, void *pv_api_ip, void *pv_api_op) pic_wd = ps_dec->u4_width_at_init; pic_ht = ps_dec->u4_height_at_init; - if((NULL != ps_dec->ps_sps) && (1 == (ps_dec->ps_sps->u1_is_valid))) + if((NULL != ps_dec->ps_cur_sps) && (1 == (ps_dec->ps_cur_sps->u1_is_valid))) { ps_ctl_op->u4_pic_ht = ps_dec->u2_disp_height; ps_ctl_op->u4_pic_wd = ps_dec->u2_disp_width; @@ -3698,7 +3624,7 @@ WORD32 ih264d_get_status(iv_obj_t *dec_hdl, void *pv_api_ip, void *pv_api_op) ps_ctl_op->u4_num_disp_bufs = 1; else { - if((NULL != ps_dec->ps_sps) && (1 == (ps_dec->ps_sps->u1_is_valid))) + if((NULL != ps_dec->ps_cur_sps) && (1 == (ps_dec->ps_cur_sps->u1_is_valid))) { UWORD32 level, width_mbs, height_mbs; @@ -3706,12 +3632,12 @@ WORD32 ih264d_get_status(iv_obj_t *dec_hdl, void *pv_api_ip, void *pv_api_op) width_mbs = ps_dec->u2_frm_wd_in_mbs; height_mbs = ps_dec->u2_frm_ht_in_mbs; - if((ps_dec->ps_sps->u1_vui_parameters_present_flag == 1) - && (ps_dec->ps_sps->s_vui.u4_num_reorder_frames + if((ps_dec->ps_cur_sps->u1_vui_parameters_present_flag == 1) + && (ps_dec->ps_cur_sps->s_vui.u4_num_reorder_frames != 64)) { ps_ctl_op->u4_num_disp_bufs = - ps_dec->ps_sps->s_vui.u4_num_reorder_frames + 2; + ps_dec->ps_cur_sps->s_vui.u4_num_reorder_frames + 2; } else { @@ -3722,7 +3648,7 @@ WORD32 ih264d_get_status(iv_obj_t *dec_hdl, void *pv_api_ip, void *pv_api_op) } ps_ctl_op->u4_num_disp_bufs += - ps_dec->ps_sps->u1_num_ref_frames + 1; + ps_dec->ps_cur_sps->u1_num_ref_frames + 1; } else { @@ -3882,7 +3808,7 @@ WORD32 ih264d_get_buf_info(iv_obj_t *dec_hdl, void *pv_api_ip, void *pv_api_op) pic_wd = ps_dec->u4_width_at_init; pic_ht = ps_dec->u4_height_at_init; - if((NULL != ps_dec->ps_sps) && (1 == (ps_dec->ps_sps->u1_is_valid))) + if((NULL != ps_dec->ps_cur_sps) && (1 == (ps_dec->ps_cur_sps->u1_is_valid))) { if(0 == ps_dec->u4_share_disp_buf) @@ -3896,6 +3822,7 @@ WORD32 ih264d_get_buf_info(iv_obj_t *dec_hdl, void *pv_api_ip, void *pv_api_op) pic_wd = ps_dec->u2_frm_wd_y; pic_ht = ps_dec->u2_frm_ht_y; } + } else { @@ -3914,7 +3841,7 @@ WORD32 ih264d_get_buf_info(iv_obj_t *dec_hdl, void *pv_api_ip, void *pv_api_op) ps_ctl_op->u4_num_disp_bufs = 1; else { - if((NULL != ps_dec->ps_sps) && (1 == (ps_dec->ps_sps->u1_is_valid))) + if((NULL != ps_dec->ps_cur_sps) && (1 == (ps_dec->ps_cur_sps->u1_is_valid))) { UWORD32 level, width_mbs, height_mbs; @@ -3922,12 +3849,12 @@ WORD32 ih264d_get_buf_info(iv_obj_t *dec_hdl, void *pv_api_ip, void *pv_api_op) width_mbs = ps_dec->u2_frm_wd_in_mbs; height_mbs = ps_dec->u2_frm_ht_in_mbs; - if((ps_dec->ps_sps->u1_vui_parameters_present_flag == 1) - && (ps_dec->ps_sps->s_vui.u4_num_reorder_frames + if((ps_dec->ps_cur_sps->u1_vui_parameters_present_flag == 1) + && (ps_dec->ps_cur_sps->s_vui.u4_num_reorder_frames != 64)) { ps_ctl_op->u4_num_disp_bufs = - ps_dec->ps_sps->s_vui.u4_num_reorder_frames + 2; + ps_dec->ps_cur_sps->s_vui.u4_num_reorder_frames + 2; } else { @@ -3938,7 +3865,7 @@ WORD32 ih264d_get_buf_info(iv_obj_t *dec_hdl, void *pv_api_ip, void *pv_api_op) } ps_ctl_op->u4_num_disp_bufs += - ps_dec->ps_sps->u1_num_ref_frames + 1; + ps_dec->ps_cur_sps->u1_num_ref_frames + 1; } else @@ -4426,7 +4353,7 @@ WORD32 ih264d_get_frame_dimensions(iv_obj_t *dec_hdl, ps_op = (ih264d_ctl_get_frame_dimensions_op_t *)pv_api_op; UNUSED(ps_ip); - if((NULL != ps_dec->ps_sps) && (1 == (ps_dec->ps_sps->u1_is_valid))) + if((NULL != ps_dec->ps_cur_sps) && (1 == (ps_dec->ps_cur_sps->u1_is_valid))) { disp_wd = ps_dec->u2_disp_width; disp_ht = ps_dec->u2_disp_height; @@ -4444,7 +4371,6 @@ WORD32 ih264d_get_frame_dimensions(iv_obj_t *dec_hdl, } else { - disp_wd = ps_dec->u4_width_at_init; disp_ht = ps_dec->u4_height_at_init; @@ -4457,7 +4383,6 @@ WORD32 ih264d_get_frame_dimensions(iv_obj_t *dec_hdl, { buffer_wd = ALIGN16(disp_wd) + (PAD_LEN_Y_H << 1); buffer_ht = ALIGN16(disp_ht) + (PAD_LEN_Y_V << 2); - } } if(ps_dec->u4_app_disp_width > buffer_wd) diff --git a/decoder/ih264d_cabac_init_tables.c b/decoder/ih264d_cabac_init_tables.c index 2c3a55e..cd35a2d 100644 --- a/decoder/ih264d_cabac_init_tables.c +++ b/decoder/ih264d_cabac_init_tables.c @@ -46,6 +46,7 @@ #include "ih264_macros.h" #include "ih264_platform_macros.h" #include "ih264d_cabac.h" +#include "ih264d_tables.h" /*combined table :guc_RTAB,NextStateLPS,NextStateMPS input(combined_state): diff --git a/decoder/ih264d_deblocking.c b/decoder/ih264d_deblocking.c index ad4ce08..c5f3657 100644 --- a/decoder/ih264d_deblocking.c +++ b/decoder/ih264d_deblocking.c @@ -39,7 +39,6 @@ #include "ih264d_format_conv.h" #include "ih264d_deblocking.h" #include "ih264d_tables.h" -//extern UWORD8 *g_dest_y, *g_dest_uv; /*! ************************************************************************* @@ -80,8 +79,8 @@ void ih264d_filter_boundary_left_nonmbaff(dec_struct_t *ps_dec, WORD8 i1_cb_qp_idx_ofst, WORD8 i1_cr_qp_idx_ofst, deblk_mb_t * ps_cur_mb, - UWORD16 i4_strd_y, - UWORD16 i4_strd_uv, + WORD32 i4_strd_y, + WORD32 i4_strd_uv, deblk_mb_t * ps_left_mb, UWORD32 pu4_bs_tab[], UWORD8 u1_cur_fld) @@ -121,11 +120,11 @@ void ih264d_filter_boundary_left_nonmbaff(dec_struct_t *ps_dec, /* Chroma cb values */ { - UWORD8 u1_mb_qp1, u1_mb_qp2; - u1_mb_qp1 = (ps_cur_mb->u1_left_mb_qp + i1_cb_qp_idx_ofst); - u1_mb_qp2 = (ps_cur_mb->u1_mb_qp + i1_cb_qp_idx_ofst); - qp_avg = (UWORD8)((gau1_ih264d_qp_scale_cr[12 + u1_mb_qp1] - + gau1_ih264d_qp_scale_cr[12 + u1_mb_qp2] + 1) >> 1); + WORD32 mb_qp1, mb_qp2; + mb_qp1 = (ps_cur_mb->u1_left_mb_qp + i1_cb_qp_idx_ofst); + mb_qp2 = (ps_cur_mb->u1_mb_qp + i1_cb_qp_idx_ofst); + qp_avg = (UWORD8)((gau1_ih264d_qp_scale_cr[12 + mb_qp1] + + gau1_ih264d_qp_scale_cr[12 + mb_qp2] + 1) >> 1); } idx_a_u = qp_avg + ofst_a; alpha_u = gau1_ih264d_alpha_table[12 + idx_a_u]; @@ -133,11 +132,11 @@ void ih264d_filter_boundary_left_nonmbaff(dec_struct_t *ps_dec, beta_u = gau1_ih264d_beta_table[12 + idx_b_u]; /* Chroma cr values */ { - UWORD8 u1_mb_qp1, u1_mb_qp2; - u1_mb_qp1 = (ps_cur_mb->u1_left_mb_qp + i1_cr_qp_idx_ofst); - u1_mb_qp2 = (ps_cur_mb->u1_mb_qp + i1_cr_qp_idx_ofst); - qp_avg = (UWORD8)((gau1_ih264d_qp_scale_cr[12 + u1_mb_qp1] - + gau1_ih264d_qp_scale_cr[12 + u1_mb_qp2] + 1) >> 1); + WORD32 mb_qp1, mb_qp2; + mb_qp1 = (ps_cur_mb->u1_left_mb_qp + i1_cr_qp_idx_ofst); + mb_qp2 = (ps_cur_mb->u1_mb_qp + i1_cr_qp_idx_ofst); + qp_avg = (UWORD8)((gau1_ih264d_qp_scale_cr[12 + mb_qp1] + + gau1_ih264d_qp_scale_cr[12 + mb_qp2] + 1) >> 1); } idx_a_v = qp_avg + ofst_a; alpha_v = gau1_ih264d_alpha_table[12 + idx_a_v]; @@ -159,12 +158,9 @@ void ih264d_filter_boundary_left_nonmbaff(dec_struct_t *ps_dec, if(u4_bs_val) { - pu1_cliptab_y = (UWORD8 *)&gau1_ih264d_clip_table[12 - + idx_a_y]; - pu1_cliptab_u = (UWORD8 *)&gau1_ih264d_clip_table[12 - + idx_a_u]; - pu1_cliptab_v = (UWORD8 *)&gau1_ih264d_clip_table[12 - + idx_a_v]; + pu1_cliptab_y = (UWORD8 *)&gau1_ih264d_clip_table[12 + idx_a_y]; + pu1_cliptab_u = (UWORD8 *)&gau1_ih264d_clip_table[12 + idx_a_u]; + pu1_cliptab_v = (UWORD8 *)&gau1_ih264d_clip_table[12 + idx_a_v]; ps_dec->pf_deblk_luma_vert_bslt4(pu1_y, i4_strd_y, alpha_y, beta_y, u4_bs_val, pu1_cliptab_y); @@ -198,12 +194,9 @@ void ih264d_filter_boundary_left_nonmbaff(dec_struct_t *ps_dec, if(u4_bs_val) { - pu1_cliptab_y = (UWORD8 *)&gau1_ih264d_clip_table[12 - + idx_a_y]; - pu1_cliptab_u = (UWORD8 *)&gau1_ih264d_clip_table[12 - + idx_a_u]; - pu1_cliptab_v = (UWORD8 *)&gau1_ih264d_clip_table[12 - + idx_a_v]; + pu1_cliptab_y = (UWORD8 *)&gau1_ih264d_clip_table[12 + idx_a_y]; + pu1_cliptab_u = (UWORD8 *)&gau1_ih264d_clip_table[12 + idx_a_u]; + pu1_cliptab_v = (UWORD8 *)&gau1_ih264d_clip_table[12 + idx_a_v]; ps_dec->pf_deblk_luma_vert_bslt4_mbaff(pu1_y, i4_strd_y, alpha_y, beta_y, @@ -236,11 +229,11 @@ void ih264d_filter_boundary_left_nonmbaff(dec_struct_t *ps_dec, u4_bs_val = pu4_bs_tab[9]; { - UWORD8 u1_mb_qp1, u1_mb_qp2; - u1_mb_qp1 = ((ps_left_mb + 1)->u1_mb_qp + i1_cb_qp_idx_ofst); - u1_mb_qp2 = (ps_cur_mb->u1_mb_qp + i1_cb_qp_idx_ofst); - qp_avg = (UWORD8)((gau1_ih264d_qp_scale_cr[12 + u1_mb_qp1] - + gau1_ih264d_qp_scale_cr[12 + u1_mb_qp2] + 1) >> 1); + WORD32 mb_qp1, mb_qp2; + mb_qp1 = ((ps_left_mb + 1)->u1_mb_qp + i1_cb_qp_idx_ofst); + mb_qp2 = (ps_cur_mb->u1_mb_qp + i1_cb_qp_idx_ofst); + qp_avg = (UWORD8)((gau1_ih264d_qp_scale_cr[12 + mb_qp1] + + gau1_ih264d_qp_scale_cr[12 + mb_qp2] + 1) >> 1); } idx_a_u = qp_avg + ofst_a; alpha_u = gau1_ih264d_alpha_table[12 + idx_a_u]; @@ -248,11 +241,11 @@ void ih264d_filter_boundary_left_nonmbaff(dec_struct_t *ps_dec, beta_u = gau1_ih264d_beta_table[12 + idx_b_u]; u4_bs_val = pu4_bs_tab[9]; { - UWORD8 u1_mb_qp1, u1_mb_qp2; - u1_mb_qp1 = ((ps_left_mb + 1)->u1_mb_qp + i1_cr_qp_idx_ofst); - u1_mb_qp2 = (ps_cur_mb->u1_mb_qp + i1_cr_qp_idx_ofst); - qp_avg = (UWORD8)((gau1_ih264d_qp_scale_cr[12 + u1_mb_qp1] - + gau1_ih264d_qp_scale_cr[12 + u1_mb_qp2] + 1) >> 1); + WORD32 mb_qp1, mb_qp2; + mb_qp1 = ((ps_left_mb + 1)->u1_mb_qp + i1_cr_qp_idx_ofst); + mb_qp2 = (ps_cur_mb->u1_mb_qp + i1_cr_qp_idx_ofst); + qp_avg = (UWORD8)((gau1_ih264d_qp_scale_cr[12 + mb_qp1] + + gau1_ih264d_qp_scale_cr[12 + mb_qp2] + 1) >> 1); } idx_a_v = qp_avg + ofst_a; alpha_v = gau1_ih264d_alpha_table[12 + idx_a_v]; @@ -272,12 +265,9 @@ void ih264d_filter_boundary_left_nonmbaff(dec_struct_t *ps_dec, if(u4_bs_val) { - pu1_cliptab_y = (UWORD8 *)&gau1_ih264d_clip_table[12 - + idx_a_y]; - pu1_cliptab_u = (UWORD8 *)&gau1_ih264d_clip_table[12 - + idx_a_u]; - pu1_cliptab_v = (UWORD8 *)&gau1_ih264d_clip_table[12 - + idx_a_v]; + pu1_cliptab_y = (UWORD8 *)&gau1_ih264d_clip_table[12 + idx_a_y]; + pu1_cliptab_u = (UWORD8 *)&gau1_ih264d_clip_table[12 + idx_a_u]; + pu1_cliptab_v = (UWORD8 *)&gau1_ih264d_clip_table[12 + idx_a_v]; ps_dec->pf_deblk_luma_vert_bslt4_mbaff(pu1_y, i4_strd_y, alpha_y, beta_y, @@ -313,8 +303,8 @@ void ih264d_filter_boundary_top_nonmbaff(dec_struct_t *ps_dec, WORD8 i1_cb_qp_idx_ofst, WORD8 i1_cr_qp_idx_ofst, deblk_mb_t * ps_cur_mb, - UWORD16 i4_strd_y, - UWORD16 i4_strd_uv, + WORD32 i4_strd_y, + WORD32 i4_strd_uv, deblk_mb_t * ps_top_mb, UWORD32 u4_bs) { @@ -322,7 +312,6 @@ void ih264d_filter_boundary_top_nonmbaff(dec_struct_t *ps_dec, WORD32 alpha_u = 0, beta_u = 0, alpha_v = 0, beta_v = 0; WORD32 alpha_y = 0, beta_y = 0; WORD32 qp_avg; - WORD32 uc_QPav_Y; WORD32 idx_b_u, idx_a_u, idx_b_v, idx_a_v; WORD32 idx_b_y, idx_a_y; UWORD16 uc_tmp; @@ -335,20 +324,20 @@ void ih264d_filter_boundary_top_nonmbaff(dec_struct_t *ps_dec, /* LUMA values */ /* Deblock rounding change */ uc_tmp = ((ps_cur_mb->u1_topmb_qp + ps_cur_mb->u1_mb_qp + 1) >> 1); - uc_QPav_Y = (UWORD8)uc_tmp; - idx_a_y = uc_QPav_Y + ofst_a; + qp_avg = (UWORD8)uc_tmp; + idx_a_y = qp_avg + ofst_a; alpha_y = gau1_ih264d_alpha_table[12 + idx_a_y]; - idx_b_y = uc_QPav_Y + ofst_b; + idx_b_y = qp_avg + ofst_b; beta_y = gau1_ih264d_beta_table[12 + idx_b_y]; pu1_y = ps_tfr_cxt->pu1_mb_y; /* CHROMA cb values */ { - UWORD8 u1_mb_qp1, u1_mb_qp2; - u1_mb_qp1 = (ps_cur_mb->u1_topmb_qp + i1_cb_qp_idx_ofst); - u1_mb_qp2 = (ps_cur_mb->u1_mb_qp + i1_cb_qp_idx_ofst); - qp_avg = (UWORD8)((gau1_ih264d_qp_scale_cr[12 + u1_mb_qp1] - + gau1_ih264d_qp_scale_cr[12 + u1_mb_qp2] + 1) >> 1); + WORD32 mb_qp1, mb_qp2; + mb_qp1 = (ps_cur_mb->u1_topmb_qp + i1_cb_qp_idx_ofst); + mb_qp2 = (ps_cur_mb->u1_mb_qp + i1_cb_qp_idx_ofst); + qp_avg = (UWORD8)((gau1_ih264d_qp_scale_cr[12 + mb_qp1] + + gau1_ih264d_qp_scale_cr[12 + mb_qp2] + 1) >> 1); } idx_a_u = qp_avg + ofst_a; @@ -357,11 +346,11 @@ void ih264d_filter_boundary_top_nonmbaff(dec_struct_t *ps_dec, beta_u = gau1_ih264d_beta_table[12 + idx_b_u]; /* CHROMA cr values */ { - UWORD8 u1_mb_qp1, u1_mb_qp2; - u1_mb_qp1 = (ps_cur_mb->u1_topmb_qp + i1_cr_qp_idx_ofst); - u1_mb_qp2 = (ps_cur_mb->u1_mb_qp + i1_cr_qp_idx_ofst); - qp_avg = (UWORD8)((gau1_ih264d_qp_scale_cr[12 + u1_mb_qp1] - + gau1_ih264d_qp_scale_cr[12 + u1_mb_qp2] + 1) >> 1); + WORD32 mb_qp1, mb_qp2; + mb_qp1 = (ps_cur_mb->u1_topmb_qp + i1_cr_qp_idx_ofst); + mb_qp2 = (ps_cur_mb->u1_mb_qp + i1_cr_qp_idx_ofst); + qp_avg = (UWORD8)((gau1_ih264d_qp_scale_cr[12 + mb_qp1] + + gau1_ih264d_qp_scale_cr[12 + mb_qp2] + 1) >> 1); } idx_a_v = qp_avg + ofst_a; @@ -405,11 +394,8 @@ void ih264d_deblock_mb_nonmbaff(dec_struct_t *ps_dec, tfr_ctxt_t * ps_tfr_cxt, WORD8 i1_cb_qp_idx_ofst, WORD8 i1_cr_qp_idx_ofst, - deblk_mb_t * ps_cur_mb, WORD32 i4_strd_y, - WORD32 i4_strd_uv, - deblk_mb_t * ps_top_mb, - deblk_mb_t * ps_left_mb) + WORD32 i4_strd_uv ) { UWORD8 *pu1_y, *pu1_u; UWORD32 u4_bs; @@ -420,157 +406,211 @@ void ih264d_deblock_mb_nonmbaff(dec_struct_t *ps_dec, UWORD8 *pu1_cliptab_v; UWORD8 *pu1_cliptab_y; - UWORD32 * pu4_bs_tab = ps_cur_mb->u4_bs_table; + UWORD32 * pu4_bs_tab; WORD32 idx_a_y, idx_a_u, idx_a_v; + UWORD32 u4_deb_mode, u4_mbs_next; + UWORD32 u4_image_wd_mb; + deblk_mb_t *ps_top_mb,*ps_left_mb,*ps_cur_mb; PROFILE_DISABLE_DEBLK() /* Return from here to switch off deblocking */ - /*---------------------------------------------------------------------*/ - /* Filter wrt Left edge */ - /* except */ - /* - Left Egde is Picture Boundary */ - /* - Left Egde is part of Slice Boundary and Deblocking */ - /* parameters of slice disable Filtering of Slice Boundary Edges*/ - /*---------------------------------------------------------------------*/ - if(ps_left_mb) - ih264d_filter_boundary_left_nonmbaff(ps_dec, ps_tfr_cxt, - i1_cb_qp_idx_ofst, - i1_cr_qp_idx_ofst, ps_cur_mb, - i4_strd_y, i4_strd_uv, ps_left_mb, - pu4_bs_tab, 0); - - /*--------------------------------------------------------------------*/ - /* Filter wrt Other Vertical Edges */ - /*--------------------------------------------------------------------*/ - { - WORD32 ofst_a, ofst_b, idx_b_y, idx_b_u, - idx_b_v; - WORD32 qp_avg, qp_avg_u, qp_avg_v; - ofst_a = ps_cur_mb->i1_slice_alpha_c0_offset; - ofst_b = ps_cur_mb->i1_slice_beta_offset; - - qp_avg = ps_cur_mb->u1_mb_qp; - - idx_a_y = qp_avg + ofst_a; - alpha = gau1_ih264d_alpha_table[12 + idx_a_y]; - idx_b_y = qp_avg + ofst_b; - beta = gau1_ih264d_beta_table[12 + idx_b_y]; - - /* CHROMA values */ - /* CHROMA Cb values */ - qp_avg_u = (qp_avg + i1_cb_qp_idx_ofst); - qp_avg_u = gau1_ih264d_qp_scale_cr[12 + qp_avg_u]; - idx_a_u = qp_avg_u + ofst_a; - alpha_u = gau1_ih264d_alpha_table[12 + idx_a_u]; - idx_b_u = qp_avg_u + ofst_b; - beta_u = gau1_ih264d_beta_table[12 + idx_b_u]; - /* CHROMA Cr values */ - qp_avg_v = (qp_avg + i1_cr_qp_idx_ofst); - qp_avg_v = gau1_ih264d_qp_scale_cr[12 + qp_avg_v]; - idx_a_v = qp_avg_v + ofst_a; - alpha_v = gau1_ih264d_alpha_table[12 + idx_a_v]; - idx_b_v = qp_avg_v + ofst_b; - beta_v = gau1_ih264d_beta_table[12 + idx_b_v]; - } + u4_image_wd_mb = ps_dec->u2_frm_wd_in_mbs; + + ps_cur_mb = ps_dec->ps_cur_deblk_mb; + pu4_bs_tab = ps_cur_mb->u4_bs_table; + u4_deb_mode = ps_cur_mb->u1_deblocking_mode; + if(!(u4_deb_mode & MB_DISABLE_FILTERING)) + { + + if(ps_dec->u4_deblk_mb_x) + { + ps_left_mb = ps_cur_mb - 1; + + } + else + { + ps_left_mb = NULL; + + } + if(ps_dec->u4_deblk_mb_y != 0) + { + ps_top_mb = ps_cur_mb - (u4_image_wd_mb); + } + else + { + ps_top_mb = NULL; + } + + if(u4_deb_mode & MB_DISABLE_LEFT_EDGE) + ps_left_mb = NULL; + if(u4_deb_mode & MB_DISABLE_TOP_EDGE) + ps_top_mb = NULL; + + /*---------------------------------------------------------------------*/ + /* Filter wrt Left edge */ + /* except */ + /* - Left Egde is Picture Boundary */ + /* - Left Egde is part of Slice Boundary and Deblocking */ + /* parameters of slice disable Filtering of Slice Boundary Edges*/ + /*---------------------------------------------------------------------*/ + if(ps_left_mb) + ih264d_filter_boundary_left_nonmbaff(ps_dec, ps_tfr_cxt, + i1_cb_qp_idx_ofst, + i1_cr_qp_idx_ofst, ps_cur_mb, + i4_strd_y, i4_strd_uv, ps_left_mb, + pu4_bs_tab, 0); + + /*--------------------------------------------------------------------*/ + /* Filter wrt Other Vertical Edges */ + /*--------------------------------------------------------------------*/ + { + WORD32 ofst_a, ofst_b, idx_b_y, idx_b_u, + idx_b_v; + WORD32 qp_avg, qp_avg_u, qp_avg_v; + ofst_a = ps_cur_mb->i1_slice_alpha_c0_offset; + ofst_b = ps_cur_mb->i1_slice_beta_offset; + + qp_avg = ps_cur_mb->u1_mb_qp; + + idx_a_y = qp_avg + ofst_a; + alpha = gau1_ih264d_alpha_table[12 + idx_a_y]; + idx_b_y = qp_avg + ofst_b; + beta = gau1_ih264d_beta_table[12 + idx_b_y]; + + /* CHROMA values */ + /* CHROMA Cb values */ + qp_avg_u = (qp_avg + i1_cb_qp_idx_ofst); + qp_avg_u = gau1_ih264d_qp_scale_cr[12 + qp_avg_u]; + idx_a_u = qp_avg_u + ofst_a; + alpha_u = gau1_ih264d_alpha_table[12 + idx_a_u]; + idx_b_u = qp_avg_u + ofst_b; + beta_u = gau1_ih264d_beta_table[12 + idx_b_u]; + /* CHROMA Cr values */ + qp_avg_v = (qp_avg + i1_cr_qp_idx_ofst); + qp_avg_v = gau1_ih264d_qp_scale_cr[12 + qp_avg_v]; + idx_a_v = qp_avg_v + ofst_a; + alpha_v = gau1_ih264d_alpha_table[12 + idx_a_v]; + idx_b_v = qp_avg_v + ofst_b; + beta_v = gau1_ih264d_beta_table[12 + idx_b_v]; + } - pu1_cliptab_y = (UWORD8 *)&gau1_ih264d_clip_table[12 + idx_a_y]; //this for Luma - pu1_cliptab_u = (UWORD8 *)&gau1_ih264d_clip_table[12 + idx_a_u]; //this for chroma - pu1_cliptab_v = (UWORD8 *)&gau1_ih264d_clip_table[12 + idx_a_v]; //this for chroma + pu1_cliptab_y = (UWORD8 *)&gau1_ih264d_clip_table[12 + idx_a_y]; //this for Luma + pu1_cliptab_u = (UWORD8 *)&gau1_ih264d_clip_table[12 + idx_a_u]; //this for chroma + pu1_cliptab_v = (UWORD8 *)&gau1_ih264d_clip_table[12 + idx_a_v]; //this for chroma - //edge=1 + //edge=1 - u4_bs = pu4_bs_tab[5]; - pu1_y = ps_tfr_cxt->pu1_mb_y; - pu1_u = ps_tfr_cxt->pu1_mb_u; + u4_bs = pu4_bs_tab[5]; + pu1_y = ps_tfr_cxt->pu1_mb_y; + pu1_u = ps_tfr_cxt->pu1_mb_u; - if(u4_bs) - { + if(u4_bs) + { - ps_dec->pf_deblk_luma_vert_bslt4(pu1_y + 4, i4_strd_y, alpha, beta, - u4_bs, pu1_cliptab_y); + ps_dec->pf_deblk_luma_vert_bslt4(pu1_y + 4, i4_strd_y, alpha, beta, + u4_bs, pu1_cliptab_y); - } - //edge=2 + } + //edge=2 - u4_bs = pu4_bs_tab[6]; - if(u4_bs) - { - ps_dec->pf_deblk_luma_vert_bslt4(pu1_y + 8, i4_strd_y, alpha, beta, - u4_bs, pu1_cliptab_y); - ps_dec->pf_deblk_chroma_vert_bslt4(pu1_u + 4 * YUV420SP_FACTOR, - i4_strd_uv, alpha_u, beta_u, - alpha_v, beta_v, u4_bs, - pu1_cliptab_u, pu1_cliptab_v); + u4_bs = pu4_bs_tab[6]; + if(u4_bs) + { + ps_dec->pf_deblk_luma_vert_bslt4(pu1_y + 8, i4_strd_y, alpha, beta, + u4_bs, pu1_cliptab_y); + ps_dec->pf_deblk_chroma_vert_bslt4(pu1_u + 4 * YUV420SP_FACTOR, + i4_strd_uv, alpha_u, beta_u, + alpha_v, beta_v, u4_bs, + pu1_cliptab_u, pu1_cliptab_v); - } - //edge=3 + } + //edge=3 - u4_bs = pu4_bs_tab[7]; - if(u4_bs) - { - ps_dec->pf_deblk_luma_vert_bslt4(pu1_y + 12, i4_strd_y, alpha, beta, - u4_bs, pu1_cliptab_y); + u4_bs = pu4_bs_tab[7]; + if(u4_bs) + { + ps_dec->pf_deblk_luma_vert_bslt4(pu1_y + 12, i4_strd_y, alpha, beta, + u4_bs, pu1_cliptab_y); - } + } - /*--------------------------------------------------------------------*/ - /* Filter wrt Top edge */ - /* except */ - /* - Top Egde is Picture Boundary */ - /* - Top Egde is part of Slice Boundary and Deblocking */ - /* parameters of slice disable Filtering of Slice Boundary Edges*/ - /*--------------------------------------------------------------------*/ - if(ps_top_mb) - { - /** if top MB and MB AFF and cur MB is frame and top is field then */ - /* one extra top edge needs to be deblocked */ + /*--------------------------------------------------------------------*/ + /* Filter wrt Top edge */ + /* except */ + /* - Top Egde is Picture Boundary */ + /* - Top Egde is part of Slice Boundary and Deblocking */ + /* parameters of slice disable Filtering of Slice Boundary Edges*/ + /*--------------------------------------------------------------------*/ + if(ps_top_mb) + { + /** if top MB and MB AFF and cur MB is frame and top is field then */ + /* one extra top edge needs to be deblocked */ - ih264d_filter_boundary_top_nonmbaff(ps_dec, ps_tfr_cxt, - i1_cb_qp_idx_ofst, - i1_cr_qp_idx_ofst, ps_cur_mb, - i4_strd_y, i4_strd_uv, ps_top_mb, - pu4_bs_tab[0]); + ih264d_filter_boundary_top_nonmbaff(ps_dec, ps_tfr_cxt, + i1_cb_qp_idx_ofst, + i1_cr_qp_idx_ofst, ps_cur_mb, + i4_strd_y, i4_strd_uv, ps_top_mb, + pu4_bs_tab[0]); - } + } - /*--------------------------------------------------------------------*/ - /* Filter wrt Other Horizontal Edges */ - /*--------------------------------------------------------------------*/ + /*--------------------------------------------------------------------*/ + /* Filter wrt Other Horizontal Edges */ + /*--------------------------------------------------------------------*/ - //edge1 - u4_bs = pu4_bs_tab[1]; + //edge1 + u4_bs = pu4_bs_tab[1]; - if(u4_bs) - { - ps_dec->pf_deblk_luma_horz_bslt4(pu1_y + (i4_strd_y << 2), i4_strd_y, - alpha, beta, u4_bs, pu1_cliptab_y); + if(u4_bs) + { + ps_dec->pf_deblk_luma_horz_bslt4(pu1_y + (i4_strd_y << 2), i4_strd_y, + alpha, beta, u4_bs, pu1_cliptab_y); - } - //edge2 - u4_bs = pu4_bs_tab[2]; + } + //edge2 + u4_bs = pu4_bs_tab[2]; - if(u4_bs) - { + if(u4_bs) + { - ps_dec->pf_deblk_luma_horz_bslt4(pu1_y + (i4_strd_y << 3), i4_strd_y, - alpha, beta, u4_bs, pu1_cliptab_y); - ps_dec->pf_deblk_chroma_horz_bslt4(pu1_u + (i4_strd_uv << 2), - i4_strd_uv, alpha_u, beta_u, - alpha_v, beta_v, u4_bs, - pu1_cliptab_u, pu1_cliptab_v); + ps_dec->pf_deblk_luma_horz_bslt4(pu1_y + (i4_strd_y << 3), i4_strd_y, + alpha, beta, u4_bs, pu1_cliptab_y); + ps_dec->pf_deblk_chroma_horz_bslt4(pu1_u + (i4_strd_uv << 2), + i4_strd_uv, alpha_u, beta_u, + alpha_v, beta_v, u4_bs, + pu1_cliptab_u, pu1_cliptab_v); - } - //edge3 - u4_bs = pu4_bs_tab[3]; - if(u4_bs) - { - ps_dec->pf_deblk_luma_horz_bslt4( - (pu1_y + (i4_strd_y << 3) + (i4_strd_y << 2)), - i4_strd_y, alpha, beta, u4_bs, pu1_cliptab_y); + } + //edge3 + u4_bs = pu4_bs_tab[3]; + if(u4_bs) + { + ps_dec->pf_deblk_luma_horz_bslt4( + (pu1_y + (i4_strd_y << 3) + (i4_strd_y << 2)), + i4_strd_y, alpha, beta, u4_bs, pu1_cliptab_y); - } + } + } + + ps_dec->u4_deblk_mb_x++; + ps_dec->ps_cur_deblk_mb++; + ps_dec->u4_cur_deblk_mb_num++; + u4_mbs_next = u4_image_wd_mb - ps_dec->u4_deblk_mb_x; + + ps_tfr_cxt->pu1_mb_y += 16; + ps_tfr_cxt->pu1_mb_u += 8 * YUV420SP_FACTOR; + ps_tfr_cxt->pu1_mb_v += 8; + + if(!u4_mbs_next) + { + ps_tfr_cxt->pu1_mb_y += ps_tfr_cxt->u4_y_inc; + ps_tfr_cxt->pu1_mb_u += ps_tfr_cxt->u4_uv_inc; + ps_tfr_cxt->pu1_mb_v += ps_tfr_cxt->u4_uv_inc; + ps_dec->u4_deblk_mb_y++; + ps_dec->u4_deblk_mb_x = 0; + } } @@ -604,6 +644,10 @@ void ih264d_init_deblk_tfr_ctxt(dec_struct_t * ps_dec, ps_tfr_cxt->pu1_dest_u = ps_tfr_cxt->pu1_src_u; ps_tfr_cxt->pu1_dest_v = ps_tfr_cxt->pu1_src_v; + ps_tfr_cxt->pu1_mb_y = ps_tfr_cxt->pu1_src_y + 4; + ps_tfr_cxt->pu1_mb_u = ps_tfr_cxt->pu1_src_u + 4; + ps_tfr_cxt->pu1_mb_v = ps_tfr_cxt->pu1_src_v + 4; + i4_wd_y = ps_dec->u2_frm_wd_y << u1_field_pic_flag; i4_wd_uv = ps_dec->u2_frm_wd_uv << u1_field_pic_flag; ps_tfr_cxt->u4_y_inc = ((i4_wd_y << u1_mbaff) * 16 @@ -698,14 +742,13 @@ void ih264d_deblock_picture_mbaff(dec_struct_t * ps_dec) i4_wd_uv = ps_dec->u2_frm_wd_uv << u1_field_pic_flag; /* Initial filling of the buffers with deblocking data */ - pu1_deb_y = ps_tfr_cxt->pu1_src_y + 4; - pu1_deb_u = ps_tfr_cxt->pu1_src_u + 4; - pu1_deb_v = ps_tfr_cxt->pu1_src_v + 4; + pu1_deb_y = ps_tfr_cxt->pu1_mb_y; + pu1_deb_u = ps_tfr_cxt->pu1_mb_u; + pu1_deb_v = ps_tfr_cxt->pu1_mb_v; ps_cur_mb = ps_dec->ps_deblk_pic; if(ps_dec->u4_app_disable_deblk_frm == 0) { - if(ps_dec->u4_mb_level_deblk == 0 || ps_dec->u4_num_cores >= 3) { while(i2_mb_y > 0) @@ -941,13 +984,9 @@ void ih264d_deblock_picture_mbaff(dec_struct_t * ps_dec) void ih264d_deblock_picture_non_mbaff(dec_struct_t * ps_dec) { - WORD16 i2_mb_x, i2_mb_y; deblk_mb_t *ps_cur_mb; - deblk_mb_t *ps_top_mb; - deblk_mb_t *ps_left_mb; UWORD8 u1_vert_pad_top = 1; - UWORD8 u1_first_row; UWORD8 u1_deb_mode; WORD32 i4_wd_y, i4_wd_uv; @@ -974,80 +1013,26 @@ void ih264d_deblock_picture_non_mbaff(dec_struct_t * ps_dec) 0); /* Pic level Initialisations */ - i2_mb_y = u2_image_ht_mb; - i2_mb_x = 0; - u1_first_row = 1; + i4_wd_y = ps_dec->u2_frm_wd_y << u1_field_pic_flag; i4_wd_uv = ps_dec->u2_frm_wd_uv << u1_field_pic_flag; /* Initial filling of the buffers with deblocking data */ - ps_tfr_cxt->pu1_mb_y = ps_tfr_cxt->pu1_src_y + 4; - ps_tfr_cxt->pu1_mb_u = ps_tfr_cxt->pu1_src_u + 4; - ps_tfr_cxt->pu1_mb_v = ps_tfr_cxt->pu1_src_v + 4; ps_cur_mb = ps_dec->ps_deblk_pic; if(ps_dec->u4_app_disable_deblk_frm == 0) { - if((ps_dec->u4_mb_level_deblk == 0) && (ps_dec->u4_num_cores != 3)) + if(ps_dec->ps_cur_sps->u1_mb_aff_flag == 1) { - - while(i2_mb_y > 0) + while( ps_dec->u4_deblk_mb_y < u2_image_ht_mb) { - do - { - - u1_deb_mode = ps_cur_mb->u1_deblocking_mode; - if(!(u1_deb_mode & MB_DISABLE_FILTERING)) - { - if(i2_mb_x) - { - ps_left_mb = ps_cur_mb - 1; - } - else - { - ps_left_mb = NULL; - } - if(!u1_first_row) - { - ps_top_mb = ps_cur_mb - (u2_image_wd_mb); - } - else - { - ps_top_mb = NULL; - } - - if(u1_deb_mode & MB_DISABLE_LEFT_EDGE) - ps_left_mb = NULL; - if(u1_deb_mode & MB_DISABLE_TOP_EDGE) - ps_top_mb = NULL; - - ih264d_deblock_mb_nonmbaff(ps_dec, ps_tfr_cxt, - i1_cb_qp_idx_ofst, - i1_cr_qp_idx_ofst, ps_cur_mb, - i4_wd_y, i4_wd_uv, ps_top_mb, - ps_left_mb); - } - - ps_cur_mb++; - i2_mb_x++; - - ps_tfr_cxt->pu1_mb_y += 16; - ps_tfr_cxt->pu1_mb_u += 8 * YUV420SP_FACTOR; - ps_tfr_cxt->pu1_mb_v += 8; - - } - while(i2_mb_x < u2_image_wd_mb); - - ps_tfr_cxt->pu1_mb_y += ps_tfr_cxt->u4_y_inc; - ps_tfr_cxt->pu1_mb_u += ps_tfr_cxt->u4_uv_inc; - ps_tfr_cxt->pu1_mb_v += ps_tfr_cxt->u4_uv_inc; - - i2_mb_x = 0; - i2_mb_y--; - u1_first_row = 0; - + ih264d_deblock_mb_nonmbaff(ps_dec, ps_tfr_cxt, + i1_cb_qp_idx_ofst, + i1_cr_qp_idx_ofst, + i4_wd_y, i4_wd_uv); + ps_cur_mb++; } } @@ -1116,14 +1101,10 @@ void ih264d_deblock_picture_non_mbaff(dec_struct_t * ps_dec) void ih264d_deblock_picture_progressive(dec_struct_t * ps_dec) { - WORD16 i2_mb_x, i2_mb_y; - deblk_mb_t *ps_cur_mb; - deblk_mb_t *ps_top_mb; - deblk_mb_t *ps_left_mb; UWORD8 u1_vert_pad_top = 1; - UWORD8 u1_mbs_next, u1_first_row; + UWORD8 u1_mbs_next; UWORD8 u1_deb_mode; WORD32 i4_wd_y, i4_wd_uv; @@ -1149,83 +1130,23 @@ void ih264d_deblock_picture_progressive(dec_struct_t * ps_dec) 0); /* Pic level Initialisations */ - i2_mb_y = u2_image_ht_mb; - i2_mb_x = 0; - - u1_first_row = 1; i4_wd_y = ps_dec->u2_frm_wd_y; i4_wd_uv = ps_dec->u2_frm_wd_uv; /* Initial filling of the buffers with deblocking data */ - - ps_tfr_cxt->pu1_mb_y = ps_tfr_cxt->pu1_src_y + 4; - ps_tfr_cxt->pu1_mb_u = ps_tfr_cxt->pu1_src_u + 4; - ps_tfr_cxt->pu1_mb_v = ps_tfr_cxt->pu1_src_v + 4; ps_cur_mb = ps_dec->ps_deblk_pic; if(ps_dec->u4_app_disable_deblk_frm == 0) { - - if((ps_dec->u4_mb_level_deblk == 0) && (ps_dec->u4_num_cores != 3)) + if(ps_dec->ps_cur_sps->u1_mb_aff_flag == 1) { - - while(i2_mb_y > 0) + while( ps_dec->u4_deblk_mb_y < u2_image_ht_mb) { - - u1_deb_mode = ps_cur_mb->u1_deblocking_mode; - if(!(u1_deb_mode & MB_DISABLE_FILTERING)) - { - - if(i2_mb_x) - { - ps_left_mb = ps_cur_mb - 1; - - } - else - { - ps_left_mb = NULL; - - } - if(!u1_first_row) - { - ps_top_mb = ps_cur_mb - (u2_image_wd_mb); - } - else - { - ps_top_mb = NULL; - } - - if(u1_deb_mode & MB_DISABLE_LEFT_EDGE) - ps_left_mb = NULL; - if(u1_deb_mode & MB_DISABLE_TOP_EDGE) - ps_top_mb = NULL; - - ih264d_deblock_mb_nonmbaff(ps_dec, ps_tfr_cxt, - i1_cb_qp_idx_ofst, - i1_cr_qp_idx_ofst, ps_cur_mb, - i4_wd_y, i4_wd_uv, ps_top_mb, - ps_left_mb); - } - + ih264d_deblock_mb_nonmbaff(ps_dec, ps_tfr_cxt, + i1_cb_qp_idx_ofst, + i1_cr_qp_idx_ofst, + i4_wd_y, i4_wd_uv); ps_cur_mb++; - i2_mb_x++; - u1_mbs_next = u2_image_wd_mb - i2_mb_x; - - ps_tfr_cxt->pu1_mb_y += 16; - ps_tfr_cxt->pu1_mb_u += 8 * YUV420SP_FACTOR; - ps_tfr_cxt->pu1_mb_v += 8; - - if(!u1_mbs_next) - { - ps_tfr_cxt->pu1_mb_y += ps_tfr_cxt->u4_y_inc; - ps_tfr_cxt->pu1_mb_u += ps_tfr_cxt->u4_uv_inc; - ps_tfr_cxt->pu1_mb_v += ps_tfr_cxt->u4_uv_inc; - - i2_mb_x = 0; - i2_mb_y--; - u1_first_row = 0; - } - } } @@ -1355,12 +1276,12 @@ void ih264d_copy_intra_pred_line(dec_struct_t *ps_dec, u4_recWidth = ps_dec->u2_frm_wd_y << u1_mb_field_decoding_flag; u4_recwidth_cr = ps_dec->u2_frm_wd_uv << u1_mb_field_decoding_flag; - pu1_mb_last_row = ps_dec->s_tran_addrecon.pu1_dest_y + pu1_mb_last_row = ps_dec->ps_frame_buf_ip_recon->pu1_dest_y + (u4_recWidth * (MB_SIZE - 1)); pu1_mb_last_row += MB_SIZE * nmb_index; MEMCPY_16BYTES(ps_dec->pu1_cur_y_intra_pred_line, pu1_mb_last_row); - pu1_mb_last_row = ps_dec->s_tran_addrecon.pu1_dest_u + pu1_mb_last_row = ps_dec->ps_frame_buf_ip_recon->pu1_dest_u + (u4_recwidth_cr * (BLK8x8SIZE - 1)); pu1_mb_last_row += BLK8x8SIZE * nmb_index * YUV420SP_FACTOR; @@ -1413,227 +1334,20 @@ void ih264d_copy_intra_pred_line(dec_struct_t *ps_dec, } -void ih264d_deblock_mb_level(dec_struct_t *ps_dec, - dec_mb_info_t *ps_cur_mb_info, - UWORD32 nmb_index) -{ - UWORD8 u1_deb_mode; - deblk_mb_t *ps_cur_mb, *ps_left_mb, *ps_top_mb; - UWORD16 u2_image_wd_mb = ps_dec->u2_frm_wd_in_mbs; - UWORD16 u2_image_ht_mb = ps_dec->u2_frm_ht_in_mbs; - WORD8 i1_cb_qp_idx_ofst = ps_dec->ps_cur_pps->i1_chroma_qp_index_offset; - WORD8 i1_cr_qp_idx_ofst = - ps_dec->ps_cur_pps->i1_second_chroma_qp_index_offset; - WORD32 i4_wd_y, i4_wd_uv; - tfr_ctxt_t * ps_tfr_cxt = &ps_dec->s_tran_addrecon; - WORD16 i2_mb_y, i2_mb_x; - UWORD8 u1_mb_field_decoding_flag = ps_cur_mb_info->u1_mb_field_decodingflag; - deblk_mb_t *ps_deblk_cur_mb; - - /*Copy the last row of every MB ,to be used for intra prediction f next row*/ - { - UWORD8 *pu1_mb_last_row, u1_mb_field_decoding_flag; - UWORD32 u4_recWidth, u4_recwidth_cr; - - u1_mb_field_decoding_flag = ps_cur_mb_info->u1_mb_field_decodingflag; - - u4_recWidth = ps_dec->u2_frm_wd_y << u1_mb_field_decoding_flag; - u4_recwidth_cr = ps_dec->u2_frm_wd_uv << u1_mb_field_decoding_flag; - - pu1_mb_last_row = ps_dec->s_tran_addrecon.pu1_dest_y - + (u4_recWidth * (MB_SIZE - 1)); - pu1_mb_last_row += MB_SIZE * nmb_index; - MEMCPY_16BYTES(ps_dec->pu1_cur_y_intra_pred_line, pu1_mb_last_row); - - pu1_mb_last_row = ps_dec->s_tran_addrecon.pu1_dest_u - + (u4_recwidth_cr * (BLK8x8SIZE - 1)); - pu1_mb_last_row += BLK8x8SIZE * nmb_index * YUV420SP_FACTOR; - - MEMCPY_16BYTES(ps_dec->pu1_cur_u_intra_pred_line, pu1_mb_last_row); - - ps_dec->pu1_cur_y_intra_pred_line = - ps_dec->pu1_cur_y_intra_pred_line_base - + (MB_SIZE - * (ps_cur_mb_info->u2_mbx - + 1)); - ps_dec->pu1_cur_u_intra_pred_line = - ps_dec->pu1_cur_u_intra_pred_line_base - + (BLK8x8SIZE - * (ps_cur_mb_info->u2_mbx - + 1)) - * YUV420SP_FACTOR; - ps_dec->pu1_cur_v_intra_pred_line = - ps_dec->pu1_cur_v_intra_pred_line_base - + (BLK8x8SIZE - * (ps_cur_mb_info->u2_mbx - + 1)); - } - - i2_mb_y = ps_cur_mb_info->u2_mby; - i4_wd_y = ps_dec->u2_frm_wd_y << u1_mb_field_decoding_flag; - i4_wd_uv = ps_dec->u2_frm_wd_uv << u1_mb_field_decoding_flag; - - if(ps_cur_mb_info->u2_mbx != 0) - { - /*Deblock the previous MB*/ - deblk_mb_t *ps_deblk_cur_mb; - - if(ps_dec->u1_separate_parse == 1) - { - ps_deblk_cur_mb = ps_dec->ps_deblk_mbn_dec_thrd + nmb_index - 1; - - } - else - { - - if(nmb_index == 0) - /*if first mb in Nmb ,pick up the context from previous Nmb data*/ - ps_deblk_cur_mb = ps_dec->ps_deblk_mbn_prev - + ps_dec->u4_num_mbs_prev_nmb - 1; - else - ps_deblk_cur_mb = ps_dec->ps_deblk_mbn + nmb_index - 1; - } - - ps_cur_mb = ps_deblk_cur_mb; - - u1_deb_mode = ps_cur_mb->u1_deblocking_mode; - - i2_mb_x = ps_cur_mb_info->u2_mbx - 1; - - if(ps_dec->u4_app_disable_deblk_frm == 1) - u1_deb_mode = MB_DISABLE_FILTERING; - if(!(u1_deb_mode & MB_DISABLE_FILTERING)) - { - - if(i2_mb_x) - { - ps_left_mb = ps_cur_mb - 1; - - } - else - { - ps_left_mb = NULL; - - } - if(i2_mb_y) - { - ps_top_mb = ps_cur_mb - (u2_image_wd_mb); - } - else - { - ps_top_mb = NULL; - } - - if(u1_deb_mode & MB_DISABLE_LEFT_EDGE) - ps_left_mb = NULL; - if(u1_deb_mode & MB_DISABLE_TOP_EDGE) - ps_top_mb = NULL; - - ih264d_deblock_mb_nonmbaff(ps_dec, ps_tfr_cxt, i1_cb_qp_idx_ofst, - i1_cr_qp_idx_ofst, ps_cur_mb, i4_wd_y, - i4_wd_uv, ps_top_mb, ps_left_mb); - } - - ps_tfr_cxt->pu1_mb_y += MB_SIZE; - ps_tfr_cxt->pu1_mb_u += (MB_SIZE >> 1) * YUV420SP_FACTOR; - ps_tfr_cxt->pu1_mb_v += (MB_SIZE >> 1); - } - - if(ps_cur_mb_info->u2_mbx == (ps_dec->u2_frm_wd_in_mbs - 1)) - { - /*Deblock the previous MB*/ - deblk_mb_t *ps_deblk_cur_mb; - UWORD8 *pu1_temp; - - if(ps_dec->u1_separate_parse == 1) - ps_deblk_cur_mb = ps_dec->ps_deblk_mbn_dec_thrd + nmb_index; - else - ps_deblk_cur_mb = ps_dec->ps_deblk_mbn + nmb_index; - - i2_mb_x = ps_cur_mb_info->u2_mbx; - - ps_cur_mb = ps_deblk_cur_mb; - u1_deb_mode = ps_cur_mb->u1_deblocking_mode; - - if(ps_dec->u4_app_disable_deblk_frm == 1) - u1_deb_mode = MB_DISABLE_FILTERING; - - if(!(u1_deb_mode & MB_DISABLE_FILTERING)) - { - - if(i2_mb_x) - { - ps_left_mb = ps_cur_mb - 1; - - } - else - { - ps_left_mb = NULL; - - } - if(i2_mb_y) - { - ps_top_mb = ps_cur_mb - (u2_image_wd_mb); - } - else - { - ps_top_mb = NULL; - } - - if(u1_deb_mode & MB_DISABLE_LEFT_EDGE) - ps_left_mb = NULL; - if(u1_deb_mode & MB_DISABLE_TOP_EDGE) - ps_top_mb = NULL; - - ih264d_deblock_mb_nonmbaff(ps_dec, ps_tfr_cxt, i1_cb_qp_idx_ofst, - i1_cr_qp_idx_ofst, ps_cur_mb, i4_wd_y, - i4_wd_uv, ps_top_mb, ps_left_mb); - } - - ps_dec->pu1_cur_y_intra_pred_line = - ps_dec->pu1_cur_y_intra_pred_line_base; - ps_dec->pu1_cur_u_intra_pred_line = - ps_dec->pu1_cur_u_intra_pred_line_base; - ps_dec->pu1_cur_v_intra_pred_line = - ps_dec->pu1_cur_v_intra_pred_line_base; - - /*swap current and previous rows*/ - pu1_temp = ps_dec->pu1_cur_y_intra_pred_line; - ps_dec->pu1_cur_y_intra_pred_line = ps_dec->pu1_prev_y_intra_pred_line; - ps_dec->pu1_prev_y_intra_pred_line = pu1_temp; - - pu1_temp = ps_dec->pu1_cur_u_intra_pred_line; - ps_dec->pu1_cur_u_intra_pred_line = ps_dec->pu1_prev_u_intra_pred_line; - ps_dec->pu1_prev_u_intra_pred_line = pu1_temp; - - pu1_temp = ps_dec->pu1_cur_v_intra_pred_line; - ps_dec->pu1_cur_v_intra_pred_line = ps_dec->pu1_prev_v_intra_pred_line; - ps_dec->pu1_prev_v_intra_pred_line = pu1_temp; - - ps_dec->pu1_cur_y_intra_pred_line_base = - ps_dec->pu1_cur_y_intra_pred_line; - ps_dec->pu1_cur_u_intra_pred_line_base = - ps_dec->pu1_cur_u_intra_pred_line; - ps_dec->pu1_cur_v_intra_pred_line_base = - ps_dec->pu1_cur_v_intra_pred_line; - - } - -} void ih264d_filter_boundary_left_mbaff(dec_struct_t *ps_dec, tfr_ctxt_t * ps_tfr_cxt, WORD8 i1_cb_qp_idx_ofst, WORD8 i1_cr_qp_idx_ofst, deblk_mb_t * ps_cur_mb, - UWORD16 i4_strd_y, - UWORD16 i4_strd_uv, + WORD32 i4_strd_y, + WORD32 i4_strd_uv, deblk_mb_t * ps_left_mb, /* Neighbouring MB parameters */ UWORD32 pu4_bs_tab[], /* pointer to the BsTable array */ UWORD8 u1_cur_fld) { UWORD8 *pu1_y, *pu1_u, *pu1_v; - UWORD8 uc_tmp, qp_avg, uc_QPav_Y; + UWORD8 uc_tmp, qp_avg; WORD32 alpha_u = 0, beta_u = 0, alpha_v = 0, beta_v = 0; WORD32 alpha_y = 0, beta_y = 0; @@ -1657,19 +1371,19 @@ void ih264d_filter_boundary_left_mbaff(dec_struct_t *ps_dec, /* LUMA values */ /* Deblock rounding change */ uc_tmp = (UWORD8)((ps_left_mb->u1_mb_qp + ps_cur_mb->u1_mb_qp + 1) >> 1); - uc_QPav_Y = uc_tmp; - idx_a_y = uc_QPav_Y + ofst_a; + qp_avg = uc_tmp; + idx_a_y = qp_avg + ofst_a; alpha_y = gau1_ih264d_alpha_table[12 + idx_a_y]; - idx_b_y = uc_QPav_Y + ofst_b; + idx_b_y = qp_avg + ofst_b; beta_y = gau1_ih264d_beta_table[12 + idx_b_y]; /* Chroma cb values */ { - UWORD8 u1_mb_qp1, u1_mb_qp2; - u1_mb_qp1 = (ps_left_mb->u1_mb_qp + i1_cb_qp_idx_ofst); - u1_mb_qp2 = (ps_cur_mb->u1_mb_qp + i1_cb_qp_idx_ofst); - qp_avg = (UWORD8)((gau1_ih264d_qp_scale_cr[12 + u1_mb_qp1] - + gau1_ih264d_qp_scale_cr[12 + u1_mb_qp2] + 1) >> 1); + WORD32 mb_qp1, mb_qp2; + mb_qp1 = (ps_left_mb->u1_mb_qp + i1_cb_qp_idx_ofst); + mb_qp2 = (ps_cur_mb->u1_mb_qp + i1_cb_qp_idx_ofst); + qp_avg = (UWORD8)((gau1_ih264d_qp_scale_cr[12 + mb_qp1] + + gau1_ih264d_qp_scale_cr[12 + mb_qp2] + 1) >> 1); } idx_a_u = qp_avg + ofst_a; alpha_u = gau1_ih264d_alpha_table[12 + idx_a_u]; @@ -1678,11 +1392,11 @@ void ih264d_filter_boundary_left_mbaff(dec_struct_t *ps_dec, /* Chroma cr values */ { - UWORD8 u1_mb_qp1, u1_mb_qp2; - u1_mb_qp1 = (ps_left_mb->u1_mb_qp + i1_cr_qp_idx_ofst); - u1_mb_qp2 = (ps_cur_mb->u1_mb_qp + i1_cr_qp_idx_ofst); - qp_avg = (UWORD8)((gau1_ih264d_qp_scale_cr[12 + u1_mb_qp1] - + gau1_ih264d_qp_scale_cr[12 + u1_mb_qp2] + 1) >> 1); + WORD32 mb_qp1, mb_qp2; + mb_qp1 = (ps_left_mb->u1_mb_qp + i1_cr_qp_idx_ofst); + mb_qp2 = (ps_cur_mb->u1_mb_qp + i1_cr_qp_idx_ofst); + qp_avg = (UWORD8)((gau1_ih264d_qp_scale_cr[12 + mb_qp1] + + gau1_ih264d_qp_scale_cr[12 + mb_qp2] + 1) >> 1); } idx_a_v = qp_avg + ofst_a; alpha_v = gau1_ih264d_alpha_table[12 + idx_a_v]; @@ -1743,12 +1457,9 @@ void ih264d_filter_boundary_left_mbaff(dec_struct_t *ps_dec, if(u4_bs_val) { - pu1_cliptab_y = (UWORD8 *)&gau1_ih264d_clip_table[12 - + idx_a_y]; - pu1_cliptab_u = (UWORD8 *)&gau1_ih264d_clip_table[12 - + idx_a_u]; - pu1_cliptab_v = (UWORD8 *)&gau1_ih264d_clip_table[12 - + idx_a_v]; + pu1_cliptab_y = (UWORD8 *)&gau1_ih264d_clip_table[12 + idx_a_y]; + pu1_cliptab_u = (UWORD8 *)&gau1_ih264d_clip_table[12 + idx_a_u]; + pu1_cliptab_v = (UWORD8 *)&gau1_ih264d_clip_table[12 + idx_a_v]; ps_dec->pf_deblk_luma_vert_bslt4_mbaff(pu1_y, i4_strd_y, alpha_y, beta_y, u4_bs_val, @@ -1773,19 +1484,19 @@ void ih264d_filter_boundary_left_mbaff(dec_struct_t *ps_dec, } uc_tmp = (((ps_left_mb + 1)->u1_mb_qp + ps_cur_mb->u1_mb_qp + 1) >> 1); - uc_QPav_Y = uc_tmp; - idx_a_y = uc_QPav_Y + ofst_a; + qp_avg = uc_tmp; + idx_a_y = qp_avg + ofst_a; alpha_y = gau1_ih264d_alpha_table[12 + idx_a_y]; - idx_b_y = uc_QPav_Y + ofst_b; + idx_b_y = qp_avg + ofst_b; beta_y = gau1_ih264d_beta_table[12 + idx_b_y]; u4_bs_val = pu4_bs_tab[9]; { - UWORD8 u1_mb_qp1, u1_mb_qp2; - u1_mb_qp1 = ((ps_left_mb + 1)->u1_mb_qp + i1_cb_qp_idx_ofst); - u1_mb_qp2 = (ps_cur_mb->u1_mb_qp + i1_cb_qp_idx_ofst); - qp_avg = (UWORD8)((gau1_ih264d_qp_scale_cr[12 + u1_mb_qp1] - + gau1_ih264d_qp_scale_cr[12 + u1_mb_qp2] + 1) >> 1); + WORD32 mb_qp1, mb_qp2; + mb_qp1 = ((ps_left_mb + 1)->u1_mb_qp + i1_cb_qp_idx_ofst); + mb_qp2 = (ps_cur_mb->u1_mb_qp + i1_cb_qp_idx_ofst); + qp_avg = (UWORD8)((gau1_ih264d_qp_scale_cr[12 + mb_qp1] + + gau1_ih264d_qp_scale_cr[12 + mb_qp2] + 1) >> 1); } idx_a_u = qp_avg + ofst_a; alpha_u = gau1_ih264d_alpha_table[12 + idx_a_u]; @@ -1793,11 +1504,11 @@ void ih264d_filter_boundary_left_mbaff(dec_struct_t *ps_dec, beta_u = gau1_ih264d_beta_table[12 + idx_b_u]; u4_bs_val = pu4_bs_tab[9]; { - UWORD8 u1_mb_qp1, u1_mb_qp2; - u1_mb_qp1 = ((ps_left_mb + 1)->u1_mb_qp + i1_cr_qp_idx_ofst); - u1_mb_qp2 = (ps_cur_mb->u1_mb_qp + i1_cr_qp_idx_ofst); - qp_avg = (UWORD8)((gau1_ih264d_qp_scale_cr[12 + u1_mb_qp1] - + gau1_ih264d_qp_scale_cr[12 + u1_mb_qp2] + 1) >> 1); + WORD32 mb_qp1, mb_qp2; + mb_qp1 = ((ps_left_mb + 1)->u1_mb_qp + i1_cr_qp_idx_ofst); + mb_qp2 = (ps_cur_mb->u1_mb_qp + i1_cr_qp_idx_ofst); + qp_avg = (UWORD8)((gau1_ih264d_qp_scale_cr[12 + mb_qp1] + + gau1_ih264d_qp_scale_cr[12 + mb_qp2] + 1) >> 1); } idx_a_v = qp_avg + ofst_a; alpha_v = gau1_ih264d_alpha_table[12 + idx_a_v]; @@ -1817,12 +1528,9 @@ void ih264d_filter_boundary_left_mbaff(dec_struct_t *ps_dec, if(u4_bs_val) { - pu1_cliptab_y = (UWORD8 *)&gau1_ih264d_clip_table[12 - + idx_a_y]; - pu1_cliptab_u = (UWORD8 *)&gau1_ih264d_clip_table[12 - + idx_a_u]; - pu1_cliptab_v = (UWORD8 *)&gau1_ih264d_clip_table[12 - + idx_a_v]; + pu1_cliptab_y = (UWORD8 *)&gau1_ih264d_clip_table[12 + idx_a_y]; + pu1_cliptab_u = (UWORD8 *)&gau1_ih264d_clip_table[12 + idx_a_u]; + pu1_cliptab_v = (UWORD8 *)&gau1_ih264d_clip_table[12 + idx_a_v]; ps_dec->pf_deblk_luma_vert_bslt4_mbaff(pu1_y, i4_strd_y, alpha_y, beta_y, @@ -1846,8 +1554,8 @@ void ih264d_filter_boundary_topmbaff(dec_struct_t *ps_dec, WORD8 i1_cb_qp_idx_ofst, WORD8 i1_cr_qp_idx_ofst, deblk_mb_t * ps_cur_mb, - UWORD16 i4_strd_y, - UWORD16 i4_strd_uv, + WORD32 i4_strd_y, + WORD32 i4_strd_uv, deblk_mb_t * ps_top_mb, UWORD32 u4_bs) { @@ -1855,7 +1563,6 @@ void ih264d_filter_boundary_topmbaff(dec_struct_t *ps_dec, WORD32 alpha_u = 0, beta_u = 0, alpha_v = 0, beta_v = 0; WORD32 alpha_y = 0, beta_y = 0; WORD32 qp_avg; - WORD32 uc_QPav_Y; WORD32 idx_b_u, idx_a_u, idx_b_v, idx_a_v; WORD32 idx_b_y, idx_a_y; UWORD16 uc_tmp; @@ -1867,20 +1574,20 @@ void ih264d_filter_boundary_topmbaff(dec_struct_t *ps_dec, /* LUMA values */ /* Deblock rounding change */ uc_tmp = ((ps_top_mb->u1_mb_qp + ps_cur_mb->u1_mb_qp + 1) >> 1); - uc_QPav_Y = (UWORD8)uc_tmp; - idx_a_y = uc_QPav_Y + ofst_a; + qp_avg = (UWORD8)uc_tmp; + idx_a_y = qp_avg + ofst_a; alpha_y = gau1_ih264d_alpha_table[12 + idx_a_y]; - idx_b_y = uc_QPav_Y + ofst_b; + idx_b_y = qp_avg + ofst_b; beta_y = gau1_ih264d_beta_table[12 + idx_b_y]; pu1_y = ps_tfr_cxt->pu1_mb_y; /* CHROMA cb values */ { - UWORD8 u1_mb_qp1, u1_mb_qp2; - u1_mb_qp1 = (ps_top_mb->u1_mb_qp + i1_cb_qp_idx_ofst); - u1_mb_qp2 = (ps_cur_mb->u1_mb_qp + i1_cb_qp_idx_ofst); - qp_avg = (UWORD8)((gau1_ih264d_qp_scale_cr[12 + u1_mb_qp1] - + gau1_ih264d_qp_scale_cr[12 + u1_mb_qp2] + 1) >> 1); + WORD32 mb_qp1, mb_qp2; + mb_qp1 = (ps_top_mb->u1_mb_qp + i1_cb_qp_idx_ofst); + mb_qp2 = (ps_cur_mb->u1_mb_qp + i1_cb_qp_idx_ofst); + qp_avg = (UWORD8)((gau1_ih264d_qp_scale_cr[12 + mb_qp1] + + gau1_ih264d_qp_scale_cr[12 + mb_qp2] + 1) >> 1); } idx_a_u = qp_avg + ofst_a; @@ -1889,11 +1596,11 @@ void ih264d_filter_boundary_topmbaff(dec_struct_t *ps_dec, beta_u = gau1_ih264d_beta_table[12 + idx_b_u]; /* CHROMA cr values */ { - UWORD8 u1_mb_qp1, u1_mb_qp2; - u1_mb_qp1 = (ps_top_mb->u1_mb_qp + i1_cr_qp_idx_ofst); - u1_mb_qp2 = (ps_cur_mb->u1_mb_qp + i1_cr_qp_idx_ofst); - qp_avg = (UWORD8)((gau1_ih264d_qp_scale_cr[12 + u1_mb_qp1] - + gau1_ih264d_qp_scale_cr[12 + u1_mb_qp2] + 1) >> 1); + WORD32 mb_qp1, mb_qp2; + mb_qp1 = (ps_top_mb->u1_mb_qp + i1_cr_qp_idx_ofst); + mb_qp2 = (ps_cur_mb->u1_mb_qp + i1_cr_qp_idx_ofst); + qp_avg = (UWORD8)((gau1_ih264d_qp_scale_cr[12 + mb_qp1] + + gau1_ih264d_qp_scale_cr[12 + mb_qp2] + 1) >> 1); } idx_a_v = qp_avg + ofst_a; diff --git a/decoder/ih264d_deblocking.h b/decoder/ih264d_deblocking.h index 21601aa..5fe52cf 100644 --- a/decoder/ih264d_deblocking.h +++ b/decoder/ih264d_deblocking.h @@ -42,6 +42,10 @@ WORD8 ih264d_set_deblocking_parameters(deblk_mb_t * ps_cur_deblk_mb, UWORD8 u1_mb_ngbr_availablity, UWORD8 u1_mb_field_decoding_flag); +void ih264d_copy_intra_pred_line(dec_struct_t *ps_dec, + dec_mb_info_t *ps_cur_mb_info, + UWORD32 nmb_index); + void FilterBoundaryLeft(tfr_ctxt_t * const ps_tfr_cxt, const WORD8 i1_cb_qp_idx_ofst, const WORD8 i1_cr_qp_idx_ofst, @@ -154,11 +158,8 @@ void ih264d_deblock_mb_nonmbaff(dec_struct_t *ps_dec, tfr_ctxt_t * const ps_tfr_cxt, const WORD8 i1_cb_qp_idx_ofst, const WORD8 i1_cr_qp_idx_ofst, - deblk_mb_t * const ps_cur_mb, WORD32 i4_strd_y, - WORD32 i4_strd_uv, - deblk_mb_t * const ps_top_mb, - deblk_mb_t * const ps_left_mb); + WORD32 i4_strd_uv); void ih264d_init_deblk_tfr_ctxt(dec_struct_t * ps_dec, pad_mgr_t *ps_pad_mgr, diff --git a/decoder/ih264d_debug.c b/decoder/ih264d_debug.c deleted file mode 100644 index 5650e20..0000000 --- a/decoder/ih264d_debug.c +++ /dev/null @@ -1,40 +0,0 @@ -/****************************************************************************** - * - * Copyright (C) 2015 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at: - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ***************************************************************************** - * Originally developed and contributed by Ittiam Systems Pvt. Ltd, Bangalore -*/ - -/*! - ************************************************************************** - * \file ih264d_debug.c - * - * \brief - * Contains routines that can be used in debugging - * - * \date - * 20/11/2002 - * - * \author AI - ************************************************************************** - */ -#include "ih264_typedefs.h" -#include "ih264_macros.h" -#include "ih264_platform_macros.h" -#include "ih264d_bitstrm.h" -#include "ih264d_debug.h" -#include "ih264d_defs.h" - diff --git a/decoder/ih264d_defs.h b/decoder/ih264d_defs.h index 3f8bc58..fbdbd45 100644 --- a/decoder/ih264d_defs.h +++ b/decoder/ih264d_defs.h @@ -35,26 +35,12 @@ ************************************************************************ */ #define H264_MAX_FRAME_WIDTH 3840 -#define H264_MAX_FRAME_HEIGHT 2160 +#define H264_MAX_FRAME_HEIGHT 2176 #define H264_MIN_FRAME_WIDTH 16 #define H264_MIN_FRAME_HEIGHT 16 -#define IH264DEC_MAX_NAL_UNIT_SIZE 311040 -#define IH264DEC_NUM_ZEROS_IN_START_CODE 2 -#define H264DEC_MEM_ALLOC_SUCCESS 1 -#define H264DEC_MEM_ALLOC_FAILURE 0 -#define H264DEC_CREATE_FAILED (NULL) - -#define H264_NO_BUF_TO_DISPLAY -1 -#define H264_DISPLAY_BUF_FOUND 0 -#define IH264DEC_YUV420 0 -#define IH264DEC_YUV422 1 -#define IH264DEC_YUV422INTERLACED 2 -#define IH264DEC_RGB 4 // Original Size -/* Ceiling of variables to the nearest power of 2 */ -#define FILL_POWEROF2(x,y) (size_t)(((x) & ((1<<(y))-1))?((1<<(y)) - ((x) & ((1<<(y))-1))): 0) -#define ALIGN_POWEROF2(x,y) (x) = (x)+FILL_POWEROF2((size_t)(x),y) +#define FMT_CONV_NUM_ROWS 16 /** Bit manipulation macros */ #define CHECKBIT(a,i) ((a) & (1 << i)) @@ -78,10 +64,10 @@ #define MAX_REF_BUFS 32 #define MAX_DISP_BUFS_NEW 64 #define MAX_FRAMES 16 -#define MAX_MBS_IN_ROW (720/16) + #define INVALID_FRAME_NUM 0x0fffffff #define GAP_FRAME_NUM 0x1fffffff -#define MAX_PIC_SIZE 622080 // 720 * 576 * 1.5 + /** macros for reference picture lists, refIdx to POC mapping */ // 1 extra entry into reference picture lists for refIdx = -1. // this entry is always 0. this saves conditional checks in @@ -112,7 +98,7 @@ #define INT_PIC_TYPE_I (0x00) #define YIELD_CNT_THRESHOLD 8 -#define ENABLE_420P_UV_SHARING 1 + #define OK 0 #define END 1 @@ -272,7 +258,7 @@ enum #define BASE_PROFILE_IDC 66 #define MAIN_PROFILE_IDC 77 #define HIGH_PROFILE_IDC 100 -#define MAIN_PROFILE 1 + #define MB_SIZE 16 #define BLK8x8SIZE 8 @@ -640,27 +626,17 @@ enum #define MASK_PRED_WEIGHT_OFFSET 0xFFFFFF00 #define MAX_REDUNDANT_PIC_CNT 127 -#define DPB_HACK 0 -#define DPB_HACK_NEW 0 - -#define PD_MB_BUF_SIZE (H264_MAX_FRAME_WIDTH * H264_MAX_FRAME_WIDTH / 256) -#define PD_MB_BUF_SIZE_MOD 0xffffffff -#define MAX_PRED_INFO_LIMIT (PD_MB_BUF_SIZE * 32 * 2) - #endif //DEBLOCK_THREAD - -#define NO_DC_SB 0 -#define SUB_BLK_MASK 0xFFFFFF00 #define NUM_COEFFS_IN_4x4BLK 16 #define MEMSET_16BYTES(pu4_start,value) \ - { \ - memset(pu4_start,value,16); \ - } +{ \ + memset(pu4_start,value,16); \ +} #define MEMCPY_16BYTES(dst,src) \ { \ diff --git a/decoder/ih264d_error_handler.h b/decoder/ih264d_error_handler.h index 20c0f89..1ff5c7d 100644 --- a/decoder/ih264d_error_handler.h +++ b/decoder/ih264d_error_handler.h @@ -38,6 +38,7 @@ #include "ih264_typedefs.h" #include "ih264_macros.h" #include "ih264_platform_macros.h" +#include "ih264d_structs.h" typedef enum { @@ -109,7 +110,14 @@ typedef enum ERROR_LEVEL_UNSUPPORTED = 0x90, ERROR_START_CODE_NOT_FOUND = 0x91, ERROR_PIC_NUM_IS_REPEATED = 0x92, + ERROR_IN_LAST_SLICE_OF_PIC = 0x93 } h264_decoder_error_code_t; +WORD32 ih264d_mark_err_slice_skip(dec_struct_t * ps_dec, + WORD32 num_mb_skip, + UWORD8 u1_is_idr_slice, + pocstruct_t *ps_cur_poc, + WORD32 prev_slice_err); + #endif /* _IH264D_ERROR_HANDLER_H_ */ diff --git a/decoder/ih264d_format_conv.c b/decoder/ih264d_format_conv.c index 9a8494e..631bc23 100644 --- a/decoder/ih264d_format_conv.c +++ b/decoder/ih264d_format_conv.c @@ -41,6 +41,7 @@ #include <string.h> /* User include files */ #include "ih264_typedefs.h" +#include "iv.h" #include "ih264_macros.h" #include "ih264_platform_macros.h" #include "ih264d_structs.h" @@ -647,7 +648,7 @@ void ih264d_fmt_conv_420sp_to_420p(UWORD8 *pu1_y_src, } /*****************************************************************************/ -/* Function Name : ih264d_format_convert */ +/* Function Name : ih264d_format_convert */ /* */ /* Description : Implements format conversion/frame copy */ /* Inputs : ps_dec - Decoder parameters */ @@ -671,6 +672,8 @@ void ih264d_format_convert(dec_struct_t *ps_dec, { UWORD32 convert_uv_only = 0; iv_yuv_buf_t *ps_op_frm; + UWORD8 *pu1_y_src, *pu1_uv_src; + UWORD32 start_uv = u4_start_y >> 1; if(1 == pv_disp_op->u4_error_code) return; @@ -680,25 +683,26 @@ void ih264d_format_convert(dec_struct_t *ps_dec, /* Requires u4_start_y and u4_num_rows_y to be even */ if(u4_start_y & 1) { - H264_DEC_DEBUG_PRINT( - "Requires even number of rows and even u4_start_y for format conversion\n"); return; } - if((1 == ps_dec->u4_share_disp_buf) - && ((pv_disp_op->e_output_format == IV_YUV_420SP_UV))) + if((1 == ps_dec->u4_share_disp_buf) && + (pv_disp_op->e_output_format == IV_YUV_420SP_UV)) { return; } + + pu1_y_src = (UWORD8 *)ps_op_frm->pv_y_buf; + pu1_y_src += u4_start_y * ps_op_frm->u4_y_strd, + + pu1_uv_src = (UWORD8 *)ps_op_frm->pv_u_buf; + pu1_uv_src += start_uv * ps_op_frm->u4_u_strd; + if(pv_disp_op->e_output_format == IV_YUV_420P) { - UWORD8 *pu1_src, *pu1_dst; - UWORD16 i; - UWORD16 iter; - + UWORD8 *pu1_y_dst, *pu1_u_dst, *pu1_v_dst; IV_COLOR_FORMAT_T e_output_format = pv_disp_op->e_output_format; - UWORD32 start_uv = u4_start_y >> 1; - UWORD32 num_rows_uv = (u4_num_rows_y + 1) >> 1; + if(0 == ps_dec->u4_share_disp_buf) { convert_uv_only = 0; @@ -707,118 +711,85 @@ void ih264d_format_convert(dec_struct_t *ps_dec, { convert_uv_only = 1; } - { - - UWORD8 *pu1_y_src, *pu1_u_src, *pu1_v_src; - UWORD8 *pu1_y_dst, *pu1_u_dst, *pu1_v_dst; - UWORD32 width, height; - UWORD32 src_luma_stride, src_chroma_stride; - UWORD32 dst_luma_stride, dst_chroma_stride; - - pu1_y_src = (UWORD8 *)ps_op_frm->pv_y_buf; - pu1_y_src += u4_start_y * ps_op_frm->u4_y_strd; - - pu1_y_dst = (UWORD8 *)pv_disp_op->s_disp_frm_buf.pv_y_buf; - pu1_y_dst += u4_start_y * pv_disp_op->s_disp_frm_buf.u4_y_strd; - - pu1_u_src = (UWORD8 *)ps_op_frm->pv_u_buf; - pu1_u_src += start_uv * ps_op_frm->u4_u_strd; - - pu1_u_dst = (UWORD8 *)pv_disp_op->s_disp_frm_buf.pv_u_buf; - pu1_u_dst += start_uv * pv_disp_op->s_disp_frm_buf.u4_u_strd; - - pu1_v_src = (UWORD8 *)ps_op_frm->pv_v_buf; - pu1_v_src += start_uv * ps_op_frm->u4_v_strd; - - pu1_v_dst = (UWORD8 *)pv_disp_op->s_disp_frm_buf.pv_v_buf; - pu1_v_dst += start_uv * pv_disp_op->s_disp_frm_buf.u4_v_strd; - src_luma_stride = ps_op_frm->u4_y_strd; - src_chroma_stride = ps_op_frm->u4_u_strd; - - dst_luma_stride = pv_disp_op->s_disp_frm_buf.u4_y_strd; - dst_chroma_stride = pv_disp_op->s_disp_frm_buf.u4_u_strd; - - width = ps_op_frm->u4_y_wd; - height = u4_num_rows_y; - ih264d_fmt_conv_420sp_to_420p(pu1_y_src, pu1_u_src, pu1_y_dst, - pu1_u_dst, pu1_v_dst, width, height, - src_luma_stride, src_chroma_stride, - dst_luma_stride, dst_chroma_stride, 1, - convert_uv_only); - } + pu1_y_dst = (UWORD8 *)pv_disp_op->s_disp_frm_buf.pv_y_buf; + pu1_y_dst += u4_start_y * pv_disp_op->s_disp_frm_buf.u4_y_strd; + + pu1_u_dst = (UWORD8 *)pv_disp_op->s_disp_frm_buf.pv_u_buf; + pu1_u_dst += start_uv * pv_disp_op->s_disp_frm_buf.u4_u_strd; + + pu1_v_dst = (UWORD8 *)pv_disp_op->s_disp_frm_buf.pv_v_buf; + pu1_v_dst += start_uv * pv_disp_op->s_disp_frm_buf.u4_v_strd; + + ih264d_fmt_conv_420sp_to_420p(pu1_y_src, + pu1_uv_src, + pu1_y_dst, + pu1_u_dst, + pu1_v_dst, + ps_op_frm->u4_y_wd, + u4_num_rows_y, + ps_op_frm->u4_y_strd, + ps_op_frm->u4_u_strd, + pv_disp_op->s_disp_frm_buf.u4_y_strd, + pv_disp_op->s_disp_frm_buf.u4_u_strd, + 1, + convert_uv_only); } - - else if((pv_disp_op->e_output_format == IV_YUV_420SP_UV) - || (pv_disp_op->e_output_format == IV_YUV_420SP_VU)) - + else if((pv_disp_op->e_output_format == IV_YUV_420SP_UV) || + (pv_disp_op->e_output_format == IV_YUV_420SP_VU)) { + UWORD8* pu1_y_dst, *pu1_uv_dst; - UWORD32 start_uv = u4_start_y >> 1; - UWORD32 num_rows_uv = (u4_num_rows_y + 1) >> 1; + pu1_y_dst = (UWORD8 *)pv_disp_op->s_disp_frm_buf.pv_y_buf; + pu1_y_dst += u4_start_y * pv_disp_op->s_disp_frm_buf.u4_y_strd; + pu1_uv_dst = (UWORD8 *)pv_disp_op->s_disp_frm_buf.pv_u_buf; + pu1_uv_dst += start_uv * pv_disp_op->s_disp_frm_buf.u4_u_strd; if(pv_disp_op->e_output_format == IV_YUV_420SP_UV) { - ih264d_fmt_conv_420sp_to_420sp( - (UWORD8 *)ps_op_frm->pv_y_buf - + u4_start_y * ps_op_frm->u4_y_strd, - ((UWORD8 *)ps_op_frm->pv_u_buf - + start_uv * ps_op_frm->u4_u_strd), - ((UWORD8 *)pv_disp_op->s_disp_frm_buf.pv_y_buf - + u4_start_y - * pv_disp_op->s_disp_frm_buf.u4_y_strd), - ((UWORD8 *)pv_disp_op->s_disp_frm_buf.pv_u_buf - + start_uv - * pv_disp_op->s_disp_frm_buf.u4_u_strd), - ps_op_frm->u4_y_wd, u4_num_rows_y, - ps_op_frm->u4_y_strd, ps_op_frm->u4_u_strd, - pv_disp_op->s_disp_frm_buf.u4_y_strd, - pv_disp_op->s_disp_frm_buf.u4_u_strd); + ih264d_fmt_conv_420sp_to_420sp(pu1_y_src, + pu1_uv_src, + pu1_y_dst, + pu1_uv_dst, + ps_op_frm->u4_y_wd, + u4_num_rows_y, + ps_op_frm->u4_y_strd, + ps_op_frm->u4_u_strd, + pv_disp_op->s_disp_frm_buf.u4_y_strd, + pv_disp_op->s_disp_frm_buf.u4_u_strd); } else { - - ih264d_fmt_conv_420sp_to_420sp_swap_uv( - (UWORD8 *)ps_op_frm->pv_y_buf - + u4_start_y * ps_op_frm->u4_y_strd, - ((UWORD8 *)ps_op_frm->pv_u_buf - + start_uv * ps_op_frm->u4_u_strd), - ((UWORD8 *)pv_disp_op->s_disp_frm_buf.pv_y_buf - + u4_start_y - * pv_disp_op->s_disp_frm_buf.u4_y_strd), - ((UWORD8 *)pv_disp_op->s_disp_frm_buf.pv_u_buf - + start_uv - * pv_disp_op->s_disp_frm_buf.u4_u_strd), - ps_op_frm->u4_y_wd, u4_num_rows_y, - ps_op_frm->u4_y_strd, ps_op_frm->u4_u_strd, - pv_disp_op->s_disp_frm_buf.u4_y_strd, - pv_disp_op->s_disp_frm_buf.u4_u_strd); - + ih264d_fmt_conv_420sp_to_420sp_swap_uv(pu1_y_src, + pu1_uv_src, + pu1_y_dst, + pu1_uv_dst, + ps_op_frm->u4_y_wd, + u4_num_rows_y, + ps_op_frm->u4_y_strd, + ps_op_frm->u4_u_strd, + pv_disp_op->s_disp_frm_buf.u4_y_strd, + pv_disp_op->s_disp_frm_buf.u4_u_strd); } - } else if(pv_disp_op->e_output_format == IV_RGB_565) { - UWORD32 temp = 0; - UWORD32 u2_width_rem; - - UWORD32 start_uv = u4_start_y >> 1; - - ih264d_fmt_conv_420sp_to_rgb565( - (UWORD8 *)ps_op_frm->pv_y_buf - + u4_start_y * ps_op_frm->u4_y_strd, - ((UWORD8 *)ps_op_frm->pv_u_buf - + start_uv * ps_op_frm->u4_u_strd), - ((UWORD16 *)pv_disp_op->s_disp_frm_buf.pv_y_buf - + u4_start_y - * pv_disp_op->s_disp_frm_buf.u4_y_strd), - ps_op_frm->u4_y_wd, u4_num_rows_y, ps_op_frm->u4_y_strd, - ps_op_frm->u4_u_strd, - pv_disp_op->s_disp_frm_buf.u4_y_strd, 1); - - + UWORD16 *pu2_rgb_dst; + + pu2_rgb_dst = (UWORD16 *)pv_disp_op->s_disp_frm_buf.pv_y_buf; + pu2_rgb_dst += u4_start_y * pv_disp_op->s_disp_frm_buf.u4_y_strd; + + ih264d_fmt_conv_420sp_to_rgb565(pu1_y_src, + pu1_uv_src, + pu2_rgb_dst, + ps_op_frm->u4_y_wd, + u4_num_rows_y, + ps_op_frm->u4_y_strd, + ps_op_frm->u4_u_strd, + pv_disp_op->s_disp_frm_buf.u4_y_strd, + 1); } if((u4_start_y + u4_num_rows_y) >= ps_dec->s_disp_frame_info.u4_y_ht) @@ -826,7 +797,8 @@ void ih264d_format_convert(dec_struct_t *ps_dec, INSERT_LOGO(pv_disp_op->s_disp_frm_buf.pv_y_buf, pv_disp_op->s_disp_frm_buf.pv_u_buf, - pv_disp_op->s_disp_frm_buf.pv_v_buf, pv_disp_op->s_disp_frm_buf.u4_y_strd, + pv_disp_op->s_disp_frm_buf.pv_v_buf, + pv_disp_op->s_disp_frm_buf.u4_y_strd, ps_dec->u2_disp_width, ps_dec->u2_disp_height, pv_disp_op->e_output_format, diff --git a/decoder/ih264d_inter_pred.c b/decoder/ih264d_inter_pred.c index fa818b5..d3e6a4d 100644 --- a/decoder/ih264d_inter_pred.c +++ b/decoder/ih264d_inter_pred.c @@ -188,8 +188,6 @@ WORD32 ih264d_form_mb_part_info_bp(pred_info_pkd_t *ps_pred_pkd, UWORD8 u1_part_wd = 0,u1_part_ht = 0; WORD16 i2_mv_x,i2_mv_y; - - /********************************************/ /* i1_mc_wd width reqd for mcomp */ /* u1_dma_ht height reqd for mcomp */ @@ -197,7 +195,6 @@ WORD32 ih264d_form_mb_part_info_bp(pred_info_pkd_t *ps_pred_pkd, /* u1_dx fractional part of width */ /* u1_dx fractional part of height */ /********************************************/ - WORD32 u1_ofst_in_word; UWORD32 i1_mc_wd; WORD32 u1_dma_ht; @@ -276,15 +273,12 @@ WORD32 ih264d_form_mb_part_info_bp(pred_info_pkd_t *ps_pred_pkd, pu1_pred = ps_ref_frm->pu1_buf1 + i2_frm_y * u2_frm_wd + i2_frm_x; - - u1_ofst_in_word = 0; - u1_dma_wd = (i1_mc_wd + u1_ofst_in_word + 3) & 0xFC; + u1_dma_wd = (i1_mc_wd + 3) & 0xFC; /********************************************************************/ /* Calulating the horizontal and the vertical u4_ofst from top left */ /* edge of the recon buffer */ /********************************************************************/ - /* CHANGED CODE */ u2_rec_wd = MB_SIZE; { u2_rec_wd = ps_dec->u2_frm_wd_y; @@ -293,8 +287,6 @@ WORD32 ih264d_form_mb_part_info_bp(pred_info_pkd_t *ps_pred_pkd, + i2_rec_x; } - /* CHANGED CODE */ - /* filling the pred and dma structures for Y */ u2_frm_wd = ps_dec->u2_frm_wd_y; @@ -307,7 +299,6 @@ WORD32 ih264d_form_mb_part_info_bp(pred_info_pkd_t *ps_pred_pkd, ps_pred->i1_mb_partwidth = u1_part_wd << 2; ps_pred->i1_mb_partheight = u1_part_ht << 2; - ps_pred->u1_mc_addr_ofst = u1_ofst_in_word; ps_pred->u1_dydx = (u1_dy << 2) + u1_dx; ps_pred->pu1_y_ref = pu1_pred; @@ -374,9 +365,7 @@ WORD32 ih264d_form_mb_part_info_bp(pred_info_pkd_t *ps_pred_pkd, i2_frm_y = CLIP3(((1 - u1_dma_ht)), (u2_pic_ht - (1)), i2_frm_y); i4_ref_offset = i2_frm_y * u2_frm_wd + i2_frm_x * YUV420SP_FACTOR; - u1_ofst_in_word = 0; - u1_dma_wd = (i1_mc_wd + u1_ofst_in_word + 3) & 0xFC; - i4_ref_offset -= u1_ofst_in_word; + u1_dma_wd = (i1_mc_wd + 3) & 0xFC; /********************************************************************/ /* Calulating the horizontal and the vertical u4_ofst from top left */ @@ -409,7 +398,6 @@ WORD32 ih264d_form_mb_part_info_bp(pred_info_pkd_t *ps_pred_pkd, ps_pred->i1_mb_partwidth = u1_part_wd << 1; ps_pred->i1_mb_partheight = u1_part_ht << 1; - ps_pred->u1_mc_addr_ofst = u1_ofst_in_word; ps_pred->u1_dydx = (u1_dy << 3) + u1_dx; pu1_pred_u = ps_ref_frm->pu1_buf2 + i4_ref_offset; @@ -483,7 +471,7 @@ WORD32 ih264d_form_mb_part_info_mp(pred_info_pkd_t *ps_pred_pkd, /* u1_dx fractional part of width */ /* u1_dx fractional part of height */ /********************************************/ - UWORD8 u1_ofst_in_word, i1_mc_wd, u1_dma_ht, u1_dma_wd, u1_dx, u1_dy; + UWORD8 i1_mc_wd, u1_dma_ht, u1_dma_wd, u1_dx, u1_dy; pred_info_t * ps_pred ; dec_slice_params_t * const ps_cur_slice = ps_dec->ps_cur_slice; const UWORD8 u1_slice_type = ps_cur_slice->u1_slice_type; @@ -639,10 +627,7 @@ WORD32 ih264d_form_mb_part_info_mp(pred_info_pkd_t *ps_pred_pkd, (u2_pic_ht - (1 << u1_mb_fld)), i2_frm_y); pu1_pred = pu1_buf1 + i2_frm_y * u2_frm_wd + i2_frm_x; - u1_ofst_in_word = 0; - - u1_dma_wd = (i1_mc_wd + u1_ofst_in_word + 3) & 0xFC; - + u1_dma_wd = (i1_mc_wd + 3) & 0xFC; /********************************************************************/ /* Calulating the horizontal and the vertical u4_ofst from top left */ /* edge of the recon buffer */ @@ -675,7 +660,6 @@ WORD32 ih264d_form_mb_part_info_mp(pred_info_pkd_t *ps_pred_pkd, ps_pred->i1_mb_partwidth = u1_part_wd << 2; ps_pred->i1_mb_partheight = u1_part_ht << 2; - ps_pred->u1_mc_addr_ofst = u1_ofst_in_word; ps_pred->u1_dydx = (u1_dy << 2) + u1_dx; ps_pred->u1_is_bi_direct = u1_is_bi_dir; ps_pred->u1_pi1_wt_ofst_rec_v = (UWORD8 *)pu4_wt_offset; @@ -789,9 +773,7 @@ WORD32 ih264d_form_mb_part_info_mp(pred_info_pkd_t *ps_pred_pkd, (u2_pic_ht - (1 << u1_mb_fld)), i2_frm_y); i4_ref_offset = i2_frm_y * u2_frm_wd + i2_frm_x * YUV420SP_FACTOR; - u1_ofst_in_word = 0; - u1_dma_wd = (i1_mc_wd + u1_ofst_in_word + 3) & 0xFC; - i4_ref_offset -= u1_ofst_in_word; + u1_dma_wd = (i1_mc_wd + 3) & 0xFC; /********************************************************************/ /* Calulating the horizontal and the vertical u4_ofst from top left */ @@ -828,7 +810,6 @@ WORD32 ih264d_form_mb_part_info_mp(pred_info_pkd_t *ps_pred_pkd, ps_pred->i1_mb_partwidth = u1_part_wd << 1; ps_pred->i1_mb_partheight = u1_part_ht << 1; - ps_pred->u1_mc_addr_ofst = u1_ofst_in_word; ps_pred->u1_dydx = (u1_dy << 3) + u1_dx; ps_pred->u1_is_bi_direct = u1_is_bi_dir; ps_pred->u1_wght_pred_type = u1_wght_pred_type; @@ -976,7 +957,7 @@ void ih264d_motion_compensate_bp(dec_struct_t * ps_dec, dec_mb_info_t *ps_cur_mb UWORD8 *pu1_ref_u; u2_ref_wd_uv = ps_pred->u2_frm_wd; - pu1_ref_u = ps_pred->pu1_u_ref + ps_pred->u1_mc_addr_ofst; + pu1_ref_u = ps_pred->pu1_u_ref; u4_wd_uv = ps_pred->i1_mb_partwidth; u4_ht_uv = ps_pred->i1_mb_partheight; @@ -1030,8 +1011,8 @@ void ih264d_motion_compensate_mp(dec_struct_t * ps_dec, dec_mb_info_t *ps_cur_mb WORD16 *pi16_intm; UWORD32 u2_num_pels, u2_ref_wd_y, u2_ref_wd_uv, u2_dst_wd; UWORD32 u2_dest_wd_y, u2_dest_wd_uv; - UWORD32 u2_row_buf_wd_y = ps_dec->u2_mb_group_cols_y1; - UWORD32 u2_row_buf_wd_uv = ps_dec->u2_mb_group_cols_cr1; + UWORD32 u2_row_buf_wd_y = 0; + UWORD32 u2_row_buf_wd_uv = 0; UWORD32 u2_log2Y_crwd = ps_dec->ps_cur_slice->u2_log2Y_crwd; UWORD32 u4_wd_y, u4_ht_y, u1_dir, u4_wd_uv; UWORD32 u4_ht_uv; @@ -1052,9 +1033,11 @@ void ih264d_motion_compensate_mp(dec_struct_t * ps_dec, dec_mb_info_t *ps_cur_mb PROFILE_DISABLE_INTER_PRED() ps_pred = ps_dec->ps_pred ; - /* Initialize both ps_pred_y_forw an y_back to avoid static analysis warnigns */ + /* Initialize both ps_pred_y_forw, ps_pred_cr_forw and ps_pred_y_back + * to avoid static analysis warnings */ ps_pred_y_forw = ps_pred; ps_pred_y_back = ps_pred; + ps_pred_cr_forw = ps_pred; if(ps_dec->u1_separate_parse) u2_log2Y_crwd = ps_dec->ps_decode_cur_slice->u2_log2Y_crwd; @@ -1068,7 +1051,7 @@ void ih264d_motion_compensate_mp(dec_struct_t * ps_dec, dec_mb_info_t *ps_cur_mb pi16_intm = ps_dec->pi2_pred1; puc_pred0 = (UWORD8 *)pi16_intm; - puc_pred1 = puc_pred0 + MB_SIZE * MB_SIZE; + puc_pred1 = puc_pred0 + PRED_BUFFER_WIDTH * PRED_BUFFER_HEIGHT * sizeof(WORD16); for(u2_num_pels = 0; u2_num_pels < 256;) { @@ -1103,15 +1086,6 @@ void ih264d_motion_compensate_mp(dec_struct_t * ps_dec, dec_mb_info_t *ps_cur_mb u4_wd_y = ps_pred->i1_mb_partwidth; u4_ht_y = ps_pred->i1_mb_partheight; - if(ps_pred->i1_pod_ht) - { - pu1_pred = ps_pred->pu1_pred; - pu1_dma_dst = ps_pred->pu1_dma_dest_addr; - u1_dma_wd = ps_pred->u1_dma_wd_y; - u1_dma_ht = ps_pred->u1_dma_ht_y; - u2_frm_wd = ps_dec->u2_frm_wd_y << u1_mb_or_pic_fld; - } - uc_dx = ps_pred->u1_dydx; uc_dy = uc_dx >> 2; uc_dx &= 0x3; @@ -1136,12 +1110,14 @@ void ih264d_motion_compensate_mp(dec_struct_t * ps_dec, dec_mb_info_t *ps_cur_mb if(ps_pred->i1_pod_ht) { + pu1_pred = ps_pred->pu1_pred; + pu1_dma_dst = ps_pred->pu1_dma_dest_addr; + u1_dma_wd = ps_pred->u1_dma_wd_y; + u1_dma_ht = ps_pred->u1_dma_ht_y; + u2_frm_wd = ps_dec->u2_frm_wd_y << u1_mb_or_pic_fld; if(ps_pred->i1_pod_ht < 0) { - pu1_dma_dst = - pu1_dma_dst - - (ps_pred->i1_pod_ht - * ps_pred->u2_u1_ref_buf_wd); + pu1_dma_dst = pu1_dma_dst - (ps_pred->i1_pod_ht * ps_pred->u2_u1_ref_buf_wd); } ih264d_copy_2d1d(pu1_pred, pu1_dma_dst, u2_frm_wd, u1_dma_wd, u1_dma_ht); @@ -1246,9 +1222,7 @@ void ih264d_motion_compensate_mp(dec_struct_t * ps_dec, dec_mb_info_t *ps_cur_mb /* (Table 8-9 of standard) */ /******************************************************************/ if((ps_pred + 1)->i1_pod_ht) - { - pu1_pred = (ps_pred + 1)->pu1_pred_u; pu1_dma_dst = (ps_pred + 1)->pu1_dma_dest_addr; u1_dma_ht = (ps_pred + 1)->u1_dma_ht_uv; @@ -1272,7 +1246,7 @@ void ih264d_motion_compensate_mp(dec_struct_t * ps_dec, dec_mb_info_t *ps_cur_mb } ih264d_multiplex_ref_data(ps_dec, ps_pred, pu1_dest_y, - pu1_dest_u, pu1_dest_v, ps_cur_mb_info, + pu1_dest_u, ps_cur_mb_info, u2_dest_wd_y, u2_dest_wd_uv, u1_dir); ps_pred += 2; @@ -1417,14 +1391,13 @@ void ih264d_multiplex_ref_data(dec_struct_t * ps_dec, pred_info_t *ps_pred, UWORD8* pu1_dest_y, UWORD8* pu1_dest_u, - UWORD8* pu1_dest_v, dec_mb_info_t *ps_cur_mb_info, UWORD16 u2_dest_wd_y, UWORD16 u2_dest_wd_uv, UWORD8 u1_dir) { UWORD16 u2_mask = ps_cur_mb_info->u2_mask[u1_dir]; - UWORD8 *pu1_ref_y, *pu1_ref_u, *pu1_ref_v; + UWORD8 *pu1_ref_y, *pu1_ref_u; UWORD8 uc_cond, i, j, u1_dydx; UWORD16 u2_ref_wd_y, u2_ref_wd_uv; @@ -1432,28 +1405,26 @@ void ih264d_multiplex_ref_data(dec_struct_t * ps_dec, if(ps_pred->i1_pod_ht) { - pu1_ref_y = ps_pred->pu1_dma_dest_addr + ps_pred->u1_mc_addr_ofst; + pu1_ref_y = ps_pred->pu1_dma_dest_addr; u2_ref_wd_y = ps_pred->u2_u1_ref_buf_wd; } else { - pu1_ref_y = ps_pred->pu1_y_ref + ps_pred->u1_mc_addr_ofst; + pu1_ref_y = ps_pred->pu1_y_ref; u2_ref_wd_y = ps_pred->u2_frm_wd; } ps_pred++; if(ps_pred->i1_pod_ht) { - pu1_ref_u = ps_pred->pu1_dma_dest_addr + ps_pred->u1_mc_addr_ofst; - pu1_ref_v = pu1_ref_u + ps_pred->u2_u1_ref_buf_wd * ps_pred->i1_dma_ht; + pu1_ref_u = ps_pred->pu1_dma_dest_addr; u2_ref_wd_uv = ps_pred->u2_u1_ref_buf_wd * YUV420SP_FACTOR; } else { - pu1_ref_u = ps_pred->pu1_u_ref + ps_pred->u1_mc_addr_ofst; - pu1_ref_v = ps_pred->pu1_v_ref + ps_pred->u1_mc_addr_ofst; + pu1_ref_u = ps_pred->pu1_u_ref; u2_ref_wd_uv = ps_pred->u2_frm_wd; } @@ -1462,18 +1433,14 @@ void ih264d_multiplex_ref_data(dec_struct_t * ps_dec, { UWORD8 uc_dx, uc_dy; - UWORD8 *pu1_scratch_v, *pu1_scratch_u; + UWORD8 *pu1_scratch_u; uc_dx = u1_dydx & 0x3; uc_dy = u1_dydx >> 3; if(u1_dydx != 0) { pred_info_t * ps_prv_pred = ps_pred - 2; - pu1_scratch_u = ps_prv_pred->pu1_dma_dest_addr - + ps_prv_pred->u1_mc_addr_ofst; - pu1_scratch_v = pu1_scratch_u - + ps_prv_pred->u2_u1_ref_buf_wd - * ps_prv_pred->i1_dma_ht; + pu1_scratch_u = ps_prv_pred->pu1_dma_dest_addr; ps_dec->pf_inter_pred_chroma(pu1_ref_u, pu1_scratch_u, u2_ref_wd_uv, 16, uc_dx, uc_dy, 8, 8); @@ -1482,7 +1449,6 @@ void ih264d_multiplex_ref_data(dec_struct_t * ps_dec, /* buffer to be used below in ih264d_copy_multiplex_data functions */ /* CHANGED CODE */ pu1_ref_u = pu1_scratch_u; - pu1_ref_v = pu1_scratch_v; u2_ref_wd_uv = 8 * YUV420SP_FACTOR; } } @@ -1491,7 +1457,6 @@ void ih264d_multiplex_ref_data(dec_struct_t * ps_dec, { for(j = 0; j < 4; j++) { - uc_cond = u2_mask & 1; u2_mask >>= 1; if(uc_cond) @@ -1532,16 +1497,12 @@ void ih264d_multiplex_ref_data(dec_struct_t * ps_dec, pu1_ref_y += 4; pu1_dest_u += 2 * YUV420SP_FACTOR; pu1_ref_u += 2 * YUV420SP_FACTOR; - pu1_dest_v += 2; - pu1_ref_v += 2; } } pu1_ref_y += 4 * (u2_ref_wd_y - 4); pu1_ref_u += 2 * (u2_ref_wd_uv - 4 * YUV420SP_FACTOR); - pu1_ref_v += 2 * (u2_ref_wd_uv - 4); pu1_dest_y += 4 * (u2_dest_wd_y - 4); pu1_dest_u += 2 * (u2_dest_wd_uv - 4 * YUV420SP_FACTOR); - pu1_dest_v += 2 * (u2_dest_wd_uv - 4); } } } diff --git a/decoder/ih264d_inter_pred.h b/decoder/ih264d_inter_pred.h index 52d648a..dda3964 100644 --- a/decoder/ih264d_inter_pred.h +++ b/decoder/ih264d_inter_pred.h @@ -84,7 +84,6 @@ void ih264d_multiplex_ref_data(dec_struct_t * ps_dec, pred_info_t *ps_pred, UWORD8* pu1_dest_y, UWORD8* pu1_dest_u, - UWORD8* pu1_dest_v, dec_mb_info_t *ps_cur_mb_info, UWORD16 u2_dest_wd_y, UWORD16 u2_dest_wd_uv, diff --git a/decoder/ih264d_mb_utils.c b/decoder/ih264d_mb_utils.c index 4cbfca5..c38b266 100644 --- a/decoder/ih264d_mb_utils.c +++ b/decoder/ih264d_mb_utils.c @@ -82,8 +82,8 @@ UWORD32 ih264d_get_mb_info_cavlc_nonmbaff(dec_struct_t *ps_dec, dec_mb_info_t * ps_cur_mb_info, UWORD32 u4_mbskip_run) { - UWORD16 u2_mb_x; - UWORD16 u2_mb_y; + WORD32 mb_x; + WORD32 mb_y; UWORD8 u1_mb_ngbr_avail = 0; UWORD16 u2_frm_width_in_mb = ps_dec->u2_frm_wd_in_mbs; WORD16 i2_prev_slice_mbx = ps_dec->i2_prev_slice_mbx; @@ -93,42 +93,40 @@ UWORD32 ih264d_get_mb_info_cavlc_nonmbaff(dec_struct_t *ps_dec, /*--------------------------------------------------------------------*/ /* Calculate values of mb_x and mb_y */ /*--------------------------------------------------------------------*/ - u2_mb_x = ps_dec->u2_mbx; - u2_mb_y = ps_dec->u2_mby; + mb_x = (WORD16)ps_dec->u2_mbx; + mb_y = (WORD16)ps_dec->u2_mby; - if(ps_dec->u1_separate_parse) - { - ps_dec->u2_cur_mb_addr = u2_cur_mb_address; - } - u2_mb_x++; + ps_dec->u2_cur_mb_addr = u2_cur_mb_address; - if(u2_mb_x == u2_frm_width_in_mb) + mb_x++; + + if(mb_x == u2_frm_width_in_mb) { - u2_mb_x = 0; - u2_mb_y++; + mb_x = 0; + mb_y++; } - if(u2_mb_y > ps_dec->i2_prev_slice_mby) + if(mb_y > ps_dec->i2_prev_slice_mby) { /* if not in the immemdiate row of prev slice end then top will be available */ - if(u2_mb_y > (ps_dec->i2_prev_slice_mby + 1)) + if(mb_y > (ps_dec->i2_prev_slice_mby + 1)) i2_prev_slice_mbx = -1; - if(u2_mb_x > i2_prev_slice_mbx) + if(mb_x > i2_prev_slice_mbx) { u1_mb_ngbr_avail |= TOP_MB_AVAILABLE_MASK; u2_top_right_mask |= TOP_RIGHT_TOP_AVAILABLE; u2_top_left_mask |= TOP_LEFT_TOP_AVAILABLE; } - if((u2_mb_x > (i2_prev_slice_mbx - 1)) - && (u2_mb_x != (u2_frm_width_in_mb - 1))) + if((mb_x > (i2_prev_slice_mbx - 1)) + && (mb_x != (u2_frm_width_in_mb - 1))) { u1_mb_ngbr_avail |= TOP_RIGHT_MB_AVAILABLE_MASK; u2_top_right_mask |= TOP_RIGHT_TOPR_AVAILABLE; } - if(u2_mb_x > (i2_prev_slice_mbx + 1)) + if(mb_x > (i2_prev_slice_mbx + 1)) { u1_mb_ngbr_avail |= TOP_LEFT_MB_AVAILABLE_MASK; u2_top_left_mask |= TOP_LEFT_TOPL_AVAILABLE; @@ -139,7 +137,7 @@ UWORD32 ih264d_get_mb_info_cavlc_nonmbaff(dec_struct_t *ps_dec, } /* Same row */ - if(u2_mb_x > (i2_prev_slice_mbx + 1)) + if(mb_x > (i2_prev_slice_mbx + 1)) { u1_mb_ngbr_avail |= LEFT_MB_AVAILABLE_MASK; u2_top_left_mask |= TOP_LEFT_LEFT_AVAILABLE; @@ -152,19 +150,19 @@ UWORD32 ih264d_get_mb_info_cavlc_nonmbaff(dec_struct_t *ps_dec, /* copy the parameters of topleft Mb */ ps_cur_mb_info->u1_topleft_mbtype = ps_dec->u1_topleft_mbtype; /* Neighbour pointer assignments*/ - ps_cur_mb_info->ps_curmb = ps_cur_mb_row + u2_mb_x; - ps_cur_mb_info->ps_left_mb = ps_cur_mb_row + u2_mb_x - 1; - ps_cur_mb_info->ps_top_mb = ps_top_mb_row + u2_mb_x; - ps_cur_mb_info->ps_top_right_mb = ps_top_mb_row + u2_mb_x + 1; + ps_cur_mb_info->ps_curmb = ps_cur_mb_row + mb_x; + ps_cur_mb_info->ps_left_mb = ps_cur_mb_row + mb_x - 1; + ps_cur_mb_info->ps_top_mb = ps_top_mb_row + mb_x; + ps_cur_mb_info->ps_top_right_mb = ps_top_mb_row + mb_x + 1; /* Update the parameters of topleftmb*/ ps_dec->u1_topleft_mbtype = ps_cur_mb_info->ps_top_mb->u1_mb_type; } - ps_dec->u2_mby = u2_mb_y; - ps_dec->u2_mbx = u2_mb_x; - ps_cur_mb_info->u2_mbx = u2_mb_x; - ps_cur_mb_info->u2_mby = u2_mb_y; + ps_dec->u2_mby = mb_y; + ps_dec->u2_mbx = mb_x; + ps_cur_mb_info->u2_mbx = mb_x; + ps_cur_mb_info->u2_mby = mb_y; ps_cur_mb_info->u1_topmb = 1; ps_dec->i4_submb_ofst += SUB_BLK_SIZE; ps_dec->u1_mb_ngbr_availablity = u1_mb_ngbr_avail; @@ -231,10 +229,7 @@ UWORD32 ih264d_get_mb_info_cavlc_mbaff(dec_struct_t *ps_dec, u2_mb_x = ps_dec->u2_mbx; u2_mb_y = ps_dec->u2_mby; - if(ps_dec->u1_separate_parse) - { - ps_dec->u2_cur_mb_addr = u2_cur_mb_address; - } + ps_dec->u2_cur_mb_addr = u2_cur_mb_address; if(u1_top_mb) @@ -369,8 +364,8 @@ UWORD32 ih264d_get_mb_info_cabac_nonmbaff(dec_struct_t *ps_dec, dec_mb_info_t * ps_cur_mb_info, UWORD32 u4_mbskip) { - WORD32 u2_mb_x; - WORD32 u2_mb_y; + WORD32 mb_x; + WORD32 mb_y; UWORD32 u1_mb_ngbr_avail = 0; UWORD32 u2_frm_width_in_mb = ps_dec->u2_frm_wd_in_mbs; UWORD32 u1_top_mb = 1; @@ -382,52 +377,49 @@ UWORD32 ih264d_get_mb_info_cabac_nonmbaff(dec_struct_t *ps_dec, /*--------------------------------------------------------------------*/ /* Calculate values of mb_x and mb_y */ /*--------------------------------------------------------------------*/ - u2_mb_x = (WORD16)ps_dec->u2_mbx; - u2_mb_y = ps_dec->u2_mby; + mb_x = (WORD16)ps_dec->u2_mbx; + mb_y = (WORD16)ps_dec->u2_mby; - if(ps_dec->u1_separate_parse) - { - ps_dec->u2_cur_mb_addr = u2_cur_mb_address; - } + ps_dec->u2_cur_mb_addr = u2_cur_mb_address; - u2_mb_x++; - if((UWORD32)u2_mb_x == u2_frm_width_in_mb) + mb_x++; + if((UWORD32)mb_x == u2_frm_width_in_mb) { - u2_mb_x = 0; - u2_mb_y++; + mb_x = 0; + mb_y++; } /*********************************************************************/ /* Cabac Context Initialisations */ /*********************************************************************/ - ps_dec->ps_curr_ctxt_mb_info = p_ctx_inc_mb_map + u2_mb_x; + ps_dec->ps_curr_ctxt_mb_info = p_ctx_inc_mb_map + mb_x; ps_dec->p_left_ctxt_mb_info = p_ctx_inc_mb_map - 1; ps_dec->p_top_ctxt_mb_info = p_ctx_inc_mb_map - 1; /********************************************************************/ /* neighbour availablility */ /********************************************************************/ - if(u2_mb_y > ps_dec->i2_prev_slice_mby) + if(mb_y > ps_dec->i2_prev_slice_mby) { /* if not in the immemdiate row of prev slice end then top will be available */ - if(u2_mb_y > (ps_dec->i2_prev_slice_mby + 1)) + if(mb_y > (ps_dec->i2_prev_slice_mby + 1)) i2_prev_slice_mbx = -1; - if(u2_mb_x > i2_prev_slice_mbx) + if(mb_x > i2_prev_slice_mbx) { u1_mb_ngbr_avail |= TOP_MB_AVAILABLE_MASK; u2_top_right_mask |= TOP_RIGHT_TOP_AVAILABLE; u2_top_left_mask |= TOP_LEFT_TOP_AVAILABLE; ps_dec->p_top_ctxt_mb_info = ps_dec->ps_curr_ctxt_mb_info; } - if((u2_mb_x > (i2_prev_slice_mbx - 1)) - && ((UWORD32)u2_mb_x != (u2_frm_width_in_mb - 1))) + if((mb_x > (i2_prev_slice_mbx - 1)) + && ((UWORD32)mb_x != (u2_frm_width_in_mb - 1))) { u1_mb_ngbr_avail |= TOP_RIGHT_MB_AVAILABLE_MASK; u2_top_right_mask |= TOP_RIGHT_TOPR_AVAILABLE; } - if(u2_mb_x > (i2_prev_slice_mbx + 1)) + if(mb_x > (i2_prev_slice_mbx + 1)) { u1_mb_ngbr_avail |= TOP_LEFT_MB_AVAILABLE_MASK; u2_top_left_mask |= TOP_LEFT_TOPL_AVAILABLE; @@ -436,7 +428,7 @@ UWORD32 ih264d_get_mb_info_cabac_nonmbaff(dec_struct_t *ps_dec, i2_prev_slice_mbx = -1; } /* Same row */ - if(u2_mb_x > (i2_prev_slice_mbx + 1)) + if(mb_x > (i2_prev_slice_mbx + 1)) { u1_mb_ngbr_avail |= LEFT_MB_AVAILABLE_MASK; u2_top_left_mask |= TOP_LEFT_LEFT_AVAILABLE; @@ -448,19 +440,19 @@ UWORD32 ih264d_get_mb_info_cabac_nonmbaff(dec_struct_t *ps_dec, /* copy the parameters of topleft Mb */ ps_cur_mb_info->u1_topleft_mbtype = ps_dec->u1_topleft_mbtype; /* Neighbour pointer assignments*/ - ps_cur_mb_info->ps_curmb = ps_cur_mb_row + u2_mb_x; - ps_cur_mb_info->ps_left_mb = ps_cur_mb_row + u2_mb_x - 1; - ps_cur_mb_info->ps_top_mb = ps_top_mb_row + u2_mb_x; - ps_cur_mb_info->ps_top_right_mb = ps_top_mb_row + u2_mb_x + 1; + ps_cur_mb_info->ps_curmb = ps_cur_mb_row + mb_x; + ps_cur_mb_info->ps_left_mb = ps_cur_mb_row + mb_x - 1; + ps_cur_mb_info->ps_top_mb = ps_top_mb_row + mb_x; + ps_cur_mb_info->ps_top_right_mb = ps_top_mb_row + mb_x + 1; /* Update the parameters of topleftmb*/ ps_dec->u1_topleft_mbtype = ps_cur_mb_info->ps_top_mb->u1_mb_type; } - ps_dec->u2_mby = u2_mb_y; - ps_dec->u2_mbx = u2_mb_x; - ps_cur_mb_info->u2_mbx = u2_mb_x; - ps_cur_mb_info->u2_mby = u2_mb_y; + ps_dec->u2_mby = mb_y; + ps_dec->u2_mbx = mb_x; + ps_cur_mb_info->u2_mbx = mb_x; + ps_cur_mb_info->u2_mby = mb_y; ps_cur_mb_info->u1_topmb = u1_top_mb; ps_dec->i4_submb_ofst += SUB_BLK_SIZE; ps_dec->u1_mb_ngbr_availablity = u1_mb_ngbr_avail; @@ -554,8 +546,8 @@ UWORD32 ih264d_get_mb_info_cabac_mbaff(dec_struct_t *ps_dec, dec_mb_info_t * ps_cur_mb_info, UWORD32 u4_mbskip) { - UWORD16 u2_mb_x; - UWORD16 u2_mb_y; + WORD32 mb_x; + WORD32 mb_y; UWORD8 u1_mb_ngbr_avail = 0; UWORD16 u2_frm_width_in_mb = ps_dec->u2_frm_wd_in_mbs; ctxt_inc_mb_info_t * const p_ctx_inc_mb_map = ps_dec->p_ctxt_inc_mb_map; @@ -573,13 +565,10 @@ UWORD32 ih264d_get_mb_info_cabac_mbaff(dec_struct_t *ps_dec, /*--------------------------------------------------------------------*/ /* Calculate values of mb_x and mb_y */ /*--------------------------------------------------------------------*/ - u2_mb_x = ps_dec->u2_mbx; - u2_mb_y = ps_dec->u2_mby; + mb_x = (WORD16)ps_dec->u2_mbx; + mb_y = (WORD16)ps_dec->u2_mby; - if(ps_dec->u1_separate_parse) - { - ps_dec->u2_cur_mb_addr = u2_cur_mb_address; - } + ps_dec->u2_cur_mb_addr = u2_cur_mb_address; ps_top_ctxt = ps_left_ctxt = p_ctx_inc_mb_map - 1; @@ -588,20 +577,20 @@ UWORD32 ih264d_get_mb_info_cabac_mbaff(dec_struct_t *ps_dec, ctxt_inc_mb_info_t *ps_left_mb_of_bot = ps_left_ctxt; ctxt_inc_mb_info_t *ps_top_mb_of_bot = ps_top_ctxt; - u2_mb_x++; + mb_x++; - if(u2_mb_x == u2_frm_width_in_mb) + if(mb_x == u2_frm_width_in_mb) { - u2_mb_x = 0; - u2_mb_y += 2; + mb_x = 0; + mb_y += 2; } - ps_curr_ctxt = p_ctx_inc_mb_map + (u2_mb_x << 1); - if(u2_mb_y > ps_dec->i2_prev_slice_mby) + ps_curr_ctxt = p_ctx_inc_mb_map + (mb_x << 1); + if(mb_y > ps_dec->i2_prev_slice_mby) { UWORD8 u1_cur_mb_fld_flag_known = 0; /* Next row */ - if(u2_mb_x > 0) + if(mb_x > 0) { /***********************************************************************/ /* Left Mb is avialable */ @@ -609,16 +598,16 @@ UWORD32 ih264d_get_mb_info_cabac_mbaff(dec_struct_t *ps_dec, u1_mb_ngbr_avail |= LEFT_MB_AVAILABLE_MASK; ps_left_ctxt = ps_curr_ctxt - 2; ps_left_mb_of_bot = ps_curr_ctxt - 1; - u1_cur_mb_field = u4_left_mb_pair_fld = ps_cur_mb_row[(u2_mb_x + u1_cur_mb_field = u4_left_mb_pair_fld = ps_cur_mb_row[(mb_x << 1) - 1].u1_mb_fld; u1_cur_mb_fld_flag_known = 1; u2_top_left_mask |= TOP_LEFT_LEFT_AVAILABLE; } /* if not in the immemdiate row of prev slice end then top will be available */ - if(u2_mb_y > (ps_dec->i2_prev_slice_mby + 2)) + if(mb_y > (ps_dec->i2_prev_slice_mby + 2)) i2_prev_slice_mbx = -1; - if(u2_mb_x > i2_prev_slice_mbx) + if(mb_x > i2_prev_slice_mbx) { /*********************************************************************/ /* Top Mb is avialable */ @@ -629,7 +618,7 @@ UWORD32 ih264d_get_mb_info_cabac_mbaff(dec_struct_t *ps_dec, /* point to MbAddrB + 1 */ ps_top_ctxt = ps_curr_ctxt + 1; - u4_top_mb_pair_fld = ps_top_mb_row[(u2_mb_x << 1)].u1_mb_fld; + u4_top_mb_pair_fld = ps_top_mb_row[(mb_x << 1)].u1_mb_fld; u1_cur_mb_field = u1_cur_mb_fld_flag_known ? @@ -641,14 +630,14 @@ UWORD32 ih264d_get_mb_info_cabac_mbaff(dec_struct_t *ps_dec, ps_top_ctxt -= (u1_cur_mb_field && u4_top_mb_pair_fld); } - if((u2_mb_x > (i2_prev_slice_mbx - 1)) - && (u2_mb_x != (u2_frm_width_in_mb - 1))) + if((mb_x > (i2_prev_slice_mbx - 1)) + && (mb_x != (u2_frm_width_in_mb - 1))) { u1_mb_ngbr_avail |= TOP_RIGHT_MB_AVAILABLE_MASK; u2_top_right_mask |= TOP_RIGHT_TOPR_AVAILABLE; } - if(u2_mb_x > (i2_prev_slice_mbx + 1)) + if(mb_x > (i2_prev_slice_mbx + 1)) { u1_mb_ngbr_avail |= TOP_LEFT_MB_AVAILABLE_MASK; u2_top_left_mask |= TOP_LEFT_TOPL_AVAILABLE; @@ -657,14 +646,14 @@ UWORD32 ih264d_get_mb_info_cabac_mbaff(dec_struct_t *ps_dec, else { /* Same row */ - if(u2_mb_x > (i2_prev_slice_mbx + 1)) + if(mb_x > (i2_prev_slice_mbx + 1)) { /***************************************************************/ /* Left Mb is avialable */ /***************************************************************/ u1_mb_ngbr_avail |= LEFT_MB_AVAILABLE_MASK; - u1_cur_mb_field = u4_left_mb_pair_fld = ps_cur_mb_row[(u2_mb_x + u1_cur_mb_field = u4_left_mb_pair_fld = ps_cur_mb_row[(mb_x << 1) - 1].u1_mb_fld; ps_left_ctxt = ps_curr_ctxt - 2; ps_left_mb_of_bot = ps_curr_ctxt - 1; @@ -730,8 +719,8 @@ UWORD32 ih264d_get_mb_info_cabac_mbaff(dec_struct_t *ps_dec, ps_dec->u1_cur_mb_fld_dec_flag = u1_cur_mb_field; ps_dec->u2_top_left_mask = u2_top_left_mask; ps_dec->u2_top_right_mask = u2_top_right_mask; - ps_dec->u2_mby = u2_mb_y; - ps_dec->u2_mbx = u2_mb_x; + ps_dec->u2_mby = mb_y; + ps_dec->u2_mbx = mb_x; } else { @@ -739,11 +728,11 @@ UWORD32 ih264d_get_mb_info_cabac_mbaff(dec_struct_t *ps_dec, u1_mb_ngbr_avail = ps_dec->u1_mb_ngbr_availablity; u2_top_left_mask = ps_dec->u2_top_left_mask; u2_top_right_mask = ps_dec->u2_top_right_mask; - ps_curr_ctxt = p_ctx_inc_mb_map + (u2_mb_x << 1) + 1; + ps_curr_ctxt = p_ctx_inc_mb_map + (mb_x << 1) + 1; if(u1_mb_ngbr_avail & LEFT_MB_AVAILABLE_MASK) { - u4_left_mb_pair_fld = ps_cur_mb_row[(u2_mb_x << 1) - 1].u1_mb_fld; + u4_left_mb_pair_fld = ps_cur_mb_row[(mb_x << 1) - 1].u1_mb_fld; /* point to A if top else A+1 */ ps_left_ctxt = ps_curr_ctxt - 2 @@ -805,8 +794,8 @@ UWORD32 ih264d_get_mb_info_cabac_mbaff(dec_struct_t *ps_dec, } } - ps_cur_mb_info->u2_mbx = u2_mb_x; - ps_cur_mb_info->u2_mby = u2_mb_y; + ps_cur_mb_info->u2_mbx = mb_x; + ps_cur_mb_info->u2_mby = mb_y; ps_cur_mb_info->u1_topmb = u1_top_mb; ps_dec->i4_submb_ofst += SUB_BLK_SIZE; ps_dec->u1_mb_ngbr_availablity = u1_mb_ngbr_avail; @@ -1399,7 +1388,7 @@ void ih264d_get_mbaff_neighbours(dec_struct_t * ps_dec, ************************************************************************** */ void ih264d_transfer_mb_group_data(dec_struct_t * ps_dec, - const WORD8 c_numMbs, + const UWORD8 u1_num_mbs, const UWORD8 u1_end_of_row, /* Cur n-Mb End of Row Flag */ const UWORD8 u1_end_of_row_next /* Next n-Mb End of Row Flag */ ) @@ -1453,12 +1442,12 @@ void ih264d_transfer_mb_group_data(dec_struct_t * ps_dec, /* * The Slice boundary is also a valid condition to transfer. So recalculate * the Left increment, in case the number of MBs is lesser than the - * N MB value. c_numMbs will be equal to N of N MB if the entire N Mb is + * N MB value. u1_num_mbs will be equal to N of N MB if the entire N Mb is * decoded. */ - ps_dec->s_tran_addrecon.u2_mv_left_inc = ((c_numMbs >> u1_mbaff) - 1) + ps_dec->s_tran_addrecon.u2_mv_left_inc = ((u1_num_mbs >> u1_mbaff) - 1) << (4 + u1_mbaff); - ps_dec->s_tran_addrecon.u2_mv_top_left_inc = (c_numMbs << 2) - 1 + ps_dec->s_tran_addrecon.u2_mv_top_left_inc = (u1_num_mbs << 2) - 1 - (u1_mbaff << 2); if(ps_dec->u1_separate_parse == 0) @@ -1467,29 +1456,18 @@ void ih264d_transfer_mb_group_data(dec_struct_t * ps_dec, ps_dec->ps_mv_left = ps_dec->ps_mv_cur + ps_dec->s_tran_addrecon.u2_mv_left_inc; - ps_dec->ps_mv_cur += (c_numMbs << 4); + ps_dec->ps_mv_cur += (u1_num_mbs << 4); } /* Increment deblock parameters pointer in external memory */ if(ps_dec->u1_separate_parse == 1) { - ps_dec->ps_deblk_mbn_dec_thrd += c_numMbs; + ps_dec->ps_deblk_mbn_dec_thrd += u1_num_mbs; } else { - if(ps_dec->u4_mb_level_deblk == 0) - ps_dec->ps_deblk_mbn += c_numMbs; - else - { - deblk_mb_t *temp; - - /*swap previous and curr pointers*/ - ps_dec->ps_deblk_mbn = ps_dec->ps_deblk_mbn_prev; - temp = ps_dec->ps_deblk_mbn_curr; - ps_dec->ps_deblk_mbn_curr = ps_dec->ps_deblk_mbn_prev; - ps_dec->ps_deblk_mbn_prev = temp; - } + ps_dec->ps_deblk_mbn += u1_num_mbs; } } diff --git a/decoder/ih264d_mb_utils.h b/decoder/ih264d_mb_utils.h index 6e359f5..158319a 100644 --- a/decoder/ih264d_mb_utils.h +++ b/decoder/ih264d_mb_utils.h @@ -283,7 +283,7 @@ void ih264d_get_mbaff_neighbours(dec_struct_t * ps_dec, void ih264d_update_mbaff_left_nnz(dec_struct_t * ps_dec, dec_mb_info_t * ps_cur_mb_info); void ih264d_transfer_mb_group_data(dec_struct_t * ps_dec, - const WORD8 c_numMbs, + const UWORD8 u1_num_mbs, const UWORD8 u1_end_of_row, /* Cur n-Mb End of Row Flag */ const UWORD8 u1_end_of_row_next /* Next n-Mb End of Row Flag */ ); diff --git a/decoder/ih264d_parse_bslice.c b/decoder/ih264d_parse_bslice.c index 89cf5ed..6707039 100644 --- a/decoder/ih264d_parse_bslice.c +++ b/decoder/ih264d_parse_bslice.c @@ -1011,7 +1011,6 @@ WORD32 ih264d_mv_pred_ref_tfr_nby2_bmb(dec_struct_t * ps_dec, /* Loop on Partitions */ /* direct mode is reflected as a single partition */ /**************************************************/ - ps_dec->u4_dma_buf_idx = 0; for(j = 0; j < u1_num_part; j++, ps_part++) { u1_sub_mb_num = ps_part->u1_sub_mb_num; @@ -1654,11 +1653,7 @@ WORD32 ih264d_parse_bslice(dec_struct_t * ps_dec, UWORD16 u2_first_mb_in_slice) ps_slice->i1_slice_beta_offset = 0; } - - /*set slice header cone to 2 ,to indicate correct header*/ - DATA_SYNC(); - - ps_dec->ps_parse_cur_slice->slice_header_done = 2; + ps_dec->u1_slice_header_done = 2; if(ps_pps->u1_entropy_coding_mode) { diff --git a/decoder/ih264d_parse_headers.c b/decoder/ih264d_parse_headers.c index de5bcb9..f7ae612 100644 --- a/decoder/ih264d_parse_headers.c +++ b/decoder/ih264d_parse_headers.c @@ -56,6 +56,7 @@ #include "ih264d_quant_scaling.h" #include "ih264d_defs.h" #include "ivd.h" +#include "ih264d.h" /*****************************************************************************/ /* */ @@ -332,12 +333,7 @@ WORD32 ih264d_parse_pps(dec_struct_t * ps_dec, dec_bit_stream_t * ps_bitstrm) if(ps_pps->i4_pic_scaling_matrix_present_flag) { /* read the scaling matrices */ - for(i4_i = 0; - i4_i - < (6 - + (ps_pps->i4_transform_8x8_mode_flag - << 1)); - i4_i++) + for(i4_i = 0; i4_i < (6 + (ps_pps->i4_transform_8x8_mode_flag << 1)); i4_i++) { ps_pps->u1_pic_scaling_list_present_flag[i4_i] = ih264d_get_bit_h264(ps_bitstrm); @@ -548,22 +544,12 @@ WORD32 ih264d_parse_sps(dec_struct_t *ps_dec, dec_bit_stream_t *ps_bitstrm) u1_level_idc = ih264d_get_bits_h264(ps_bitstrm, 8); - /* + if(ps_dec->u4_level_at_init < u1_level_idc) { - UWORD32 i4_error_code; - H264_DEC_DEBUG_PRINT("\nstream has the level more than the one which is set during init\n"); - i4_error_code = ERROR_ACTUAL_LEVEL_GREATER_THAN_INIT ; - return i4_error_code; - * Here instead of flagging the error, we could have ignored this error - * and went ahead for further decoding, but we are not doing - * so because, at least one header should be healthy to do the - * decoding, and moreover, it may help to avoid the crashes in the erroneous - * streams. - * - + return IH264D_UNSUPPORTED_LEVEL; } - */ + COPYTHECONTEXT("SPS: u4_level_idc",u1_level_idc); u4_temp = ih264d_uev(pu4_bitstrm_ofst, pu4_bitstrm_buf); @@ -962,7 +948,6 @@ WORD32 ih264d_parse_sps(dec_struct_t *ps_dec, dec_bit_stream_t *ps_bitstrm) ps_dec->u2_pic_ht = u2_pic_ht; /* Determining the Width and Height of Frame from that of Picture */ - ps_dec->u2_frm_wd_y = u2_frm_wd_y; ps_dec->u2_frm_ht_y = u2_frm_ht_y; diff --git a/decoder/ih264d_parse_islice.c b/decoder/ih264d_parse_islice.c index 7851a0b..534c785 100644 --- a/decoder/ih264d_parse_islice.c +++ b/decoder/ih264d_parse_islice.c @@ -133,9 +133,9 @@ WORD32 ih264d_parse_imb_cavlc(dec_struct_t * ps_dec, if (!ps_cur_mb_info->u1_tran_form8x8) { ih264d_read_intra_pred_modes(ps_dec, - ((UWORD8 *)ps_dec->pv_parse_tu_coeff_data), - ((UWORD8 *)ps_dec->pv_parse_tu_coeff_data+16), - ps_cur_mb_info->u1_tran_form8x8); + ((UWORD8 *)ps_dec->pv_parse_tu_coeff_data), + ((UWORD8 *)ps_dec->pv_parse_tu_coeff_data+16), + ps_cur_mb_info->u1_tran_form8x8); UWORD8 *pu1_temp = (UWORD8 *)ps_dec->pv_parse_tu_coeff_data; pu1_temp += 32; ps_dec->pv_parse_tu_coeff_data = (void *)pu1_temp; @@ -143,9 +143,9 @@ WORD32 ih264d_parse_imb_cavlc(dec_struct_t * ps_dec, else { ih264d_read_intra_pred_modes(ps_dec, - ((UWORD8 *)ps_dec->pv_parse_tu_coeff_data), - ((UWORD8 *)ps_dec->pv_parse_tu_coeff_data+4), - ps_cur_mb_info->u1_tran_form8x8); + ((UWORD8 *)ps_dec->pv_parse_tu_coeff_data), + ((UWORD8 *)ps_dec->pv_parse_tu_coeff_data+4), + ps_cur_mb_info->u1_tran_form8x8); UWORD8 *pu1_temp = (UWORD8 *)ps_dec->pv_parse_tu_coeff_data; pu1_temp += 8; ps_dec->pv_parse_tu_coeff_data = (void *)pu1_temp; @@ -763,12 +763,10 @@ WORD32 ih264d_parse_islice_data_cavlc(dec_struct_t * ps_dec, WORD16 i2_cur_mb_addr; UWORD8 u1_mbaff; UWORD8 u1_num_mbs_next, u1_end_of_row, u1_tfr_n_mb; - WORD32 ret; + WORD32 ret = OK; ps_dec->u1_qp = ps_slice->u1_slice_qp; - ret = ih264d_update_qp(ps_dec, 0); - if(ret != OK) - return ret; + ih264d_update_qp(ps_dec, 0); u1_mbaff = ps_slice->u1_mbaff_frame_flag; /* initializations */ @@ -782,12 +780,16 @@ WORD32 ih264d_parse_islice_data_cavlc(dec_struct_t * ps_dec, { UWORD8 u1_mb_type; + ps_dec->pv_prev_mb_parse_tu_coeff_data = ps_dec->pv_parse_tu_coeff_data; + if(i2_cur_mb_addr > ps_dec->ps_cur_sps->u2_max_mb_addr) { + ret = ERROR_MB_ADDRESS_T; break; } ps_cur_mb_info = ps_dec->ps_nmb_info + u1_num_mbs; + ps_dec->u4_num_mbs_cur_nmb = u1_num_mbs; ps_dec->u4_num_pmbair = (u1_num_mbs >> u1_mbaff); ps_cur_mb_info->u1_end_of_slice = 0; @@ -919,11 +921,9 @@ WORD32 ih264d_parse_islice_data_cavlc(dec_struct_t * ps_dec, } else { - ret = ih264d_decode_recon_tfr_nmb(ps_dec, u1_mb_idx, u1_num_mbs, - u1_num_mbs_next, u1_tfr_n_mb, - u1_end_of_row); - if(ret != OK) - return ret; + ih264d_decode_recon_tfr_nmb(ps_dec, u1_mb_idx, u1_num_mbs, + u1_num_mbs_next, u1_tfr_n_mb, + u1_end_of_row); } if(u1_tfr_n_mb) @@ -935,13 +935,12 @@ WORD32 ih264d_parse_islice_data_cavlc(dec_struct_t * ps_dec, } while(uc_more_data_flag); - if(ps_dec->u1_separate_parse) - { - ps_dec->ps_parse_cur_slice->end_of_slice = 1; - ps_dec->ps_cur_slice->u4_mbs_in_slice = i2_cur_mb_addr + ps_dec->u4_num_mbs_cur_nmb = 0; + ps_dec->ps_cur_slice->u4_mbs_in_slice = i2_cur_mb_addr + - (u2_first_mb_in_slice << u1_mbaff); - } - return OK; + + return ret; } /*****************************************************************************/ @@ -982,12 +981,10 @@ WORD32 ih264d_parse_islice_data_cabac(dec_struct_t * ps_dec, WORD16 i2_cur_mb_addr; UWORD8 u1_mbaff; UWORD8 u1_num_mbs_next, u1_end_of_row, u1_tfr_n_mb; - WORD32 ret; + WORD32 ret = OK; ps_dec->u1_qp = ps_slice->u1_slice_qp; - ret = ih264d_update_qp(ps_dec, 0); - if(ret != 0) - return ret; + ih264d_update_qp(ps_dec, 0); u1_mbaff = ps_slice->u1_mbaff_frame_flag; if(ps_bitstrm->u4_ofst & 0x07) @@ -1011,10 +1008,20 @@ WORD32 ih264d_parse_islice_data_cabac(dec_struct_t * ps_dec, do { UWORD16 u2_mbx; + + ps_dec->pv_prev_mb_parse_tu_coeff_data = ps_dec->pv_parse_tu_coeff_data; + + if(i2_cur_mb_addr > ps_dec->ps_cur_sps->u2_max_mb_addr) + { + ret = ERROR_MB_ADDRESS_T; + break; + } + { UWORD8 u1_mb_type; ps_cur_mb_info = ps_dec->ps_nmb_info + u1_num_mbs; + ps_dec->u4_num_mbs_cur_nmb = u1_num_mbs; ps_dec->u4_num_pmbair = (u1_num_mbs >> u1_mbaff); ps_cur_mb_info->u1_end_of_slice = 0; @@ -1076,8 +1083,6 @@ WORD32 ih264d_parse_islice_data_cabac(dec_struct_t * ps_dec, ih264d_update_mbaff_left_nnz(ps_dec, ps_cur_mb_info); } /* Next macroblock information */ - if(i2_cur_mb_addr > ps_dec->ps_cur_sps->u2_max_mb_addr) - return ERROR_MB_ADDRESS_T; i2_cur_mb_addr++; if(ps_cur_mb_info->u1_topmb && u1_mbaff) @@ -1135,11 +1140,9 @@ WORD32 ih264d_parse_islice_data_cabac(dec_struct_t * ps_dec, } else { - ret = ih264d_decode_recon_tfr_nmb(ps_dec, u1_mb_idx, u1_num_mbs, - u1_num_mbs_next, u1_tfr_n_mb, - u1_end_of_row); - if(ret != OK) - return ret; + ih264d_decode_recon_tfr_nmb(ps_dec, u1_mb_idx, u1_num_mbs, + u1_num_mbs_next, u1_tfr_n_mb, + u1_end_of_row); } if(u1_tfr_n_mb) @@ -1151,13 +1154,12 @@ WORD32 ih264d_parse_islice_data_cabac(dec_struct_t * ps_dec, } while(uc_more_data_flag); - if(ps_dec->u1_separate_parse) - { - ps_dec->ps_parse_cur_slice->end_of_slice = 1; - ps_dec->ps_cur_slice->u4_mbs_in_slice = i2_cur_mb_addr + ps_dec->u4_num_mbs_cur_nmb = 0; + ps_dec->ps_cur_slice->u4_mbs_in_slice = i2_cur_mb_addr + - (u2_first_mb_in_slice << u1_mbaff); - } - return OK; + + return ret; } /*****************************************************************************/ @@ -1439,8 +1441,7 @@ WORD32 ih264d_parse_islice(dec_struct_t *ps_dec, /*set slice header cone to 2 ,to indicate correct header*/ - DATA_SYNC(); - ps_dec->ps_parse_cur_slice->slice_header_done = 2; + ps_dec->u1_slice_header_done = 2; if(ps_pps->u1_entropy_coding_mode) { @@ -1457,9 +1458,6 @@ WORD32 ih264d_parse_islice(dec_struct_t *ps_dec, if(ret != OK) return ret; SWITCHONTRACE; SWITCHOFFTRACECABAC; - if(ps_dec->ps_parse_cur_slice->u2_error_flag == 1) - return 0; - } else { diff --git a/decoder/ih264d_parse_pslice.c b/decoder/ih264d_parse_pslice.c index 67d1405..02110eb 100644 --- a/decoder/ih264d_parse_pslice.c +++ b/decoder/ih264d_parse_pslice.c @@ -57,6 +57,7 @@ #include "ih264d_format_conv.h" #include "ih264d_quant_scaling.h" #include "ih264d_thread_parse_decode.h" +#include "ih264d_thread_compute_bs.h" #include "ih264d_process_bslice.h" #include "ithread.h" #include "ih264d_utils.h" @@ -820,7 +821,7 @@ WORD32 ih264d_parse_inter_slice_data_cabac(dec_struct_t * ps_dec, UWORD32 u1_deblk_mb_type; UWORD32 u1_mb_threshold; dec_bit_stream_t * const ps_bitstrm = ps_dec->ps_bitstrm; - WORD32 ret; + WORD32 ret = OK; /******************************************************/ /* Initialisations specific to B or P slice */ @@ -845,9 +846,7 @@ WORD32 ih264d_parse_inter_slice_data_cabac(dec_struct_t * ps_dec, /******************************************************/ i2_cur_mb_addr = u2_first_mb_in_slice; ps_dec->u1_qp = ps_slice->u1_slice_qp; - ret = ih264d_update_qp(ps_dec, 0); - if(ret != OK) - return ret; + ih264d_update_qp(ps_dec, 0); u1_mb_idx = ps_dec->u1_mb_idx; u1_num_mbs = u1_mb_idx; u1_num_mbsNby2 = 0; @@ -873,8 +872,16 @@ WORD32 ih264d_parse_inter_slice_data_cabac(dec_struct_t * ps_dec, UWORD8 u1_mb_type; UWORD32 u4_mb_skip; + ps_dec->pv_prev_mb_parse_tu_coeff_data = ps_dec->pv_parse_tu_coeff_data; + + if(i2_cur_mb_addr > ps_dec->ps_cur_sps->u2_max_mb_addr) + { + ret = ERROR_MB_ADDRESS_T; + break; + } ps_cur_mb_info = ps_dec->ps_nmb_info + u1_num_mbs; + ps_dec->u4_num_mbs_cur_nmb = u1_num_mbs; ps_cur_mb_info->u1_Mux = 0; ps_dec->u4_num_pmbair = (u1_num_mbs >> u1_mbaff); @@ -1001,8 +1008,6 @@ WORD32 ih264d_parse_inter_slice_data_cabac(dec_struct_t * ps_dec, ih264d_update_mbaff_left_nnz(ps_dec, ps_cur_mb_info); } /* Next macroblock information */ - if(i2_cur_mb_addr > ps_dec->ps_cur_sps->u2_max_mb_addr) - return ERROR_MB_ADDRESS_T; i2_cur_mb_addr++; if(ps_cur_mb_info->u1_topmb && u1_mbaff) @@ -1039,9 +1044,7 @@ WORD32 ih264d_parse_inter_slice_data_cabac(dec_struct_t * ps_dec, if(u1_decode_nmb) { - ret = ps_dec->pf_mvpred_ref_tfr_nby2mb(ps_dec, u1_mb_idx, u1_num_mbs); - if(ret != OK) - return ret; + ps_dec->pf_mvpred_ref_tfr_nby2mb(ps_dec, u1_mb_idx, u1_num_mbs); u1_num_mbsNby2 = 0; { @@ -1065,11 +1068,9 @@ WORD32 ih264d_parse_inter_slice_data_cabac(dec_struct_t * ps_dec, } else { - ret = ih264d_decode_recon_tfr_nmb(ps_dec, u1_mb_idx, u1_num_mbs, - u1_num_mbs_next, u1_tfr_n_mb, - u1_end_of_row); - if(ret != OK) - return ret; + ih264d_decode_recon_tfr_nmb(ps_dec, u1_mb_idx, u1_num_mbs, + u1_num_mbs_next, u1_tfr_n_mb, + u1_end_of_row); } if(u1_tfr_n_mb) @@ -1080,13 +1081,13 @@ WORD32 ih264d_parse_inter_slice_data_cabac(dec_struct_t * ps_dec, } } - if(ps_dec->u1_separate_parse) - { - ps_dec->ps_parse_cur_slice->end_of_slice = 1; - ps_dec->ps_cur_slice->u4_mbs_in_slice = i2_cur_mb_addr + + ps_dec->u4_num_mbs_cur_nmb = 0; + ps_dec->ps_cur_slice->u4_mbs_in_slice = i2_cur_mb_addr + - (u2_first_mb_in_slice << u1_mbaff); - } - return OK; + + return ret; } /*****************************************************************************/ @@ -1141,7 +1142,7 @@ WORD32 ih264d_parse_inter_slice_data_cavlc(dec_struct_t * ps_dec, UWORD32 u1_inter_mb_type; UWORD32 u1_deblk_mb_type; UWORD32 u1_mb_threshold; - WORD32 ret; + WORD32 ret = OK; /******************************************************/ /* Initialisations specific to B or P slice */ @@ -1162,11 +1163,8 @@ WORD32 ih264d_parse_inter_slice_data_cavlc(dec_struct_t * ps_dec, /******************************************************/ /* Slice Level Initialisations */ /******************************************************/ - i2_cur_mb_addr = u2_first_mb_in_slice; ps_dec->u1_qp = ps_slice->u1_slice_qp; - ret = ih264d_update_qp(ps_dec, 0); - if(ret != OK) - return ret; + ih264d_update_qp(ps_dec, 0); u1_mb_idx = ps_dec->u1_mb_idx; u1_num_mbs = u1_mb_idx; @@ -1181,14 +1179,17 @@ WORD32 ih264d_parse_inter_slice_data_cavlc(dec_struct_t * ps_dec, { UWORD8 u1_mb_type; + ps_dec->pv_prev_mb_parse_tu_coeff_data = ps_dec->pv_parse_tu_coeff_data; + if(i2_cur_mb_addr > ps_dec->ps_cur_sps->u2_max_mb_addr) { - + ret = ERROR_MB_ADDRESS_T; break; } ps_cur_mb_info = ps_dec->ps_nmb_info + u1_num_mbs; + ps_dec->u4_num_mbs_cur_nmb = u1_num_mbs; ps_cur_mb_info->u1_Mux = 0; ps_dec->u4_num_pmbair = (u1_num_mbs >> u1_mbaff); @@ -1380,10 +1381,7 @@ WORD32 ih264d_parse_inter_slice_data_cavlc(dec_struct_t * ps_dec, //if(u1_dma_nby2mb) if(u1_decode_nmb) { - - ret = ps_dec->pf_mvpred_ref_tfr_nby2mb(ps_dec, u1_mb_idx, u1_num_mbs); - if(ret != OK) - return ret; + ps_dec->pf_mvpred_ref_tfr_nby2mb(ps_dec, u1_mb_idx, u1_num_mbs); u1_num_mbsNby2 = 0; { @@ -1409,11 +1407,9 @@ WORD32 ih264d_parse_inter_slice_data_cavlc(dec_struct_t * ps_dec, } else { - ret = ih264d_decode_recon_tfr_nmb(ps_dec, u1_mb_idx, u1_num_mbs, - u1_num_mbs_next, u1_tfr_n_mb, - u1_end_of_row); - if(ret != OK) - return ret; + ih264d_decode_recon_tfr_nmb(ps_dec, u1_mb_idx, u1_num_mbs, + u1_num_mbs_next, u1_tfr_n_mb, + u1_end_of_row); } if(u1_tfr_n_mb) @@ -1425,15 +1421,420 @@ WORD32 ih264d_parse_inter_slice_data_cavlc(dec_struct_t * ps_dec, //ps_dec->ps_pred++; } + ps_dec->u4_num_mbs_cur_nmb = 0; + ps_dec->ps_cur_slice->u4_mbs_in_slice = i2_cur_mb_addr + - (u2_first_mb_in_slice << u1_mbaff); + + + return ret; +} + +WORD32 ih264d_mark_err_slice_skip(dec_struct_t * ps_dec, + WORD32 num_mb_skip, + UWORD8 u1_is_idr_slice, + pocstruct_t *ps_cur_poc, + WORD32 prev_slice_err) +{ + WORD32 i2_cur_mb_addr; + UWORD32 u1_num_mbs, u1_num_mbsNby2; + UWORD32 u1_mb_idx = ps_dec->u1_mb_idx; + UWORD32 i2_mb_skip_run; + + UWORD32 u1_num_mbs_next, u1_end_of_row; + const UWORD32 i2_pic_wdin_mbs = ps_dec->u2_frm_wd_in_mbs; + UWORD32 u1_slice_end; + UWORD32 u1_tfr_n_mb; + UWORD32 u1_decode_nmb; + dec_bit_stream_t * const ps_bitstrm = ps_dec->ps_bitstrm; + dec_slice_params_t * ps_slice = ps_dec->ps_cur_slice; + UWORD32 *pu4_bitstrm_buf = ps_bitstrm->pu4_buffer; + UWORD32 *pu4_bitstrm_ofst = &ps_bitstrm->u4_ofst; + deblk_mb_t *ps_cur_deblk_mb; + dec_mb_info_t *ps_cur_mb_info; + parse_pmbarams_t *ps_parse_mb_data; + UWORD32 u1_inter_mb_type; + UWORD32 u1_deblk_mb_type; + UWORD16 u2_total_mbs_coded; + UWORD32 u1_mbaff = ps_slice->u1_mbaff_frame_flag; + parse_part_params_t *ps_part_info; + + if(prev_slice_err == 1) + { + // first slice - missing/header corruption + if(u1_is_idr_slice) + ps_dec->ps_cur_slice->u2_frame_num = 0; + else + ps_dec->ps_cur_slice->u2_frame_num++; + + if(!ps_dec->u1_first_slice_in_stream) + { + ih264d_end_of_pic(ps_dec, u1_is_idr_slice, + ps_dec->ps_cur_slice->u2_frame_num); + ps_dec->s_cur_pic_poc.u2_frame_num = + ps_dec->ps_cur_slice->u2_frame_num; + } + + { + WORD32 i, j, poc = 0; + + ps_dec->ps_cur_slice->u2_first_mb_in_slice = 0; + + ps_dec->pf_mvpred = ih264d_mvpred_nonmbaff; + ps_dec->p_form_mb_part_info = ih264d_form_mb_part_info_bp; + ps_dec->p_motion_compensate = ih264d_motion_compensate_bp; + ps_dec->ps_pps->ps_sps = ps_dec->ps_cur_sps; + + if(ps_dec->ps_cur_pic != NULL) + poc = ps_dec->ps_cur_pic->i4_poc + 2; + + j = 0; + for(i = 0; i < MAX_NUM_PIC_PARAMS; i++) + if(ps_dec->ps_pps[i].u1_is_valid == TRUE) + j = i; + + ih264d_start_of_pic(ps_dec, poc, ps_cur_poc, + ps_dec->ps_cur_slice->u2_frame_num, + &ps_dec->ps_pps[j]); + + ps_dec->ps_ref_pic_buf_lx[0][0]->u1_pic_buf_id = 0; + + ps_dec->u4_output_present = 0; + + { + ih264d_get_next_display_field(ps_dec, + ps_dec->ps_out_buffer, + &(ps_dec->s_disp_op)); + /* If error code is non-zero then there is no buffer available for display, + hence avoid format conversion */ + + if(0 != ps_dec->s_disp_op.u4_error_code) + { + ps_dec->u4_fmt_conv_cur_row = ps_dec->s_disp_frame_info.u4_y_ht; + } + else + ps_dec->u4_output_present = 1; + } + + if(ps_dec->u1_separate_parse == 1) + { + if(ps_dec->u4_dec_thread_created == 0) + { + ithread_create(ps_dec->pv_dec_thread_handle, NULL, + (void *)ih264d_decode_picture_thread, + (void *)ps_dec); + + ps_dec->u4_dec_thread_created = 1; + } + + if((ps_dec->u4_num_cores == 3) && + ((ps_dec->u4_app_disable_deblk_frm == 0) || ps_dec->i1_recon_in_thread3_flag) + && (ps_dec->u4_bs_deblk_thread_created == 0)) + { + ps_dec->u4_start_recon_deblk = 0; + ithread_create(ps_dec->pv_bs_deblk_thread_handle, NULL, + (void *)ih264d_recon_deblk_thread, + (void *)ps_dec); + ps_dec->u4_bs_deblk_thread_created = 1; + } + } + } + } + else + { + // Middle / last slice + + dec_slice_struct_t *ps_parse_cur_slice; + ps_parse_cur_slice = ps_dec->ps_dec_slice_buf + ps_dec->u2_cur_slice_num; + + if(ps_dec->u1_slice_header_done + && ps_parse_cur_slice == ps_dec->ps_parse_cur_slice) + { + // Slice data corrupted + u1_num_mbs = ps_dec->u4_num_mbs_cur_nmb; + + if(u1_num_mbs) + { + ps_cur_mb_info = ps_dec->ps_nmb_info + u1_num_mbs - 1; + } + else + { + if(ps_dec->u1_separate_parse) + { + ps_cur_mb_info = ps_dec->ps_nmb_info - 1; + } + else + { + ps_cur_mb_info = ps_dec->ps_nmb_info + + ps_dec->u4_num_mbs_prev_nmb - 1; + } + } + + ps_dec->u2_mby = ps_cur_mb_info->u2_mby; + ps_dec->u2_mbx = ps_cur_mb_info->u2_mbx; + + ps_dec->u1_mb_ngbr_availablity = + ps_cur_mb_info->u1_mb_ngbr_availablity; + + // Going back 1 mb + ps_dec->pv_parse_tu_coeff_data = ps_dec->pv_prev_mb_parse_tu_coeff_data; + ps_dec->u2_cur_mb_addr--; + ps_dec->i4_submb_ofst -= SUB_BLK_SIZE; + + if(u1_num_mbs) + { + // Parse/decode N-MB left unparsed + if (ps_dec->u1_pr_sl_type == P_SLICE + || ps_dec->u1_pr_sl_type == B_SLICE) + { + ps_dec->pf_mvpred_ref_tfr_nby2mb(ps_dec, u1_mb_idx, u1_num_mbs); + ps_dec->ps_part = ps_dec->ps_parse_part_params; + } + + u1_num_mbs_next = i2_pic_wdin_mbs - ps_dec->u2_mbx - 1; + u1_end_of_row = (!u1_num_mbs_next) + && (!(u1_mbaff && (u1_num_mbs & 0x01))); + u1_slice_end = 1; + u1_tfr_n_mb = 1; + ps_cur_mb_info->u1_end_of_slice = u1_slice_end; + + if(ps_dec->u1_separate_parse) + { + ih264d_parse_tfr_nmb(ps_dec, u1_mb_idx, u1_num_mbs, + u1_num_mbs_next, u1_tfr_n_mb, u1_end_of_row); + ps_dec->ps_nmb_info += u1_num_mbs; + } + else + { + ih264d_decode_recon_tfr_nmb(ps_dec, u1_mb_idx, u1_num_mbs, + u1_num_mbs_next, u1_tfr_n_mb, u1_end_of_row); + } + + ps_dec->u1_mb_idx = 0; + ps_dec->u4_num_mbs_cur_nmb = 0; + } + + if(ps_dec->u2_total_mbs_coded + >= ps_dec->u2_frm_ht_in_mbs * ps_dec->u2_frm_wd_in_mbs) + { + ps_dec->u1_pic_decode_done = 1; + return 1; + } + + // Inserting new slice + ps_dec->u2_cur_slice_num++; + ps_dec->i2_prev_slice_mbx = ps_dec->u2_mbx; + ps_dec->i2_prev_slice_mby = ps_dec->u2_mby; + ps_dec->ps_parse_cur_slice++; + + } + else + { + // Slice missing / header corrupted + ps_dec->ps_parse_cur_slice = ps_dec->ps_dec_slice_buf + + ps_dec->u2_cur_slice_num; + } + } + + /******************************************************/ + /* Initializations to new slice */ + /******************************************************/ + { + WORD32 num_entries; + WORD32 size; + UWORD8 *pu1_buf; + + num_entries = MIN(MAX_FRAMES, ps_dec->u4_num_ref_frames_at_init); + num_entries = 2 * ((2 * num_entries) + 1); + + size = num_entries * sizeof(void *); + size += PAD_MAP_IDX_POC * sizeof(void *); + + pu1_buf = (UWORD8 *)ps_dec->pv_map_ref_idx_to_poc_buf; + pu1_buf += size * ps_dec->u2_cur_slice_num; + ps_dec->ps_parse_cur_slice->ppv_map_ref_idx_to_poc = (volatile void **)pu1_buf; + } + + ps_dec->ps_cur_slice->u2_first_mb_in_slice = ps_dec->u2_total_mbs_coded << u1_mbaff; + if(ps_dec->ps_cur_slice->u1_field_pic_flag) + ps_dec->u2_prv_frame_num = ps_dec->ps_cur_slice->u2_frame_num; + + ps_dec->ps_parse_cur_slice->u4_first_mb_in_slice = ps_dec->u2_total_mbs_coded << u1_mbaff; + ps_dec->ps_parse_cur_slice->u2_log2Y_crwd = ps_dec->ps_cur_slice->u2_log2Y_crwd; + + if(ps_dec->u1_separate_parse) { - ps_dec->ps_parse_cur_slice->end_of_slice = 1; - ps_dec->ps_cur_slice->u4_mbs_in_slice = i2_cur_mb_addr - - (u2_first_mb_in_slice << u1_mbaff); + ps_dec->ps_parse_cur_slice->pv_tu_coeff_data_start = ps_dec->pv_parse_tu_coeff_data; + } + else + { + ps_dec->pv_proc_tu_coeff_data = ps_dec->pv_parse_tu_coeff_data; } + /******************************************************/ + /* Initializations specific to P slice */ + /******************************************************/ + u1_inter_mb_type = P_MB; + u1_deblk_mb_type = D_INTER_MB; + + ps_dec->ps_cur_slice->u1_slice_type = P_SLICE; + ps_dec->ps_parse_cur_slice->slice_type = P_SLICE; + ps_dec->pf_mvpred_ref_tfr_nby2mb = ih264d_mv_pred_ref_tfr_nby2_pmb; + ps_dec->ps_part = ps_dec->ps_parse_part_params; + + /******************************************************/ + /* Parsing / decoding the slice */ + /******************************************************/ + ps_dec->u4_first_slice_in_pic = 0; + ps_dec->u1_first_slice_in_stream = 0; + ps_dec->u1_slice_header_done = 2; + ps_dec->u1_qp = ps_slice->u1_slice_qp; + ih264d_update_qp(ps_dec, 0); + u1_mb_idx = ps_dec->u1_mb_idx; + ps_parse_mb_data = ps_dec->ps_parse_mb_data; + u1_num_mbs = u1_mb_idx; + + u1_slice_end = 0; + u1_tfr_n_mb = 0; + u1_decode_nmb = 0; + u1_num_mbsNby2 = 0; + i2_cur_mb_addr = ps_dec->u2_total_mbs_coded; + i2_mb_skip_run = num_mb_skip; + + while(!u1_slice_end) + { + UWORD8 u1_mb_type; + + if(i2_cur_mb_addr > ps_dec->ps_cur_sps->u2_max_mb_addr) + break; + + ps_cur_mb_info = ps_dec->ps_nmb_info + u1_num_mbs; + ps_dec->u4_num_mbs_cur_nmb = u1_num_mbs; + + ps_cur_mb_info->u1_Mux = 0; + ps_dec->u4_num_pmbair = (u1_num_mbs >> u1_mbaff); + ps_cur_deblk_mb = ps_dec->ps_deblk_mbn + u1_num_mbs; + + ps_cur_mb_info->u1_end_of_slice = 0; + + /* Storing Default partition info */ + ps_parse_mb_data->u1_num_part = 1; + ps_parse_mb_data->u1_isI_mb = 0; + + /**************************************************************/ + /* Get the required information for decoding of MB */ + /**************************************************************/ + /* mb_x, mb_y, neighbor availablity, */ + if (u1_mbaff) + ih264d_get_mb_info_cavlc_mbaff(ps_dec, i2_cur_mb_addr, ps_cur_mb_info, i2_mb_skip_run); + else + ih264d_get_mb_info_cavlc_nonmbaff(ps_dec, i2_cur_mb_addr, ps_cur_mb_info, i2_mb_skip_run); + + /* Set the deblocking parameters for this MB */ + if(ps_dec->u4_app_disable_deblk_frm == 0) + { + ih264d_set_deblocking_parameters(ps_cur_deblk_mb, ps_slice, + ps_dec->u1_mb_ngbr_availablity, + ps_dec->u1_cur_mb_fld_dec_flag); + } + + /* Set appropriate flags in ps_cur_mb_info and ps_dec */ + ps_dec->i1_prev_mb_qp_delta = 0; + ps_dec->u1_sub_mb_num = 0; + ps_cur_mb_info->u1_mb_type = MB_SKIP; + ps_cur_mb_info->u1_mb_mc_mode = PRED_16x16; + ps_cur_mb_info->u1_cbp = 0; + + /* Storing Skip partition info */ + ps_part_info = ps_dec->ps_part; + ps_part_info->u1_is_direct = PART_DIRECT_16x16; + ps_part_info->u1_sub_mb_num = 0; + ps_dec->ps_part++; + + /* Update Nnzs */ + ih264d_update_nnz_for_skipmb(ps_dec, ps_cur_mb_info, CAVLC); + + ps_cur_mb_info->ps_curmb->u1_mb_type = u1_inter_mb_type; + ps_cur_deblk_mb->u1_mb_type |= u1_deblk_mb_type; + + i2_mb_skip_run--; + + ps_cur_deblk_mb->u1_mb_qp = ps_dec->u1_qp; + + if (u1_mbaff) + { + ih264d_update_mbaff_left_nnz(ps_dec, ps_cur_mb_info); + } + + /**************************************************************/ + /* Get next Macroblock address */ + /**************************************************************/ + i2_cur_mb_addr++; + + u1_num_mbs++; + ps_dec->u2_total_mbs_coded++; + u1_num_mbsNby2++; + ps_parse_mb_data++; + + /****************************************************************/ + /* Check for End Of Row and other flags that determine when to */ + /* do DMA setup for N/2-Mb, Decode for N-Mb, and Transfer for */ + /* N-Mb */ + /****************************************************************/ + u1_num_mbs_next = i2_pic_wdin_mbs - ps_dec->u2_mbx - 1; + u1_end_of_row = (!u1_num_mbs_next) && (!(u1_mbaff && (u1_num_mbs & 0x01))); + u1_slice_end = !i2_mb_skip_run; + u1_tfr_n_mb = (u1_num_mbs == ps_dec->u1_recon_mb_grp) || u1_end_of_row + || u1_slice_end; + u1_decode_nmb = u1_tfr_n_mb || u1_slice_end; + ps_cur_mb_info->u1_end_of_slice = u1_slice_end; + + if(u1_decode_nmb) + { + ps_dec->pf_mvpred_ref_tfr_nby2mb(ps_dec, u1_mb_idx, u1_num_mbs); + u1_num_mbsNby2 = 0; + + ps_parse_mb_data = ps_dec->ps_parse_mb_data; + ps_dec->ps_part = ps_dec->ps_parse_part_params; + + if(ps_dec->u1_separate_parse) + { + ih264d_parse_tfr_nmb(ps_dec, u1_mb_idx, u1_num_mbs, + u1_num_mbs_next, u1_tfr_n_mb, u1_end_of_row); + ps_dec->ps_nmb_info += u1_num_mbs; + } + else + { + ih264d_decode_recon_tfr_nmb(ps_dec, u1_mb_idx, u1_num_mbs, u1_num_mbs_next, + u1_tfr_n_mb, u1_end_of_row); + } + + if(u1_tfr_n_mb) + u1_num_mbs = 0; + u1_mb_idx = u1_num_mbs; + ps_dec->u1_mb_idx = u1_num_mbs; + } + } + + ps_dec->u4_num_mbs_cur_nmb = 0; + ps_dec->ps_cur_slice->u4_mbs_in_slice = i2_cur_mb_addr + - ps_dec->ps_parse_cur_slice->u4_first_mb_in_slice; + + H264_DEC_DEBUG_PRINT("Mbs in slice: %d\n", ps_dec->ps_cur_slice->u4_mbs_in_slice); + + ps_dec->u2_cur_slice_num++; + ps_dec->i2_prev_slice_mbx = ps_dec->u2_mbx; + ps_dec->i2_prev_slice_mby = ps_dec->u2_mby; + + if(ps_dec->u2_total_mbs_coded + >= ps_dec->u2_frm_ht_in_mbs * ps_dec->u2_frm_wd_in_mbs) + { + ps_dec->u1_pic_decode_done = 1; + return 1; + } + + return 0; - return OK; } /*! @@ -1720,15 +2121,12 @@ WORD32 ih264d_parse_pslice(dec_struct_t *ps_dec, UWORD16 u2_first_mb_in_slice) ps_cur_slice->i1_slice_beta_offset = 0; } - DATA_SYNC(); - ps_dec->ps_parse_cur_slice->slice_header_done = 2; + ps_dec->u1_slice_header_done = 2; if(ps_pps->u1_entropy_coding_mode) { SWITCHOFFTRACE; SWITCHONTRACECABAC; ps_dec->pf_parse_inter_slice = ih264d_parse_inter_slice_data_cabac; - if(ps_dec->ps_parse_cur_slice->u2_error_flag == 1) - return 0; ps_dec->pf_parse_inter_mb = ih264d_parse_pmb_cabac; ih264d_init_cabac_contexts(P_SLICE, ps_dec); diff --git a/decoder/ih264d_parse_slice.c b/decoder/ih264d_parse_slice.c index 323df43..b3a7632 100644 --- a/decoder/ih264d_parse_slice.c +++ b/decoder/ih264d_parse_slice.c @@ -195,27 +195,25 @@ WORD32 ih264d_start_of_pic(dec_struct_t *ps_dec, ps_dec->i1_prev_mb_qp_delta = 0; ps_dec->i1_next_ctxt_idx = 0; - ps_dec->u4_mb_level_deblk = 0; - /* Disable MB_LEVEL_DEBLK if deblock thread is enabled */ - if(ps_dec->u4_num_cores >= 3) - { - ps_dec->u4_mb_level_deblk = 0; - } + ps_dec->u4_nmb_deblk = 0; + if(ps_dec->u4_num_cores == 1) + ps_dec->u4_nmb_deblk = 1; + if(ps_seq->u1_mb_aff_flag == 1) { - ps_dec->u4_mb_level_deblk = 0; + ps_dec->u4_nmb_deblk = 0; if(ps_dec->u4_num_cores > 2) ps_dec->u4_num_cores = 2; } - if(ps_dec->u4_mb_level_deblk == 1) - ps_dec->u4_use_intrapred_line_copy = 1; - else + ps_dec->u4_use_intrapred_line_copy = 0; - if((ps_dec->u4_num_cores >= 3) && (ps_seq->u1_mb_aff_flag == 0)) + + + if (ps_seq->u1_mb_aff_flag == 0) { ps_dec->u4_use_intrapred_line_copy = 1; } @@ -308,7 +306,6 @@ WORD32 ih264d_start_of_pic(dec_struct_t *ps_dec, } } - ps_dec->u1_first_nal_in_pic = 0; if(ps_dec->u1_init_dec_flag && ps_dec->s_prev_seq_params.u1_eoseq_pending) { /* Reset the decoder picture buffers */ @@ -351,14 +348,13 @@ WORD32 ih264d_start_of_pic(dec_struct_t *ps_dec, UWORD16 pic_ht = ps_dec->u4_height_at_init; UWORD32 num_mbs; - if((NULL != ps_dec->ps_sps) && (1 == (ps_dec->ps_sps->u1_is_valid))) + if((NULL != ps_dec->ps_cur_sps) && (1 == (ps_dec->ps_cur_sps->u1_is_valid))) { pic_wd = ps_dec->u2_pic_wd; pic_ht = ps_dec->u2_pic_ht; } num_mbs = (pic_wd * pic_ht) >> 8; - ps_dec->u4_start_frame_decode = 0; if(ps_dec->pu1_dec_mb_map) { memset((void *)ps_dec->pu1_dec_mb_map, 0, num_mbs); @@ -377,17 +373,10 @@ WORD32 ih264d_start_of_pic(dec_struct_t *ps_dec, } } - if(ps_dec->u4_first_slice_in_pic == 1) - { - ps_dec->ps_parse_cur_slice = &(ps_dec->ps_dec_slice_buf[0]); - ps_dec->ps_decode_cur_slice = &(ps_dec->ps_dec_slice_buf[0]); - ps_dec->ps_computebs_cur_slice = &(ps_dec->ps_dec_slice_buf[0]); - } - ps_dec->ps_parse_cur_slice->slice_header_done = 0; - ps_dec->ps_parse_cur_slice->last_slice_in_frame = 0; - ps_dec->ps_parse_cur_slice->u4_num_mbs_done_in_slice = 0; - ps_dec->ps_parse_cur_slice->u2_error_flag = 0; + ps_dec->ps_parse_cur_slice = &(ps_dec->ps_dec_slice_buf[0]); + ps_dec->ps_decode_cur_slice = &(ps_dec->ps_dec_slice_buf[0]); + ps_dec->ps_computebs_cur_slice = &(ps_dec->ps_dec_slice_buf[0]); /* Initialize all the HP toolsets to zero */ ps_dec->s_high_profile.u1_scaling_present = 0; @@ -449,6 +438,12 @@ WORD32 ih264d_start_of_pic(dec_struct_t *ps_dec, ps_cur_pic->pu1_col_zero_flag = (UWORD8 *)ps_col_mv->pv_col_zero_flag; ps_cur_pic->ps_mv = (mv_pred_t *)ps_col_mv->pv_mv; ps_dec->au1_pic_buf_ref_flag[cur_pic_buf_id] = 0; + if(ps_dec->u1_first_slice_in_stream) + { + /*make first entry of list0 point to cur pic,so that if first Islice is in error, ref pic struct will have valid entries*/ + ps_dec->ps_ref_pic_buf_lx[0] = ps_dec->ps_dpb_mgr->ps_init_dpb[0]; + *(ps_dec->ps_dpb_mgr->ps_init_dpb[0][0]) = *ps_cur_pic; + } if(!ps_dec->ps_cur_pic) { @@ -549,20 +544,6 @@ WORD32 ih264d_start_of_pic(dec_struct_t *ps_dec, ps_dec->ps_cur_pic->u1_picturetype |= (ps_cur_slice->u1_mbaff_frame_flag << 2); - if(ps_cur_slice->u1_mbaff_frame_flag) - { - ps_dec->u2_mb_group_cols_y = ((ps_dec->u1_recon_mb_grp >> 1) << 4) + 8; - ps_dec->u2_mb_group_cols_cr = ((ps_dec->u1_recon_mb_grp >> 1) << 3) + 8; - } - else - { - ps_dec->u2_mb_group_cols_y = (ps_dec->u1_recon_mb_grp << 4) + 8; - ps_dec->u2_mb_group_cols_cr = (ps_dec->u1_recon_mb_grp << 3) + 8; - } - - - - ps_dec->ps_cur_mb_row = ps_dec->ps_nbr_mb_row; //[0]; ps_dec->ps_cur_mb_row++; //Increment by 1 ,so that left mb will always be valid @@ -573,8 +554,6 @@ WORD32 ih264d_start_of_pic(dec_struct_t *ps_dec, - ps_dec->ps_cur_sps->u1_frame_mbs_only_flag)); ps_dec->ps_top_mb_row++; //Increment by 1 ,so that left mb will always be valid - ps_dec->u2_mb_group_cols_y1 = ps_dec->u2_mb_group_cols_y; - ps_dec->u2_mb_group_cols_cr1 = ps_dec->u2_mb_group_cols_cr; ps_dec->pu1_y = ps_dec->pu1_y_scratch[0]; ps_dec->pu1_u = ps_dec->pu1_u_scratch[0]; ps_dec->pu1_v = ps_dec->pu1_v_scratch[0]; @@ -731,12 +710,31 @@ WORD32 ih264d_start_of_pic(dec_struct_t *ps_dec, ps_seq->u1_direct_8x8_inference_flag; ps_dec->s_high_profile.s_cavlc_ctxt = ps_dec->s_cavlc_ctxt; + ps_dec->i1_recon_in_thread3_flag = 1; + ps_dec->ps_frame_buf_ip_recon = &ps_dec->s_tran_addrecon; if(ps_dec->u1_separate_parse) { memcpy(&ps_dec->s_tran_addrecon_parse, &ps_dec->s_tran_addrecon, sizeof(tfr_ctxt_t)); + if(ps_dec->u4_num_cores >= 3 && ps_dec->i1_recon_in_thread3_flag) + { + memcpy(&ps_dec->s_tran_iprecon, &ps_dec->s_tran_addrecon, + sizeof(tfr_ctxt_t)); + ps_dec->ps_frame_buf_ip_recon = &ps_dec->s_tran_iprecon; + } } + + ih264d_init_deblk_tfr_ctxt(ps_dec,&(ps_dec->s_pad_mgr), &(ps_dec->s_tran_addrecon), + ps_dec->u2_frm_wd_in_mbs, 0); + + ps_dec->ps_cur_deblk_mb = ps_dec->ps_deblk_pic; + ps_dec->u4_cur_deblk_mb_num = 0; + + ps_dec->u4_deblk_mb_x = 0; + ps_dec->u4_deblk_mb_y = 0; + + H264_MUTEX_UNLOCK(&ps_dec->process_disp_mutex); return OK; } @@ -963,7 +961,7 @@ WORD32 ih264d_end_of_pic(dec_struct_t *ps_dec, dec_slice_params_t *ps_cur_slice = ps_dec->ps_cur_slice; WORD32 ret; - ps_dec->u1_first_nal_in_pic = 1; + ps_dec->u4_first_slice_in_pic = 1; ps_dec->u1_first_pb_nal_in_pic = 1; ps_dec->u2_mbx = 0xffff; ps_dec->u2_mby = 0; @@ -1060,28 +1058,15 @@ WORD32 ih264d_parse_decode_slice(UWORD8 u1_is_idr_slice, UWORD32 *pu4_bitstrm_ofst = &ps_bitstrm->u4_ofst; WORD8 i1_is_end_of_poc; - WORD32 ret; + WORD32 ret, end_of_frame; + WORD32 prev_slice_err, num_mb_skipped; + UWORD8 u1_mbaff; + pocstruct_t *ps_cur_poc; + UWORD32 u4_temp; WORD32 i_temp; UWORD32 u4_call_end_of_pic = 0; - /*--------------------------------------------------------------------*/ - /* Decode Portion of the Slice header */ - /* This is done to detect end of picture */ - /*--------------------------------------------------------------------*/ - - if(ps_dec->u4_first_slice_in_pic == 0) - { - volatile dec_slice_struct_t *ps_next_slice; - - ps_next_slice = ps_dec->ps_parse_cur_slice + 1; - - /*Reset the ready u4_flag and then increment*/ - ps_next_slice->slice_header_done = 0; - DATA_SYNC(); - ps_dec->ps_parse_cur_slice++; - } - /* read FirstMbInSlice and slice type*/ ps_dec->ps_dpb_cmds->u1_dpb_commands_read_slc = 0; u2_first_mb_in_slice = ih264d_uev(pu4_bitstrm_ofst, @@ -1135,7 +1120,7 @@ WORD32 ih264d_parse_decode_slice(UWORD8 u1_is_idr_slice, ps_dec->i4_dec_skip_mode = IVD_SKIP_NONE; } else if((I_SLICE == u1_slice_type) - && (1 >= ps_dec->ps_sps->u1_num_ref_frames)) + && (1 >= ps_dec->ps_cur_sps->u1_num_ref_frames)) { skip = 0; @@ -1295,14 +1280,13 @@ WORD32 ih264d_parse_decode_slice(UWORD8 u1_is_idr_slice, u1_redundant_pic_cnt = u4_temp; COPYTHECONTEXT("SH: redundant_pic_cnt", u1_redundant_pic_cnt); } + /*--------------------------------------------------------------------*/ - /* Check if the slice is part of new picture if so do End of Pic */ - /* processing. */ + /* Check if the slice is part of new picture */ /*--------------------------------------------------------------------*/ i1_is_end_of_poc = 0; - if(!ps_dec->u1_first_nal_in_pic) + if(!ps_dec->u1_first_slice_in_stream) { - UWORD8 uc_mbs_exceed = 0; i1_is_end_of_poc = ih264d_is_end_of_pic(u2_frame_num, u1_nal_ref_idc, &s_tmp_poc, &ps_dec->s_cur_pic_poc, ps_cur_slice, u1_pic_order_cnt_type, @@ -1310,6 +1294,113 @@ WORD32 ih264d_parse_decode_slice(UWORD8 u1_is_idr_slice, u1_field_pic_flag, u1_bottom_field_flag); + } + + /*--------------------------------------------------------------------*/ + /* Check for error in slice and parse the missing/corrupted MB's */ + /* as skip-MB's in an inserted P-slice */ + /*--------------------------------------------------------------------*/ + u1_mbaff = ps_seq->u1_mb_aff_flag && (!u1_field_pic_flag); + prev_slice_err = 0; + + if(i1_is_end_of_poc || ps_dec->u1_first_slice_in_stream) + { + if(u2_frame_num != ps_dec->u2_prv_frame_num + && ps_dec->u1_top_bottom_decoded != 0 + && ps_dec->u1_top_bottom_decoded + != (TOP_FIELD_ONLY | BOT_FIELD_ONLY)) + { + if(ps_dec->u4_first_slice_in_pic) + { + // first slice - dangling field + prev_slice_err = 1; + } + else + { + // last slice - dangling field + prev_slice_err = 2; + } + + if(ps_dec->u1_top_bottom_decoded ==TOP_FIELD_ONLY) + ps_cur_slice->u1_bottom_field_flag = 1; + else + ps_cur_slice->u1_bottom_field_flag = 0; + + num_mb_skipped = (ps_dec->u2_frm_ht_in_mbs * ps_dec->u2_frm_wd_in_mbs) + - ps_dec->u2_total_mbs_coded; + ps_cur_poc = &ps_dec->s_cur_pic_poc; + + u1_is_idr_slice = ps_cur_slice->u1_nal_unit_type == IDR_SLICE_NAL; + } + else if(ps_dec->u4_first_slice_in_pic) + { + if(u2_first_mb_in_slice > 0) + { + // first slice - missing/header corruption + prev_slice_err = 1; + num_mb_skipped = u2_first_mb_in_slice << u1_mbaff; + ps_cur_poc = &s_tmp_poc; + + // initializing slice parameters + ps_cur_slice->u4_idr_pic_id = u4_idr_pic_id; + ps_cur_slice->u1_field_pic_flag = u1_field_pic_flag; + ps_cur_slice->u1_bottom_field_flag = u1_bottom_field_flag; + ps_cur_slice->i4_pic_order_cnt_lsb = + s_tmp_poc.i4_pic_order_cnt_lsb; + ps_cur_slice->u1_nal_unit_type = u1_nal_unit_type; + ps_cur_slice->u1_redundant_pic_cnt = u1_redundant_pic_cnt; + ps_cur_slice->u1_nal_ref_idc = u1_nal_ref_idc; + ps_cur_slice->u1_pic_order_cnt_type = u1_pic_order_cnt_type; + } + } + else + { + // last slice - missing/corruption + prev_slice_err = 2; + num_mb_skipped = (ps_dec->u2_frm_ht_in_mbs * ps_dec->u2_frm_wd_in_mbs) + - ps_dec->u2_total_mbs_coded; + ps_cur_poc = &s_tmp_poc; + } + } + else + { + if((u2_first_mb_in_slice << u1_mbaff) > ps_dec->u2_total_mbs_coded) + { + // previous slice - missing/corruption + prev_slice_err = 2; + num_mb_skipped = (u2_first_mb_in_slice << u1_mbaff) + - ps_dec->u2_total_mbs_coded; + ps_cur_poc = &s_tmp_poc; + } + else if((u2_first_mb_in_slice << u1_mbaff) < ps_dec->u2_total_mbs_coded) + { + return ERROR_CORRUPTED_SLICE; + } + } + + if(prev_slice_err) + { + end_of_frame = ih264d_mark_err_slice_skip(ps_dec,num_mb_skipped,u1_is_idr_slice,ps_cur_poc,prev_slice_err); + + if(end_of_frame) + { + // return if all MBs in frame are parsed + return ERROR_IN_LAST_SLICE_OF_PIC; + } + i1_is_end_of_poc = 0; + } + + if (ps_dec->u4_first_slice_in_pic == 0) + ps_dec->ps_parse_cur_slice++; + + ps_dec->u1_slice_header_done = 0; + + /*--------------------------------------------------------------------*/ + /* If the slice is part of new picture, do End of Pic processing. */ + /*--------------------------------------------------------------------*/ + if(!ps_dec->u1_first_slice_in_stream) + { + UWORD8 uc_mbs_exceed = 0; /*since we support only Full frame decode, every new process should * process a new pic */ @@ -1347,39 +1438,14 @@ WORD32 ih264d_parse_decode_slice(UWORD8 u1_is_idr_slice, } else { - if((ps_dec->u2_total_mbs_coded - < (ps_dec->ps_cur_sps->u2_max_mb_addr + 1))) - { - H264_DEC_DEBUG_PRINT("Hello\n"); - ps_dec->u2_total_mbs_coded = - ps_dec->ps_cur_sps->u2_max_mb_addr + 1; - ps_dec->u1_first_nal_in_pic = 1; - ps_dec->u1_first_pb_nal_in_pic = 1; - return ERROR_END_OF_FRAME_EXPECTED_T; - /*if (ps_cur_slice->u1_field_pic_flag && - ((TOP_FIELD_ONLY | BOT_FIELD_ONLY) == ps_dec->u1_top_bottom_decoded)) - { - ps_cur_slice->u1_end_of_frame_signal = 0; - }*/ - } ret = ih264d_end_of_pic(ps_dec, u1_is_idr_slice, u2_frame_num); if(ret != OK) return ret; } } - else - { - - if(ps_dec->u4_first_slice_in_pic == 1) - { - /*If the first slice in decode api is not from a new picture, - * we will return error code ,as we don't support partial - frame decode*/ - return ERROR_PIC_NUM_IS_REPEATED; - } - } } + ps_cur_slice->u1_end_of_frame_signal = 0; if(u1_field_pic_flag) { @@ -1447,7 +1513,7 @@ WORD32 ih264d_parse_decode_slice(UWORD8 u1_is_idr_slice, ps_dec->ps_cur_pic->i4_poc = i4_temp_poc; ps_dec->ps_cur_pic->i4_avg_poc = i4_temp_poc; } - if(ps_dec->u1_first_nal_in_pic) + if(ps_dec->u4_first_slice_in_pic) { ret = ih264d_decode_pic_order_cnt(u1_is_idr_slice, u2_frame_num, &ps_dec->s_prev_pic_poc, @@ -1515,7 +1581,7 @@ WORD32 ih264d_parse_decode_slice(UWORD8 u1_is_idr_slice, ps_dec->pf_mvpred = ih264d_mvpred_nonmbaff; } - if(ps_dec->u1_first_nal_in_pic) + if(ps_dec->u4_first_slice_in_pic) { ret = ih264d_start_of_pic(ps_dec, i4_poc, &s_tmp_poc, u2_frame_num, ps_pps); if(ret != OK) @@ -1523,7 +1589,6 @@ WORD32 ih264d_parse_decode_slice(UWORD8 u1_is_idr_slice, ps_dec->u4_output_present = 0; - if(1 == ps_dec->u4_fmt_conv_in_process) { ih264d_get_next_display_field(ps_dec, ps_dec->ps_out_buffer, @@ -1534,8 +1599,6 @@ WORD32 ih264d_parse_decode_slice(UWORD8 u1_is_idr_slice, if(0 != ps_dec->s_disp_op.u4_error_code) { ps_dec->u4_fmt_conv_cur_row = ps_dec->s_disp_frame_info.u4_y_ht; - ps_dec->as_fmt_conv_part[0].u4_flag = 0; - ps_dec->as_fmt_conv_part[1].u4_flag = 0; } else ps_dec->u4_output_present = 1; @@ -1551,12 +1614,13 @@ WORD32 ih264d_parse_decode_slice(UWORD8 u1_is_idr_slice, ps_dec->u4_dec_thread_created = 1; } - if((ps_dec->u4_num_cores == 3) && (ps_dec->u4_app_disable_deblk_frm == 0) + if((ps_dec->u4_num_cores == 3) && + ((ps_dec->u4_app_disable_deblk_frm == 0) || ps_dec->i1_recon_in_thread3_flag) && (ps_dec->u4_bs_deblk_thread_created == 0)) { - ps_dec->u4_start_bs_deblk = 0; + ps_dec->u4_start_recon_deblk = 0; ithread_create(ps_dec->pv_bs_deblk_thread_handle, NULL, - (void *)ih264d_computebs_deblk_thread, + (void *)ih264d_recon_deblk_thread, (void *)ps_dec); ps_dec->u4_bs_deblk_thread_created = 1; } @@ -1566,7 +1630,7 @@ WORD32 ih264d_parse_decode_slice(UWORD8 u1_is_idr_slice, /* INITIALIZATION of fn ptrs for MC and formMbPartInfo functions */ { - UWORD8 uc_nofield_nombaff = 1; // = ((ps_dec->ps_sps->u1_profile_idc == 0x42) || (u1_slice_type == I_SLICE)); + UWORD8 uc_nofield_nombaff; @@ -1706,17 +1770,6 @@ WORD32 ih264d_parse_decode_slice(UWORD8 u1_is_idr_slice, ps_trns_addr->pu1_mb_u = ps_trns_addr->pu1_dest_u; ps_trns_addr->pu1_mb_v = ps_trns_addr->pu1_dest_v; - if(ps_dec->u4_mb_level_deblk == 1) - { - /*If it is not the first mb in row,the previous MB which needs to be deblocked - * as there is delay of 1 MB*/ - if(u2_mb_x != 0) - { - ps_trns_addr->pu1_mb_y -= MB_SIZE; - ps_trns_addr->pu1_mb_u -= BLK8x8SIZE * YUV420SP_FACTOR; - ps_trns_addr->pu1_mb_v -= BLK8x8SIZE; - } - } // assign the deblock structure pointers to start of slice if(ps_dec->u1_separate_parse == 1) @@ -1726,7 +1779,6 @@ WORD32 ih264d_parse_decode_slice(UWORD8 u1_is_idr_slice, } else { - if(ps_dec->u4_mb_level_deblk == 0) ps_dec->ps_deblk_mbn = ps_dec->ps_deblk_pic + (u2_first_mb_in_slice << u1_mb_aff); } @@ -1755,12 +1807,6 @@ WORD32 ih264d_parse_decode_slice(UWORD8 u1_is_idr_slice, // assign the deblock structure pointers to start of slice ps_dec->u2_cur_mb_addr = 0; ps_dec->ps_deblk_mbn = ps_dec->ps_deblk_pic; - if(ps_dec->u4_mb_level_deblk == 1) - { - ps_dec->ps_deblk_mbn_curr = ps_dec->ps_deblk_mbn; - ps_dec->ps_deblk_mbn_prev = ps_dec->ps_deblk_mbn - + ps_dec->u1_recon_mb_grp; - } ps_dec->ps_mv_cur = ps_dec->s_cur_pic.ps_mv; ps_trns_addr->pu1_dest_y = ps_dec->s_cur_pic.pu1_buf1; ps_trns_addr->pu1_dest_u = ps_dec->s_cur_pic.pu1_buf2; @@ -1789,24 +1835,13 @@ WORD32 ih264d_parse_decode_slice(UWORD8 u1_is_idr_slice, ps_dec->u1_B = (u1_slice_type == B_SLICE); ps_dec->u4_next_mb_skip = 0; - ps_dec->ps_parse_cur_slice->u4_num_mbs_done_in_slice = 0; ps_dec->ps_parse_cur_slice->u4_first_mb_in_slice = ps_dec->ps_cur_slice->u2_first_mb_in_slice; ps_dec->ps_parse_cur_slice->slice_type = ps_dec->ps_cur_slice->u1_slice_type; - ps_dec->ps_parse_cur_slice->end_of_slice = 0; - ps_dec->ps_parse_cur_slice->last_slice_in_frame = 0; - - /*set to zero to indicate a valid slice has been decoded*/ - ps_dec->u4_first_slice_in_pic = 0; - ps_dec->u4_start_frame_decode = 1; - - - ps_dec->u4_start_bs_deblk = 1; - - ps_dec->ps_parse_cur_slice->u2_error_flag = 0; + ps_dec->u4_start_recon_deblk = 1; { WORD32 num_entries; WORD32 size; @@ -1820,16 +1855,24 @@ WORD32 ih264d_parse_decode_slice(UWORD8 u1_is_idr_slice, pu1_buf = (UWORD8 *)ps_dec->pv_map_ref_idx_to_poc_buf; pu1_buf += size * ps_dec->u2_cur_slice_num; - ps_dec->ps_parse_cur_slice->ppv_map_ref_idx_to_poc = (volatile void **)pu1_buf; + ps_dec->ps_parse_cur_slice->ppv_map_ref_idx_to_poc = ( void *)pu1_buf; } + if(ps_dec->u1_separate_parse) + { + ps_dec->ps_parse_cur_slice->pv_tu_coeff_data_start = ps_dec->pv_parse_tu_coeff_data; + } + else + { + ps_dec->pv_proc_tu_coeff_data = ps_dec->pv_parse_tu_coeff_data; + } + + ps_dec->pu4_wt_ofsts = ps_dec->pu4_wts_ofsts_mat; if(u1_slice_type == I_SLICE) { ps_dec->ps_cur_pic->u4_pack_slc_typ |= I_SLC_BIT; ret = ih264d_parse_islice(ps_dec, u2_first_mb_in_slice); - if(ret != OK) - return ret; if(ps_dec->i4_pic_type != B_SLICE && ps_dec->i4_pic_type != P_SLICE) ps_dec->i4_pic_type = I_SLICE; @@ -1839,8 +1882,6 @@ WORD32 ih264d_parse_decode_slice(UWORD8 u1_is_idr_slice, { ps_dec->ps_cur_pic->u4_pack_slc_typ |= P_SLC_BIT; ret = ih264d_parse_pslice(ps_dec, u2_first_mb_in_slice); - if(ret != OK) - return ret; ps_dec->u1_pr_sl_type = u1_slice_type; if(ps_dec->i4_pic_type != B_SLICE) ps_dec->i4_pic_type = P_SLICE; @@ -1849,20 +1890,27 @@ WORD32 ih264d_parse_decode_slice(UWORD8 u1_is_idr_slice, { ps_dec->ps_cur_pic->u4_pack_slc_typ |= B_SLC_BIT; ret = ih264d_parse_bslice(ps_dec, u2_first_mb_in_slice); - if(ret != OK) - return ret; ps_dec->u1_pr_sl_type = u1_slice_type; ps_dec->i4_pic_type = B_SLICE; } else return ERROR_INV_SLC_TYPE_T; - ps_dec->ps_parse_cur_slice->end_of_slice = 1; + if(ps_dec->u1_slice_header_done) + { + /*set to zero to indicate a valid slice has been decoded*/ + ps_dec->u4_first_slice_in_pic = 0; + ps_dec->u1_first_slice_in_stream = 0; + } + + if(ret != OK) + return ret; ps_dec->u2_cur_slice_num++; /* storing last Mb X and MbY of the slice */ ps_dec->i2_prev_slice_mbx = ps_dec->u2_mbx; ps_dec->i2_prev_slice_mby = ps_dec->u2_mby; + /* End of Picture detection */ if(ps_dec->u2_total_mbs_coded >= (ps_seq->u2_max_mb_addr + 1)) @@ -1882,6 +1930,6 @@ WORD32 ih264d_parse_decode_slice(UWORD8 u1_is_idr_slice, PRINT_BIN_BIT_RATIO(ps_dec) - return OK; + return ret; } diff --git a/decoder/ih264d_parse_slice.h b/decoder/ih264d_parse_slice.h index cf5f9ce..d812514 100644 --- a/decoder/ih264d_parse_slice.h +++ b/decoder/ih264d_parse_slice.h @@ -41,6 +41,15 @@ WORD32 ih264d_parse_decode_slice(UWORD8 u1_is_idr_slice, UWORD8 u1_nal_ref_idc, dec_struct_t * ps_dec ); +WORD32 ih264d_end_of_pic(dec_struct_t *ps_dec, + UWORD8 u1_is_idr_slice, + UWORD16 u2_frame_num); +WORD32 ih264d_start_of_pic(dec_struct_t *ps_dec, + WORD32 i4_poc, + pocstruct_t *ps_temp_poc, + UWORD16 u2_frame_num, + dec_pic_params_t *ps_pps); + WORD32 ih264d_ref_idx_reordering(dec_struct_t * ps_dec, UWORD8 u1_isB); WORD32 ih264d_read_mmco_commands(dec_struct_t * ps_dec); void ih264d_form_pred_weight_matrix(dec_struct_t *ps_dec); diff --git a/decoder/ih264d_process_intra_mb.c b/decoder/ih264d_process_intra_mb.c index 96006ce..d2da005 100644 --- a/decoder/ih264d_process_intra_mb.c +++ b/decoder/ih264d_process_intra_mb.c @@ -728,7 +728,7 @@ WORD32 ih264d_process_intra_mb(dec_struct_t * ps_dec, UWORD16 u2_use_left_mb_pack; UWORD8 *pu1_luma_pred_buffer; /* CHANGED CODE */ - UWORD8 *pu1_luma_rei1_buffer; + UWORD8 *pu1_luma_rec_buffer; UWORD8 *puc_top; mb_neigbour_params_t *ps_left_mb; @@ -751,7 +751,7 @@ WORD32 ih264d_process_intra_mb(dec_struct_t * ps_dec, UWORD8 *pu1_mb_cb_rei1_buffer, *pu1_mb_cr_rei1_buffer; UWORD32 u4_recwidth_cr; /* CHANGED CODE */ - tfr_ctxt_t *ps_frame_buf = &ps_dec->s_tran_addrecon; + tfr_ctxt_t *ps_frame_buf = ps_dec->ps_frame_buf_ip_recon; UWORD32 u4_luma_dc_only_csbp = 0; UWORD32 u4_luma_dc_only_cbp = 0; @@ -822,7 +822,7 @@ WORD32 ih264d_process_intra_mb(dec_struct_t * ps_dec, /*********************Common pointer calculations *************************/ /* CHANGED CODE */ pu1_luma_pred_buffer = ps_dec->pu1_y; - pu1_luma_rei1_buffer = ps_frame_buf->pu1_dest_y + (u4_num_pmbair << 4); + pu1_luma_rec_buffer = ps_frame_buf->pu1_dest_y + (u4_num_pmbair << 4); pu1_mb_cb_rei1_buffer = ps_frame_buf->pu1_dest_u + (u4_num_pmbair << 3) * YUV420SP_FACTOR; pu1_mb_cr_rei1_buffer = ps_frame_buf->pu1_dest_v + (u4_num_pmbair << 3); @@ -835,7 +835,7 @@ WORD32 ih264d_process_intra_mb(dec_struct_t * ps_dec, { if(u1_topmb == 0) { - pu1_luma_rei1_buffer += ( + pu1_luma_rec_buffer += ( u1_mb_field_decoding_flag ? (ui_rec_width >> 1) : (ui_rec_width << 4)); @@ -859,13 +859,13 @@ WORD32 ih264d_process_intra_mb(dec_struct_t * ps_dec, } else { - puc_top = pu1_luma_rei1_buffer - ui_rec_width; + puc_top = pu1_luma_rec_buffer - ui_rec_width; pu1_top_u = pu1_mb_cb_rei1_buffer - u4_recwidth_cr; } /* CHANGED CODE */ /************* Left pointer *****************/ - pu1_yleft = pu1_luma_rei1_buffer - 1; + pu1_yleft = pu1_luma_rec_buffer - 1; pu1_uleft = pu1_mb_cb_rei1_buffer - 1 * YUV420SP_FACTOR; /**************Top Left pointer calculation**********/ @@ -924,9 +924,7 @@ WORD32 ih264d_process_intra_mb(dec_struct_t * ps_dec, (u1_intrapred_mode ^ 2); if((u1_err_code & u1_packed_modes) ^ u1_err_code) - { - return ERROR_INTRAPRED; - } + ps_dec->i4_error_code = ERROR_INTRAPRED; } { UWORD8 au1_ngbr_pels[33]; @@ -957,7 +955,7 @@ WORD32 ih264d_process_intra_mb(dec_struct_t * ps_dec, } PROFILE_DISABLE_INTRA_PRED() ps_dec->apf_intra_pred_luma_16x16[u1_intrapred_mode]( - au1_ngbr_pels, pu1_luma_rei1_buffer, 1, ui_rec_width, + au1_ngbr_pels, pu1_luma_rec_buffer, 1, ui_rec_width, ((uc_useTopMB << 2) | u2_use_left_mb)); } { @@ -966,7 +964,7 @@ WORD32 ih264d_process_intra_mb(dec_struct_t * ps_dec, for(i = 0; i < 16; i++) { WORD16 *pi2_level = pi2_y_coeff + (i << 4); - UWORD8 *pu1_pred_sblk = pu1_luma_rei1_buffer + UWORD8 *pu1_pred_sblk = pu1_luma_rec_buffer + ((i & 0x3) * BLK_SIZE) + (i >> 2) * (ui_rec_width << 2); PROFILE_DISABLE_IQ_IT_RECON() @@ -1202,20 +1200,20 @@ WORD32 ih264d_process_intra_mb(dec_struct_t * ps_dec, { if(u1_sub_blk_y) - pu1_top = pu1_luma_rei1_buffer - ui_rec_width; + pu1_top = pu1_luma_rec_buffer - ui_rec_width; else pu1_top = puc_top + (u1_sub_blk_x << 2); } else { - pu1_top = pu1_luma_rei1_buffer - ui_rec_width; + pu1_top = pu1_luma_rec_buffer - ui_rec_width; } /***************** Top Right *********************/ pu1_top_right = pu1_top + 4; /***************** Top Left *********************/ pu1_top_left = pu1_top - 1; /***************** Left *********************/ - pu1_left = pu1_luma_rei1_buffer - 1; + pu1_left = pu1_luma_rec_buffer - 1; /* CHANGED CODE */ /*---------------------------------------------------------------*/ @@ -1289,7 +1287,7 @@ WORD32 ih264d_process_intra_mb(dec_struct_t * ps_dec, } PROFILE_DISABLE_INTRA_PRED() ps_dec->apf_intra_pred_luma_4x4[i1_intra_pred]( - au1_ngbr_pels, pu1_luma_rei1_buffer, 1, + au1_ngbr_pels, pu1_luma_rec_buffer, 1, ui_rec_width, ((u1_is_top_sub_block << 2) | u1_is_left_sub_block)); @@ -1303,8 +1301,8 @@ WORD32 ih264d_process_intra_mb(dec_struct_t * ps_dec, { ps_dec->pf_iquant_itrans_recon_luma_4x4_dc( pi2_y_coeff1, - pu1_luma_rei1_buffer, - pu1_luma_rei1_buffer, + pu1_luma_rec_buffer, + pu1_luma_rec_buffer, ui_rec_width, ui_rec_width, gau2_ih264_iquant_scale_4x4[ps_cur_mb_info->u1_qp_rem6], @@ -1316,8 +1314,8 @@ WORD32 ih264d_process_intra_mb(dec_struct_t * ps_dec, { ps_dec->pf_iquant_itrans_recon_luma_4x4( pi2_y_coeff1, - pu1_luma_rei1_buffer, - pu1_luma_rei1_buffer, + pu1_luma_rec_buffer, + pu1_luma_rec_buffer, ui_rec_width, ui_rec_width, gau2_ih264_iquant_scale_4x4[ps_cur_mb_info->u1_qp_rem6], @@ -1333,7 +1331,7 @@ WORD32 ih264d_process_intra_mb(dec_struct_t * ps_dec, /* Update sub block number */ /*---------------------------------------------------------------*/ pi2_y_coeff1 += 16; - pu1_luma_rei1_buffer += + pu1_luma_rec_buffer += (u1_sub_blk_x == 3) ? (ui_rec_width << 2) - 12 : 4; pu1_luma_pred_buffer += (u1_sub_blk_x == 3) ? (ui_pred_width << 2) - 12 : 4; @@ -1591,7 +1589,7 @@ WORD32 ih264d_process_intra_mb(dec_struct_t * ps_dec, { u1_is_top_sub_block = 1; // sushant - pu1_top = /*pu1_luma_pred_buffer*/pu1_luma_rei1_buffer - ui_rec_width; + pu1_top = /*pu1_luma_pred_buffer*/pu1_luma_rec_buffer - ui_rec_width; } else { @@ -1602,7 +1600,7 @@ WORD32 ih264d_process_intra_mb(dec_struct_t * ps_dec, if((u1_sub_blk_x) | (u4_num_pmbair != 0)) { // sushant - pu1_left = /*pu1_luma_pred_buffer*/pu1_luma_rei1_buffer - 1; + pu1_left = /*pu1_luma_pred_buffer*/pu1_luma_rec_buffer - 1; ui2_left_pred_buf_width = ui_rec_width; } else @@ -1651,9 +1649,7 @@ WORD32 ih264d_process_intra_mb(dec_struct_t * ps_dec, UWORD8 u1_err_code = pu1_intra_err_codes[i1_intra_pred]; if((u1_err_code & u1_packed_modes) ^ u1_err_code) - { - return ERROR_INTRAPRED; - } + ps_dec->i4_error_code = ERROR_INTRAPRED; } } @@ -1675,7 +1671,7 @@ WORD32 ih264d_process_intra_mb(dec_struct_t * ps_dec, ngbr_avail); ps_dec->apf_intra_pred_luma_8x8[i1_intra_pred]( - au1_ngbr_pels, pu1_luma_rei1_buffer, 1, + au1_ngbr_pels, pu1_luma_rec_buffer, 1, ui_rec_width, ((u1_is_top_sub_block << 2) | u1_is_left_sub_block)); } @@ -1695,8 +1691,8 @@ WORD32 ih264d_process_intra_mb(dec_struct_t * ps_dec, { ps_dec->pf_iquant_itrans_recon_luma_8x8_dc( pi2_y_coeff1, - pu1_luma_rei1_buffer, - pu1_luma_rei1_buffer, + pu1_luma_rec_buffer, + pu1_luma_rec_buffer, ui_rec_width, ui_rec_width, gau1_ih264d_dequant8x8_cavlc[ps_cur_mb_info->u1_qp_rem6], @@ -1708,8 +1704,8 @@ WORD32 ih264d_process_intra_mb(dec_struct_t * ps_dec, { ps_dec->pf_iquant_itrans_recon_luma_8x8( pi2_y_coeff1, - pu1_luma_rei1_buffer, - pu1_luma_rei1_buffer, + pu1_luma_rec_buffer, + pu1_luma_rec_buffer, ui_rec_width, ui_rec_width, gau1_ih264d_dequant8x8_cavlc[ps_cur_mb_info->u1_qp_rem6], @@ -1726,7 +1722,7 @@ WORD32 ih264d_process_intra_mb(dec_struct_t * ps_dec, /*---------------------------------------------------------------*/ pi2_y_coeff1 += 64; - pu1_luma_rei1_buffer += + pu1_luma_rec_buffer += (u1_sub_blk_x == 1) ? (ui_rec_width << 3) - (8 * 1) : 8; @@ -1765,7 +1761,7 @@ WORD32 ih264d_process_intra_mb(dec_struct_t * ps_dec, u1_intra_chrom_pred_mode : (u1_intra_chrom_pred_mode ^ 2); if((u1_err_code & u1_packed_modes) ^ u1_err_code) - return ERROR_INTRAPRED; + ps_dec->i4_error_code = ERROR_INTRAPRED; } /* CHANGED CODE */ diff --git a/decoder/ih264d_process_pslice.c b/decoder/ih264d_process_pslice.c index b1230f6..2c7446e 100644 --- a/decoder/ih264d_process_pslice.c +++ b/decoder/ih264d_process_pslice.c @@ -169,8 +169,6 @@ WORD32 ih264d_mv_pred_ref_tfr_nby2_pmb(dec_struct_t * ps_dec, /**************************************************/ /* Loop on Partitions */ /**************************************************/ - ps_dec->u4_dma_buf_idx = 0; - for(j = 0; j < u1_num_part; j++, ps_part++) { @@ -331,9 +329,7 @@ WORD32 ih264d_mv_pred_ref_tfr_nby2_pmb(dec_struct_t * ps_dec, return OK; } -#if THREAD_PARSE -#else WORD32 ih264d_decode_recon_tfr_nmb(dec_struct_t * ps_dec, UWORD8 u1_mb_idx, UWORD8 u1_num_mbs, @@ -437,42 +433,57 @@ WORD32 ih264d_decode_recon_tfr_nmb(dec_struct_t * ps_dec, if((u1_ipcm_th + 25) != ps_cur_mb_info->u1_mb_type) { ps_cur_mb_info->u1_mb_type -= (u1_skip_th + 1); - ret = ih264d_process_intra_mb(ps_dec, ps_cur_mb_info, j); - if(ret != OK) - return ret; + ih264d_process_intra_mb(ps_dec, ps_cur_mb_info, j); } } - if(ps_dec->u4_mb_level_deblk == 1) - { - ih264d_deblock_mb_level(ps_dec, ps_cur_mb_info, j); - - } - if(u1_mbaff) + if(ps_dec->u4_use_intrapred_line_copy) { - if(u4_update_mbaff) - { - UWORD32 u4_mb_num = ps_cur_mb_info->u2_mbx - + ps_dec->u2_frm_wd_in_mbs - * (ps_cur_mb_info->u2_mby >> 1); - UPDATE_MB_MAP_MBNUM_BYTE(ps_dec->pu1_recon_mb_map, u4_mb_num); - u4_update_mbaff = 0; - } - else - { - u4_update_mbaff = 1; - } + ih264d_copy_intra_pred_line(ps_dec, ps_cur_mb_info, j); } - else + + } + + /*N MB deblocking*/ + if(ps_dec->u4_nmb_deblk == 1) + { + + UWORD32 u4_cur_mb, u4_right_mb; + UWORD32 u4_mb_x, u4_mb_y; + UWORD32 u4_wd_y, u4_wd_uv; + tfr_ctxt_t *ps_tfr_cxt = &(ps_dec->s_tran_addrecon); + UWORD8 u1_field_pic_flag = ps_dec->ps_cur_slice->u1_field_pic_flag; + const WORD32 i4_cb_qp_idx_ofst = + ps_dec->ps_cur_pps->i1_chroma_qp_index_offset; + const WORD32 i4_cr_qp_idx_ofst = + ps_dec->ps_cur_pps->i1_second_chroma_qp_index_offset; + + u4_wd_y = ps_dec->u2_frm_wd_y << u1_field_pic_flag; + u4_wd_uv = ps_dec->u2_frm_wd_uv << u1_field_pic_flag; + + + ps_cur_mb_info = ps_dec->ps_nmb_info + u1_mb_idx; + + ps_dec->u4_deblk_mb_x = ps_cur_mb_info->u2_mbx; + ps_dec->u4_deblk_mb_y = ps_cur_mb_info->u2_mby; + + for(j = u1_mb_idx; j < i; j++) { - UWORD32 u4_mb_num = ps_cur_mb_info->u2_mbx - + ps_dec->u2_frm_wd_in_mbs * ps_cur_mb_info->u2_mby; - UPDATE_MB_MAP_MBNUM_BYTE(ps_dec->pu1_recon_mb_map, u4_mb_num); + + ih264d_deblock_mb_nonmbaff(ps_dec, ps_tfr_cxt, + i4_cb_qp_idx_ofst, i4_cr_qp_idx_ofst, + u4_wd_y, u4_wd_uv); + + } + + + } + if(u1_tfr_n_mb) { /****************************************************************/ @@ -496,18 +507,6 @@ WORD32 ih264d_decode_recon_tfr_nmb(dec_struct_t * ps_dec, u1_end_of_row_next); ps_dec->u4_num_mbs_prev_nmb = u1_num_mbs; - if(u1_end_of_row) - { - /* Reset the N-Mb Recon Buf Index to default Values */ - ps_dec->u2_mb_group_cols_y1 = ps_dec->u2_mb_group_cols_y; - ps_dec->u2_mb_group_cols_cr1 = ps_dec->u2_mb_group_cols_cr; - } - /* If next N-Mb Group is the EndOfRow, set the N-Mb Recon Buf Index */ - else if(u1_end_of_row_next) - { - ps_dec->u2_mb_group_cols_y1 = (u1_num_mbs_next << 4) + 8; - ps_dec->u2_mb_group_cols_cr1 = (u1_num_mbs_next << 3) + 8; - } ps_dec->u4_pred_info_idx = 0; ps_dec->u4_dma_buf_idx = 0; @@ -515,7 +514,7 @@ WORD32 ih264d_decode_recon_tfr_nmb(dec_struct_t * ps_dec, } return OK; } -#endif + /*! ************************************************************************** * \if Function name : ih264d_process_inter_mb \endif @@ -543,7 +542,7 @@ WORD32 ih264d_process_inter_mb(dec_struct_t * ps_dec, UWORD32 uc_botMb; UWORD32 u4_num_pmbair; /* CHANGED CODE */ - tfr_ctxt_t *ps_frame_buf = &ps_dec->s_tran_addrecon; + tfr_ctxt_t *ps_frame_buf = ps_dec->ps_frame_buf_ip_recon; UWORD32 u4_luma_dc_only_csbp = 0; UWORD32 u4_luma_dc_only_cbp = 0; /* CHANGED CODE */ diff --git a/decoder/ih264d_structs.h b/decoder/ih264d_structs.h index 110f71d..4e3f0bb 100644 --- a/decoder/ih264d_structs.h +++ b/decoder/ih264d_structs.h @@ -50,6 +50,9 @@ #include "ih264_deblk_edge_filters.h" + + + /** Number of Mb's whoose syntax will be read */ /************************************************************/ /* MB_GROUP should be a multiple of 2 */ @@ -59,10 +62,6 @@ /* MV_SCRATCH_BUFS assumed to be pow(2) */ #define MV_SCRATCH_BUFS 4 -#define LEFT_MB_PIXELS 4 -#define LEFT_MB_PIXELS_Y_FRM_BOT 64 /* 4 * 16 */ -#define LEFT_MB_PIXELS_CR_FRM_BOT 32 /* 4 * 8 */ - #define TOP_FIELD_ONLY 0x02 #define BOT_FIELD_ONLY 0x01 @@ -71,10 +70,6 @@ struct _DecStruct; struct _DecMbInfo; - -#define NUM_INT_G_TABLE ((UWORD32) (sigcoeff_ctxtinc_field8x8 + 1)) -#define NUM_EXT_G_TABLE ((UWORD32) (ITTIAM_LOGO_V_BUF_T + 1)) - typedef enum { MB_TYPE_SI_SLICE = 0, @@ -128,44 +123,6 @@ typedef enum COEFF_ABS_LEVEL_CAT_5_OFFSET = 0 } cabac_blk_cat_offset_t; -typedef enum -{ - CABAC_IPBMB_LD_ADRS_T, - CABAC_IPBMB_LD_SZ_T, - CAVLC_IPBMB_LD_ADRS_T, - CAVLC_IPBMB_LD_SZ_T, - PARSE_IPBMB_RUN_ADRS_T, - - MVP_MBAFF_LD_ADRS_T, - MVP_MBAFF_LD_SZ_T, - MVP_NON_MBAFF_LD_ADRS_T, - MVP_NON_MBAFF_LD_SZ_T, - MVPRED_RUN_ADRS_T, - - B_REF_DMA_LD_ADRS_T, - B_REF_DMA_LD_SZ_T, - P_REF_DMA_LD_ADRS_T, - P_REF_DMA_LD_SZ_T, - REF_DMA_RUN_ADRS_T, - - SP_DRCT_LD_ADRS_T, - SP_DRCT_LD_SZ_T, - TMP_DRCT_LD_ADRS_T, - TMP_DRCT_LD_SZ_T, - B_SKIP_RUN_ADRS_T, - - DEC_DEBLK_RUN_ADRS_T, - H264_DBLK_LD_ADRS_T, - H264_DBLK_LD_SZ_T, - H264_DEC_LD_ADRS_T, - - /* - * (H264_DEC_LD_SZ_T + 1) will be considered as the end of this table - * new members to be added before this - */ - H264_DEC_LD_SZ_T -} code_overlay_tab_t; - /** Structure for the MV bank */ typedef struct _mv_pred_t { @@ -280,13 +237,8 @@ typedef struct }col_mv_buf_t; -/* Note the i4_size of this structure is hardcoded in arm_default_weighted_Pred.s as 0x3C. - * ADD r0,r0,#0x3C and so on.. - * If there is a change in i4_size update above file accordingly. - */ typedef struct { - UWORD8 u1_mc_addr_ofst; /** Offset in bytes relative to pu1_dma_dest_addr */ UWORD8 u1_dydx; /** 4*dy + dx for Y comp / 8*dy + dx for UV comp */ UWORD8 u1_is_bi_direct; /** 1: is bi-direct 0: forward / backward only */ UWORD8 u1_wght_pred_type; /** 0-default 1-singleWeighted 2-BiWeighted */ @@ -723,23 +675,12 @@ typedef struct typedef struct _dec_slice_struct { volatile UWORD32 u4_first_mb_in_slice; - volatile UWORD32 u4_num_mbs_done_in_slice; volatile UWORD32 slice_type; - volatile UWORD32 end_of_slice; - volatile UWORD32 slice_header_done; - volatile UWORD32 last_slice_in_frame; volatile UWORD16 u2_log2Y_crwd; - volatile UWORD16 u2_error_flag; volatile void **ppv_map_ref_idx_to_poc; + volatile void *pv_tu_coeff_data_start; } dec_slice_struct_t; -typedef struct -{ - UWORD32 u4_flag; - UWORD32 u4_start_y; - UWORD32 u4_num_rows_y; -} fmt_conv_part_t; - /** * Structure to hold coefficient info for a 4x4 transform */ @@ -811,7 +752,7 @@ typedef struct _DecStruct UWORD16 u2_pic_wd; /** Width of the picture being decoded */ UWORD16 u2_pic_ht; /** Height of the picture being decoded */ - UWORD8 u1_first_nal_in_pic; + UWORD8 u1_first_slice_in_stream; UWORD8 u1_mb_ngbr_availablity; UWORD8 u1_ref_idxl0_active_minus1; UWORD8 u1_qp; @@ -885,6 +826,7 @@ typedef struct _DecStruct * */ void *pv_parse_tu_coeff_data; + void *pv_prev_mb_parse_tu_coeff_data; void *pv_proc_tu_coeff_data; @@ -966,6 +908,9 @@ typedef struct _DecStruct /* DMA SETUP */ tfr_ctxt_t s_tran_addrecon_parse; tfr_ctxt_t s_tran_addrecon; + tfr_ctxt_t s_tran_iprecon; + tfr_ctxt_t *ps_frame_buf_ip_recon; + WORD8 i1_recon_in_thread3_flag; /* slice Header Simplification */ UWORD8 u1_pr_sl_type; @@ -1078,10 +1023,6 @@ typedef struct _DecStruct UWORD8 u1_y_topleft[2]; /** Left Y pointer, used for intra-pred */ UWORD8 u1_u_topleft[2]; /** Left U pointer, used for intra-pred */ UWORD8 u1_v_topleft[2]; /** Left V pointer, used for intra-pred */ - UWORD16 u2_mb_group_cols_y; /** Number of Y pixels in the N MB group */ - UWORD16 u2_mb_group_cols_cr; /** Number of U/V pixels in the N MB group */ - UWORD16 u2_mb_group_cols_y1; /** Number of Y pixels in the N MB group */ - UWORD16 u2_mb_group_cols_cr1; /** Number of U/V pixels in the N MB group */ mv_pred_t *ps_mv_cur; /** pointer to current motion vector bank */ mv_pred_t *ps_mv_top; /** pointer to top motion vector bank */ @@ -1317,6 +1258,7 @@ typedef struct _DecStruct /* Output format sent by the application */ UWORD8 u1_chroma_format; UWORD8 u1_pic_decode_done; + UWORD8 u1_slice_header_done; UWORD32 u4_level_at_init; UWORD32 u4_width_at_init; UWORD32 u4_height_at_init; @@ -1348,9 +1290,10 @@ typedef struct _DecStruct WORD32 i4_display_delay; UWORD32 u4_slice_start_code_found; - UWORD32 u4_mb_level_deblk; + UWORD32 u4_nmb_deblk; UWORD32 u4_use_intrapred_line_copy; UWORD32 u4_num_mbs_prev_nmb; + UWORD32 u4_num_mbs_cur_nmb; UWORD32 u4_app_deblk_disable_level; UWORD32 u4_app_disable_deblk_frm; WORD32 i4_app_skip_mode; @@ -1366,18 +1309,17 @@ typedef struct _DecStruct WORD32 i4_dec_skip_mode; UWORD32 u4_bs_deblk_thread_created; - volatile UWORD32 u4_start_bs_deblk; + volatile UWORD32 u4_start_recon_deblk; void *pv_bs_deblk_thread_handle; UWORD32 u4_cur_bs_mb_num; UWORD32 u4_bs_cur_slice_num_mbs; - UWORD32 u4_cur_slice_bs_done; UWORD32 u4_cur_deblk_mb_num; volatile UWORD16 u2_cur_slice_num_bs; UWORD32 u4_deblk_mb_x; UWORD32 u4_deblk_mb_y; - deblk_mb_t *ps_cur_deblk_thrd_mb; + iv_yuv_buf_t s_disp_frame_info; @@ -1389,12 +1331,12 @@ typedef struct _DecStruct UWORD32 u4_output_present; volatile UWORD16 cur_dec_mb_num; + volatile UWORD16 cur_recon_mb_num; volatile UWORD16 u2_cur_mb_addr; WORD16 i2_dec_thread_mb_y; + WORD16 i2_recon_thread_mb_y; UWORD8 u1_separate_parse; -// 0: slice parse not started, 1: slice decode can start, 2: slice in error - volatile UWORD32 u4_start_frame_decode; UWORD32 u4_dec_thread_created; void *pv_dec_thread_handle; volatile UWORD8 *pu1_dec_mb_map; @@ -1442,11 +1384,7 @@ typedef struct _DecStruct */ WORD32 i4_degrade_pic_cnt; - fmt_conv_part_t as_fmt_conv_part[2]; - UWORD32 u4_fmt_conv_in_process; UWORD32 u4_pic_buf_got; - UWORD16 u2_mb_skip_error; - volatile UWORD16 u2_skip_deblock; /** * Col flag and mv pred buffer manager diff --git a/decoder/ih264d_tables.c b/decoder/ih264d_tables.c index ddca2fb..d49de14 100644 --- a/decoder/ih264d_tables.c +++ b/decoder/ih264d_tables.c @@ -35,6 +35,7 @@ #include "ih264_macros.h" #include "ih264_platform_macros.h" #include "ih264d_defs.h" +#include "ih264d_tables.h" const UWORD8 gau1_ih264d_qp_scale_cr[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, diff --git a/decoder/ih264d_tables.h b/decoder/ih264d_tables.h index 04dfbd0..88af4ec 100644 --- a/decoder/ih264d_tables.h +++ b/decoder/ih264d_tables.h @@ -48,7 +48,7 @@ extern const UWORD8 gau1_ih264d_clip_table[][4]; /*Parsing Table declaration*/ extern const UWORD8 gau1_ih264d_cbp_tab[6]; -extern const UWORD32 gau4_ih264d_packed_bs2[16]; +extern const UWORD32 gau4_ih264d_packed_bs2[32]; extern const UWORD16 gau2_ih264d_4x4_v2h_reorder[16]; extern const UWORD8 gau1_ih264d_subblk_offset[16]; extern const UWORD8 gau1_ih264d_cbp_table[48][2]; @@ -132,7 +132,7 @@ extern const UWORD8 gau1_ih264d_total_coeff_fn_ptr_offset[16]; extern const WORD16 gai2_ih264d_trailing_one_level[14][3]; /*Decode CABAC Table declaration*/ -extern const UWORD32 gau4_ih264d_cabac_table[]; +extern const UWORD32 gau4_ih264d_cabac_table[128][4]; /****************************************************************************/ /* For error detection in intra pred4x4 modes */ diff --git a/decoder/ih264d_thread_compute_bs.c b/decoder/ih264d_thread_compute_bs.c index 6812d57..951cef4 100644 --- a/decoder/ih264d_thread_compute_bs.c +++ b/decoder/ih264d_thread_compute_bs.c @@ -46,6 +46,8 @@ #include "ih264d_thread_compute_bs.h" #include "ithread.h" #include "ih264d_deblocking.h" +#include "ih264d_process_pslice.h" +#include "ih264d_process_intra_mb.h" #include "ih264d_mb_utils.h" #include "ih264d_tables.h" #include "ih264d_format_conv.h" @@ -56,6 +58,9 @@ void ih264d_fill_bs2_horz_vert(UWORD32 *pu4_bs, /* Base pointer of BS table */ WORD32 u4_top_mb_csbp, /* csbp of top mb */ WORD32 u4_cur_mb_csbp, /* csbp of current mb */ const UWORD32 *pu4_packed_bs2, const UWORD16 *pu2_4x4_v2h_reorder); +void ih264d_copy_intra_pred_line(dec_struct_t *ps_dec, + dec_mb_info_t *ps_cur_mb_info, + UWORD32 nmb_index); #define BS_MB_GROUP 4 #define DEBLK_MB_GROUP 1 @@ -107,6 +112,8 @@ void ih264d_compute_bs_non_mbaff_thread(dec_struct_t * ps_dec, const UWORD32 u2_mbx = ps_cur_mb_info->u2_mbx; const UWORD32 u2_mby = ps_cur_mb_info->u2_mby; const UWORD32 u1_pingpong = u2_mbx & 0x01; + + PROFILE_DISABLE_BOUNDARY_STRENGTH() ps_deblk_top_mb = ps_dec->ps_deblk_top_mb + u2_mbx; /* Pointer assignment for Current DeblkMB, Current Mv Pred */ @@ -307,18 +314,16 @@ void ih264d_compute_bs_non_mbaff_thread(dec_struct_t * ps_dec, } } + void ih264d_check_mb_map_deblk(dec_struct_t *ps_dec, - UWORD32 deblk_mb_grp, - tfr_ctxt_t *ps_tfr_cxt) + UWORD32 deblk_mb_grp, + tfr_ctxt_t *ps_tfr_cxt, + UWORD32 u4_check_mb_map) { UWORD32 i = 0; UWORD32 u4_mb_num; - UWORD32 u4_cur_mb, u4_right_mb; + UWORD32 u4_cond; volatile UWORD8 *mb_map = ps_dec->pu1_recon_mb_map; - UWORD32 u4_mb_x, u4_mb_y, u4_image_wd_mb; - deblk_mb_t *ps_cur_mb = ps_dec->ps_cur_deblk_thrd_mb; - deblk_mb_t *ps_top_mb; - deblk_mb_t *ps_left_mb; const WORD32 i4_cb_qp_idx_ofst = ps_dec->ps_cur_pps->i1_chroma_qp_index_offset; const WORD32 i4_cr_qp_idx_ofst = @@ -327,171 +332,100 @@ void ih264d_check_mb_map_deblk(dec_struct_t *ps_dec, UWORD32 u4_wd_y, u4_wd_uv; UWORD8 u1_field_pic_flag = ps_dec->ps_cur_slice->u1_field_pic_flag; - u4_mb_num = ps_dec->u4_cur_deblk_mb_num; - u4_mb_x = ps_dec->u4_deblk_mb_x; - u4_mb_y = ps_dec->u4_deblk_mb_y; - u4_image_wd_mb = ps_dec->u2_frm_wd_in_mbs; + u4_wd_y = ps_dec->u2_frm_wd_y << u1_field_pic_flag; u4_wd_uv = ps_dec->u2_frm_wd_uv << u1_field_pic_flag; - ps_cur_mb = ps_dec->ps_cur_deblk_thrd_mb; + for(i = 0; i < deblk_mb_grp; i++) { - - //while(1) - //{ - CHECK_MB_MAP_BYTE(u4_mb_num, mb_map, u4_cur_mb); - - if(ps_dec->u4_cur_bs_mb_num <= u4_mb_num) - u4_cur_mb = 0; - - if(u4_mb_x < (u4_image_wd_mb - 1)) + WORD32 nop_cnt = 8*128; + while(u4_check_mb_map == 1) { - CHECK_MB_MAP_BYTE((u4_mb_num + 1), mb_map, u4_right_mb); - } - else - u4_right_mb = 1; + u4_mb_num = ps_dec->u4_cur_deblk_mb_num; + /*we wait for the right mb because of intra pred data dependency*/ + u4_mb_num = MIN(u4_mb_num + 1, (ps_dec->u4_deblk_mb_y + 1) * ps_dec->u2_frm_wd_in_mbs - 1); + CHECK_MB_MAP_BYTE(u4_mb_num, mb_map, u4_cond); - if((u4_cur_mb && u4_right_mb) == 0) - { - break; - } - else - { - - } - //} - - u4_mb_num++; - { - UWORD32 u4_deb_mode, u4_mbs_next; - u4_deb_mode = ps_cur_mb->u1_deblocking_mode; - if(!(u4_deb_mode & MB_DISABLE_FILTERING)) + if(u4_cond) { - - if(u4_mb_x) - { - ps_left_mb = ps_cur_mb - 1; - - } - else - { - ps_left_mb = NULL; - - } - if(u4_mb_y != 0) + break; + } + else + { + if(nop_cnt > 0) { - ps_top_mb = ps_cur_mb - (u4_image_wd_mb); + nop_cnt -= 128; + NOP(128); } else { - ps_top_mb = NULL; + nop_cnt = 8*128; + ithread_yield(); } - - if(u4_deb_mode & MB_DISABLE_LEFT_EDGE) - ps_left_mb = NULL; - if(u4_deb_mode & MB_DISABLE_TOP_EDGE) - ps_top_mb = NULL; - - ih264d_deblock_mb_nonmbaff(ps_dec, ps_tfr_cxt, - i4_cb_qp_idx_ofst, i4_cr_qp_idx_ofst, - ps_cur_mb, u4_wd_y, u4_wd_uv, - ps_top_mb, ps_left_mb); - } + } - ps_cur_mb++; - u4_mb_x++; - u4_mbs_next = u4_image_wd_mb - u4_mb_x; + ih264d_deblock_mb_nonmbaff(ps_dec, ps_tfr_cxt, + i4_cb_qp_idx_ofst, i4_cr_qp_idx_ofst, + u4_wd_y, u4_wd_uv); - ps_tfr_cxt->pu1_mb_y += 16; - ps_tfr_cxt->pu1_mb_u += 8 * YUV420SP_FACTOR; - ps_tfr_cxt->pu1_mb_v += 8; - - if(!u4_mbs_next) - { - ps_tfr_cxt->pu1_mb_y += ps_tfr_cxt->u4_y_inc; - ps_tfr_cxt->pu1_mb_u += ps_tfr_cxt->u4_uv_inc; - ps_tfr_cxt->pu1_mb_v += ps_tfr_cxt->u4_uv_inc; - u4_mb_y++; - u4_mb_x = 0; - } - } } - ps_dec->u4_cur_deblk_mb_num = u4_mb_num; - ps_dec->u4_deblk_mb_x = u4_mb_x; - ps_dec->u4_deblk_mb_y = u4_mb_y; - ps_dec->ps_cur_deblk_thrd_mb = ps_cur_mb; } - -void ih264d_check_mb_map_deblk_wait(dec_struct_t *ps_dec, - UWORD32 deblk_mb_grp, - tfr_ctxt_t *ps_tfr_cxt) +void ih264d_recon_deblk_slice(dec_struct_t *ps_dec, tfr_ctxt_t *ps_tfr_cxt) { - UWORD32 i = 0; + dec_mb_info_t *p_cur_mb; + UWORD32 u4_max_addr; + WORD32 i; + UWORD32 u1_mb_aff; + UWORD16 u2_slice_num; UWORD32 u4_mb_num; - UWORD32 u4_cur_mb, u4_right_mb; - volatile UWORD8 *mb_map = ps_dec->pu1_recon_mb_map; - UWORD32 u4_mb_x, u4_mb_y, u4_image_wd_mb; - deblk_mb_t *ps_cur_mb = ps_dec->ps_cur_deblk_thrd_mb; - deblk_mb_t *ps_top_mb; - deblk_mb_t *ps_left_mb; - const WORD32 i4_cb_qp_idx_ofst = - ps_dec->ps_cur_pps->i1_chroma_qp_index_offset; - const WORD32 i4_cr_qp_idx_ofst = - ps_dec->ps_cur_pps->i1_second_chroma_qp_index_offset; - - UWORD32 u4_wd_y, u4_wd_uv; - UWORD8 u1_field_pic_flag = ps_dec->ps_cur_slice->u1_field_pic_flag; - - u4_mb_num = ps_dec->u4_cur_deblk_mb_num; - u4_mb_x = ps_dec->u4_deblk_mb_x; - u4_mb_y = ps_dec->u4_deblk_mb_y; - u4_image_wd_mb = ps_dec->u2_frm_wd_in_mbs; - u4_wd_y = ps_dec->u2_frm_wd_y << u1_field_pic_flag; - u4_wd_uv = ps_dec->u2_frm_wd_uv << u1_field_pic_flag; - ps_cur_mb = ps_dec->ps_cur_deblk_thrd_mb; - - for(i = 0; i < deblk_mb_grp; i++) + UWORD16 u2_first_mb_in_slice; + UWORD32 i2_pic_wdin_mbs; + UWORD8 u1_num_mbsleft, u1_end_of_row; + UWORD8 u1_mbaff; + UWORD16 i16_mb_x, i16_mb_y; + WORD32 j; + dec_mb_info_t * ps_cur_mb_info; + UWORD32 u1_slice_type, u1_B; + WORD32 u1_skip_th; + UWORD32 u1_ipcm_th; + WORD32 ret; + tfr_ctxt_t *ps_trns_addr; + UWORD32 u4_frame_stride; + UWORD32 x_offset, y_offset; + UWORD32 u4_slice_end; + pad_mgr_t *ps_pad_mgr ; + + /*check for mb map of first mb in slice to ensure slice header is parsed*/ + while(1) { + UWORD32 u4_mb_num = ps_dec->cur_recon_mb_num; + UWORD32 u4_cond = 0; + WORD32 nop_cnt = 8*128; - while(1) + CHECK_MB_MAP_BYTE(u4_mb_num, ps_dec->pu1_recon_mb_map, u4_cond); + if(u4_cond) { - CHECK_MB_MAP_BYTE(u4_mb_num, mb_map, u4_cur_mb); - - if(ps_dec->u4_cur_bs_mb_num <= u4_mb_num) - u4_cur_mb = 0; - - if(u4_mb_x < (u4_image_wd_mb - 1)) + break; + } + else + { + if(nop_cnt > 0) { - CHECK_MB_MAP_BYTE((u4_mb_num + 1), mb_map, u4_right_mb); + nop_cnt -= 128; + NOP(128); } else - u4_right_mb = 1; - - if(ps_dec->u2_mb_skip_error) { - ps_dec->u2_skip_deblock = 1; - break; - } - - - if(ps_dec->u2_skip_deblock == 1) - { - break; - } - if((u4_cur_mb && u4_right_mb) == 0) - { - - if(ps_dec->u4_output_present - && ps_dec->u4_fmt_conv_cur_row - < ps_dec->s_disp_frame_info.u4_y_ht) + if(ps_dec->u4_output_present && + (ps_dec->u4_fmt_conv_cur_row < ps_dec->s_disp_frame_info.u4_y_ht)) { ps_dec->u4_fmt_conv_num_rows = - MIN(ps_dec->u4_fmt_conv_num_rows, + MIN(FMT_CONV_NUM_ROWS, (ps_dec->s_disp_frame_info.u4_y_ht - ps_dec->u4_fmt_conv_cur_row)); ih264d_format_convert(ps_dec, &(ps_dec->s_disp_op), @@ -500,148 +434,217 @@ void ih264d_check_mb_map_deblk_wait(dec_struct_t *ps_dec, ps_dec->u4_fmt_conv_cur_row += ps_dec->u4_fmt_conv_num_rows; } else - NOP(32); - } - else - { - break; + { + nop_cnt = 8*128; + ithread_yield(); + } } + DEBUG_THREADS_PRINTF("waiting for mb mapcur_dec_mb_num = %d,ps_dec->u2_cur_mb_addr = %d\n",u2_cur_dec_mb_num, + ps_dec->u2_cur_mb_addr); + } + } - u4_mb_num++; - { - UWORD32 u4_deb_mode, u4_mbs_next; - u4_deb_mode = ps_cur_mb->u1_deblocking_mode; - if(!(u4_deb_mode & MB_DISABLE_FILTERING)) - { + u4_max_addr = ps_dec->ps_cur_sps->u2_max_mb_addr; + u1_mb_aff = ps_dec->ps_cur_slice->u1_mbaff_frame_flag; + u2_first_mb_in_slice = ps_dec->ps_computebs_cur_slice->u4_first_mb_in_slice; + i2_pic_wdin_mbs = ps_dec->u2_frm_wd_in_mbs; + u1_mbaff = ps_dec->ps_cur_slice->u1_mbaff_frame_flag; + ps_pad_mgr = &ps_dec->s_pad_mgr; - if(u4_mb_x) - { - ps_left_mb = ps_cur_mb - 1; + if(u2_first_mb_in_slice == 0) + ih264d_init_deblk_tfr_ctxt(ps_dec, ps_pad_mgr, ps_tfr_cxt, + ps_dec->u2_frm_wd_in_mbs, 0); - } - else - { - ps_left_mb = NULL; - } - if(u4_mb_y != 0) - { - ps_top_mb = ps_cur_mb - (u4_image_wd_mb); - } - else - { - ps_top_mb = NULL; - } + i16_mb_x = MOD(u2_first_mb_in_slice, i2_pic_wdin_mbs); + i16_mb_y = DIV(u2_first_mb_in_slice, i2_pic_wdin_mbs); + i16_mb_y <<= u1_mbaff; + ps_dec->i2_recon_thread_mb_y = i16_mb_y; + u4_frame_stride = ps_dec->u2_frm_wd_y + << ps_dec->ps_cur_slice->u1_field_pic_flag; - if(u4_deb_mode & MB_DISABLE_LEFT_EDGE) - ps_left_mb = NULL; - if(u4_deb_mode & MB_DISABLE_TOP_EDGE) - ps_top_mb = NULL; + x_offset = i16_mb_x << 4; + y_offset = (i16_mb_y * u4_frame_stride) << 4; + ps_trns_addr = &ps_dec->s_tran_iprecon; - ih264d_deblock_mb_nonmbaff(ps_dec, ps_tfr_cxt, - i4_cb_qp_idx_ofst, i4_cr_qp_idx_ofst, - ps_cur_mb, u4_wd_y, u4_wd_uv, - ps_top_mb, ps_left_mb); - } + ps_trns_addr->pu1_dest_y = ps_dec->s_cur_pic.pu1_buf1 + x_offset + y_offset; - ps_cur_mb++; - u4_mb_x++; - u4_mbs_next = u4_image_wd_mb - u4_mb_x; + u4_frame_stride = ps_dec->u2_frm_wd_uv + << ps_dec->ps_cur_slice->u1_field_pic_flag; + x_offset >>= 1; + y_offset = (i16_mb_y * u4_frame_stride) << 3; - ps_tfr_cxt->pu1_mb_y += 16; - ps_tfr_cxt->pu1_mb_u += 8 * YUV420SP_FACTOR; - ps_tfr_cxt->pu1_mb_v += 8; + x_offset *= YUV420SP_FACTOR; - if(!u4_mbs_next) - { - ps_tfr_cxt->pu1_mb_y += ps_tfr_cxt->u4_y_inc; - ps_tfr_cxt->pu1_mb_u += ps_tfr_cxt->u4_uv_inc; - ps_tfr_cxt->pu1_mb_v += ps_tfr_cxt->u4_uv_inc; - u4_mb_y++; - u4_mb_x = 0; - } - } + ps_trns_addr->pu1_dest_u = ps_dec->s_cur_pic.pu1_buf2 + x_offset + y_offset; + ps_trns_addr->pu1_dest_v = ps_dec->s_cur_pic.pu1_buf3 + x_offset + y_offset; - } + ps_trns_addr->pu1_mb_y = ps_trns_addr->pu1_dest_y; + ps_trns_addr->pu1_mb_u = ps_trns_addr->pu1_dest_u; + ps_trns_addr->pu1_mb_v = ps_trns_addr->pu1_dest_v; - ps_dec->u4_cur_deblk_mb_num = u4_mb_num; - ps_dec->u4_deblk_mb_x = u4_mb_x; - ps_dec->u4_deblk_mb_y = u4_mb_y; - ps_dec->ps_cur_deblk_thrd_mb = ps_cur_mb; + ps_dec->cur_recon_mb_num = u2_first_mb_in_slice << u1_mbaff; -} -void ih264d_computebs_deblk_slice(dec_struct_t *ps_dec, tfr_ctxt_t *ps_tfr_cxt) -{ - dec_mb_info_t *p_cur_mb; - UWORD32 u4_max_addr = ps_dec->ps_cur_sps->u2_max_mb_addr; - UWORD32 i; - UWORD32 u1_mb_aff = ps_dec->ps_cur_slice->u1_mbaff_frame_flag; - UWORD16 u2_slice_num; - UWORD32 u4_mb_num; - - ps_dec->u4_cur_slice_bs_done = 0; + u4_slice_end = 0; ps_dec->u4_bs_cur_slice_num_mbs = 0; ps_dec->u4_cur_bs_mb_num = (ps_dec->ps_computebs_cur_slice->u4_first_mb_in_slice) << u1_mb_aff; - while(ps_dec->u4_cur_slice_bs_done != 1) + if(ps_dec->i1_recon_in_thread3_flag) { - UWORD32 bs_mb_grp = BS_MB_GROUP; - while(1) + ps_dec->pv_proc_tu_coeff_data = + (void *) ps_dec->ps_computebs_cur_slice->pv_tu_coeff_data_start; + } + + u1_slice_type = ps_dec->ps_computebs_cur_slice->slice_type; + + u1_B = (u1_slice_type == B_SLICE); + + u1_skip_th = ((u1_slice_type != I_SLICE) ? + (u1_B ? B_8x8 : PRED_8x8R0) : -1); + + u1_ipcm_th = ((u1_slice_type != I_SLICE) ? (u1_B ? 23 : 5) : 0); + + + + while(u4_slice_end != 1) + { + WORD32 recon_mb_grp,bs_mb_grp; + WORD32 nop_cnt = 8*128; + u1_num_mbsleft = ((i2_pic_wdin_mbs - i16_mb_x) << u1_mbaff); + if(u1_num_mbsleft <= ps_dec->u1_recon_mb_grp) { + recon_mb_grp = u1_num_mbsleft; + u1_end_of_row = 1; + i16_mb_x = 0; + } + else + { + recon_mb_grp = ps_dec->u1_recon_mb_grp; + u1_end_of_row = 0; + i16_mb_x += (recon_mb_grp >> u1_mbaff); + } + + while(1) + { UWORD32 u4_cond = 0; + UWORD32 u4_mb_num = ps_dec->cur_recon_mb_num + recon_mb_grp - 1; - u4_mb_num = ps_dec->u4_cur_bs_mb_num; + /* + * Wait for one extra mb of MC, because some chroma IQ-IT functions + * sometimes loads the pixels of the right mb and stores with the loaded + * values. + */ + u4_mb_num = MIN(u4_mb_num + 1, (ps_dec->i2_recon_thread_mb_y + 1) * i2_pic_wdin_mbs - 1); - /*introducing 1 MB delay*/ - if((u4_mb_num + BS_MB_GROUP) <= u4_max_addr) - u4_mb_num = u4_mb_num + BS_MB_GROUP; + CHECK_MB_MAP_BYTE(u4_mb_num, ps_dec->pu1_recon_mb_map, u4_cond); + if(u4_cond) + { + break; + } else { - bs_mb_grp = u4_max_addr - u4_mb_num + 1; - u4_mb_num = u4_max_addr; - + if(nop_cnt > 0) + { + nop_cnt -= 128; + NOP(128); + } + else + { + if(ps_dec->u4_output_present && + (ps_dec->u4_fmt_conv_cur_row < ps_dec->s_disp_frame_info.u4_y_ht)) + { + ps_dec->u4_fmt_conv_num_rows = + MIN(FMT_CONV_NUM_ROWS, + (ps_dec->s_disp_frame_info.u4_y_ht + - ps_dec->u4_fmt_conv_cur_row)); + ih264d_format_convert(ps_dec, &(ps_dec->s_disp_op), + ps_dec->u4_fmt_conv_cur_row, + ps_dec->u4_fmt_conv_num_rows); + ps_dec->u4_fmt_conv_cur_row += ps_dec->u4_fmt_conv_num_rows; + } + else + { + nop_cnt = 8*128; + ithread_yield(); + } + } } + } - CHECK_MB_MAP_BYTE(u4_mb_num, ps_dec->pu1_dec_mb_map, u4_cond); - if(u4_cond) + for(j = 0; j < recon_mb_grp; j++) + { + GET_SLICE_NUM_MAP(ps_dec->pu2_slice_num_map, ps_dec->cur_recon_mb_num, + u2_slice_num); + + if(u2_slice_num != ps_dec->u2_cur_slice_num_bs) { + u4_slice_end = 1; break; } - - if(ps_dec->u2_skip_deblock == 0) + if(ps_dec->i1_recon_in_thread3_flag) { - ih264d_check_mb_map_deblk(ps_dec, DEBLK_MB_GROUP, ps_tfr_cxt); + ps_cur_mb_info = &ps_dec->ps_frm_mb_info[ps_dec->cur_recon_mb_num]; + + if(ps_cur_mb_info->u1_mb_type <= u1_skip_th) + { + ih264d_process_inter_mb(ps_dec, ps_cur_mb_info, j); + } + else if(ps_cur_mb_info->u1_mb_type != MB_SKIP) + { + if((u1_ipcm_th + 25) != ps_cur_mb_info->u1_mb_type) + { + ps_cur_mb_info->u1_mb_type -= (u1_skip_th + 1); + ih264d_process_intra_mb(ps_dec, ps_cur_mb_info, j); + } + } + + ih264d_copy_intra_pred_line(ps_dec, ps_cur_mb_info, j); } + ps_dec->cur_recon_mb_num++; } - GET_SLICE_NUM_MAP(ps_dec->pu2_slice_num_map, ps_dec->u4_cur_bs_mb_num, - u2_slice_num); - - if(u2_slice_num != ps_dec->u2_cur_slice_num_bs) + if(j != recon_mb_grp) { - ps_dec->u4_cur_slice_bs_done = 1; + u1_end_of_row = 0; } - /* Compute BS for NMB group*/ - for(i = 0; i < bs_mb_grp; i++) { - GET_SLICE_NUM_MAP(ps_dec->pu2_slice_num_map, - ps_dec->u4_cur_bs_mb_num, u2_slice_num); + tfr_ctxt_t *ps_trns_addr = &ps_dec->s_tran_iprecon; + UWORD16 u2_mb_y; - if(u2_slice_num != ps_dec->u2_cur_slice_num_bs) + ps_trns_addr->pu1_dest_y += ps_trns_addr->u4_inc_y[u1_end_of_row]; + ps_trns_addr->pu1_dest_u += ps_trns_addr->u4_inc_uv[u1_end_of_row]; + ps_trns_addr->pu1_dest_v += ps_trns_addr->u4_inc_uv[u1_end_of_row]; + + if(u1_end_of_row) { - ps_dec->u4_cur_slice_bs_done = 1; - } + ps_dec->i2_recon_thread_mb_y += (1 << u1_mbaff); + u2_mb_y = ps_dec->i2_recon_thread_mb_y; + y_offset = (u2_mb_y * u4_frame_stride) << 4; + ps_trns_addr->pu1_dest_y = ps_dec->s_cur_pic.pu1_buf1 + y_offset; - if(ps_dec->u4_cur_slice_bs_done == 1) - break; + u4_frame_stride = ps_dec->u2_frm_wd_uv + << ps_dec->ps_cur_slice->u1_field_pic_flag; + y_offset = (u2_mb_y * u4_frame_stride) << 3; + ps_trns_addr->pu1_dest_u = ps_dec->s_cur_pic.pu1_buf2 + y_offset; + ps_trns_addr->pu1_dest_v = ps_dec->s_cur_pic.pu1_buf3 + y_offset; - p_cur_mb = &ps_dec->ps_frm_mb_info[ps_dec->u4_cur_bs_mb_num - & PD_MB_BUF_SIZE_MOD]; + ps_trns_addr->pu1_mb_y = ps_trns_addr->pu1_dest_y; + ps_trns_addr->pu1_mb_u = ps_trns_addr->pu1_dest_u; + ps_trns_addr->pu1_mb_v = ps_trns_addr->pu1_dest_v; + + } + } + + bs_mb_grp = j; + /* Compute BS for NMB group*/ + for(i = 0; i < bs_mb_grp; i++) + { + p_cur_mb = &ps_dec->ps_frm_mb_info[ps_dec->u4_cur_bs_mb_num]; DEBUG_THREADS_PRINTF("ps_dec->u4_cur_bs_mb_num = %d\n",ps_dec->u4_cur_bs_mb_num); ih264d_compute_bs_non_mbaff_thread(ps_dec, p_cur_mb, @@ -653,7 +656,7 @@ void ih264d_computebs_deblk_slice(dec_struct_t *ps_dec, tfr_ctxt_t *ps_tfr_cxt) if(ps_dec->u4_cur_bs_mb_num > u4_max_addr) { - ps_dec->u4_cur_slice_bs_done = 1; + u4_slice_end = 1; } /*deblock MB group*/ @@ -661,142 +664,74 @@ void ih264d_computebs_deblk_slice(dec_struct_t *ps_dec, tfr_ctxt_t *ps_tfr_cxt) UWORD32 u4_num_mbs; if(ps_dec->u4_cur_bs_mb_num > ps_dec->u4_cur_deblk_mb_num) - - u4_num_mbs = ps_dec->u4_cur_bs_mb_num - - ps_dec->u4_cur_deblk_mb_num; + { + if(u1_end_of_row) + { + u4_num_mbs = ps_dec->u4_cur_bs_mb_num + - ps_dec->u4_cur_deblk_mb_num; + } + else + { + u4_num_mbs = ps_dec->u4_cur_bs_mb_num + - ps_dec->u4_cur_deblk_mb_num - 1; + } + } else u4_num_mbs = 0; - if(u4_num_mbs >= DEBLK_MB_GROUP) - u4_num_mbs = DEBLK_MB_GROUP; - if(ps_dec->u2_skip_deblock == 0) - { - ih264d_check_mb_map_deblk_wait(ps_dec, u4_num_mbs, ps_tfr_cxt); - } + ih264d_check_mb_map_deblk(ps_dec, u4_num_mbs, ps_tfr_cxt,0); } } } -void ih264d_computebs_deblk_thread(dec_struct_t *ps_dec) +void ih264d_recon_deblk_thread(dec_struct_t *ps_dec) { tfr_ctxt_t s_tfr_ctxt; tfr_ctxt_t *ps_tfr_cxt = &s_tfr_ctxt; // = &ps_dec->s_tran_addrecon; - pad_mgr_t *ps_pad_mgr = &ps_dec->s_pad_mgr; - - UWORD32 yield_cnt = 0; - ithread_set_name("ih264d_computebs_deblk_thread"); + UWORD32 yield_cnt = 0; - // run the loop till all slices are decoded + ithread_set_name("ih264d_recon_deblk_thread"); - // 0: un-identified state, 1 - bs needed, 2 - bs not needed while(1) { - if(ps_dec->u4_start_bs_deblk == 0) - { - NOP(128); - NOP(128); - NOP(128); - NOP(128); - } - else - { - break; - } - } - - if(ps_dec->u4_start_bs_deblk == 1) - { - ps_dec->u4_cur_deblk_mb_num = 0; - ps_dec->u4_deblk_mb_x = 0; - ps_dec->u4_deblk_mb_y = 0; - - ih264d_init_deblk_tfr_ctxt(ps_dec, ps_pad_mgr, ps_tfr_cxt, - ps_dec->u2_frm_wd_in_mbs, 0); - ps_tfr_cxt->pu1_mb_y = ps_tfr_cxt->pu1_src_y + 4; - ps_tfr_cxt->pu1_mb_u = ps_tfr_cxt->pu1_src_u + 4; - ps_tfr_cxt->pu1_mb_v = ps_tfr_cxt->pu1_src_v + 4; + DEBUG_THREADS_PRINTF(" Entering compute bs slice\n"); + ih264d_recon_deblk_slice(ps_dec, ps_tfr_cxt); - ps_dec->ps_cur_deblk_thrd_mb = ps_dec->ps_deblk_pic; + DEBUG_THREADS_PRINTF(" Exit compute bs slice \n"); - while(1) + if(ps_dec->cur_recon_mb_num > ps_dec->ps_cur_sps->u2_max_mb_addr) { - /*Complete all writes before processing next slice*/ - DATA_SYNC(); - /*wait untill all the slice params have been populated*/ - while(ps_dec->ps_computebs_cur_slice->slice_header_done == 0) - { - NOP(32); DEBUG_THREADS_PRINTF(" waiting for slice header at compute bs\n"); - } - - DEBUG_THREADS_PRINTF(" Entering compute bs slice\n"); - ih264d_computebs_deblk_slice(ps_dec, ps_tfr_cxt); - - DEBUG_THREADS_PRINTF(" Exit compute bs slice \n"); - - /*Complete all writes before processing next slice*/ - DATA_SYNC(); - - while(1) - { - volatile void * parse_addr, *computebs_addr; - volatile UWORD32 last_slice; - - parse_addr = (volatile void *)ps_dec->ps_parse_cur_slice; - computebs_addr = - (volatile void *)ps_dec->ps_computebs_cur_slice; - last_slice = - ps_dec->ps_computebs_cur_slice->last_slice_in_frame; - - if(last_slice == 1) - break; - - if(parse_addr != computebs_addr) - break; - - DEBUG_THREADS_PRINTF("Waiting at compute bs for next slice or end of frame\n"); - - NOP(32); - - } - - DEBUG_THREADS_PRINTF("CBS thread:Got next slice/end of frame signal \n "); - - if((void *)ps_dec->ps_parse_cur_slice - > (void *)ps_dec->ps_computebs_cur_slice) - { - ps_dec->ps_computebs_cur_slice++; - ps_dec->u2_cur_slice_num_bs++; - } - else - { - /*Last slice in frame*/ break; - } - } - - /*deblock remaining MBs*/ + else { - UWORD32 u4_num_mbs; + ps_dec->ps_computebs_cur_slice++; + ps_dec->u2_cur_slice_num_bs++; + } + DEBUG_THREADS_PRINTF("CBS thread:Got next slice/end of frame signal \n "); - u4_num_mbs = ps_dec->ps_cur_sps->u2_max_mb_addr - - ps_dec->u4_cur_deblk_mb_num + 1; + } - DEBUG_PERF_PRINTF("mbs left for deblocking= %d \n",u4_num_mbs); + if(ps_dec->u4_output_present && + (3 == ps_dec->u4_num_cores) && + (ps_dec->u4_fmt_conv_cur_row < ps_dec->s_disp_frame_info.u4_y_ht)) + { + ps_dec->u4_fmt_conv_num_rows = + (ps_dec->s_disp_frame_info.u4_y_ht + - ps_dec->u4_fmt_conv_cur_row); + ih264d_format_convert(ps_dec, &(ps_dec->s_disp_op), + ps_dec->u4_fmt_conv_cur_row, + ps_dec->u4_fmt_conv_num_rows); + ps_dec->u4_fmt_conv_cur_row += ps_dec->u4_fmt_conv_num_rows; - if(u4_num_mbs != 0) - if(ps_dec->u2_skip_deblock == 0) - ih264d_check_mb_map_deblk_wait(ps_dec, u4_num_mbs, - ps_tfr_cxt); - } } - ps_dec->u4_start_bs_deblk = 0; - ithread_exit(0); + + } diff --git a/decoder/ih264d_thread_compute_bs.h b/decoder/ih264d_thread_compute_bs.h index 1bef07f..e98423f 100644 --- a/decoder/ih264d_thread_compute_bs.h +++ b/decoder/ih264d_thread_compute_bs.h @@ -30,5 +30,9 @@ void ih264d_compute_bs_non_mbaff_thread(dec_struct_t * ps_dec, dec_mb_info_t * ps_cur_mb_info, UWORD32 u4_mb_num); -void ih264d_computebs_deblk_thread(dec_struct_t *ps_dec); +void ih264d_recon_deblk_thread(dec_struct_t *ps_dec); +void ih264d_check_mb_map_deblk(dec_struct_t *ps_dec, + UWORD32 deblk_mb_grp, + tfr_ctxt_t *ps_tfr_cxt, + UWORD32 u4_check_mb_map); #endif /* _IH264D_THREAD_COMPUTE_BS_H_ */ diff --git a/decoder/ih264d_thread_parse_decode.c b/decoder/ih264d_thread_parse_decode.c index 1c9eb68..910183c 100644 --- a/decoder/ih264d_thread_parse_decode.c +++ b/decoder/ih264d_thread_parse_decode.c @@ -82,20 +82,18 @@ void ih264d_parse_tfr_nmb(dec_struct_t * ps_dec, // copy into s_frmMbInfo u4_mb_num = u4_n_mb_start; - ps_dec->ps_parse_cur_slice->u4_num_mbs_done_in_slice += u1_num_mbs; u4_mb_num = (ps_dec->u2_cur_mb_addr + 1) - u1_num_mbs; for(i = 0; i < u1_num_mbs; i++) { - DATA_SYNC(); UPDATE_SLICE_NUM_MAP(ps_dec->pu2_slice_num_map, u4_mb_num, ps_dec->u2_cur_slice_num); + DATA_SYNC(); UPDATE_MB_MAP_MBNUM_BYTE(ps_dec->pu1_dec_mb_map, u4_mb_num); u4_mb_num++; } - DATA_SYNC(); /****************************************************************/ /* Check for End Of Row in Next iteration */ /****************************************************************/ @@ -160,16 +158,9 @@ void ih264d_parse_tfr_nmb(dec_struct_t * ps_dec, ps_dec->ps_mv_left = ps_dec->ps_mv_cur + ps_dec->s_tran_addrecon.u2_mv_left_inc; - - - - ps_dec->ps_mv_cur += (u1_num_mbs << 4); ps_dec->u4_num_mbs_prev_nmb = u1_num_mbs; - - ps_dec->u4_dma_buf_idx = 0; - } } @@ -186,11 +177,8 @@ void ih264d_decode_tfr_nmb(dec_struct_t * ps_dec, /****************************************************************/ /* Check for End Of Row in Next iteration */ /****************************************************************/ - u1_end_of_row_next = - u1_num_mbs_next - && ((u1_num_mbs_next) - <= (ps_dec->u1_recon_mb_grp - >> u1_mbaff)); + u1_end_of_row_next = u1_num_mbs_next && + ((u1_num_mbs_next) <= (ps_dec->u1_recon_mb_grp >> u1_mbaff)); /****************************************************************/ /* Transfer the Following things */ @@ -207,23 +195,12 @@ void ih264d_decode_tfr_nmb(dec_struct_t * ps_dec, ih264d_transfer_mb_group_data(ps_dec, u1_num_mbs, u1_end_of_row, u1_end_of_row_next); - if(u1_end_of_row) - { - /* Reset the N-Mb Recon Buf Index to default Values */ - ps_dec->u2_mb_group_cols_y1 = ps_dec->u2_mb_group_cols_y; - ps_dec->u2_mb_group_cols_cr1 = ps_dec->u2_mb_group_cols_cr; - } - /* If next N-Mb Group is the EndOfRow, set the N-Mb Recon Buf Index */ - else if(u1_end_of_row_next) - { - ps_dec->u2_mb_group_cols_y1 = (u1_num_mbs_next << 4) + 8; - ps_dec->u2_mb_group_cols_cr1 = (u1_num_mbs_next << 3) + 8; - } } -WORD32 ih264d_decode_recon_tfr_nmb_thread(dec_struct_t * ps_dec, UWORD8 u1_num_mbs, // number of MBs loop should run - UWORD8 u1_num_mbs_next, - UWORD8 u1_end_of_row) +WORD32 ih264d_decode_recon_tfr_nmb_thread(dec_struct_t * ps_dec, + UWORD8 u1_num_mbs, + UWORD8 u1_num_mbs_next, + UWORD8 u1_end_of_row) { WORD32 i,j; dec_mb_info_t * ps_cur_mb_info; @@ -235,54 +212,65 @@ WORD32 ih264d_decode_recon_tfr_nmb_thread(dec_struct_t * ps_dec, UWORD8 u1_num_m UWORD32 u4_cond; UWORD16 u2_slice_num,u2_cur_dec_mb_num; WORD32 ret; - + UWORD32 u4_mb_num; + WORD32 nop_cnt = 8*128; u1_slice_type = ps_dec->ps_decode_cur_slice->slice_type; u1_B = (u1_slice_type == B_SLICE); - u1_skip_th = - ((u1_slice_type != I_SLICE) ? + u1_skip_th = ((u1_slice_type != I_SLICE) ? (u1_B ? B_8x8 : PRED_8x8R0) : -1); u1_ipcm_th = ((u1_slice_type != I_SLICE) ? (u1_B ? 23 : 5) : 0); u2_cur_dec_mb_num = ps_dec->cur_dec_mb_num; - /* N Mb MC Loop */ - for(i = 0; i < u1_num_mbs; i++) + while(1) { - DATA_SYNC(); - // check dec_mb_map - UWORD32 yield_cnt = 0, u4_max_addr; + UWORD32 u4_max_mb = (UWORD32)(ps_dec->i2_dec_thread_mb_y + (1 << u1_mbaff)) * ps_dec->u2_frm_wd_in_mbs - 1; + u4_mb_num = u2_cur_dec_mb_num; + /*introducing 1 MB delay*/ + u4_mb_num = MIN(u4_mb_num + u1_num_mbs + 1, u4_max_mb); - u4_max_addr = ps_dec->ps_cur_sps->u2_max_mb_addr; - while(1) + CHECK_MB_MAP_BYTE(u4_mb_num, ps_dec->pu1_dec_mb_map, u4_cond); + if(u4_cond) { - UWORD32 u4_mb_num = u2_cur_dec_mb_num; - - /*introducing 1 MB delay*/ - if(u4_mb_num < u4_max_addr) - u4_mb_num = u4_mb_num + 1; - - CHECK_MB_MAP_BYTE(u4_mb_num, ps_dec->pu1_dec_mb_map, u4_cond); - if(u4_cond) + break; + } + else + { + if(nop_cnt > 0) { - break; + nop_cnt -= 128; + NOP(128); } else { - + if(ps_dec->u4_output_present && (2 == ps_dec->u4_num_cores) && + (ps_dec->u4_fmt_conv_cur_row < ps_dec->s_disp_frame_info.u4_y_ht)) { - NOP(128); - + ps_dec->u4_fmt_conv_num_rows = + MIN(FMT_CONV_NUM_ROWS, + (ps_dec->s_disp_frame_info.u4_y_ht + - ps_dec->u4_fmt_conv_cur_row)); + ih264d_format_convert(ps_dec, &(ps_dec->s_disp_op), + ps_dec->u4_fmt_conv_cur_row, + ps_dec->u4_fmt_conv_num_rows); + ps_dec->u4_fmt_conv_cur_row += ps_dec->u4_fmt_conv_num_rows; + } + else + { + nop_cnt = 8*128; + ithread_yield(); } - - DEBUG_THREADS_PRINTF("waiting for mb mapcur_dec_mb_num = %d,ps_dec->u2_cur_mb_addr = %d\n",u2_cur_dec_mb_num, - ps_dec->u2_cur_mb_addr); - } } + } + /* N Mb MC Loop */ + for(i = 0; i < u1_num_mbs; i++) + { + u4_mb_num = u2_cur_dec_mb_num; GET_SLICE_NUM_MAP(ps_dec->pu2_slice_num_map, u2_cur_dec_mb_num, u2_slice_num); @@ -293,66 +281,56 @@ WORD32 ih264d_decode_recon_tfr_nmb_thread(dec_struct_t * ps_dec, UWORD8 u1_num_m break; } - ps_cur_mb_info = &ps_dec->ps_frm_mb_info[u2_cur_dec_mb_num - & PD_MB_BUF_SIZE_MOD]; + ps_cur_mb_info = &ps_dec->ps_frm_mb_info[u2_cur_dec_mb_num]; ps_dec->u4_dma_buf_idx = 0; ps_dec->u4_pred_info_idx = 0; if(ps_cur_mb_info->u1_mb_type <= u1_skip_th) { + WORD32 pred_cnt = 0; + pred_info_pkd_t *ps_pred_pkd; + UWORD32 u4_pred_info_pkd_idx; + WORD8 i1_pred; - { - WORD32 pred_cnt = 0; - pred_info_pkd_t *ps_pred_pkd; - UWORD32 u4_pred_info_pkd_idx; - WORD8 i1_pred; - - u4_pred_info_pkd_idx = ps_cur_mb_info->u4_pred_info_pkd_idx; + u4_pred_info_pkd_idx = ps_cur_mb_info->u4_pred_info_pkd_idx; - while(pred_cnt < ps_cur_mb_info->u1_num_pred_parts) - { - - ps_pred_pkd = ps_dec->ps_pred_pkd + u4_pred_info_pkd_idx; - - - ps_dec->p_form_mb_part_info_thread(ps_pred_pkd,ps_dec, - ps_cur_mb_info->u2_mbx,ps_cur_mb_info->u2_mby,(i >> u1_mbaff), - ps_cur_mb_info); + while(pred_cnt < ps_cur_mb_info->u1_num_pred_parts) + { + ps_pred_pkd = ps_dec->ps_pred_pkd + u4_pred_info_pkd_idx; - u4_pred_info_pkd_idx++; - pred_cnt++; + ps_dec->p_form_mb_part_info_thread(ps_pred_pkd,ps_dec, + ps_cur_mb_info->u2_mbx, + ps_cur_mb_info->u2_mby, + (i >> u1_mbaff), + ps_cur_mb_info); - } + u4_pred_info_pkd_idx++; + pred_cnt++; } ps_dec->p_mc_dec_thread(ps_dec, ps_cur_mb_info); } else if(ps_cur_mb_info->u1_mb_type == MB_SKIP) { - { - WORD32 pred_cnt = 0; - pred_info_pkd_t *ps_pred_pkd; - UWORD32 u4_pred_info_pkd_idx; - WORD8 i1_pred; - - u4_pred_info_pkd_idx = ps_cur_mb_info->u4_pred_info_pkd_idx; + WORD32 pred_cnt = 0; + pred_info_pkd_t *ps_pred_pkd; + UWORD32 u4_pred_info_pkd_idx; + WORD8 i1_pred; + u4_pred_info_pkd_idx = ps_cur_mb_info->u4_pred_info_pkd_idx; + while(pred_cnt < ps_cur_mb_info->u1_num_pred_parts) + { + ps_pred_pkd = ps_dec->ps_pred_pkd + u4_pred_info_pkd_idx; - while(pred_cnt < ps_cur_mb_info->u1_num_pred_parts) - { - - ps_pred_pkd = ps_dec->ps_pred_pkd + u4_pred_info_pkd_idx; - - - ps_dec->p_form_mb_part_info_thread(ps_pred_pkd,ps_dec, - ps_cur_mb_info->u2_mbx,ps_cur_mb_info->u2_mby,(i >> u1_mbaff), - ps_cur_mb_info); - + ps_dec->p_form_mb_part_info_thread(ps_pred_pkd,ps_dec, + ps_cur_mb_info->u2_mbx, + ps_cur_mb_info->u2_mby, + (i >> u1_mbaff), + ps_cur_mb_info); - u4_pred_info_pkd_idx++; - pred_cnt++; - } + u4_pred_info_pkd_idx++; + pred_cnt++; } /* Decode MB skip */ ps_dec->p_mc_dec_thread(ps_dec, ps_cur_mb_info); @@ -363,61 +341,83 @@ WORD32 ih264d_decode_recon_tfr_nmb_thread(dec_struct_t * ps_dec, UWORD8 u1_num_m /* N Mb IQ IT RECON Loop */ for(j = 0; j < i; j++) - { - DATA_SYNC(); - - - ps_cur_mb_info = &ps_dec->ps_frm_mb_info[ps_dec->cur_dec_mb_num - & PD_MB_BUF_SIZE_MOD]; - - - if(ps_cur_mb_info->u1_mb_type <= u1_skip_th) - { - ih264d_process_inter_mb(ps_dec, ps_cur_mb_info, j); - } - else if(ps_cur_mb_info->u1_mb_type != MB_SKIP) - { - if((u1_ipcm_th + 25) != ps_cur_mb_info->u1_mb_type) - { - ps_cur_mb_info->u1_mb_type -= (u1_skip_th + 1); - ret = ih264d_process_intra_mb(ps_dec, ps_cur_mb_info, j); - if(ret != OK) - return ret; - } - } - - if(ps_dec->u4_mb_level_deblk == 1) - { - - ih264d_deblock_mb_level(ps_dec, ps_cur_mb_info, j); - } - - if((ps_dec->u4_num_cores >= 3) && (u1_mbaff == 0)) - ih264d_copy_intra_pred_line(ps_dec, ps_cur_mb_info, j); - if(u1_mbaff) - { - if(u4_update_mbaff) - { - UWORD32 u4_mb_num = ps_cur_mb_info->u2_mbx - + ps_dec->u2_frm_wd_in_mbs - * (ps_cur_mb_info->u2_mby >> 1); - UPDATE_MB_MAP_MBNUM_BYTE(ps_dec->pu1_recon_mb_map, u4_mb_num); - u4_update_mbaff = 0; - } - else - { - u4_update_mbaff = 1; - } - } - else - { - UWORD32 u4_mb_num = ps_cur_mb_info->u2_mbx - + ps_dec->u2_frm_wd_in_mbs * ps_cur_mb_info->u2_mby; - UPDATE_MB_MAP_MBNUM_BYTE(ps_dec->pu1_recon_mb_map, u4_mb_num); - } - ps_dec->cur_dec_mb_num++; + { + ps_cur_mb_info = &ps_dec->ps_frm_mb_info[ps_dec->cur_dec_mb_num]; + + if((ps_dec->u4_num_cores == 2) || !ps_dec->i1_recon_in_thread3_flag) + { + if(ps_cur_mb_info->u1_mb_type <= u1_skip_th) + { + ih264d_process_inter_mb(ps_dec, ps_cur_mb_info, j); + } + else if(ps_cur_mb_info->u1_mb_type != MB_SKIP) + { + if((u1_ipcm_th + 25) != ps_cur_mb_info->u1_mb_type) + { + ps_cur_mb_info->u1_mb_type -= (u1_skip_th + 1); + ih264d_process_intra_mb(ps_dec, ps_cur_mb_info, j); + } + } + + + if(ps_dec->u4_use_intrapred_line_copy == 1) + ih264d_copy_intra_pred_line(ps_dec, ps_cur_mb_info, j); + } + + DATA_SYNC(); + + if(u1_mbaff) + { + if(u4_update_mbaff) + { + UWORD32 u4_mb_num = ps_cur_mb_info->u2_mbx + + ps_dec->u2_frm_wd_in_mbs + * (ps_cur_mb_info->u2_mby >> 1); + UPDATE_MB_MAP_MBNUM_BYTE(ps_dec->pu1_recon_mb_map, u4_mb_num); + u4_update_mbaff = 0; + } + else + { + u4_update_mbaff = 1; + } + } + else + { + UWORD32 u4_mb_num = ps_cur_mb_info->u2_mbx + + ps_dec->u2_frm_wd_in_mbs * ps_cur_mb_info->u2_mby; + UPDATE_MB_MAP_MBNUM_BYTE(ps_dec->pu1_recon_mb_map, u4_mb_num); + } + ps_dec->cur_dec_mb_num++; } + /*N MB deblocking*/ + if(ps_dec->u4_nmb_deblk == 1) + { + UWORD32 u4_wd_y, u4_wd_uv; + tfr_ctxt_t *ps_tfr_cxt = &(ps_dec->s_tran_addrecon); + UWORD8 u1_field_pic_flag = ps_dec->ps_cur_slice->u1_field_pic_flag; + const WORD32 i4_cb_qp_idx_ofst = + ps_dec->ps_cur_pps->i1_chroma_qp_index_offset; + const WORD32 i4_cr_qp_idx_ofst = + ps_dec->ps_cur_pps->i1_second_chroma_qp_index_offset; + + u4_wd_y = ps_dec->u2_frm_wd_y << u1_field_pic_flag; + u4_wd_uv = ps_dec->u2_frm_wd_uv << u1_field_pic_flag; + + ps_cur_mb_info = &ps_dec->ps_frm_mb_info[ps_dec->u4_cur_deblk_mb_num]; + + ps_dec->u4_deblk_mb_x = ps_cur_mb_info->u2_mbx; + ps_dec->u4_deblk_mb_y = ps_cur_mb_info->u2_mby; + + + for(j = 0; j < i; j++) + { + ih264d_deblock_mb_nonmbaff(ps_dec, ps_tfr_cxt, + i4_cb_qp_idx_ofst, i4_cr_qp_idx_ofst, + u4_wd_y, u4_wd_uv); + + } + } /*handle the last mb in picture case*/ if(ps_dec->cur_dec_mb_num > ps_dec->ps_cur_sps->u2_max_mb_addr) @@ -435,19 +435,13 @@ WORD32 ih264d_decode_recon_tfr_nmb_thread(dec_struct_t * ps_dec, UWORD8 u1_num_m return OK; } -WORD32 ih264d_decode_slice_thread(dec_struct_t *ps_dec /* Decoder parameters */ -) +WORD32 ih264d_decode_slice_thread(dec_struct_t *ps_dec) { - UWORD8 u1_num_mbs_next, u1_num_mbsleft, u1_end_of_row = 0; //, u1_slice_end, u1_tfr_n_mb, u1_decode_nmb; + UWORD8 u1_num_mbs_next, u1_num_mbsleft, u1_end_of_row = 0; const UWORD32 i2_pic_wdin_mbs = ps_dec->u2_frm_wd_in_mbs; - UWORD8 u1_mbaff, u1_num_mbs; //,uc_more_data_flag,u1_mb_idx; + UWORD8 u1_mbaff, u1_num_mbs; UWORD16 u2_first_mb_in_slice; - - /*dec_bit_stream_t *const ps_bitstrm = ps_dec->ps_bitstrm; - UWORD32 * pu4_bitstrm_buf = ps_bitstrm->pu4_buffer; - UWORD32 *pu4_bitstrm_ofst = &ps_bitstrm->u4_ofst;*/ - UWORD16 i16_mb_x, i16_mb_y; UWORD8 u1_field_pic; UWORD32 u4_frame_stride, x_offset, y_offset; @@ -455,8 +449,46 @@ WORD32 ih264d_decode_slice_thread(dec_struct_t *ps_dec /* Decoder parameters */ tfr_ctxt_t *ps_trns_addr; - if(ps_dec->ps_decode_cur_slice->slice_header_done != 2) - return ERROR_INV_SLICE_HDR_T; + /*check for mb map of first mb in slice to ensure slice header is parsed*/ + while(1) + { + UWORD32 u4_mb_num = ps_dec->cur_dec_mb_num; + UWORD32 u4_cond = 0; + WORD32 nop_cnt = 8 * 128; + CHECK_MB_MAP_BYTE(u4_mb_num, ps_dec->pu1_dec_mb_map, u4_cond); + if(u4_cond) + { + break; + } + else + { + if(nop_cnt > 0) + { + nop_cnt -= 128; + NOP(128); + } + else if(ps_dec->u4_output_present && (2 == ps_dec->u4_num_cores) && + (ps_dec->u4_fmt_conv_cur_row < ps_dec->s_disp_frame_info.u4_y_ht)) + { + ps_dec->u4_fmt_conv_num_rows = + MIN(FMT_CONV_NUM_ROWS, + (ps_dec->s_disp_frame_info.u4_y_ht + - ps_dec->u4_fmt_conv_cur_row)); + ih264d_format_convert(ps_dec, &(ps_dec->s_disp_op), + ps_dec->u4_fmt_conv_cur_row, + ps_dec->u4_fmt_conv_num_rows); + ps_dec->u4_fmt_conv_cur_row += ps_dec->u4_fmt_conv_num_rows; + } + else + { + nop_cnt = 8*128; + ithread_yield(); + } + DEBUG_THREADS_PRINTF("waiting for mb mapcur_dec_mb_num = %d,ps_dec->u2_cur_mb_addr = %d\n",u2_cur_dec_mb_num, + ps_dec->u2_cur_mb_addr); + + } + } @@ -469,19 +501,14 @@ WORD32 ih264d_decode_slice_thread(dec_struct_t *ps_dec /* Decoder parameters */ i16_mb_y <<= u1_mbaff; ps_dec->i2_dec_thread_mb_y = i16_mb_y; - /*if((i16_mb_x > (i2_pic_wdin_mbs - 1)) - || (i16_mb_y > ps_dec->u2_frm_ht_in_mbs - 1)) - { - }*/ - if(ps_dec->cur_dec_mb_num == u2_first_mb_in_slice << u1_mbaff) - { - ps_dec->u2_mb_skip_error = 0; - } - else + + ps_dec->cur_dec_mb_num = u2_first_mb_in_slice << u1_mbaff; + + if((ps_dec->u4_num_cores == 2) || !ps_dec->i1_recon_in_thread3_flag) { - ps_dec->u2_mb_skip_error = 1; + ps_dec->pv_proc_tu_coeff_data = + (void *) ps_dec->ps_decode_cur_slice->pv_tu_coeff_data_start; } - ps_dec->cur_dec_mb_num = u2_first_mb_in_slice << u1_mbaff; // recalculate recon pointers u1_field_pic = ps_dec->ps_cur_slice->u1_field_pic_flag; @@ -506,17 +533,6 @@ WORD32 ih264d_decode_slice_thread(dec_struct_t *ps_dec /* Decoder parameters */ ps_trns_addr->pu1_mb_u = ps_trns_addr->pu1_dest_u; ps_trns_addr->pu1_mb_v = ps_trns_addr->pu1_dest_v; - if(ps_dec->u4_mb_level_deblk == 1) - { - /*If it is not the first mb in row,the previous MB which needs to be deblocked - * as there is delay of 1 MB*/ - if(i16_mb_x != 0) - { - ps_trns_addr->pu1_mb_y -= MB_SIZE; - ps_trns_addr->pu1_mb_u -= BLK8x8SIZE * YUV420SP_FACTOR; - ps_trns_addr->pu1_mb_v -= BLK8x8SIZE; - } - } /**********Number of Mbs in Slice**********/ @@ -582,126 +598,49 @@ WORD32 ih264d_decode_slice_thread(dec_struct_t *ps_dec /* Decoder parameters */ void ih264d_decode_picture_thread(dec_struct_t *ps_dec ) { - ithread_set_name("ih264d_decode_picture_thread"); - - // run the loop till all slices are decoded - while(1) { - if(ps_dec->u4_start_frame_decode) + /*Complete all writes before processing next slice*/ + + DEBUG_THREADS_PRINTF(" Entering decode slice\n"); + + ih264d_decode_slice_thread(ps_dec); + DEBUG_THREADS_PRINTF(" Exit ih264d_decode_slice_thread \n"); + + + if(ps_dec->cur_dec_mb_num + > ps_dec->ps_cur_sps->u2_max_mb_addr) { + /*Last slice in frame*/ break; } else { - NOP(32); - + ps_dec->ps_decode_cur_slice++; + ps_dec->u2_cur_slice_num_dec_thread++; } - } - DEBUG_THREADS_PRINTF("Got start of frame u4_flag\n"); - - if(ps_dec->u4_start_frame_decode == 1) - { - while(1) - { - /*Complete all writes before processing next slice*/ - DATA_SYNC(); - /*wait untill all the slice params have been populated*/ - while(ps_dec->ps_decode_cur_slice->slice_header_done == 0) - { - NOP(32); DEBUG_THREADS_PRINTF(" waiting for slice header \n"); - } - - DEBUG_THREADS_PRINTF(" Entering decode slice\n"); - - ih264d_decode_slice_thread(ps_dec); - DEBUG_THREADS_PRINTF(" Exit ih264d_decode_slice_thread \n"); - - /*Complete all writes before processing next slice*/ - DATA_SYNC(); - - while(1) - { - volatile void * parse_addr, *dec_addr; - volatile UWORD32 last_slice; - - parse_addr = (volatile void *)ps_dec->ps_parse_cur_slice; - dec_addr = (volatile void *)ps_dec->ps_decode_cur_slice; - last_slice = ps_dec->ps_decode_cur_slice->last_slice_in_frame; - - if(last_slice == 1) - break; - - if(parse_addr != dec_addr) - break; - - DEBUG_THREADS_PRINTF("Waiting for next slice or end of frame\n"); - - NOP(32); - } - - DEBUG_THREADS_PRINTF("Got next slice/end of frame signal \n "); - - if((void *)ps_dec->ps_parse_cur_slice - > (void *)ps_dec->ps_decode_cur_slice) - { - ps_dec->ps_decode_cur_slice++; - ps_dec->u2_cur_slice_num_dec_thread++; - } - else - { - /*Last slice in frame*/ - break; - } - - } } - - if(ps_dec->u4_output_present) + if(ps_dec->u4_output_present && (2 == ps_dec->u4_num_cores) && + (ps_dec->u4_fmt_conv_cur_row < ps_dec->s_disp_frame_info.u4_y_ht)) { - while(1) - { - volatile UWORD32 *u4_flag = &(ps_dec->as_fmt_conv_part[1].u4_flag); - - DEBUG_THREADS_PRINTF(" Format conversion loop in decode *u4_flag = %d\n",*u4_flag); - if(2 == *u4_flag) - { - if(ps_dec->as_fmt_conv_part[1].u4_num_rows_y) - ih264d_format_convert( - ps_dec, &(ps_dec->s_disp_op), - ps_dec->as_fmt_conv_part[1].u4_start_y, - ps_dec->as_fmt_conv_part[1].u4_num_rows_y); - - break; - } - else if(1 == *u4_flag) - { - NOP(32); - - } - else - break; - - } + ps_dec->u4_fmt_conv_num_rows = + (ps_dec->s_disp_frame_info.u4_y_ht + - ps_dec->u4_fmt_conv_cur_row); + ih264d_format_convert(ps_dec, &(ps_dec->s_disp_op), + ps_dec->u4_fmt_conv_cur_row, + ps_dec->u4_fmt_conv_num_rows); + ps_dec->u4_fmt_conv_cur_row += ps_dec->u4_fmt_conv_num_rows; } ithread_exit(0); - } void ih264d_signal_decode_thread(dec_struct_t *ps_dec) { if(ps_dec->u4_dec_thread_created == 1) { - - if(ps_dec->u4_start_frame_decode == 1) - ps_dec->ps_parse_cur_slice->last_slice_in_frame = 1; - else - /*to indicate frame in error*/ - ps_dec->u4_start_frame_decode = 2; - ithread_join(ps_dec->pv_dec_thread_handle, NULL); ps_dec->u4_dec_thread_created = 0; } @@ -710,10 +649,6 @@ void ih264d_signal_bs_deblk_thread(dec_struct_t *ps_dec) { if(ps_dec->u4_bs_deblk_thread_created) { - /*signal error*/ - if(ps_dec->u4_start_bs_deblk == 0) - ps_dec->u4_start_bs_deblk = 2; - ithread_join(ps_dec->pv_bs_deblk_thread_handle, NULL); ps_dec->u4_bs_deblk_thread_created = 0; } diff --git a/decoder/ih264d_thread_parse_decode.h b/decoder/ih264d_thread_parse_decode.h index 013b14f..5c2c762 100644 --- a/decoder/ih264d_thread_parse_decode.h +++ b/decoder/ih264d_thread_parse_decode.h @@ -36,7 +36,7 @@ void ih264d_decode_tfr_nmb(dec_struct_t *ps_dec, UWORD8 u1_num_mbs, UWORD8 u1_num_mbs_next, UWORD8 u1_end_of_row); -WORD32 ih264d_decode_recon_tfr_nmb_thread(dec_struct_t *ps_dec, +WORD32 ih264d_decode_recon_tfr_nmb_thread(dec_struct_t * ps_dec, UWORD8 u1_num_mbs, UWORD8 u1_num_mbs_next, UWORD8 u1_end_of_row); diff --git a/decoder/ih264d_utils.c b/decoder/ih264d_utils.c index f60d99c..31e9532 100644 --- a/decoder/ih264d_utils.c +++ b/decoder/ih264d_utils.c @@ -596,17 +596,8 @@ WORD32 ih264d_get_dpb_size(dec_seq_params_t *ps_seq, dec_struct_t *ps_dec) WORD32 i4_size; UWORD8 u1_level_idc; - u1_level_idc = ps_seq->u1_level_idc; //harcode for the time being - -#if DPB_HACK - u1_level_idc = (u1_level_idc < 30) ? 30 : u1_level_idc; - u1_level_idc = (u1_level_idc > 30) ? 30 : u1_level_idc; -#endif - u1_level_idc = MIN(u1_level_idc, ps_dec->u4_level_at_init); - //DPB_HACK - switch(u1_level_idc) { @@ -658,29 +649,10 @@ WORD32 ih264d_get_dpb_size(dec_seq_params_t *ps_seq, dec_struct_t *ps_dec) default: i4_size = 6912000; break; - /* - * Not calling the error handler if the level has come wrong. - */ - /*{ - UWORD32 i4_error_code; - i4_error_code = ERROR_UNKNOWN_LEVEL ; - - } - break;*/ } - /* Temporary hack to run Tractor Cav/Cab/MbAff Profiler ps_bitstrm */ -#if DPB_HACK - i4_size = 6912000; -#endif - - i4_size = - i4_size - / (ps_seq->u2_frm_wd_in_mbs - * (ps_seq->u2_frm_ht_in_mbs - << (1 - - ps_seq->u1_frame_mbs_only_flag))); - i4_size = i4_size / 384; // temp / (256 * 1.5) + i4_size /= (ps_seq->u2_frm_wd_in_mbs * (ps_seq->u2_frm_ht_in_mbs << (1 - ps_seq->u1_frame_mbs_only_flag))); + i4_size /= 384; i4_size = MIN(i4_size, 16); i4_size = MAX(i4_size, 1); return (i4_size); @@ -963,7 +935,6 @@ WORD32 ih264d_init_pic(dec_struct_t *ps_dec, ps_dec->u2_frm_ht_in_mbs = (ps_dec->u2_pic_ht >> (4 + ps_dec->ps_cur_slice->u1_field_pic_flag)); - /***************************************************************************/ /* If change in Level or the required PicBuffers i4_size is more than the */ /* current one FREE the current PicBuffers and allocate affresh */ @@ -994,10 +965,6 @@ WORD32 ih264d_init_pic(dec_struct_t *ps_dec, ps_dec->u1_max_dec_frame_buffering = ih264d_get_dpb_size(ps_seq, ps_dec); - if(ps_dec->u4_share_disp_buf) - ps_dec->u1_max_dec_frame_buffering = MAX( - ps_dec->u1_max_dec_frame_buffering, 5); - ps_dec->u1_max_dec_frame_buffering = MIN( ps_dec->u1_max_dec_frame_buffering, ps_dec->u4_num_ref_frames_at_init); @@ -2070,10 +2037,6 @@ WORD32 ih264d_create_pic_buffers(UWORD8 u1_num_of_buf, * ************************************************************************** */ -//WORD16 i16_res_coeff[2 * 3600 * (MB_LUM_SIZE + 2 * MB_CHROM_SIZE)]; -//pred_info_t s_pred_frame[4000 * 60]; -//pred_info_t *ps_pred_frame; - WORD16 ih264d_get_memory_dec_params(dec_struct_t * ps_dec) { struct MemReq s_MemReq; @@ -2101,6 +2064,7 @@ WORD16 ih264d_get_memory_dec_params(dec_struct_t * ps_dec) UWORD8 *pu1_buf; ps_dec->ps_deblk_pic = ps_dec->ps_mem_tab[MEM_REC_DEBLK_MB_INFO].pv_base; + memset(ps_dec->ps_deblk_pic, 0, ps_dec->ps_mem_tab[MEM_REC_DEBLK_MB_INFO].u4_mem_size); ps_dec->pu1_dec_mb_map = ps_dec->ps_mem_tab[MEM_REC_PARSE_MAP].pv_base; @@ -2159,14 +2123,13 @@ WORD16 ih264d_get_memory_dec_params(dec_struct_t * ps_dec) * ps_sps->u1_num_ref_frames); u4_scratch_mem_used = ALIGN64(u4_scratch_mem_used); - ps_dec->pu1_ref_buff = (void *)(pu1_scratch_mem_base - + u4_scratch_mem_used); - u4_scratch_mem_used += MAX_REF_BUF_SIZE; + ps_dec->pu1_ref_buff = pu1_scratch_mem_base + u4_scratch_mem_used + MAX_REF_BUF_SIZE; + u4_scratch_mem_used += MAX_REF_BUF_SIZE * 2; u4_scratch_mem_used = ALIGN64(u4_scratch_mem_used); ps_dec->pi2_pred1 = (void *)(pu1_scratch_mem_base + u4_scratch_mem_used); u4_scratch_mem_used += ((sizeof(WORD16)) * PRED_BUFFER_WIDTH - * PRED_BUFFER_HEIGHT); + * PRED_BUFFER_HEIGHT * 2); u4_scratch_mem_used = ALIGN64(u4_scratch_mem_used); ps_dec->pu1_temp_mc_buffer = (void *)(pu1_scratch_mem_base @@ -2220,19 +2183,12 @@ WORD16 ih264d_get_memory_dec_params(dec_struct_t * ps_dec) ps_dec->ppv_map_ref_idx_to_poc += OFFSET_MAP_IDX_POC; { - UWORD32 u4_ref_size; - u4_ref_size = MAX_REF_BUF_SIZE; + ps_dec->ps_parse_cur_slice = &(ps_dec->ps_dec_slice_buf[0]); + ps_dec->ps_decode_cur_slice = &(ps_dec->ps_dec_slice_buf[0]); + ps_dec->ps_computebs_cur_slice = &(ps_dec->ps_dec_slice_buf[0]); - { - - ps_dec->ps_parse_cur_slice = &(ps_dec->ps_dec_slice_buf[0]); - ps_dec->ps_decode_cur_slice = &(ps_dec->ps_dec_slice_buf[0]); - ps_dec->ps_computebs_cur_slice = &(ps_dec->ps_dec_slice_buf[0]); - ps_dec->ps_parse_cur_slice->slice_header_done = 0; - - ps_dec->ps_pred_start = ps_dec->ps_pred; - ps_dec->u4_ref_buf_size = u4_ref_size; - } + ps_dec->ps_pred_start = ps_dec->ps_pred; + ps_dec->u4_ref_buf_size = MAX_REF_BUF_SIZE; } { @@ -2357,18 +2313,17 @@ WORD16 ih264d_get_memory_dec_params(dec_struct_t * ps_dec) ps_dec->pu1_y_intra_pred_line = (void *)(pu1_persitent_mem_base + u4_persistent_mem_used); - u4_persistent_mem_used += sizeof(UWORD8) * (u4_luma_wd + 16) * 2; + u4_persistent_mem_used += sizeof(UWORD8) * ((u4_wd_mbs + 1) * MB_SIZE) * 2; u4_persistent_mem_used = ALIGN64(u4_persistent_mem_used); ps_dec->pu1_u_intra_pred_line = (void *)(pu1_persitent_mem_base + u4_persistent_mem_used); - u4_persistent_mem_used += sizeof(UWORD8) * (u4_chroma_wd + 16) * 2 - * YUV420SP_FACTOR; + u4_persistent_mem_used += sizeof(UWORD8) * ((u4_wd_mbs + 1) * MB_SIZE) * 2; u4_persistent_mem_used = ALIGN64(u4_persistent_mem_used); ps_dec->pu1_v_intra_pred_line = (void *)(pu1_persitent_mem_base + u4_persistent_mem_used); - u4_persistent_mem_used += sizeof(UWORD8) * (u4_chroma_wd + 16) * 2; + u4_persistent_mem_used += sizeof(UWORD8) * ((u4_wd_mbs + 1) * MB_SIZE) * 2; u4_persistent_mem_used = ALIGN64(u4_persistent_mem_used); ps_dec->ps_nbr_mb_row = (void *)(pu1_persitent_mem_base diff --git a/decoder/ivd.h b/decoder/ivd.h index 955b81f..b30b0b1 100644 --- a/decoder/ivd.h +++ b/decoder/ivd.h @@ -228,7 +228,7 @@ typedef enum { IVD_DEC_REF_BUF_NULL = 0x28, IVD_DEC_FRM_SKIPPED = 0x29, IVD_RES_CHANGED = 0x2a, - IVD_DUMMY_ELEMENT_FOR_CODEC_EXTENSIONS = 0x300, + IVD_DUMMY_ELEMENT_FOR_CODEC_EXTENSIONS = 0xD0, }IVD_ERROR_CODES_T; diff --git a/encoder.arm64.mk b/encoder.arm64.mk index 99dbb06..5d2d045 100644 --- a/encoder.arm64.mk +++ b/encoder.arm64.mk @@ -35,7 +35,7 @@ libavce_srcs_asm_arm64 += encoder/armv8/ih264e_half_pel_av8.s #ME libavce_srcs_asm_arm64 += encoder/armv8/ime_distortion_metrics_av8.s -libavce_cflags_arm += -DDEFAULT_ARCH=D_ARCH_ARMV8_GENERIC +libavce_cflags_arm64 += -DDEFAULT_ARCH=D_ARCH_ARMV8_GENERIC else libavce_cflags_arm64 += -DDISABLE_NEON -DDEFAULT_ARCH=D_ARCH_ARM_NONEON endif diff --git a/encoder.mips64.mk b/encoder.mips64.mk index 5181fd9..4f48789 100644 --- a/encoder.mips64.mk +++ b/encoder.mips64.mk @@ -3,5 +3,5 @@ libavce_inc_dir_mips64 += $(LOCAL_PATH)/encoder/mips libavce_srcs_c_mips64 += encoder/mips/ih264e_function_selector.c -LOCAL_C_INCLUDES_mips64 += $(libavce_inc_dir_mips) -LOCAL_SRC_FILES_mips64 += $(libavce_srcs_c_mips) +LOCAL_C_INCLUDES_mips64 += $(libavce_inc_dir_mips64) +LOCAL_SRC_FILES_mips64 += $(libavce_srcs_c_mips64) diff --git a/encoder/ih264e_api.c b/encoder/ih264e_api.c index e5c66ea..b68d6dc 100644 --- a/encoder/ih264e_api.c +++ b/encoder/ih264e_api.c @@ -2997,6 +2997,9 @@ static WORD32 ih264e_fill_num_mem_rec(void *pv_api_ip, void *pv_api_op) /* size in bytes to slice index of all mbs of a frame */ total_size = ALIGN64(max_mb_cnt); + /* ih264e_update_proc_ctxt can overread by 1 at the end */ + total_size += 1; + /* total size per each proc ctxt */ total_size *= MAX_CTXT_SETS; ps_mem_rec->u4_mem_size = total_size; diff --git a/encoder/ih264e_process.c b/encoder/ih264e_process.c index fa67d84..7b39fe5 100644 --- a/encoder/ih264e_process.c +++ b/encoder/ih264e_process.c @@ -1435,23 +1435,23 @@ IH264E_ERROR_T ih264e_dblk_pad_hpel_processing_n_mbs(process_ctxt_t *ps_proc, { i4_n_mb_process_count = MIN(i4_mb_x - (ps_n_mb_ctxt->i4_mb_x - 1), i4_n_mbs); - u4_deblk_prev_row = 1; - - /* checking whether the top rows are deblocked */ - for (col = 0; col < i4_n_mb_process_count; col++) - { - u4_deblk_prev_row &= pu1_deblk_map_prev_row[ps_deblk->i4_mb_x + col]; - } - - /* checking whether the top right MB is deblocked */ - if ((ps_deblk->i4_mb_x + i4_n_mb_process_count) != ps_proc->i4_wd_mbs) - { - u4_deblk_prev_row &= pu1_deblk_map_prev_row[ps_deblk->i4_mb_x + i4_n_mb_process_count]; - } - /* performing deblocking for required number of MBs */ if ((i4_mb_y > 0) && (ps_proc->u4_disable_deblock_level != 1)) { + u4_deblk_prev_row = 1; + + /* checking whether the top rows are deblocked */ + for (col = 0; col < i4_n_mb_process_count; col++) + { + u4_deblk_prev_row &= pu1_deblk_map_prev_row[ps_deblk->i4_mb_x + col]; + } + + /* checking whether the top right MB is deblocked */ + if ((ps_deblk->i4_mb_x + i4_n_mb_process_count) != ps_proc->i4_wd_mbs) + { + u4_deblk_prev_row &= pu1_deblk_map_prev_row[ps_deblk->i4_mb_x + i4_n_mb_process_count]; + } + /* Top or Top right MBs not deblocked */ if ((u4_deblk_prev_row != 1) && (i4_mb_y > 0)) { diff --git a/encoder/ih264e_utils.c b/encoder/ih264e_utils.c index f0086cb..3657f33 100644 --- a/encoder/ih264e_utils.c +++ b/encoder/ih264e_utils.c @@ -225,6 +225,14 @@ WORD32 ih264e_get_lvl_idx(WORD32 level) { lvl_idx = 12; } + else if (level < IH264_LEVEL_51) + { + lvl_idx = 13; + } + else + { + lvl_idx = 14; + } return (lvl_idx); } @@ -366,7 +374,7 @@ WORD32 ih264e_get_total_pic_buf_size(WORD32 pic_size, size = num_samples * max_num_bufs; /* Account for padding area */ - size += ((pad * pad) + pad * (max_wd + min_ht)) * max_num_bufs; + size += ((pad * pad) + pad * (max_wd + min_ht)) * 3 / 2 * max_num_bufs; return size; } diff --git a/encoder/x86/ih264e_function_selector_sse42.c b/encoder/x86/ih264e_function_selector_sse42.c index 6fa6308..d953c76 100644 --- a/encoder/x86/ih264e_function_selector_sse42.c +++ b/encoder/x86/ih264e_function_selector_sse42.c @@ -112,7 +112,6 @@ void ih264e_init_function_ptr_sse42(codec_t *ps_codec) WORD32 i; process_ctxt_t *ps_proc = NULL; me_ctxt_t *ps_me_ctxt = NULL; - printf("Enabling SSE42 functions\n"); /* Init luma forward transform fn ptr */ ps_codec->pf_resi_trans_quant_4x4 = ih264_resi_trans_quant_4x4_sse42; diff --git a/encoder/x86/ih264e_function_selector_ssse3.c b/encoder/x86/ih264e_function_selector_ssse3.c index 7401e53..4eb4c7b 100644 --- a/encoder/x86/ih264e_function_selector_ssse3.c +++ b/encoder/x86/ih264e_function_selector_ssse3.c @@ -109,7 +109,6 @@ */ void ih264e_init_function_ptr_ssse3(codec_t *ps_codec) { - printf("Enabling SSSE3 functions\n"); /* Init function pointers for intra pred leaf level functions luma * Intra 16x16 */ diff --git a/test/Android.mk b/test/Android.mk index 0085832..adb14f0 100644 --- a/test/Android.mk +++ b/test/Android.mk @@ -6,3 +6,4 @@ include $(LOCAL_PATH)/encoder.mk # decoder include $(LOCAL_PATH)/decoder.mk + diff --git a/test/decoder/main.c b/test/decoder/main.c index 0076ce9..921c240 100644 --- a/test/decoder/main.c +++ b/test/decoder/main.c @@ -64,6 +64,8 @@ #include <sys/time.h> #endif + + #define ALIGN8(x) ((((x) + 7) >> 3) << 3) #define NUM_DISPLAY_BUFFERS 4 #define DEFAULT_FPS 30 @@ -952,6 +954,7 @@ void dump_output(vid_dec_ctx_t *ps_app_ctx, { UWORD8 *buf; + buf = (UWORD8 *)s_dump_disp_frm_buf.pv_y_buf; for(i = 0; i < s_dump_disp_frm_buf.u4_y_ht; i++) { @@ -2271,6 +2274,38 @@ int main(WORD32 argc, CHAR *argv[]) codec_exit(ac_error_str); } + + /*****************************************************************************/ + /* set stride */ + /*****************************************************************************/ + { + ivd_ctl_set_config_ip_t s_ctl_ip; + ivd_ctl_set_config_op_t s_ctl_op; + + + s_ctl_ip.u4_disp_wd = STRIDE; + if(1 == s_app_ctx.display) + s_ctl_ip.u4_disp_wd = s_app_ctx.get_stride(); + + s_ctl_ip.e_frm_skip_mode = IVD_SKIP_NONE; + s_ctl_ip.e_frm_out_mode = IVD_DECODE_FRAME_OUT; + s_ctl_ip.e_vid_dec_mode = IVD_DECODE_HEADER; + s_ctl_ip.e_cmd = IVD_CMD_VIDEO_CTL; + s_ctl_ip.e_sub_cmd = IVD_CMD_CTL_SETPARAMS; + s_ctl_ip.u4_size = sizeof(ivd_ctl_set_config_ip_t); + s_ctl_op.u4_size = sizeof(ivd_ctl_set_config_op_t); + + ret = ivd_api_function((iv_obj_t*)codec_obj, (void *)&s_ctl_ip, + (void *)&s_ctl_op); + if(ret != IV_SUCCESS) + { + sprintf(ac_error_str, + "\nError in setting the stride"); + codec_exit(ac_error_str); + } + } + + /*****************************************************************************/ /* Input and output buffer allocation */ /*****************************************************************************/ @@ -2470,7 +2505,7 @@ int main(WORD32 argc, CHAR *argv[]) if(ret != IV_SUCCESS) { - printf("Error in header decode %x\n", s_video_decode_op.u4_error_code); + printf("Error in header decode 0x%x\n", s_video_decode_op.u4_error_code); // codec_exit(ac_error_str); } |